{"version":3,"sources":["../src/radio-card-group.tsx"],"sourcesContent":["import type { ComponentArgs, ThemeProps } from \"@yamada-ui/core\"\nimport type { ForwardedRef, ReactElement, RefAttributes } from \"react\"\nimport type { RadioCardProps } from \"./radio-card\"\nimport type { RadioCardGroupContext } from \"./radio-context\"\nimport type { RadioGroupSharedProps } from \"./radio-group\"\nimport { useFormControl } from \"@yamada-ui/form-control\"\nimport { Flex } from \"@yamada-ui/layouts\"\nimport { cx, getValidChildren } from \"@yamada-ui/utils\"\nimport { forwardRef } from \"react\"\nimport { RadioCard } from \"./radio-card\"\nimport { RadioCardGroupProvider } from \"./radio-context\"\nimport { useRadioGroup } from \"./use-radio-group\"\n\nexport type RadioCardItem<Y extends number | string = string> =\n  RadioCardProps<Y>\n\nexport interface RadioCardGroupProps<Y extends number | string = string>\n  extends RadioGroupSharedProps<Y>,\n    Pick<\n      RadioCardProps,\n      \"addonProps\" | \"descriptionProps\" | \"labelProps\" | \"withIcon\"\n    >,\n    ThemeProps<\"RadioCard\"> {\n  /**\n   * If provided, generate radio cards based on items.\n   *\n   * @default '[]'\n   */\n  items?: RadioCardItem<Y>[]\n}\n\n/**\n * `RadioCardGroup` is a component that groups `RadioCard` components.\n *\n * @see Docs https://yamada-ui.com/components/forms/radio-card\n */\nexport const RadioCardGroup = forwardRef(\n  <Y extends number | string = string>(\n    {\n      id: idProp,\n      className,\n      colorScheme,\n      size,\n      variant,\n      children,\n      direction = \"row\",\n      gap = \"0.5rem\",\n      items = [],\n      withIcon = true,\n      addonProps,\n      descriptionProps,\n      labelProps,\n      ...props\n    }: RadioCardGroupProps<Y>,\n    ref: ForwardedRef<HTMLDivElement>,\n  ) => {\n    const {\n      disabled,\n      invalid,\n      isDisabled: _isDisabled,\n      isInvalid: _isInvalid,\n      isReadOnly: _isReadOnly,\n      isRequired: _isRequired,\n      labelId,\n      readOnly,\n      required,\n      ...computedProps\n    } = useFormControl({\n      id: idProp,\n      ...props,\n    })\n    const {\n      id,\n      name,\n      props: rest,\n      value,\n      getContainerProps,\n      onChange,\n    } = useRadioGroup(computedProps)\n\n    const validChildren = getValidChildren(children)\n    let computedChildren: ReactElement[] = []\n\n    if (!validChildren.length && items.length)\n      computedChildren = items.map((props, i) => (\n        <RadioCard key={i} {...props} />\n      ))\n\n    return (\n      <RadioCardGroupProvider\n        value={\n          {\n            name,\n            colorScheme,\n            size,\n            variant,\n            disabled,\n            invalid,\n            readOnly,\n            required,\n            value,\n            withIcon,\n            addonProps,\n            descriptionProps,\n            labelProps,\n            onChange,\n          } as RadioCardGroupContext\n        }\n      >\n        <Flex\n          ref={ref}\n          className={cx(\"ui-radio-card-group\", className)}\n          gap={gap}\n          w=\"100%\"\n          {...getContainerProps({\n            id,\n            \"aria-labelledby\": labelId,\n            ...rest,\n          })}\n          direction={direction}\n        >\n          {children ?? computedChildren}\n        </Flex>\n      </RadioCardGroupProvider>\n    )\n  },\n) as {\n  <Y extends number | string = string>(\n    props: RadioCardGroupProps<Y> & RefAttributes<HTMLDivElement>,\n  ): ReactElement\n} & ComponentArgs\n\nRadioCardGroup.displayName = \"RadioCardGroup\"\nRadioCardGroup.__ui__ = \"RadioCardGroup\"\n"],"mappings":";;;;;;;;;;;;AAKA,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AACrB,SAAS,IAAI,wBAAwB;AACrC,SAAS,kBAAkB;AA6EnB;AAjDD,IAAM,iBAAiB;AAAA,EAC5B,CACE;AAAA,IACE,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,QAAQ,CAAC;AAAA,IACT,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,eAAe;AAAA,MACjB,IAAI;AAAA,MACJ,GAAG;AAAA,IACL,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,cAAc,aAAa;AAE/B,UAAM,gBAAgB,iBAAiB,QAAQ;AAC/C,QAAI,mBAAmC,CAAC;AAExC,QAAI,CAAC,cAAc,UAAU,MAAM;AACjC,yBAAmB,MAAM,IAAI,CAACA,QAAO,MACnC,oBAAC,aAAmB,GAAGA,UAAP,CAAc,CAC/B;AAEH,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OACE;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAGF;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAW,GAAG,uBAAuB,SAAS;AAAA,YAC9C;AAAA,YACA,GAAE;AAAA,YACD,GAAG,kBAAkB;AAAA,cACpB;AAAA,cACA,mBAAmB;AAAA,cACnB,GAAG;AAAA,YACL,CAAC;AAAA,YACD;AAAA,YAEC,wCAAY;AAAA;AAAA,QACf;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAMA,eAAe,cAAc;AAC7B,eAAe,SAAS;","names":["props"]}