@tanstack/react-form 0.0.10 → 0.0.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"useField.js","sources":["../../src/useField.tsx"],"sourcesContent":["import * as React from 'react'\n//\nimport { useStore } from '@tanstack/react-store'\nimport type {\n DeepKeys,\n DeepValue,\n FieldOptions,\n Narrow,\n} from '@tanstack/form-core'\nimport { FieldApi, functionalUpdate } from '@tanstack/form-core'\nimport { useFormContext, formContext } from './formContext'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FieldApi<TData, TFormData> {\n Field: FieldComponent<TData, TFormData>\n }\n}\n\nexport type UseFieldOptions<TData, TFormData> = FieldOptions<\n TData,\n TFormData\n> & {\n mode?: 'value' | 'array'\n}\n\nexport type UseField<TFormData> = <TField extends DeepKeys<TFormData>>(\n opts?: { name: Narrow<TField> } & UseFieldOptions<\n DeepValue<TFormData, TField>,\n TFormData\n >,\n) => FieldApi<DeepValue<TFormData, TField>, TFormData>\n\nexport function useField<TData, TFormData>(\n opts: UseFieldOptions<TData, TFormData>,\n): FieldApi<TData, TFormData> {\n // Get the form API either manually or from context\n const { formApi, parentFieldName } = useFormContext()\n\n const [fieldApi] = React.useState<FieldApi<TData, TFormData>>(() => {\n const name = (\n typeof opts.index === 'number'\n ? [parentFieldName, opts.index, opts.name]\n : [parentFieldName, opts.name]\n )\n .filter((d) => d !== undefined)\n .join('.')\n\n const api = new FieldApi({ ...opts, form: formApi, name: name as any })\n\n api.Field = Field as any\n\n return api\n })\n\n // Keep options up to date as they are rendered\n fieldApi.update({ ...opts, form: formApi })\n\n useStore(\n fieldApi.store,\n opts.mode === 'array'\n ? (state: any) => {\n return [state.meta, Object.keys(state.value || []).length]\n }\n : undefined,\n )\n\n // Instantiates field meta and removes it when unrendered\n React.useEffect(() => fieldApi.mount(), [fieldApi])\n\n return fieldApi\n}\n\n// export type FieldValue<TFormData, TField> = TFormData extends any[]\n// ? TField extends `[${infer TIndex extends number | 'i'}].${infer TRest}`\n// ? DeepValue<TFormData[TIndex extends 'i' ? number : TIndex], TRest>\n// : TField extends `[${infer TIndex extends number | 'i'}]`\n// ? TFormData[TIndex extends 'i' ? number : TIndex]\n// : never\n// : TField extends `${infer TPrefix}[${infer TIndex extends\n// | number\n// | 'i'}].${infer TRest}`\n// ? DeepValue<\n// DeepValue<TFormData, TPrefix>[TIndex extends 'i' ? number : TIndex],\n// TRest\n// >\n// : TField extends `${infer TPrefix}[${infer TIndex extends number | 'i'}]`\n// ? DeepValue<TFormData, TPrefix>[TIndex extends 'i' ? number : TIndex]\n// : DeepValue<TFormData, TField>\n\nexport type FieldValue<TFormData, TField> = TFormData extends any[]\n ? unknown extends TField\n ? TFormData[number]\n : DeepValue<TFormData[number], TField>\n : DeepValue<TFormData, TField>\n\n// type Test1 = FieldValue<{ foo: { bar: string }[] }, 'foo'>\n// // ^?\n// type Test2 = FieldValue<{ foo: { bar: string }[] }, 'foo[i]'>\n// // ^?\n// type Test3 = FieldValue<{ foo: { bar: string }[] }, 'foo[2].bar'>\n// // ^?\n\nexport type FieldComponent<TParentData, TFormData> = <TField>({\n children,\n ...fieldOptions\n}: {\n children: (\n fieldApi: FieldApi<FieldValue<TParentData, TField>, TFormData>,\n ) => any\n} & Omit<\n UseFieldOptions<FieldValue<TParentData, TField>, TFormData>,\n 'name' | 'index'\n> &\n (TParentData extends any[]\n ? {\n name?: TField extends undefined ? TField : DeepKeys<TParentData>\n index: number\n }\n : {\n name: TField extends undefined ? TField : DeepKeys<TParentData>\n index?: never\n })) => any\n\nexport function Field<TData, TFormData>({\n children,\n ...fieldOptions\n}: {\n children: (fieldApi: FieldApi<TData, TFormData>) => any\n} & UseFieldOptions<TData, TFormData>) {\n const fieldApi = useField(fieldOptions as any)\n\n return (\n <formContext.Provider\n value={{ formApi: fieldApi.form, parentFieldName: fieldApi.name }}\n children={functionalUpdate(children, fieldApi as any)}\n />\n )\n}\n"],"names":["useField","opts","formApi","parentFieldName","useFormContext","fieldApi","React","useState","name","index","filter","d","undefined","join","api","FieldApi","form","Field","update","useStore","store","mode","state","meta","Object","keys","value","length","useEffect","mount","children","fieldOptions","formContext","functionalUpdate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCO,SAASA,QAAT,CACLC,IADK,EAEuB;AAC5B;EACA,MAAM;IAAEC,OAAF;AAAWC,IAAAA,eAAAA;AAAX,GAAA,GAA+BC,0BAAc,EAAnD,CAAA;AAEA,EAAA,MAAM,CAACC,QAAD,CAAA,GAAaC,gBAAK,CAACC,QAAN,CAA2C,MAAM;AAClE,IAAA,MAAMC,IAAI,GAAG,CACX,OAAOP,IAAI,CAACQ,KAAZ,KAAsB,QAAtB,GACI,CAACN,eAAD,EAAkBF,IAAI,CAACQ,KAAvB,EAA8BR,IAAI,CAACO,IAAnC,CADJ,GAEI,CAACL,eAAD,EAAkBF,IAAI,CAACO,IAAvB,CAHO,EAKVE,MALU,CAKFC,CAAD,IAAOA,CAAC,KAAKC,SALV,EAMVC,IANU,CAML,GANK,CAAb,CAAA;AAQA,IAAA,MAAMC,GAAG,GAAG,IAAIC,iBAAJ,CAAa,EAAE,GAAGd,IAAL;AAAWe,MAAAA,IAAI,EAAEd,OAAjB;AAA0BM,MAAAA,IAAI,EAAEA,IAAAA;AAAhC,KAAb,CAAZ,CAAA;IAEAM,GAAG,CAACG,KAAJ,GAAYA,KAAZ,CAAA;AAEA,IAAA,OAAOH,GAAP,CAAA;GAbiB,CAAnB,CAJ4B;;AAqB5BT,EAAAA,QAAQ,CAACa,MAAT,CAAgB,EAAE,GAAGjB,IAAL;AAAWe,IAAAA,IAAI,EAAEd,OAAAA;GAAjC,CAAA,CAAA;AAEAiB,EAAAA,mBAAQ,CACNd,QAAQ,CAACe,KADH,EAENnB,IAAI,CAACoB,IAAL,KAAc,OAAd,GACKC,KAAD,IAAgB;AACd,IAAA,OAAO,CAACA,KAAK,CAACC,IAAP,EAAaC,MAAM,CAACC,IAAP,CAAYH,KAAK,CAACI,KAAN,IAAe,EAA3B,CAAA,CAA+BC,MAA5C,CAAP,CAAA;AACD,GAHL,GAIIf,SANE,CAAR,CAvB4B;;EAiC5BN,gBAAK,CAACsB,SAAN,CAAgB,MAAMvB,QAAQ,CAACwB,KAAT,EAAtB,EAAwC,CAACxB,QAAD,CAAxC,CAAA,CAAA;AAEA,EAAA,OAAOA,QAAP,CAAA;AACD;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoCO,SAASY,KAAT,CAAiC;EACtCa,QADsC;EAEtC,GAAGC,YAAAA;AAFmC,CAAjC,EAKgC;AACrC,EAAA,MAAM1B,QAAQ,GAAGL,QAAQ,CAAC+B,YAAD,CAAzB,CAAA;EAEA,oBACEzB,gBAAA,CAAA,aAAA,CAAC0B,uBAAD,CAAa,QAAb,EAAA;AACE,IAAA,KAAK,EAAE;MAAE9B,OAAO,EAAEG,QAAQ,CAACW,IAApB;MAA0Bb,eAAe,EAAEE,QAAQ,CAACG,IAAAA;KAD7D;AAEE,IAAA,QAAQ,EAAEyB,yBAAgB,CAACH,QAAD,EAAWzB,QAAX,CAAA;GAH9B,CAAA,CAAA;AAMD;;;;;"}
1
+ {"version":3,"file":"useField.js","sources":["../../src/useField.tsx"],"sourcesContent":["import * as React from 'react'\n//\nimport { useStore } from '@tanstack/react-store'\nimport type {\n DeepKeys,\n DeepValue,\n FieldOptions,\n Narrow,\n} from '@tanstack/form-core'\nimport { FieldApi, functionalUpdate } from '@tanstack/form-core'\nimport { useFormContext, formContext } from './formContext'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FieldApi<TData, TFormData> {\n Field: FieldComponent<TData, TFormData>\n }\n}\n\nexport type UseFieldOptions<TData, TFormData> = FieldOptions<\n TData,\n TFormData\n> & {\n mode?: 'value' | 'array'\n}\n\nexport type UseField<TFormData> = <TField extends DeepKeys<TFormData>>(\n opts?: { name: Narrow<TField> } & UseFieldOptions<\n DeepValue<TFormData, TField>,\n TFormData\n >,\n) => FieldApi<DeepValue<TFormData, TField>, TFormData>\n\nexport function useField<TData, TFormData>(\n opts: UseFieldOptions<TData, TFormData>,\n): FieldApi<TData, TFormData> {\n // Get the form API either manually or from context\n const { formApi, parentFieldName } = useFormContext()\n\n const [fieldApi] = React.useState<FieldApi<TData, TFormData>>(() => {\n const name = (\n typeof opts.index === 'number'\n ? [parentFieldName, opts.index, opts.name]\n : [parentFieldName, opts.name]\n )\n .filter((d) => d !== undefined)\n .join('.')\n\n const api = new FieldApi({ ...opts, form: formApi, name: name as any })\n\n api.Field = Field as any\n\n return api\n })\n\n // Keep options up to date as they are rendered\n fieldApi.update({ ...opts, form: formApi })\n\n useStore(\n fieldApi.store as any,\n opts.mode === 'array'\n ? (state: any) => {\n return [state.meta, Object.keys(state.value || []).length]\n }\n : undefined,\n )\n\n // Instantiates field meta and removes it when unrendered\n React.useEffect(() => fieldApi.mount(), [fieldApi])\n\n return fieldApi\n}\n\n// export type FieldValue<TFormData, TField> = TFormData extends any[]\n// ? TField extends `[${infer TIndex extends number | 'i'}].${infer TRest}`\n// ? DeepValue<TFormData[TIndex extends 'i' ? number : TIndex], TRest>\n// : TField extends `[${infer TIndex extends number | 'i'}]`\n// ? TFormData[TIndex extends 'i' ? number : TIndex]\n// : never\n// : TField extends `${infer TPrefix}[${infer TIndex extends\n// | number\n// | 'i'}].${infer TRest}`\n// ? DeepValue<\n// DeepValue<TFormData, TPrefix>[TIndex extends 'i' ? number : TIndex],\n// TRest\n// >\n// : TField extends `${infer TPrefix}[${infer TIndex extends number | 'i'}]`\n// ? DeepValue<TFormData, TPrefix>[TIndex extends 'i' ? number : TIndex]\n// : DeepValue<TFormData, TField>\n\nexport type FieldValue<TFormData, TField> = TFormData extends any[]\n ? unknown extends TField\n ? TFormData[number]\n : DeepValue<TFormData[number], TField>\n : DeepValue<TFormData, TField>\n\n// type Test1 = FieldValue<{ foo: { bar: string }[] }, 'foo'>\n// // ^?\n// type Test2 = FieldValue<{ foo: { bar: string }[] }, 'foo[i]'>\n// // ^?\n// type Test3 = FieldValue<{ foo: { bar: string }[] }, 'foo[2].bar'>\n// // ^?\n\nexport type FieldComponent<TParentData, TFormData> = <TField>({\n children,\n ...fieldOptions\n}: {\n children: (\n fieldApi: FieldApi<FieldValue<TParentData, TField>, TFormData>,\n ) => any\n} & Omit<\n UseFieldOptions<FieldValue<TParentData, TField>, TFormData>,\n 'name' | 'index'\n> &\n (TParentData extends any[]\n ? {\n name?: TField extends undefined ? TField : DeepKeys<TParentData>\n index: number\n }\n : {\n name: TField extends undefined ? TField : DeepKeys<TParentData>\n index?: never\n })) => any\n\nexport function Field<TData, TFormData>({\n children,\n ...fieldOptions\n}: {\n children: (fieldApi: FieldApi<TData, TFormData>) => any\n} & UseFieldOptions<TData, TFormData>) {\n const fieldApi = useField(fieldOptions as any)\n\n return (\n <formContext.Provider\n value={{ formApi: fieldApi.form, parentFieldName: fieldApi.name }}\n children={functionalUpdate(children, fieldApi as any)}\n />\n )\n}\n"],"names":["useField","opts","formApi","parentFieldName","useFormContext","fieldApi","React","useState","name","index","filter","d","undefined","join","api","FieldApi","form","Field","update","useStore","store","mode","state","meta","Object","keys","value","length","useEffect","mount","children","fieldOptions","formContext","functionalUpdate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCO,SAASA,QAAT,CACLC,IADK,EAEuB;AAC5B;EACA,MAAM;IAAEC,OAAF;AAAWC,IAAAA,eAAAA;AAAX,GAAA,GAA+BC,0BAAc,EAAnD,CAAA;AAEA,EAAA,MAAM,CAACC,QAAD,CAAA,GAAaC,gBAAK,CAACC,QAAN,CAA2C,MAAM;AAClE,IAAA,MAAMC,IAAI,GAAG,CACX,OAAOP,IAAI,CAACQ,KAAZ,KAAsB,QAAtB,GACI,CAACN,eAAD,EAAkBF,IAAI,CAACQ,KAAvB,EAA8BR,IAAI,CAACO,IAAnC,CADJ,GAEI,CAACL,eAAD,EAAkBF,IAAI,CAACO,IAAvB,CAHO,EAKVE,MALU,CAKFC,CAAD,IAAOA,CAAC,KAAKC,SALV,EAMVC,IANU,CAML,GANK,CAAb,CAAA;AAQA,IAAA,MAAMC,GAAG,GAAG,IAAIC,iBAAJ,CAAa,EAAE,GAAGd,IAAL;AAAWe,MAAAA,IAAI,EAAEd,OAAjB;AAA0BM,MAAAA,IAAI,EAAEA,IAAAA;AAAhC,KAAb,CAAZ,CAAA;IAEAM,GAAG,CAACG,KAAJ,GAAYA,KAAZ,CAAA;AAEA,IAAA,OAAOH,GAAP,CAAA;GAbiB,CAAnB,CAJ4B;;AAqB5BT,EAAAA,QAAQ,CAACa,MAAT,CAAgB,EAAE,GAAGjB,IAAL;AAAWe,IAAAA,IAAI,EAAEd,OAAAA;GAAjC,CAAA,CAAA;AAEAiB,EAAAA,mBAAQ,CACNd,QAAQ,CAACe,KADH,EAENnB,IAAI,CAACoB,IAAL,KAAc,OAAd,GACKC,KAAD,IAAgB;AACd,IAAA,OAAO,CAACA,KAAK,CAACC,IAAP,EAAaC,MAAM,CAACC,IAAP,CAAYH,KAAK,CAACI,KAAN,IAAe,EAA3B,CAAA,CAA+BC,MAA5C,CAAP,CAAA;AACD,GAHL,GAIIf,SANE,CAAR,CAvB4B;;EAiC5BN,gBAAK,CAACsB,SAAN,CAAgB,MAAMvB,QAAQ,CAACwB,KAAT,EAAtB,EAAwC,CAACxB,QAAD,CAAxC,CAAA,CAAA;AAEA,EAAA,OAAOA,QAAP,CAAA;AACD;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoCO,SAASY,KAAT,CAAiC;EACtCa,QADsC;EAEtC,GAAGC,YAAAA;AAFmC,CAAjC,EAKgC;AACrC,EAAA,MAAM1B,QAAQ,GAAGL,QAAQ,CAAC+B,YAAD,CAAzB,CAAA;EAEA,oBACEzB,gBAAA,CAAA,aAAA,CAAC0B,uBAAD,CAAa,QAAb,EAAA;AACE,IAAA,KAAK,EAAE;MAAE9B,OAAO,EAAEG,QAAQ,CAACW,IAApB;MAA0Bb,eAAe,EAAEE,QAAQ,CAACG,IAAAA;KAD7D;AAEE,IAAA,QAAQ,EAAEyB,yBAAgB,CAACH,QAAD,EAAWzB,QAAX,CAAA;GAH9B,CAAA,CAAA;AAMD;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.js","sources":["../../src/useForm.tsx"],"sourcesContent":["import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\n\nexport type FormSubmitEvent = React.FormEvent<HTMLFormElement>\n\ndeclare module '@tanstack/form-core' {\n interface Register {\n FormSubmitEvent: FormSubmitEvent\n }\n\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n getFormProps: () => FormProps\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children:\n | ((state: NoInfer<TSelected>) => React.ReactNode)\n | React.ReactNode\n }) => any\n }\n}\n\nexport type FormProps = {\n onSubmit: (e: FormSubmitEvent) => void\n disabled: boolean\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = React.useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.getFormProps = () => {\n return {\n onSubmit: formApi.handleSubmit,\n disabled: api.state.isSubmitting,\n }\n }\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n formApi.update(opts)\n\n return formApi as any\n}\n"],"names":["useForm","opts","formApi","React","useState","api","FormApi","Provider","props","formContext","_extends","getFormProps","onSubmit","handleSubmit","disabled","state","isSubmitting","Field","useField","useStore","selector","store","Subscribe","functionalUpdate","children","update"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAsCO,SAASA,OAAT,CAAwBC,IAAxB,EAAmE;AACxE,EAAA,MAAM,CAACC,OAAD,CAAA,GAAYC,yBAAK,CAACC,QAAN,CAAe,MAAM;AACrC;AACA,IAAA,MAAMC,GAAG,GAAG,IAAIC,gBAAJ,CAAmBL,IAAnB,CAAZ,CAAA;;IAEAI,GAAG,CAACE,QAAJ,GAAgBC,KAAD,iBACbL,wCAACM,uBAAD,CAAa,QAAb,EAAAC,oCAAA,CAAA,EAAA,EAA0BF,KAA1B,EAAA;AAAiC,MAAA,KAAK,EAAE;AAAEN,QAAAA,OAAO,EAAEG,GAAAA;AAAX,OAAA;KAD1C,CAAA,CAAA,CAAA;;IAGAA,GAAG,CAACM,YAAJ,GAAmB,MAAM;MACvB,OAAO;QACLC,QAAQ,EAAEV,OAAO,CAACW,YADb;AAELC,QAAAA,QAAQ,EAAET,GAAG,CAACU,KAAJ,CAAUC,YAAAA;OAFtB,CAAA;KADF,CAAA;;IAMAX,GAAG,CAACY,KAAJ,GAAYA,cAAZ,CAAA;IACAZ,GAAG,CAACa,QAAJ,GAAeA,iBAAf,CAAA;;IACAb,GAAG,CAACc,QAAJ,GAAe;AAEbC,IAAAA,QAFa,KAGV;AACH;AACA,MAAA,OAAOD,mBAAQ,CAACd,GAAG,CAACgB,KAAL,EAAYD,QAAZ,CAAf,CAAA;KALF,CAAA;;IAOAf,GAAG,CAACiB,SAAJ,GAAgB;AAEdd,IAAAA,KAFc,KAGX;AACH,MAAA,OAAOe,yBAAgB,CACrBf,KAAK,CAACgB,QADe;MAGrBL,mBAAQ,CAACd,GAAG,CAACgB,KAAL,EAAYb,KAAK,CAACY,QAAlB,CAHa,CAAvB,CAAA;KAJF,CAAA;;AAWA,IAAA,OAAOf,GAAP,CAAA;AACD,GAlCiB,CAAlB,CAAA;AAoCAH,EAAAA,OAAO,CAACiB,QAAR,CAAkBJ,KAAD,IAAWA,KAAK,CAACC,YAAlC,CAAA,CAAA;EACAd,OAAO,CAACuB,MAAR,CAAexB,IAAf,CAAA,CAAA;AAEA,EAAA,OAAOC,OAAP,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"useForm.js","sources":["../../src/useForm.tsx"],"sourcesContent":["import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\n\nexport type FormSubmitEvent = React.FormEvent<HTMLFormElement>\n\ndeclare module '@tanstack/form-core' {\n interface Register {\n FormSubmitEvent: FormSubmitEvent\n }\n\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n getFormProps: () => FormProps\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children:\n | ((state: NoInfer<TSelected>) => React.ReactNode)\n | React.ReactNode\n }) => any\n }\n}\n\nexport type FormProps = {\n onSubmit: (e: FormSubmitEvent) => void\n disabled: boolean\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = React.useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.getFormProps = () => {\n return {\n onSubmit: formApi.handleSubmit,\n disabled: api.state.isSubmitting,\n }\n }\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store as any, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store as any, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n formApi.update(opts)\n\n return formApi as any\n}\n"],"names":["useForm","opts","formApi","React","useState","api","FormApi","Provider","props","formContext","_extends","getFormProps","onSubmit","handleSubmit","disabled","state","isSubmitting","Field","useField","useStore","selector","store","Subscribe","functionalUpdate","children","update"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAsCO,SAASA,OAAT,CAAwBC,IAAxB,EAAmE;AACxE,EAAA,MAAM,CAACC,OAAD,CAAA,GAAYC,yBAAK,CAACC,QAAN,CAAe,MAAM;AACrC;AACA,IAAA,MAAMC,GAAG,GAAG,IAAIC,gBAAJ,CAAmBL,IAAnB,CAAZ,CAAA;;IAEAI,GAAG,CAACE,QAAJ,GAAgBC,KAAD,iBACbL,wCAACM,uBAAD,CAAa,QAAb,EAAAC,oCAAA,CAAA,EAAA,EAA0BF,KAA1B,EAAA;AAAiC,MAAA,KAAK,EAAE;AAAEN,QAAAA,OAAO,EAAEG,GAAAA;AAAX,OAAA;KAD1C,CAAA,CAAA,CAAA;;IAGAA,GAAG,CAACM,YAAJ,GAAmB,MAAM;MACvB,OAAO;QACLC,QAAQ,EAAEV,OAAO,CAACW,YADb;AAELC,QAAAA,QAAQ,EAAET,GAAG,CAACU,KAAJ,CAAUC,YAAAA;OAFtB,CAAA;KADF,CAAA;;IAMAX,GAAG,CAACY,KAAJ,GAAYA,cAAZ,CAAA;IACAZ,GAAG,CAACa,QAAJ,GAAeA,iBAAf,CAAA;;IACAb,GAAG,CAACc,QAAJ,GAAe;AAEbC,IAAAA,QAFa,KAGV;AACH;AACA,MAAA,OAAOD,mBAAQ,CAACd,GAAG,CAACgB,KAAL,EAAmBD,QAAnB,CAAf,CAAA;KALF,CAAA;;IAOAf,GAAG,CAACiB,SAAJ,GAAgB;AAEdd,IAAAA,KAFc,KAGX;AACH,MAAA,OAAOe,yBAAgB,CACrBf,KAAK,CAACgB,QADe;MAGrBL,mBAAQ,CAACd,GAAG,CAACgB,KAAL,EAAmBb,KAAK,CAACY,QAAzB,CAHa,CAAvB,CAAA;KAJF,CAAA;;AAWA,IAAA,OAAOf,GAAP,CAAA;AACD,GAlCiB,CAAlB,CAAA;AAoCAH,EAAAA,OAAO,CAACiB,QAAR,CAAkBJ,KAAD,IAAWA,KAAK,CAACC,YAAlC,CAAA,CAAA;EACAd,OAAO,CAACuB,MAAR,CAAexB,IAAf,CAAA,CAAA;AAEA,EAAA,OAAOC,OAAP,CAAA;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/formContext.ts","../../src/useField.tsx","../../src/useForm.tsx","../../src/createFormFactory.ts"],"sourcesContent":["import type { FormApi } from '@tanstack/form-core'\nimport * as React from 'react'\n\nexport const formContext = React.createContext<{\n formApi: FormApi<any>\n parentFieldName?: string\n} | null>(null!)\n\nexport function useFormContext() {\n const formApi = React.useContext(formContext)\n\n if (!formApi) {\n throw new Error(`You are trying to use the form API outside of a form!`)\n }\n\n return formApi\n}\n","import * as React from 'react'\n//\nimport { useStore } from '@tanstack/react-store'\nimport type {\n DeepKeys,\n DeepValue,\n FieldOptions,\n Narrow,\n} from '@tanstack/form-core'\nimport { FieldApi, functionalUpdate } from '@tanstack/form-core'\nimport { useFormContext, formContext } from './formContext'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FieldApi<TData, TFormData> {\n Field: FieldComponent<TData, TFormData>\n }\n}\n\nexport type UseFieldOptions<TData, TFormData> = FieldOptions<\n TData,\n TFormData\n> & {\n mode?: 'value' | 'array'\n}\n\nexport type UseField<TFormData> = <TField extends DeepKeys<TFormData>>(\n opts?: { name: Narrow<TField> } & UseFieldOptions<\n DeepValue<TFormData, TField>,\n TFormData\n >,\n) => FieldApi<DeepValue<TFormData, TField>, TFormData>\n\nexport function useField<TData, TFormData>(\n opts: UseFieldOptions<TData, TFormData>,\n): FieldApi<TData, TFormData> {\n // Get the form API either manually or from context\n const { formApi, parentFieldName } = useFormContext()\n\n const [fieldApi] = React.useState<FieldApi<TData, TFormData>>(() => {\n const name = (\n typeof opts.index === 'number'\n ? [parentFieldName, opts.index, opts.name]\n : [parentFieldName, opts.name]\n )\n .filter((d) => d !== undefined)\n .join('.')\n\n const api = new FieldApi({ ...opts, form: formApi, name: name as any })\n\n api.Field = Field as any\n\n return api\n })\n\n // Keep options up to date as they are rendered\n fieldApi.update({ ...opts, form: formApi })\n\n useStore(\n fieldApi.store,\n opts.mode === 'array'\n ? (state: any) => {\n return [state.meta, Object.keys(state.value || []).length]\n }\n : undefined,\n )\n\n // Instantiates field meta and removes it when unrendered\n React.useEffect(() => fieldApi.mount(), [fieldApi])\n\n return fieldApi\n}\n\n// export type FieldValue<TFormData, TField> = TFormData extends any[]\n// ? TField extends `[${infer TIndex extends number | 'i'}].${infer TRest}`\n// ? DeepValue<TFormData[TIndex extends 'i' ? number : TIndex], TRest>\n// : TField extends `[${infer TIndex extends number | 'i'}]`\n// ? TFormData[TIndex extends 'i' ? number : TIndex]\n// : never\n// : TField extends `${infer TPrefix}[${infer TIndex extends\n// | number\n// | 'i'}].${infer TRest}`\n// ? DeepValue<\n// DeepValue<TFormData, TPrefix>[TIndex extends 'i' ? number : TIndex],\n// TRest\n// >\n// : TField extends `${infer TPrefix}[${infer TIndex extends number | 'i'}]`\n// ? DeepValue<TFormData, TPrefix>[TIndex extends 'i' ? number : TIndex]\n// : DeepValue<TFormData, TField>\n\nexport type FieldValue<TFormData, TField> = TFormData extends any[]\n ? unknown extends TField\n ? TFormData[number]\n : DeepValue<TFormData[number], TField>\n : DeepValue<TFormData, TField>\n\n// type Test1 = FieldValue<{ foo: { bar: string }[] }, 'foo'>\n// // ^?\n// type Test2 = FieldValue<{ foo: { bar: string }[] }, 'foo[i]'>\n// // ^?\n// type Test3 = FieldValue<{ foo: { bar: string }[] }, 'foo[2].bar'>\n// // ^?\n\nexport type FieldComponent<TParentData, TFormData> = <TField>({\n children,\n ...fieldOptions\n}: {\n children: (\n fieldApi: FieldApi<FieldValue<TParentData, TField>, TFormData>,\n ) => any\n} & Omit<\n UseFieldOptions<FieldValue<TParentData, TField>, TFormData>,\n 'name' | 'index'\n> &\n (TParentData extends any[]\n ? {\n name?: TField extends undefined ? TField : DeepKeys<TParentData>\n index: number\n }\n : {\n name: TField extends undefined ? TField : DeepKeys<TParentData>\n index?: never\n })) => any\n\nexport function Field<TData, TFormData>({\n children,\n ...fieldOptions\n}: {\n children: (fieldApi: FieldApi<TData, TFormData>) => any\n} & UseFieldOptions<TData, TFormData>) {\n const fieldApi = useField(fieldOptions as any)\n\n return (\n <formContext.Provider\n value={{ formApi: fieldApi.form, parentFieldName: fieldApi.name }}\n children={functionalUpdate(children, fieldApi as any)}\n />\n )\n}\n","import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\n\nexport type FormSubmitEvent = React.FormEvent<HTMLFormElement>\n\ndeclare module '@tanstack/form-core' {\n interface Register {\n FormSubmitEvent: FormSubmitEvent\n }\n\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n getFormProps: () => FormProps\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children:\n | ((state: NoInfer<TSelected>) => React.ReactNode)\n | React.ReactNode\n }) => any\n }\n}\n\nexport type FormProps = {\n onSubmit: (e: FormSubmitEvent) => void\n disabled: boolean\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = React.useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.getFormProps = () => {\n return {\n onSubmit: formApi.handleSubmit,\n disabled: api.state.isSubmitting,\n }\n }\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n formApi.update(opts)\n\n return formApi as any\n}\n","import type { FormApi, FormOptions } from '@tanstack/form-core'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { useForm } from './useForm'\n\nexport type FormFactory<TFormData> = {\n useForm: (opts?: FormOptions<TFormData>) => FormApi<TFormData>\n useField: UseField<TFormData>\n Field: FieldComponent<TFormData, TFormData>\n}\n\nexport function createFormFactory<TFormData>(\n defaultOpts?: FormOptions<TFormData>,\n): FormFactory<TFormData> {\n return {\n useForm: (opts) => {\n return useForm<TFormData>({ ...defaultOpts, ...opts } as any) as any\n },\n useField: useField as any,\n Field: Field as any,\n }\n}\n"],"names":["formContext","React","createContext","useFormContext","formApi","useContext","Error","useField","opts","parentFieldName","fieldApi","useState","name","index","filter","d","undefined","join","api","FieldApi","form","Field","update","useStore","store","mode","state","meta","Object","keys","value","length","useEffect","mount","children","fieldOptions","functionalUpdate","useForm","FormApi","Provider","props","getFormProps","onSubmit","handleSubmit","disabled","isSubmitting","selector","Subscribe","createFormFactory","defaultOpts"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/formContext.ts","../../src/useField.tsx","../../src/useForm.tsx","../../src/createFormFactory.ts"],"sourcesContent":["import type { FormApi } from '@tanstack/form-core'\nimport * as React from 'react'\n\nexport const formContext = React.createContext<{\n formApi: FormApi<any>\n parentFieldName?: string\n} | null>(null!)\n\nexport function useFormContext() {\n const formApi = React.useContext(formContext)\n\n if (!formApi) {\n throw new Error(`You are trying to use the form API outside of a form!`)\n }\n\n return formApi\n}\n","import * as React from 'react'\n//\nimport { useStore } from '@tanstack/react-store'\nimport type {\n DeepKeys,\n DeepValue,\n FieldOptions,\n Narrow,\n} from '@tanstack/form-core'\nimport { FieldApi, functionalUpdate } from '@tanstack/form-core'\nimport { useFormContext, formContext } from './formContext'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FieldApi<TData, TFormData> {\n Field: FieldComponent<TData, TFormData>\n }\n}\n\nexport type UseFieldOptions<TData, TFormData> = FieldOptions<\n TData,\n TFormData\n> & {\n mode?: 'value' | 'array'\n}\n\nexport type UseField<TFormData> = <TField extends DeepKeys<TFormData>>(\n opts?: { name: Narrow<TField> } & UseFieldOptions<\n DeepValue<TFormData, TField>,\n TFormData\n >,\n) => FieldApi<DeepValue<TFormData, TField>, TFormData>\n\nexport function useField<TData, TFormData>(\n opts: UseFieldOptions<TData, TFormData>,\n): FieldApi<TData, TFormData> {\n // Get the form API either manually or from context\n const { formApi, parentFieldName } = useFormContext()\n\n const [fieldApi] = React.useState<FieldApi<TData, TFormData>>(() => {\n const name = (\n typeof opts.index === 'number'\n ? [parentFieldName, opts.index, opts.name]\n : [parentFieldName, opts.name]\n )\n .filter((d) => d !== undefined)\n .join('.')\n\n const api = new FieldApi({ ...opts, form: formApi, name: name as any })\n\n api.Field = Field as any\n\n return api\n })\n\n // Keep options up to date as they are rendered\n fieldApi.update({ ...opts, form: formApi })\n\n useStore(\n fieldApi.store as any,\n opts.mode === 'array'\n ? (state: any) => {\n return [state.meta, Object.keys(state.value || []).length]\n }\n : undefined,\n )\n\n // Instantiates field meta and removes it when unrendered\n React.useEffect(() => fieldApi.mount(), [fieldApi])\n\n return fieldApi\n}\n\n// export type FieldValue<TFormData, TField> = TFormData extends any[]\n// ? TField extends `[${infer TIndex extends number | 'i'}].${infer TRest}`\n// ? DeepValue<TFormData[TIndex extends 'i' ? number : TIndex], TRest>\n// : TField extends `[${infer TIndex extends number | 'i'}]`\n// ? TFormData[TIndex extends 'i' ? number : TIndex]\n// : never\n// : TField extends `${infer TPrefix}[${infer TIndex extends\n// | number\n// | 'i'}].${infer TRest}`\n// ? DeepValue<\n// DeepValue<TFormData, TPrefix>[TIndex extends 'i' ? number : TIndex],\n// TRest\n// >\n// : TField extends `${infer TPrefix}[${infer TIndex extends number | 'i'}]`\n// ? DeepValue<TFormData, TPrefix>[TIndex extends 'i' ? number : TIndex]\n// : DeepValue<TFormData, TField>\n\nexport type FieldValue<TFormData, TField> = TFormData extends any[]\n ? unknown extends TField\n ? TFormData[number]\n : DeepValue<TFormData[number], TField>\n : DeepValue<TFormData, TField>\n\n// type Test1 = FieldValue<{ foo: { bar: string }[] }, 'foo'>\n// // ^?\n// type Test2 = FieldValue<{ foo: { bar: string }[] }, 'foo[i]'>\n// // ^?\n// type Test3 = FieldValue<{ foo: { bar: string }[] }, 'foo[2].bar'>\n// // ^?\n\nexport type FieldComponent<TParentData, TFormData> = <TField>({\n children,\n ...fieldOptions\n}: {\n children: (\n fieldApi: FieldApi<FieldValue<TParentData, TField>, TFormData>,\n ) => any\n} & Omit<\n UseFieldOptions<FieldValue<TParentData, TField>, TFormData>,\n 'name' | 'index'\n> &\n (TParentData extends any[]\n ? {\n name?: TField extends undefined ? TField : DeepKeys<TParentData>\n index: number\n }\n : {\n name: TField extends undefined ? TField : DeepKeys<TParentData>\n index?: never\n })) => any\n\nexport function Field<TData, TFormData>({\n children,\n ...fieldOptions\n}: {\n children: (fieldApi: FieldApi<TData, TFormData>) => any\n} & UseFieldOptions<TData, TFormData>) {\n const fieldApi = useField(fieldOptions as any)\n\n return (\n <formContext.Provider\n value={{ formApi: fieldApi.form, parentFieldName: fieldApi.name }}\n children={functionalUpdate(children, fieldApi as any)}\n />\n )\n}\n","import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\n\nexport type FormSubmitEvent = React.FormEvent<HTMLFormElement>\n\ndeclare module '@tanstack/form-core' {\n interface Register {\n FormSubmitEvent: FormSubmitEvent\n }\n\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n getFormProps: () => FormProps\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children:\n | ((state: NoInfer<TSelected>) => React.ReactNode)\n | React.ReactNode\n }) => any\n }\n}\n\nexport type FormProps = {\n onSubmit: (e: FormSubmitEvent) => void\n disabled: boolean\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = React.useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.getFormProps = () => {\n return {\n onSubmit: formApi.handleSubmit,\n disabled: api.state.isSubmitting,\n }\n }\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store as any, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store as any, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n formApi.update(opts)\n\n return formApi as any\n}\n","import type { FormApi, FormOptions } from '@tanstack/form-core'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { useForm } from './useForm'\n\nexport type FormFactory<TFormData> = {\n useForm: (opts?: FormOptions<TFormData>) => FormApi<TFormData>\n useField: UseField<TFormData>\n Field: FieldComponent<TFormData, TFormData>\n}\n\nexport function createFormFactory<TFormData>(\n defaultOpts?: FormOptions<TFormData>,\n): FormFactory<TFormData> {\n return {\n useForm: (opts) => {\n return useForm<TFormData>({ ...defaultOpts, ...opts } as any) as any\n },\n useField: useField as any,\n Field: Field as any,\n }\n}\n"],"names":["formContext","React","createContext","useFormContext","formApi","useContext","Error","useField","opts","parentFieldName","fieldApi","useState","name","index","filter","d","undefined","join","api","FieldApi","form","Field","update","useStore","store","mode","state","meta","Object","keys","value","length","useEffect","mount","children","fieldOptions","functionalUpdate","useForm","FormApi","Provider","props","getFormProps","onSubmit","handleSubmit","disabled","isSubmitting","selector","Subscribe","createFormFactory","defaultOpts"],"mappings":"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"}
@@ -2669,7 +2669,7 @@ var drawChart = (function (exports) {
2669
2669
  </script>
2670
2670
  <script>
2671
2671
  /*<!--*/
2672
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"name":"node_modules/.pnpm","children":[{"name":"@tanstack+store@0.0.1-beta.84/node_modules/@tanstack/store/build/esm/index.js","uid":"5ac5-25"},{"name":"@tanstack+react-store@0.0.1-beta.84_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js","uid":"5ac5-31"}]},{"name":"packages","children":[{"name":"form-core/build/esm/index.js","uid":"5ac5-27"},{"name":"react-form/src","children":[{"uid":"5ac5-33","name":"formContext.ts"},{"uid":"5ac5-35","name":"useField.tsx"},{"uid":"5ac5-37","name":"useForm.tsx"},{"uid":"5ac5-39","name":"createFormFactory.ts"},{"uid":"5ac5-41","name":"index.ts"}]}]},{"uid":"5ac5-29","name":"\u0000rollupPluginBabelHelpers.js"}]}],"isRoot":true},"nodeParts":{"5ac5-25":{"renderedLength":1288,"gzipLength":497,"brotliLength":0,"mainUid":"5ac5-24"},"5ac5-27":{"renderedLength":23508,"gzipLength":5149,"brotliLength":0,"mainUid":"5ac5-26"},"5ac5-29":{"renderedLength":431,"gzipLength":240,"brotliLength":0,"mainUid":"5ac5-28"},"5ac5-31":{"renderedLength":978,"gzipLength":456,"brotliLength":0,"mainUid":"5ac5-30"},"5ac5-33":{"renderedLength":296,"gzipLength":200,"brotliLength":0,"mainUid":"5ac5-32"},"5ac5-35":{"renderedLength":2096,"gzipLength":779,"brotliLength":0,"mainUid":"5ac5-34"},"5ac5-37":{"renderedLength":1070,"gzipLength":437,"brotliLength":0,"mainUid":"5ac5-36"},"5ac5-39":{"renderedLength":217,"gzipLength":138,"brotliLength":0,"mainUid":"5ac5-38"},"5ac5-41":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"5ac5-40"}},"nodeMetas":{"5ac5-24":{"id":"/node_modules/.pnpm/@tanstack+store@0.0.1-beta.84/node_modules/@tanstack/store/build/esm/index.js","moduleParts":{"index.production.js":"5ac5-25"},"imported":[],"importedBy":[{"uid":"5ac5-26"},{"uid":"5ac5-30"}]},"5ac5-26":{"id":"/packages/form-core/build/esm/index.js","moduleParts":{"index.production.js":"5ac5-27"},"imported":[{"uid":"5ac5-24"}],"importedBy":[{"uid":"5ac5-40"},{"uid":"5ac5-36"},{"uid":"5ac5-34"}]},"5ac5-28":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"5ac5-29"},"imported":[],"importedBy":[{"uid":"5ac5-36"}]},"5ac5-30":{"id":"/node_modules/.pnpm/@tanstack+react-store@0.0.1-beta.84_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js","moduleParts":{"index.production.js":"5ac5-31"},"imported":[{"uid":"5ac5-43"},{"uid":"5ac5-24"}],"importedBy":[{"uid":"5ac5-36"},{"uid":"5ac5-34"}]},"5ac5-32":{"id":"/packages/react-form/src/formContext.ts","moduleParts":{"index.production.js":"5ac5-33"},"imported":[{"uid":"5ac5-42"}],"importedBy":[{"uid":"5ac5-36"},{"uid":"5ac5-34"}]},"5ac5-34":{"id":"/packages/react-form/src/useField.tsx","moduleParts":{"index.production.js":"5ac5-35"},"imported":[{"uid":"5ac5-42"},{"uid":"5ac5-30"},{"uid":"5ac5-26"},{"uid":"5ac5-32"}],"importedBy":[{"uid":"5ac5-40"},{"uid":"5ac5-36"},{"uid":"5ac5-38"}]},"5ac5-36":{"id":"/packages/react-form/src/useForm.tsx","moduleParts":{"index.production.js":"5ac5-37"},"imported":[{"uid":"5ac5-28"},{"uid":"5ac5-26"},{"uid":"5ac5-30"},{"uid":"5ac5-42"},{"uid":"5ac5-34"},{"uid":"5ac5-32"}],"importedBy":[{"uid":"5ac5-40"},{"uid":"5ac5-38"}]},"5ac5-38":{"id":"/packages/react-form/src/createFormFactory.ts","moduleParts":{"index.production.js":"5ac5-39"},"imported":[{"uid":"5ac5-34"},{"uid":"5ac5-36"}],"importedBy":[{"uid":"5ac5-40"}]},"5ac5-40":{"id":"/packages/react-form/src/index.ts","moduleParts":{"index.production.js":"5ac5-41"},"imported":[{"uid":"5ac5-26"},{"uid":"5ac5-36"},{"uid":"5ac5-34"},{"uid":"5ac5-38"}],"importedBy":[],"isEntry":true},"5ac5-42":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"5ac5-36"},{"uid":"5ac5-34"},{"uid":"5ac5-32"}],"isExternal":true},"5ac5-43":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"5ac5-30"}],"isExternal":true}},"env":{"rollup":"2.78.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
2672
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"name":"node_modules/.pnpm","children":[{"name":"@tanstack+store@0.0.1-beta.89/node_modules/@tanstack/store/build/esm/index.js","uid":"90cf-25"},{"name":"@tanstack+react-store@0.0.1-beta.85_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js","uid":"90cf-31"}]},{"name":"packages","children":[{"name":"form-core/build/esm/index.js","uid":"90cf-27"},{"name":"react-form/src","children":[{"uid":"90cf-33","name":"formContext.ts"},{"uid":"90cf-35","name":"useField.tsx"},{"uid":"90cf-37","name":"useForm.tsx"},{"uid":"90cf-39","name":"createFormFactory.ts"},{"uid":"90cf-41","name":"index.ts"}]}]},{"uid":"90cf-29","name":"\u0000rollupPluginBabelHelpers.js"}]}],"isRoot":true},"nodeParts":{"90cf-25":{"renderedLength":1313,"gzipLength":489,"brotliLength":0,"mainUid":"90cf-24"},"90cf-27":{"renderedLength":23129,"gzipLength":5079,"brotliLength":0,"mainUid":"90cf-26"},"90cf-29":{"renderedLength":431,"gzipLength":240,"brotliLength":0,"mainUid":"90cf-28"},"90cf-31":{"renderedLength":978,"gzipLength":456,"brotliLength":0,"mainUid":"90cf-30"},"90cf-33":{"renderedLength":296,"gzipLength":200,"brotliLength":0,"mainUid":"90cf-32"},"90cf-35":{"renderedLength":2096,"gzipLength":779,"brotliLength":0,"mainUid":"90cf-34"},"90cf-37":{"renderedLength":1070,"gzipLength":437,"brotliLength":0,"mainUid":"90cf-36"},"90cf-39":{"renderedLength":217,"gzipLength":138,"brotliLength":0,"mainUid":"90cf-38"},"90cf-41":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"90cf-40"}},"nodeMetas":{"90cf-24":{"id":"/node_modules/.pnpm/@tanstack+store@0.0.1-beta.89/node_modules/@tanstack/store/build/esm/index.js","moduleParts":{"index.production.js":"90cf-25"},"imported":[],"importedBy":[{"uid":"90cf-26"}]},"90cf-26":{"id":"/packages/form-core/build/esm/index.js","moduleParts":{"index.production.js":"90cf-27"},"imported":[{"uid":"90cf-24"}],"importedBy":[{"uid":"90cf-40"},{"uid":"90cf-36"},{"uid":"90cf-34"}]},"90cf-28":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"90cf-29"},"imported":[],"importedBy":[{"uid":"90cf-36"}]},"90cf-30":{"id":"/node_modules/.pnpm/@tanstack+react-store@0.0.1-beta.85_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js","moduleParts":{"index.production.js":"90cf-31"},"imported":[{"uid":"90cf-43"},{"uid":"90cf-44"}],"importedBy":[{"uid":"90cf-36"},{"uid":"90cf-34"}]},"90cf-32":{"id":"/packages/react-form/src/formContext.ts","moduleParts":{"index.production.js":"90cf-33"},"imported":[{"uid":"90cf-42"}],"importedBy":[{"uid":"90cf-36"},{"uid":"90cf-34"}]},"90cf-34":{"id":"/packages/react-form/src/useField.tsx","moduleParts":{"index.production.js":"90cf-35"},"imported":[{"uid":"90cf-42"},{"uid":"90cf-30"},{"uid":"90cf-26"},{"uid":"90cf-32"}],"importedBy":[{"uid":"90cf-40"},{"uid":"90cf-36"},{"uid":"90cf-38"}]},"90cf-36":{"id":"/packages/react-form/src/useForm.tsx","moduleParts":{"index.production.js":"90cf-37"},"imported":[{"uid":"90cf-28"},{"uid":"90cf-26"},{"uid":"90cf-30"},{"uid":"90cf-42"},{"uid":"90cf-34"},{"uid":"90cf-32"}],"importedBy":[{"uid":"90cf-40"},{"uid":"90cf-38"}]},"90cf-38":{"id":"/packages/react-form/src/createFormFactory.ts","moduleParts":{"index.production.js":"90cf-39"},"imported":[{"uid":"90cf-34"},{"uid":"90cf-36"}],"importedBy":[{"uid":"90cf-40"}]},"90cf-40":{"id":"/packages/react-form/src/index.ts","moduleParts":{"index.production.js":"90cf-41"},"imported":[{"uid":"90cf-26"},{"uid":"90cf-36"},{"uid":"90cf-34"},{"uid":"90cf-38"}],"importedBy":[],"isEntry":true},"90cf-42":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"90cf-36"},{"uid":"90cf-34"},{"uid":"90cf-32"}],"isExternal":true},"90cf-43":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"90cf-30"}],"isExternal":true},"90cf-44":{"id":"/node_modules/.pnpm/@tanstack+store@0.0.1-beta.85/node_modules/@tanstack/store/build/esm/index.js","moduleParts":{},"imported":[],"importedBy":[{"uid":"90cf-30"}]}},"env":{"rollup":"2.78.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
2673
2673
 
2674
2674
  const run = () => {
2675
2675
  const width = window.innerWidth;
@@ -10,12 +10,12 @@
10
10
  "name": "node_modules/.pnpm",
11
11
  "children": [
12
12
  {
13
- "name": "@tanstack+store@0.0.1-beta.84/node_modules/@tanstack/store/build/esm/index.js",
14
- "uid": "5ac5-45"
13
+ "name": "@tanstack+store@0.0.1-beta.89/node_modules/@tanstack/store/build/esm/index.js",
14
+ "uid": "90cf-46"
15
15
  },
16
16
  {
17
- "name": "@tanstack+react-store@0.0.1-beta.84_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js",
18
- "uid": "5ac5-51"
17
+ "name": "@tanstack+react-store@0.0.1-beta.85_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js",
18
+ "uid": "90cf-52"
19
19
  }
20
20
  ]
21
21
  },
@@ -24,29 +24,29 @@
24
24
  "children": [
25
25
  {
26
26
  "name": "form-core/build/esm/index.js",
27
- "uid": "5ac5-47"
27
+ "uid": "90cf-48"
28
28
  },
29
29
  {
30
30
  "name": "react-form/src",
31
31
  "children": [
32
32
  {
33
- "uid": "5ac5-53",
33
+ "uid": "90cf-54",
34
34
  "name": "formContext.ts"
35
35
  },
36
36
  {
37
- "uid": "5ac5-55",
37
+ "uid": "90cf-56",
38
38
  "name": "useField.tsx"
39
39
  },
40
40
  {
41
- "uid": "5ac5-57",
41
+ "uid": "90cf-58",
42
42
  "name": "useForm.tsx"
43
43
  },
44
44
  {
45
- "uid": "5ac5-59",
45
+ "uid": "90cf-60",
46
46
  "name": "createFormFactory.ts"
47
47
  },
48
48
  {
49
- "uid": "5ac5-61",
49
+ "uid": "90cf-62",
50
50
  "name": "index.ts"
51
51
  }
52
52
  ]
@@ -54,7 +54,7 @@
54
54
  ]
55
55
  },
56
56
  {
57
- "uid": "5ac5-49",
57
+ "uid": "90cf-50",
58
58
  "name": "\u0000rollupPluginBabelHelpers.js"
59
59
  }
60
60
  ]
@@ -63,285 +63,292 @@
63
63
  "isRoot": true
64
64
  },
65
65
  "nodeParts": {
66
- "5ac5-45": {
67
- "renderedLength": 1288,
68
- "gzipLength": 497,
66
+ "90cf-46": {
67
+ "renderedLength": 1313,
68
+ "gzipLength": 489,
69
69
  "brotliLength": 0,
70
- "mainUid": "5ac5-44"
70
+ "mainUid": "90cf-45"
71
71
  },
72
- "5ac5-47": {
73
- "renderedLength": 23508,
74
- "gzipLength": 5149,
72
+ "90cf-48": {
73
+ "renderedLength": 23129,
74
+ "gzipLength": 5079,
75
75
  "brotliLength": 0,
76
- "mainUid": "5ac5-46"
76
+ "mainUid": "90cf-47"
77
77
  },
78
- "5ac5-49": {
78
+ "90cf-50": {
79
79
  "renderedLength": 431,
80
80
  "gzipLength": 240,
81
81
  "brotliLength": 0,
82
- "mainUid": "5ac5-48"
82
+ "mainUid": "90cf-49"
83
83
  },
84
- "5ac5-51": {
84
+ "90cf-52": {
85
85
  "renderedLength": 978,
86
86
  "gzipLength": 456,
87
87
  "brotliLength": 0,
88
- "mainUid": "5ac5-50"
88
+ "mainUid": "90cf-51"
89
89
  },
90
- "5ac5-53": {
90
+ "90cf-54": {
91
91
  "renderedLength": 296,
92
92
  "gzipLength": 200,
93
93
  "brotliLength": 0,
94
- "mainUid": "5ac5-52"
94
+ "mainUid": "90cf-53"
95
95
  },
96
- "5ac5-55": {
96
+ "90cf-56": {
97
97
  "renderedLength": 2096,
98
98
  "gzipLength": 779,
99
99
  "brotliLength": 0,
100
- "mainUid": "5ac5-54"
100
+ "mainUid": "90cf-55"
101
101
  },
102
- "5ac5-57": {
102
+ "90cf-58": {
103
103
  "renderedLength": 1070,
104
104
  "gzipLength": 437,
105
105
  "brotliLength": 0,
106
- "mainUid": "5ac5-56"
106
+ "mainUid": "90cf-57"
107
107
  },
108
- "5ac5-59": {
108
+ "90cf-60": {
109
109
  "renderedLength": 217,
110
110
  "gzipLength": 138,
111
111
  "brotliLength": 0,
112
- "mainUid": "5ac5-58"
112
+ "mainUid": "90cf-59"
113
113
  },
114
- "5ac5-61": {
114
+ "90cf-62": {
115
115
  "renderedLength": 0,
116
116
  "gzipLength": 0,
117
117
  "brotliLength": 0,
118
- "mainUid": "5ac5-60"
118
+ "mainUid": "90cf-61"
119
119
  }
120
120
  },
121
121
  "nodeMetas": {
122
- "5ac5-44": {
123
- "id": "/node_modules/.pnpm/@tanstack+store@0.0.1-beta.84/node_modules/@tanstack/store/build/esm/index.js",
122
+ "90cf-45": {
123
+ "id": "/node_modules/.pnpm/@tanstack+store@0.0.1-beta.89/node_modules/@tanstack/store/build/esm/index.js",
124
124
  "moduleParts": {
125
- "index.production.js": "5ac5-45"
125
+ "index.production.js": "90cf-46"
126
126
  },
127
127
  "imported": [],
128
128
  "importedBy": [
129
129
  {
130
- "uid": "5ac5-46"
131
- },
132
- {
133
- "uid": "5ac5-50"
130
+ "uid": "90cf-47"
134
131
  }
135
132
  ]
136
133
  },
137
- "5ac5-46": {
134
+ "90cf-47": {
138
135
  "id": "/packages/form-core/build/esm/index.js",
139
136
  "moduleParts": {
140
- "index.production.js": "5ac5-47"
137
+ "index.production.js": "90cf-48"
141
138
  },
142
139
  "imported": [
143
140
  {
144
- "uid": "5ac5-44"
141
+ "uid": "90cf-45"
145
142
  }
146
143
  ],
147
144
  "importedBy": [
148
145
  {
149
- "uid": "5ac5-60"
146
+ "uid": "90cf-61"
150
147
  },
151
148
  {
152
- "uid": "5ac5-56"
149
+ "uid": "90cf-57"
153
150
  },
154
151
  {
155
- "uid": "5ac5-54"
152
+ "uid": "90cf-55"
156
153
  }
157
154
  ]
158
155
  },
159
- "5ac5-48": {
156
+ "90cf-49": {
160
157
  "id": "\u0000rollupPluginBabelHelpers.js",
161
158
  "moduleParts": {
162
- "index.production.js": "5ac5-49"
159
+ "index.production.js": "90cf-50"
163
160
  },
164
161
  "imported": [],
165
162
  "importedBy": [
166
163
  {
167
- "uid": "5ac5-56"
164
+ "uid": "90cf-57"
168
165
  }
169
166
  ]
170
167
  },
171
- "5ac5-50": {
172
- "id": "/node_modules/.pnpm/@tanstack+react-store@0.0.1-beta.84_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js",
168
+ "90cf-51": {
169
+ "id": "/node_modules/.pnpm/@tanstack+react-store@0.0.1-beta.85_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js",
173
170
  "moduleParts": {
174
- "index.production.js": "5ac5-51"
171
+ "index.production.js": "90cf-52"
175
172
  },
176
173
  "imported": [
177
174
  {
178
- "uid": "5ac5-63"
175
+ "uid": "90cf-64"
179
176
  },
180
177
  {
181
- "uid": "5ac5-44"
178
+ "uid": "90cf-65"
182
179
  }
183
180
  ],
184
181
  "importedBy": [
185
182
  {
186
- "uid": "5ac5-56"
183
+ "uid": "90cf-57"
187
184
  },
188
185
  {
189
- "uid": "5ac5-54"
186
+ "uid": "90cf-55"
190
187
  }
191
188
  ]
192
189
  },
193
- "5ac5-52": {
190
+ "90cf-53": {
194
191
  "id": "/packages/react-form/src/formContext.ts",
195
192
  "moduleParts": {
196
- "index.production.js": "5ac5-53"
193
+ "index.production.js": "90cf-54"
197
194
  },
198
195
  "imported": [
199
196
  {
200
- "uid": "5ac5-62"
197
+ "uid": "90cf-63"
201
198
  }
202
199
  ],
203
200
  "importedBy": [
204
201
  {
205
- "uid": "5ac5-56"
202
+ "uid": "90cf-57"
206
203
  },
207
204
  {
208
- "uid": "5ac5-54"
205
+ "uid": "90cf-55"
209
206
  }
210
207
  ]
211
208
  },
212
- "5ac5-54": {
209
+ "90cf-55": {
213
210
  "id": "/packages/react-form/src/useField.tsx",
214
211
  "moduleParts": {
215
- "index.production.js": "5ac5-55"
212
+ "index.production.js": "90cf-56"
216
213
  },
217
214
  "imported": [
218
215
  {
219
- "uid": "5ac5-62"
216
+ "uid": "90cf-63"
220
217
  },
221
218
  {
222
- "uid": "5ac5-50"
219
+ "uid": "90cf-51"
223
220
  },
224
221
  {
225
- "uid": "5ac5-46"
222
+ "uid": "90cf-47"
226
223
  },
227
224
  {
228
- "uid": "5ac5-52"
225
+ "uid": "90cf-53"
229
226
  }
230
227
  ],
231
228
  "importedBy": [
232
229
  {
233
- "uid": "5ac5-60"
230
+ "uid": "90cf-61"
234
231
  },
235
232
  {
236
- "uid": "5ac5-56"
233
+ "uid": "90cf-57"
237
234
  },
238
235
  {
239
- "uid": "5ac5-58"
236
+ "uid": "90cf-59"
240
237
  }
241
238
  ]
242
239
  },
243
- "5ac5-56": {
240
+ "90cf-57": {
244
241
  "id": "/packages/react-form/src/useForm.tsx",
245
242
  "moduleParts": {
246
- "index.production.js": "5ac5-57"
243
+ "index.production.js": "90cf-58"
247
244
  },
248
245
  "imported": [
249
246
  {
250
- "uid": "5ac5-48"
247
+ "uid": "90cf-49"
251
248
  },
252
249
  {
253
- "uid": "5ac5-46"
250
+ "uid": "90cf-47"
254
251
  },
255
252
  {
256
- "uid": "5ac5-50"
253
+ "uid": "90cf-51"
257
254
  },
258
255
  {
259
- "uid": "5ac5-62"
256
+ "uid": "90cf-63"
260
257
  },
261
258
  {
262
- "uid": "5ac5-54"
259
+ "uid": "90cf-55"
263
260
  },
264
261
  {
265
- "uid": "5ac5-52"
262
+ "uid": "90cf-53"
266
263
  }
267
264
  ],
268
265
  "importedBy": [
269
266
  {
270
- "uid": "5ac5-60"
267
+ "uid": "90cf-61"
271
268
  },
272
269
  {
273
- "uid": "5ac5-58"
270
+ "uid": "90cf-59"
274
271
  }
275
272
  ]
276
273
  },
277
- "5ac5-58": {
274
+ "90cf-59": {
278
275
  "id": "/packages/react-form/src/createFormFactory.ts",
279
276
  "moduleParts": {
280
- "index.production.js": "5ac5-59"
277
+ "index.production.js": "90cf-60"
281
278
  },
282
279
  "imported": [
283
280
  {
284
- "uid": "5ac5-54"
281
+ "uid": "90cf-55"
285
282
  },
286
283
  {
287
- "uid": "5ac5-56"
284
+ "uid": "90cf-57"
288
285
  }
289
286
  ],
290
287
  "importedBy": [
291
288
  {
292
- "uid": "5ac5-60"
289
+ "uid": "90cf-61"
293
290
  }
294
291
  ]
295
292
  },
296
- "5ac5-60": {
293
+ "90cf-61": {
297
294
  "id": "/packages/react-form/src/index.ts",
298
295
  "moduleParts": {
299
- "index.production.js": "5ac5-61"
296
+ "index.production.js": "90cf-62"
300
297
  },
301
298
  "imported": [
302
299
  {
303
- "uid": "5ac5-46"
300
+ "uid": "90cf-47"
304
301
  },
305
302
  {
306
- "uid": "5ac5-56"
303
+ "uid": "90cf-57"
307
304
  },
308
305
  {
309
- "uid": "5ac5-54"
306
+ "uid": "90cf-55"
310
307
  },
311
308
  {
312
- "uid": "5ac5-58"
309
+ "uid": "90cf-59"
313
310
  }
314
311
  ],
315
312
  "importedBy": [],
316
313
  "isEntry": true
317
314
  },
318
- "5ac5-62": {
315
+ "90cf-63": {
319
316
  "id": "react",
320
317
  "moduleParts": {},
321
318
  "imported": [],
322
319
  "importedBy": [
323
320
  {
324
- "uid": "5ac5-56"
321
+ "uid": "90cf-57"
325
322
  },
326
323
  {
327
- "uid": "5ac5-54"
324
+ "uid": "90cf-55"
328
325
  },
329
326
  {
330
- "uid": "5ac5-52"
327
+ "uid": "90cf-53"
331
328
  }
332
329
  ],
333
330
  "isExternal": true
334
331
  },
335
- "5ac5-63": {
332
+ "90cf-64": {
336
333
  "id": "use-sync-external-store/shim/with-selector",
337
334
  "moduleParts": {},
338
335
  "imported": [],
339
336
  "importedBy": [
340
337
  {
341
- "uid": "5ac5-50"
338
+ "uid": "90cf-51"
342
339
  }
343
340
  ],
344
341
  "isExternal": true
342
+ },
343
+ "90cf-65": {
344
+ "id": "/node_modules/.pnpm/@tanstack+store@0.0.1-beta.85/node_modules/@tanstack/store/build/esm/index.js",
345
+ "moduleParts": {},
346
+ "imported": [],
347
+ "importedBy": [
348
+ {
349
+ "uid": "90cf-51"
350
+ }
351
+ ]
345
352
  }
346
353
  },
347
354
  "env": {