{"version":3,"file":"button-group.cjs","sources":["../../../src/components/button-group.tsx"],"sourcesContent":["import React, { forwardRef, useId, type ReactElement } from \"react\";\nimport { matchChildByType } from \"../utils/components\";\nimport { Button, type ButtonProps } from \"./button\";\nimport { cva } from \"class-variance-authority\";\nimport { BaseInputWrapper } from \"./commons/input\";\n\nconst rootStyles = cva([\n    \"cui-w-full\",\n    \"cui-flex\",\n    \"cui-flex-col\",\n    \"[&>button]:cui-w-full\",\n    \"[&>button]:cui-rounded-none\",\n    \"[&>button:last-of-type]:cui-rounded-b-xxl\",\n    \"[&>button:last-of-type]:cui-border-t-0\",\n    \"[&>button:first-of-type]:cui-rounded-t-xxl\",\n    \"[&>button:first-of-type]:cui-border-t\",\n    \"[&>button]:cui-border-t-0\",\n    \"md:cui-flex-row\",\n    \"md:cui-w-fit\",\n    \"md:[&>button:last-of-type]:cui-rounded-bl-none\",\n    \"md:[&>button:last-of-type]:cui-rounded-r-xxl\",\n    \"md:[&>button:first-of-type]:cui-rounded-tr-none\",\n    \"md:[&>button:last-of-type]:cui-border-t\",\n    \"md:[&>button:last-of-type]:cui-border-l-0\",\n    \"md:[&>button:first-of-type]:cui-rounded-l-xxl\",\n    \"md:[&>button:first-of-type]:cui-border-l\",\n    \"md:[&>button]:cui-border\",\n    \"md:[&>button]:cui-border-l-0\",\n    \"md:[&>button]:cui-w-fit\",\n]);\n\nexport interface ButtonGroupProps {\n    label?: string;\n    children: ReactElement[];\n    className?: {\n        root?: string;\n    };\n}\n\nexport const ButtonGroup = forwardRef<\n    HTMLInputElement,\n    ButtonGroupProps & Pick<ButtonProps, \"size\" | \"disabled\">\n>(function ButtonGroup({ children, label, className, ...rest }) {\n    const buttons = children.filter((child) => matchChildByType(child, Button));\n\n    return (\n        <BaseInputWrapper\n            id={useId()}\n            label={label}\n            className={{ inputWrapper: \"cui-w-full md:cui-w-fit\" }}\n        >\n            <div className={rootStyles({ className: className?.root })}>\n                {buttons.map((button, index) =>\n                    React.cloneElement<ButtonProps>(button, {\n                        key: index,\n                        ...rest,\n                    }),\n                )}\n            </div>\n        </BaseInputWrapper>\n    );\n});\n"],"names":["cva","forwardRef","ButtonGroup","matchChildByType","Button","BaseInputWrapper","useId"],"mappings":";;;;;;;;AAMA,MAAM,aAAaA,SAAI,CAAA;AAAA,EACnB,YAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,uBAAA;AAAA,EACA,6BAAA;AAAA,EACA,2CAAA;AAAA,EACA,wCAAA;AAAA,EACA,4CAAA;AAAA,EACA,uCAAA;AAAA,EACA,2BAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,gDAAA;AAAA,EACA,8CAAA;AAAA,EACA,iDAAA;AAAA,EACA,yCAAA;AAAA,EACA,2CAAA;AAAA,EACA,+CAAA;AAAA,EACA,0CAAA;AAAA,EACA,0BAAA;AAAA,EACA,8BAAA;AAAA,EACA,yBAAA;AACJ,CAAC,CAAA,CAAA;AAUY,MAAA,WAAA,GAAcC,gBAGzB,CAAA,SAASC,YAAY,CAAA,EAAE,UAAU,KAAO,EAAA,SAAA,EAAW,GAAG,IAAA,EAAQ,EAAA;AAC5D,EAAM,MAAA,OAAA,GAAU,SAAS,MAAO,CAAA,CAAC,UAAUC,2BAAiB,CAAA,KAAA,EAAOC,aAAM,CAAC,CAAA,CAAA;AAE1E,EACI,uBAAA,KAAA,CAAA,aAAA;AAAA,IAACC,sBAAA;AAAA,IAAA;AAAA,MACG,IAAIC,WAAM,EAAA;AAAA,MACV,KAAA;AAAA,MACA,SAAA,EAAW,EAAE,YAAA,EAAc,yBAA0B,EAAA;AAAA,KAAA;AAAA,oBAErD,KAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,UAAW,CAAA,EAAE,WAAW,SAAW,EAAA,IAAA,EAAM,CAAA,EAAA,EACpD,OAAQ,CAAA,GAAA;AAAA,MAAI,CAAC,MAAA,EAAQ,KAClB,KAAA,KAAA,CAAM,aAA0B,MAAQ,EAAA;AAAA,QACpC,GAAK,EAAA,KAAA;AAAA,QACL,GAAG,IAAA;AAAA,OACN,CAAA;AAAA,KAET,CAAA;AAAA,GACJ,CAAA;AAER,CAAC;;;;"}