koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
1 lines • 2.75 kB
Source Map (JSON)
{"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"}