{"version":3,"file":"FormGroup.mjs","names":["Flexbox"],"sources":["../../../src/Form/components/FormGroup.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useResponsive } from 'antd-style';\nimport { isUndefined } from 'es-toolkit/compat';\nimport { memo } from 'react';\n\nimport Collapse from '@/Collapse';\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { groupStyles, titleVariants } from '../style';\nimport type { FormGroupProps } from '../type';\n\nconst FormGroup = memo<FormGroupProps>(\n  ({\n    className,\n    icon,\n    title,\n    children,\n    extra,\n    variant = 'borderless',\n    defaultActive = true,\n    collapsible,\n    active,\n    keyValue = 'group',\n    onCollapse,\n    desc,\n    ...rest\n  }) => {\n    const { mobile } = useResponsive();\n    const styles = groupStyles;\n    const isBorderless = variant === 'borderless';\n\n    const defaultCollapsible = isUndefined(collapsible) ? !isBorderless : collapsible;\n\n    const titleContent = (\n      <Flexbox horizontal className={cx(titleVariants({ variant }), styles.titleMobile)} gap={8}>\n        {icon && <Icon icon={icon} />}\n        {title}\n      </Flexbox>\n    );\n\n    if (mobile)\n      return (\n        <Flexbox className={className}>\n          <Flexbox horizontal className={styles.mobileGroupHeader} justify={'space-between'}>\n            {titleContent}\n            {extra}\n          </Flexbox>\n          <div className={styles.mobileGroupBody}>{children}</div>\n        </Flexbox>\n      );\n\n    return (\n      <Collapse\n        activeKey={isUndefined(active) ? undefined : active ? [keyValue] : []}\n        className={className}\n        collapsible={defaultCollapsible}\n        defaultActiveKey={defaultActive ? [keyValue] : undefined}\n        variant={variant}\n        classNames={{\n          header: isBorderless ? styles.titleBorderless : undefined,\n          title: isBorderless ? styles.titleBorderless : undefined,\n        }}\n        items={[\n          {\n            children,\n            desc,\n            extra,\n            icon,\n            key: keyValue,\n            label: title,\n          },\n        ]}\n        onChange={(v) => onCollapse?.(v.length > 0)}\n        {...rest}\n      />\n    );\n  },\n);\n\nFormGroup.displayName = 'FormGroup';\n\nexport default FormGroup;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,YAAY,MACf,EACC,WACA,MACA,OACA,UACA,OACA,UAAU,cACV,gBAAgB,MAChB,aACA,QACA,WAAW,SACX,YACA,MACA,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,eAAe;CAClC,MAAM,SAAS;CACf,MAAM,eAAe,YAAY;CAEjC,MAAM,qBAAqB,YAAY,YAAY,GAAG,CAAC,eAAe;CAEtE,MAAM,eACJ,qBAACA,mBAAD;EAAS,YAAA;EAAW,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,OAAO,YAAY;EAAE,KAAK;YAAxF,CACG,QAAQ,oBAAC,MAAD,EAAY,MAAQ,CAAA,EAC5B,MACO;;AAGZ,KAAI,OACF,QACE,qBAACA,mBAAD;EAAoB;YAApB,CACE,qBAACA,mBAAD;GAAS,YAAA;GAAW,WAAW,OAAO;GAAmB,SAAS;aAAlE,CACG,cACA,MACO;MACV,oBAAC,OAAD;GAAK,WAAW,OAAO;GAAkB;GAAe,CAAA,CAChD;;AAGd,QACE,oBAAC,UAAD;EACE,WAAW,YAAY,OAAO,GAAG,KAAA,IAAY,SAAS,CAAC,SAAS,GAAG,EAAE;EAC1D;EACX,aAAa;EACb,kBAAkB,gBAAgB,CAAC,SAAS,GAAG,KAAA;EACtC;EACT,YAAY;GACV,QAAQ,eAAe,OAAO,kBAAkB,KAAA;GAChD,OAAO,eAAe,OAAO,kBAAkB,KAAA;GAChD;EACD,OAAO,CACL;GACE;GACA;GACA;GACA;GACA,KAAK;GACL,OAAO;GACR,CACF;EACD,WAAW,MAAM,aAAa,EAAE,SAAS,EAAE;EAC3C,GAAI;EACJ,CAAA;EAGP;AAED,UAAU,cAAc"}