{"version":3,"file":"Button.cjs","sources":["../../../../src/lib/Button/Button.tsx"],"sourcesContent":["import type {\n    FC,\n    DetailedHTMLProps,\n    ButtonHTMLAttributes,\n    MouseEvent,\n    HTMLAttributes,\n    ReactNode,\n} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Button.module.css';\nimport type {Variants, Sizes} from './Types.ts';\n\nexport type Props = DataAttributes &\n    LibraryProps & {\n        children?: ReactNode;\n        onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n        type?: DetailedHTMLProps<\n            ButtonHTMLAttributes<HTMLButtonElement>,\n            HTMLButtonElement\n        >['type'];\n        disabled?: boolean;\n        variant?: keyof typeof Variants;\n        size?: keyof typeof Sizes;\n        prefix?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n        suffix?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n    };\n\nexport const Button = forwardRef<HTMLButtonElement, Props>(\n    (\n        {\n            children,\n            onClick,\n            type = 'button',\n            disabled,\n            variant = 'primary',\n            className,\n            prefix: Prefix,\n            suffix: Suffix,\n            size = 'medium',\n            ...nativeProps\n        },\n        ref\n    ) => {\n        return (\n            <button\n                {...nativeProps}\n                ref={ref}\n                onClick={onClick}\n                type={type}\n                className={classNames(classes.button, classes[variant], classes[size], className)}\n                disabled={disabled}>\n                {Prefix && <Prefix className={classes.icon} />}\n                <div className={classes.content}>{children}</div>\n                {Suffix && <Suffix className={classes.icon} />}\n            </button>\n        );\n    }\n);\n\nButton.displayName = 'Button';\n"],"names":["Button","forwardRef","children","onClick","type","disabled","variant","className","Prefix","Suffix","size","nativeProps","ref","jsxs","classNames","classes","jsx"],"mappings":"kNA+BaA,EAASC,EAAA,WAClB,CACI,CACI,SAAAC,EACA,QAAAC,EACA,KAAAC,EAAO,SACP,SAAAC,EACA,QAAAC,EAAU,UACV,UAAAC,EACA,OAAQC,EACR,OAAQC,EACR,KAAAC,EAAO,SACP,GAAGC,GAEPC,IAGIC,EAAA,KAAC,SAAA,CACI,GAAGF,EACJ,IAAAC,EACA,QAAAT,EACA,KAAAC,EACA,UAAWU,EAAWC,EAAA,QAAQ,OAAQA,EAAAA,QAAQT,CAAO,EAAGS,EAAA,QAAQL,CAAI,EAAGH,CAAS,EAChF,SAAAF,EACC,SAAA,CAAAG,GAAWQ,EAAA,IAAAR,EAAA,CAAO,UAAWO,EAAAA,QAAQ,KAAM,EAC3CC,EAAA,IAAA,MAAA,CAAI,UAAWD,EAAAA,QAAQ,QAAU,SAAAb,EAAS,EAC1CO,GAAUO,EAAA,IAACP,EAAO,CAAA,UAAWM,EAAAA,QAAQ,IAAM,CAAA,CAAA,CAAA,CAChD,CAGZ,EAEAf,EAAO,YAAc"}