{"version":3,"sources":["../src/form/radio-button/radio-button.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes, type ReactNode } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { useRadioGroupContext } from \"./radio-group\";\n\nexport interface RadioButtonProps\n  extends Omit<InputHTMLAttributes<HTMLInputElement>, \"defaultValue\" | \"size\"> {\n  children: ReactNode;\n  variant?: \"plain\" | \"bounding-box\";\n  title?: string;\n  size?: \"small\" | \"\";\n}\n\nconst isChecked = ({\n  checked,\n  selectedValue,\n  value,\n}: Pick<RadioButtonProps, \"checked\" | \"value\"> & {\n  selectedValue: RadioButtonProps[\"value\"];\n}) => {\n  if (typeof checked !== \"undefined\") return checked;\n  if (typeof selectedValue !== \"undefined\") return value === selectedValue;\n  return undefined;\n};\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(\n  ({ checked, value, variant = \"plain\", title, children, className, size = \"\", ...rest }, ref) => {\n    const { value: selectedValue, size: groupSize, ...context } = useRadioGroupContext();\n    const effectiveSize = size || groupSize;\n\n    return (\n      <div\n        className={clsx(\n          \"hds-radio-button\",\n          {\n            [`hds-radio-button--${variant}`]: variant === \"bounding-box\",\n            [`hds-radio-button--${effectiveSize}`]: effectiveSize === \"small\",\n          },\n          className as undefined,\n        )}\n      >\n        <label>\n          <input\n            {...context}\n            {...rest}\n            checked={isChecked({ checked, selectedValue, value })}\n            value={value}\n            ref={ref}\n            type=\"radio\"\n          />\n          <span aria-hidden className=\"hds-radio-button__checkmark\" />\n          {title ? <p className=\"hds-radio-button__title\">{title}</p> : children}\n        </label>\n        {title ? children : null}\n      </div>\n    );\n  },\n);\n\nRadioButton.displayName = \"RadioButton\";\n"],"mappings":";;;;;;;;;;AAAA,SAAS,kBAA4D;AACrE,SAAS,YAAY;AAuCb,SACE,KADF;AA5BR,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AACF,MAEM;AACJ,MAAI,OAAO,YAAY,YAAa,QAAO;AAC3C,MAAI,OAAO,kBAAkB,YAAa,QAAO,UAAU;AAC3D,SAAO;AACT;AAEO,IAAM,cAAc;AAAA,EACzB,CAAC,IAAuF,QAAQ;AAA/F,iBAAE,WAAS,OAAO,UAAU,SAAS,OAAO,UAAU,WAAW,OAAO,GAzB3E,IAyBG,IAA+E,iBAA/E,IAA+E,CAA7E,WAAS,SAAO,WAAmB,SAAO,YAAU,aAAW;AAChE,UAA8DA,MAAA,qBAAqB,GAA3E,SAAO,eAAe,MAAM,UA1BxC,IA0BkEA,KAAZ,oBAAYA,KAAZ,CAA1C,SAAsB;AAC9B,UAAM,gBAAgB,QAAQ;AAE9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,CAAC,qBAAqB,OAAO,EAAE,GAAG,YAAY;AAAA,YAC9C,CAAC,qBAAqB,aAAa,EAAE,GAAG,kBAAkB;AAAA,UAC5D;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,+BAAC,WACC;AAAA;AAAA,cAAC;AAAA,8DACK,UACA,OAFL;AAAA,gBAGC,SAAS,UAAU,EAAE,SAAS,eAAe,MAAM,CAAC;AAAA,gBACpD;AAAA,gBACA;AAAA,gBACA,MAAK;AAAA;AAAA,YACP;AAAA,YACA,oBAAC,UAAK,eAAW,MAAC,WAAU,+BAA8B;AAAA,YACzD,QAAQ,oBAAC,OAAE,WAAU,2BAA2B,iBAAM,IAAO;AAAA,aAChE;AAAA,UACC,QAAQ,WAAW;AAAA;AAAA;AAAA,IACtB;AAAA,EAEJ;AACF;AAEA,YAAY,cAAc;","names":["_a"]}