@karakuri-ui/react 0.2.3 → 0.2.4

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 (238) hide show
  1. package/README.md +0 -1
  2. package/dist/components/ui/accordion.d.mts +49 -0
  3. package/dist/components/ui/accordion.d.ts +49 -0
  4. package/dist/components/ui/accordion.js +220 -0
  5. package/dist/components/ui/accordion.js.map +1 -0
  6. package/dist/components/ui/accordion.mjs +181 -0
  7. package/dist/components/ui/accordion.mjs.map +1 -0
  8. package/dist/components/ui/alert.d.mts +47 -0
  9. package/dist/components/ui/alert.d.ts +47 -0
  10. package/dist/components/ui/alert.js +223 -0
  11. package/dist/components/ui/alert.js.map +1 -0
  12. package/dist/components/ui/alert.mjs +185 -0
  13. package/dist/components/ui/alert.mjs.map +1 -0
  14. package/dist/components/ui/avatar.d.mts +232 -0
  15. package/dist/components/ui/avatar.d.ts +232 -0
  16. package/dist/components/ui/avatar.js +250 -0
  17. package/dist/components/ui/avatar.js.map +1 -0
  18. package/dist/components/ui/avatar.mjs +209 -0
  19. package/dist/components/ui/avatar.mjs.map +1 -0
  20. package/dist/components/ui/badge.d.mts +31 -0
  21. package/dist/components/ui/badge.d.ts +31 -0
  22. package/dist/components/ui/badge.js +205 -0
  23. package/dist/components/ui/badge.js.map +1 -0
  24. package/dist/components/ui/badge.mjs +170 -0
  25. package/dist/components/ui/badge.mjs.map +1 -0
  26. package/dist/components/ui/breadcrumb.d.mts +57 -0
  27. package/dist/components/ui/breadcrumb.d.ts +57 -0
  28. package/dist/components/ui/breadcrumb.js +209 -0
  29. package/dist/components/ui/breadcrumb.js.map +1 -0
  30. package/dist/components/ui/breadcrumb.mjs +168 -0
  31. package/dist/components/ui/breadcrumb.mjs.map +1 -0
  32. package/dist/components/ui/button-group.d.mts +22 -0
  33. package/dist/components/ui/button-group.d.ts +22 -0
  34. package/dist/components/ui/button-group.js +107 -0
  35. package/dist/components/ui/button-group.js.map +1 -0
  36. package/dist/components/ui/button-group.mjs +72 -0
  37. package/dist/components/ui/button-group.mjs.map +1 -0
  38. package/dist/components/ui/button.d.mts +31 -0
  39. package/dist/components/ui/button.d.ts +31 -0
  40. package/dist/components/ui/button.js +176 -0
  41. package/dist/components/ui/button.js.map +1 -0
  42. package/dist/components/ui/button.mjs +141 -0
  43. package/dist/components/ui/button.mjs.map +1 -0
  44. package/dist/components/ui/card.d.mts +77 -0
  45. package/dist/components/ui/card.d.ts +77 -0
  46. package/dist/components/ui/card.js +370 -0
  47. package/dist/components/ui/card.js.map +1 -0
  48. package/dist/components/ui/card.mjs +328 -0
  49. package/dist/components/ui/card.mjs.map +1 -0
  50. package/dist/{chart.js → components/ui/chart.js} +29 -39
  51. package/dist/components/ui/chart.js.map +1 -0
  52. package/dist/{chart.mjs → components/ui/chart.mjs} +21 -31
  53. package/dist/components/ui/chart.mjs.map +1 -0
  54. package/dist/components/ui/checkbox.d.mts +24 -0
  55. package/dist/components/ui/checkbox.d.ts +24 -0
  56. package/dist/components/ui/checkbox.js +173 -0
  57. package/dist/components/ui/checkbox.js.map +1 -0
  58. package/dist/components/ui/checkbox.mjs +138 -0
  59. package/dist/components/ui/checkbox.mjs.map +1 -0
  60. package/dist/components/ui/divider.d.mts +27 -0
  61. package/dist/components/ui/divider.d.ts +27 -0
  62. package/dist/components/ui/divider.js +147 -0
  63. package/dist/components/ui/divider.js.map +1 -0
  64. package/dist/components/ui/divider.mjs +112 -0
  65. package/dist/components/ui/divider.mjs.map +1 -0
  66. package/dist/components/ui/drawer.d.mts +51 -0
  67. package/dist/components/ui/drawer.d.ts +51 -0
  68. package/dist/components/ui/drawer.js +225 -0
  69. package/dist/components/ui/drawer.js.map +1 -0
  70. package/dist/components/ui/drawer.mjs +178 -0
  71. package/dist/components/ui/drawer.mjs.map +1 -0
  72. package/dist/components/ui/dropdown.d.mts +59 -0
  73. package/dist/components/ui/dropdown.d.ts +59 -0
  74. package/dist/components/ui/dropdown.js +310 -0
  75. package/dist/components/ui/dropdown.js.map +1 -0
  76. package/dist/components/ui/dropdown.mjs +263 -0
  77. package/dist/components/ui/dropdown.mjs.map +1 -0
  78. package/dist/components/ui/field.d.mts +33 -0
  79. package/dist/components/ui/field.d.ts +33 -0
  80. package/dist/components/ui/field.js +146 -0
  81. package/dist/components/ui/field.js.map +1 -0
  82. package/dist/components/ui/field.mjs +108 -0
  83. package/dist/components/ui/field.mjs.map +1 -0
  84. package/dist/components/ui/icon-button.d.mts +20 -0
  85. package/dist/components/ui/icon-button.d.ts +20 -0
  86. package/dist/components/ui/icon-button.js +147 -0
  87. package/dist/components/ui/icon-button.js.map +1 -0
  88. package/dist/components/ui/icon-button.mjs +112 -0
  89. package/dist/components/ui/icon-button.mjs.map +1 -0
  90. package/dist/components/ui/index.d.mts +55 -0
  91. package/dist/components/ui/index.d.ts +55 -0
  92. package/dist/components/ui/index.js +476 -0
  93. package/dist/components/ui/index.js.map +1 -0
  94. package/dist/components/ui/index.mjs +246 -0
  95. package/dist/components/ui/index.mjs.map +1 -0
  96. package/dist/components/ui/input.d.mts +20 -0
  97. package/dist/components/ui/input.d.ts +20 -0
  98. package/dist/components/ui/input.js +250 -0
  99. package/dist/components/ui/input.js.map +1 -0
  100. package/dist/components/ui/input.mjs +215 -0
  101. package/dist/components/ui/input.mjs.map +1 -0
  102. package/dist/components/ui/metric-card.d.mts +53 -0
  103. package/dist/components/ui/metric-card.d.ts +53 -0
  104. package/dist/components/ui/metric-card.js +258 -0
  105. package/dist/components/ui/metric-card.js.map +1 -0
  106. package/dist/components/ui/metric-card.mjs +217 -0
  107. package/dist/components/ui/metric-card.mjs.map +1 -0
  108. package/dist/components/ui/modal.d.mts +77 -0
  109. package/dist/components/ui/modal.d.ts +77 -0
  110. package/dist/components/ui/modal.js +396 -0
  111. package/dist/components/ui/modal.js.map +1 -0
  112. package/dist/components/ui/modal.mjs +338 -0
  113. package/dist/components/ui/modal.mjs.map +1 -0
  114. package/dist/components/ui/navigation-menu.d.mts +139 -0
  115. package/dist/components/ui/navigation-menu.d.ts +139 -0
  116. package/dist/components/ui/navigation-menu.js +531 -0
  117. package/dist/components/ui/navigation-menu.js.map +1 -0
  118. package/dist/components/ui/navigation-menu.mjs +488 -0
  119. package/dist/components/ui/navigation-menu.mjs.map +1 -0
  120. package/dist/components/ui/pagination.d.mts +130 -0
  121. package/dist/components/ui/pagination.d.ts +130 -0
  122. package/dist/components/ui/pagination.js +495 -0
  123. package/dist/components/ui/pagination.js.map +1 -0
  124. package/dist/components/ui/pagination.mjs +449 -0
  125. package/dist/components/ui/pagination.mjs.map +1 -0
  126. package/dist/components/ui/popover.d.mts +41 -0
  127. package/dist/components/ui/popover.d.ts +41 -0
  128. package/dist/components/ui/popover.js +175 -0
  129. package/dist/components/ui/popover.js.map +1 -0
  130. package/dist/components/ui/popover.mjs +133 -0
  131. package/dist/components/ui/popover.mjs.map +1 -0
  132. package/dist/components/ui/progress.d.mts +35 -0
  133. package/dist/components/ui/progress.d.ts +35 -0
  134. package/dist/components/ui/progress.js +194 -0
  135. package/dist/components/ui/progress.js.map +1 -0
  136. package/dist/components/ui/progress.mjs +159 -0
  137. package/dist/components/ui/progress.mjs.map +1 -0
  138. package/dist/components/ui/radio-group.d.mts +40 -0
  139. package/dist/components/ui/radio-group.d.ts +40 -0
  140. package/dist/components/ui/radio-group.js +177 -0
  141. package/dist/components/ui/radio-group.js.map +1 -0
  142. package/dist/components/ui/radio-group.mjs +140 -0
  143. package/dist/components/ui/radio-group.mjs.map +1 -0
  144. package/dist/components/ui/segmented.d.mts +30 -0
  145. package/dist/components/ui/segmented.d.ts +30 -0
  146. package/dist/components/ui/segmented.js +241 -0
  147. package/dist/components/ui/segmented.js.map +1 -0
  148. package/dist/components/ui/segmented.mjs +204 -0
  149. package/dist/components/ui/segmented.mjs.map +1 -0
  150. package/dist/components/ui/select.d.mts +31 -0
  151. package/dist/components/ui/select.d.ts +31 -0
  152. package/dist/components/ui/select.js +317 -0
  153. package/dist/components/ui/select.js.map +1 -0
  154. package/dist/components/ui/select.mjs +276 -0
  155. package/dist/components/ui/select.mjs.map +1 -0
  156. package/dist/components/ui/skeleton.d.mts +26 -0
  157. package/dist/components/ui/skeleton.d.ts +26 -0
  158. package/dist/components/ui/skeleton.js +144 -0
  159. package/dist/components/ui/skeleton.js.map +1 -0
  160. package/dist/components/ui/skeleton.mjs +109 -0
  161. package/dist/components/ui/skeleton.mjs.map +1 -0
  162. package/dist/components/ui/slider.d.mts +38 -0
  163. package/dist/components/ui/slider.d.ts +38 -0
  164. package/dist/components/ui/slider.js +180 -0
  165. package/dist/components/ui/slider.js.map +1 -0
  166. package/dist/components/ui/slider.mjs +145 -0
  167. package/dist/components/ui/slider.mjs.map +1 -0
  168. package/dist/components/ui/spinner.d.mts +23 -0
  169. package/dist/components/ui/spinner.d.ts +23 -0
  170. package/dist/components/ui/spinner.js +471 -0
  171. package/dist/components/ui/spinner.js.map +1 -0
  172. package/dist/components/ui/spinner.mjs +436 -0
  173. package/dist/components/ui/spinner.mjs.map +1 -0
  174. package/dist/components/ui/switch.d.mts +22 -0
  175. package/dist/components/ui/switch.d.ts +22 -0
  176. package/dist/components/ui/switch.js +173 -0
  177. package/dist/components/ui/switch.js.map +1 -0
  178. package/dist/components/ui/switch.mjs +138 -0
  179. package/dist/components/ui/switch.mjs.map +1 -0
  180. package/dist/components/ui/table.d.mts +74 -0
  181. package/dist/components/ui/table.d.ts +74 -0
  182. package/dist/components/ui/table.js +240 -0
  183. package/dist/components/ui/table.js.map +1 -0
  184. package/dist/components/ui/table.mjs +199 -0
  185. package/dist/components/ui/table.mjs.map +1 -0
  186. package/dist/components/ui/tabs.d.mts +40 -0
  187. package/dist/components/ui/tabs.d.ts +40 -0
  188. package/dist/components/ui/tabs.js +238 -0
  189. package/dist/components/ui/tabs.js.map +1 -0
  190. package/dist/components/ui/tabs.mjs +199 -0
  191. package/dist/components/ui/tabs.mjs.map +1 -0
  192. package/dist/components/ui/textarea.d.mts +19 -0
  193. package/dist/components/ui/textarea.d.ts +19 -0
  194. package/dist/components/ui/textarea.js +181 -0
  195. package/dist/components/ui/textarea.js.map +1 -0
  196. package/dist/components/ui/textarea.mjs +146 -0
  197. package/dist/components/ui/textarea.mjs.map +1 -0
  198. package/dist/components/ui/toast.d.mts +93 -0
  199. package/dist/components/ui/toast.d.ts +93 -0
  200. package/dist/components/ui/toast.js +429 -0
  201. package/dist/components/ui/toast.js.map +1 -0
  202. package/dist/components/ui/toast.mjs +393 -0
  203. package/dist/components/ui/toast.mjs.map +1 -0
  204. package/dist/components/ui/toggle-group.d.mts +47 -0
  205. package/dist/components/ui/toggle-group.d.ts +47 -0
  206. package/dist/components/ui/toggle-group.js +186 -0
  207. package/dist/components/ui/toggle-group.js.map +1 -0
  208. package/dist/components/ui/toggle-group.mjs +149 -0
  209. package/dist/components/ui/toggle-group.mjs.map +1 -0
  210. package/dist/components/ui/toggle.d.mts +19 -0
  211. package/dist/components/ui/toggle.d.ts +19 -0
  212. package/dist/components/ui/toggle.js +194 -0
  213. package/dist/components/ui/toggle.js.map +1 -0
  214. package/dist/components/ui/toggle.mjs +159 -0
  215. package/dist/components/ui/toggle.mjs.map +1 -0
  216. package/dist/components/ui/tooltip.d.mts +37 -0
  217. package/dist/components/ui/tooltip.d.ts +37 -0
  218. package/dist/components/ui/tooltip.js +137 -0
  219. package/dist/components/ui/tooltip.js.map +1 -0
  220. package/dist/components/ui/tooltip.mjs +96 -0
  221. package/dist/components/ui/tooltip.mjs.map +1 -0
  222. package/dist/lib/utils.d.mts +10 -0
  223. package/dist/lib/utils.d.ts +10 -0
  224. package/dist/lib/utils.js +33 -0
  225. package/dist/lib/utils.js.map +1 -0
  226. package/dist/lib/utils.mjs +9 -0
  227. package/dist/lib/utils.mjs.map +1 -0
  228. package/package.json +11 -11
  229. package/dist/chart.js.map +0 -1
  230. package/dist/chart.mjs.map +0 -1
  231. package/dist/index.d.mts +0 -1636
  232. package/dist/index.d.ts +0 -1636
  233. package/dist/index.js +0 -7291
  234. package/dist/index.js.map +0 -1
  235. package/dist/index.mjs +0 -7048
  236. package/dist/index.mjs.map +0 -1
  237. /package/dist/{chart.d.mts → components/ui/chart.d.mts} +0 -0
  238. /package/dist/{chart.d.ts → components/ui/chart.d.ts} +0 -0
@@ -0,0 +1,246 @@
1
+ "use client";
2
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, accordionTriggerVariants, accordionVariants } from "./accordion";
3
+ import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbSizeMap } from "./breadcrumb";
4
+ import { Divider, dividerVariants } from "./divider";
5
+ import { Button, buttonVariants } from "./button";
6
+ import { IconButton, iconButtonVariants } from "./icon-button";
7
+ import { ButtonGroup, useButtonGroup } from "./button-group";
8
+ import { Toggle, toggleVariants } from "./toggle";
9
+ import { ToggleGroup, ToggleGroupItem, toggleGroupItemVariants, toggleGroupVariants } from "./toggle-group";
10
+ import { Segmented, SegmentedItem, segmentedItemVariants, segmentedVariants } from "./segmented";
11
+ import { Input, inputVariants } from "./input";
12
+ import { Textarea, textareaVariants } from "./textarea";
13
+ import { Field, FieldCharCount, FieldError, FieldLabel, useFieldContext } from "./field";
14
+ import { Checkbox, checkboxVariants } from "./checkbox";
15
+ import { RadioGroup, RadioGroupItem, radioGroupVariants, radioItemVariants } from "./radio-group";
16
+ import { Switch, switchVariants } from "./switch";
17
+ import { Slider, sliderVariants } from "./slider";
18
+ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./dropdown";
19
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue } from "./select";
20
+ import { Avatar, AvatarFallback, AvatarGroup, AvatarImage, avatarColors, avatarVariants, getAvatarColor, getAvatarInitials } from "./avatar";
21
+ import { MetricCard, MetricCardDescription, MetricCardHeader, MetricCardSymbol, MetricCardTitle, MetricCardTrend, MetricCardValue, metricCardVariants } from "./metric-card";
22
+ import { Badge, badgeVariants } from "./badge";
23
+ import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle, cardVariants } from "./card";
24
+ import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table";
25
+ import { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants } from "./tabs";
26
+ import { NavigationMenu, NavigationMenuContent, NavigationMenuGroup, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuSizeMap } from "./navigation-menu";
27
+ import { Pagination, PaginationContent, PaginationEllipsis, PaginationFirst, PaginationItem, PaginationItems, PaginationLast, PaginationLink, PaginationNext, PaginationPrevious, paginationItemVariants, paginationSizeMap, usePagination } from "./pagination";
28
+ import { AlertModal, AlertModalAction, AlertModalBody, AlertModalCancel, AlertModalContent, AlertModalDescription, AlertModalFooter, AlertModalHeader, AlertModalOverlay, AlertModalPortal, AlertModalTitle, AlertModalTrigger, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, alertModalContentVariants, modalContentVariants } from "./modal";
29
+ import { Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerRoot, DrawerTitle, DrawerTrigger, drawerSizeHorizontal, drawerSizeVertical } from "./drawer";
30
+ import { Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, tooltipContentVariants } from "./tooltip";
31
+ import { Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, popoverContentVariants } from "./popover";
32
+ import { Alert, AlertDescription, AlertRoot, AlertTitle, alertVariants } from "./alert";
33
+ import { Toaster, toast, toastVariants } from "./toast";
34
+ import { Progress, linearTrackVariants } from "./progress";
35
+ import { Spinner, spinnerVariants } from "./spinner";
36
+ import { Skeleton, skeletonVariants } from "./skeleton";
37
+ export {
38
+ Accordion,
39
+ AccordionContent,
40
+ AccordionItem,
41
+ AccordionTrigger,
42
+ Alert,
43
+ AlertDescription,
44
+ AlertModal,
45
+ AlertModalAction,
46
+ AlertModalBody,
47
+ AlertModalCancel,
48
+ AlertModalContent,
49
+ AlertModalDescription,
50
+ AlertModalFooter,
51
+ AlertModalHeader,
52
+ AlertModalOverlay,
53
+ AlertModalPortal,
54
+ AlertModalTitle,
55
+ AlertModalTrigger,
56
+ AlertRoot,
57
+ AlertTitle,
58
+ Avatar,
59
+ AvatarFallback,
60
+ AvatarGroup,
61
+ AvatarImage,
62
+ Badge,
63
+ Breadcrumb,
64
+ BreadcrumbEllipsis,
65
+ BreadcrumbItem,
66
+ BreadcrumbLink,
67
+ BreadcrumbList,
68
+ BreadcrumbPage,
69
+ BreadcrumbSeparator,
70
+ Button,
71
+ ButtonGroup,
72
+ Card,
73
+ CardAction,
74
+ CardContent,
75
+ CardDescription,
76
+ CardFooter,
77
+ CardHeader,
78
+ CardImage,
79
+ CardTitle,
80
+ Checkbox,
81
+ Divider,
82
+ Drawer,
83
+ DrawerBody,
84
+ DrawerClose,
85
+ DrawerContent,
86
+ DrawerDescription,
87
+ DrawerFooter,
88
+ DrawerHeader,
89
+ DrawerOverlay,
90
+ DrawerPortal,
91
+ DrawerRoot,
92
+ DrawerTitle,
93
+ DrawerTrigger,
94
+ DropdownMenu,
95
+ DropdownMenuCheckboxItem,
96
+ DropdownMenuContent,
97
+ DropdownMenuGroup,
98
+ DropdownMenuItem,
99
+ DropdownMenuLabel,
100
+ DropdownMenuRadioGroup,
101
+ DropdownMenuRadioItem,
102
+ DropdownMenuSeparator,
103
+ DropdownMenuShortcut,
104
+ DropdownMenuSub,
105
+ DropdownMenuSubContent,
106
+ DropdownMenuSubTrigger,
107
+ DropdownMenuTrigger,
108
+ Field,
109
+ FieldCharCount,
110
+ FieldError,
111
+ FieldLabel,
112
+ IconButton,
113
+ Input,
114
+ MetricCard,
115
+ MetricCardDescription,
116
+ MetricCardHeader,
117
+ MetricCardSymbol,
118
+ MetricCardTitle,
119
+ MetricCardTrend,
120
+ MetricCardValue,
121
+ Modal,
122
+ ModalBody,
123
+ ModalClose,
124
+ ModalContent,
125
+ ModalDescription,
126
+ ModalFooter,
127
+ ModalHeader,
128
+ ModalOverlay,
129
+ ModalPortal,
130
+ ModalTitle,
131
+ ModalTrigger,
132
+ NavigationMenu,
133
+ NavigationMenuContent,
134
+ NavigationMenuGroup,
135
+ NavigationMenuIndicator,
136
+ NavigationMenuItem,
137
+ NavigationMenuLink,
138
+ NavigationMenuList,
139
+ NavigationMenuTrigger,
140
+ NavigationMenuViewport,
141
+ Pagination,
142
+ PaginationContent,
143
+ PaginationEllipsis,
144
+ PaginationFirst,
145
+ PaginationItem,
146
+ PaginationItems,
147
+ PaginationLast,
148
+ PaginationLink,
149
+ PaginationNext,
150
+ PaginationPrevious,
151
+ Popover,
152
+ PopoverAnchor,
153
+ PopoverArrow,
154
+ PopoverClose,
155
+ PopoverContent,
156
+ PopoverPortal,
157
+ PopoverRoot,
158
+ PopoverTrigger,
159
+ Progress,
160
+ RadioGroup,
161
+ RadioGroupItem,
162
+ Segmented,
163
+ SegmentedItem,
164
+ Select,
165
+ SelectContent,
166
+ SelectGroup,
167
+ SelectItem,
168
+ SelectLabel,
169
+ SelectSeparator,
170
+ SelectTrigger,
171
+ SelectValue,
172
+ Skeleton,
173
+ Slider,
174
+ Spinner,
175
+ Switch,
176
+ Table,
177
+ TableBody,
178
+ TableCaption,
179
+ TableCell,
180
+ TableFooter,
181
+ TableHead,
182
+ TableHeader,
183
+ TableRow,
184
+ Tabs,
185
+ TabsContent,
186
+ TabsList,
187
+ TabsTrigger,
188
+ Textarea,
189
+ Toaster,
190
+ Toggle,
191
+ ToggleGroup,
192
+ ToggleGroupItem,
193
+ Tooltip,
194
+ TooltipArrow,
195
+ TooltipContent,
196
+ TooltipPortal,
197
+ TooltipProvider,
198
+ TooltipRoot,
199
+ TooltipTrigger,
200
+ accordionTriggerVariants,
201
+ accordionVariants,
202
+ alertModalContentVariants,
203
+ alertVariants,
204
+ avatarColors,
205
+ avatarVariants,
206
+ badgeVariants,
207
+ breadcrumbSizeMap,
208
+ buttonVariants,
209
+ cardVariants,
210
+ checkboxVariants,
211
+ dividerVariants,
212
+ drawerSizeHorizontal,
213
+ drawerSizeVertical,
214
+ getAvatarColor,
215
+ getAvatarInitials,
216
+ iconButtonVariants,
217
+ inputVariants,
218
+ linearTrackVariants,
219
+ metricCardVariants,
220
+ modalContentVariants,
221
+ navigationMenuSizeMap,
222
+ paginationItemVariants,
223
+ paginationSizeMap,
224
+ popoverContentVariants,
225
+ radioGroupVariants,
226
+ radioItemVariants,
227
+ segmentedItemVariants,
228
+ segmentedVariants,
229
+ skeletonVariants,
230
+ sliderVariants,
231
+ spinnerVariants,
232
+ switchVariants,
233
+ tabsListVariants,
234
+ tabsTriggerVariants,
235
+ textareaVariants,
236
+ toast,
237
+ toastVariants,
238
+ toggleGroupItemVariants,
239
+ toggleGroupVariants,
240
+ toggleVariants,
241
+ tooltipContentVariants,
242
+ useButtonGroup,
243
+ useFieldContext,
244
+ usePagination
245
+ };
246
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/ui/index.ts"],"sourcesContent":["'use client'\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger, accordionTriggerVariants, accordionVariants } from './accordion'\nexport type * from './accordion'\nexport { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbSizeMap } from './breadcrumb'\nexport type * from './breadcrumb'\nexport { Divider, dividerVariants } from './divider'\nexport type * from './divider'\nexport { Button, buttonVariants } from './button'\nexport type * from './button'\nexport { IconButton, iconButtonVariants } from './icon-button'\nexport type * from './icon-button'\nexport { ButtonGroup, useButtonGroup } from './button-group'\nexport type * from './button-group'\nexport { Toggle, toggleVariants } from './toggle'\nexport type * from './toggle'\nexport { ToggleGroup, ToggleGroupItem, toggleGroupItemVariants, toggleGroupVariants } from './toggle-group'\nexport type * from './toggle-group'\nexport { Segmented, SegmentedItem, segmentedItemVariants, segmentedVariants } from './segmented'\nexport type * from './segmented'\nexport { Input, inputVariants } from './input'\nexport type * from './input'\nexport { Textarea, textareaVariants } from './textarea'\nexport type * from './textarea'\nexport { Field, FieldCharCount, FieldError, FieldLabel, useFieldContext } from './field'\nexport type * from './field'\nexport { Checkbox, checkboxVariants } from './checkbox'\nexport type * from './checkbox'\nexport { RadioGroup, RadioGroupItem, radioGroupVariants, radioItemVariants } from './radio-group'\nexport type * from './radio-group'\nexport { Switch, switchVariants } from './switch'\nexport type * from './switch'\nexport { Slider, sliderVariants } from './slider'\nexport type * from './slider'\nexport { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './dropdown'\nexport type * from './dropdown'\nexport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue } from './select'\nexport type * from './select'\nexport { Avatar, AvatarFallback, AvatarGroup, AvatarImage, avatarColors, avatarVariants, getAvatarColor, getAvatarInitials } from './avatar'\nexport type * from './avatar'\nexport { MetricCard, MetricCardDescription, MetricCardHeader, MetricCardSymbol, MetricCardTitle, MetricCardTrend, MetricCardValue, metricCardVariants } from './metric-card'\nexport type * from './metric-card'\nexport { Badge, badgeVariants } from './badge'\nexport type * from './badge'\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardImage, CardTitle, cardVariants } from './card'\nexport type * from './card'\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './table'\nexport type * from './table'\nexport { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants } from './tabs'\nexport type * from './tabs'\nexport { NavigationMenu, NavigationMenuContent, NavigationMenuGroup, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuSizeMap } from './navigation-menu'\nexport type * from './navigation-menu'\nexport { Pagination, PaginationContent, PaginationEllipsis, PaginationFirst, PaginationItem, PaginationItems, PaginationLast, PaginationLink, PaginationNext, PaginationPrevious, paginationItemVariants, paginationSizeMap, usePagination } from './pagination'\nexport type * from './pagination'\nexport { AlertModal, AlertModalAction, AlertModalBody, AlertModalCancel, AlertModalContent, AlertModalDescription, AlertModalFooter, AlertModalHeader, AlertModalOverlay, AlertModalPortal, AlertModalTitle, AlertModalTrigger, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, alertModalContentVariants, modalContentVariants } from './modal'\nexport type * from './modal'\nexport { Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerRoot, DrawerTitle, DrawerTrigger, drawerSizeHorizontal, drawerSizeVertical } from './drawer'\nexport type * from './drawer'\nexport { Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, tooltipContentVariants } from './tooltip'\nexport type * from './tooltip'\nexport { Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, popoverContentVariants } from './popover'\nexport type * from './popover'\nexport { Alert, AlertDescription, AlertRoot, AlertTitle, alertVariants } from './alert'\nexport type * from './alert'\nexport { Toaster, toast, toastVariants } from './toast'\nexport type * from './toast'\nexport { Progress, linearTrackVariants } from './progress'\nexport type * from './progress'\nexport { Spinner, spinnerVariants } from './spinner'\nexport type * from './spinner'\nexport { Skeleton, skeletonVariants } from './skeleton'\nexport type * from './skeleton'\n"],"mappings":";AAEA,SAAS,WAAW,kBAAkB,eAAe,kBAAkB,0BAA0B,yBAAyB;AAE1H,SAAS,YAAY,oBAAoB,gBAAgB,gBAAgB,gBAAgB,gBAAgB,qBAAqB,yBAAyB;AAEvJ,SAAS,SAAS,uBAAuB;AAEzC,SAAS,QAAQ,sBAAsB;AAEvC,SAAS,YAAY,0BAA0B;AAE/C,SAAS,aAAa,sBAAsB;AAE5C,SAAS,QAAQ,sBAAsB;AAEvC,SAAS,aAAa,iBAAiB,yBAAyB,2BAA2B;AAE3F,SAAS,WAAW,eAAe,uBAAuB,yBAAyB;AAEnF,SAAS,OAAO,qBAAqB;AAErC,SAAS,UAAU,wBAAwB;AAE3C,SAAS,OAAO,gBAAgB,YAAY,YAAY,uBAAuB;AAE/E,SAAS,UAAU,wBAAwB;AAE3C,SAAS,YAAY,gBAAgB,oBAAoB,yBAAyB;AAElF,SAAS,QAAQ,sBAAsB;AAEvC,SAAS,QAAQ,sBAAsB;AAEvC,SAAS,cAAc,0BAA0B,qBAAqB,mBAAmB,kBAAkB,mBAAmB,wBAAwB,uBAAuB,uBAAuB,sBAAsB,iBAAiB,wBAAwB,wBAAwB,2BAA2B;AAEtT,SAAS,QAAQ,eAAe,aAAa,YAAY,aAAa,iBAAiB,eAAe,mBAAmB;AAEzH,SAAS,QAAQ,gBAAgB,aAAa,aAAa,cAAc,gBAAgB,gBAAgB,yBAAyB;AAElI,SAAS,YAAY,uBAAuB,kBAAkB,kBAAkB,iBAAiB,iBAAiB,iBAAiB,0BAA0B;AAE7J,SAAS,OAAO,qBAAqB;AAErC,SAAS,MAAM,YAAY,aAAa,iBAAiB,YAAY,YAAY,WAAW,WAAW,oBAAoB;AAE3H,SAAS,OAAO,WAAW,cAAc,WAAW,aAAa,WAAW,aAAa,gBAAgB;AAEzG,SAAS,MAAM,aAAa,UAAU,aAAa,kBAAkB,2BAA2B;AAEhG,SAAS,gBAAgB,uBAAuB,qBAAqB,yBAAyB,oBAAoB,oBAAoB,oBAAoB,uBAAuB,wBAAwB,6BAA6B;AAEtO,SAAS,YAAY,mBAAmB,oBAAoB,iBAAiB,gBAAgB,iBAAiB,gBAAgB,gBAAgB,gBAAgB,oBAAoB,wBAAwB,mBAAmB,qBAAqB;AAElP,SAAS,YAAY,kBAAkB,gBAAgB,kBAAkB,mBAAmB,uBAAuB,kBAAkB,kBAAkB,mBAAmB,kBAAkB,iBAAiB,mBAAmB,OAAO,WAAW,YAAY,cAAc,kBAAkB,aAAa,aAAa,cAAc,aAAa,YAAY,cAAc,2BAA2B,4BAA4B;AAEpa,SAAS,QAAQ,YAAY,aAAa,eAAe,mBAAmB,cAAc,cAAc,eAAe,cAAc,YAAY,aAAa,eAAe,sBAAsB,0BAA0B;AAE7N,SAAS,SAAS,cAAc,gBAAgB,eAAe,iBAAiB,aAAa,gBAAgB,8BAA8B;AAE3I,SAAS,SAAS,eAAe,cAAc,cAAc,gBAAgB,eAAe,aAAa,gBAAgB,8BAA8B;AAEvJ,SAAS,OAAO,kBAAkB,WAAW,YAAY,qBAAqB;AAE9E,SAAS,SAAS,OAAO,qBAAqB;AAE9C,SAAS,UAAU,2BAA2B;AAE9C,SAAS,SAAS,uBAAuB;AAEzC,SAAS,UAAU,wBAAwB;","names":[]}
@@ -0,0 +1,20 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ declare const inputVariants: (props?: ({
6
+ variant?: "default" | "filled" | null | undefined;
7
+ focusRing?: boolean | null | undefined;
8
+ size?: "default" | "sm" | "lg" | "xl" | "xs" | null | undefined;
9
+ radius?: "default" | "sm" | "lg" | "base" | "none" | "xl" | "2xl" | "3xl" | "full" | null | undefined;
10
+ state?: "default" | "error" | null | undefined;
11
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
12
+ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof inputVariants> {
13
+ leftIcon?: React.ReactNode;
14
+ rightIcon?: React.ReactNode;
15
+ error?: boolean;
16
+ focusRing?: boolean;
17
+ }
18
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
19
+
20
+ export { Input, type InputProps, inputVariants };
@@ -0,0 +1,20 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ declare const inputVariants: (props?: ({
6
+ variant?: "default" | "filled" | null | undefined;
7
+ focusRing?: boolean | null | undefined;
8
+ size?: "default" | "sm" | "lg" | "xl" | "xs" | null | undefined;
9
+ radius?: "default" | "sm" | "lg" | "base" | "none" | "xl" | "2xl" | "3xl" | "full" | null | undefined;
10
+ state?: "default" | "error" | null | undefined;
11
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
12
+ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof inputVariants> {
13
+ leftIcon?: React.ReactNode;
14
+ rightIcon?: React.ReactNode;
15
+ error?: boolean;
16
+ focusRing?: boolean;
17
+ }
18
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
19
+
20
+ export { Input, type InputProps, inputVariants };
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var input_exports = {};
31
+ __export(input_exports, {
32
+ Input: () => Input,
33
+ inputVariants: () => inputVariants
34
+ });
35
+ module.exports = __toCommonJS(input_exports);
36
+ var React = __toESM(require("react"));
37
+ var import_class_variance_authority = require("class-variance-authority");
38
+ var import_utils = require("../../lib/utils");
39
+ var import_field = require("./field");
40
+ const inputVariants = (0, import_class_variance_authority.cva)(
41
+ [
42
+ "flex w-full bg-background text-foreground placeholder:text-foreground/30",
43
+ "border transition-colors duration-micro outline-transparent",
44
+ "focus:[outline:2px_solid_transparent]",
45
+ "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-background-muted",
46
+ "file:border-0 file:bg-transparent file:text-sm file:font-semibold"
47
+ ].join(" "),
48
+ {
49
+ variants: {
50
+ variant: {
51
+ default: "border-border-form hover:border-border-form-strong",
52
+ filled: "border-transparent bg-background-muted"
53
+ },
54
+ focusRing: {
55
+ true: "",
56
+ false: ""
57
+ },
58
+ size: {
59
+ xs: "h-9 px-3 text-sm",
60
+ // 36px / 12px padding / 13px font (3.0:1)
61
+ sm: "h-10 px-3 text-md",
62
+ // 40px / 12px padding / 14px font (3.3:1)
63
+ default: "h-11 px-4 text-base",
64
+ // 44px / 16px padding / 16px font (2.75:1)
65
+ lg: "h-12 px-4 text-base",
66
+ // 48px / 16px padding / 16px font (3.0:1)
67
+ xl: "h-14 px-4 text-base"
68
+ // 56px / 16px padding / 16px font (3.5:1)
69
+ },
70
+ radius: {
71
+ none: "rounded-none",
72
+ sm: "rounded-sm",
73
+ base: "rounded",
74
+ default: "rounded-md",
75
+ lg: "rounded-lg",
76
+ xl: "rounded-xl",
77
+ "2xl": "rounded-2xl",
78
+ "3xl": "rounded-3xl",
79
+ full: "rounded-full"
80
+ },
81
+ state: {
82
+ default: "",
83
+ error: "border-error hover:border-error focus:border-error shadow-[0_0_0_2px_var(--color-focus-ring-error)]"
84
+ }
85
+ },
86
+ compoundVariants: [
87
+ // focusRing: true → show custom focus ring
88
+ { focusRing: true, className: "focus-visible:shadow-[0_0_0_2px_var(--color-focus-ring)]" },
89
+ // focusRing: false → keep same state as hover
90
+ { variant: "default", focusRing: false, className: "focus:border-border-form-strong" },
91
+ // filled + error
92
+ {
93
+ variant: "filled",
94
+ state: "error",
95
+ className: "border-transparent hover:border-transparent focus:border-transparent bg-[var(--color-error-bg)] hover:bg-[var(--color-error-bg)] focus:bg-[var(--color-error-bg)] shadow-none"
96
+ }
97
+ ],
98
+ defaultVariants: {
99
+ variant: "default",
100
+ size: "default",
101
+ radius: "default",
102
+ state: "default",
103
+ focusRing: false
104
+ }
105
+ }
106
+ );
107
+ const iconSizeClasses = {
108
+ xs: "icon-xs",
109
+ // 14px
110
+ sm: "icon-xs",
111
+ // 14px
112
+ default: "icon-sm",
113
+ // 16px
114
+ lg: "icon-sm",
115
+ // 16px
116
+ xl: "icon-sm"
117
+ // 16px
118
+ };
119
+ const iconPaddingClasses = {
120
+ xs: { left: "pl-8", right: "pr-8" },
121
+ // 12px + 14px icon + 6px gap = 32px
122
+ sm: { left: "pl-9", right: "pr-9" },
123
+ // 12px + 14px icon + 8px gap = 34px → 36px
124
+ default: { left: "pl-10", right: "pr-10" },
125
+ // 16px + 16px icon + 8px gap = 40px
126
+ lg: { left: "pl-10", right: "pr-10" },
127
+ // 16px + 16px icon + 8px gap = 40px
128
+ xl: { left: "pl-10", right: "pr-10" }
129
+ // 16px + 16px icon + 8px gap = 40px
130
+ };
131
+ const iconPositionClasses = {
132
+ xs: { left: "left-3", right: "right-3" },
133
+ // 12px
134
+ sm: { left: "left-3", right: "right-3" },
135
+ // 12px
136
+ default: { left: "left-4", right: "right-4" },
137
+ // 16px
138
+ lg: { left: "left-4", right: "right-4" },
139
+ // 16px
140
+ xl: { left: "left-4", right: "right-4" }
141
+ // 16px
142
+ };
143
+ const Input = React.forwardRef(
144
+ ({ className, variant, size, radius, state, type, leftIcon, rightIcon, error, focusRing, id, onPointerDown, onFocus, onBlur, ...props }, ref) => {
145
+ const fieldContext = (0, import_field.useFieldContext)();
146
+ const resolvedSize = size || "default";
147
+ const resolvedError = error ?? fieldContext?.error;
148
+ const resolvedState = resolvedError ? "error" : state;
149
+ const inputId = id ?? fieldContext?.id;
150
+ const isDisabled = props.disabled ?? fieldContext?.disabled;
151
+ const pointerRef = React.useRef(false);
152
+ const windowBlurredRef = React.useRef(false);
153
+ const [keyboardFocus, setKeyboardFocus] = React.useState(false);
154
+ React.useEffect(() => {
155
+ const onBlur2 = () => {
156
+ windowBlurredRef.current = true;
157
+ };
158
+ const onFocus2 = () => {
159
+ requestAnimationFrame(() => {
160
+ windowBlurredRef.current = false;
161
+ });
162
+ };
163
+ window.addEventListener("blur", onBlur2);
164
+ window.addEventListener("focus", onFocus2);
165
+ return () => {
166
+ window.removeEventListener("blur", onBlur2);
167
+ window.removeEventListener("focus", onFocus2);
168
+ };
169
+ }, []);
170
+ const handlePointerDown = React.useCallback((e) => {
171
+ pointerRef.current = true;
172
+ onPointerDown?.(e);
173
+ }, [onPointerDown]);
174
+ const handleFocus = React.useCallback((e) => {
175
+ if (!pointerRef.current && !focusRing && !windowBlurredRef.current) {
176
+ setKeyboardFocus(true);
177
+ }
178
+ pointerRef.current = false;
179
+ onFocus?.(e);
180
+ }, [focusRing, onFocus]);
181
+ const handleBlur = React.useCallback((e) => {
182
+ setKeyboardFocus(false);
183
+ pointerRef.current = false;
184
+ onBlur?.(e);
185
+ }, [onBlur]);
186
+ const ariaDescribedBy = fieldContext ? [
187
+ resolvedError ? `${fieldContext.id}-error` : null
188
+ ].filter(Boolean).join(" ") || void 0 : void 0;
189
+ const focusHandlers = {
190
+ onPointerDown: handlePointerDown,
191
+ onFocus: handleFocus,
192
+ onBlur: handleBlur
193
+ };
194
+ if (leftIcon || rightIcon) {
195
+ return /* @__PURE__ */ React.createElement("div", { className: "relative w-full" }, leftIcon && /* @__PURE__ */ React.createElement("div", { className: (0, import_utils.cn)(
196
+ "absolute top-1/2 -translate-y-1/2 pointer-events-none text-text-muted z-10",
197
+ iconPositionClasses[resolvedSize].left,
198
+ `[&>svg]:${iconSizeClasses[resolvedSize]}`
199
+ ) }, leftIcon), /* @__PURE__ */ React.createElement(
200
+ "input",
201
+ {
202
+ type,
203
+ id: inputId,
204
+ className: (0, import_utils.cn)(
205
+ inputVariants({ variant, size, radius, state: resolvedState, focusRing }),
206
+ keyboardFocus && "shadow-[0_0_0_2px_var(--color-focus-ring)]",
207
+ leftIcon && iconPaddingClasses[resolvedSize].left,
208
+ rightIcon && iconPaddingClasses[resolvedSize].right,
209
+ className
210
+ ),
211
+ "aria-invalid": resolvedError || void 0,
212
+ "aria-describedby": ariaDescribedBy,
213
+ disabled: isDisabled,
214
+ ref,
215
+ ...focusHandlers,
216
+ ...props
217
+ }
218
+ ), rightIcon && /* @__PURE__ */ React.createElement("div", { className: (0, import_utils.cn)(
219
+ "absolute top-1/2 -translate-y-1/2 pointer-events-none text-text-muted z-10",
220
+ iconPositionClasses[resolvedSize].right,
221
+ `[&>svg]:${iconSizeClasses[resolvedSize]}`
222
+ ) }, rightIcon));
223
+ }
224
+ return /* @__PURE__ */ React.createElement(
225
+ "input",
226
+ {
227
+ type,
228
+ id: inputId,
229
+ className: (0, import_utils.cn)(
230
+ inputVariants({ variant, size, radius, state: resolvedState, focusRing }),
231
+ keyboardFocus && "shadow-[0_0_0_2px_var(--color-focus-ring)]",
232
+ className
233
+ ),
234
+ "aria-invalid": resolvedError || void 0,
235
+ "aria-describedby": ariaDescribedBy,
236
+ disabled: isDisabled,
237
+ ref,
238
+ ...focusHandlers,
239
+ ...props
240
+ }
241
+ );
242
+ }
243
+ );
244
+ Input.displayName = "Input";
245
+ // Annotate the CommonJS export names for ESM import in node:
246
+ 0 && (module.exports = {
247
+ Input,
248
+ inputVariants
249
+ });
250
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/ui/input.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../lib/utils'\nimport { useFieldContext } from './field'\n\nconst inputVariants = cva(\n [\n 'flex w-full bg-background text-foreground placeholder:text-foreground/30',\n 'border transition-colors duration-micro outline-transparent',\n 'focus:[outline:2px_solid_transparent]',\n 'disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-background-muted',\n 'file:border-0 file:bg-transparent file:text-sm file:font-semibold',\n ].join(' '),\n {\n variants: {\n variant: {\n default: 'border-border-form hover:border-border-form-strong',\n filled: 'border-transparent bg-background-muted',\n },\n focusRing: {\n true: '',\n false: '',\n },\n size: {\n xs: 'h-9 px-3 text-sm', // 36px / 12px padding / 13px font (3.0:1)\n sm: 'h-10 px-3 text-md', // 40px / 12px padding / 14px font (3.3:1)\n default: 'h-11 px-4 text-base', // 44px / 16px padding / 16px font (2.75:1)\n lg: 'h-12 px-4 text-base', // 48px / 16px padding / 16px font (3.0:1)\n xl: 'h-14 px-4 text-base', // 56px / 16px padding / 16px font (3.5:1)\n },\n radius: {\n none: 'rounded-none',\n sm: 'rounded-sm',\n base: 'rounded',\n default: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n '3xl': 'rounded-3xl',\n full: 'rounded-full',\n },\n state: {\n default: '',\n error: 'border-error hover:border-error focus:border-error shadow-[0_0_0_2px_var(--color-focus-ring-error)]',\n },\n },\n compoundVariants: [\n // focusRing: true → show custom focus ring\n { focusRing: true, className: 'focus-visible:shadow-[0_0_0_2px_var(--color-focus-ring)]' },\n // focusRing: false → keep same state as hover\n { variant: 'default', focusRing: false, className: 'focus:border-border-form-strong' },\n // filled + error\n {\n variant: 'filled',\n state: 'error',\n className: 'border-transparent hover:border-transparent focus:border-transparent bg-[var(--color-error-bg)] hover:bg-[var(--color-error-bg)] focus:bg-[var(--color-error-bg)] shadow-none',\n },\n ],\n defaultVariants: {\n variant: 'default',\n size: 'default',\n radius: 'default',\n state: 'default',\n focusRing: false,\n },\n }\n)\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n leftIcon?: React.ReactNode\n rightIcon?: React.ReactNode\n error?: boolean\n focusRing?: boolean\n}\n\n// Icon size for input (2-step scale)\n// xs~sm: 14px, default~xl: 16px\nconst iconSizeClasses = {\n xs: 'icon-xs', // 14px\n sm: 'icon-xs', // 14px\n default: 'icon-sm', // 16px\n lg: 'icon-sm', // 16px\n xl: 'icon-sm', // 16px\n}\n\n// Icon padding (padding + icon + gap)\nconst iconPaddingClasses = {\n xs: { left: 'pl-8', right: 'pr-8' }, // 12px + 14px icon + 6px gap = 32px\n sm: { left: 'pl-9', right: 'pr-9' }, // 12px + 14px icon + 8px gap = 34px → 36px\n default: { left: 'pl-10', right: 'pr-10' }, // 16px + 16px icon + 8px gap = 40px\n lg: { left: 'pl-10', right: 'pr-10' }, // 16px + 16px icon + 8px gap = 40px\n xl: { left: 'pl-10', right: 'pr-10' }, // 16px + 16px icon + 8px gap = 40px\n}\n\n// Icon position (matches horizontal padding)\nconst iconPositionClasses = {\n xs: { left: 'left-3', right: 'right-3' }, // 12px\n sm: { left: 'left-3', right: 'right-3' }, // 12px\n default: { left: 'left-4', right: 'right-4' }, // 16px\n lg: { left: 'left-4', right: 'right-4' }, // 16px\n xl: { left: 'left-4', right: 'right-4' }, // 16px\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, variant, size, radius, state, type, leftIcon, rightIcon, error, focusRing, id, onPointerDown, onFocus, onBlur, ...props }, ref) => {\n const fieldContext = useFieldContext()\n const resolvedSize = size || 'default'\n const resolvedError = error ?? fieldContext?.error\n const resolvedState = resolvedError ? 'error' : state\n const inputId = id ?? fieldContext?.id\n const isDisabled = props.disabled ?? fieldContext?.disabled\n\n // Keyboard focus detection (when focusRing: false, auto-show ring on Tab navigation)\n const pointerRef = React.useRef(false)\n const windowBlurredRef = React.useRef(false)\n const [keyboardFocus, setKeyboardFocus] = React.useState(false)\n\n // Track window blur/focus to distinguish Tab navigation from window re-activation\n React.useEffect(() => {\n const onBlur = () => { windowBlurredRef.current = true }\n const onFocus = () => { requestAnimationFrame(() => { windowBlurredRef.current = false }) }\n window.addEventListener('blur', onBlur)\n window.addEventListener('focus', onFocus)\n return () => { window.removeEventListener('blur', onBlur); window.removeEventListener('focus', onFocus) }\n }, [])\n\n const handlePointerDown = React.useCallback((e: React.PointerEvent<HTMLInputElement>) => {\n pointerRef.current = true\n onPointerDown?.(e)\n }, [onPointerDown])\n\n const handleFocus = React.useCallback((e: React.FocusEvent<HTMLInputElement>) => {\n if (!pointerRef.current && !focusRing && !windowBlurredRef.current) {\n setKeyboardFocus(true)\n }\n pointerRef.current = false\n onFocus?.(e)\n }, [focusRing, onFocus])\n\n const handleBlur = React.useCallback((e: React.FocusEvent<HTMLInputElement>) => {\n setKeyboardFocus(false)\n pointerRef.current = false\n onBlur?.(e)\n }, [onBlur])\n\n // Build aria-describedby from context\n const ariaDescribedBy = fieldContext\n ? [\n resolvedError ? `${fieldContext.id}-error` : null,\n ]\n .filter(Boolean)\n .join(' ') || undefined\n : undefined\n\n const focusHandlers = {\n onPointerDown: handlePointerDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n }\n\n // If icons are present, wrap input in a container\n if (leftIcon || rightIcon) {\n return (\n <div className=\"relative w-full\">\n {leftIcon && (\n <div className={cn(\n 'absolute top-1/2 -translate-y-1/2 pointer-events-none text-text-muted z-10',\n iconPositionClasses[resolvedSize].left,\n `[&>svg]:${iconSizeClasses[resolvedSize]}`\n )}>\n {leftIcon}\n </div>\n )}\n <input\n type={type}\n id={inputId}\n className={cn(\n inputVariants({ variant, size, radius, state: resolvedState, focusRing }),\n keyboardFocus && 'shadow-[0_0_0_2px_var(--color-focus-ring)]',\n leftIcon && iconPaddingClasses[resolvedSize].left,\n rightIcon && iconPaddingClasses[resolvedSize].right,\n className\n )}\n aria-invalid={resolvedError || undefined}\n aria-describedby={ariaDescribedBy}\n disabled={isDisabled}\n ref={ref}\n {...focusHandlers}\n {...props}\n />\n {rightIcon && (\n <div className={cn(\n 'absolute top-1/2 -translate-y-1/2 pointer-events-none text-text-muted z-10',\n iconPositionClasses[resolvedSize].right,\n `[&>svg]:${iconSizeClasses[resolvedSize]}`\n )}>\n {rightIcon}\n </div>\n )}\n </div>\n )\n }\n\n return (\n <input\n type={type}\n id={inputId}\n className={cn(\n inputVariants({ variant, size, radius, state: resolvedState, focusRing }),\n keyboardFocus && 'shadow-[0_0_0_2px_var(--color-focus-ring)]',\n className\n )}\n aria-invalid={resolvedError || undefined}\n aria-describedby={ariaDescribedBy}\n disabled={isDisabled}\n ref={ref}\n {...focusHandlers}\n {...props}\n />\n )\n }\n)\nInput.displayName = 'Input'\n\nexport { Input, inputVariants }\n"],"mappings":"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","names":["onBlur","onFocus"]}