@zayne-labs/ui-react 0.10.6 → 0.10.8

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 (52) hide show
  1. package/dist/esm/{await-Da5w2vIc.js → await-DDgVzpvI.js} +8 -7
  2. package/dist/esm/{await-Da5w2vIc.js.map → await-DDgVzpvI.js.map} +1 -1
  3. package/dist/esm/{card-gWNDcZV0.js → card-DDLJVCwL.js} +4 -3
  4. package/dist/esm/card-DDLJVCwL.js.map +1 -0
  5. package/dist/esm/{carousel-BY9RvR71.js → carousel-B051PAAX.js} +2 -2
  6. package/dist/esm/carousel-B051PAAX.js.map +1 -0
  7. package/dist/esm/common/await/index.d.ts +3 -3
  8. package/dist/esm/common/await/index.js +1 -1
  9. package/dist/esm/common/error-boundary/index.d.ts +1 -1
  10. package/dist/esm/common/for/index.d.ts +1 -1
  11. package/dist/esm/common/for/index.js +1 -1
  12. package/dist/esm/common/index.d.ts +5 -5
  13. package/dist/esm/common/index.js +2 -2
  14. package/dist/esm/common/presence/index.js +1 -1
  15. package/dist/esm/common/slot/index.d.ts +1 -1
  16. package/dist/esm/common/suspense-with-boundary/index.d.ts +2 -2
  17. package/dist/esm/{drop-zone-5dDyxv_f.js → drop-zone-C9VpKJAD.js} +41 -15
  18. package/dist/esm/drop-zone-C9VpKJAD.js.map +1 -0
  19. package/dist/esm/error-boundary-y9Samt_s.js.map +1 -1
  20. package/dist/esm/{for-Dfh7e9Z4.js → for-DK5rEY_m.js} +4 -5
  21. package/dist/esm/for-DK5rEY_m.js.map +1 -0
  22. package/dist/esm/{form-DDSlHq5t.js → form-DyGy9LnA.js} +2 -2
  23. package/dist/esm/form-DyGy9LnA.js.map +1 -0
  24. package/dist/esm/{index-D259PHNG.d.ts → index-B4K9g2v-.d.ts} +4 -4
  25. package/dist/esm/{index-BBHGVe_0.d.ts → index-BoZe50e8.d.ts} +32 -28
  26. package/dist/esm/{index-B53RIFft.d.ts → index-Bx2BzRRJ.d.ts} +3 -3
  27. package/dist/esm/{index-CJLZEhIo.d.ts → index-C8_O0zCb.d.ts} +3 -3
  28. package/dist/esm/{index-CvjRPnhb.d.ts → index-DWl-QZ3Q.d.ts} +12 -8
  29. package/dist/esm/{index-DoRAzdDN.d.ts → index-DZxgPnK1.d.ts} +11 -11
  30. package/dist/esm/{index-RnqeaSJm.d.ts → index-DbiE_few.d.ts} +20 -20
  31. package/dist/esm/index-Df39YVRj.d.ts +23 -0
  32. package/dist/esm/{index-GHA8HNcd.d.ts → index-SX3cnKP6.d.ts} +9 -9
  33. package/dist/esm/{presence-CRZsP1Jk.js → presence-CL5_GHQH.js} +2 -2
  34. package/dist/esm/{presence-CRZsP1Jk.js.map → presence-CL5_GHQH.js.map} +1 -1
  35. package/dist/esm/ui/card/index.d.ts +1 -1
  36. package/dist/esm/ui/card/index.js +1 -1
  37. package/dist/esm/ui/carousel/index.d.ts +1 -1
  38. package/dist/esm/ui/carousel/index.js +3 -3
  39. package/dist/esm/ui/drop-zone/index.d.ts +1 -1
  40. package/dist/esm/ui/drop-zone/index.js +4 -4
  41. package/dist/esm/ui/form/index.d.ts +1 -1
  42. package/dist/esm/ui/form/index.js +2 -2
  43. package/dist/esm/ui/index.d.ts +4 -4
  44. package/dist/esm/ui/index.js +7 -7
  45. package/dist/style.css +30 -0
  46. package/package.json +4 -4
  47. package/dist/esm/card-gWNDcZV0.js.map +0 -1
  48. package/dist/esm/carousel-BY9RvR71.js.map +0 -1
  49. package/dist/esm/drop-zone-5dDyxv_f.js.map +0 -1
  50. package/dist/esm/for-Dfh7e9Z4.js.map +0 -1
  51. package/dist/esm/form-DDSlHq5t.js.map +0 -1
  52. package/dist/esm/index-Bra0UlL_.d.ts +0 -21
@@ -8,15 +8,14 @@ function For(props) {
8
8
  if (each == null || isNumber(each) && each === 0 || isArray(each) && each.length === 0) return fallback;
9
9
  const resolvedArray = isNumber(each) ? [...Array(each).keys()] : each;
10
10
  if (resolvedArray.length === 0) return fallback;
11
+ const selectedChildren = typeof children === "function" ? children : renderItem;
11
12
  return resolvedArray.map((...params) => {
12
- return typeof children === "function" ? children(...params) : renderItem(...params);
13
+ return selectedChildren(...params);
13
14
  });
14
15
  }
15
16
  function ForWithWrapper(props) {
16
- const { as: ListContainer = "ul", children, className, each, ref, renderItem,...restOfListProps } = props;
17
+ const { as: ListContainer = "ul", children, each, renderItem,...restOfListProps } = props;
17
18
  return /* @__PURE__ */ jsx(ListContainer, {
18
- ref,
19
- className,
20
19
  ...restOfListProps,
21
20
  children: /* @__PURE__ */ jsx(For, {
22
21
  children,
@@ -38,4 +37,4 @@ const getElementList = (variant) => {
38
37
 
39
38
  //#endregion
40
39
  export { For, ForWithWrapper, getElementList };
41
- //# sourceMappingURL=for-Dfh7e9Z4.js.map
40
+ //# sourceMappingURL=for-DK5rEY_m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for-DK5rEY_m.js","names":[],"sources":["../../src/components/common/for/for.tsx","../../src/components/common/for/getElementList.ts"],"sourcesContent":["import type {\n\tDiscriminatedRenderItemProps,\n\tPolymorphicPropsStrict,\n} from \"@zayne-labs/toolkit-react/utils\";\nimport { isArray, isNumber, type Prettify } from \"@zayne-labs/toolkit-type-helpers\";\nimport * as React from \"react\";\n\ntype ArrayOrNumber = number | readonly unknown[];\n\ntype GetArrayItemType<TArray extends ArrayOrNumber> =\n\tTArray extends readonly unknown[] ? TArray[number]\n\t: TArray extends number ? number\n\t: unknown;\n\ntype RenderPropFn<TArray extends ArrayOrNumber> = (\n\titem: GetArrayItemType<TArray>,\n\tindex: number,\n\tarray: Array<GetArrayItemType<TArray>>\n) => React.ReactNode;\n\nexport type ForRenderProps<TArray extends ArrayOrNumber> = DiscriminatedRenderItemProps<\n\tRenderPropFn<TArray>\n>;\n\n/* eslint-disable perfectionist/sort-intersection-types -- Prefer the object to come first before the render props */\ntype ForProps<TArray extends ArrayOrNumber> = Prettify<\n\t{\n\t\teach: TArray;\n\t\tfallback?: React.ReactNode;\n\t} & ForRenderProps<TArray>\n>;\n/* eslint-enable perfectionist/sort-intersection-types -- Prefer the object to come first before the render props */\n\nexport function For<const TArray extends ArrayOrNumber>(props: ForProps<TArray>) {\n\tconst { children, each, fallback = null, renderItem } = props;\n\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- Allow\n\tif (each == null || (isNumber(each) && each === 0) || (isArray(each) && each.length === 0)) {\n\t\treturn fallback;\n\t}\n\n\tconst resolvedArray = isNumber(each) ? [...Array(each).keys()] : (each as unknown[]);\n\n\tif (resolvedArray.length === 0) {\n\t\treturn fallback;\n\t}\n\n\tconst selectedChildren = typeof children === \"function\" ? children : renderItem;\n\n\tconst elementList = resolvedArray.map((...params) => {\n\t\ttype Params = Parameters<RenderPropFn<TArray>>;\n\n\t\treturn selectedChildren(...(params as Params));\n\t});\n\n\treturn elementList;\n}\n\nexport function ForWithWrapper<\n\tconst TArray extends ArrayOrNumber,\n\tTElement extends React.ElementType = \"ul\",\n>(props: PolymorphicPropsStrict<TElement, ForProps<TArray>>) {\n\tconst { as: ListContainer = \"ul\", children, each, renderItem, ...restOfListProps } = props;\n\n\treturn (\n\t\t<ListContainer {...restOfListProps}>\n\t\t\t<For {...({ children, each, renderItem } as ForProps<TArray>)} />\n\t\t</ListContainer>\n\t);\n}\n","import { For, ForWithWrapper } from \"./for\";\n\ntype GetElementListResult<TVariant extends \"base\" | \"withWrapper\"> =\n\tTVariant extends \"base\" ? [typeof For] : [typeof ForWithWrapper];\n\nconst getElementList = <TVariant extends \"base\" | \"withWrapper\" = \"withWrapper\">(\n\tvariant?: TVariant\n): GetElementListResult<TVariant> => {\n\tswitch (variant) {\n\t\tcase \"base\": {\n\t\t\treturn [For] as never;\n\t\t}\n\t\tcase \"withWrapper\": {\n\t\t\treturn [ForWithWrapper] as never;\n\t\t}\n\t\tdefault: {\n\t\t\treturn [ForWithWrapper] as never;\n\t\t}\n\t}\n};\n\nexport { getElementList };\n"],"mappings":";;;;;AAiCA,SAAgB,IAAwC,OAAyB;CAChF,MAAM,EAAE,UAAU,MAAM,WAAW,MAAM,eAAe;AAGxD,KAAI,QAAQ,QAAS,SAAS,KAAK,IAAI,SAAS,KAAO,QAAQ,KAAK,IAAI,KAAK,WAAW,EACvF,QAAO;CAGR,MAAM,gBAAgB,SAAS,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAI;AAElE,KAAI,cAAc,WAAW,EAC5B,QAAO;CAGR,MAAM,mBAAmB,OAAO,aAAa,aAAa,WAAW;AAQrE,QANoB,cAAc,KAAK,GAAG,WAAW;AAGpD,SAAO,iBAAiB,GAAI,OAAkB;GAC7C;;AAKH,SAAgB,eAGd,OAA2D;CAC5D,MAAM,EAAE,IAAI,gBAAgB,MAAM,UAAU,MAAM,WAAY,GAAG,oBAAoB;AAErF,QACC,oBAAC;EAAc,GAAI;YAClB,oBAAC;GAAW;GAAU;GAAM;IAAqC;GAClD;;;;;AC9DlB,MAAM,kBACL,YACoC;AACpC,SAAQ,SAAR;EACC,KAAK,OACJ,QAAO,CAAC,IAAI;EAEb,KAAK,cACJ,QAAO,CAAC,eAAe;EAExB,QACC,QAAO,CAAC,eAAe"}
@@ -1,6 +1,6 @@
1
1
  import { __export } from "./chunk-CTAAG5j7.js";
2
2
  import { SlotRoot } from "./slot-WVWfOlr3.js";
3
- import { ForWithWrapper } from "./for-Dfh7e9Z4.js";
3
+ import { ForWithWrapper } from "./for-DK5rEY_m.js";
4
4
  import { cnMerge } from "./cn-s-D7vHW1.js";
5
5
  import { composeRefs, composeTwoEventHandlers, getMultipleSlots } from "@zayne-labs/toolkit-react/utils";
6
6
  import { defineEnum, isObject } from "@zayne-labs/toolkit-type-helpers";
@@ -571,4 +571,4 @@ var form_parts_exports = __export({
571
571
 
572
572
  //#endregion
573
573
  export { FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormField, FormFieldContext, FormFieldControlledField, FormFieldController, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputRightItem, FormLabel, FormRoot, FormSelect, FormSelectPrimitive, FormSubmit, FormSubscribeToFieldValue, FormSubscribeToFormState, FormTextArea, FormTextAreaPrimitive, form_parts_exports, useFormRootContext, useStrictFormFieldContext };
574
- //# sourceMappingURL=form-DDSlHq5t.js.map
574
+ //# sourceMappingURL=form-DyGy9LnA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-DyGy9LnA.js","names":["useHookFormContext","HookFormProvider","ReactFragment","FormErrorMessagePrimitive: FormErrorMessagePrimitiveType","Component","Slot.Root"],"sources":["../../src/components/ui/form/icons.tsx","../../src/components/ui/form/utils.ts","../../src/components/ui/form/form-context.ts","../../src/components/ui/form/form.tsx","../../src/components/ui/form/form-parts.ts"],"sourcesContent":["import * as React from \"react\";\n\nexport const EyeIconClosed = (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 EyeIconOpen = (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 { cnMerge } from \"@/lib/utils/cn\";\nimport { isObject } from \"@zayne-labs/toolkit-type-helpers\";\nimport { createElement } from \"react\";\nimport type { FieldErrors, FieldValues } from \"react-hook-form\";\nimport type { FormErrorMessagePrimitiveProps, FormInputProps } from \"./form\";\nimport type { FormRootContext, RenderIconProps } from \"./form-context\";\nimport { EyeIconClosed, EyeIconOpen } from \"./icons\";\n\nexport const getFieldErrorMessage = (options: {\n\terrors: FieldErrors | undefined;\n\tfieldName: string | undefined;\n\ttype: FormErrorMessagePrimitiveProps<FieldValues>[\"type\"];\n}): string | string[] | null | undefined => {\n\tconst { errors, fieldName, type } = options;\n\n\tif (fieldName === undefined || !errors || Object.keys(errors).length === 0) return;\n\n\tif (type === \"root\") {\n\t\treturn errors.root?.[fieldName]?.message;\n\t}\n\n\t// == Handle nested paths like `notifications.0`\n\tconst pathParts = fieldName.includes(\".\") ? fieldName.split(\".\") : null;\n\n\t// == If there are no path parts, return the error message\n\tif (!pathParts) {\n\t\tconst errorMessage = errors[fieldName]?.message;\n\n\t\treturn errorMessage as string | string[];\n\t}\n\n\tlet extractedError = errors;\n\n\tfor (const part of pathParts) {\n\t\tconst currentError = extractedError[part];\n\n\t\tif (!isObject(currentError)) break;\n\n\t\textractedError = currentError as never;\n\t}\n\n\tconst errorMessage = extractedError.message as unknown as string | string[];\n\n\treturn errorMessage;\n};\n\nexport const getEyeIcon = (options: {\n\tclassNames: FormInputProps[\"classNames\"];\n\ticonType: \"closed\" | \"open\";\n\trenderIconProps: RenderIconProps;\n\twithEyeIcon: FormRootContext[\"withEyeIcon\"];\n}) => {\n\tconst { classNames, iconType, renderIconProps, withEyeIcon } = options;\n\n\tif (!withEyeIcon) {\n\t\treturn null;\n\t}\n\n\tif (withEyeIcon === true) {\n\t\tconst defaultIconMap = {\n\t\t\tclosed: createElement(EyeIconClosed, {\n\t\t\t\tclassName: cnMerge(\"size-full\", classNames?.eyeIcon),\n\t\t\t}),\n\n\t\t\topen: createElement(EyeIconOpen, {\n\t\t\t\tclassName: cnMerge(\"size-full\", classNames?.eyeIcon),\n\t\t\t}),\n\t\t};\n\n\t\treturn defaultIconMap[iconType];\n\t}\n\n\tif (withEyeIcon.renderIcon) {\n\t\treturn withEyeIcon.renderIcon(renderIconProps);\n\t}\n\n\tif (withEyeIcon[iconType]) {\n\t\treturn withEyeIcon[iconType];\n\t}\n\n\treturn null;\n};\n","import { ContextError, createCustomContext } from \"@zayne-labs/toolkit-react\";\nimport type { DiscriminatedRenderProps } from \"@zayne-labs/toolkit-react/utils\";\nimport type { UnionDiscriminator } from \"@zayne-labs/toolkit-type-helpers\";\nimport {\n\ttype Control,\n\ttype UseFormReturn,\n\ttype UseFormStateReturn,\n\tuseFormState,\n\tuseFormContext as useHookFormContext,\n} from \"react-hook-form\";\nimport type { FieldValues, FormInputProps } from \"./form\";\nimport { getFieldErrorMessage } from \"./utils\";\n\ntype FormReturn = UseFormReturn<FieldValues> & { withEyeIcon?: FormInputProps[\"withEyeIcon\"] };\n\ntype UseFormRootContextResult<TStrict extends boolean = true> =\n\tTStrict extends true ? FormReturn : FormReturn | null;\n\nexport const useFormMethodsContext = <TStrict extends boolean = true>(\n\toptions: { strict?: TStrict } = {}\n): UseFormRootContextResult<TStrict> => {\n\tconst { strict = true } = options;\n\n\tconst formContext = useHookFormContext();\n\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition -- Allow\n\tif (strict && !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 RenderIconProps = {\n\tisPasswordVisible: boolean;\n};\n\ntype EyeIconObject = UnionDiscriminator<\n\t[\n\t\t{ closed: React.ReactNode; open: React.ReactNode },\n\t\t{ renderIcon: (props: RenderIconProps) => React.ReactNode },\n\t]\n>;\n\nexport type FormRootContext = {\n\twithEyeIcon: boolean | EyeIconObject | undefined;\n};\n\nexport const [LaxFormRootProvider, useLaxFormRootContext] = createCustomContext({\n\tdefaultValue: null as unknown as FormRootContext,\n\thookName: \"useLaxFormRootContext\",\n\tname: \"LaxFormRootContext\",\n\tproviderName: \"FormRoot\",\n\tstrict: false,\n});\n\n// export const useStrictGetFieldState = () => {\n// \tconst { name } = useStrictFormFieldContext();\n\n// \tconst { getFieldState } = useFormRootContext();\n\n// \tconst fieldState = getFieldState(name);\n\n// \treturn fieldState;\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 [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\tdefaultValue: null as unknown as FieldContextValue,\n\thookName: \"useLaxFormFieldContext\",\n\tname: \"LaxFormFieldContext\",\n\tproviderName: \"FormField\",\n\tstrict: false,\n});\n\nexport type FieldState = {\n\terrors?: UseFormStateReturn<FieldValues>[\"errors\"];\n\tisDisabled?: boolean;\n\tisInvalid?: boolean;\n};\n\n// eslint-disable-next-line ts-eslint/no-explicit-any -- any is used here for type compatibility\nexport type AnyControl = Control<any>;\n\ntype FieldStateOptions =\n\t| {\n\t\t\tcontrol: AnyControl | undefined;\n\t\t\tname?: string;\n\t }\n\t| {\n\t\t\tcontrol?: AnyControl;\n\t\t\tname: string | undefined;\n\t };\n\nexport const useLaxFormFieldState = (options?: FieldStateOptions): FieldState => {\n\tconst { control = options?.control } = useFormMethodsContext({ strict: false }) ?? {};\n\tconst { name = options?.name } = useLaxFormFieldContext() ?? {};\n\n\tconst getFormState = control ? useFormState : () => ({}) as Partial<ReturnType<typeof useFormState>>;\n\n\tconst { disabled, errors } = getFormState({ control, name });\n\n\tconst errorMessage = getFieldErrorMessage({ errors, fieldName: name, type: \"regular\" });\n\n\treturn {\n\t\terrors,\n\t\tisDisabled: disabled,\n\t\tisInvalid: Boolean(errorMessage),\n\t};\n};\n","\"use client\";\n\nimport { dataAttr, on, toArray } from \"@zayne-labs/toolkit-core\";\nimport { useCallbackRef, useToggle } from \"@zayne-labs/toolkit-react\";\nimport {\n\tcomposeRefs,\n\tcomposeTwoEventHandlers,\n\ttype DiscriminatedRenderItemProps,\n\ttype DiscriminatedRenderProps,\n\tgetMultipleSlots,\n\ttype InferProps,\n\ttype PolymorphicPropsStrict,\n} from \"@zayne-labs/toolkit-react/utils\";\nimport { type AnyString, defineEnum } from \"@zayne-labs/toolkit-type-helpers\";\nimport * as React from \"react\";\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 { ForWithWrapper } from \"@/components/common/for\";\nimport { Slot } from \"@/components/common/slot\";\nimport { cnMerge } from \"@/lib/utils/cn\";\nimport {\n\ttype FieldContextValue,\n\ttype FieldState,\n\ttype FormFieldContextProps,\n\ttype FormRootContext,\n\tLaxFormFieldProvider,\n\tLaxFormRootProvider,\n\tStrictFormFieldProvider,\n\tuseFormMethodsContext,\n\tuseLaxFormFieldContext,\n\tuseLaxFormFieldState,\n\tuseLaxFormRootContext,\n\tuseStrictFormFieldContext,\n} from \"./form-context\";\nimport { getEyeIcon, getFieldErrorMessage } from \"./utils\";\n\n// eslint-disable-next-line ts-eslint/no-explicit-any -- Necessary so that arrays can also be accepted\nexport type FieldValues = Record<string, any>;\n\ntype FormRootProps<TFieldValues extends FieldValues> = InferProps<\"form\">\n\t& Partial<FormRootContext> & {\n\t\tchildren: React.ReactNode;\n\t\tmethods: UseFormReturn<TFieldValues>;\n\t};\n\nexport function FormRoot<TValues extends FieldValues>(props: FormRootProps<TValues>) {\n\tconst { children, className, methods, withEyeIcon, ...restOfProps } = props;\n\n\tconst formContextValue = useMemo(() => ({ withEyeIcon }), [withEyeIcon]);\n\n\treturn (\n\t\t<HookFormProvider {...methods}>\n\t\t\t<LaxFormRootProvider value={formContextValue}>\n\t\t\t\t<form\n\t\t\t\t\tclassName={cnMerge(\"flex flex-col\", className)}\n\t\t\t\t\t{...restOfProps}\n\t\t\t\t\tdata-scope=\"form\"\n\t\t\t\t\tdata-part=\"root\"\n\t\t\t\t\tdata-slot=\"form-root\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</form>\n\t\t\t</LaxFormRootProvider>\n\t\t</HookFormProvider>\n\t);\n}\n\ntype FormFieldProps<TControl, TFieldValues extends FieldValues> = (TControl extends (\n\tControl<infer TValues>\n) ?\n\t{\n\t\tcontrol?: never;\n\t\tname: FieldPath<TValues>;\n\t}\n:\t{\n\t\tcontrol?: Control<TFieldValues>;\n\t\tname: FieldPath<TFieldValues>;\n\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 { isDisabled, isInvalid } = useLaxFormFieldState({ name });\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 gap-2\", className),\n\t\t\"data-part\": \"field\",\n\t\t\"data-scope\": \"form\",\n\t\t\"data-slot\": \"form-field\",\n\t\t/* eslint-disable perfectionist/sort-objects -- order of attributes does not matter */\n\t\t\"data-disabled\": dataAttr(isDisabled),\n\t\t\"data-invalid\": dataAttr(isInvalid),\n\t\t/* eslint-enable perfectionist/sort-objects -- order of attributes does not matter */\n\t};\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\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 } = useFormMethodsContext();\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 FormFieldControlledField<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\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 fieldContextValues = useStrictFormFieldContext();\n\n\tconst { children, htmlFor = fieldContextValues.formItemId, ...restOfProps } = props;\n\n\tconst { isDisabled, isInvalid } = useLaxFormFieldState({ name: fieldContextValues.name });\n\n\treturn (\n\t\t<label\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"label\"\n\t\t\tdata-slot=\"form-label\"\n\t\t\tdata-disabled={dataAttr(isDisabled)}\n\t\t\tdata-invalid={dataAttr(isInvalid)}\n\t\t\thtmlFor={htmlFor}\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: InferProps<\"div\">) {\n\tconst { children, className, ...restOfProps } = props;\n\n\tconst { isDisabled, isInvalid } = useLaxFormFieldState();\n\n\tconst {\n\t\tregularChildren,\n\t\tslots: [leftItemSlot, rightItemSlot],\n\t} = getMultipleSlots(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\tdata-slot=\"form-input-group\"\n\t\t\tdata-invalid={dataAttr(isInvalid)}\n\t\t\tdata-disabled={dataAttr(isDisabled)}\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{regularChildren}\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: PolymorphicPropsStrict<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\tdata-slot=\"form-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.slotSymbol = Symbol(\"input-left-item\");\n\nexport function FormInputRightItem<TElement extends React.ElementType = \"span\">(\n\tprops: PolymorphicPropsStrict<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\tdata-slot=\"form-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.slotSymbol = Symbol(\"input-right-item\");\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\tfieldState?: FieldState;\n\tname?: FieldPath<TFieldValues>;\n\twithEyeIcon?: FormRootContext[\"withEyeIcon\"];\n};\n\ntype FormTextAreaPrimitiveProps<TFieldValues extends FieldValues = FieldValues> =\n\tReact.ComponentPropsWithRef<\"textarea\"> & {\n\t\tclassNames?: { base?: string; error?: string };\n\t\tcontrol?: Control<TFieldValues>;\n\t\tfieldState?: FieldState;\n\t\tname?: FieldPath<TFieldValues>;\n\t};\n\ntype FormSelectPrimitiveProps<TFieldValues extends FieldValues = FieldValues> =\n\tReact.ComponentPropsWithRef<\"select\"> & {\n\t\tclassNames?: { base?: string; error?: string };\n\t\tcontrol?: Control<TFieldValues>;\n\t\tfieldState?: FieldState;\n\t\tname?: FieldPath<TFieldValues>;\n\t};\n\nconst inputTypesWithoutFullWith = new Set<React.HTMLInputTypeAttribute>([\"checkbox\", \"radio\"]);\n\nexport function FormInputPrimitive<TFieldValues extends FieldValues>(\n\tprops: FormInputPrimitiveProps<TFieldValues> & { rules?: RegisterOptions }\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst formRootContextValues = useLaxFormRootContext();\n\n\tconst {\n\t\tclassName,\n\t\tclassNames,\n\t\tcontrol,\n\t\tfieldState,\n\t\tid = fieldContextValues?.formItemId,\n\t\tname = fieldContextValues?.name,\n\t\trules,\n\t\ttype = \"text\",\n\t\twithEyeIcon = formRootContextValues?.withEyeIcon ?? true,\n\t\t...restOfProps\n\t} = props;\n\n\tconst fieldStateFromLaxFormField = useLaxFormFieldState({ control, name });\n\n\tconst { isDisabled, isInvalid } = fieldState ?? fieldStateFromLaxFormField;\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, isInvalid && classNames?.error),\n\t};\n\n\tconst { register } = useFormMethodsContext({ strict: false }) ?? {};\n\n\tconst eyeIcon = getEyeIcon({\n\t\tclassNames,\n\t\ticonType: isPasswordVisible ? \"closed\" : \"open\",\n\t\trenderIconProps: { isPasswordVisible },\n\t\twithEyeIcon,\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\tdata-slot=\"form-input\"\n\t\t\t\taria-describedby={\n\t\t\t\t\t!isInvalid ?\n\t\t\t\t\t\tfieldContextValues?.formDescriptionId\n\t\t\t\t\t:\t`${fieldContextValues?.formDescriptionId} ${fieldContextValues?.formMessageId}`\n\t\t\t\t}\n\t\t\t\taria-invalid={dataAttr(isInvalid)}\n\t\t\t\tdata-invalid={dataAttr(isInvalid)}\n\t\t\t\tdata-disabled={dataAttr(isDisabled)}\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-zu-muted-foreground focus-visible:outline-hidden\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\" && isInvalid && classNames?.error\n\t\t\t\t)}\n\t\t\t\t{...(Boolean(name) && register?.(name, rules))}\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{eyeIcon}\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> & { rules?: RegisterOptions }\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst {\n\t\tclassName,\n\t\tclassNames,\n\t\tcontrol,\n\t\tfieldState,\n\t\tid = fieldContextValues?.formItemId,\n\t\tname = fieldContextValues?.name,\n\t\trules,\n\t\t...restOfProps\n\t} = props;\n\n\tconst fieldStateFromLaxFormField = useLaxFormFieldState({ control, name });\n\n\tconst { isDisabled, isInvalid } = fieldState ?? fieldStateFromLaxFormField;\n\n\tconst { register } = useFormMethodsContext({ strict: false }) ?? {};\n\n\treturn (\n\t\t<textarea\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"textarea\"\n\t\t\tdata-slot=\"form-textarea\"\n\t\t\taria-describedby={\n\t\t\t\t!isInvalid ?\n\t\t\t\t\tfieldContextValues?.formDescriptionId\n\t\t\t\t:\t`${fieldContextValues?.formDescriptionId} ${fieldContextValues?.formMessageId}`\n\t\t\t}\n\t\t\taria-invalid={dataAttr(isInvalid)}\n\t\t\tdata-disabled={dataAttr(isDisabled)}\n\t\t\tdata-invalid={dataAttr(isInvalid)}\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-zu-muted-foreground\n\t\t\t\tfocus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,\n\t\t\t\tclassName,\n\t\t\t\tclassNames?.base,\n\t\t\t\tisInvalid && classNames?.error\n\t\t\t)}\n\t\t\t{...(Boolean(name) && register?.(name, rules))}\n\t\t\t{...restOfProps}\n\t\t/>\n\t);\n}\nexport function FormSelectPrimitive<TFieldValues extends FieldValues>(\n\tprops: FormSelectPrimitiveProps<TFieldValues> & { rules?: RegisterOptions }\n) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst {\n\t\tclassName,\n\t\tclassNames,\n\t\tcontrol,\n\t\tfieldState,\n\t\tid = fieldContextValues?.formItemId,\n\t\tname = fieldContextValues?.name,\n\t\trules,\n\t\t...restOfProps\n\t} = props;\n\n\tconst fieldStateFromLaxFormField = useLaxFormFieldState({ control, name });\n\n\tconst { isDisabled, isInvalid } = fieldState ?? fieldStateFromLaxFormField;\n\n\tconst { register } = useFormMethodsContext({ strict: false }) ?? {};\n\n\treturn (\n\t\t<select\n\t\t\tdefaultValue=\"\"\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-part=\"select\"\n\t\t\tdata-slot=\"form-select\"\n\t\t\taria-describedby={\n\t\t\t\t!isInvalid ?\n\t\t\t\t\tfieldContextValues?.formDescriptionId\n\t\t\t\t:\t`${fieldContextValues?.formDescriptionId} ${fieldContextValues?.formMessageId}`\n\t\t\t}\n\t\t\taria-invalid={dataAttr(isInvalid)}\n\t\t\tdata-disabled={dataAttr(isDisabled)}\n\t\t\tdata-invalid={dataAttr(isInvalid)}\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-zu-muted-foreground\n\t\t\t\tfocus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,\n\t\t\t\tclassName,\n\t\t\t\tclassNames?.base,\n\t\t\t\tisInvalid && classNames?.error\n\t\t\t)}\n\t\t\t{...(Boolean(name) && register?.(name, rules))}\n\t\t\t{...restOfProps}\n\t\t/>\n\t);\n}\n\ntype PrimitivePropsToOmit = \"control\" | \"formState\" | \"name\";\n\nexport type FormInputProps = Omit<FormInputPrimitiveProps, PrimitivePropsToOmit> & {\n\trules?: RegisterOptions;\n};\n\nexport type FormTextAreaProps = Omit<FormTextAreaPrimitiveProps, PrimitivePropsToOmit> & {\n\trules?: RegisterOptions;\n};\n\nexport type FormSelectProps = Omit<FormSelectPrimitiveProps, PrimitivePropsToOmit> & {\n\trules?: RegisterOptions;\n};\n\ntype CombinedFormInputProps =\n\t| (FormSelectProps & { type: \"select\" })\n\t| (FormTextAreaProps & { type: \"textarea\" })\n\t| FormInputProps;\n\nconst InputTypeMap = defineEnum({\n\tselect: FormSelectPrimitive,\n\ttextarea: FormTextAreaPrimitive,\n});\n\nexport function FormInput(props: CombinedFormInputProps & { rules?: RegisterOptions }) {\n\tconst { onBlur, onChange, ref, rules, type, ...restOfProps } = props;\n\n\tconst { name } = useStrictFormFieldContext();\n\tconst { register } = useFormMethodsContext();\n\n\tconst SelectedInput =\n\t\ttype === \"textarea\" || type === \"select\" ?\n\t\t\tInputTypeMap[type as Exclude<typeof type, AnyString>]\n\t\t:\tFormInputPrimitive;\n\n\tconst registerProps = name ? register(name, rules) : null;\n\n\treturn (\n\t\t<SelectedInput\n\t\t\ttype={type as never}\n\t\t\tname={name}\n\t\t\t{...registerProps}\n\t\t\t{...(restOfProps as NonNullable<unknown>)}\n\t\t\tref={composeRefs(registerProps?.ref, ref)}\n\t\t\tonChange={composeTwoEventHandlers(registerProps?.onChange, onChange)}\n\t\t\tonBlur={composeTwoEventHandlers(registerProps?.onBlur, onBlur)}\n\t\t/>\n\t);\n}\n\nexport function FormTextArea(props: FormTextAreaProps) {\n\treturn <FormInput {...props} type=\"textarea\" />;\n}\n\nexport function FormSelect(props: FormSelectProps) {\n\treturn <FormInput {...props} type=\"select\" />;\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\": \"error-message\";\n\t\"data-scope\": \"form\";\n\t\"data-slot\": \"form-error-message\";\n\tid: string | undefined;\n};\n\ntype ErrorMessageRenderState = { errorMessage: string; errorMessageArray: string[]; index: number };\n\ntype ErrorMessageRenderFn = (context: {\n\tprops: ErrorMessageRenderProps;\n\tstate: ErrorMessageRenderState;\n}) => React.ReactNode;\n\nexport type FormErrorMessagePrimitiveProps<TFieldValues extends FieldValues> =\n\tDiscriminatedRenderItemProps<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\tdisableErrorAnimation?: boolean;\n\t\tdisableScrollToErrorField?: boolean;\n\t} & (\n\t\t\t| {\n\t\t\t\t\tfieldName: FieldPath<TFieldValues>;\n\t\t\t\t\ttype?: \"regular\";\n\t\t\t }\n\t\t\t| {\n\t\t\t\t\tfieldName: 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 fieldContextValues = useLaxFormFieldContext();\n\tconst rootContextValues = useFormMethodsContext({ strict: false });\n\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tclassNames,\n\t\tcontrol = rootContextValues?.control,\n\t\tdisableErrorAnimation = false,\n\t\tdisableScrollToErrorField = false,\n\t\tfieldName = fieldContextValues?.name,\n\t\trenderItem,\n\t\ttype = \"regular\",\n\t} = props;\n\n\tconst { errors } = useLaxFormFieldState({ control, name: fieldName });\n\n\tconst { formMessageId } = useLaxFormFieldContext() ?? {};\n\n\tconst containerRef = useRef<HTMLUListElement>(null);\n\n\tconst errorAnimationClass = classNames?.errorMessageAnimation ?? \"animate-shake\";\n\n\tconst getErrorElements = useCallbackRef(() => containerRef.current?.children ?? []);\n\n\tuseEffect(() => {\n\t\tif (disableErrorAnimation) return;\n\n\t\tif (!errors || Object.keys(errors).length === 0) return;\n\n\t\tconst errorMessageElements = getErrorElements();\n\n\t\tif (errorMessageElements.length === 0) return;\n\n\t\tconst controller = new AbortController();\n\n\t\tfor (const element of errorMessageElements) {\n\t\t\telement.classList.add(errorAnimationClass);\n\n\t\t\tconst onAnimationEnd = () => element.classList.remove(errorAnimationClass);\n\n\t\t\ton(\"animationend\", element, onAnimationEnd, { once: true, signal: controller.signal });\n\t\t}\n\n\t\treturn () => {\n\t\t\tcontroller.abort();\n\t\t};\n\t}, [disableErrorAnimation, errorAnimationClass, errors, getErrorElements]);\n\n\tuseEffect(() => {\n\t\tif (disableScrollToErrorField) return;\n\n\t\tif (!errors || Object.keys(errors).length === 0) return;\n\n\t\tconst errorMessageElements = getErrorElements();\n\n\t\tif (errorMessageElements.length === 0) return;\n\n\t\tconst firstErrorElement = errorMessageElements[0];\n\n\t\tif (!firstErrorElement) return;\n\n\t\t// == Find the input field associated with this error\n\t\tconst inputField = document.querySelector(`[name='${fieldName}']`);\n\n\t\tconst isFocusableInput = inputField?.matches(\n\t\t\t\":is(input, select, textarea, [contenteditable='true'])\"\n\t\t);\n\n\t\t// == Return early if the input field is focusable (Only scrollIntoView for non-focusable fields)\n\t\tif (isFocusableInput) return;\n\n\t\t// == Get the element's position and scroll in one frame\n\t\tconst frameID = requestAnimationFrame(() => {\n\t\t\tconst elementRect = firstErrorElement.getBoundingClientRect();\n\n\t\t\tif (elementRect.top === 0) return;\n\n\t\t\tconst topWithOffset = elementRect.top - 100;\n\n\t\t\twindow.scrollTo({\n\t\t\t\tbehavior: \"smooth\",\n\t\t\t\ttop: window.scrollY + topWithOffset,\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(frameID);\n\t\t};\n\t}, [disableScrollToErrorField, fieldName, errors, getErrorElements]);\n\n\tconst fieldErrorMessage = getFieldErrorMessage({ errors, fieldName, type });\n\n\tif (!fieldErrorMessage) {\n\t\treturn null;\n\t}\n\n\tconst errorMessageArray = toArray(fieldErrorMessage);\n\n\tif (errorMessageArray.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst getRenderProps = (options: { index: number }): ErrorMessageRenderProps => {\n\t\tconst { index } = options;\n\n\t\treturn {\n\t\t\tclassName: cnMerge(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\t\"data-slot\": \"form-error-message\",\n\t\t\tid: formMessageId,\n\t\t};\n\t};\n\n\tconst getRenderState = (options: { errorMessage: string; index: number }): ErrorMessageRenderState => {\n\t\tconst { errorMessage, index } = options;\n\n\t\treturn {\n\t\t\terrorMessage,\n\t\t\terrorMessageArray,\n\t\t\tindex,\n\t\t};\n\t};\n\n\tconst selectedChildren = typeof children === \"function\" ? children : renderItem;\n\n\treturn (\n\t\t<ForWithWrapper\n\t\t\tref={containerRef}\n\t\t\tclassName={cnMerge(\"flex flex-col\", classNames?.container)}\n\t\t\tdata-part=\"error-message-container\"\n\t\t\tdata-scope=\"form\"\n\t\t\tdata-slot=\"form-error-message-container\"\n\t\t\teach={errorMessageArray}\n\t\t\trenderItem={(errorMessage, index) => {\n\t\t\t\treturn selectedChildren({\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\tclassName?: string;\n\t\t\t\tcontrol?: never;\n\t\t\t\terrorField?: FieldPath<TValues>;\n\t\t\t\ttype?: \"regular\";\n\t\t\t}\n\t :\t{\n\t\t\t\tclassName?: string;\n\t\t\t\tcontrol?: Control<TFieldValues>; // == Here for type inference of errorField prop\n\t\t\t\terrorField?: FieldPath<TFieldValues>;\n\t\t\t\ttype?: \"regular\";\n\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 } = useFormMethodsContext();\n\n\treturn (\n\t\t<FormErrorMessagePrimitive\n\t\t\tcontrol={control}\n\t\t\tfieldName={errorField as NonNullable<typeof errorField>}\n\t\t\ttype={type as \"root\"}\n\t\t\trenderItem={({ props: renderProps, state }) => (\n\t\t\t\t<li\n\t\t\t\t\tkey={state.errorMessage}\n\t\t\t\t\t{...renderProps}\n\t\t\t\t\tclassName={cnMerge(\n\t\t\t\t\t\t\"text-[13px] text-zu-destructive\",\n\t\t\t\t\t\t\"data-[index=0]:mt-1\",\n\t\t\t\t\t\trenderProps.className,\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{state.errorMessage}\n\t\t\t\t</li>\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: PolymorphicPropsStrict<TElement, FormSubmitProps>\n) {\n\tconst { as: Element = \"button\", asChild, children, type = \"submit\", ...restOfProps } = props;\n\n\tconst Component = asChild ? Slot.Root : Element;\n\n\treturn (\n\t\t<Component data-part=\"submit\" data-scope=\"form\" data-slot=\"form-submit\" 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\tFieldPathValues<TFieldValues, TFieldPathOrPaths>\n\t: TFieldPathOrPaths extends FieldPath<TFieldValues> ? FieldPathValue<TFieldValues, TFieldPathOrPaths>\n\t: unknown;\n\ntype FormSubscribeToFieldValueRenderFn<TFieldValues extends FieldValues, TFieldPathOrPaths> = (props: {\n\tvalue: GetFieldValue<TFieldPathOrPaths, TFieldValues>;\n}) => React.ReactNode;\n\ntype FormSubscribeToFieldValueProps<\n\tTFieldValues extends FieldValues,\n\tTFieldPathOrPaths,\n> = DiscriminatedRenderProps<FormSubscribeToFieldValueRenderFn<TFieldValues, TFieldPathOrPaths>> & {\n\tcontrol: Control<TFieldValues>;\n\tname?: TFieldPathOrPaths;\n};\n\nexport function FormSubscribeToFieldValue<\n\tTFieldValues extends FieldValues,\n\tconst TFieldPathOrPaths extends Array<FieldPath<TFieldValues>> | FieldPath<TFieldValues>,\n>(props: FormSubscribeToFieldValueProps<TFieldValues, TFieldPathOrPaths>) {\n\tconst fieldContextValues = useLaxFormFieldContext();\n\n\tconst { children, name = fieldContextValues?.name, render } = props;\n\n\tconst { control } = useFormMethodsContext();\n\n\tconst formValue = useWatch({ control, name: name as string }) as unknown;\n\n\tconst selectedChildren = typeof children === \"function\" ? children : render;\n\n\tconst fieldProps = { value: formValue };\n\n\tconst resolvedChildren = selectedChildren(fieldProps as never);\n\n\treturn resolvedChildren;\n}\n\ntype FormSubscribeToFormStateRenderFn<TFieldValues extends FieldValues> = (\n\tprops: UseFormStateReturn<TFieldValues>\n) => React.ReactNode;\n\ntype FormSubscribeToFormStateProps<TFieldValues extends FieldValues> = DiscriminatedRenderProps<\n\tFormSubscribeToFormStateRenderFn<TFieldValues>\n> & {\n\tcontrol?: Control<TFieldValues>;\n\tname?: Array<FieldPath<TFieldValues>> | FieldPath<TFieldValues>;\n};\n\nexport function FormSubscribeToFormState<TFieldValues extends FieldValues = FieldValues>(\n\tprops: FormSubscribeToFormStateProps<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\tconst selectedChildren = typeof children === \"function\" ? children : render;\n\n\tconst resolvedChildren = selectedChildren(formState as never);\n\n\treturn resolvedChildren;\n}\n","export {\n\tFormDescription as Description,\n\tFormErrorMessage as ErrorMessage,\n\tFormErrorMessagePrimitive as ErrorMessagePrimitive,\n\tFormField as Field,\n\tFormFieldContext as FieldContext,\n\tFormFieldController as FieldController,\n\tFormFieldControlledField as ControlledField,\n\tFormInput as Input,\n\tFormInputGroup as InputGroup,\n\tFormInputLeftItem as InputLeftItem,\n\tFormInputPrimitive as InputPrimitive,\n\tFormInputRightItem as InputRightItem,\n\tFormLabel as Label,\n\tFormRoot as Root,\n\tFormSelect as Select,\n\tFormSubmit as Submit,\n\tFormSubscribeToFieldValue as SubscribeToFieldValue,\n\tFormSubscribeToFormState as SubscribeToFormState,\n\tFormTextArea as TextArea,\n\tFormTextAreaPrimitive as TextAreaPrimitive,\n} from \"./form\";\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { ErrorBoundaryProps } from "./index-CJLZEhIo.js";
1
+ import { ErrorBoundaryProps } from "./index-C8_O0zCb.js";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime18 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/common/suspense-with-boundary/suspense-with-boundary.d.ts
6
6
  type SuspenseWithBoundaryProps = {
@@ -8,7 +8,7 @@ type SuspenseWithBoundaryProps = {
8
8
  errorFallback?: ErrorBoundaryProps["fallback"];
9
9
  fallback?: React.ReactNode;
10
10
  };
11
- declare function SuspenseWithBoundary(props: SuspenseWithBoundaryProps): react_jsx_runtime18.JSX.Element;
11
+ declare function SuspenseWithBoundary(props: SuspenseWithBoundaryProps): react_jsx_runtime0.JSX.Element;
12
12
  //#endregion
13
13
  export { SuspenseWithBoundary, SuspenseWithBoundaryProps };
14
- //# sourceMappingURL=index-D259PHNG.d.ts.map
14
+ //# sourceMappingURL=index-B4K9g2v-.d.ts.map
@@ -1,9 +1,9 @@
1
- import { InferProps, PolymorphicProps } from "@zayne-labs/toolkit-react/utils";
1
+ import { InferProps, PolymorphicPropsStrict } from "@zayne-labs/toolkit-react/utils";
2
2
  import * as _zayne_labs_toolkit_type_helpers0 from "@zayne-labs/toolkit-type-helpers";
3
3
  import { Awaitable, SelectorFn } from "@zayne-labs/toolkit-type-helpers";
4
- import * as react1 from "react";
4
+ import * as react4 from "react";
5
5
  import "@zayne-labs/toolkit-react";
6
- import * as react_jsx_runtime19 from "react/jsx-runtime";
6
+ import * as react_jsx_runtime36 from "react/jsx-runtime";
7
7
  import * as _zayne_labs_toolkit_core1 from "@zayne-labs/toolkit-core";
8
8
  import { FileMeta, FileOrFileMeta, FileValidationErrorContextEach, FileValidationHooksAsync, FileValidationSettingsAsync } from "@zayne-labs/toolkit-core";
9
9
 
@@ -102,8 +102,8 @@ interface PartProps {
102
102
  output: InferProps<"button"> & RecordForDataAttr;
103
103
  };
104
104
  }
105
- type PartInputProps = { [Key in keyof PartProps]: PartProps[Key]["input"] };
106
105
  type DropZonePropGetters = { [Key in keyof PartProps as `get${Capitalize<Key>}Props`]: (props: PartProps[Key]["input"]) => PartProps[Key]["output"] };
106
+ type PartInputProps = { [Key in keyof PartProps]: PartProps[Key]["input"] };
107
107
  type DropZoneState = {
108
108
  /**
109
109
  * List of validation errors
@@ -117,6 +117,10 @@ type DropZoneState = {
117
117
  * Whether or not a file is currently being dragged over the drop zone
118
118
  */
119
119
  isDraggingOver: boolean;
120
+ /**
121
+ * Whether or not any of the files are invalid
122
+ */
123
+ isInvalid: boolean;
120
124
  };
121
125
  type DropZoneActions = {
122
126
  actions: {
@@ -224,75 +228,75 @@ declare const createDropZoneStore: (initStoreValues: InitStoreValues) => _zayne_
224
228
  declare const DropZoneStoreContextProvider: (props: {
225
229
  children: React.ReactNode;
226
230
  store: _zayne_labs_toolkit_core1.StoreApi<DropZoneStore>;
227
- }) => react1.FunctionComponentElement<react1.ProviderProps<_zayne_labs_toolkit_core1.StoreApi<DropZoneStore>>>, useDropZoneStoreContext: <TResult = DropZoneStore>(selector?: _zayne_labs_toolkit_type_helpers0.SelectorFn<DropZoneStore, TResult> | undefined) => TResult;
231
+ }) => react4.FunctionComponentElement<react4.ProviderProps<_zayne_labs_toolkit_core1.StoreApi<DropZoneStore>>>, useDropZoneStoreContext: <TResult = DropZoneStore>(selector?: _zayne_labs_toolkit_type_helpers0.SelectorFn<DropZoneStore, TResult> | undefined) => TResult;
228
232
  type FileItemContextType = {
229
233
  fileState: FileState | undefined;
230
234
  };
231
235
  //#endregion
232
236
  //#region src/components/ui/drop-zone/drop-zone.d.ts
233
237
  type DropZoneRootProps = UseDropZoneProps & {
234
- children: react1.ReactNode;
238
+ children: react4.ReactNode;
235
239
  };
236
- declare function DropZoneRoot(props: DropZoneRootProps): react_jsx_runtime19.JSX.Element;
240
+ declare function DropZoneRoot(props: DropZoneRootProps): react_jsx_runtime36.JSX.Element;
237
241
  type DropZoneContextProps<TSlice> = {
238
- children: react1.ReactNode | ((props: TSlice) => react1.ReactNode);
242
+ children: react4.ReactNode | ((props: TSlice) => react4.ReactNode);
239
243
  selector?: SelectorFn<DropZoneStore, TSlice>;
240
244
  };
241
- declare function DropZoneContext<TSlice = DropZoneStore>(props: DropZoneContextProps<TSlice>): react1.ReactNode;
245
+ declare function DropZoneContext<TSlice = DropZoneStore>(props: DropZoneContextProps<TSlice>): react4.ReactNode;
242
246
  type DropZoneContainerProps = PartInputProps["container"] & {
243
247
  asChild?: boolean;
244
248
  };
245
- declare function DropZoneContainer<TElement extends react1.ElementType = "div">(props: PolymorphicProps<TElement, DropZoneContainerProps>): react_jsx_runtime19.JSX.Element;
249
+ declare function DropZoneContainer<TElement extends react4.ElementType = "div">(props: PolymorphicPropsStrict<TElement, DropZoneContainerProps>): react_jsx_runtime36.JSX.Element;
246
250
  type DropZoneInputProps = PartInputProps["input"] & {
247
251
  asChild?: boolean;
248
252
  };
249
- declare function DropZoneInput(props: DropZoneInputProps): react_jsx_runtime19.JSX.Element;
253
+ declare function DropZoneInput(props: DropZoneInputProps): react_jsx_runtime36.JSX.Element;
250
254
  type DropZoneAreaProps<TSlice> = {
251
- children: react1.ReactNode | ((props: TSlice) => react1.ReactNode);
255
+ children: react4.ReactNode | ((props: TSlice) => react4.ReactNode);
252
256
  classNames?: Partial<Record<Extract<keyof PartInputProps, "container" | "input">, string>>;
253
257
  extraProps?: Pick<PartInputProps, "container" | "input">;
254
258
  selector?: SelectorFn<DropZoneStore, TSlice>;
255
259
  };
256
- declare function DropZoneArea<TSlice = DropZoneStore>(props: DropZoneAreaProps<TSlice>): react_jsx_runtime19.JSX.Element;
260
+ declare function DropZoneArea<TSlice = DropZoneStore>(props: DropZoneAreaProps<TSlice>): react_jsx_runtime36.JSX.Element;
257
261
  type DropZoneTriggerProps = PartInputProps["trigger"] & {
258
262
  asChild?: boolean;
259
263
  };
260
- declare function DropZoneTrigger(props: DropZoneTriggerProps): react_jsx_runtime19.JSX.Element;
264
+ declare function DropZoneTrigger(props: DropZoneTriggerProps): react_jsx_runtime36.JSX.Element;
261
265
  type FileListPerItemVariant = {
262
- children: react1.ReactNode | ((props: {
266
+ children: react4.ReactNode | ((props: {
263
267
  actions: DropZoneStore["actions"];
264
268
  array: DropZoneStore["fileStateArray"];
265
269
  fileState: DropZoneStore["fileStateArray"][number];
266
270
  index: number;
267
- }) => react1.ReactNode);
271
+ }) => react4.ReactNode);
268
272
  renderMode?: "per-item";
269
273
  };
270
274
  type FileListManualListVariant = {
271
- children: react1.ReactNode | ((props: Pick<DropZoneStore, "actions" | "fileStateArray">) => react1.ReactNode);
275
+ children: react4.ReactNode | ((props: Pick<DropZoneStore, "actions" | "fileStateArray">) => react4.ReactNode);
272
276
  renderMode: "manual-list";
273
277
  };
274
278
  type DropZoneFileListProps = Omit<PartInputProps["fileList"], "children"> & {
275
279
  asChild?: boolean;
276
280
  forceMount?: boolean;
277
281
  } & (FileListManualListVariant | FileListPerItemVariant);
278
- declare function DropZoneFileList<TElement extends react1.ElementType = "ul">(props: PolymorphicProps<TElement, DropZoneFileListProps>): react_jsx_runtime19.JSX.Element;
282
+ declare function DropZoneFileList<TElement extends react4.ElementType = "ul">(props: PolymorphicPropsStrict<TElement, DropZoneFileListProps>): react_jsx_runtime36.JSX.Element;
279
283
  type DropZoneFileItemProps = FileItemContextType & PartInputProps["fileItem"] & {
280
284
  asChild?: boolean;
281
285
  };
282
- declare function DropZoneFileItem<TElement extends react1.ElementType = "li">(props: PolymorphicProps<TElement, DropZoneFileItemProps>): react_jsx_runtime19.JSX.Element;
286
+ declare function DropZoneFileItem<TElement extends react4.ElementType = "li">(props: PolymorphicPropsStrict<TElement, DropZoneFileItemProps>): react_jsx_runtime36.JSX.Element;
283
287
  type DropZoneFileItemDeleteProps = PartInputProps["fileItemDelete"] & {
284
288
  asChild?: boolean;
285
289
  };
286
- declare function DropZoneFileItemDelete(props: DropZoneFileItemDeleteProps): react_jsx_runtime19.JSX.Element;
290
+ declare function DropZoneFileItemDelete(props: DropZoneFileItemDeleteProps): react_jsx_runtime36.JSX.Element;
287
291
  type DropZoneFileItemProgressProps = PartInputProps["fileItemProgress"] & {
288
292
  asChild?: boolean;
289
293
  forceMount?: boolean;
290
294
  size?: number;
291
295
  };
292
- declare function DropZoneFileItemProgress<TElement extends react1.ElementType = "span">(props: PolymorphicProps<TElement, DropZoneFileItemProgressProps>): react_jsx_runtime19.JSX.Element | null;
296
+ declare function DropZoneFileItemProgress<TElement extends react4.ElementType = "span">(props: PolymorphicPropsStrict<TElement, DropZoneFileItemProgressProps>): react_jsx_runtime36.JSX.Element | null;
293
297
  type RenderPreviewDetails = {
294
298
  className?: string;
295
- node?: react1.ReactNode;
299
+ node?: react4.ReactNode;
296
300
  };
297
301
  type RenderPreviewProp = (props: Pick<FileItemContextType, "fileState">) => {
298
302
  archive?: RenderPreviewDetails;
@@ -306,25 +310,25 @@ type RenderPreviewProp = (props: Pick<FileItemContextType, "fileState">) => {
306
310
  };
307
311
  type DropZoneFileItemPreviewProps = Omit<PartInputProps["fileItemPreview"], "children"> & Partial<Pick<FileItemContextType, "fileState">> & {
308
312
  asChild?: boolean;
309
- children?: react1.ReactNode | ((props: Pick<FileItemContextType, "fileState">) => react1.ReactNode);
313
+ children?: react4.ReactNode | ((props: Pick<FileItemContextType, "fileState">) => react4.ReactNode);
310
314
  renderPreview?: boolean | RenderPreviewProp;
311
315
  };
312
- declare function DropZoneFileItemPreview<TElement extends react1.ElementType = "span">(props: PolymorphicProps<TElement, DropZoneFileItemPreviewProps>): react_jsx_runtime19.JSX.Element | null;
316
+ declare function DropZoneFileItemPreview<TElement extends react4.ElementType>(props: PolymorphicPropsStrict<TElement, DropZoneFileItemPreviewProps>): react_jsx_runtime36.JSX.Element | null;
313
317
  type DropZoneFileItemMetadataProps = Omit<PartInputProps["fileItemMetadata"], "children"> & Partial<Pick<FileItemContextType, "fileState">> & {
314
318
  asChild?: boolean;
315
- children?: react1.ReactNode | ((props: Pick<FileItemContextType, "fileState">) => react1.ReactNode);
319
+ children?: react4.ReactNode | ((props: Pick<FileItemContextType, "fileState">) => react4.ReactNode);
316
320
  classNames?: {
317
321
  name?: string;
318
322
  size?: string;
319
323
  };
320
324
  size?: "default" | "sm";
321
325
  };
322
- declare function DropZoneFileItemMetadata(props: DropZoneFileItemMetadataProps): react_jsx_runtime19.JSX.Element | null;
326
+ declare function DropZoneFileItemMetadata(props: DropZoneFileItemMetadataProps): react_jsx_runtime36.JSX.Element | null;
323
327
  type DropZoneFileClearProps = PartInputProps["fileItemClear"] & {
324
328
  asChild?: boolean;
325
329
  forceMount?: boolean;
326
330
  };
327
- declare function DropZoneFileClear(props: DropZoneFileClearProps): react_jsx_runtime19.JSX.Element | null;
331
+ declare function DropZoneFileClear(props: DropZoneFileClearProps): react_jsx_runtime36.JSX.Element | null;
328
332
  declare namespace drop_zone_parts_d_exports {
329
333
  export { DropZoneArea as Area, DropZoneContainer as Container, DropZoneContext as Context, DropZoneFileClear as FileClear, DropZoneFileItem as FileItem, DropZoneFileItemDelete as FileItemDelete, DropZoneFileItemMetadata as FileItemMetadata, DropZoneFileItemPreview as FileItemPreview, DropZoneFileItemProgress as FileItemProgress, DropZoneFileList as FileList, DropZoneInput as Input, DropZoneRoot as Root, DropZoneTrigger as Trigger };
330
334
  }
@@ -333,4 +337,4 @@ declare namespace drop_zone_parts_d_exports {
333
337
  declare const useDropZone: (props?: UseDropZoneProps) => UseDropZoneResult;
334
338
  //#endregion
335
339
  export { DropZoneArea, DropZoneContainer, DropZoneContext, DropZoneError, DropZoneFileClear, DropZoneFileItem, DropZoneFileItemDelete, DropZoneFileItemMetadata, DropZoneFileItemPreview, DropZoneFileItemProgress, DropZoneFileList, DropZoneInput, DropZoneRoot, DropZoneTrigger, drop_zone_parts_d_exports, useDropZone, useDropZoneStoreContext };
336
- //# sourceMappingURL=index-BBHGVe_0.d.ts.map
340
+ //# sourceMappingURL=index-BoZe50e8.d.ts.map
@@ -1,10 +1,10 @@
1
1
  import { InferProps } from "@zayne-labs/toolkit-react/utils";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime17 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/common/slot/slot.d.ts
6
6
  type SlotProps = InferProps<HTMLElement>;
7
- declare function SlotRoot(props: SlotProps): react_jsx_runtime17.JSX.Element | null;
7
+ declare function SlotRoot(props: SlotProps): react_jsx_runtime1.JSX.Element | null;
8
8
  declare function SlotSlottable({
9
9
  children
10
10
  }: Pick<SlotProps, "children">): React.ReactNode;
@@ -13,4 +13,4 @@ declare namespace slot_parts_d_exports {
13
13
  }
14
14
  //#endregion
15
15
  export { SlotRoot, SlotSlottable, slot_parts_d_exports };
16
- //# sourceMappingURL=index-B53RIFft.d.ts.map
16
+ //# sourceMappingURL=index-Bx2BzRRJ.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import * as React$1 from "react";
2
2
  import { Component } from "react";
3
3
  import "@zayne-labs/toolkit-react";
4
- import * as react_jsx_runtime7 from "react/jsx-runtime";
4
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
6
6
  //#region src/components/common/error-boundary/types.d.ts
7
7
  type FallbackProps = {
@@ -49,7 +49,7 @@ declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryS
49
49
  };
50
50
  componentDidCatch(error: Error, info: React$1.ErrorInfo): void;
51
51
  componentDidUpdate(prevProps: ErrorBoundaryProps, prevState: ErrorBoundaryState): void;
52
- render(): react_jsx_runtime7.JSX.Element;
52
+ render(): react_jsx_runtime0.JSX.Element;
53
53
  }
54
54
  //#endregion
55
55
  //#region src/components/common/error-boundary/error-boundary-context.d.ts
@@ -66,4 +66,4 @@ declare const useErrorBoundary: <TError extends Error>() => {
66
66
  };
67
67
  //#endregion
68
68
  export { ErrorBoundary, type ErrorBoundaryContextType, ErrorBoundaryProps, FallbackProps, useErrorBoundary, useErrorBoundaryContext };
69
- //# sourceMappingURL=index-CJLZEhIo.d.ts.map
69
+ //# sourceMappingURL=index-C8_O0zCb.d.ts.map
@@ -1,8 +1,8 @@
1
- import { ErrorBoundaryProps } from "./index-CJLZEhIo.js";
2
- import { SuspenseWithBoundaryProps } from "./index-D259PHNG.js";
1
+ import { ErrorBoundaryProps } from "./index-C8_O0zCb.js";
2
+ import { SuspenseWithBoundaryProps } from "./index-B4K9g2v-.js";
3
3
  import { GetSlotComponentProps } from "@zayne-labs/toolkit-react/utils";
4
4
  import * as React from "react";
5
- import * as react_jsx_runtime8 from "react/jsx-runtime";
5
+ import * as react_jsx_runtime35 from "react/jsx-runtime";
6
6
 
7
7
  //#region src/components/common/await/await.d.ts
8
8
  type RenderPropFn<TValue> = (result: TValue) => React.ReactNode;
@@ -14,13 +14,17 @@ type AwaitRootProps<TValue> = Pick<SuspenseWithBoundaryProps, "errorFallback" |
14
14
  withErrorBoundary?: boolean;
15
15
  withSuspense?: boolean;
16
16
  };
17
- declare function AwaitRoot<TValue>(props: AwaitRootProps<TValue>): react_jsx_runtime8.JSX.Element;
17
+ declare function AwaitRoot<TValue>(props: AwaitRootProps<TValue>): react_jsx_runtime35.JSX.Element;
18
18
  type AwaitSuccessProps<TValue = unknown> = GetSlotComponentProps<"default", ChildrenType<TValue>>;
19
19
  declare function AwaitSuccess<TPromiseOrValue, TValue = Awaited<TPromiseOrValue>>(props: Pick<AwaitSuccessProps<TValue>, "children">): React.ReactNode;
20
20
  type AwaitErrorProps = GetSlotComponentProps<"error", ErrorBoundaryProps["fallback"]>;
21
- declare function AwaitError(props: AwaitErrorProps & {
22
- asChild?: boolean;
23
- }): react_jsx_runtime8.JSX.Element;
21
+ declare const AwaitError: {
22
+ (props: Pick<AwaitErrorProps, "children"> & {
23
+ asChild?: boolean;
24
+ }): React.ReactNode;
25
+ readonly slotName?: "error" | undefined;
26
+ readonly slotSymbol?: symbol;
27
+ };
24
28
  type AwaitPendingProps = GetSlotComponentProps<"pending", React.SuspenseProps["fallback"]>;
25
29
  declare const AwaitPending: {
26
30
  (props: Pick<AwaitPendingProps, "children">): React.ReactNode;
@@ -39,4 +43,4 @@ declare namespace await_parts_d_exports {
39
43
  }
40
44
  //#endregion
41
45
  export { AwaitError, AwaitPending, AwaitRoot, AwaitSuccess, await_parts_d_exports, useAwaitContext };
42
- //# sourceMappingURL=index-CvjRPnhb.d.ts.map
46
+ //# sourceMappingURL=index-DWl-QZ3Q.d.ts.map
@@ -1,7 +1,7 @@
1
- import { PolymorphicProps } from "@zayne-labs/toolkit-react/utils";
1
+ import { PolymorphicPropsStrict } from "@zayne-labs/toolkit-react/utils";
2
2
  import { UnionDiscriminator } from "@zayne-labs/toolkit-type-helpers";
3
3
  import * as React$1 from "react";
4
- import * as react_jsx_runtime0 from "react/jsx-runtime";
4
+ import * as react_jsx_runtime26 from "react/jsx-runtime";
5
5
  import { StoreApi } from "@zayne-labs/toolkit-core";
6
6
 
7
7
  //#region src/components/ui/carousel/types.d.ts
@@ -79,17 +79,17 @@ type OtherCarouselProps = {
79
79
  };
80
80
  //#endregion
81
81
  //#region src/components/ui/carousel/carousel.d.ts
82
- declare function CarouselRoot<TImages extends ImagesType, TElement extends React$1.ElementType = "div">(props: PolymorphicProps<TElement, CarouselRootProps<TImages>>): react_jsx_runtime0.JSX.Element;
83
- declare function CarouselButton(props: CarouselButtonsProps): react_jsx_runtime0.JSX.Element;
84
- declare function CarouselControls(props: CarouselControlProps): react_jsx_runtime0.JSX.Element;
85
- declare function CarouselItemList<TArrayItem>(props: CarouselWrapperProps<TArrayItem>): react_jsx_runtime0.JSX.Element;
86
- declare function CarouselItem(props: OtherCarouselProps): react_jsx_runtime0.JSX.Element;
87
- declare function CarouselCaption<TElement extends React$1.ElementType = "div">(props: PolymorphicProps<TElement, OtherCarouselProps>): react_jsx_runtime0.JSX.Element;
88
- declare function CarouselIndicatorList<TArrayItem>(props: CarouselWrapperProps<TArrayItem>): react_jsx_runtime0.JSX.Element;
89
- declare function CarouselIndicator(props: CarouselIndicatorProps): react_jsx_runtime0.JSX.Element;
82
+ declare function CarouselRoot<TImages extends ImagesType, TElement extends React$1.ElementType = "div">(props: PolymorphicPropsStrict<TElement, CarouselRootProps<TImages>>): react_jsx_runtime26.JSX.Element;
83
+ declare function CarouselButton(props: CarouselButtonsProps): react_jsx_runtime26.JSX.Element;
84
+ declare function CarouselControls(props: CarouselControlProps): react_jsx_runtime26.JSX.Element;
85
+ declare function CarouselItemList<TArrayItem>(props: CarouselWrapperProps<TArrayItem>): react_jsx_runtime26.JSX.Element;
86
+ declare function CarouselItem(props: OtherCarouselProps): react_jsx_runtime26.JSX.Element;
87
+ declare function CarouselCaption<TElement extends React$1.ElementType = "div">(props: PolymorphicPropsStrict<TElement, OtherCarouselProps>): react_jsx_runtime26.JSX.Element;
88
+ declare function CarouselIndicatorList<TArrayItem>(props: CarouselWrapperProps<TArrayItem>): react_jsx_runtime26.JSX.Element;
89
+ declare function CarouselIndicator(props: CarouselIndicatorProps): react_jsx_runtime26.JSX.Element;
90
90
  declare namespace carousel_parts_d_exports {
91
91
  export { CarouselButton as Button, CarouselCaption as Caption, CarouselControls as Controls, CarouselIndicator as Indicator, CarouselIndicatorList as IndicatorGroup, CarouselItem as Item, CarouselItemList as ItemGroup, CarouselRoot as Root };
92
92
  }
93
93
  //#endregion
94
94
  export { CarouselButton, CarouselButtonsProps, CarouselCaption, CarouselControlProps, CarouselControls, CarouselIndicator, CarouselIndicatorList, CarouselIndicatorProps, CarouselItem, CarouselItemList, CarouselRoot, CarouselRootProps, CarouselStore, CarouselStoreApi, CarouselWrapperProps, ImagesType, OtherCarouselProps, carousel_parts_d_exports };
95
- //# sourceMappingURL=index-DoRAzdDN.d.ts.map
95
+ //# sourceMappingURL=index-DZxgPnK1.d.ts.map
@@ -1,8 +1,8 @@
1
- import { DiscriminatedRenderItemProps, DiscriminatedRenderProps, InferProps, PolymorphicProps } from "@zayne-labs/toolkit-react/utils";
1
+ import { DiscriminatedRenderItemProps, DiscriminatedRenderProps, InferProps, PolymorphicPropsStrict } from "@zayne-labs/toolkit-react/utils";
2
2
  import { UnionDiscriminator } from "@zayne-labs/toolkit-type-helpers";
3
3
  import * as React$1 from "react";
4
4
  import "@zayne-labs/toolkit-react";
5
- import * as react_jsx_runtime32 from "react/jsx-runtime";
5
+ import * as react_jsx_runtime9 from "react/jsx-runtime";
6
6
  import { Control, ControllerFieldState, ControllerProps, ControllerRenderProps, FieldPath, FieldPathValue, FieldPathValues, RegisterOptions, UseFormReturn, UseFormStateReturn, useFormContext as useFormRootContext } from "react-hook-form";
7
7
 
8
8
  //#region src/components/ui/form/form-context.d.ts
@@ -38,7 +38,7 @@ type FormRootProps<TFieldValues extends FieldValues> = InferProps<"form"> & Part
38
38
  children: React$1.ReactNode;
39
39
  methods: UseFormReturn<TFieldValues>;
40
40
  };
41
- declare function FormRoot<TValues extends FieldValues>(props: FormRootProps<TValues>): react_jsx_runtime32.JSX.Element;
41
+ declare function FormRoot<TValues extends FieldValues>(props: FormRootProps<TValues>): react_jsx_runtime9.JSX.Element;
42
42
  type FormFieldProps<TControl, TFieldValues extends FieldValues> = (TControl extends (Control<infer TValues>) ? {
43
43
  control?: never;
44
44
  name: FieldPath<TValues>;
@@ -52,7 +52,7 @@ type FormFieldProps<TControl, TFieldValues extends FieldValues> = (TControl exte
52
52
  className?: never;
53
53
  withWrapper: false;
54
54
  });
55
- declare function FormField<TControl, TFieldValues extends FieldValues = FieldValues>(props: FormFieldProps<TControl, TFieldValues>): react_jsx_runtime32.JSX.Element;
55
+ declare function FormField<TControl, TFieldValues extends FieldValues = FieldValues>(props: FormFieldProps<TControl, TFieldValues>): react_jsx_runtime9.JSX.Element;
56
56
  type FormFieldControllerRenderFn = (props: {
57
57
  field: Omit<ControllerRenderProps, "value"> & {
58
58
  value: never;
@@ -63,20 +63,20 @@ type FormFieldControllerRenderFn = (props: {
63
63
  type FormFieldControllerProps = Omit<ControllerProps<FieldValues, FieldPath<FieldValues>>, "control" | "name" | "render"> & {
64
64
  render: FormFieldControllerRenderFn;
65
65
  };
66
- declare function FormFieldController(props: FormFieldControllerProps): react_jsx_runtime32.JSX.Element;
67
- declare function FormFieldControlledField<TFieldValues extends FieldValues>(props: ControllerProps<TFieldValues>): react_jsx_runtime32.JSX.Element;
66
+ declare function FormFieldController(props: FormFieldControllerProps): react_jsx_runtime9.JSX.Element;
67
+ declare function FormFieldControlledField<TFieldValues extends FieldValues>(props: ControllerProps<TFieldValues>): react_jsx_runtime9.JSX.Element;
68
68
  declare function FormFieldContext(props: FormFieldContextProps): React$1.ReactNode;
69
- declare function FormLabel(props: InferProps<"label">): react_jsx_runtime32.JSX.Element;
70
- declare function FormInputGroup(props: InferProps<"div">): react_jsx_runtime32.JSX.Element;
69
+ declare function FormLabel(props: InferProps<"label">): react_jsx_runtime9.JSX.Element;
70
+ declare function FormInputGroup(props: InferProps<"div">): react_jsx_runtime9.JSX.Element;
71
71
  type FormSideItemProps = {
72
72
  children?: React$1.ReactNode;
73
73
  className?: string;
74
74
  };
75
- declare function FormInputLeftItem<TElement extends React$1.ElementType = "span">(props: PolymorphicProps<TElement, FormSideItemProps>): react_jsx_runtime32.JSX.Element;
75
+ declare function FormInputLeftItem<TElement extends React$1.ElementType = "span">(props: PolymorphicPropsStrict<TElement, FormSideItemProps>): react_jsx_runtime9.JSX.Element;
76
76
  declare namespace FormInputLeftItem {
77
77
  var slotSymbol: symbol;
78
78
  }
79
- declare function FormInputRightItem<TElement extends React$1.ElementType = "span">(props: PolymorphicProps<TElement, FormSideItemProps>): react_jsx_runtime32.JSX.Element;
79
+ declare function FormInputRightItem<TElement extends React$1.ElementType = "span">(props: PolymorphicPropsStrict<TElement, FormSideItemProps>): react_jsx_runtime9.JSX.Element;
80
80
  declare namespace FormInputRightItem {
81
81
  var slotSymbol: symbol;
82
82
  }
@@ -112,13 +112,13 @@ type FormSelectPrimitiveProps<TFieldValues extends FieldValues = FieldValues> =
112
112
  };
113
113
  declare function FormInputPrimitive<TFieldValues extends FieldValues>(props: FormInputPrimitiveProps<TFieldValues> & {
114
114
  rules?: RegisterOptions;
115
- }): react_jsx_runtime32.JSX.Element;
115
+ }): react_jsx_runtime9.JSX.Element;
116
116
  declare function FormTextAreaPrimitive<TFieldValues extends FieldValues>(props: FormTextAreaPrimitiveProps<TFieldValues> & {
117
117
  rules?: RegisterOptions;
118
- }): react_jsx_runtime32.JSX.Element;
118
+ }): react_jsx_runtime9.JSX.Element;
119
119
  declare function FormSelectPrimitive<TFieldValues extends FieldValues>(props: FormSelectPrimitiveProps<TFieldValues> & {
120
120
  rules?: RegisterOptions;
121
- }): react_jsx_runtime32.JSX.Element;
121
+ }): react_jsx_runtime9.JSX.Element;
122
122
  type PrimitivePropsToOmit = "control" | "formState" | "name";
123
123
  type FormInputProps = Omit<FormInputPrimitiveProps, PrimitivePropsToOmit> & {
124
124
  rules?: RegisterOptions;
@@ -136,10 +136,10 @@ type CombinedFormInputProps = (FormSelectProps & {
136
136
  }) | FormInputProps;
137
137
  declare function FormInput(props: CombinedFormInputProps & {
138
138
  rules?: RegisterOptions;
139
- }): react_jsx_runtime32.JSX.Element;
140
- declare function FormTextArea(props: FormTextAreaProps): react_jsx_runtime32.JSX.Element;
141
- declare function FormSelect(props: FormSelectProps): react_jsx_runtime32.JSX.Element;
142
- declare function FormDescription(props: InferProps<"p">): react_jsx_runtime32.JSX.Element;
139
+ }): react_jsx_runtime9.JSX.Element;
140
+ declare function FormTextArea(props: FormTextAreaProps): react_jsx_runtime9.JSX.Element;
141
+ declare function FormSelect(props: FormSelectProps): react_jsx_runtime9.JSX.Element;
142
+ declare function FormDescription(props: InferProps<"p">): react_jsx_runtime9.JSX.Element;
143
143
  type ErrorMessageRenderProps = {
144
144
  className: string;
145
145
  "data-index": number;
@@ -199,11 +199,11 @@ type FormErrorMessageProps<TControl, TFieldValues extends FieldValues> = (TContr
199
199
  errorField: string;
200
200
  type: "root";
201
201
  };
202
- declare function FormErrorMessage<TControl, TFieldValues extends FieldValues = FieldValues>(props: FormErrorMessageProps<TControl, TFieldValues>): react_jsx_runtime32.JSX.Element;
202
+ declare function FormErrorMessage<TControl, TFieldValues extends FieldValues = FieldValues>(props: FormErrorMessageProps<TControl, TFieldValues>): react_jsx_runtime9.JSX.Element;
203
203
  type FormSubmitProps = InferProps<"button"> & {
204
204
  asChild?: boolean;
205
205
  };
206
- declare function FormSubmit<TElement extends React$1.ElementType = "button">(props: PolymorphicProps<TElement, FormSubmitProps>): react_jsx_runtime32.JSX.Element;
206
+ declare function FormSubmit<TElement extends React$1.ElementType = "button">(props: PolymorphicPropsStrict<TElement, FormSubmitProps>): react_jsx_runtime9.JSX.Element;
207
207
  type GetFieldValue<TFieldPathOrPaths, TFieldValues extends FieldValues> = TFieldPathOrPaths extends Array<FieldPath<TFieldValues>> ? FieldPathValues<TFieldValues, TFieldPathOrPaths> : TFieldPathOrPaths extends FieldPath<TFieldValues> ? FieldPathValue<TFieldValues, TFieldPathOrPaths> : unknown;
208
208
  type FormSubscribeToFieldValueRenderFn<TFieldValues extends FieldValues, TFieldPathOrPaths> = (props: {
209
209
  value: GetFieldValue<TFieldPathOrPaths, TFieldValues>;
@@ -224,4 +224,4 @@ declare namespace form_parts_d_exports {
224
224
  }
225
225
  //#endregion
226
226
  export { FieldValues, FormDescription, FormErrorMessage, FormErrorMessagePrimitive, FormErrorMessagePrimitiveProps, FormField, FormFieldContext, FormFieldControlledField, FormFieldController, FormInput, FormInputGroup, FormInputLeftItem, FormInputPrimitive, FormInputProps, FormInputRightItem, FormLabel, FormRoot, FormSelect, FormSelectPrimitive, FormSelectProps, FormSubmit, FormSubscribeToFieldValue, FormSubscribeToFormState, FormTextArea, FormTextAreaPrimitive, FormTextAreaProps, form_parts_d_exports, useFormRootContext, useStrictFormFieldContext };
227
- //# sourceMappingURL=index-RnqeaSJm.d.ts.map
227
+ //# sourceMappingURL=index-DbiE_few.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { DiscriminatedRenderItemProps, PolymorphicPropsStrict } from "@zayne-labs/toolkit-react/utils";
2
+ import { Prettify } from "@zayne-labs/toolkit-type-helpers";
3
+ import * as React from "react";
4
+ import * as react_jsx_runtime34 from "react/jsx-runtime";
5
+
6
+ //#region src/components/common/for/for.d.ts
7
+ type ArrayOrNumber = number | readonly unknown[];
8
+ type GetArrayItemType<TArray extends ArrayOrNumber> = TArray extends readonly unknown[] ? TArray[number] : TArray extends number ? number : unknown;
9
+ type RenderPropFn<TArray extends ArrayOrNumber> = (item: GetArrayItemType<TArray>, index: number, array: Array<GetArrayItemType<TArray>>) => React.ReactNode;
10
+ type ForRenderProps<TArray extends ArrayOrNumber> = DiscriminatedRenderItemProps<RenderPropFn<TArray>>;
11
+ type ForProps<TArray extends ArrayOrNumber> = Prettify<{
12
+ each: TArray;
13
+ fallback?: React.ReactNode;
14
+ } & ForRenderProps<TArray>>;
15
+ declare function For<const TArray extends ArrayOrNumber>(props: ForProps<TArray>): string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null;
16
+ declare function ForWithWrapper<const TArray extends ArrayOrNumber, TElement extends React.ElementType = "ul">(props: PolymorphicPropsStrict<TElement, ForProps<TArray>>): react_jsx_runtime34.JSX.Element;
17
+ //#endregion
18
+ //#region src/components/common/for/getElementList.d.ts
19
+ type GetElementListResult<TVariant extends "base" | "withWrapper"> = TVariant extends "base" ? [typeof For] : [typeof ForWithWrapper];
20
+ declare const getElementList: <TVariant extends "base" | "withWrapper" = "withWrapper">(variant?: TVariant) => GetElementListResult<TVariant>;
21
+ //#endregion
22
+ export { For, ForRenderProps, ForWithWrapper, getElementList };
23
+ //# sourceMappingURL=index-Df39YVRj.d.ts.map