UNPKG

@transkripid/flowbite-react

Version:

Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork

1 lines 3.4 kB
{"version":3,"file":"ButtonGroup.mjs","sources":["../../../src/components/Button/ButtonGroup.tsx"],"sourcesContent":["import type { ComponentProps, FC, ReactElement } from 'react';\nimport { Children, cloneElement, useMemo } from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport { mergeDeep } from '../../helpers/merge-deep';\nimport { getTheme } from '../../theme-store';\nimport type { DeepPartial } from '../../types';\nimport type { ButtonProps } from '../Button';\n\nexport interface FlowbiteButtonGroupTheme {\n base: string;\n position: PositionInButtonGroup;\n}\n\nexport interface PositionInButtonGroup {\n none: string;\n start: string;\n middle: string;\n end: string;\n}\n\nexport interface ButtonGroupProps extends ComponentProps<'div'>, Pick<ButtonProps, 'outline' | 'pill'> {\n theme?: DeepPartial<FlowbiteButtonGroupTheme>;\n}\n\nexport const ButtonGroup: FC<ButtonGroupProps> = ({\n children,\n className,\n outline,\n pill,\n theme: customTheme = {},\n ...props\n}: ButtonGroupProps) => {\n const items = useMemo(\n () =>\n Children.map(children as ReactElement<ButtonProps>[], (child, index) =>\n cloneElement(child, {\n outline,\n pill,\n positionInGroup:\n index === 0 ? 'start' : index === (children as ReactElement<ButtonProps>[]).length - 1 ? 'end' : 'middle',\n }),\n ),\n [children, outline, pill],\n );\n const theme = mergeDeep(getTheme().buttonGroup, customTheme);\n\n return (\n <div className={twMerge(theme.base, className)} role=\"group\" {...props}>\n {items}\n </div>\n );\n};\n\nButtonGroup.displayName = 'Button.Group';\n"],"names":["ButtonGroup","t0","$","_c","children","className","outline","pill","props","t1","theme","t2","undefined","customTheme","t3","t4","Children","map","child","index","cloneElement","positionInGroup","length","items","t5","mergeDeep","getTheme","buttonGroup","twMerge","base","t6","displayName"],"mappings":";;;;;;AAwBO,MAAMA,IAAoCC,CAAAA,MAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA;AAAAC,MAAAA,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;AAAAP,EAAAA,SAAAD,KAAC;AAAA,IAAAG,UAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAG,OAAAD;AAAAA,IAAA,GAAAD;AAAAA,EAAAP,IAAAA,GAO/BC,OAAAD,GAAAC,OAAAE,GAAAF,OAAAG,GAAAH,OAAAI,GAAAJ,OAAAK,GAAAL,OAAAM,GAAAN,OAAAO,MAAAL,IAAAF,EAAA,CAAA,GAAAG,IAAAH,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAM,IAAAN,EAAA,CAAA,GAAAO,IAAAP,EAAA,CAAA;AAAAS,MAAAA;AAAAT,EAAAA,SAAAO,KAFVA,IAAAA,MAAgBG,cAAhBH,GAAgBP,OAAAO,GAAAP,OAAAS,KAAAA,IAAAT,EAAA,CAAA;AAAhB,QAAAW,IAAAF;AAAgBG,MAAAA,GAAAC;AAAAb,EAAAA,EAAAE,CAAAA,MAAAA,KAAAF,UAAAI,KAAAJ,EAAA,EAAA,MAAAK,KAKnBQ,IAAAC,EAAAC,IAAab,IAAuCc,GAAAC,MAClDC,EAAaF,GAAK;AAAA,IAAAZ,SAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAc,iBAIdF,MAAW,IAAG,UAAUA,MAAWf,EAAuCkB,SAAA,IAAe,QAAQ;AAAA,EACpG,CAAA,CACH,GAACpB,OAAAE,GAAAF,QAAAI,GAAAJ,QAAAK,GAAAL,QAAAa,KAAAA,IAAAb,EAAA,EAAA,GAPDa,IAAAA;AAFJ,QAAAQ,IAAcT;AAWZU,MAAAA;AAAA,MAAAtB,EAAAG,EAAAA,MAAAA,KAAAH,UAAAW,GAAA;AACF,UAAAH,IAAce,EAAUC,EAAS,EAACC,aAAcd,CAAW;AAGzCe,IAAAA,IAAAA,EAAQlB,EAAKmB,MAAOxB,CAAS,GAACH,QAAAG,GAAAH,QAAAW,GAAAX,QAAAsB;AAAAA,EAAAA;AAAAA,IAAAA,IAAAtB,EAAA,EAAA;AAAA4B,MAAAA;AAAA5B,SAAAA,EAAAqB,EAAAA,MAAAA,KAAArB,UAAAM,KAAAN,EAAA,EAAA,MAAAsB,oCAA9B,WAAAA,GAAqC,MAAA,YAAYhB,GACzD,UACRe,EAAA,CAAA,GAAMrB,QAAAqB,GAAArB,QAAAM,GAAAN,QAAAsB,GAAAtB,QAAA4B,KAAAA,IAAA5B,EAAA,EAAA,GAFN4B;AAEM;AAIV9B,EAAY+B,cAAc;"}