@codefast/ui 0.0.65 → 0.0.67

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 (327) hide show
  1. package/dist/{chunk-ZMF2SRE5.js → chunk-26W5NJTU.js} +1 -1
  2. package/dist/chunk-26W5NJTU.js.map +1 -0
  3. package/dist/chunk-3COHZ24E.cjs +2 -0
  4. package/dist/chunk-3COHZ24E.cjs.map +1 -0
  5. package/dist/{chunk-QEWITXOV.cjs → chunk-4MTN7WZ2.cjs} +1 -1
  6. package/dist/chunk-4MTN7WZ2.cjs.map +1 -0
  7. package/dist/chunk-5QETIFO4.js +2 -0
  8. package/dist/chunk-5QETIFO4.js.map +1 -0
  9. package/dist/{chunk-WECV77JD.cjs → chunk-5RJANBDJ.cjs} +1 -1
  10. package/dist/chunk-5RJANBDJ.cjs.map +1 -0
  11. package/dist/chunk-6UQKMUZG.cjs +2 -0
  12. package/dist/chunk-6UQKMUZG.cjs.map +1 -0
  13. package/dist/chunk-AVEDWLNQ.js +2 -0
  14. package/dist/chunk-AVEDWLNQ.js.map +1 -0
  15. package/dist/{chunk-YLE5XFEO.cjs → chunk-EW7DAPDC.cjs} +1 -1
  16. package/dist/chunk-EW7DAPDC.cjs.map +1 -0
  17. package/dist/{chunk-RSNKUKY7.js → chunk-HDHZESSG.js} +1 -1
  18. package/dist/chunk-HDHZESSG.js.map +1 -0
  19. package/dist/{chunk-GCHNSK5O.cjs → chunk-JMM2MTPI.cjs} +1 -1
  20. package/dist/chunk-JMM2MTPI.cjs.map +1 -0
  21. package/dist/{chunk-WRO3QIWH.js → chunk-JNOLIDCD.js} +1 -1
  22. package/dist/chunk-JNOLIDCD.js.map +1 -0
  23. package/dist/{chunk-F5TIIJJJ.cjs → chunk-LOJBMYTH.cjs} +1 -1
  24. package/dist/chunk-LOJBMYTH.cjs.map +1 -0
  25. package/dist/{chunk-A5ILA637.js → chunk-RBP4PBCK.js} +1 -1
  26. package/dist/chunk-RBP4PBCK.js.map +1 -0
  27. package/dist/{chunk-L7IASKCH.js → chunk-RVGKUNXC.js} +1 -1
  28. package/dist/{chunk-L7IASKCH.js.map → chunk-RVGKUNXC.js.map} +1 -1
  29. package/dist/{chunk-72NPDP3X.cjs → chunk-T3G5USVY.cjs} +1 -1
  30. package/dist/chunk-T3G5USVY.cjs.map +1 -0
  31. package/dist/chunk-VDVLCSO4.js +2 -0
  32. package/dist/chunk-VDVLCSO4.js.map +1 -0
  33. package/dist/{chunk-2OBTJ7SD.cjs → chunk-WKKCZQNO.cjs} +2 -2
  34. package/dist/chunk-WKKCZQNO.cjs.map +1 -0
  35. package/dist/{chunk-FNQFZJUG.js → chunk-WQFHFTYS.js} +1 -1
  36. package/dist/chunk-WQFHFTYS.js.map +1 -0
  37. package/dist/react/accordion.cjs.map +1 -1
  38. package/dist/react/accordion.js.map +1 -1
  39. package/dist/react/alert-dialog.cjs +1 -1
  40. package/dist/react/alert-dialog.cjs.map +1 -1
  41. package/dist/react/alert-dialog.js +1 -1
  42. package/dist/react/alert-dialog.js.map +1 -1
  43. package/dist/react/alert.cjs.map +1 -1
  44. package/dist/react/alert.js.map +1 -1
  45. package/dist/react/avatar.cjs.map +1 -1
  46. package/dist/react/avatar.js.map +1 -1
  47. package/dist/react/blockquote.cjs.map +1 -1
  48. package/dist/react/blockquote.js.map +1 -1
  49. package/dist/react/box.cjs.map +1 -1
  50. package/dist/react/box.js.map +1 -1
  51. package/dist/react/breadcrumb.cjs.map +1 -1
  52. package/dist/react/breadcrumb.js.map +1 -1
  53. package/dist/react/button.cjs +1 -1
  54. package/dist/react/button.js +1 -1
  55. package/dist/react/calendar.cjs +1 -1
  56. package/dist/react/calendar.js +1 -1
  57. package/dist/react/card.cjs.map +1 -1
  58. package/dist/react/card.js.map +1 -1
  59. package/dist/react/carousel.cjs +1 -1
  60. package/dist/react/carousel.cjs.map +1 -1
  61. package/dist/react/carousel.js +1 -1
  62. package/dist/react/carousel.js.map +1 -1
  63. package/dist/react/checkbox-cards.cjs +1 -1
  64. package/dist/react/checkbox-cards.cjs.map +1 -1
  65. package/dist/react/checkbox-cards.js +1 -1
  66. package/dist/react/checkbox-cards.js.map +1 -1
  67. package/dist/react/checkbox-group.cjs +1 -1
  68. package/dist/react/checkbox-group.cjs.map +1 -1
  69. package/dist/react/checkbox-group.js +1 -1
  70. package/dist/react/checkbox-group.js.map +1 -1
  71. package/dist/react/checkbox-group.primitive.cjs +1 -1
  72. package/dist/react/checkbox-group.primitive.js +1 -1
  73. package/dist/react/checkbox.cjs +1 -1
  74. package/dist/react/checkbox.cjs.map +1 -1
  75. package/dist/react/checkbox.js +1 -1
  76. package/dist/react/checkbox.js.map +1 -1
  77. package/dist/react/code.cjs.map +1 -1
  78. package/dist/react/code.js.map +1 -1
  79. package/dist/react/collapsible.cjs.map +1 -1
  80. package/dist/react/collapsible.js.map +1 -1
  81. package/dist/react/command.cjs +1 -1
  82. package/dist/react/command.cjs.map +1 -1
  83. package/dist/react/command.js +1 -1
  84. package/dist/react/command.js.map +1 -1
  85. package/dist/react/container.cjs.map +1 -1
  86. package/dist/react/container.js.map +1 -1
  87. package/dist/react/context-menu.cjs.map +1 -1
  88. package/dist/react/context-menu.js.map +1 -1
  89. package/dist/react/data-table.cjs +1 -1
  90. package/dist/react/data-table.js +1 -1
  91. package/dist/react/dialog.cjs +1 -1
  92. package/dist/react/dialog.js +1 -1
  93. package/dist/react/drawer.cjs.map +1 -1
  94. package/dist/react/drawer.js.map +1 -1
  95. package/dist/react/dropdown-menu.cjs +1 -1
  96. package/dist/react/dropdown-menu.js +1 -1
  97. package/dist/react/em.cjs.map +1 -1
  98. package/dist/react/em.js.map +1 -1
  99. package/dist/react/form.cjs +1 -1
  100. package/dist/react/form.cjs.map +1 -1
  101. package/dist/react/form.js +1 -1
  102. package/dist/react/form.js.map +1 -1
  103. package/dist/react/heading.cjs.map +1 -1
  104. package/dist/react/heading.js.map +1 -1
  105. package/dist/react/hover-card.cjs.map +1 -1
  106. package/dist/react/hover-card.js.map +1 -1
  107. package/dist/react/input-otp.cjs +1 -1
  108. package/dist/react/input-otp.cjs.map +1 -1
  109. package/dist/react/input-otp.js +1 -1
  110. package/dist/react/input-otp.js.map +1 -1
  111. package/dist/react/input.cjs +1 -1
  112. package/dist/react/input.cjs.map +1 -1
  113. package/dist/react/input.d.cts +113 -34
  114. package/dist/react/input.d.ts +113 -34
  115. package/dist/react/input.js +1 -1
  116. package/dist/react/input.js.map +1 -1
  117. package/dist/react/kbd.cjs.map +1 -1
  118. package/dist/react/kbd.js.map +1 -1
  119. package/dist/react/label.cjs +1 -1
  120. package/dist/react/label.js +1 -1
  121. package/dist/react/menubar.cjs.map +1 -1
  122. package/dist/react/menubar.js.map +1 -1
  123. package/dist/react/navigation-menu.cjs.map +1 -1
  124. package/dist/react/navigation-menu.js.map +1 -1
  125. package/dist/react/pagination.cjs +1 -1
  126. package/dist/react/pagination.cjs.map +1 -1
  127. package/dist/react/pagination.js +1 -1
  128. package/dist/react/pagination.js.map +1 -1
  129. package/dist/react/popover.cjs.map +1 -1
  130. package/dist/react/popover.js.map +1 -1
  131. package/dist/react/pre.cjs.map +1 -1
  132. package/dist/react/pre.js.map +1 -1
  133. package/dist/react/progress.cjs.map +1 -1
  134. package/dist/react/progress.js.map +1 -1
  135. package/dist/react/quote.cjs.map +1 -1
  136. package/dist/react/quote.js.map +1 -1
  137. package/dist/react/radio-cards.cjs +1 -1
  138. package/dist/react/radio-cards.cjs.map +1 -1
  139. package/dist/react/radio-cards.js +1 -1
  140. package/dist/react/radio-cards.js.map +1 -1
  141. package/dist/react/radio-group.cjs.map +1 -1
  142. package/dist/react/radio-group.js.map +1 -1
  143. package/dist/react/radio.cjs.map +1 -1
  144. package/dist/react/radio.js.map +1 -1
  145. package/dist/react/scroll-area.cjs.map +1 -1
  146. package/dist/react/scroll-area.js.map +1 -1
  147. package/dist/react/section.cjs.map +1 -1
  148. package/dist/react/section.js.map +1 -1
  149. package/dist/react/select.cjs +1 -1
  150. package/dist/react/select.js +1 -1
  151. package/dist/react/separator.cjs.map +1 -1
  152. package/dist/react/separator.js.map +1 -1
  153. package/dist/react/sheet.cjs.map +1 -1
  154. package/dist/react/sheet.js.map +1 -1
  155. package/dist/react/slider.cjs.map +1 -1
  156. package/dist/react/slider.js.map +1 -1
  157. package/dist/react/spinner.cjs +1 -1
  158. package/dist/react/spinner.js +1 -1
  159. package/dist/react/strong.cjs.map +1 -1
  160. package/dist/react/strong.js.map +1 -1
  161. package/dist/react/switch.cjs +1 -1
  162. package/dist/react/switch.cjs.map +1 -1
  163. package/dist/react/switch.js +1 -1
  164. package/dist/react/switch.js.map +1 -1
  165. package/dist/react/table.cjs.map +1 -1
  166. package/dist/react/table.js.map +1 -1
  167. package/dist/react/tabs.cjs.map +1 -1
  168. package/dist/react/tabs.js.map +1 -1
  169. package/dist/react/text-input.cjs +2 -0
  170. package/dist/react/text-input.cjs.map +1 -0
  171. package/dist/react/text-input.d.cts +11 -0
  172. package/dist/react/text-input.d.ts +11 -0
  173. package/dist/react/text-input.js +2 -0
  174. package/dist/react/text-input.js.map +1 -0
  175. package/dist/react/text.cjs.map +1 -1
  176. package/dist/react/text.js.map +1 -1
  177. package/dist/react/textarea.cjs +1 -1
  178. package/dist/react/textarea.cjs.map +1 -1
  179. package/dist/react/textarea.js +1 -1
  180. package/dist/react/textarea.js.map +1 -1
  181. package/dist/react/toggle-group.cjs +1 -1
  182. package/dist/react/toggle-group.cjs.map +1 -1
  183. package/dist/react/toggle-group.js +1 -1
  184. package/dist/react/toggle-group.js.map +1 -1
  185. package/dist/react/toggle.cjs +1 -1
  186. package/dist/react/toggle.js +1 -1
  187. package/dist/react/tooltip.cjs.map +1 -1
  188. package/dist/react/tooltip.js.map +1 -1
  189. package/dist/styles.css +1 -1
  190. package/dist/styles.css.map +1 -1
  191. package/package.json +76 -102
  192. package/dist/chunk-2OBTJ7SD.cjs.map +0 -1
  193. package/dist/chunk-3OEPCFBF.cjs +0 -2
  194. package/dist/chunk-3OEPCFBF.cjs.map +0 -1
  195. package/dist/chunk-6AFJCDFU.js +0 -2
  196. package/dist/chunk-6AFJCDFU.js.map +0 -1
  197. package/dist/chunk-72NPDP3X.cjs.map +0 -1
  198. package/dist/chunk-7CHCTEST.js +0 -2
  199. package/dist/chunk-7CHCTEST.js.map +0 -1
  200. package/dist/chunk-A5ILA637.js.map +0 -1
  201. package/dist/chunk-DH3YP4ZC.cjs +0 -2
  202. package/dist/chunk-DH3YP4ZC.cjs.map +0 -1
  203. package/dist/chunk-DTSAQICV.js +0 -2
  204. package/dist/chunk-DTSAQICV.js.map +0 -1
  205. package/dist/chunk-F5TIIJJJ.cjs.map +0 -1
  206. package/dist/chunk-FNQFZJUG.js.map +0 -1
  207. package/dist/chunk-GCHNSK5O.cjs.map +0 -1
  208. package/dist/chunk-NH6X3FON.js +0 -2
  209. package/dist/chunk-NH6X3FON.js.map +0 -1
  210. package/dist/chunk-P563ILDJ.cjs +0 -2
  211. package/dist/chunk-P563ILDJ.cjs.map +0 -1
  212. package/dist/chunk-QEWITXOV.cjs.map +0 -1
  213. package/dist/chunk-RSNKUKY7.js.map +0 -1
  214. package/dist/chunk-VVA2EE5V.js +0 -2
  215. package/dist/chunk-VVA2EE5V.js.map +0 -1
  216. package/dist/chunk-VZ6P3BCB.cjs +0 -2
  217. package/dist/chunk-VZ6P3BCB.cjs.map +0 -1
  218. package/dist/chunk-WECV77JD.cjs.map +0 -1
  219. package/dist/chunk-WRO3QIWH.js.map +0 -1
  220. package/dist/chunk-YLE5XFEO.cjs.map +0 -1
  221. package/dist/chunk-ZMF2SRE5.js.map +0 -1
  222. package/dist/hooks/use-media-query.cjs +0 -2
  223. package/dist/hooks/use-media-query.cjs.map +0 -1
  224. package/dist/hooks/use-media-query.d.cts +0 -3
  225. package/dist/hooks/use-media-query.d.ts +0 -3
  226. package/dist/hooks/use-media-query.js +0 -2
  227. package/dist/hooks/use-media-query.js.map +0 -1
  228. package/dist/hooks/use-mutation-observer.cjs +0 -2
  229. package/dist/hooks/use-mutation-observer.cjs.map +0 -1
  230. package/dist/hooks/use-mutation-observer.d.cts +0 -5
  231. package/dist/hooks/use-mutation-observer.d.ts +0 -5
  232. package/dist/hooks/use-mutation-observer.js +0 -2
  233. package/dist/hooks/use-mutation-observer.js.map +0 -1
  234. package/dist/lib/colors.cjs +0 -2
  235. package/dist/lib/colors.cjs.map +0 -1
  236. package/dist/lib/colors.d.cts +0 -1759
  237. package/dist/lib/colors.d.ts +0 -1759
  238. package/dist/lib/colors.js +0 -2
  239. package/dist/lib/colors.js.map +0 -1
  240. package/dist/plugin/animate.plugin.cjs +0 -2
  241. package/dist/plugin/animate.plugin.cjs.map +0 -1
  242. package/dist/plugin/animate.plugin.js +0 -2
  243. package/dist/plugin/animate.plugin.js.map +0 -1
  244. package/dist/plugin/base.plugin.cjs +0 -2
  245. package/dist/plugin/base.plugin.cjs.map +0 -1
  246. package/dist/plugin/base.plugin.js +0 -2
  247. package/dist/plugin/base.plugin.js.map +0 -1
  248. package/dist/plugin/perspective.plugin.cjs +0 -2
  249. package/dist/plugin/perspective.plugin.cjs.map +0 -1
  250. package/dist/plugin/perspective.plugin.js +0 -2
  251. package/dist/plugin/perspective.plugin.js.map +0 -1
  252. package/dist/tailwind.config.cjs +0 -2
  253. package/dist/tailwind.config.cjs.map +0 -1
  254. package/dist/tailwind.config.js +0 -2
  255. package/dist/tailwind.config.js.map +0 -1
  256. package/plugin/animate.plugin.ts +0 -319
  257. package/plugin/base.plugin.ts +0 -21
  258. package/plugin/perspective.plugin.ts +0 -11
  259. package/src/hooks/use-media-query.ts +0 -22
  260. package/src/hooks/use-mutation-observer.ts +0 -26
  261. package/src/lib/colors.ts +0 -1757
  262. package/src/lib/utils.ts +0 -6
  263. package/src/react/accordion.tsx +0 -86
  264. package/src/react/alert-dialog.tsx +0 -177
  265. package/src/react/alert.tsx +0 -71
  266. package/src/react/aspect-ratio.tsx +0 -17
  267. package/src/react/avatar.tsx +0 -58
  268. package/src/react/badge.tsx +0 -39
  269. package/src/react/blockquote.tsx +0 -26
  270. package/src/react/box.tsx +0 -34
  271. package/src/react/breadcrumb.tsx +0 -148
  272. package/src/react/button.tsx +0 -95
  273. package/src/react/calendar.tsx +0 -79
  274. package/src/react/card.tsx +0 -103
  275. package/src/react/carousel.tsx +0 -299
  276. package/src/react/checkbox-cards.tsx +0 -59
  277. package/src/react/checkbox-group.primitive.tsx +0 -200
  278. package/src/react/checkbox-group.tsx +0 -53
  279. package/src/react/checkbox.tsx +0 -36
  280. package/src/react/code.tsx +0 -26
  281. package/src/react/collapsible.tsx +0 -54
  282. package/src/react/command.tsx +0 -199
  283. package/src/react/container.tsx +0 -27
  284. package/src/react/context-menu.tsx +0 -302
  285. package/src/react/data-table.tsx +0 -249
  286. package/src/react/dialog.tsx +0 -156
  287. package/src/react/drawer.tsx +0 -132
  288. package/src/react/dropdown-menu.tsx +0 -286
  289. package/src/react/em.tsx +0 -26
  290. package/src/react/form.tsx +0 -218
  291. package/src/react/heading.tsx +0 -27
  292. package/src/react/hover-card.tsx +0 -73
  293. package/src/react/input-otp.tsx +0 -114
  294. package/src/react/input.tsx +0 -42
  295. package/src/react/kbd.tsx +0 -36
  296. package/src/react/label.tsx +0 -31
  297. package/src/react/menubar.tsx +0 -316
  298. package/src/react/navigation-menu.tsx +0 -192
  299. package/src/react/pagination.tsx +0 -150
  300. package/src/react/popover.tsx +0 -82
  301. package/src/react/pre.tsx +0 -26
  302. package/src/react/progress.tsx +0 -35
  303. package/src/react/quote.tsx +0 -26
  304. package/src/react/radio-cards.tsx +0 -46
  305. package/src/react/radio-group.tsx +0 -48
  306. package/src/react/radio.tsx +0 -38
  307. package/src/react/resizable.tsx +0 -62
  308. package/src/react/scroll-area.tsx +0 -106
  309. package/src/react/section.tsx +0 -26
  310. package/src/react/select.tsx +0 -217
  311. package/src/react/separator.tsx +0 -32
  312. package/src/react/sheet.tsx +0 -170
  313. package/src/react/skeleton.tsx +0 -18
  314. package/src/react/slider.tsx +0 -41
  315. package/src/react/sonner.tsx +0 -40
  316. package/src/react/spinner.tsx +0 -68
  317. package/src/react/strong.tsx +0 -26
  318. package/src/react/switch.tsx +0 -33
  319. package/src/react/table.tsx +0 -142
  320. package/src/react/tabs.tsx +0 -87
  321. package/src/react/text.tsx +0 -34
  322. package/src/react/textarea.tsx +0 -30
  323. package/src/react/toggle-group.tsx +0 -81
  324. package/src/react/toggle.tsx +0 -49
  325. package/src/react/tooltip.tsx +0 -81
  326. package/src/styles/styles.css +0 -3
  327. package/tailwind.config.ts +0 -126
@@ -1,218 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import { Slot } from '@radix-ui/react-slot';
5
- import {
6
- Controller,
7
- type ControllerProps,
8
- type FieldError,
9
- type FieldErrorsImpl,
10
- type FieldPath,
11
- type FieldValues,
12
- FormProvider,
13
- type Merge,
14
- useFormContext,
15
- } from 'react-hook-form';
16
- import type * as LabelPrimitive from '@radix-ui/react-label';
17
- import { cn } from '../lib/utils';
18
- import { Label } from './label';
19
-
20
- /* -----------------------------------------------------------------------------
21
- * Context: Form
22
- * -------------------------------------------------------------------------- */
23
-
24
- interface FormFieldContextValue<
25
- TFieldValues extends FieldValues = FieldValues,
26
- TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
27
- > {
28
- name: TName;
29
- }
30
-
31
- interface FormItemContextValue {
32
- id: string;
33
- }
34
-
35
- const FormFieldContext = React.createContext<FormFieldContextValue | null>(null);
36
-
37
- const FormItemContext = React.createContext<FormItemContextValue | null>(null);
38
-
39
- const useFormField = (): {
40
- formDescriptionId: string;
41
- formItemId: string;
42
- formMessageId: string;
43
- id: string;
44
- invalid: boolean;
45
- isDirty: boolean;
46
- isTouched: boolean;
47
- isValidating: boolean;
48
- name: string;
49
- error?: FieldError | Merge<FieldError, FieldErrorsImpl> | undefined;
50
- } => {
51
- const fieldContext = React.useContext(FormFieldContext);
52
- const itemContext = React.useContext(FormItemContext);
53
- const { getFieldState, formState } = useFormContext();
54
-
55
- if (!fieldContext || !itemContext) {
56
- throw new Error('useFormField should be used within <FormField>');
57
- }
58
-
59
- const fieldState = getFieldState(fieldContext.name, formState);
60
-
61
- const { id } = itemContext;
62
-
63
- return {
64
- id,
65
- name: fieldContext.name,
66
- formItemId: `form-item-${id}`,
67
- formDescriptionId: `form-item-description-${id}`,
68
- formMessageId: `form-item-message-${id}`,
69
- ...fieldState,
70
- };
71
- };
72
-
73
- /* -----------------------------------------------------------------------------
74
- * Component: Form
75
- * -------------------------------------------------------------------------- */
76
-
77
- type FormProps = React.ComponentProps<typeof FormProvider>;
78
- const Form = FormProvider;
79
-
80
- /* -----------------------------------------------------------------------------
81
- * Component: FormField
82
- * -------------------------------------------------------------------------- */
83
-
84
- type FormFieldProps<
85
- TFieldValues extends FieldValues = FieldValues,
86
- TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
87
- > = ControllerProps<TFieldValues, TName>;
88
-
89
- function FormField<
90
- TFieldValues extends FieldValues = FieldValues,
91
- TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
92
- >({ ...props }: FormFieldProps<TFieldValues, TName>): React.JSX.Element {
93
- return (
94
- <FormFieldContext.Provider value={{ name: props.name }}>
95
- <Controller {...props} />
96
- </FormFieldContext.Provider>
97
- );
98
- }
99
-
100
- /* -----------------------------------------------------------------------------
101
- * Component: FormItem
102
- * -------------------------------------------------------------------------- */
103
-
104
- type FormItemElement = HTMLDivElement;
105
- type FormItemProps = React.HTMLAttributes<HTMLDivElement>;
106
-
107
- const FormItem = React.forwardRef<FormItemElement, FormItemProps>(({ className, ...props }, ref) => {
108
- const id = React.useId();
109
-
110
- return (
111
- <FormItemContext.Provider value={{ id }}>
112
- <div ref={ref} className={cn('space-y-2', className)} {...props} />
113
- </FormItemContext.Provider>
114
- );
115
- });
116
-
117
- FormItem.displayName = 'FormItem';
118
-
119
- /* -----------------------------------------------------------------------------
120
- * Component: FormLabel
121
- * -------------------------------------------------------------------------- */
122
-
123
- type FormFieldElement = React.ElementRef<typeof LabelPrimitive.Root>;
124
- type FormLabelProps = React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>;
125
-
126
- const FormLabel = React.forwardRef<FormFieldElement, FormLabelProps>(({ className, ...props }, ref) => {
127
- const { error, formItemId } = useFormField();
128
-
129
- return <Label ref={ref} className={cn(error && 'text-destructive', className)} htmlFor={formItemId} {...props} />;
130
- });
131
-
132
- FormLabel.displayName = 'FormLabel';
133
-
134
- /* -----------------------------------------------------------------------------
135
- * Component: FormControl
136
- * -------------------------------------------------------------------------- */
137
-
138
- type FormControlElement = React.ElementRef<typeof Slot>;
139
- type FormControlProps = React.ComponentPropsWithoutRef<typeof Slot>;
140
-
141
- const FormControl = React.forwardRef<FormControlElement, FormControlProps>(({ ...props }, ref) => {
142
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
143
-
144
- return (
145
- <Slot
146
- ref={ref}
147
- aria-describedby={!error ? formDescriptionId : `${formDescriptionId} ${formMessageId}`}
148
- aria-invalid={Boolean(error)}
149
- id={formItemId}
150
- {...props}
151
- />
152
- );
153
- });
154
-
155
- FormControl.displayName = 'FormControl';
156
-
157
- /* -----------------------------------------------------------------------------
158
- * Component: FormDescription
159
- * -------------------------------------------------------------------------- */
160
-
161
- type FormDescriptionElement = HTMLParagraphElement;
162
- type FormDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;
163
-
164
- const FormDescription = React.forwardRef<FormDescriptionElement, FormDescriptionProps>(
165
- ({ className, ...props }, ref) => {
166
- const { formDescriptionId } = useFormField();
167
-
168
- return <p ref={ref} className={cn('text-muted-foreground text-xs', className)} id={formDescriptionId} {...props} />;
169
- },
170
- );
171
-
172
- FormDescription.displayName = 'FormDescription';
173
-
174
- /* -----------------------------------------------------------------------------
175
- * Component: FormMessage
176
- * -------------------------------------------------------------------------- */
177
-
178
- type FormMessageElement = HTMLParagraphElement;
179
- type FormMessageProps = React.HTMLAttributes<HTMLParagraphElement>;
180
-
181
- const FormMessage = React.forwardRef<FormMessageElement, FormMessageProps>(({ children, className, ...props }, ref) => {
182
- const { error, formMessageId } = useFormField();
183
- const body = error?.message ? String(error.message) : children;
184
-
185
- if (!body) {
186
- return null;
187
- }
188
-
189
- return (
190
- <p ref={ref} className={cn('text-destructive text-xs font-medium', className)} id={formMessageId} {...props}>
191
- {body}
192
- </p>
193
- );
194
- });
195
-
196
- FormMessage.displayName = 'FormMessage';
197
-
198
- /* -----------------------------------------------------------------------------
199
- * Exports
200
- * -------------------------------------------------------------------------- */
201
-
202
- export {
203
- useFormField,
204
- Form,
205
- FormItem,
206
- FormLabel,
207
- FormControl,
208
- FormDescription,
209
- FormMessage,
210
- FormField,
211
- type FormProps,
212
- type FormItemProps,
213
- type FormLabelProps,
214
- type FormControlProps,
215
- type FormDescriptionProps,
216
- type FormMessageProps,
217
- type FormFieldProps,
218
- };
@@ -1,27 +0,0 @@
1
- import * as React from 'react';
2
- import { Slot } from '@radix-ui/react-slot';
3
-
4
- /* -----------------------------------------------------------------------------
5
- * Component: Heading
6
- * -------------------------------------------------------------------------- */
7
-
8
- type HeadingElement = HTMLHeadingElement;
9
-
10
- interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
11
- as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
12
- asChild?: boolean;
13
- }
14
-
15
- const Heading = React.forwardRef<HeadingElement, HeadingProps>(({ asChild, as: Tag = 'h1', ...props }, ref) => {
16
- const Component = asChild ? Slot : Tag;
17
-
18
- return <Component ref={ref} {...props} />;
19
- });
20
-
21
- Heading.displayName = 'Heading';
22
-
23
- /* -----------------------------------------------------------------------------
24
- * Exports
25
- * -------------------------------------------------------------------------- */
26
-
27
- export { Heading, type HeadingProps };
@@ -1,73 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
5
- import { cn } from '../lib/utils';
6
-
7
- /* -----------------------------------------------------------------------------
8
- * Component: HoverCard
9
- * -------------------------------------------------------------------------- */
10
-
11
- type HoverCardProps = React.ComponentProps<typeof HoverCardPrimitive.Root>;
12
- const HoverCard = HoverCardPrimitive.Root;
13
-
14
- /* -----------------------------------------------------------------------------
15
- * Component: HoverCardTrigger
16
- * -------------------------------------------------------------------------- */
17
-
18
- type HoverCardTriggerProps = React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Trigger>;
19
- const HoverCardTrigger = HoverCardPrimitive.Trigger;
20
-
21
- /* -----------------------------------------------------------------------------
22
- * Component: HoverCardContent
23
- * -------------------------------------------------------------------------- */
24
-
25
- type HoverCardContentElement = React.ElementRef<typeof HoverCardPrimitive.Content>;
26
- type HoverCardContentProps = React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>;
27
-
28
- const HoverCardContent = React.forwardRef<HoverCardContentElement, HoverCardContentProps>(
29
- ({ className, align = 'center', sideOffset = 6, ...props }, ref) => (
30
- <HoverCardPrimitive.Portal>
31
- <HoverCardPrimitive.Content
32
- ref={ref}
33
- align={align}
34
- className={cn(
35
- 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 z-50 min-w-32 rounded-md border p-4 shadow-md',
36
- className,
37
- )}
38
- sideOffset={sideOffset}
39
- {...props}
40
- />
41
- </HoverCardPrimitive.Portal>
42
- ),
43
- );
44
-
45
- HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
46
-
47
- /* -----------------------------------------------------------------------------
48
- * Component: HoverCardArrow
49
- * -------------------------------------------------------------------------- */
50
-
51
- type HoverCardArrowElement = React.ElementRef<typeof HoverCardPrimitive.Arrow>;
52
- type HoverCardArrowProps = React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Arrow>;
53
-
54
- const HoverCardArrow = React.forwardRef<HoverCardArrowElement, HoverCardArrowProps>(({ className, ...props }, ref) => (
55
- <HoverCardPrimitive.Arrow ref={ref} className={cn('fill-popover', className)} {...props} />
56
- ));
57
-
58
- HoverCardArrow.displayName = HoverCardPrimitive.Arrow.displayName;
59
-
60
- /* -----------------------------------------------------------------------------
61
- * Exports
62
- * -------------------------------------------------------------------------- */
63
-
64
- export {
65
- HoverCard,
66
- HoverCardTrigger,
67
- HoverCardContent,
68
- HoverCardArrow,
69
- type HoverCardProps,
70
- type HoverCardTriggerProps,
71
- type HoverCardContentProps,
72
- type HoverCardArrowProps,
73
- };
@@ -1,114 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import { DotFilledIcon } from '@radix-ui/react-icons';
5
- import {
6
- OTPInput,
7
- OTPInputContext,
8
- REGEXP_ONLY_CHARS,
9
- REGEXP_ONLY_DIGITS,
10
- REGEXP_ONLY_DIGITS_AND_CHARS,
11
- } from 'input-otp';
12
- import { cn } from '../lib/utils';
13
-
14
- /* -----------------------------------------------------------------------------
15
- * Component: InputOtp
16
- * -------------------------------------------------------------------------- */
17
-
18
- type InputOTPElement = React.ElementRef<typeof OTPInput>;
19
- type InputOTPProps = React.ComponentPropsWithoutRef<typeof OTPInput>;
20
-
21
- const InputOTP = React.forwardRef<InputOTPElement, InputOTPProps>(
22
- ({ className, containerClassName, ...props }, ref) => (
23
- <OTPInput
24
- ref={ref}
25
- className={cn('disabled:cursor-not-allowed', className)}
26
- containerClassName={cn('flex items-center gap-2 has-[:disabled]:opacity-50', containerClassName)}
27
- {...props}
28
- />
29
- ),
30
- );
31
-
32
- InputOTP.displayName = 'InputOTP';
33
-
34
- /* -----------------------------------------------------------------------------
35
- * Component: InputOTPGroup
36
- * -------------------------------------------------------------------------- */
37
-
38
- type InputOTPGroupElement = HTMLDivElement;
39
- type InputOTPGroupProps = React.HTMLAttributes<HTMLDivElement>;
40
-
41
- const InputOTPGroup = React.forwardRef<InputOTPGroupElement, InputOTPGroupProps>(({ className, ...props }, ref) => (
42
- <div ref={ref} className={cn('flex items-center', className)} {...props} />
43
- ));
44
-
45
- InputOTPGroup.displayName = 'InputOTPGroup';
46
-
47
- /* -----------------------------------------------------------------------------
48
- * Component: InputOTPSlot
49
- * -------------------------------------------------------------------------- */
50
-
51
- type InputOTPSlotElement = HTMLDivElement;
52
-
53
- interface InputOTPSlotProps extends React.HTMLAttributes<HTMLDivElement> {
54
- index: number;
55
- }
56
-
57
- const InputOTPSlot = React.forwardRef<InputOTPSlotElement, InputOTPSlotProps>(({ index, className, ...props }, ref) => {
58
- const inputOTPContext = React.useContext(OTPInputContext);
59
- const slot = inputOTPContext.slots[index];
60
-
61
- return (
62
- <div
63
- ref={ref}
64
- className={cn(
65
- 'border-input relative flex size-10 items-center justify-center border-y border-r text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md',
66
- slot?.isActive && 'z-10 outline outline-2',
67
- className,
68
- )}
69
- {...props}
70
- >
71
- {slot?.char}
72
- {slot?.hasFakeCaret ? (
73
- <div className="pointer-events-none absolute inset-0 flex items-center justify-center">
74
- <div className="animate-caret-blink bg-foreground animate-duration-1000 h-4 w-px" />
75
- </div>
76
- ) : null}
77
- </div>
78
- );
79
- });
80
-
81
- InputOTPSlot.displayName = 'InputOTPSlot';
82
-
83
- /* -----------------------------------------------------------------------------
84
- * Component: InputOTPSeparator
85
- * -------------------------------------------------------------------------- */
86
-
87
- type InputOTPSeparatorElement = HTMLDivElement;
88
- type InputOTPSeparatorProps = React.HTMLAttributes<HTMLDivElement>;
89
-
90
- const InputOTPSeparator = React.forwardRef<InputOTPSeparatorElement, InputOTPSeparatorProps>(({ ...props }, ref) => (
91
- <div ref={ref} role="separator" {...props}>
92
- <DotFilledIcon />
93
- </div>
94
- ));
95
-
96
- InputOTPSeparator.displayName = 'InputOTPSeparator';
97
-
98
- /* -----------------------------------------------------------------------------
99
- * Exports
100
- * -------------------------------------------------------------------------- */
101
-
102
- export {
103
- InputOTP,
104
- InputOTPGroup,
105
- InputOTPSlot,
106
- InputOTPSeparator,
107
- type InputOTPProps,
108
- type InputOTPGroupProps,
109
- type InputOTPSlotProps,
110
- type InputOTPSeparatorProps,
111
- REGEXP_ONLY_DIGITS_AND_CHARS,
112
- REGEXP_ONLY_CHARS,
113
- REGEXP_ONLY_DIGITS,
114
- };
@@ -1,42 +0,0 @@
1
- import * as React from 'react';
2
- import { tv, type VariantProps } from 'tailwind-variants';
3
-
4
- /* -----------------------------------------------------------------------------
5
- * Variant: Input
6
- * -------------------------------------------------------------------------- */
7
-
8
- const inputVariants = tv({
9
- base: 'border-input placeholder:text-muted-foreground flex w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm transition file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-50',
10
- variants: {
11
- inputSize: {
12
- default: 'h-10',
13
- xs: 'h-8',
14
- sm: 'h-9',
15
- lg: 'h-11',
16
- },
17
- },
18
- defaultVariants: {
19
- inputSize: 'default',
20
- },
21
- });
22
-
23
- type InputVariantsProps = VariantProps<typeof inputVariants>;
24
-
25
- /* -----------------------------------------------------------------------------
26
- * Component: Input
27
- * -------------------------------------------------------------------------- */
28
-
29
- type InputElement = HTMLInputElement;
30
- type InputProps = React.InputHTMLAttributes<HTMLInputElement> & InputVariantsProps;
31
-
32
- const Input = React.forwardRef<InputElement, InputProps>(({ className, inputSize, ...props }, ref) => {
33
- return <input ref={ref} className={inputVariants({ className, inputSize })} type="text" {...props} />;
34
- });
35
-
36
- Input.displayName = 'Input';
37
-
38
- /* -----------------------------------------------------------------------------
39
- * Exports
40
- * -------------------------------------------------------------------------- */
41
-
42
- export { Input, type InputProps };
package/src/react/kbd.tsx DELETED
@@ -1,36 +0,0 @@
1
- import * as React from 'react';
2
- import { Slot } from '@radix-ui/react-slot';
3
- import { cn } from '../lib/utils';
4
-
5
- /* -----------------------------------------------------------------------------
6
- * Component: Kbd
7
- * -------------------------------------------------------------------------- */
8
-
9
- type KbdElement = HTMLElement;
10
-
11
- interface KbdProps extends React.HTMLAttributes<HTMLElement> {
12
- asChild?: boolean;
13
- }
14
-
15
- const Kbd = React.forwardRef<KbdElement, KbdProps>(({ asChild, className, ...props }, ref) => {
16
- const Component = asChild ? Slot : 'kbd';
17
-
18
- return (
19
- <Component
20
- ref={ref}
21
- className={cn(
22
- 'bg-muted text-muted-foreground inline-flex h-5 select-none items-center gap-1 rounded border px-1.5 font-mono text-xs font-medium',
23
- className,
24
- )}
25
- {...props}
26
- />
27
- );
28
- });
29
-
30
- Kbd.displayName = 'Kbd';
31
-
32
- /* -----------------------------------------------------------------------------
33
- * Exports
34
- * -------------------------------------------------------------------------- */
35
-
36
- export { Kbd, type KbdProps };
@@ -1,31 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import * as LabelPrimitive from '@radix-ui/react-label';
5
- import { cn } from '../lib/utils';
6
-
7
- /* -----------------------------------------------------------------------------
8
- * Component: Label
9
- * -------------------------------------------------------------------------- */
10
-
11
- type LabelElement = React.ElementRef<typeof LabelPrimitive.Root>;
12
- type LabelProps = React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>;
13
-
14
- const Label = React.forwardRef<LabelElement, LabelProps>(({ className, ...props }, ref) => (
15
- <LabelPrimitive.Root
16
- ref={ref}
17
- className={cn(
18
- 'text-sm font-medium leading-none peer-disabled:pointer-events-none peer-disabled:opacity-70',
19
- className,
20
- )}
21
- {...props}
22
- />
23
- ));
24
-
25
- Label.displayName = LabelPrimitive.Root.displayName;
26
-
27
- /* -----------------------------------------------------------------------------
28
- * Exports
29
- * -------------------------------------------------------------------------- */
30
-
31
- export { Label, type LabelProps };