lynote-ui 0.0.7 → 0.0.9

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 (167) hide show
  1. package/dist/accordion/index.js +2 -2
  2. package/dist/accordion/index.mjs +1 -1
  3. package/dist/alert/index.js +2 -2
  4. package/dist/alert/index.mjs +1 -1
  5. package/dist/alert-dialog/index.js +2 -2
  6. package/dist/alert-dialog/index.mjs +1 -1
  7. package/dist/aspect-ratio/index.js +2 -2
  8. package/dist/aspect-ratio/index.mjs +1 -1
  9. package/dist/avatar/index.js +2 -2
  10. package/dist/avatar/index.mjs +1 -1
  11. package/dist/badge/index.js +2 -2
  12. package/dist/badge/index.mjs +1 -1
  13. package/dist/breadcrumb/index.js +2 -2
  14. package/dist/breadcrumb/index.mjs +1 -1
  15. package/dist/button/index.js +2 -2
  16. package/dist/button/index.mjs +1 -1
  17. package/dist/button-group/index.js +2 -2
  18. package/dist/button-group/index.mjs +1 -1
  19. package/dist/calendar/index.js +2 -2
  20. package/dist/calendar/index.mjs +1 -1
  21. package/dist/card/index.js +2 -2
  22. package/dist/card/index.mjs +1 -1
  23. package/dist/carousel/index.js +2 -2
  24. package/dist/carousel/index.mjs +1 -1
  25. package/dist/chart/index.js +2 -2
  26. package/dist/chart/index.mjs +1 -1
  27. package/dist/checkbox/index.js +2 -2
  28. package/dist/checkbox/index.mjs +1 -1
  29. package/dist/{chunk-CoQrYLCe.js → chunk-8l464Juk.js} +0 -22
  30. package/dist/collapsible/index.js +1 -1
  31. package/dist/combobox/index.d.ts +1 -1
  32. package/dist/combobox/index.js +9 -3
  33. package/dist/combobox/index.js.map +1 -1
  34. package/dist/combobox/index.mjs +8 -2
  35. package/dist/combobox/index.mjs.map +1 -1
  36. package/dist/command/index.js +2 -2
  37. package/dist/command/index.mjs +1 -1
  38. package/dist/context-menu/index.js +8 -6
  39. package/dist/context-menu/index.js.map +1 -1
  40. package/dist/context-menu/index.mjs +7 -5
  41. package/dist/context-menu/index.mjs.map +1 -1
  42. package/dist/date-picker/index.js +1 -1
  43. package/dist/dialog/index.js +2 -2
  44. package/dist/dialog/index.mjs +1 -1
  45. package/dist/direction/index.js +1 -1
  46. package/dist/drawer/index.js +2 -2
  47. package/dist/drawer/index.mjs +1 -1
  48. package/dist/dropdown-menu/index.js +2 -2
  49. package/dist/dropdown-menu/index.mjs +1 -1
  50. package/dist/empty/index.js +2 -2
  51. package/dist/empty/index.mjs +1 -1
  52. package/dist/field/index.js +4 -4
  53. package/dist/field/index.js.map +1 -1
  54. package/dist/field/index.mjs +3 -3
  55. package/dist/field/index.mjs.map +1 -1
  56. package/dist/hover-card/index.js +2 -2
  57. package/dist/hover-card/index.mjs +1 -1
  58. package/dist/index.d.ts +1 -1
  59. package/dist/index.js +19 -25
  60. package/dist/index.mjs +4 -8
  61. package/dist/input/index.js +2 -2
  62. package/dist/input/index.mjs +1 -1
  63. package/dist/input-group/index.js +2 -2
  64. package/dist/input-group/index.mjs +1 -1
  65. package/dist/input-otp/index.js +2 -2
  66. package/dist/input-otp/index.mjs +1 -1
  67. package/dist/item/index.js +2 -2
  68. package/dist/item/index.mjs +1 -1
  69. package/dist/kbd/index.js +2 -2
  70. package/dist/kbd/index.mjs +1 -1
  71. package/dist/label/index.js +2 -2
  72. package/dist/label/index.mjs +1 -1
  73. package/dist/menubar/index.js +2 -2
  74. package/dist/menubar/index.mjs +1 -1
  75. package/dist/native-select/index.js +2 -2
  76. package/dist/native-select/index.mjs +1 -1
  77. package/dist/navigation-menu/index.js +2 -2
  78. package/dist/navigation-menu/index.mjs +1 -1
  79. package/dist/pagination/index.js +2 -2
  80. package/dist/pagination/index.mjs +1 -1
  81. package/dist/popover/index.js +2 -2
  82. package/dist/popover/index.mjs +1 -1
  83. package/dist/progress/index.js +2 -2
  84. package/dist/progress/index.mjs +1 -1
  85. package/dist/radio-group/index.js +2 -2
  86. package/dist/radio-group/index.mjs +1 -1
  87. package/dist/resizable/index.js +2 -2
  88. package/dist/resizable/index.mjs +1 -1
  89. package/dist/scroll-area/index.js +2 -2
  90. package/dist/scroll-area/index.mjs +1 -1
  91. package/dist/select/SelectMultipleValue.d.ts +8 -0
  92. package/dist/select/context.d.ts +4 -0
  93. package/dist/select/index.d.ts +4 -2
  94. package/dist/select/index.js +11 -110
  95. package/dist/select/index.mjs +1 -98
  96. package/dist/select/type.d.ts +33 -0
  97. package/dist/select/utils.d.ts +8 -0
  98. package/dist/select---wbqUEL.js +402 -0
  99. package/dist/select---wbqUEL.js.map +1 -0
  100. package/dist/select-DJcPlxTU.mjs +341 -0
  101. package/dist/select-DJcPlxTU.mjs.map +1 -0
  102. package/dist/separator/index.js +2 -2
  103. package/dist/separator/index.mjs +1 -1
  104. package/dist/sheet/index.js +2 -2
  105. package/dist/sheet/index.mjs +1 -1
  106. package/dist/sidebar/index.js +1 -1
  107. package/dist/sidebar/index.mjs +1 -1
  108. package/dist/{sidebar-Ddt6hBj_.mjs → sidebar-BO_ns2qp.mjs} +2 -2
  109. package/dist/{sidebar-Ddt6hBj_.mjs.map → sidebar-BO_ns2qp.mjs.map} +1 -1
  110. package/dist/{sidebar-E9uledix.js → sidebar-KSjzFqo5.js} +3 -3
  111. package/dist/{sidebar-E9uledix.js.map → sidebar-KSjzFqo5.js.map} +1 -1
  112. package/dist/skeleton/index.js +2 -2
  113. package/dist/skeleton/index.mjs +1 -1
  114. package/dist/slider/index.js +2 -2
  115. package/dist/slider/index.mjs +1 -1
  116. package/dist/sonner/index.js +2 -2
  117. package/dist/{sonner-BbeMMXzI.js → sonner-6WfFozil.js} +2 -2
  118. package/dist/{sonner-BbeMMXzI.js.map → sonner-6WfFozil.js.map} +1 -1
  119. package/dist/spinner/index.js +2 -2
  120. package/dist/spinner/index.mjs +1 -1
  121. package/dist/style.css +668 -28
  122. package/dist/switch/index.js +2 -2
  123. package/dist/switch/index.mjs +1 -1
  124. package/dist/table/index.js +2 -2
  125. package/dist/table/index.mjs +1 -1
  126. package/dist/tabs/index.js +2 -2
  127. package/dist/tabs/index.mjs +1 -1
  128. package/dist/textarea/index.js +2 -2
  129. package/dist/textarea/index.mjs +1 -1
  130. package/dist/toggle/index.js +2 -2
  131. package/dist/toggle/index.mjs +1 -1
  132. package/dist/toggle-group/index.js +2 -2
  133. package/dist/toggle-group/index.mjs +1 -1
  134. package/dist/tooltip/index.js +2 -2
  135. package/dist/tooltip/index.mjs +1 -1
  136. package/dist/typography/index.d.ts +14 -0
  137. package/dist/typography/index.js +120 -0
  138. package/dist/typography/index.js.map +1 -0
  139. package/dist/typography/index.mjs +105 -0
  140. package/dist/typography/index.mjs.map +1 -0
  141. package/dist/{utils-TtTqRIUX.mjs → utils-Bg4z4cXr.mjs} +1 -1
  142. package/dist/{utils-TtTqRIUX.mjs.map → utils-Bg4z4cXr.mjs.map} +1 -1
  143. package/dist/{utils-BGuEr0aP.js → utils-DrngEK1K.js} +2 -2
  144. package/dist/{utils-BGuEr0aP.js.map → utils-DrngEK1K.js.map} +1 -1
  145. package/package.json +11 -8
  146. package/dist/form/components/Form.d.ts +0 -4
  147. package/dist/form/components/FormControl.d.ts +0 -3
  148. package/dist/form/components/FormDescription.d.ts +0 -3
  149. package/dist/form/components/FormField.d.ts +0 -3
  150. package/dist/form/components/FormItem.d.ts +0 -7
  151. package/dist/form/components/FormLabel.d.ts +0 -3
  152. package/dist/form/components/FormMessage.d.ts +0 -4
  153. package/dist/form/components/variants.d.ts +0 -6
  154. package/dist/form/context/index.d.ts +0 -4
  155. package/dist/form/hooks/useFormField.d.ts +0 -14
  156. package/dist/form/index.d.ts +0 -11
  157. package/dist/form/index.js +0 -19
  158. package/dist/form/index.mjs +0 -3
  159. package/dist/form/type.d.ts +0 -48
  160. package/dist/form-DLd4sOko.mjs +0 -183
  161. package/dist/form-DLd4sOko.mjs.map +0 -1
  162. package/dist/form-h_cJBAwg.js +0 -205
  163. package/dist/form-h_cJBAwg.js.map +0 -1
  164. package/dist/index.js.map +0 -1
  165. package/dist/index.mjs.map +0 -1
  166. package/dist/select/index.js.map +0 -1
  167. package/dist/select/index.mjs.map +0 -1
@@ -1,48 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { ControllerProps, FieldPath, FieldValues, Message, SubmitHandler, UseFormReturn } from 'react-hook-form';
3
- export type FormPropsType<TFormValues extends FieldValues> = {
4
- onSubmit?: SubmitHandler<TFormValues>;
5
- children?: React.ReactNode;
6
- className?: string;
7
- } & UseFormReturn<TFormValues>;
8
- export type FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
9
- name: TName;
10
- };
11
- export type FormItemContextValue = {
12
- id: string;
13
- };
14
- export type FormMessageProps = React.ComponentProps<"p"> & {
15
- render?: (message: Message) => React.ReactNode;
16
- };
17
- export interface FormItemPropsType<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<ControllerProps<TFieldValues, TName>, "render"> {
18
- children?: ReactNode;
19
- className?: string;
20
- /** label 标签的文本,当不需要 label 又需要与冒号对齐,可以设为 null */
21
- label?: ReactNode;
22
- /**
23
- * 配合 label 属性使用,表示是否显示 label 后面的冒号
24
- * @default true
25
- */
26
- colon?: boolean;
27
- /**
28
- * 是否显示错误
29
- * @default true
30
- */
31
- showMessage?: boolean;
32
- /**
33
- * 是否为必选字段,不会对表单进行验证,设置为true时会在label的开始位置显示红色的'*'
34
- * @default false
35
- */
36
- required?: boolean;
37
- /**
38
- * 渲染函数,用于渲染表单控件
39
- */
40
- render?: ControllerProps<TFieldValues, TName>["render"];
41
- /**
42
- * 是否无样式,不显示 label 和错误信息
43
- * @default false
44
- */
45
- noStyle?: boolean;
46
- /** 描述 */
47
- description?: ReactNode;
48
- }
@@ -1,183 +0,0 @@
1
- import { t as cn } from "./utils-TtTqRIUX.mjs";
2
- import { Label } from "./label/index.mjs";
3
- import { cva as cva$1 } from "class-variance-authority";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
- import * as React from "react";
6
- import { createContext, forwardRef, useContext } from "react";
7
- import { Controller, FormProvider, useFormContext, useFormState } from "react-hook-form";
8
- import { Slot } from "@radix-ui/react-slot";
9
- //#region \0rolldown/runtime.js
10
- var __defProp = Object.defineProperty;
11
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
- var __getOwnPropNames = Object.getOwnPropertyNames;
13
- var __hasOwnProp = Object.prototype.hasOwnProperty;
14
- var __exportAll = (all, no_symbols) => {
15
- let target = {};
16
- for (var name in all) __defProp(target, name, {
17
- get: all[name],
18
- enumerable: true
19
- });
20
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
21
- return target;
22
- };
23
- var __copyProps = (to, from, except, desc) => {
24
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
25
- key = keys[i];
26
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
27
- get: ((k) => from[k]).bind(null, key),
28
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
29
- });
30
- }
31
- return to;
32
- };
33
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
34
- //#endregion
35
- //#region src/form/components/variants.ts
36
- var formDescriptionVariants = cva$1("text-muted-foreground text-sm");
37
- var formItemVariants = cva$1("relative grid gap-2");
38
- var formItemMesVariants = cva$1("absolute bottom-0 left-0 translate-y-[calc(100%+2px)]");
39
- var formMessageVariants = cva$1("text-destructive text-sm");
40
- var formRootVariants = cva$1("w-full space-y-6");
41
- //#endregion
42
- //#region src/form/components/Form.tsx
43
- var FormRoot = ({ onSubmit = () => {}, className, ...props }) => {
44
- return /* @__PURE__ */ jsx(FormProvider, {
45
- ...props,
46
- children: /* @__PURE__ */ jsx("form", {
47
- onSubmit: props.handleSubmit(onSubmit),
48
- className: cn(formRootVariants({ className })),
49
- children: props?.children || null
50
- })
51
- });
52
- };
53
- //#endregion
54
- //#region src/form/context/index.ts
55
- var FormFieldContext = createContext({});
56
- var FormItemContext = createContext({});
57
- //#endregion
58
- //#region src/form/hooks/useFormField.ts
59
- var useFormField = () => {
60
- const fieldContext = useContext(FormFieldContext);
61
- const itemContext = useContext(FormItemContext);
62
- const { getFieldState } = useFormContext();
63
- const formState = useFormState({ name: fieldContext.name });
64
- const fieldState = getFieldState(fieldContext.name, formState);
65
- if (!fieldContext) throw new Error("useFormField should be used within <FormField>");
66
- const { id } = itemContext;
67
- return {
68
- id,
69
- name: fieldContext.name,
70
- formItemId: `${id}-form-item`,
71
- formDescriptionId: `${id}-form-item-description`,
72
- formMessageId: `${id}-form-item-message`,
73
- ...fieldState
74
- };
75
- };
76
- //#endregion
77
- //#region src/form/components/FormControl.tsx
78
- function FormControl({ ...props }) {
79
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
80
- return /* @__PURE__ */ jsx(Slot, {
81
- "data-slot": "form-control",
82
- id: formItemId,
83
- "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
84
- "aria-invalid": !!error,
85
- ...props
86
- });
87
- }
88
- //#endregion
89
- //#region src/form/components/FormDescription.tsx
90
- var FormDescription = forwardRef(({ className, ...props }, ref) => {
91
- const { formDescriptionId } = useFormField();
92
- return /* @__PURE__ */ jsx("p", {
93
- ref,
94
- "data-slot": "form-description",
95
- id: formDescriptionId,
96
- className: cn(formDescriptionVariants({ className })),
97
- ...props
98
- });
99
- });
100
- //#endregion
101
- //#region src/form/components/FormField.tsx
102
- var FormField = ({ ...props }) => {
103
- return /* @__PURE__ */ jsx(FormFieldContext.Provider, {
104
- value: { name: props.name },
105
- children: /* @__PURE__ */ jsx(Controller, { ...props })
106
- });
107
- };
108
- //#endregion
109
- //#region src/form/components/FormLabel.tsx
110
- var FormLabel = forwardRef(({ className, ...props }, ref) => {
111
- const { error, formItemId } = useFormField();
112
- return /* @__PURE__ */ jsx(Label, {
113
- ref,
114
- "data-slot": "form-label",
115
- "data-error": !!error,
116
- className: cn(className, "inline gap-0"),
117
- htmlFor: formItemId,
118
- ...props
119
- });
120
- });
121
- //#endregion
122
- //#region src/form/components/FormMessage.tsx
123
- var FormMessage = forwardRef(({ className, render, ...props }, ref) => {
124
- const { error, formMessageId } = useFormField();
125
- const body = String(error?.message ?? "");
126
- if (!body) return null;
127
- return render ? render(body) : /* @__PURE__ */ jsx("p", {
128
- ref,
129
- "data-slot": "form-message",
130
- id: formMessageId,
131
- className: cn(formMessageVariants({ className })),
132
- ...props,
133
- children: body
134
- });
135
- });
136
- //#endregion
137
- //#region src/form/components/FormItem.tsx
138
- var FormItem = ({ className, children, label, showMessage = true, colon = true, required = false, render, noStyle = false, description, ...controllerProps }, ref) => {
139
- const id = React.useId();
140
- const content = /* @__PURE__ */ jsx(Controller, {
141
- name: controllerProps.name,
142
- control: controllerProps.control,
143
- rules: controllerProps.rules,
144
- shouldUnregister: controllerProps.shouldUnregister,
145
- defaultValue: controllerProps.defaultValue,
146
- disabled: controllerProps.disabled,
147
- exact: controllerProps.exact,
148
- render: (...res) => {
149
- return /* @__PURE__ */ jsx(FormControl, { children: render ? render(...res) : React.isValidElement(children) ? React.cloneElement(children, res[0].field) : children });
150
- }
151
- });
152
- if (noStyle) return content;
153
- const formItemContent = /* @__PURE__ */ jsxs("div", {
154
- ref,
155
- "data-slot": "form-item",
156
- className: cn(formItemVariants(), className),
157
- children: [
158
- label && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(FormLabel, { children: [
159
- required && /* @__PURE__ */ jsx("span", {
160
- className: "mr-1 text-red-500",
161
- children: "*"
162
- }),
163
- label,
164
- colon && ":"
165
- ] }) }),
166
- content,
167
- description && /* @__PURE__ */ jsx(FormDescription, {}),
168
- showMessage && /* @__PURE__ */ jsx(FormMessage, { className: cn(formItemMesVariants()) })
169
- ]
170
- });
171
- return /* @__PURE__ */ jsx(FormItemContext.Provider, {
172
- value: { id },
173
- children: /* @__PURE__ */ jsx(FormFieldContext.Provider, {
174
- value: { name: controllerProps.name },
175
- children: formItemContent
176
- })
177
- });
178
- };
179
- var FormItemWithRef = React.forwardRef(FormItem);
180
- //#endregion
181
- export { FormDescription as a, FormRoot as c, FormField as i, __exportAll as l, FormMessage as n, FormControl as o, FormLabel as r, useFormField as s, FormItemWithRef as t, __reExport as u };
182
-
183
- //# sourceMappingURL=form-DLd4sOko.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-DLd4sOko.mjs","names":[],"sources":["../src/form/components/variants.ts","../src/form/components/Form.tsx","../src/form/context/index.ts","../src/form/hooks/useFormField.ts","../src/form/components/FormControl.tsx","../src/form/components/FormDescription.tsx","../src/form/components/FormField.tsx","../src/form/components/FormLabel.tsx","../src/form/components/FormMessage.tsx","../src/form/components/FormItem.tsx"],"sourcesContent":["import { cva } from \"../../../lib\";\n\nexport const formDescriptionVariants = cva(\"text-muted-foreground text-sm\");\n\nexport const formItemVariants = cva(\"relative grid gap-2\");\n\nexport const formItemMesVariants = cva(\n \"absolute bottom-0 left-0 translate-y-[calc(100%+2px)]\",\n);\n\nexport const formMessageVariants = cva(\"text-destructive text-sm\");\n\nexport const formRootVariants = cva(\"w-full space-y-6\");\n","import { type FieldValues, FormProvider } from \"react-hook-form\";\nimport { cn } from \"../../../lib\";\nimport type { FormPropsType } from \"../type\";\nimport { formRootVariants } from \"./variants\";\n\nconst FormRoot = <TFormValues extends FieldValues>({\n onSubmit = () => {},\n className,\n ...props\n}: FormPropsType<TFormValues>) => {\n return (\n <FormProvider {...props}>\n <form\n onSubmit={props.handleSubmit(onSubmit)}\n className={cn(formRootVariants({ className }))}\n >\n {props?.children || null}\n </form>\n </FormProvider>\n );\n};\nexport default FormRoot;\n","\"use client\";\n\nimport { createContext } from \"react\";\nimport type { FormFieldContextValue, FormItemContextValue } from \"../type\";\n\nexport const FormFieldContext = createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nexport const FormItemContext = createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n","import { useContext } from \"react\";\nimport { useFormContext, useFormState } from \"react-hook-form\";\nimport { FormFieldContext, FormItemContext } from \"../context\";\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = 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\nexport default useFormField;\n","import { Slot } from \"@radix-ui/react-slot\";\nimport useFormField from \"../hooks/useFormField\";\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\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nexport default FormControl;\n","import { ComponentProps, forwardRef } from \"react\";\nimport { cn } from \"../../../lib\";\nimport useFormField from \"../hooks/useFormField\";\nimport { formDescriptionVariants } from \"./variants\";\n\nconst FormDescription = forwardRef<HTMLParagraphElement, ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(formDescriptionVariants({ className }))}\n {...props}\n />\n );\n },\n);\n\nexport default FormDescription;\n","import {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n} from \"react-hook-form\";\nimport { FormFieldContext } from \"../context\";\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\nexport default FormField;\n","import { ComponentProps, forwardRef } from \"react\";\nimport { cn } from \"../../../lib\";\nimport { Label } from \"../../label\";\nimport useFormField from \"../hooks/useFormField\";\n\nconst FormLabel = forwardRef<HTMLLabelElement, ComponentProps<typeof Label>>(\n ({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(className, \"inline gap-0\")}\n htmlFor={formItemId}\n {...props}\n />\n );\n },\n);\n\nexport default FormLabel;\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../../lib\";\nimport useFormField from \"../hooks/useFormField\";\nimport type { FormMessageProps } from \"../type\";\nimport { formMessageVariants } from \"./variants\";\n\nconst FormMessage = forwardRef<HTMLParagraphElement, FormMessageProps>(\n ({ className, render, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = String(error?.message ?? \"\");\n\n if (!body) {\n return null;\n }\n\n return render ? (\n render(body)\n ) : (\n <p\n ref={ref}\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(formMessageVariants({ className }))}\n {...props}\n >\n {body}\n </p>\n );\n },\n);\n\nexport default FormMessage;\n","import * as React from \"react\";\nimport { Controller, FieldPath, FieldValues } from \"react-hook-form\";\nimport { cn } from \"../../../lib\";\nimport { FormFieldContext, FormItemContext } from \"../context\";\nimport { FormItemPropsType } from \"../type\";\nimport FormControl from \"./FormControl\";\nimport FormDescription from \"./FormDescription\";\nimport FormLabel from \"./FormLabel\";\nimport FormMessage from \"./FormMessage\";\nimport { formItemMesVariants, formItemVariants } from \"./variants\";\n\nconst FormItem = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>(\n {\n className,\n children,\n label,\n showMessage = true,\n colon = true,\n required = false,\n render,\n noStyle = false,\n description,\n ...controllerProps\n }: FormItemPropsType<TFieldValues, TName>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const id = React.useId();\n\n // 如果没有提供render函数,则使用children作为内容\n const content = (\n <Controller\n name={controllerProps.name}\n control={controllerProps.control}\n rules={controllerProps.rules}\n shouldUnregister={controllerProps.shouldUnregister}\n defaultValue={controllerProps.defaultValue}\n disabled={controllerProps.disabled}\n exact={controllerProps.exact}\n render={(...res) => {\n return (\n <FormControl>\n {render\n ? render(...res)\n : React.isValidElement(children)\n ? React.cloneElement(children, res[0].field)\n : children}\n </FormControl>\n );\n }}\n />\n );\n\n if (noStyle) return content;\n\n const formItemContent = (\n <div\n ref={ref}\n data-slot=\"form-item\"\n className={cn(formItemVariants(), className)}\n >\n {label && (\n <div>\n <FormLabel>\n {required && <span className=\"mr-1 text-red-500\">*</span>}\n {label}\n {colon && \":\"}\n </FormLabel>\n </div>\n )}\n\n {content}\n {description && <FormDescription></FormDescription>}\n {showMessage && <FormMessage className={cn(formItemMesVariants())} />}\n </div>\n );\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <FormFieldContext.Provider value={{ name: controllerProps.name }}>\n {formItemContent}\n </FormFieldContext.Provider>\n </FormItemContext.Provider>\n );\n};\n\nconst FormItemWithRef = React.forwardRef(FormItem) as <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>(\n props: FormItemPropsType<TFieldValues, TName> & {\n ref?: React.Ref<HTMLDivElement>;\n },\n) => React.ReactElement;\n\nexport default FormItemWithRef;\n"],"mappings":"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"}
@@ -1,205 +0,0 @@
1
- const require_chunk = require("./chunk-CoQrYLCe.js");
2
- const require_utils = require("./utils-BGuEr0aP.js");
3
- const require_label = require("./label/index.js");
4
- let react_jsx_runtime = require("react/jsx-runtime");
5
- let react = require("react");
6
- react = require_chunk.__toESM(react);
7
- let react_hook_form = require("react-hook-form");
8
- let _radix_ui_react_slot = require("@radix-ui/react-slot");
9
- let class_variance_authority = require("class-variance-authority");
10
- //#region src/form/components/variants.ts
11
- var formDescriptionVariants = (0, class_variance_authority.cva)("text-muted-foreground text-sm");
12
- var formItemVariants = (0, class_variance_authority.cva)("relative grid gap-2");
13
- var formItemMesVariants = (0, class_variance_authority.cva)("absolute bottom-0 left-0 translate-y-[calc(100%+2px)]");
14
- var formMessageVariants = (0, class_variance_authority.cva)("text-destructive text-sm");
15
- var formRootVariants = (0, class_variance_authority.cva)("w-full space-y-6");
16
- //#endregion
17
- //#region src/form/components/Form.tsx
18
- var FormRoot = ({ onSubmit = () => {}, className, ...props }) => {
19
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_hook_form.FormProvider, {
20
- ...props,
21
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("form", {
22
- onSubmit: props.handleSubmit(onSubmit),
23
- className: require_utils.cn(formRootVariants({ className })),
24
- children: props?.children || null
25
- })
26
- });
27
- };
28
- //#endregion
29
- //#region src/form/context/index.ts
30
- var FormFieldContext = (0, react.createContext)({});
31
- var FormItemContext = (0, react.createContext)({});
32
- //#endregion
33
- //#region src/form/hooks/useFormField.ts
34
- var useFormField = () => {
35
- const fieldContext = (0, react.useContext)(FormFieldContext);
36
- const itemContext = (0, react.useContext)(FormItemContext);
37
- const { getFieldState } = (0, react_hook_form.useFormContext)();
38
- const formState = (0, react_hook_form.useFormState)({ name: fieldContext.name });
39
- const fieldState = getFieldState(fieldContext.name, formState);
40
- if (!fieldContext) throw new Error("useFormField should be used within <FormField>");
41
- const { id } = itemContext;
42
- return {
43
- id,
44
- name: fieldContext.name,
45
- formItemId: `${id}-form-item`,
46
- formDescriptionId: `${id}-form-item-description`,
47
- formMessageId: `${id}-form-item-message`,
48
- ...fieldState
49
- };
50
- };
51
- //#endregion
52
- //#region src/form/components/FormControl.tsx
53
- function FormControl({ ...props }) {
54
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
55
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_slot.Slot, {
56
- "data-slot": "form-control",
57
- id: formItemId,
58
- "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
59
- "aria-invalid": !!error,
60
- ...props
61
- });
62
- }
63
- //#endregion
64
- //#region src/form/components/FormDescription.tsx
65
- var FormDescription = (0, react.forwardRef)(({ className, ...props }, ref) => {
66
- const { formDescriptionId } = useFormField();
67
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
68
- ref,
69
- "data-slot": "form-description",
70
- id: formDescriptionId,
71
- className: require_utils.cn(formDescriptionVariants({ className })),
72
- ...props
73
- });
74
- });
75
- //#endregion
76
- //#region src/form/components/FormField.tsx
77
- var FormField = ({ ...props }) => {
78
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormFieldContext.Provider, {
79
- value: { name: props.name },
80
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_hook_form.Controller, { ...props })
81
- });
82
- };
83
- //#endregion
84
- //#region src/form/components/FormLabel.tsx
85
- var FormLabel = (0, react.forwardRef)(({ className, ...props }, ref) => {
86
- const { error, formItemId } = useFormField();
87
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_label.Label, {
88
- ref,
89
- "data-slot": "form-label",
90
- "data-error": !!error,
91
- className: require_utils.cn(className, "inline gap-0"),
92
- htmlFor: formItemId,
93
- ...props
94
- });
95
- });
96
- //#endregion
97
- //#region src/form/components/FormMessage.tsx
98
- var FormMessage = (0, react.forwardRef)(({ className, render, ...props }, ref) => {
99
- const { error, formMessageId } = useFormField();
100
- const body = String(error?.message ?? "");
101
- if (!body) return null;
102
- return render ? render(body) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
103
- ref,
104
- "data-slot": "form-message",
105
- id: formMessageId,
106
- className: require_utils.cn(formMessageVariants({ className })),
107
- ...props,
108
- children: body
109
- });
110
- });
111
- //#endregion
112
- //#region src/form/components/FormItem.tsx
113
- var FormItem = ({ className, children, label, showMessage = true, colon = true, required = false, render, noStyle = false, description, ...controllerProps }, ref) => {
114
- const id = react.useId();
115
- const content = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_hook_form.Controller, {
116
- name: controllerProps.name,
117
- control: controllerProps.control,
118
- rules: controllerProps.rules,
119
- shouldUnregister: controllerProps.shouldUnregister,
120
- defaultValue: controllerProps.defaultValue,
121
- disabled: controllerProps.disabled,
122
- exact: controllerProps.exact,
123
- render: (...res) => {
124
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormControl, { children: render ? render(...res) : react.isValidElement(children) ? react.cloneElement(children, res[0].field) : children });
125
- }
126
- });
127
- if (noStyle) return content;
128
- const formItemContent = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
129
- ref,
130
- "data-slot": "form-item",
131
- className: require_utils.cn(formItemVariants(), className),
132
- children: [
133
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(FormLabel, { children: [
134
- required && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
135
- className: "mr-1 text-red-500",
136
- children: "*"
137
- }),
138
- label,
139
- colon && ":"
140
- ] }) }),
141
- content,
142
- description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormDescription, {}),
143
- showMessage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormMessage, { className: require_utils.cn(formItemMesVariants()) })
144
- ]
145
- });
146
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormItemContext.Provider, {
147
- value: { id },
148
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormFieldContext.Provider, {
149
- value: { name: controllerProps.name },
150
- children: formItemContent
151
- })
152
- });
153
- };
154
- var FormItemWithRef = react.forwardRef(FormItem);
155
- //#endregion
156
- Object.defineProperty(exports, "FormControl", {
157
- enumerable: true,
158
- get: function() {
159
- return FormControl;
160
- }
161
- });
162
- Object.defineProperty(exports, "FormDescription", {
163
- enumerable: true,
164
- get: function() {
165
- return FormDescription;
166
- }
167
- });
168
- Object.defineProperty(exports, "FormField", {
169
- enumerable: true,
170
- get: function() {
171
- return FormField;
172
- }
173
- });
174
- Object.defineProperty(exports, "FormItemWithRef", {
175
- enumerable: true,
176
- get: function() {
177
- return FormItemWithRef;
178
- }
179
- });
180
- Object.defineProperty(exports, "FormLabel", {
181
- enumerable: true,
182
- get: function() {
183
- return FormLabel;
184
- }
185
- });
186
- Object.defineProperty(exports, "FormMessage", {
187
- enumerable: true,
188
- get: function() {
189
- return FormMessage;
190
- }
191
- });
192
- Object.defineProperty(exports, "FormRoot", {
193
- enumerable: true,
194
- get: function() {
195
- return FormRoot;
196
- }
197
- });
198
- Object.defineProperty(exports, "useFormField", {
199
- enumerable: true,
200
- get: function() {
201
- return useFormField;
202
- }
203
- });
204
-
205
- //# sourceMappingURL=form-h_cJBAwg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-h_cJBAwg.js","names":[],"sources":["../src/form/components/variants.ts","../src/form/components/Form.tsx","../src/form/context/index.ts","../src/form/hooks/useFormField.ts","../src/form/components/FormControl.tsx","../src/form/components/FormDescription.tsx","../src/form/components/FormField.tsx","../src/form/components/FormLabel.tsx","../src/form/components/FormMessage.tsx","../src/form/components/FormItem.tsx"],"sourcesContent":["import { cva } from \"../../../lib\";\n\nexport const formDescriptionVariants = cva(\"text-muted-foreground text-sm\");\n\nexport const formItemVariants = cva(\"relative grid gap-2\");\n\nexport const formItemMesVariants = cva(\n \"absolute bottom-0 left-0 translate-y-[calc(100%+2px)]\",\n);\n\nexport const formMessageVariants = cva(\"text-destructive text-sm\");\n\nexport const formRootVariants = cva(\"w-full space-y-6\");\n","import { type FieldValues, FormProvider } from \"react-hook-form\";\nimport { cn } from \"../../../lib\";\nimport type { FormPropsType } from \"../type\";\nimport { formRootVariants } from \"./variants\";\n\nconst FormRoot = <TFormValues extends FieldValues>({\n onSubmit = () => {},\n className,\n ...props\n}: FormPropsType<TFormValues>) => {\n return (\n <FormProvider {...props}>\n <form\n onSubmit={props.handleSubmit(onSubmit)}\n className={cn(formRootVariants({ className }))}\n >\n {props?.children || null}\n </form>\n </FormProvider>\n );\n};\nexport default FormRoot;\n","\"use client\";\n\nimport { createContext } from \"react\";\nimport type { FormFieldContextValue, FormItemContextValue } from \"../type\";\n\nexport const FormFieldContext = createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nexport const FormItemContext = createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n","import { useContext } from \"react\";\nimport { useFormContext, useFormState } from \"react-hook-form\";\nimport { FormFieldContext, FormItemContext } from \"../context\";\n\nconst useFormField = () => {\n const fieldContext = useContext(FormFieldContext);\n const itemContext = 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\nexport default useFormField;\n","import { Slot } from \"@radix-ui/react-slot\";\nimport useFormField from \"../hooks/useFormField\";\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\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nexport default FormControl;\n","import { ComponentProps, forwardRef } from \"react\";\nimport { cn } from \"../../../lib\";\nimport useFormField from \"../hooks/useFormField\";\nimport { formDescriptionVariants } from \"./variants\";\n\nconst FormDescription = forwardRef<HTMLParagraphElement, ComponentProps<\"p\">>(\n ({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(formDescriptionVariants({ className }))}\n {...props}\n />\n );\n },\n);\n\nexport default FormDescription;\n","import {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n} from \"react-hook-form\";\nimport { FormFieldContext } from \"../context\";\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\nexport default FormField;\n","import { ComponentProps, forwardRef } from \"react\";\nimport { cn } from \"../../../lib\";\nimport { Label } from \"../../label\";\nimport useFormField from \"../hooks/useFormField\";\n\nconst FormLabel = forwardRef<HTMLLabelElement, ComponentProps<typeof Label>>(\n ({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(className, \"inline gap-0\")}\n htmlFor={formItemId}\n {...props}\n />\n );\n },\n);\n\nexport default FormLabel;\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../../lib\";\nimport useFormField from \"../hooks/useFormField\";\nimport type { FormMessageProps } from \"../type\";\nimport { formMessageVariants } from \"./variants\";\n\nconst FormMessage = forwardRef<HTMLParagraphElement, FormMessageProps>(\n ({ className, render, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = String(error?.message ?? \"\");\n\n if (!body) {\n return null;\n }\n\n return render ? (\n render(body)\n ) : (\n <p\n ref={ref}\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(formMessageVariants({ className }))}\n {...props}\n >\n {body}\n </p>\n );\n },\n);\n\nexport default FormMessage;\n","import * as React from \"react\";\nimport { Controller, FieldPath, FieldValues } from \"react-hook-form\";\nimport { cn } from \"../../../lib\";\nimport { FormFieldContext, FormItemContext } from \"../context\";\nimport { FormItemPropsType } from \"../type\";\nimport FormControl from \"./FormControl\";\nimport FormDescription from \"./FormDescription\";\nimport FormLabel from \"./FormLabel\";\nimport FormMessage from \"./FormMessage\";\nimport { formItemMesVariants, formItemVariants } from \"./variants\";\n\nconst FormItem = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>(\n {\n className,\n children,\n label,\n showMessage = true,\n colon = true,\n required = false,\n render,\n noStyle = false,\n description,\n ...controllerProps\n }: FormItemPropsType<TFieldValues, TName>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const id = React.useId();\n\n // 如果没有提供render函数,则使用children作为内容\n const content = (\n <Controller\n name={controllerProps.name}\n control={controllerProps.control}\n rules={controllerProps.rules}\n shouldUnregister={controllerProps.shouldUnregister}\n defaultValue={controllerProps.defaultValue}\n disabled={controllerProps.disabled}\n exact={controllerProps.exact}\n render={(...res) => {\n return (\n <FormControl>\n {render\n ? render(...res)\n : React.isValidElement(children)\n ? React.cloneElement(children, res[0].field)\n : children}\n </FormControl>\n );\n }}\n />\n );\n\n if (noStyle) return content;\n\n const formItemContent = (\n <div\n ref={ref}\n data-slot=\"form-item\"\n className={cn(formItemVariants(), className)}\n >\n {label && (\n <div>\n <FormLabel>\n {required && <span className=\"mr-1 text-red-500\">*</span>}\n {label}\n {colon && \":\"}\n </FormLabel>\n </div>\n )}\n\n {content}\n {description && <FormDescription></FormDescription>}\n {showMessage && <FormMessage className={cn(formItemMesVariants())} />}\n </div>\n );\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <FormFieldContext.Provider value={{ name: controllerProps.name }}>\n {formItemContent}\n </FormFieldContext.Provider>\n </FormItemContext.Provider>\n );\n};\n\nconst FormItemWithRef = React.forwardRef(FormItem) as <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>(\n props: FormItemPropsType<TFieldValues, TName> & {\n ref?: React.Ref<HTMLDivElement>;\n },\n) => React.ReactElement;\n\nexport default FormItemWithRef;\n"],"mappings":"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"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["export * from \"./accordion\";\nexport * from \"./alert\";\nexport * from \"./alert-dialog\";\nexport * from \"./aspect-ratio\";\nexport * from \"./avatar\";\nexport * from \"./badge\";\nexport * from \"./breadcrumb\";\nexport * from \"./button\";\nexport * from \"./button-group\";\nexport * from \"./calendar\";\nexport * from \"./card\";\nexport * from \"./carousel\";\nexport * from \"./chart\";\nexport * from \"./checkbox\";\nexport * from \"./collapsible\";\nexport * from \"./combobox\";\nexport * from \"./command\";\nexport * from \"./context-menu\";\nexport * from \"./date-picker\";\nexport * from \"./dialog\";\nexport * from \"./direction\";\nexport * from \"./drawer\";\nexport * from \"./dropdown-menu\";\nexport * from \"./empty\";\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n} from \"./field\";\nexport * from \"./form\";\nexport * from \"./hover-card\";\nexport * from \"./input\";\nexport * from \"./input-group\";\nexport * from \"./input-otp\";\nexport * from \"./item\";\nexport * from \"./kbd\";\nexport * from \"./label\";\nexport * from \"./menubar\";\nexport * from \"./native-select\";\nexport * from \"./navigation-menu\";\nexport * from \"./pagination\";\nexport * from \"./popover\";\nexport * from \"./progress\";\nexport * from \"./radio-group\";\nexport * from \"./resizable\";\nexport * from \"./scroll-area\";\nexport * from \"./select\";\nexport * from \"./separator\";\nexport * from \"./sheet\";\nexport * from \"./sidebar\";\nexport * from \"./skeleton\";\nexport * from \"./slider\";\nexport * from \"./sonner\";\nexport * from \"./spinner\";\nexport * from \"./switch\";\nexport * from \"./table\";\nexport * from \"./tabs\";\nexport * from \"./textarea\";\nexport * from \"./toggle\";\nexport * from \"./toggle-group\";\nexport * from \"./tooltip\";\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["export * from \"./accordion\";\nexport * from \"./alert\";\nexport * from \"./alert-dialog\";\nexport * from \"./aspect-ratio\";\nexport * from \"./avatar\";\nexport * from \"./badge\";\nexport * from \"./breadcrumb\";\nexport * from \"./button\";\nexport * from \"./button-group\";\nexport * from \"./calendar\";\nexport * from \"./card\";\nexport * from \"./carousel\";\nexport * from \"./chart\";\nexport * from \"./checkbox\";\nexport * from \"./collapsible\";\nexport * from \"./combobox\";\nexport * from \"./command\";\nexport * from \"./context-menu\";\nexport * from \"./date-picker\";\nexport * from \"./dialog\";\nexport * from \"./direction\";\nexport * from \"./drawer\";\nexport * from \"./dropdown-menu\";\nexport * from \"./empty\";\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n} from \"./field\";\nexport * from \"./form\";\nexport * from \"./hover-card\";\nexport * from \"./input\";\nexport * from \"./input-group\";\nexport * from \"./input-otp\";\nexport * from \"./item\";\nexport * from \"./kbd\";\nexport * from \"./label\";\nexport * from \"./menubar\";\nexport * from \"./native-select\";\nexport * from \"./navigation-menu\";\nexport * from \"./pagination\";\nexport * from \"./popover\";\nexport * from \"./progress\";\nexport * from \"./radio-group\";\nexport * from \"./resizable\";\nexport * from \"./scroll-area\";\nexport * from \"./select\";\nexport * from \"./separator\";\nexport * from \"./sheet\";\nexport * from \"./sidebar\";\nexport * from \"./skeleton\";\nexport * from \"./slider\";\nexport * from \"./sonner\";\nexport * from \"./spinner\";\nexport * from \"./switch\";\nexport * from \"./table\";\nexport * from \"./tabs\";\nexport * from \"./textarea\";\nexport * from \"./toggle\";\nexport * from \"./toggle-group\";\nexport * from \"./tooltip\";\n"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/select/index.tsx"],"sourcesContent":["\"use client\";\n\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\";\nimport * as React from \"react\";\n\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { cn } from \"../../lib\";\n\nconst Select = SelectPrimitive.Root;\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 flex w-fit select-none items-center justify-between gap-1.5 whitespace-nowrap rounded-lg border bg-transparent py-2 pl-2.5 pr-2 text-sm outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4\" />\n }\n />\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n \"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) bg-popover text-popover-foreground ring-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 relative isolate z-50 min-w-36 overflow-y-auto overflow-x-hidden rounded-lg shadow-md ring-1 duration-100 data-[align-trigger=true]:animate-none\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-1.5 py-1 text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default select-none items-center gap-1.5 rounded-md py-1 pl-1.5 pr-8 text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"bg-popover top-0 z-10 flex w-full cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bg-popover bottom-0 z-10 flex w-full cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/select/index.tsx"],"sourcesContent":["\"use client\";\n\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\";\nimport * as React from \"react\";\n\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { cn } from \"../../lib\";\n\nconst Select = SelectPrimitive.Root;\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 flex w-fit select-none items-center justify-between gap-1.5 whitespace-nowrap rounded-lg border bg-transparent py-2 pl-2.5 pr-2 text-sm outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4\" />\n }\n />\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n \"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) bg-popover text-popover-foreground ring-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 relative isolate z-50 min-w-36 overflow-y-auto overflow-x-hidden rounded-lg shadow-md ring-1 duration-100 data-[align-trigger=true]:animate-none\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-1.5 py-1 text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default select-none items-center gap-1.5 rounded-md py-1 pl-1.5 pr-8 text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"bg-popover top-0 z-10 flex w-full cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bg-popover bottom-0 z-10 flex w-full cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"mappings":";;;;;;;AAQA,IAAM,SAAS,SAAgB;AAE/B,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC,SAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,mBAAmB,UAAU;EAC3C,GAAI;EACJ,CAAA;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC,SAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,yBAAyB,UAAU;EACjD,GAAI;EACJ,CAAA;;AAIN,SAAS,cAAc,EACrB,WACA,OAAO,WACP,UACA,GAAG,SAGF;AACD,QACE,qBAAC,SAAgB,SAAjB;EACE,aAAU;EACV,aAAW;EACX,WAAW,GACT,u2BACA,UACD;EACD,GAAI;YAPN,CASG,UACD,oBAAC,SAAgB,MAAjB,EACE,QACE,oBAAC,iBAAD,EAAiB,WAAU,oDAAqD,CAAA,EAElF,CAAA,CACsB;;;AAI9B,SAAS,cAAc,EACrB,WACA,UACA,OAAO,UACP,aAAa,GACb,QAAQ,UACR,cAAc,GACd,uBAAuB,MACvB,GAAG,SAKA;AACH,QACE,oBAAC,SAAgB,QAAjB,EAAA,UACE,oBAAC,SAAgB,YAAjB;EACQ;EACM;EACL;EACM;EACS;EACtB,WAAU;YAEV,qBAAC,SAAgB,OAAjB;GACE,aAAU;GACV,sBAAoB;GACpB,WAAW,GACT,gpBACA,UACD;GACD,GAAI;aAPN;IASE,oBAAC,sBAAD,EAAwB,CAAA;IACxB,oBAAC,SAAgB,MAAjB,EAAuB,UAAgC,CAAA;IACvD,oBAAC,wBAAD,EAA0B,CAAA;IACJ;;EACG,CAAA,EACN,CAAA;;AAI7B,SAAS,YAAY,EACnB,WACA,GAAG,SACgC;AACnC,QACE,oBAAC,SAAgB,YAAjB;EACE,aAAU;EACV,WAAW,GAAG,6CAA6C,UAAU;EACrE,GAAI;EACJ,CAAA;;AAIN,SAAS,WAAW,EAClB,WACA,UACA,GAAG,SAC0B;AAC7B,QACE,qBAAC,SAAgB,MAAjB;EACE,aAAU;EACV,WAAW,GACT,sbACA,UACD;EACD,GAAI;YANN,CAQE,oBAAC,SAAgB,UAAjB;GAA0B,WAAU;GACjC;GACwB,CAAA,EAC3B,oBAAC,SAAgB,eAAjB;GACE,QACE,oBAAC,QAAD,EAAM,WAAU,gFAAiF,CAAA;aAGnG,oBAAC,WAAD,EAAW,WAAU,uBAAwB,CAAA;GACf,CAAA,CACX;;;AAI3B,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC+B;AAClC,QACE,oBAAC,SAAgB,WAAjB;EACE,aAAU;EACV,WAAW,GAAG,iDAAiD,UAAU;EACzE,GAAI;EACJ,CAAA;;AAIN,SAAS,qBAAqB,EAC5B,WACA,GAAG,SAC0D;AAC7D,QACE,oBAAC,SAAgB,eAAjB;EACE,aAAU;EACV,WAAW,GACT,0HACA,UACD;EACD,GAAI;YAEJ,oBAAC,eAAD,EAAiB,CAAA;EACa,CAAA;;AAIpC,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAAC,SAAgB,iBAAjB;EACE,aAAU;EACV,WAAW,GACT,6HACA,UACD;EACD,GAAI;YAEJ,oBAAC,iBAAD,EAAmB,CAAA;EACa,CAAA"}