{"version":3,"sources":["../src/RadioGroup.tsx"],"names":[],"mappings":";;;;;AAGA,SAAS,wBAAwB;AACjC,SAAS,kBAAkB;AAC3B,SAAS,UAAU;AACnB,OAAO;AAAA,EACL;AAAA,EACA;AAAA,OAGK;AACP,SAA8B,qBAAqB;AACnD,SAAS,0BAA0B;AAG5B,IAAM,eAAe,cAGlB,IAAI;AASP,IAAM,aAET;AAAA,EACF,CAAC,EAAE,OAAO,WAAW,GAAG,MAAM,GAAG,QAAQ;AACvC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,IAChB,IAAI;AAEJ,UAAM,QAAQ,mBAAmB,KAAK;AACtC,UAAM,EAAE,iBAAiB,YAAY,kBAAkB,kBAAkB,IACvE,cAAc,OAAO,KAAK;AAE5B,WACE,oCAAC,wBACC,oCAAC,SAAK,GAAG,iBAAiB,aACvB,QAAQ,KAAK,MACX,OAAO,UAAU,WAChB;AAAA,MAAC;AAAA;AAAA,QACC,UAAU;AAAA,QACV,SAAQ;AAAA,QACR,WAAU;AAAA,QACT,GAAG;AAAA;AAAA,IACN,IAEA,QAEH,QAAQ,WAAW,MACjB,OAAO,gBAAgB,WACtB;AAAA,MAAC;AAAA;AAAA,QACC,UAAU;AAAA,QACV,SAAQ;AAAA,QACP,GAAG;AAAA,QACJ,WAAU;AAAA;AAAA,IACZ,IAEA,cAEJ,oCAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,OAAO,MAAM,KAC3C;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT,WAAW,EAAE,YAAY,CAAC;AAAA,UAC1B;AAAA,QACF;AAAA;AAAA,MAEC;AAAA,IACH,CACF,GACC,QAAQ,YAAY,KACnB;AAAA,MAAC;AAAA;AAAA,QACC,UAAU;AAAA,QACV,SAAQ;AAAA,QACP,GAAG;AAAA,QACJ,WAAU;AAAA;AAAA,IACZ,CAEJ,CACF;AAAA,EAEJ;AACF","sourcesContent":["\"use client\";\n\nimport { CheckboxProps } from \"@mabi-ui/checkbox\";\nimport { PreflightWrapper } from \"@mabi-ui/preflight\";\nimport { Typography } from \"@mabi-ui/typography\";\nimport { cn } from \"@mabi-ui/utils\";\nimport React, {\n  createContext,\n  forwardRef,\n  RefAttributes,\n  type ReactNode,\n} from \"react\";\nimport { AriaRadioGroupProps, useRadioGroup } from \"react-aria\";\nimport { useRadioGroupState } from \"react-stately\";\nimport { radioGroup } from \"./styles\";\n\nexport const RadioContext = createContext<{\n  state: ReturnType<typeof useRadioGroupState>;\n  color: RadioGroupProps[\"color\"];\n} | null>(null);\n\nexport type RadioGroupProps = {\n  children: ReactNode;\n  className?: string;\n  errorMessage?: string;\n} & Omit<AriaRadioGroupProps, \"errorMessage\"> &\n  Pick<CheckboxProps, \"color\">;\n\nexport const RadioGroup: React.ForwardRefExoticComponent<\n  RadioGroupProps & RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, RadioGroupProps>(\n  ({ color, className, ...props }, ref) => {\n    const {\n      children,\n      label,\n      description,\n      errorMessage,\n      orientation = \"vertical\",\n    } = props;\n\n    const state = useRadioGroupState(props);\n    const { radioGroupProps, labelProps, descriptionProps, errorMessageProps } =\n      useRadioGroup(props, state);\n\n    return (\n      <PreflightWrapper>\n        <div {...radioGroupProps} className={className}>\n          {Boolean(label) &&\n            (typeof label === \"string\" ? (\n              <Typography\n                children={label}\n                variant=\"subtitle2\"\n                className=\"dark:text-white\"\n                {...labelProps}\n              />\n            ) : (\n              label\n            ))}\n          {Boolean(description) &&\n            (typeof description === \"string\" ? (\n              <Typography\n                children={description}\n                variant=\"caption\"\n                {...descriptionProps}\n                className=\"mt-1 text-black/70 dark:text-white/70\"\n              />\n            ) : (\n              description\n            ))}\n          <RadioContext.Provider value={{ state, color }}>\n            <div\n              ref={ref}\n              className={cn(\n                radioGroup({ orientation }),\n                \"RadioGroup-container\"\n              )}\n            >\n              {children}\n            </div>\n          </RadioContext.Provider>\n          {Boolean(errorMessage) && (\n            <Typography\n              children={errorMessage}\n              variant=\"caption\"\n              {...errorMessageProps}\n              className=\"text-error\"\n            />\n          )}\n        </div>\n      </PreflightWrapper>\n    );\n  }\n);\n"]}