{"version":3,"sources":["../src/components/inputs/mode/Form.tsx"],"names":["useMemo","jsx","FieldModeContext"],"mappings":";;;;;;AAoBO,SAAS,YAAA,CAAa,EAAE,IAAA,GAAO,MAAA,EAAQ,UAAS,EAAsB;AAC3E,EAAA,MAAM,KAAA,GAAQA,cAAQ,OAAO,EAAE,MAAK,CAAA,EAAI,CAAC,IAAI,CAAC,CAAA;AAC9C,EAAA,uBAAOC,cAAA,CAACC,kCAAA,CAAiB,QAAA,EAAjB,EAA0B,OAAe,QAAA,EAAS,CAAA;AAC5D;AAOO,SAAS,KAAK,EAAE,IAAA,EAAM,QAAA,EAAU,GAAG,WAAU,EAAc;AAChE,EAAA,uBACED,cAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EACZ,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAK,yBAAsB,EAAA,EAAI,GAAG,SAAA,EAChC,QAAA,EACH,CAAA,EACF,CAAA;AAEJ","file":"chunk-6MDZQIMZ.cjs","sourcesContent":["import { useMemo, type FormHTMLAttributes, type ReactNode } from \"react\";\nimport type { FieldMode } from \"../inputs.types\";\nimport { FieldModeContext } from \"./FieldMode.context\";\n\nexport interface FormProviderProps {\n  /** `\"edit\"` (default) or `\"view\"` — applied to every input below that doesn't override it. */\n  mode?: FieldMode;\n  children?: ReactNode;\n}\n\nexport interface FormProps extends FormHTMLAttributes<HTMLFormElement> {\n  /** `\"edit\"` (default) or `\"view\"` — applied to every input inside. */\n  mode?: FieldMode;\n}\n\n/**\n * Provide a form-wide {@link FieldMode} to every Fancy input below — flip a\n * whole form from editable to read-only display in one place. Pure context, no\n * DOM (use it to wrap a filter bar or any tree that isn't a `<form>`).\n */\nexport function FormProvider({ mode = \"edit\", children }: FormProviderProps) {\n  const value = useMemo(() => ({ mode }), [mode]);\n  return <FieldModeContext.Provider value={value}>{children}</FieldModeContext.Provider>;\n}\n\n/**\n * A real `<form>` that also broadcasts a form-wide {@link FieldMode} to the\n * inputs inside it (sugar over {@link FormProvider}). Per-input `mode` props\n * still override this.\n */\nexport function Form({ mode, children, ...formProps }: FormProps) {\n  return (\n    <FormProvider mode={mode}>\n      <form data-react-fancy-form=\"\" {...formProps}>\n        {children}\n      </form>\n    </FormProvider>\n  );\n}\n"]}