{"version":3,"file":"binding.mjs","names":[],"sources":["../../../src/base-ui/FormKit/binding.ts"],"sourcesContent":["import type { ReactElement } from 'react';\n\nimport type { FieldBinding } from './type';\n\nconst isEventLike = (arg: unknown): arg is { target: HTMLInputElement } =>\n  typeof arg === 'object' &&\n  arg !== null &&\n  'target' in arg &&\n  typeof (arg as { target: unknown }).target === 'object' &&\n  (arg as { target: unknown }).target !== null;\n\nexport const defaultGetValue = (arg: unknown) => {\n  if (!isEventLike(arg)) return arg;\n  const { target } = arg;\n  return target.type === 'checkbox' || target.type === 'radio' ? target.checked : target.value;\n};\n\nexport interface ResolvedBinding {\n  emptyValue: unknown;\n  getValue: (...args: any[]) => unknown;\n  trigger: string;\n  valueProp: string;\n}\n\nexport const resolveBinding = (child: ReactElement, override: FieldBinding): ResolvedBinding => {\n  const { type } = child;\n  const declared =\n    typeof type === 'object' || typeof type === 'function'\n      ? (type as { formBinding?: FieldBinding }).formBinding\n      : undefined;\n  const props = child.props as { type?: string };\n  const nativeCheckable = type === 'input' && (props.type === 'checkbox' || props.type === 'radio');\n\n  return {\n    emptyValue: override.emptyValue ?? declared?.emptyValue,\n    getValue: override.getValue ?? declared?.getValue ?? defaultGetValue,\n    trigger: override.trigger ?? declared?.trigger ?? 'onChange',\n    valueProp: override.valueProp ?? declared?.valueProp ?? (nativeCheckable ? 'checked' : 'value'),\n  };\n};\n"],"mappings":";AAIA,MAAM,eAAe,QACnB,OAAO,QAAQ,YACf,QAAQ,QACR,YAAY,OACZ,OAAQ,IAA4B,WAAW,YAC9C,IAA4B,WAAW;AAE1C,MAAa,mBAAmB,QAAiB;CAC/C,IAAI,CAAC,YAAY,GAAG,GAAG,OAAO;CAC9B,MAAM,EAAE,WAAW;CACnB,OAAO,OAAO,SAAS,cAAc,OAAO,SAAS,UAAU,OAAO,UAAU,OAAO;AACzF;AASA,MAAa,kBAAkB,OAAqB,aAA4C;CAC9F,MAAM,EAAE,SAAS;CACjB,MAAM,WACJ,OAAO,SAAS,YAAY,OAAO,SAAS,aACvC,KAAwC,cACzC,KAAA;CACN,MAAM,QAAQ,MAAM;CACpB,MAAM,kBAAkB,SAAS,YAAY,MAAM,SAAS,cAAc,MAAM,SAAS;CAEzF,OAAO;EACL,YAAY,SAAS,cAAc,UAAU;EAC7C,UAAU,SAAS,YAAY,UAAU,YAAY;EACrD,SAAS,SAAS,WAAW,UAAU,WAAW;EAClD,WAAW,SAAS,aAAa,UAAU,cAAc,kBAAkB,YAAY;CACzF;AACF"}