@zayne-labs/ui-react 0.4.0 → 0.4.1
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.
- package/dist/esm/{chunk-FFJY632O.js → chunk-WEJITNOR.js} +3 -2
- package/dist/esm/chunk-WEJITNOR.js.map +1 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/ui/form/index.d.ts +1 -0
- package/dist/esm/ui/form/index.js +1 -1
- package/dist/esm/ui/index.d.ts +1 -1
- package/dist/esm/ui/index.js +1 -1
- package/package.json +1 -1
- package/dist/esm/chunk-FFJY632O.js.map +0 -1
|
@@ -8,6 +8,7 @@ import { toArray } from '@zayne-labs/toolkit-core';
|
|
|
8
8
|
import { createCustomContext, useToggle, ContextError } from '@zayne-labs/toolkit-react';
|
|
9
9
|
import { getSlotElement, getOtherChildren } from '@zayne-labs/toolkit-react/utils';
|
|
10
10
|
import { useFormState, FormProvider, useWatch, Controller, useFormContext } from 'react-hook-form';
|
|
11
|
+
export { useFormContext } from 'react-hook-form';
|
|
11
12
|
|
|
12
13
|
var EyeIconInvisible = (props) => /* @__PURE__ */ React2.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React2.createElement(
|
|
13
14
|
"path",
|
|
@@ -419,5 +420,5 @@ __export(form_parts_exports, {
|
|
|
419
420
|
});
|
|
420
421
|
|
|
421
422
|
export { FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, form_parts_exports, useStrictFormFieldContext };
|
|
422
|
-
//# sourceMappingURL=chunk-
|
|
423
|
-
//# sourceMappingURL=chunk-
|
|
423
|
+
//# sourceMappingURL=chunk-WEJITNOR.js.map
|
|
424
|
+
//# sourceMappingURL=chunk-WEJITNOR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/icons/EyeIcon.tsx","../../src/components/ui/form/form-context.ts","../../src/components/ui/form/form.tsx","../../src/components/ui/form/form-parts.ts"],"names":["React","HookFormProvider","ReactFragment"],"mappings":"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","file":"chunk-WEJITNOR.js","sourcesContent":["import * as React from \"react\";\n\nexport const EyeIconInvisible = (props: React.SVGProps<SVGSVGElement>) => (\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n\t\t<path\n\t\t\tfill=\"currentColor\"\n\t\t\td=\"M15.175 8.325q.725.725 1.063 1.65t.237 1.9q0 .375-.275.638t-.65.262t-.638-.262t-.262-.638q.125-.65-.075-1.25T13.95 9.6t-1.025-.65t-1.275-.1q-.375 0-.638-.275t-.262-.65t.263-.637t.637-.263q.95-.1 1.875.238t1.65 1.062M12 6q-.475 0-.925.037t-.9.138q-.425.075-.763-.125t-.462-.6t.088-.775t.612-.45q.575-.125 1.163-.175T12 4q3.425 0 6.263 1.8t4.337 4.85q.1.2.15.413t.05.437t-.038.438t-.137.412q-.45 1-1.112 1.875t-1.463 1.6q-.3.275-.7.225t-.65-.4t-.212-.763t.337-.687q.6-.575 1.1-1.25t.875-1.45q-1.25-2.525-3.613-4.012T12 6m0 13q-3.35 0-6.125-1.812T1.5 12.425q-.125-.2-.187-.437T1.25 11.5t.05-.475t.175-.45q.5-1 1.163-1.912T4.15 7L2.075 4.9q-.275-.3-.262-.712T2.1 3.5t.7-.275t.7.275l17 17q.275.275.288.688t-.288.712q-.275.275-.7.275t-.7-.275l-3.5-3.45q-.875.275-1.775.413T12 19M5.55 8.4q-.725.65-1.325 1.425T3.2 11.5q1.25 2.525 3.613 4.013T12 17q.5 0 .975-.062t.975-.138l-.9-.95q-.275.075-.525.113T12 16q-1.875 0-3.188-1.312T7.5 11.5q0-.275.038-.525t.112-.525zm4.2 4.2\"\n\t\t/>\n\t</svg>\n);\n\nexport const EyeIconVisible = (props: React.SVGProps<SVGSVGElement>) => (\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n\t\t<path\n\t\t\tfill=\"currentColor\"\n\t\t\td=\"M12 16q1.875 0 3.188-1.312T16.5 11.5t-1.312-3.187T12 7T8.813 8.313T7.5 11.5t1.313 3.188T12 16m0-1.8q-1.125 0-1.912-.788T9.3 11.5t.788-1.912T12 8.8t1.913.788t.787 1.912t-.787 1.913T12 14.2m0 4.8q-3.35 0-6.113-1.8t-4.362-4.75q-.125-.225-.187-.462t-.063-.488t.063-.488t.187-.462q1.6-2.95 4.363-4.75T12 4t6.113 1.8t4.362 4.75q.125.225.188.463t.062.487t-.062.488t-.188.462q-1.6 2.95-4.362 4.75T12 19m0-2q2.825 0 5.188-1.487T20.8 11.5q-1.25-2.525-3.613-4.012T12 6T6.813 7.488T3.2 11.5q1.25 2.525 3.613 4.013T12 17\"\n\t\t/>\n\t</svg>\n);\n","import { ContextError, createCustomContext } from \"@zayne-labs/toolkit-react\";\nimport type { DiscriminatedRenderProps } from \"@zayne-labs/toolkit-react/utils\";\nimport { type UseFormReturn, useFormContext } from \"react-hook-form\";\nimport type { FieldValues } from \"./form\";\n\nexport const useFormRootContext = () => {\n\tconst formContext = useFormContext() as UseFormReturn<FieldValues> | null;\n\n\tif (!formContext) {\n\t\tthrow new ContextError(\n\t\t\t`useFormRootContext returned \"null\". Did you forget to wrap the necessary components within FormRoot?`\n\t\t);\n\t}\n\n\treturn formContext;\n};\n\nexport type FieldContextValue = {\n\tformDescriptionId: `${string}-(${string})-form-item-description`;\n\tformItemId: `${string}-(${string})-form-item`;\n\tformMessageId: `${string}-(${string})-form-item-message`;\n\tname: string;\n};\n\nexport type FormFieldContextProps = DiscriminatedRenderProps<\n\t(contextValue: FieldContextValue) => React.ReactNode\n>;\n\nexport const useStrictGetFieldState = () => {\n\tconst { name } = useStrictFormFieldContext();\n\n\tconst { formState, getFieldState } = useFormRootContext();\n\n\tconst fieldState = getFieldState(name, formState);\n\n\treturn fieldState;\n};\n\nexport const useLaxGetFieldState = (name: string | undefined) => {\n\tconst { formState, getFieldState } = useFormRootContext();\n\n\tif (!name) return;\n\n\tconst fieldState = getFieldState(name, formState);\n\n\treturn fieldState;\n};\n\nexport const [StrictFormFieldProvider, useStrictFormFieldContext] = createCustomContext<FieldContextValue>(\n\t{\n\t\thookName: \"useFormFieldContext\",\n\t\tname: \"StrictFormFieldContext\",\n\t\tproviderName: \"FormField\",\n\t}\n);\n\nexport const [LaxFormFieldProvider, useLaxFormFieldContext] = createCustomContext<\n\tFieldContextValue,\n\tfalse\n>({\n\thookName: \"useLaxFormFieldContext\",\n\tname: \"LaxFormFieldContext\",\n\tproviderName: \"FormField\",\n\tstrict: false,\n});\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { Slot } from \"@/components/common\";\nimport { getElementList } from \"@/components/common/for\";\nimport { EyeIconInvisible, EyeIconVisible } from \"@/components/icons\";\nimport { cnMerge } from \"@/lib/utils/cn\";\nimport { toArray } from \"@zayne-labs/toolkit-core\";\nimport { useToggle } from \"@zayne-labs/toolkit-react\";\nimport {\n\ttype DiscriminatedRenderProps,\n\ttype InferProps,\n\ttype PolymorphicProps,\n\tgetOtherChildren,\n\tgetSlotElement,\n} from \"@zayne-labs/toolkit-react/utils\";\nimport { Fragment as ReactFragment, useEffect, useId, useMemo, useRef } from \"react\";\nimport {\n\ttype Control,\n\tController,\n\ttype ControllerFieldState,\n\ttype ControllerProps,\n\ttype ControllerRenderProps,\n\ttype FieldPath,\n\ttype FieldPathValue,\n\ttype FieldPathValues,\n\tFormProvider as HookFormProvider,\n\ttype RegisterOptions,\n\ttype UseFormReturn,\n\ttype UseFormStateReturn,\n\tuseFormState,\n\tuseWatch,\n} from \"react-hook-form\";\nimport {\n\ttype FieldContextValue,\n\ttype FormFieldContextProps,\n\tLaxFormFieldProvider,\n\tStrictFormFieldProvider,\n\tuseFormRootContext,\n\tuseLaxFormFieldContext,\n\tuseLaxGetFieldState,\n\tuseStrictFormFieldContext,\n} from \"./form-context\";\n\nexport type FieldValues = Record<string, unknown>;\n\ntype FormRootProps<TFieldValues extends FieldValues> = React.ComponentPropsWithoutRef<\"form\"> & {\n\tchildren: React.ReactNode;\n\tmethods: UseFormReturn<TFieldValues>;\n};\n\nexport function FormRoot<TValues extends FieldValues>(props: FormRootProps<TValues>) {\n\tconst { children, className, methods, ...restOfProps } = props;\n\n\treturn (\n\t\t<HookFormProvider {...methods}>\n\t\t\t<form\n\t\t\t\tclassName={cnMerge(\"flex flex-col\", className)}\n\t\t\t\t{...restOfProps}\n\t\t\t\tdata-scope=\"form\"\n\t\t\t\tdata-part=\"root\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</form>\n\t\t</HookFormProvider>\n\t);\n}\n\ntype FormFieldProps<TControl, TFieldValues extends FieldValues> = (TControl extends Control<infer TValues>\n\t? {\n\t\t\tcontrol?: never;\n\t\t\tname: FieldPath<TValues>;\n\t\t}\n\t: {\n\t\t\tcontrol?: Control<TFieldValues>;\n\t\t\tname: FieldPath<TFieldValues>;\n\t\t})\n\t& (\n\t\t| (InferProps<\"div\"> & {\n\t\t\t\twithWrapper?: true;\n\t\t })\n\t\t| { children: React.ReactNode; className?: never; withWrapper: false }\n\t);\n\nexport function FormField<TControl, TFieldValues extends FieldValues = FieldValues>(\n\tprops: FormFieldProps<TControl, TFieldValues>\n) {\n\tconst { children, className, name, withWrapper = true } = props;\n\n\tconst uniqueId = useId();\n\n\tconst fieldContextValue = useMemo(\n\t\t() =>\n\t\t\t({\n\t\t\t\tformDescriptionId: `${name}-(${uniqueId})-form-item-description`,\n\t\t\t\tformItemId: `${name}-(${uniqueId})-form-item`,\n\t\t\t\tformMessageId: `${name}-(${uniqueId})-form-item-message`,\n\t\t\t\tname,\n\t\t\t}) satisfies FieldContextValue,\n\t\t[name, uniqueId]\n\t);\n\n\tconst WrapperElement = withWrapper ? \"div\" : ReactFragment;\n\n\tconst wrapperElementProps = withWrapper && {\n\t\tclassName: cnMerge(\"flex flex-col\", className),\n\t\t\"data-part\": \"field\",\n\t\t\"data-scope\": \"form\",\n\t};\n\n\treturn (\n\t\t<StrictFormFieldProvider value={fieldContextValue}>\n\t\t\t<LaxFormFieldProvider value={fieldContextValue}>\n\t\t\t\t<WrapperElement {...wrapperElementProps}>{children}</WrapperElement>\n\t\t\t</LaxFormFieldProvider>\n\t\t</StrictFormFieldProvider>\n\t);\n}\n\nexport function FormControlledField<TFieldValues extends FieldValues>(\n\tprops: ControllerProps<TFieldValues>\n) {\n\tconst { name } = props;\n\n\tconst uniqueId = useId();\n\n\tconst fieldContextValue = useMemo(\n\t\t() =>\n\t\t\t({\n\t\t\t\tformDescriptionId: `${name}-(${uniqueId})-form-item-description`,\n\t\t\t\tformItemId: `${name}-(${uniqueId})-form-item`,\n\t\t\t\tformMessageId: `${name}-(${uniqueId})-form-item-message`,\n\t\t\t\tname,\n\t\t\t}) satisfies FieldContextValue,\n\t\t[name, uniqueId]\n\t);\n\n\treturn (\n\t\t<StrictFormFieldProvider value={fieldContextValue}>\n\t\t\t<LaxFormFieldProvider value={fieldContextValue}>\n\t\t\t\t<Controller {...props} />\n\t\t\t</LaxFormFieldProvider>\n\t\t</StrictFormFieldProvider>\n\t);\n}\n\ntype FormFieldControllerRenderFn = (props: {\n\tfield: Omit<ControllerRenderProps, \"value\"> & {\n\t\tvalue: never;\n\t};\n\tfieldState: ControllerFieldState;\n\tformState: UseFormStateReturn<never>;\n}) => React.ReactElement;\n\ntype FormFieldControllerProps = Omit<\n\tControllerProps<FieldValues, FieldPath<FieldValues>>,\n\t\"control\" | \"name\" | \"render\"\n> & {\n\trender: FormFieldControllerRenderFn;\n};\n\nexport function FormFieldController(props: FormFieldControllerProps) {\n\tconst { control } = useFormRootContext();\n\tconst { name } = useStrictFormFieldContext();\n\tconst { render, ...restOfProps } = props;\n\n\treturn <Controller name={name} control={control} render={render as never} {...restOfProps} />;\n}\n\nexport function FormFieldContext(props: FormFieldContextProps) {\n\tconst { children, render } = props;\n\tconst fieldContextValues = useStrictFormFieldContext();\n\n\tif (typeof children === \"function\") {\n\t\treturn children(fieldContextValues);\n\t}\n\n\treturn render(fieldContextValues);\n}\n\nexport function FormLabel(props: InferProps<\"label\">) {\n\tconst { formItemId } = useStrictFormFieldContext();\n\tconst { children, className, ...restOfProps } = props;\n\n\treturn (\n\t\t<label\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"label\"\n\t\t\thtmlFor={formItemId}\n\t\t\tclassName={className}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{children}\n\t\t</label>\n\t);\n}\n\nexport function FormInputGroup(props: React.ComponentPropsWithRef<\"div\">) {\n\tconst { children, className, ...restOfProps } = props;\n\tconst LeftItemSlot = getSlotElement(children, FormInputLeftItem);\n\tconst RightItemSlot = getSlotElement(children, FormInputRightItem);\n\n\tconst otherChildren = getOtherChildren(children, [FormInputLeftItem, FormInputRightItem]);\n\n\treturn (\n\t\t<div\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"input-group\"\n\t\t\tclassName={cnMerge(\"flex items-center justify-between gap-2\", className)}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{LeftItemSlot}\n\t\t\t{otherChildren}\n\t\t\t{RightItemSlot}\n\t\t</div>\n\t);\n}\n\ntype FormSideItemProps = {\n\tchildren?: React.ReactNode;\n\tclassName?: string;\n};\n\nexport function FormInputLeftItem<TElement extends React.ElementType = \"span\">(\n\tprops: PolymorphicProps<TElement, FormSideItemProps>\n) {\n\tconst { as: Element = \"span\", children, className, ...restOfProps } = props;\n\n\treturn (\n\t\t<Element\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"left-item\"\n\t\t\tclassName={cnMerge(\"inline-flex items-center justify-center\", className)}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t);\n}\nFormInputLeftItem.slot = Symbol.for(\"leftItem\");\n\nexport function FormInputRightItem<TElement extends React.ElementType = \"span\">(\n\tprops: PolymorphicProps<TElement, FormSideItemProps>\n) {\n\tconst { as: Element = \"span\", children, className, ...restOfProps } = props;\n\n\treturn (\n\t\t<Element\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"right-item\"\n\t\t\tclassName={cnMerge(\"inline-flex items-center justify-center\", className)}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t);\n}\nFormInputRightItem.slot = Symbol.for(\"rightItem\");\n\ntype FormInputPrimitiveProps<TFieldValues extends FieldValues = FieldValues> = Omit<\n\tReact.ComponentPropsWithRef<\"input\">,\n\t\"children\"\n> & {\n\tclassNames?: { error?: string; eyeIcon?: string; input?: string; inputGroup?: string };\n\tcontrol?: Control<TFieldValues>;\n\tname?: FieldPath<TFieldValues>;\n\twithEyeIcon?: boolean;\n};\n\ntype FormTextAreaPrimitiveProps<TFieldValues extends FieldValues = FieldValues> =\n\tReact.ComponentPropsWithRef<\"textarea\"> & {\n\t\tcontrol?: Control<TFieldValues>;\n\t\terrorClassName?: string;\n\t\tname?: FieldPath<TFieldValues>;\n\t\ttype: \"textarea\";\n\t};\n\nconst inputTypesWithoutFullWith = new Set<React.HTMLInputTypeAttribute>([\"checkbox\", \"radio\"]);\n\nexport function FormInputPrimitive<TFieldValues extends FieldValues>(\n\tprops: FormInputPrimitiveProps<TFieldValues>\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst {\n\t\tclassName,\n\t\tclassNames,\n\t\tid = fieldContextValues?.formItemId,\n\t\tname = fieldContextValues?.name,\n\t\ttype = \"text\",\n\t\twithEyeIcon = true,\n\t\t...restOfProps\n\t} = props;\n\n\tconst fieldState = useLaxGetFieldState(name);\n\n\tconst fieldError = fieldState?.error;\n\n\tconst [isPasswordVisible, toggleVisibility] = useToggle(false);\n\n\tconst shouldHaveEyeIcon = withEyeIcon && type === \"password\";\n\n\tconst WrapperElement = shouldHaveEyeIcon ? FormInputGroup : ReactFragment;\n\n\tconst wrapperElementProps = shouldHaveEyeIcon && {\n\t\tclassName: cnMerge(\"w-full\", classNames?.inputGroup, fieldError && classNames?.error),\n\t};\n\n\treturn (\n\t\t<WrapperElement {...wrapperElementProps}>\n\t\t\t<input\n\t\t\t\tdata-scope=\"form\"\n\t\t\t\tdata-part=\"input\"\n\t\t\t\taria-describedby={\n\t\t\t\t\t!fieldError\n\t\t\t\t\t\t? fieldContextValues?.formDescriptionId\n\t\t\t\t\t\t: `${fieldContextValues?.formDescriptionId} ${fieldContextValues?.formMessageId}`\n\t\t\t\t}\n\t\t\t\taria-invalid={Boolean(fieldError)}\n\t\t\t\tid={id}\n\t\t\t\tname={name}\n\t\t\t\ttype={type === \"password\" && isPasswordVisible ? \"text\" : type}\n\t\t\t\tclassName={cnMerge(\n\t\t\t\t\t!inputTypesWithoutFullWith.has(type) && \"flex w-full\",\n\t\t\t\t\t`bg-transparent text-sm file:border-0 file:bg-transparent\n\t\t\t\t\tplaceholder:text-shadcn-muted-foreground focus-visible:outline-none\n\t\t\t\t\tdisabled:cursor-not-allowed disabled:opacity-50`,\n\t\t\t\t\tclassName,\n\t\t\t\t\tclassNames?.input,\n\t\t\t\t\ttype !== \"password\" && fieldError && classNames?.error\n\t\t\t\t)}\n\t\t\t\t{...restOfProps}\n\t\t\t/>\n\n\t\t\t{shouldHaveEyeIcon && (\n\t\t\t\t<FormInputRightItem\n\t\t\t\t\tas=\"button\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={toggleVisibility}\n\t\t\t\t\tclassName=\"size-5 shrink-0 lg:size-6\"\n\t\t\t\t>\n\t\t\t\t\t{isPasswordVisible ? (\n\t\t\t\t\t\t<EyeIconInvisible className={cnMerge(\"size-full\", classNames?.eyeIcon)} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<EyeIconVisible className={cnMerge(\"size-full\", classNames?.eyeIcon)} />\n\t\t\t\t\t)}\n\t\t\t\t</FormInputRightItem>\n\t\t\t)}\n\t\t</WrapperElement>\n\t);\n}\n\nexport function FormTextAreaPrimitive<TFieldValues extends FieldValues>(\n\tprops: FormTextAreaPrimitiveProps<TFieldValues>\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst {\n\t\tclassName,\n\t\terrorClassName,\n\t\tid = fieldContextValues?.formItemId,\n\t\tname = fieldContextValues?.name,\n\t\t...restOfProps\n\t} = props;\n\n\tconst fieldState = useLaxGetFieldState(name);\n\n\tconst fieldError = fieldState?.error;\n\n\treturn (\n\t\t<textarea\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"textarea\"\n\t\t\taria-describedby={\n\t\t\t\t!fieldError\n\t\t\t\t\t? fieldContextValues?.formDescriptionId\n\t\t\t\t\t: `${fieldContextValues?.formDescriptionId} ${fieldContextValues?.formMessageId}`\n\t\t\t}\n\t\t\taria-invalid={Boolean(fieldError)}\n\t\t\tid={id}\n\t\t\tname={name}\n\t\t\tclassName={cnMerge(\n\t\t\t\t`w-full bg-transparent text-sm placeholder:text-shadcn-muted-foreground\n\t\t\t\tfocus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50`,\n\t\t\t\tclassName,\n\t\t\t\tfieldError && errorClassName\n\t\t\t)}\n\t\t\t{...restOfProps}\n\t\t/>\n\t);\n}\n\ntype PrimitivePropsToOmit = \"control\" | \"formState\" | \"name\" | \"ref\";\ntype FormInputProps =\n\t| Omit<FormInputPrimitiveProps, PrimitivePropsToOmit>\n\t| Omit<FormTextAreaPrimitiveProps & { type: \"textarea\" }, PrimitivePropsToOmit>;\n\nexport function FormInput(props: FormInputProps & { rules?: RegisterOptions }) {\n\tconst { rules, type, ...restOfProps } = props;\n\n\tconst { name } = useStrictFormFieldContext();\n\tconst { register } = useFormRootContext();\n\n\tconst SelectedInput = type === \"textarea\" ? FormTextAreaPrimitive : FormInputPrimitive;\n\n\treturn (\n\t\t<SelectedInput\n\t\t\ttype={type as never}\n\t\t\tname={name}\n\t\t\t{...(Boolean(name) && register(name, rules))}\n\t\t\t{...(restOfProps as NonNullable<unknown>)}\n\t\t/>\n\t);\n}\n\nexport function FormDescription(props: InferProps<\"p\">) {\n\tconst { className, ...restOfProps } = props;\n\n\tconst { formDescriptionId } = useLaxFormFieldContext() ?? {};\n\n\treturn <p id={formDescriptionId} className={cnMerge(\"text-[12px]\", className)} {...restOfProps} />;\n}\n\ntype ErrorMessageRenderProps = {\n\tclassName: string;\n\t\"data-index\": number;\n\t\"data-part\": string;\n\t\"data-scope\": string;\n\tid: string | undefined;\n\tonAnimationEnd?: React.ReactEventHandler<HTMLElement>;\n};\n\ntype ErrorMessageRenderState = { errorMessage: string; errorMessageArray: string[]; index: number };\n\ntype ErrorMessageRenderFn = (context: {\n\tprops: ErrorMessageRenderProps;\n\tstate: ErrorMessageRenderState;\n}) => React.ReactNode;\n\ntype FormErrorMessagePrimitiveProps<TFieldValues extends FieldValues> =\n\tDiscriminatedRenderProps<ErrorMessageRenderFn> & {\n\t\tclassName?: string;\n\t\tclassNames?: {\n\t\t\tcontainer?: string;\n\t\t\terrorMessage?: string;\n\t\t\terrorMessageAnimation?: string;\n\t\t};\n\t\tcontrol: Control<TFieldValues>; // == Here for type inference of errorField prop\n\t\twithAnimationOnInvalid?: boolean;\n\t} & (\n\t\t\t| {\n\t\t\t\t\terrorField: FieldPath<TFieldValues>;\n\t\t\t\t\ttype?: \"regular\";\n\t\t\t }\n\t\t\t| {\n\t\t\t\t\terrorField: string;\n\t\t\t\t\ttype: \"root\";\n\t\t\t }\n\t\t);\n\ntype FormErrorMessagePrimitiveType = {\n\t<TFieldValues extends FieldValues>(\n\t\tprops: Extract<FormErrorMessagePrimitiveProps<TFieldValues>, { type?: \"regular\" }>\n\t): React.ReactNode;\n\t<TFieldValues extends FieldValues>(\n\t\t// eslint-disable-next-line ts-eslint/unified-signatures -- Using overloads are better because it gives better error messages\n\t\tprops: Extract<FormErrorMessagePrimitiveProps<TFieldValues>, { type: \"root\" }>\n\t): React.ReactNode;\n};\n\nexport const FormErrorMessagePrimitive: FormErrorMessagePrimitiveType = (props) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tclassNames,\n\t\tcontrol,\n\t\terrorField,\n\t\trender,\n\t\ttype = \"regular\",\n\t\twithAnimationOnInvalid = true,\n\t} = props;\n\n\tconst formState = useFormState({ control });\n\n\tconst { formMessageId } = useLaxFormFieldContext() ?? {};\n\n\tconst wrapperRef = useRef<HTMLUListElement>(null);\n\n\tconst errorAnimationClass = classNames?.errorMessageAnimation ?? \"animate-shake\";\n\n\tuseEffect(() => {\n\t\tif (!withAnimationOnInvalid) return;\n\n\t\tconst errorMessageElements = wrapperRef.current?.children;\n\n\t\tif (!errorMessageElements) return;\n\n\t\tfor (const element of errorMessageElements) {\n\t\t\telement.classList.add(errorAnimationClass);\n\t\t}\n\t}, [errorAnimationClass, withAnimationOnInvalid]);\n\n\tuseEffect(() => {\n\t\tconst errorMessageElements = wrapperRef.current?.children;\n\n\t\tif (!errorMessageElements) return;\n\n\t\t// == Scroll to first error message\n\t\tif (Object.keys(formState.errors).indexOf(errorField as string) === 0) {\n\t\t\terrorMessageElements[0]?.scrollIntoView({\n\t\t\t\tbehavior: \"smooth\",\n\t\t\t\tblock: \"center\",\n\t\t\t});\n\n\t\t\twindow.scrollBy({ behavior: \"smooth\", top: -100 });\n\t\t}\n\t}, [errorField, formState.errors]);\n\n\tconst message = (\n\t\ttype === \"root\"\n\t\t\t? formState.errors.root?.[errorField as string]?.message\n\t\t\t: formState.errors[errorField]?.message\n\t) as string | string[];\n\n\tif (!message) {\n\t\treturn null;\n\t}\n\n\tconst errorMessageArray = toArray(message);\n\n\tconst [ErrorMessageList] = getElementList();\n\n\tconst onAnimationEnd: React.AnimationEventHandler<HTMLElement> | undefined = withAnimationOnInvalid\n\t\t? (event) => event.currentTarget.classList.remove(errorAnimationClass)\n\t\t: undefined;\n\n\tconst getRenderProps = ({ index }: { index: number }) =>\n\t\t({\n\t\t\tclassName: cnMerge(errorAnimationClass, className, classNames?.errorMessage),\n\t\t\t\"data-index\": index,\n\t\t\t\"data-part\": \"error-message\",\n\t\t\t\"data-scope\": \"form\",\n\t\t\tid: formMessageId,\n\t\t\tonAnimationEnd,\n\t\t}) satisfies ErrorMessageRenderProps;\n\n\tconst getRenderState = ({ errorMessage, index }: { errorMessage: string; index: number }) =>\n\t\t({\n\t\t\terrorMessage,\n\t\t\terrorMessageArray,\n\t\t\tindex,\n\t\t}) satisfies ErrorMessageRenderState;\n\n\tconst renderFn = typeof children === \"function\" ? children : render;\n\n\treturn (\n\t\t<ErrorMessageList\n\t\t\tref={wrapperRef}\n\t\t\teach={errorMessageArray}\n\t\t\tclassName={cnMerge(\"flex flex-col\", classNames?.container)}\n\t\t\trender={(errorMessage, index) => {\n\t\t\t\treturn renderFn({\n\t\t\t\t\tprops: getRenderProps({ index }),\n\t\t\t\t\tstate: getRenderState({ errorMessage, index }),\n\t\t\t\t});\n\t\t\t}}\n\t\t/>\n\t);\n};\n\ntype FormErrorMessageProps<TControl, TFieldValues extends FieldValues> =\n\t| (TControl extends Control<infer TValues>\n\t\t\t? {\n\t\t\t\t\tclassName?: string;\n\t\t\t\t\tcontrol?: never;\n\t\t\t\t\terrorField?: FieldPath<TValues>;\n\t\t\t\t\ttype?: \"regular\";\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tclassName?: string;\n\t\t\t\t\tcontrol?: Control<TFieldValues>; // == Here for type inference of errorField prop\n\t\t\t\t\terrorField?: FieldPath<TFieldValues>;\n\t\t\t\t\ttype?: \"regular\";\n\t\t\t\t})\n\t| {\n\t\t\tclassName?: string;\n\t\t\tcontrol?: never;\n\t\t\terrorField: string;\n\t\t\ttype: \"root\";\n\t };\n\nexport function FormErrorMessage<TControl, TFieldValues extends FieldValues = FieldValues>(\n\tprops: FormErrorMessageProps<TControl, TFieldValues>\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst { className, errorField = fieldContextValues?.name, type = \"regular\" } = props;\n\n\tconst { control } = useFormRootContext();\n\n\treturn (\n\t\t<FormErrorMessagePrimitive\n\t\t\tcontrol={control}\n\t\t\terrorField={errorField as NonNullable<typeof errorField>}\n\t\t\ttype={type as \"root\"}\n\t\t\trender={({ props: renderProps, state: { errorMessage } }) => (\n\t\t\t\t<p\n\t\t\t\t\t{...renderProps}\n\t\t\t\t\tkey={errorMessage}\n\t\t\t\t\tclassName={cnMerge(\"text-[13px]\", \"data-[index=0]:mt-1\", renderProps.className, className)}\n\t\t\t\t>\n\t\t\t\t\t{errorMessage}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t/>\n\t);\n}\n\ntype FormSubmitProps = InferProps<\"button\"> & { asChild?: boolean };\n\nexport function FormSubmit<TElement extends React.ElementType = \"button\">(\n\tprops: PolymorphicProps<TElement, FormSubmitProps>\n) {\n\tconst { as: Element = \"button\", asChild, children, type = \"submit\", ...restOfProps } = props;\n\n\tconst Component = asChild ? Slot : Element;\n\n\treturn (\n\t\t<Component type={type} {...restOfProps}>\n\t\t\t{children}\n\t\t</Component>\n\t);\n}\n\ntype GetFieldValue<TFieldPathOrPaths, TFieldValues extends FieldValues> =\n\tTFieldPathOrPaths extends Array<FieldPath<TFieldValues>>\n\t\t? FieldPathValues<TFieldValues, TFieldPathOrPaths>\n\t\t: TFieldPathOrPaths extends FieldPath<TFieldValues>\n\t\t\t? FieldPathValue<TFieldValues, TFieldPathOrPaths>\n\t\t\t: unknown;\n\ntype FieldSubscribeRenderFn<TFieldValues extends FieldValues, TFieldPathOrPaths> = (props: {\n\tvalue: GetFieldValue<TFieldPathOrPaths, TFieldValues>;\n}) => React.ReactNode;\n\ntype FormFieldSubscribeProps<\n\tTFieldValues extends FieldValues,\n\tTFieldPathOrPaths,\n> = DiscriminatedRenderProps<FieldSubscribeRenderFn<TFieldValues, TFieldPathOrPaths>> & {\n\tcontrol: Control<TFieldValues>;\n\tname?: TFieldPathOrPaths;\n};\n\nexport function FormFieldSubscribe<\n\tTFieldValues extends FieldValues,\n\tconst TFieldPathOrPaths extends Array<FieldPath<TFieldValues>> | FieldPath<TFieldValues>,\n>(props: FormFieldSubscribeProps<TFieldValues, TFieldPathOrPaths>) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst { children, name = fieldContextValues?.name, render } = props;\n\n\tconst { control } = useFormRootContext();\n\n\tconst formValue = useWatch({ control, name: name as string });\n\n\tconst fieldProps = { value: formValue };\n\n\tif (typeof children === \"function\") {\n\t\treturn children(fieldProps as never);\n\t}\n\n\treturn render(fieldProps as never);\n}\n\ntype FormStateSubscribeRenderFn<TFieldValues extends FieldValues> = (\n\tprops: UseFormStateReturn<TFieldValues>\n) => React.ReactNode;\n\ntype FormStateSubscribeProps<TFieldValues extends FieldValues> = DiscriminatedRenderProps<\n\tFormStateSubscribeRenderFn<TFieldValues>\n> & {\n\tcontrol?: Control<TFieldValues>;\n\tname?: Array<FieldPath<TFieldValues>> | FieldPath<TFieldValues>;\n};\n\nexport function FormStateSubscribe<TFieldValues extends FieldValues = FieldValues>(\n\tprops: FormStateSubscribeProps<TFieldValues>\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst { children, control, name = fieldContextValues?.name, render } = props;\n\n\tconst formState = useFormState({ control, name: name as FieldPath<TFieldValues> });\n\n\tif (typeof children === \"function\") {\n\t\treturn children(formState as never);\n\t}\n\n\treturn render(formState as never);\n}\n","export {\n\tFormFieldController as FieldController,\n\tFormControlledField as ControlledField,\n\tFormDescription as Description,\n\tFormErrorMessage as ErrorMessage,\n\tFormErrorMessagePrimitive as ErrorMessagePrimitive,\n\tFormInput as Input,\n\tFormInputGroup as InputGroup,\n\tFormInputLeftItem as InputLeftItem,\n\tFormInputPrimitive as InputPrimitive,\n\tFormInputRightItem as InputRightItem,\n\tFormField as Field,\n\tFormFieldContext as FieldContext,\n\tFormLabel as Label,\n\tFormRoot as Root,\n\tFormSubmit as Submit,\n\tFormStateSubscribe as StateSubscribe,\n\tFormFieldSubscribe as FieldSubscribe,\n\tFormTextAreaPrimitive as TextAreaPrimitive,\n} from \"./form\";\n"]}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { Carousel, CarouselButton, CarouselButtonsProps, CarouselCaption, Carous
|
|
|
3
3
|
export { useDragScroll } from './ui/drag-scroll/index.js';
|
|
4
4
|
export { DropZone, InputProps, RootProps, UseDropZoneProps, useDropZone } from './ui/drop-zone/index.js';
|
|
5
5
|
export { FieldValues, Form, FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, useFormFieldContext } from './ui/form/index.js';
|
|
6
|
+
export { useFormContext as useFormRootContext } from 'react-hook-form';
|
|
6
7
|
export { ForBase, ForList, ForRenderProps, getElementList } from './common/for/index.js';
|
|
7
8
|
export { Show, ShowContent, ShowFallback, ShowRoot } from './common/show/index.js';
|
|
8
9
|
export { Slot, Slottable } from './common/slot/index.js';
|
|
@@ -13,4 +14,3 @@ import '@zayne-labs/toolkit-react/utils';
|
|
|
13
14
|
import '@zayne-labs/toolkit-type-helpers';
|
|
14
15
|
import 'zustand';
|
|
15
16
|
import '@zayne-labs/toolkit-core';
|
|
16
|
-
import 'react-hook-form';
|
package/dist/esm/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { card_parts_exports as Card, CardContent, CardDescription, CardFooter, C
|
|
|
3
3
|
export { carousel_parts_exports as Carousel, CarouselButton, CarouselCaption, CarouselContent, CarouselControls, CarouselIndicator, CarouselIndicatorGroup, CarouselItem, CarouselItemGroup } from './chunk-GVL6BLX5.js';
|
|
4
4
|
export { useDragScroll } from './chunk-E42DOTGX.js';
|
|
5
5
|
export { DropZone, useDropZone } from './chunk-2YCUMTC7.js';
|
|
6
|
-
export { form_parts_exports as Form, FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, useStrictFormFieldContext as useFormFieldContext } from './chunk-
|
|
6
|
+
export { form_parts_exports as Form, FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, useStrictFormFieldContext as useFormFieldContext, useFormContext as useFormRootContext } from './chunk-WEJITNOR.js';
|
|
7
7
|
import './chunk-OHG7GB7O.js';
|
|
8
8
|
import './chunk-HKPJTORQ.js';
|
|
9
9
|
export { ForBase, ForList, getElementList } from './chunk-DW3FXTFL.js';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { DiscriminatedRenderProps, InferProps, PolymorphicProps } from '@zayne-labs/toolkit-react/utils';
|
|
3
3
|
import { ControllerProps, FieldPath, ControllerRenderProps, ControllerFieldState, UseFormStateReturn, Control, RegisterOptions, UseFormReturn, FieldPathValues, FieldPathValue } from 'react-hook-form';
|
|
4
|
+
export { useFormContext as useFormRootContext } from 'react-hook-form';
|
|
4
5
|
|
|
5
6
|
type FieldContextValue = {
|
|
6
7
|
formDescriptionId: `${string}-(${string})-form-item-description`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { form_parts_exports as Form, FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, useStrictFormFieldContext as useFormFieldContext } from '../../chunk-
|
|
1
|
+
export { form_parts_exports as Form, FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, useStrictFormFieldContext as useFormFieldContext, useFormContext as useFormRootContext } from '../../chunk-WEJITNOR.js';
|
|
2
2
|
import '../../chunk-OHG7GB7O.js';
|
|
3
3
|
import '../../chunk-HKPJTORQ.js';
|
|
4
4
|
import '../../chunk-DW3FXTFL.js';
|
package/dist/esm/ui/index.d.ts
CHANGED
|
@@ -3,9 +3,9 @@ export { Carousel, CarouselButton, CarouselButtonsProps, CarouselCaption, Carous
|
|
|
3
3
|
export { useDragScroll } from './drag-scroll/index.js';
|
|
4
4
|
export { DropZone, InputProps, RootProps, UseDropZoneProps, useDropZone } from './drop-zone/index.js';
|
|
5
5
|
export { FieldValues, Form, FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, useFormFieldContext } from './form/index.js';
|
|
6
|
+
export { useFormContext as useFormRootContext } from 'react-hook-form';
|
|
6
7
|
import 'react';
|
|
7
8
|
import '@zayne-labs/toolkit-react/utils';
|
|
8
9
|
import '@zayne-labs/toolkit-type-helpers';
|
|
9
10
|
import 'zustand';
|
|
10
11
|
import '@zayne-labs/toolkit-core';
|
|
11
|
-
import 'react-hook-form';
|
package/dist/esm/ui/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { card_parts_exports as Card, CardContent, CardDescription, CardFooter, C
|
|
|
3
3
|
export { carousel_parts_exports as Carousel, CarouselButton, CarouselCaption, CarouselContent, CarouselControls, CarouselIndicator, CarouselIndicatorGroup, CarouselItem, CarouselItemGroup } from '../chunk-GVL6BLX5.js';
|
|
4
4
|
export { useDragScroll } from '../chunk-E42DOTGX.js';
|
|
5
5
|
export { DropZone, useDropZone } from '../chunk-2YCUMTC7.js';
|
|
6
|
-
export { form_parts_exports as Form, FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, useStrictFormFieldContext as useFormFieldContext } from '../chunk-
|
|
6
|
+
export { form_parts_exports as Form, FormControlledField, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldController, FormFieldSubscribe, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormStateSubscribe, FormSubmit, FormTextAreaPrimitive, useStrictFormFieldContext as useFormFieldContext, useFormContext as useFormRootContext } from '../chunk-WEJITNOR.js';
|
|
7
7
|
import '../chunk-OHG7GB7O.js';
|
|
8
8
|
import '../chunk-HKPJTORQ.js';
|
|
9
9
|
import '../chunk-DW3FXTFL.js';
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/icons/EyeIcon.tsx","../../src/components/ui/form/form-context.ts","../../src/components/ui/form/form.tsx","../../src/components/ui/form/form-parts.ts"],"names":["React","HookFormProvider","ReactFragment"],"mappings":"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","file":"chunk-FFJY632O.js","sourcesContent":["import * as React from \"react\";\n\nexport const EyeIconInvisible = (props: React.SVGProps<SVGSVGElement>) => (\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n\t\t<path\n\t\t\tfill=\"currentColor\"\n\t\t\td=\"M15.175 8.325q.725.725 1.063 1.65t.237 1.9q0 .375-.275.638t-.65.262t-.638-.262t-.262-.638q.125-.65-.075-1.25T13.95 9.6t-1.025-.65t-1.275-.1q-.375 0-.638-.275t-.262-.65t.263-.637t.637-.263q.95-.1 1.875.238t1.65 1.062M12 6q-.475 0-.925.037t-.9.138q-.425.075-.763-.125t-.462-.6t.088-.775t.612-.45q.575-.125 1.163-.175T12 4q3.425 0 6.263 1.8t4.337 4.85q.1.2.15.413t.05.437t-.038.438t-.137.412q-.45 1-1.112 1.875t-1.463 1.6q-.3.275-.7.225t-.65-.4t-.212-.763t.337-.687q.6-.575 1.1-1.25t.875-1.45q-1.25-2.525-3.613-4.012T12 6m0 13q-3.35 0-6.125-1.812T1.5 12.425q-.125-.2-.187-.437T1.25 11.5t.05-.475t.175-.45q.5-1 1.163-1.912T4.15 7L2.075 4.9q-.275-.3-.262-.712T2.1 3.5t.7-.275t.7.275l17 17q.275.275.288.688t-.288.712q-.275.275-.7.275t-.7-.275l-3.5-3.45q-.875.275-1.775.413T12 19M5.55 8.4q-.725.65-1.325 1.425T3.2 11.5q1.25 2.525 3.613 4.013T12 17q.5 0 .975-.062t.975-.138l-.9-.95q-.275.075-.525.113T12 16q-1.875 0-3.188-1.312T7.5 11.5q0-.275.038-.525t.112-.525zm4.2 4.2\"\n\t\t/>\n\t</svg>\n);\n\nexport const EyeIconVisible = (props: React.SVGProps<SVGSVGElement>) => (\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n\t\t<path\n\t\t\tfill=\"currentColor\"\n\t\t\td=\"M12 16q1.875 0 3.188-1.312T16.5 11.5t-1.312-3.187T12 7T8.813 8.313T7.5 11.5t1.313 3.188T12 16m0-1.8q-1.125 0-1.912-.788T9.3 11.5t.788-1.912T12 8.8t1.913.788t.787 1.912t-.787 1.913T12 14.2m0 4.8q-3.35 0-6.113-1.8t-4.362-4.75q-.125-.225-.187-.462t-.063-.488t.063-.488t.187-.462q1.6-2.95 4.363-4.75T12 4t6.113 1.8t4.362 4.75q.125.225.188.463t.062.487t-.062.488t-.188.462q-1.6 2.95-4.362 4.75T12 19m0-2q2.825 0 5.188-1.487T20.8 11.5q-1.25-2.525-3.613-4.012T12 6T6.813 7.488T3.2 11.5q1.25 2.525 3.613 4.013T12 17\"\n\t\t/>\n\t</svg>\n);\n","import { ContextError, createCustomContext } from \"@zayne-labs/toolkit-react\";\nimport type { DiscriminatedRenderProps } from \"@zayne-labs/toolkit-react/utils\";\nimport { type UseFormReturn, useFormContext } from \"react-hook-form\";\nimport type { FieldValues } from \"./form\";\n\nexport const useFormRootContext = () => {\n\tconst formContext = useFormContext() as UseFormReturn<FieldValues> | null;\n\n\tif (!formContext) {\n\t\tthrow new ContextError(\n\t\t\t`useFormRootContext returned \"null\". Did you forget to wrap the necessary components within FormRoot?`\n\t\t);\n\t}\n\n\treturn formContext;\n};\n\nexport type FieldContextValue = {\n\tformDescriptionId: `${string}-(${string})-form-item-description`;\n\tformItemId: `${string}-(${string})-form-item`;\n\tformMessageId: `${string}-(${string})-form-item-message`;\n\tname: string;\n};\n\nexport type FormFieldContextProps = DiscriminatedRenderProps<\n\t(contextValue: FieldContextValue) => React.ReactNode\n>;\n\nexport const useStrictGetFieldState = () => {\n\tconst { name } = useStrictFormFieldContext();\n\n\tconst { formState, getFieldState } = useFormRootContext();\n\n\tconst fieldState = getFieldState(name, formState);\n\n\treturn fieldState;\n};\n\nexport const useLaxGetFieldState = (name: string | undefined) => {\n\tconst { formState, getFieldState } = useFormRootContext();\n\n\tif (!name) return;\n\n\tconst fieldState = getFieldState(name, formState);\n\n\treturn fieldState;\n};\n\nexport const [StrictFormFieldProvider, useStrictFormFieldContext] = createCustomContext<FieldContextValue>(\n\t{\n\t\thookName: \"useFormFieldContext\",\n\t\tname: \"StrictFormFieldContext\",\n\t\tproviderName: \"FormField\",\n\t}\n);\n\nexport const [LaxFormFieldProvider, useLaxFormFieldContext] = createCustomContext<\n\tFieldContextValue,\n\tfalse\n>({\n\thookName: \"useLaxFormFieldContext\",\n\tname: \"LaxFormFieldContext\",\n\tproviderName: \"FormField\",\n\tstrict: false,\n});\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { Slot } from \"@/components/common\";\nimport { getElementList } from \"@/components/common/for\";\nimport { EyeIconInvisible, EyeIconVisible } from \"@/components/icons\";\nimport { cnMerge } from \"@/lib/utils/cn\";\nimport { toArray } from \"@zayne-labs/toolkit-core\";\nimport { useToggle } from \"@zayne-labs/toolkit-react\";\nimport {\n\ttype DiscriminatedRenderProps,\n\ttype InferProps,\n\ttype PolymorphicProps,\n\tgetOtherChildren,\n\tgetSlotElement,\n} from \"@zayne-labs/toolkit-react/utils\";\nimport { Fragment as ReactFragment, useEffect, useId, useMemo, useRef } from \"react\";\nimport {\n\ttype Control,\n\tController,\n\ttype ControllerFieldState,\n\ttype ControllerProps,\n\ttype ControllerRenderProps,\n\ttype FieldPath,\n\ttype FieldPathValue,\n\ttype FieldPathValues,\n\tFormProvider as HookFormProvider,\n\ttype RegisterOptions,\n\ttype UseFormReturn,\n\ttype UseFormStateReturn,\n\tuseFormState,\n\tuseWatch,\n} from \"react-hook-form\";\nimport {\n\ttype FieldContextValue,\n\ttype FormFieldContextProps,\n\tLaxFormFieldProvider,\n\tStrictFormFieldProvider,\n\tuseFormRootContext,\n\tuseLaxFormFieldContext,\n\tuseLaxGetFieldState,\n\tuseStrictFormFieldContext,\n} from \"./form-context\";\n\nexport type FieldValues = Record<string, unknown>;\n\ntype FormRootProps<TFieldValues extends FieldValues> = React.ComponentPropsWithoutRef<\"form\"> & {\n\tchildren: React.ReactNode;\n\tmethods: UseFormReturn<TFieldValues>;\n};\n\nexport function FormRoot<TValues extends FieldValues>(props: FormRootProps<TValues>) {\n\tconst { children, className, methods, ...restOfProps } = props;\n\n\treturn (\n\t\t<HookFormProvider {...methods}>\n\t\t\t<form\n\t\t\t\tclassName={cnMerge(\"flex flex-col\", className)}\n\t\t\t\t{...restOfProps}\n\t\t\t\tdata-scope=\"form\"\n\t\t\t\tdata-part=\"root\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</form>\n\t\t</HookFormProvider>\n\t);\n}\n\ntype FormFieldProps<TControl, TFieldValues extends FieldValues> = (TControl extends Control<infer TValues>\n\t? {\n\t\t\tcontrol?: never;\n\t\t\tname: FieldPath<TValues>;\n\t\t}\n\t: {\n\t\t\tcontrol?: Control<TFieldValues>;\n\t\t\tname: FieldPath<TFieldValues>;\n\t\t})\n\t& (\n\t\t| (InferProps<\"div\"> & {\n\t\t\t\twithWrapper?: true;\n\t\t })\n\t\t| { children: React.ReactNode; className?: never; withWrapper: false }\n\t);\n\nexport function FormField<TControl, TFieldValues extends FieldValues = FieldValues>(\n\tprops: FormFieldProps<TControl, TFieldValues>\n) {\n\tconst { children, className, name, withWrapper = true } = props;\n\n\tconst uniqueId = useId();\n\n\tconst fieldContextValue = useMemo(\n\t\t() =>\n\t\t\t({\n\t\t\t\tformDescriptionId: `${name}-(${uniqueId})-form-item-description`,\n\t\t\t\tformItemId: `${name}-(${uniqueId})-form-item`,\n\t\t\t\tformMessageId: `${name}-(${uniqueId})-form-item-message`,\n\t\t\t\tname,\n\t\t\t}) satisfies FieldContextValue,\n\t\t[name, uniqueId]\n\t);\n\n\tconst WrapperElement = withWrapper ? \"div\" : ReactFragment;\n\n\tconst wrapperElementProps = withWrapper && {\n\t\tclassName: cnMerge(\"flex flex-col\", className),\n\t\t\"data-part\": \"field\",\n\t\t\"data-scope\": \"form\",\n\t};\n\n\treturn (\n\t\t<StrictFormFieldProvider value={fieldContextValue}>\n\t\t\t<LaxFormFieldProvider value={fieldContextValue}>\n\t\t\t\t<WrapperElement {...wrapperElementProps}>{children}</WrapperElement>\n\t\t\t</LaxFormFieldProvider>\n\t\t</StrictFormFieldProvider>\n\t);\n}\n\nexport function FormControlledField<TFieldValues extends FieldValues>(\n\tprops: ControllerProps<TFieldValues>\n) {\n\tconst { name } = props;\n\n\tconst uniqueId = useId();\n\n\tconst fieldContextValue = useMemo(\n\t\t() =>\n\t\t\t({\n\t\t\t\tformDescriptionId: `${name}-(${uniqueId})-form-item-description`,\n\t\t\t\tformItemId: `${name}-(${uniqueId})-form-item`,\n\t\t\t\tformMessageId: `${name}-(${uniqueId})-form-item-message`,\n\t\t\t\tname,\n\t\t\t}) satisfies FieldContextValue,\n\t\t[name, uniqueId]\n\t);\n\n\treturn (\n\t\t<StrictFormFieldProvider value={fieldContextValue}>\n\t\t\t<LaxFormFieldProvider value={fieldContextValue}>\n\t\t\t\t<Controller {...props} />\n\t\t\t</LaxFormFieldProvider>\n\t\t</StrictFormFieldProvider>\n\t);\n}\n\ntype FormFieldControllerRenderFn = (props: {\n\tfield: Omit<ControllerRenderProps, \"value\"> & {\n\t\tvalue: never;\n\t};\n\tfieldState: ControllerFieldState;\n\tformState: UseFormStateReturn<never>;\n}) => React.ReactElement;\n\ntype FormFieldControllerProps = Omit<\n\tControllerProps<FieldValues, FieldPath<FieldValues>>,\n\t\"control\" | \"name\" | \"render\"\n> & {\n\trender: FormFieldControllerRenderFn;\n};\n\nexport function FormFieldController(props: FormFieldControllerProps) {\n\tconst { control } = useFormRootContext();\n\tconst { name } = useStrictFormFieldContext();\n\tconst { render, ...restOfProps } = props;\n\n\treturn <Controller name={name} control={control} render={render as never} {...restOfProps} />;\n}\n\nexport function FormFieldContext(props: FormFieldContextProps) {\n\tconst { children, render } = props;\n\tconst fieldContextValues = useStrictFormFieldContext();\n\n\tif (typeof children === \"function\") {\n\t\treturn children(fieldContextValues);\n\t}\n\n\treturn render(fieldContextValues);\n}\n\nexport function FormLabel(props: InferProps<\"label\">) {\n\tconst { formItemId } = useStrictFormFieldContext();\n\tconst { children, className, ...restOfProps } = props;\n\n\treturn (\n\t\t<label\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"label\"\n\t\t\thtmlFor={formItemId}\n\t\t\tclassName={className}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{children}\n\t\t</label>\n\t);\n}\n\nexport function FormInputGroup(props: React.ComponentPropsWithRef<\"div\">) {\n\tconst { children, className, ...restOfProps } = props;\n\tconst LeftItemSlot = getSlotElement(children, FormInputLeftItem);\n\tconst RightItemSlot = getSlotElement(children, FormInputRightItem);\n\n\tconst otherChildren = getOtherChildren(children, [FormInputLeftItem, FormInputRightItem]);\n\n\treturn (\n\t\t<div\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"input-group\"\n\t\t\tclassName={cnMerge(\"flex items-center justify-between gap-2\", className)}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{LeftItemSlot}\n\t\t\t{otherChildren}\n\t\t\t{RightItemSlot}\n\t\t</div>\n\t);\n}\n\ntype FormSideItemProps = {\n\tchildren?: React.ReactNode;\n\tclassName?: string;\n};\n\nexport function FormInputLeftItem<TElement extends React.ElementType = \"span\">(\n\tprops: PolymorphicProps<TElement, FormSideItemProps>\n) {\n\tconst { as: Element = \"span\", children, className, ...restOfProps } = props;\n\n\treturn (\n\t\t<Element\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"left-item\"\n\t\t\tclassName={cnMerge(\"inline-flex items-center justify-center\", className)}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t);\n}\nFormInputLeftItem.slot = Symbol.for(\"leftItem\");\n\nexport function FormInputRightItem<TElement extends React.ElementType = \"span\">(\n\tprops: PolymorphicProps<TElement, FormSideItemProps>\n) {\n\tconst { as: Element = \"span\", children, className, ...restOfProps } = props;\n\n\treturn (\n\t\t<Element\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"right-item\"\n\t\t\tclassName={cnMerge(\"inline-flex items-center justify-center\", className)}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{children}\n\t\t</Element>\n\t);\n}\nFormInputRightItem.slot = Symbol.for(\"rightItem\");\n\ntype FormInputPrimitiveProps<TFieldValues extends FieldValues = FieldValues> = Omit<\n\tReact.ComponentPropsWithRef<\"input\">,\n\t\"children\"\n> & {\n\tclassNames?: { error?: string; eyeIcon?: string; input?: string; inputGroup?: string };\n\tcontrol?: Control<TFieldValues>;\n\tname?: FieldPath<TFieldValues>;\n\twithEyeIcon?: boolean;\n};\n\ntype FormTextAreaPrimitiveProps<TFieldValues extends FieldValues = FieldValues> =\n\tReact.ComponentPropsWithRef<\"textarea\"> & {\n\t\tcontrol?: Control<TFieldValues>;\n\t\terrorClassName?: string;\n\t\tname?: FieldPath<TFieldValues>;\n\t\ttype: \"textarea\";\n\t};\n\nconst inputTypesWithoutFullWith = new Set<React.HTMLInputTypeAttribute>([\"checkbox\", \"radio\"]);\n\nexport function FormInputPrimitive<TFieldValues extends FieldValues>(\n\tprops: FormInputPrimitiveProps<TFieldValues>\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst {\n\t\tclassName,\n\t\tclassNames,\n\t\tid = fieldContextValues?.formItemId,\n\t\tname = fieldContextValues?.name,\n\t\ttype = \"text\",\n\t\twithEyeIcon = true,\n\t\t...restOfProps\n\t} = props;\n\n\tconst fieldState = useLaxGetFieldState(name);\n\n\tconst fieldError = fieldState?.error;\n\n\tconst [isPasswordVisible, toggleVisibility] = useToggle(false);\n\n\tconst shouldHaveEyeIcon = withEyeIcon && type === \"password\";\n\n\tconst WrapperElement = shouldHaveEyeIcon ? FormInputGroup : ReactFragment;\n\n\tconst wrapperElementProps = shouldHaveEyeIcon && {\n\t\tclassName: cnMerge(\"w-full\", classNames?.inputGroup, fieldError && classNames?.error),\n\t};\n\n\treturn (\n\t\t<WrapperElement {...wrapperElementProps}>\n\t\t\t<input\n\t\t\t\tdata-scope=\"form\"\n\t\t\t\tdata-part=\"input\"\n\t\t\t\taria-describedby={\n\t\t\t\t\t!fieldError\n\t\t\t\t\t\t? fieldContextValues?.formDescriptionId\n\t\t\t\t\t\t: `${fieldContextValues?.formDescriptionId} ${fieldContextValues?.formMessageId}`\n\t\t\t\t}\n\t\t\t\taria-invalid={Boolean(fieldError)}\n\t\t\t\tid={id}\n\t\t\t\tname={name}\n\t\t\t\ttype={type === \"password\" && isPasswordVisible ? \"text\" : type}\n\t\t\t\tclassName={cnMerge(\n\t\t\t\t\t!inputTypesWithoutFullWith.has(type) && \"flex w-full\",\n\t\t\t\t\t`bg-transparent text-sm file:border-0 file:bg-transparent\n\t\t\t\t\tplaceholder:text-shadcn-muted-foreground focus-visible:outline-none\n\t\t\t\t\tdisabled:cursor-not-allowed disabled:opacity-50`,\n\t\t\t\t\tclassName,\n\t\t\t\t\tclassNames?.input,\n\t\t\t\t\ttype !== \"password\" && fieldError && classNames?.error\n\t\t\t\t)}\n\t\t\t\t{...restOfProps}\n\t\t\t/>\n\n\t\t\t{shouldHaveEyeIcon && (\n\t\t\t\t<FormInputRightItem\n\t\t\t\t\tas=\"button\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={toggleVisibility}\n\t\t\t\t\tclassName=\"size-5 shrink-0 lg:size-6\"\n\t\t\t\t>\n\t\t\t\t\t{isPasswordVisible ? (\n\t\t\t\t\t\t<EyeIconInvisible className={cnMerge(\"size-full\", classNames?.eyeIcon)} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<EyeIconVisible className={cnMerge(\"size-full\", classNames?.eyeIcon)} />\n\t\t\t\t\t)}\n\t\t\t\t</FormInputRightItem>\n\t\t\t)}\n\t\t</WrapperElement>\n\t);\n}\n\nexport function FormTextAreaPrimitive<TFieldValues extends FieldValues>(\n\tprops: FormTextAreaPrimitiveProps<TFieldValues>\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst {\n\t\tclassName,\n\t\terrorClassName,\n\t\tid = fieldContextValues?.formItemId,\n\t\tname = fieldContextValues?.name,\n\t\t...restOfProps\n\t} = props;\n\n\tconst fieldState = useLaxGetFieldState(name);\n\n\tconst fieldError = fieldState?.error;\n\n\treturn (\n\t\t<textarea\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"textarea\"\n\t\t\taria-describedby={\n\t\t\t\t!fieldError\n\t\t\t\t\t? fieldContextValues?.formDescriptionId\n\t\t\t\t\t: `${fieldContextValues?.formDescriptionId} ${fieldContextValues?.formMessageId}`\n\t\t\t}\n\t\t\taria-invalid={Boolean(fieldError)}\n\t\t\tid={id}\n\t\t\tname={name}\n\t\t\tclassName={cnMerge(\n\t\t\t\t`w-full bg-transparent text-sm placeholder:text-shadcn-muted-foreground\n\t\t\t\tfocus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50`,\n\t\t\t\tclassName,\n\t\t\t\tfieldError && errorClassName\n\t\t\t)}\n\t\t\t{...restOfProps}\n\t\t/>\n\t);\n}\n\ntype PrimitivePropsToOmit = \"control\" | \"formState\" | \"name\" | \"ref\";\ntype FormInputProps =\n\t| Omit<FormInputPrimitiveProps, PrimitivePropsToOmit>\n\t| Omit<FormTextAreaPrimitiveProps & { type: \"textarea\" }, PrimitivePropsToOmit>;\n\nexport function FormInput(props: FormInputProps & { rules?: RegisterOptions }) {\n\tconst { rules, type, ...restOfProps } = props;\n\n\tconst { name } = useStrictFormFieldContext();\n\tconst { register } = useFormRootContext();\n\n\tconst SelectedInput = type === \"textarea\" ? FormTextAreaPrimitive : FormInputPrimitive;\n\n\treturn (\n\t\t<SelectedInput\n\t\t\ttype={type as never}\n\t\t\tname={name}\n\t\t\t{...(Boolean(name) && register(name, rules))}\n\t\t\t{...(restOfProps as NonNullable<unknown>)}\n\t\t/>\n\t);\n}\n\nexport function FormDescription(props: InferProps<\"p\">) {\n\tconst { className, ...restOfProps } = props;\n\n\tconst { formDescriptionId } = useLaxFormFieldContext() ?? {};\n\n\treturn <p id={formDescriptionId} className={cnMerge(\"text-[12px]\", className)} {...restOfProps} />;\n}\n\ntype ErrorMessageRenderProps = {\n\tclassName: string;\n\t\"data-index\": number;\n\t\"data-part\": string;\n\t\"data-scope\": string;\n\tid: string | undefined;\n\tonAnimationEnd?: React.ReactEventHandler<HTMLElement>;\n};\n\ntype ErrorMessageRenderState = { errorMessage: string; errorMessageArray: string[]; index: number };\n\ntype ErrorMessageRenderFn = (context: {\n\tprops: ErrorMessageRenderProps;\n\tstate: ErrorMessageRenderState;\n}) => React.ReactNode;\n\ntype FormErrorMessagePrimitiveProps<TFieldValues extends FieldValues> =\n\tDiscriminatedRenderProps<ErrorMessageRenderFn> & {\n\t\tclassName?: string;\n\t\tclassNames?: {\n\t\t\tcontainer?: string;\n\t\t\terrorMessage?: string;\n\t\t\terrorMessageAnimation?: string;\n\t\t};\n\t\tcontrol: Control<TFieldValues>; // == Here for type inference of errorField prop\n\t\twithAnimationOnInvalid?: boolean;\n\t} & (\n\t\t\t| {\n\t\t\t\t\terrorField: FieldPath<TFieldValues>;\n\t\t\t\t\ttype?: \"regular\";\n\t\t\t }\n\t\t\t| {\n\t\t\t\t\terrorField: string;\n\t\t\t\t\ttype: \"root\";\n\t\t\t }\n\t\t);\n\ntype FormErrorMessagePrimitiveType = {\n\t<TFieldValues extends FieldValues>(\n\t\tprops: Extract<FormErrorMessagePrimitiveProps<TFieldValues>, { type?: \"regular\" }>\n\t): React.ReactNode;\n\t<TFieldValues extends FieldValues>(\n\t\t// eslint-disable-next-line ts-eslint/unified-signatures -- Using overloads are better because it gives better error messages\n\t\tprops: Extract<FormErrorMessagePrimitiveProps<TFieldValues>, { type: \"root\" }>\n\t): React.ReactNode;\n};\n\nexport const FormErrorMessagePrimitive: FormErrorMessagePrimitiveType = (props) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tclassNames,\n\t\tcontrol,\n\t\terrorField,\n\t\trender,\n\t\ttype = \"regular\",\n\t\twithAnimationOnInvalid = true,\n\t} = props;\n\n\tconst formState = useFormState({ control });\n\n\tconst { formMessageId } = useLaxFormFieldContext() ?? {};\n\n\tconst wrapperRef = useRef<HTMLUListElement>(null);\n\n\tconst errorAnimationClass = classNames?.errorMessageAnimation ?? \"animate-shake\";\n\n\tuseEffect(() => {\n\t\tif (!withAnimationOnInvalid) return;\n\n\t\tconst errorMessageElements = wrapperRef.current?.children;\n\n\t\tif (!errorMessageElements) return;\n\n\t\tfor (const element of errorMessageElements) {\n\t\t\telement.classList.add(errorAnimationClass);\n\t\t}\n\t}, [errorAnimationClass, withAnimationOnInvalid]);\n\n\tuseEffect(() => {\n\t\tconst errorMessageElements = wrapperRef.current?.children;\n\n\t\tif (!errorMessageElements) return;\n\n\t\t// == Scroll to first error message\n\t\tif (Object.keys(formState.errors).indexOf(errorField as string) === 0) {\n\t\t\terrorMessageElements[0]?.scrollIntoView({\n\t\t\t\tbehavior: \"smooth\",\n\t\t\t\tblock: \"center\",\n\t\t\t});\n\n\t\t\twindow.scrollBy({ behavior: \"smooth\", top: -100 });\n\t\t}\n\t}, [errorField, formState.errors]);\n\n\tconst message = (\n\t\ttype === \"root\"\n\t\t\t? formState.errors.root?.[errorField as string]?.message\n\t\t\t: formState.errors[errorField]?.message\n\t) as string | string[];\n\n\tif (!message) {\n\t\treturn null;\n\t}\n\n\tconst errorMessageArray = toArray(message);\n\n\tconst [ErrorMessageList] = getElementList();\n\n\tconst onAnimationEnd: React.AnimationEventHandler<HTMLElement> | undefined = withAnimationOnInvalid\n\t\t? (event) => event.currentTarget.classList.remove(errorAnimationClass)\n\t\t: undefined;\n\n\tconst getRenderProps = ({ index }: { index: number }) =>\n\t\t({\n\t\t\tclassName: cnMerge(errorAnimationClass, className, classNames?.errorMessage),\n\t\t\t\"data-index\": index,\n\t\t\t\"data-part\": \"error-message\",\n\t\t\t\"data-scope\": \"form\",\n\t\t\tid: formMessageId,\n\t\t\tonAnimationEnd,\n\t\t}) satisfies ErrorMessageRenderProps;\n\n\tconst getRenderState = ({ errorMessage, index }: { errorMessage: string; index: number }) =>\n\t\t({\n\t\t\terrorMessage,\n\t\t\terrorMessageArray,\n\t\t\tindex,\n\t\t}) satisfies ErrorMessageRenderState;\n\n\tconst renderFn = typeof children === \"function\" ? children : render;\n\n\treturn (\n\t\t<ErrorMessageList\n\t\t\tref={wrapperRef}\n\t\t\teach={errorMessageArray}\n\t\t\tclassName={cnMerge(\"flex flex-col\", classNames?.container)}\n\t\t\trender={(errorMessage, index) => {\n\t\t\t\treturn renderFn({\n\t\t\t\t\tprops: getRenderProps({ index }),\n\t\t\t\t\tstate: getRenderState({ errorMessage, index }),\n\t\t\t\t});\n\t\t\t}}\n\t\t/>\n\t);\n};\n\ntype FormErrorMessageProps<TControl, TFieldValues extends FieldValues> =\n\t| (TControl extends Control<infer TValues>\n\t\t\t? {\n\t\t\t\t\tclassName?: string;\n\t\t\t\t\tcontrol?: never;\n\t\t\t\t\terrorField?: FieldPath<TValues>;\n\t\t\t\t\ttype?: \"regular\";\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tclassName?: string;\n\t\t\t\t\tcontrol?: Control<TFieldValues>; // == Here for type inference of errorField prop\n\t\t\t\t\terrorField?: FieldPath<TFieldValues>;\n\t\t\t\t\ttype?: \"regular\";\n\t\t\t\t})\n\t| {\n\t\t\tclassName?: string;\n\t\t\tcontrol?: never;\n\t\t\terrorField: string;\n\t\t\ttype: \"root\";\n\t };\n\nexport function FormErrorMessage<TControl, TFieldValues extends FieldValues = FieldValues>(\n\tprops: FormErrorMessageProps<TControl, TFieldValues>\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst { className, errorField = fieldContextValues?.name, type = \"regular\" } = props;\n\n\tconst { control } = useFormRootContext();\n\n\treturn (\n\t\t<FormErrorMessagePrimitive\n\t\t\tcontrol={control}\n\t\t\terrorField={errorField as NonNullable<typeof errorField>}\n\t\t\ttype={type as \"root\"}\n\t\t\trender={({ props: renderProps, state: { errorMessage } }) => (\n\t\t\t\t<p\n\t\t\t\t\t{...renderProps}\n\t\t\t\t\tkey={errorMessage}\n\t\t\t\t\tclassName={cnMerge(\"text-[13px]\", \"data-[index=0]:mt-1\", renderProps.className, className)}\n\t\t\t\t>\n\t\t\t\t\t{errorMessage}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t/>\n\t);\n}\n\ntype FormSubmitProps = InferProps<\"button\"> & { asChild?: boolean };\n\nexport function FormSubmit<TElement extends React.ElementType = \"button\">(\n\tprops: PolymorphicProps<TElement, FormSubmitProps>\n) {\n\tconst { as: Element = \"button\", asChild, children, type = \"submit\", ...restOfProps } = props;\n\n\tconst Component = asChild ? Slot : Element;\n\n\treturn (\n\t\t<Component type={type} {...restOfProps}>\n\t\t\t{children}\n\t\t</Component>\n\t);\n}\n\ntype GetFieldValue<TFieldPathOrPaths, TFieldValues extends FieldValues> =\n\tTFieldPathOrPaths extends Array<FieldPath<TFieldValues>>\n\t\t? FieldPathValues<TFieldValues, TFieldPathOrPaths>\n\t\t: TFieldPathOrPaths extends FieldPath<TFieldValues>\n\t\t\t? FieldPathValue<TFieldValues, TFieldPathOrPaths>\n\t\t\t: unknown;\n\ntype FieldSubscribeRenderFn<TFieldValues extends FieldValues, TFieldPathOrPaths> = (props: {\n\tvalue: GetFieldValue<TFieldPathOrPaths, TFieldValues>;\n}) => React.ReactNode;\n\ntype FormFieldSubscribeProps<\n\tTFieldValues extends FieldValues,\n\tTFieldPathOrPaths,\n> = DiscriminatedRenderProps<FieldSubscribeRenderFn<TFieldValues, TFieldPathOrPaths>> & {\n\tcontrol: Control<TFieldValues>;\n\tname?: TFieldPathOrPaths;\n};\n\nexport function FormFieldSubscribe<\n\tTFieldValues extends FieldValues,\n\tconst TFieldPathOrPaths extends Array<FieldPath<TFieldValues>> | FieldPath<TFieldValues>,\n>(props: FormFieldSubscribeProps<TFieldValues, TFieldPathOrPaths>) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst { children, name = fieldContextValues?.name, render } = props;\n\n\tconst { control } = useFormRootContext();\n\n\tconst formValue = useWatch({ control, name: name as string });\n\n\tconst fieldProps = { value: formValue };\n\n\tif (typeof children === \"function\") {\n\t\treturn children(fieldProps as never);\n\t}\n\n\treturn render(fieldProps as never);\n}\n\ntype FormStateSubscribeRenderFn<TFieldValues extends FieldValues> = (\n\tprops: UseFormStateReturn<TFieldValues>\n) => React.ReactNode;\n\ntype FormStateSubscribeProps<TFieldValues extends FieldValues> = DiscriminatedRenderProps<\n\tFormStateSubscribeRenderFn<TFieldValues>\n> & {\n\tcontrol?: Control<TFieldValues>;\n\tname?: Array<FieldPath<TFieldValues>> | FieldPath<TFieldValues>;\n};\n\nexport function FormStateSubscribe<TFieldValues extends FieldValues = FieldValues>(\n\tprops: FormStateSubscribeProps<TFieldValues>\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst { children, control, name = fieldContextValues?.name, render } = props;\n\n\tconst formState = useFormState({ control, name: name as FieldPath<TFieldValues> });\n\n\tif (typeof children === \"function\") {\n\t\treturn children(formState as never);\n\t}\n\n\treturn render(formState as never);\n}\n","export {\n\tFormFieldController as FieldController,\n\tFormControlledField as ControlledField,\n\tFormDescription as Description,\n\tFormErrorMessage as ErrorMessage,\n\tFormErrorMessagePrimitive as ErrorMessagePrimitive,\n\tFormInput as Input,\n\tFormInputGroup as InputGroup,\n\tFormInputLeftItem as InputLeftItem,\n\tFormInputPrimitive as InputPrimitive,\n\tFormInputRightItem as InputRightItem,\n\tFormField as Field,\n\tFormFieldContext as FieldContext,\n\tFormLabel as Label,\n\tFormRoot as Root,\n\tFormSubmit as Submit,\n\tFormStateSubscribe as StateSubscribe,\n\tFormFieldSubscribe as FieldSubscribe,\n\tFormTextAreaPrimitive as TextAreaPrimitive,\n} from \"./form\";\n"]}
|