@mesob/ui 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 (230) hide show
  1. package/dist/components.d.ts +992 -0
  2. package/dist/components.js +8030 -0
  3. package/dist/components.js.map +1 -0
  4. package/dist/hooks.d.ts +6 -0
  5. package/dist/hooks.js +85 -0
  6. package/dist/hooks.js.map +1 -0
  7. package/dist/providers.d.ts +20 -0
  8. package/dist/providers.js +61 -0
  9. package/dist/providers.js.map +1 -0
  10. package/dist/use-entity-params-nqD69tdX.d.ts +82 -0
  11. package/package.json +14 -27
  12. package/dist/components/accordion.d.ts +0 -10
  13. package/dist/components/accordion.js +0 -74
  14. package/dist/components/accordion.js.map +0 -1
  15. package/dist/components/alert-dialog.d.ts +0 -17
  16. package/dist/components/alert-dialog.js +0 -187
  17. package/dist/components/alert-dialog.js.map +0 -1
  18. package/dist/components/alert.d.ts +0 -13
  19. package/dist/components/alert.js +0 -74
  20. package/dist/components/alert.js.map +0 -1
  21. package/dist/components/animated-tabs.d.ts +0 -26
  22. package/dist/components/animated-tabs.js +0 -290
  23. package/dist/components/animated-tabs.js.map +0 -1
  24. package/dist/components/app-breadcrumbs-context.d.ts +0 -19
  25. package/dist/components/app-breadcrumbs-context.js +0 -19
  26. package/dist/components/app-breadcrumbs-context.js.map +0 -1
  27. package/dist/components/app-breadcrumbs.d.ts +0 -25
  28. package/dist/components/app-breadcrumbs.js +0 -175
  29. package/dist/components/app-breadcrumbs.js.map +0 -1
  30. package/dist/components/app-header-actions.d.ts +0 -39
  31. package/dist/components/app-header-actions.js +0 -644
  32. package/dist/components/app-header-actions.js.map +0 -1
  33. package/dist/components/app-sidebar.d.ts +0 -24
  34. package/dist/components/app-sidebar.js +0 -667
  35. package/dist/components/app-sidebar.js.map +0 -1
  36. package/dist/components/aspect-ratio.d.ts +0 -6
  37. package/dist/components/aspect-ratio.js +0 -14
  38. package/dist/components/aspect-ratio.js.map +0 -1
  39. package/dist/components/avatar.d.ts +0 -9
  40. package/dist/components/avatar.js +0 -63
  41. package/dist/components/avatar.js.map +0 -1
  42. package/dist/components/badge.d.ts +0 -13
  43. package/dist/components/badge.js +0 -48
  44. package/dist/components/badge.js.map +0 -1
  45. package/dist/components/breadcrumb.d.ts +0 -14
  46. package/dist/components/breadcrumb.js +0 -110
  47. package/dist/components/breadcrumb.js.map +0 -1
  48. package/dist/components/button-group.d.ts +0 -17
  49. package/dist/components/button-group.js +0 -106
  50. package/dist/components/button-group.js.map +0 -1
  51. package/dist/components/button.d.ts +0 -17
  52. package/dist/components/button.js +0 -68
  53. package/dist/components/button.js.map +0 -1
  54. package/dist/components/calendar.d.ts +0 -13
  55. package/dist/components/calendar.js +0 -262
  56. package/dist/components/calendar.js.map +0 -1
  57. package/dist/components/card.d.ts +0 -12
  58. package/dist/components/card.js +0 -98
  59. package/dist/components/card.js.map +0 -1
  60. package/dist/components/carousel.d.ts +0 -24
  61. package/dist/components/carousel.js +0 -268
  62. package/dist/components/carousel.js.map +0 -1
  63. package/dist/components/chart.d.ts +0 -43
  64. package/dist/components/chart.js +0 -271
  65. package/dist/components/chart.js.map +0 -1
  66. package/dist/components/checkbox.d.ts +0 -7
  67. package/dist/components/checkbox.js +0 -41
  68. package/dist/components/checkbox.js.map +0 -1
  69. package/dist/components/collapsible.d.ts +0 -8
  70. package/dist/components/collapsible.js +0 -38
  71. package/dist/components/collapsible.js.map +0 -1
  72. package/dist/components/command.d.ts +0 -22
  73. package/dist/components/command.js +0 -281
  74. package/dist/components/command.js.map +0 -1
  75. package/dist/components/context-menu.d.ts +0 -28
  76. package/dist/components/context-menu.js +0 -233
  77. package/dist/components/context-menu.js.map +0 -1
  78. package/dist/components/data-table/index.d.ts +0 -53
  79. package/dist/components/data-table/index.js +0 -823
  80. package/dist/components/data-table/index.js.map +0 -1
  81. package/dist/components/dialog.d.ts +0 -18
  82. package/dist/components/dialog.js +0 -146
  83. package/dist/components/dialog.js.map +0 -1
  84. package/dist/components/drawer.d.ts +0 -16
  85. package/dist/components/drawer.js +0 -138
  86. package/dist/components/drawer.js.map +0 -1
  87. package/dist/components/dropdown-menu.d.ts +0 -28
  88. package/dist/components/dropdown-menu.js +0 -241
  89. package/dist/components/dropdown-menu.js.map +0 -1
  90. package/dist/components/empty.d.ts +0 -15
  91. package/dist/components/empty.js +0 -110
  92. package/dist/components/empty.js.map +0 -1
  93. package/dist/components/entity/index.d.ts +0 -236
  94. package/dist/components/entity/index.js +0 -1796
  95. package/dist/components/entity/index.js.map +0 -1
  96. package/dist/components/field.d.ts +0 -30
  97. package/dist/components/field.js +0 -279
  98. package/dist/components/field.js.map +0 -1
  99. package/dist/components/form.d.ts +0 -28
  100. package/dist/components/form.js +0 -150
  101. package/dist/components/form.js.map +0 -1
  102. package/dist/components/hover-card.d.ts +0 -9
  103. package/dist/components/hover-card.js +0 -48
  104. package/dist/components/hover-card.js.map +0 -1
  105. package/dist/components/input-group.d.ts +0 -20
  106. package/dist/components/input-group.js +0 -265
  107. package/dist/components/input-group.js.map +0 -1
  108. package/dist/components/input-otp.d.ts +0 -14
  109. package/dist/components/input-otp.js +0 -76
  110. package/dist/components/input-otp.js.map +0 -1
  111. package/dist/components/input.d.ts +0 -6
  112. package/dist/components/input.js +0 -29
  113. package/dist/components/input.js.map +0 -1
  114. package/dist/components/item.d.ts +0 -28
  115. package/dist/components/item.js +0 -220
  116. package/dist/components/item.js.map +0 -1
  117. package/dist/components/kbd.d.ts +0 -6
  118. package/dist/components/kbd.js +0 -39
  119. package/dist/components/kbd.js.map +0 -1
  120. package/dist/components/label.d.ts +0 -7
  121. package/dist/components/label.js +0 -32
  122. package/dist/components/label.js.map +0 -1
  123. package/dist/components/link.d.ts +0 -12
  124. package/dist/components/link.js +0 -51
  125. package/dist/components/link.js.map +0 -1
  126. package/dist/components/menubar.d.ts +0 -29
  127. package/dist/components/menubar.js +0 -261
  128. package/dist/components/menubar.js.map +0 -1
  129. package/dist/components/mesob-context.d.ts +0 -34
  130. package/dist/components/mesob-context.js +0 -53
  131. package/dist/components/mesob-context.js.map +0 -1
  132. package/dist/components/mesob-logo.d.ts +0 -13
  133. package/dist/components/mesob-logo.js +0 -80
  134. package/dist/components/mesob-logo.js.map +0 -1
  135. package/dist/components/navigation-menu.d.ts +0 -18
  136. package/dist/components/navigation-menu.js +0 -178
  137. package/dist/components/navigation-menu.js.map +0 -1
  138. package/dist/components/page/index.d.ts +0 -46
  139. package/dist/components/page/index.js +0 -205
  140. package/dist/components/page/index.js.map +0 -1
  141. package/dist/components/pagination.d.ts +0 -18
  142. package/dist/components/pagination.js +0 -160
  143. package/dist/components/pagination.js.map +0 -1
  144. package/dist/components/popover.d.ts +0 -10
  145. package/dist/components/popover.js +0 -54
  146. package/dist/components/popover.js.map +0 -1
  147. package/dist/components/powered-by.d.ts +0 -8
  148. package/dist/components/powered-by.js +0 -114
  149. package/dist/components/powered-by.js.map +0 -1
  150. package/dist/components/progress.d.ts +0 -7
  151. package/dist/components/progress.js +0 -41
  152. package/dist/components/progress.js.map +0 -1
  153. package/dist/components/radio-group.d.ts +0 -8
  154. package/dist/components/radio-group.js +0 -55
  155. package/dist/components/radio-group.js.map +0 -1
  156. package/dist/components/resizable.d.ts +0 -11
  157. package/dist/components/resizable.js +0 -58
  158. package/dist/components/resizable.js.map +0 -1
  159. package/dist/components/scroll-area.d.ts +0 -8
  160. package/dist/components/scroll-area.js +0 -70
  161. package/dist/components/scroll-area.js.map +0 -1
  162. package/dist/components/section/index.d.ts +0 -14
  163. package/dist/components/section/index.js +0 -147
  164. package/dist/components/section/index.js.map +0 -1
  165. package/dist/components/select.d.ts +0 -18
  166. package/dist/components/select.js +0 -181
  167. package/dist/components/select.js.map +0 -1
  168. package/dist/components/separator.d.ts +0 -7
  169. package/dist/components/separator.js +0 -36
  170. package/dist/components/separator.js.map +0 -1
  171. package/dist/components/sheet.d.ts +0 -16
  172. package/dist/components/sheet.js +0 -136
  173. package/dist/components/sheet.js.map +0 -1
  174. package/dist/components/shell.d.ts +0 -13
  175. package/dist/components/shell.js +0 -548
  176. package/dist/components/shell.js.map +0 -1
  177. package/dist/components/sidebar-context.d.ts +0 -19
  178. package/dist/components/sidebar-context.js +0 -17
  179. package/dist/components/sidebar-context.js.map +0 -1
  180. package/dist/components/sidebar.d.ts +0 -66
  181. package/dist/components/sidebar.js +0 -943
  182. package/dist/components/sidebar.js.map +0 -1
  183. package/dist/components/skeleton.d.ts +0 -5
  184. package/dist/components/skeleton.js +0 -23
  185. package/dist/components/skeleton.js.map +0 -1
  186. package/dist/components/slider.d.ts +0 -7
  187. package/dist/components/slider.js +0 -76
  188. package/dist/components/slider.js.map +0 -1
  189. package/dist/components/sonner.d.ts +0 -7
  190. package/dist/components/sonner.js +0 -43
  191. package/dist/components/sonner.js.map +0 -1
  192. package/dist/components/spinner.d.ts +0 -6
  193. package/dist/components/spinner.js +0 -28
  194. package/dist/components/spinner.js.map +0 -1
  195. package/dist/components/spotlight-search.d.ts +0 -25
  196. package/dist/components/spotlight-search.js +0 -395
  197. package/dist/components/spotlight-search.js.map +0 -1
  198. package/dist/components/switch.d.ts +0 -7
  199. package/dist/components/switch.js +0 -41
  200. package/dist/components/switch.js.map +0 -1
  201. package/dist/components/table.d.ts +0 -13
  202. package/dist/components/table.js +0 -124
  203. package/dist/components/table.js.map +0 -1
  204. package/dist/components/tabs.d.ts +0 -10
  205. package/dist/components/tabs.js +0 -77
  206. package/dist/components/tabs.js.map +0 -1
  207. package/dist/components/textarea.d.ts +0 -6
  208. package/dist/components/textarea.js +0 -26
  209. package/dist/components/textarea.js.map +0 -1
  210. package/dist/components/theme-toggle.d.ts +0 -8
  211. package/dist/components/theme-toggle.js +0 -94
  212. package/dist/components/theme-toggle.js.map +0 -1
  213. package/dist/components/toggle-group.d.ts +0 -14
  214. package/dist/components/toggle-group.js +0 -102
  215. package/dist/components/toggle-group.js.map +0 -1
  216. package/dist/components/toggle.d.ts +0 -13
  217. package/dist/components/toggle.js +0 -53
  218. package/dist/components/toggle.js.map +0 -1
  219. package/dist/components/tooltip.d.ts +0 -10
  220. package/dist/components/tooltip.js +0 -66
  221. package/dist/components/tooltip.js.map +0 -1
  222. package/dist/hooks/use-mobile.d.ts +0 -3
  223. package/dist/hooks/use-mobile.js +0 -22
  224. package/dist/hooks/use-mobile.js.map +0 -1
  225. package/dist/hooks/use-router.d.ts +0 -7
  226. package/dist/hooks/use-router.js +0 -36
  227. package/dist/hooks/use-router.js.map +0 -1
  228. package/dist/hooks/use-translation.d.ts +0 -5
  229. package/dist/hooks/use-translation.js +0 -42
  230. package/dist/hooks/use-translation.js.map +0 -1
@@ -1,28 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as react_hook_form from 'react-hook-form';
3
- import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
4
- import * as LabelPrimitive from '@radix-ui/react-label';
5
- import { Slot } from '@radix-ui/react-slot';
6
- import * as React from 'react';
7
-
8
- declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
9
- declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime.JSX.Element;
10
- declare const useFormField: () => {
11
- invalid: boolean;
12
- isDirty: boolean;
13
- isTouched: boolean;
14
- isValidating: boolean;
15
- error?: react_hook_form.FieldError;
16
- id: string;
17
- name: string;
18
- formItemId: string;
19
- formDescriptionId: string;
20
- formMessageId: string;
21
- };
22
- declare function FormItem({ className, ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
23
- declare function FormLabel({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): react_jsx_runtime.JSX.Element;
24
- declare function FormControl({ ...props }: React.ComponentProps<typeof Slot>): react_jsx_runtime.JSX.Element;
25
- declare function FormDescription({ className, ...props }: React.ComponentProps<'p'>): react_jsx_runtime.JSX.Element;
26
- declare function FormMessage({ className, ...props }: React.ComponentProps<'p'>): react_jsx_runtime.JSX.Element | null;
27
-
28
- export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
@@ -1,150 +0,0 @@
1
- "use client";
2
-
3
- // src/lib/utils.ts
4
- import { clsx } from "clsx";
5
- import { twMerge } from "tailwind-merge";
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
9
-
10
- // src/components/label.tsx
11
- import * as LabelPrimitive from "@radix-ui/react-label";
12
- import { jsx } from "react/jsx-runtime";
13
- function Label({
14
- className,
15
- ...props
16
- }) {
17
- return /* @__PURE__ */ jsx(
18
- LabelPrimitive.Root,
19
- {
20
- "data-slot": "label",
21
- className: cn(
22
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
23
- className
24
- ),
25
- ...props
26
- }
27
- );
28
- }
29
-
30
- // src/components/form.tsx
31
- import { Slot } from "@radix-ui/react-slot";
32
- import * as React from "react";
33
- import {
34
- Controller,
35
- FormProvider,
36
- useFormContext,
37
- useFormState
38
- } from "react-hook-form";
39
- import { jsx as jsx2 } from "react/jsx-runtime";
40
- var Form = FormProvider;
41
- var FormFieldContext = React.createContext(
42
- {}
43
- );
44
- var FormField = ({
45
- ...props
46
- }) => {
47
- return /* @__PURE__ */ jsx2(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx2(Controller, { ...props }) });
48
- };
49
- var useFormField = () => {
50
- const fieldContext = React.useContext(FormFieldContext);
51
- const itemContext = React.useContext(FormItemContext);
52
- const { getFieldState } = useFormContext();
53
- const formState = useFormState({ name: fieldContext.name });
54
- const fieldState = getFieldState(fieldContext.name, formState);
55
- if (!fieldContext) {
56
- throw new Error("useFormField should be used within <FormField>");
57
- }
58
- const { id } = itemContext;
59
- return {
60
- id,
61
- name: fieldContext.name,
62
- formItemId: `${id}-form-item`,
63
- formDescriptionId: `${id}-form-item-description`,
64
- formMessageId: `${id}-form-item-message`,
65
- ...fieldState
66
- };
67
- };
68
- var FormItemContext = React.createContext(
69
- {}
70
- );
71
- function FormItem({ className, ...props }) {
72
- const id = React.useId();
73
- return /* @__PURE__ */ jsx2(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx2(
74
- "div",
75
- {
76
- "data-slot": "form-item",
77
- className: cn("grid gap-2", className),
78
- ...props
79
- }
80
- ) });
81
- }
82
- function FormLabel({
83
- className,
84
- ...props
85
- }) {
86
- const { error, formItemId } = useFormField();
87
- return /* @__PURE__ */ jsx2(
88
- Label,
89
- {
90
- "data-slot": "form-label",
91
- "data-error": !!error,
92
- className: cn("data-[error=true]:text-destructive", className),
93
- htmlFor: formItemId,
94
- ...props
95
- }
96
- );
97
- }
98
- function FormControl({ ...props }) {
99
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
100
- return /* @__PURE__ */ jsx2(
101
- Slot,
102
- {
103
- "data-slot": "form-control",
104
- id: formItemId,
105
- "aria-describedby": error ? `${formDescriptionId} ${formMessageId}` : `${formDescriptionId}`,
106
- "aria-invalid": !!error,
107
- ...props
108
- }
109
- );
110
- }
111
- function FormDescription({ className, ...props }) {
112
- const { formDescriptionId } = useFormField();
113
- return /* @__PURE__ */ jsx2(
114
- "p",
115
- {
116
- "data-slot": "form-description",
117
- id: formDescriptionId,
118
- className: cn("text-muted-foreground text-sm", className),
119
- ...props
120
- }
121
- );
122
- }
123
- function FormMessage({ className, ...props }) {
124
- const { error, formMessageId } = useFormField();
125
- const body = error ? String(error?.message ?? "") : props.children;
126
- if (!body) {
127
- return null;
128
- }
129
- return /* @__PURE__ */ jsx2(
130
- "p",
131
- {
132
- "data-slot": "form-message",
133
- id: formMessageId,
134
- className: cn("text-destructive text-sm", className),
135
- ...props,
136
- children: body
137
- }
138
- );
139
- }
140
- export {
141
- Form,
142
- FormControl,
143
- FormDescription,
144
- FormField,
145
- FormItem,
146
- FormLabel,
147
- FormMessage,
148
- useFormField
149
- };
150
- //# sourceMappingURL=form.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/label.tsx","../../src/components/form.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","'use client';\n\nimport { cn } from '@mesob/ui/lib/utils';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport type * as React from 'react';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","'use client';\n\nimport { Label } from '@mesob/ui/components/label';\nimport { cn } from '@mesob/ui/lib/utils';\nimport type * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\nimport {\n Controller,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn('grid gap-2', className)}\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={\n error ? `${formDescriptionId} ${formMessageId}` : `${formDescriptionId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn('text-destructive text-sm', className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n"],"mappings":"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","names":["jsx"]}
@@ -1,9 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
3
- import * as React from 'react';
4
-
5
- declare function HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
- declare function HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
7
- declare function HoverCardContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof HoverCardPrimitive.Content>): react_jsx_runtime.JSX.Element;
8
-
9
- export { HoverCard, HoverCardContent, HoverCardTrigger };
@@ -1,48 +0,0 @@
1
- "use client";
2
-
3
- // src/lib/utils.ts
4
- import { clsx } from "clsx";
5
- import { twMerge } from "tailwind-merge";
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
9
-
10
- // src/components/hover-card.tsx
11
- import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
12
- import { jsx } from "react/jsx-runtime";
13
- function HoverCard({
14
- ...props
15
- }) {
16
- return /* @__PURE__ */ jsx(HoverCardPrimitive.Root, { "data-slot": "hover-card", ...props });
17
- }
18
- function HoverCardTrigger({
19
- ...props
20
- }) {
21
- return /* @__PURE__ */ jsx(HoverCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
22
- }
23
- function HoverCardContent({
24
- className,
25
- align = "center",
26
- sideOffset = 4,
27
- ...props
28
- }) {
29
- return /* @__PURE__ */ jsx(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx(
30
- HoverCardPrimitive.Content,
31
- {
32
- "data-slot": "hover-card-content",
33
- align,
34
- sideOffset,
35
- className: cn(
36
- "bg-popover text-popover-foreground border-border data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[12rem] w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
37
- className
38
- ),
39
- ...props
40
- }
41
- ) });
42
- }
43
- export {
44
- HoverCard,
45
- HoverCardContent,
46
- HoverCardTrigger
47
- };
48
- //# sourceMappingURL=hover-card.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/hover-card.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","'use client';\n\nimport { cn } from '@mesob/ui/lib/utils';\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card';\nimport type * as React from 'react';\n\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n );\n}\n\nfunction HoverCardContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground border-border data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[12rem] w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACFA,YAAY,wBAAwB;AAM3B;AAHT,SAAS,UAAU;AAAA,EACjB,GAAG;AACL,GAAyD;AACvD,SAAO,oBAAoB,yBAAnB,EAAwB,aAAU,cAAc,GAAG,OAAO;AACpE;AAEA,SAAS,iBAAiB;AAAA,EACxB,GAAG;AACL,GAA4D;AAC1D,SACE,oBAAoB,4BAAnB,EAA2B,aAAU,sBAAsB,GAAG,OAAO;AAE1E;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,GAAG;AACL,GAA4D;AAC1D,SACE,oBAAoB,2BAAnB,EAA0B,aAAU,qBACnC;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;","names":[]}
@@ -1,20 +0,0 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import { Button } from './button.js';
4
- import { VariantProps } from 'class-variance-authority';
5
- import * as React from 'react';
6
-
7
- declare function InputGroup({ className, ...props }: React.ComponentProps<'fieldset'>): react_jsx_runtime.JSX.Element;
8
- declare const inputGroupAddonVariants: (props?: ({
9
- align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
10
- } & class_variance_authority_types.ClassProp) | undefined) => string;
11
- declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'fieldset'> & VariantProps<typeof inputGroupAddonVariants>): react_jsx_runtime.JSX.Element;
12
- declare const inputGroupButtonVariants: (props?: ({
13
- size?: "sm" | "icon-sm" | "xs" | "icon-xs" | null | undefined;
14
- } & class_variance_authority_types.ClassProp) | undefined) => string;
15
- declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, 'size'> & VariantProps<typeof inputGroupButtonVariants>): react_jsx_runtime.JSX.Element;
16
- declare function InputGroupText({ className, ...props }: React.ComponentProps<'span'>): react_jsx_runtime.JSX.Element;
17
- declare function InputGroupInput({ className, ...props }: React.ComponentProps<'input'>): react_jsx_runtime.JSX.Element;
18
- declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>): react_jsx_runtime.JSX.Element;
19
-
20
- export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
@@ -1,265 +0,0 @@
1
- "use client";
2
-
3
- // src/lib/utils.ts
4
- import { clsx } from "clsx";
5
- import { twMerge } from "tailwind-merge";
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
9
-
10
- // src/components/button.tsx
11
- import { Slot } from "@radix-ui/react-slot";
12
- import { cva } from "class-variance-authority";
13
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
- var buttonVariants = cva(
15
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
16
- {
17
- variants: {
18
- variant: {
19
- default: "bg-primary text-primary-foreground hover:bg-primary-600 dark:hover:bg-primary-400",
20
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
21
- outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
22
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary-600 dark:hover:bg-secondary-400",
23
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
24
- link: "text-primary underline-offset-4 hover:text-primary-600 dark:hover:text-primary-400 hover:underline"
25
- },
26
- size: {
27
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
28
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
29
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
30
- icon: "size-9",
31
- "icon-sm": "size-8",
32
- "icon-lg": "size-10"
33
- }
34
- },
35
- defaultVariants: {
36
- variant: "default",
37
- size: "default"
38
- }
39
- }
40
- );
41
- function Button({
42
- className,
43
- variant,
44
- size,
45
- asChild = false,
46
- leftIcon,
47
- rightIcon,
48
- children,
49
- ...props
50
- }) {
51
- const Comp = asChild ? Slot : "button";
52
- return /* @__PURE__ */ jsx(
53
- Comp,
54
- {
55
- "data-slot": "button",
56
- className: cn(buttonVariants({ variant, size, className })),
57
- ...props,
58
- children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
59
- leftIcon,
60
- children,
61
- rightIcon
62
- ] })
63
- }
64
- );
65
- }
66
-
67
- // src/components/input.tsx
68
- import { jsx as jsx2 } from "react/jsx-runtime";
69
- function Input({ className, type, ...props }) {
70
- return /* @__PURE__ */ jsx2(
71
- "input",
72
- {
73
- type,
74
- "data-slot": "input",
75
- className: cn(
76
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
77
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
78
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
79
- className
80
- ),
81
- ...props
82
- }
83
- );
84
- }
85
-
86
- // src/components/textarea.tsx
87
- import { jsx as jsx3 } from "react/jsx-runtime";
88
- function Textarea({ className, ...props }) {
89
- return /* @__PURE__ */ jsx3(
90
- "textarea",
91
- {
92
- "data-slot": "textarea",
93
- className: cn(
94
- "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
95
- className
96
- ),
97
- ...props
98
- }
99
- );
100
- }
101
-
102
- // src/components/input-group.tsx
103
- import { cva as cva2 } from "class-variance-authority";
104
- import { jsx as jsx4 } from "react/jsx-runtime";
105
- function InputGroup({ className, ...props }) {
106
- return /* @__PURE__ */ jsx4(
107
- "fieldset",
108
- {
109
- "data-slot": "input-group",
110
- className: cn(
111
- "border-0 p-0 m-0",
112
- "group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none",
113
- "h-9 min-w-0 has-[>textarea]:h-auto",
114
- // Variants based on alignment.
115
- "has-[>[data-align=inline-start]]:[&>input]:pl-2",
116
- "has-[>[data-align=inline-end]]:[&>input]:pr-2",
117
- "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3",
118
- "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3",
119
- // Focus state.
120
- "has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]",
121
- // Error state.
122
- "has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",
123
- className
124
- ),
125
- ...props
126
- }
127
- );
128
- }
129
- var inputGroupAddonVariants = cva2(
130
- "text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50",
131
- {
132
- variants: {
133
- align: {
134
- "inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
135
- "inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
136
- "block-start": "order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5",
137
- "block-end": "order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5"
138
- }
139
- },
140
- defaultVariants: {
141
- align: "inline-start"
142
- }
143
- }
144
- );
145
- function InputGroupAddon({
146
- className,
147
- align = "inline-start",
148
- ...props
149
- }) {
150
- return /* @__PURE__ */ jsx4(
151
- "fieldset",
152
- {
153
- "data-slot": "input-group-addon",
154
- "data-align": align,
155
- className: cn(
156
- inputGroupAddonVariants({ align }),
157
- "border-0 p-0 m-0",
158
- className
159
- ),
160
- onClick: (e) => {
161
- if (e.target.closest("button")) {
162
- return;
163
- }
164
- e.currentTarget.parentElement?.querySelector("input")?.focus();
165
- },
166
- onKeyDown: (e) => {
167
- if (e.key === "Enter" || e.key === " ") {
168
- e.preventDefault();
169
- if (e.target.closest("button")) {
170
- return;
171
- }
172
- e.currentTarget.parentElement?.querySelector("input")?.focus();
173
- }
174
- },
175
- ...props
176
- }
177
- );
178
- }
179
- var inputGroupButtonVariants = cva2(
180
- "text-sm shadow-none flex gap-2 items-center",
181
- {
182
- variants: {
183
- size: {
184
- xs: "h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2",
185
- sm: "h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5",
186
- "icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
187
- "icon-sm": "size-8 p-0 has-[>svg]:p-0"
188
- }
189
- },
190
- defaultVariants: {
191
- size: "xs"
192
- }
193
- }
194
- );
195
- function InputGroupButton({
196
- className,
197
- type = "button",
198
- variant = "ghost",
199
- size = "xs",
200
- ...props
201
- }) {
202
- return /* @__PURE__ */ jsx4(
203
- Button,
204
- {
205
- type,
206
- "data-size": size,
207
- variant,
208
- className: cn(inputGroupButtonVariants({ size }), className),
209
- ...props
210
- }
211
- );
212
- }
213
- function InputGroupText({ className, ...props }) {
214
- return /* @__PURE__ */ jsx4(
215
- "span",
216
- {
217
- className: cn(
218
- "text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
219
- className
220
- ),
221
- ...props
222
- }
223
- );
224
- }
225
- function InputGroupInput({
226
- className,
227
- ...props
228
- }) {
229
- return /* @__PURE__ */ jsx4(
230
- Input,
231
- {
232
- "data-slot": "input-group-control",
233
- className: cn(
234
- "flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",
235
- className
236
- ),
237
- ...props
238
- }
239
- );
240
- }
241
- function InputGroupTextarea({
242
- className,
243
- ...props
244
- }) {
245
- return /* @__PURE__ */ jsx4(
246
- Textarea,
247
- {
248
- "data-slot": "input-group-control",
249
- className: cn(
250
- "flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",
251
- className
252
- ),
253
- ...props
254
- }
255
- );
256
- }
257
- export {
258
- InputGroup,
259
- InputGroupAddon,
260
- InputGroupButton,
261
- InputGroupInput,
262
- InputGroupText,
263
- InputGroupTextarea
264
- };
265
- //# sourceMappingURL=input-group.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/button.tsx","../../src/components/input.tsx","../../src/components/textarea.tsx","../../src/components/input-group.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { cn } from '@mesob/ui/lib/utils';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type * as React from 'react';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground hover:bg-primary-600 dark:hover:bg-primary-400',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n outline:\n 'border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary-600 dark:hover:bg-secondary-400',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:text-primary-600 dark:hover:text-primary-400 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n 'icon-sm': 'size-8',\n 'icon-lg': 'size-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype ButtonProps = React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n };\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n leftIcon,\n rightIcon,\n children,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {leftIcon}\n {children}\n {rightIcon}\n </>\n )}\n </Comp>\n );\n}\n\nexport { Button, buttonVariants };\n","import { cn } from '@mesob/ui/lib/utils';\nimport type * as React from 'react';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import { cn } from '@mesob/ui/lib/utils';\nimport type * as React from 'react';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","'use client';\n\nimport { Button } from '@mesob/ui/components/button';\nimport { Input } from '@mesob/ui/components/input';\nimport { Textarea } from '@mesob/ui/components/textarea';\nimport { cn } from '@mesob/ui/lib/utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type * as React from 'react';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"input-group\"\n className={cn(\n 'border-0 p-0 m-0',\n 'group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none',\n 'h-9 min-w-0 has-[>textarea]:h-auto',\n\n // Variants based on alignment.\n 'has-[>[data-align=inline-start]]:[&>input]:pl-2',\n 'has-[>[data-align=inline-end]]:[&>input]:pr-2',\n 'has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3',\n 'has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3',\n\n // Focus state.\n 'has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]',\n\n // Error state.\n 'has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40',\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n 'inline-start':\n 'order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]',\n 'inline-end':\n 'order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]',\n 'block-start':\n 'order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5',\n 'block-end':\n 'order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5',\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<'fieldset'> &\n VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <fieldset\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(\n inputGroupAddonVariants({ align }),\n 'border-0 p-0 m-0',\n className,\n )}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n 'text-sm shadow-none flex gap-2 items-center',\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: 'h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5',\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'> &\n VariantProps<typeof inputGroupButtonVariants>) {\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 flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":"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","names":["jsx","jsx","cva","jsx"]}
@@ -1,14 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { OTPInput } from 'input-otp';
3
- import * as React from 'react';
4
-
5
- declare function InputOTP({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput> & {
6
- containerClassName?: string;
7
- }): react_jsx_runtime.JSX.Element;
8
- declare function InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
9
- declare function InputOTPSlot({ index, className, ...props }: React.ComponentProps<'div'> & {
10
- index: number;
11
- }): react_jsx_runtime.JSX.Element;
12
- declare function InputOTPSeparator({ ...props }: React.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
13
-
14
- export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };