{"version":3,"file":"index.mjs","names":["useField","useControl","FieldName","FieldProps","ColorPicker","RawColor","Color","Props","Omit","name","allowInherit","refColor","HexColorField","id","forcedId","rest","field","control","defaultValue","value","type","hex","handleChange","color","change","register","errors","FieldName","useControl","useField","BrandPalette","Color","ColorInput","ColorPicker","RawColor","FieldProps","Props","Omit","name","allowInherit","palette","refColor","AdvancedColorField","id","forcedId","rest","field","control","defaultValue","parse","payload","Error","undefined","JSON","serialize","value","stringify","register","errors","color","change"],"sources":["../../../../src/components/fields/color/HexColorField.tsx","../../../../src/components/fields/color/AdvancedColorField.tsx"],"sourcesContent":["import { useField, useControl, type FieldName } from \"@conform-to/react/future\";\nimport { type FieldProps } from \"../field/Field\";\nimport { ColorPicker, RawColor, type Color } from \"../../color\";\n\ninterface Props extends Omit<FieldProps, \"children\" | \"group\"> {\n  name: FieldName<string | null | undefined>;\n  allowInherit?: boolean;\n  refColor?: RawColor;\n}\n\nexport function HexColorField({ name, id: forcedId, allowInherit = false, ...rest }: Props) {\n  const field = useField(name);\n  const id = forcedId ?? field.id;\n\n  const control = useControl({\n    defaultValue: field.defaultValue,\n  });\n\n  const value: Color | null = control.value ? { type: \"raw\", hex: control.value } : null;\n\n  function handleChange(color: Color | null) {\n    control.change(color?.type === \"raw\" ? color.hex : null);\n  }\n\n  return (\n    <>\n      <input\n        hidden\n        type=\"text\"\n        name={field.name}\n        autoComplete=\"off\"\n        ref={control.register}\n        defaultValue={field.defaultValue}\n      />\n      <ColorPicker\n        id={id}\n        errors={field.errors}\n        data-testid={field.name}\n        value={value}\n        onChange={handleChange}\n        allowInherit={allowInherit}\n        {...rest}\n      />\n    </>\n  );\n}\n","import { FieldName, useControl, useField } from \"@conform-to/react/future\";\nimport { BrandPalette, Color, ColorInput, ColorPicker, RawColor } from \"../../color\";\nimport { FieldProps } from \"../field\";\n\ninterface Props extends Omit<FieldProps, \"children\" | \"group\"> {\n  name: FieldName<ColorInput | null | undefined>;\n  allowInherit?: boolean;\n  palette?: BrandPalette;\n  refColor?: RawColor;\n}\n\nexport function AdvancedColorField({\n  name,\n  id: forcedId,\n  allowInherit = false,\n  palette,\n  refColor,\n  ...rest\n}: Props) {\n  const field = useField(name);\n  const id = forcedId ?? field.id;\n\n  const control = useControl<Color, string>({\n    defaultValue: field.defaultValue,\n    parse(payload) {\n      if (typeof payload !== \"string\") {\n        throw new Error(\"color input must return string\");\n      }\n      if (payload == null || payload === \"\") {\n        return undefined;\n      }\n      return JSON.parse(payload);\n    },\n    // appelé uniquement par control.change(value) (ex: ColorPicker.onChange) :\n    // convertit le Color/null en string écrite dans l'input caché et déclenche l'event\n    // \"input\" natif. N'est pas utilisé pour le defaultValue initial (déjà une string).\n    serialize(value) {\n      return typeof value !== \"string\" && value != null ? JSON.stringify(value) : value;\n    },\n  });\n\n  const value = control.payload ?? null;\n\n  return (\n    <>\n      <input\n        hidden\n        name={field.name}\n        type=\"text\"\n        autoComplete=\"off\"\n        tabIndex={-1}\n        ref={control.register}\n        defaultValue={control.defaultValue ?? \"\"}\n      />\n      <ColorPicker\n        id={id}\n        errors={field.errors}\n        data-testid={field.name}\n        palette={palette}\n        refColor={refColor}\n        value={value}\n        onChange={(color) => control.change(color)}\n        allowInherit={allowInherit}\n        {...rest}\n      />\n    </>\n  );\n}\n"],"mappings":";;;;AAUA,SAAgBY,cAAc,EAAEH,MAAMI,IAAIC,UAAUJ,eAAe,OAAO,GAAGK,QAAe;CAC1F,MAAMC,QAAQhB,SAASS,IAAI;CAC3B,MAAMI,KAAKC,YAAYE,MAAMH;CAE7B,MAAMI,UAAUhB,WAAW,EACzBiB,cAAcF,MAAME,aACtB,CAAC;CAED,MAAMC,QAAsBF,QAAQE,QAAQ;EAAEC,MAAM;EAAOC,KAAKJ,QAAQE;CAAM,IAAI;CAElF,SAASG,aAAaC,OAAqB;EACzCN,QAAQO,OAAOD,OAAOH,SAAS,QAAQG,MAAMF,MAAM,IAAI;CACzD;CAEA,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,SAAD;EACE,QAAA;EACA,MAAK;EACL,MAAML,MAAMP;EACZ,cAAa;EACb,KAAKQ,QAAQQ;EACb,cAAcT,MAAME;CAAa,CAAA,GAEnC,oBAAC,aAAD;EACML;EACJ,QAAQG,MAAMU;EACd,eAAaV,MAAMP;EACZU;EACP,UAAUG;EACIZ;EACd,GAAIK;CAAK,CAAA,CAEb,EAAA,CAAA;AAEJ;;;AClCA,SAAgB2B,mBAAmB,EACjCJ,MACAK,IAAIC,UACJL,eAAe,OACfC,SACAC,UACA,GAAGI,QACK;CACR,MAAMC,QAAQjB,SAASS,IAAI;CAC3B,MAAMK,KAAKC,YAAYE,MAAMH;CAE7B,MAAMI,UAAUnB,WAA0B;EACxCoB,cAAcF,MAAME;EACpBC,MAAMC,SAAS;GACb,IAAI,OAAOA,YAAY,UACrB,MAAM,IAAIC,MAAM,gCAAgC;GAElD,IAAID,WAAW,QAAQA,YAAY,IACjC;GAEF,OAAOG,KAAKJ,MAAMC,OAAO;EAC3B;EAIAI,UAAUC,OAAO;GACf,OAAO,OAAOA,UAAU,YAAYA,SAAS,OAAOF,KAAKG,UAAUD,KAAK,IAAIA;EAC9E;CACF,CAAC;CAED,MAAMA,UAAQR,QAAQG,WAAW;CAEjC,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,SAAD;EACE,QAAA;EACA,MAAMJ,MAAMR;EACZ,MAAK;EACL,cAAa;EACb,UAAU;EACV,KAAKS,QAAQU;EACb,cAAcV,QAAQC,gBAAgB;CAAG,CAAA,GAE3C,oBAAC,aAAD;EACML;EACJ,QAAQG,MAAMY;EACd,eAAaZ,MAAMR;EACVE;EACCC;EACV,OAAOc;EACP,WAAWI,UAAUZ,QAAQa,OAAOD,KAAK;EAC3BpB;EACd,GAAIM;CAAK,CAAA,CAEb,EAAA,CAAA;AAEJ"}