UNPKG

flowbite-react

Version:

Official React components built for Flowbite and Tailwind CSS

1 lines 3.97 kB
{"version":3,"file":"AccordionTitle.cjs","sources":["../../../src/components/Accordion/AccordionTitle.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps, FC } from \"react\";\nimport { get } from \"../../helpers/get\";\nimport { resolveProps } from \"../../helpers/resolve-props\";\nimport { useResolveTheme } from \"../../helpers/resolve-theme\";\nimport { twMerge } from \"../../helpers/tailwind-merge\";\nimport { useThemeProvider } from \"../../theme/provider\";\nimport type { FlowbiteBoolean, FlowbiteHeadingLevel, ThemingProps } from \"../../types\";\nimport { useAccordionContext } from \"./AccordionPanelContext\";\nimport { accordionTheme } from \"./theme\";\n\nexport interface AccordionTitleTheme {\n arrow: {\n base: string;\n open: FlowbiteBoolean;\n };\n base: string;\n flush: FlowbiteBoolean;\n heading: string;\n open: FlowbiteBoolean;\n}\n\nexport interface AccordionTitleProps extends ComponentProps<\"button\">, ThemingProps<AccordionTitleTheme> {\n arrowIcon?: FC<ComponentProps<\"svg\">>;\n as?: FlowbiteHeadingLevel;\n}\n\nexport function AccordionTitle(props: AccordionTitleProps) {\n const { arrowIcon: ArrowIcon, flush, isOpen, setOpen } = useAccordionContext();\n const onClick = () => typeof setOpen !== \"undefined\" && setOpen();\n\n const provider = useThemeProvider();\n const theme = useResolveTheme(\n [accordionTheme.title, provider.theme?.accordion?.title, props.theme],\n [get(provider.clearTheme, \"accordion.title\"), props.clearTheme],\n [get(provider.applyTheme, \"accordion.title\"), props.applyTheme],\n );\n\n const { as: Heading = \"h2\", children, className, ...restProps } = resolveProps(props, provider.props?.accordionTitle);\n\n return (\n <button\n className={twMerge(theme.base, theme.flush[flush ? \"on\" : \"off\"], theme.open[isOpen ? \"on\" : \"off\"], className)}\n onClick={onClick}\n type=\"button\"\n {...restProps}\n >\n <Heading className={theme.heading} data-testid=\"flowbite-accordion-heading\">\n {children}\n </Heading>\n {ArrowIcon && (\n <ArrowIcon\n aria-hidden\n className={twMerge(theme.arrow.base, theme.arrow.open[isOpen ? \"on\" : \"off\"])}\n data-testid=\"flowbite-accordion-arrow\"\n />\n )}\n </button>\n );\n}\n\nAccordionTitle.displayName = \"AccordionTitle\";\n"],"names":["useAccordionContext","provider","useThemeProvider","theme","useResolveTheme","accordionTheme","get","resolveProps","jsxs","twMerge","jsx"],"mappings":";;;;;;;;;;;AAUO,SAAS,cAAc,CAAC,KAAK,EAAE;AACtC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAGA,yCAAmB,EAAE;AAChF,EAAE,MAAM,OAAO,GAAG,MAAM,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,EAAE;AACnE,EAAE,MAAMC,UAAQ,GAAGC,yBAAgB,EAAE;AACrC,EAAE,MAAMC,OAAK,GAAGC,4BAAe;AAC/B,IAAI,CAACC,oBAAc,CAAC,KAAK,EAAEJ,UAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACzE,IAAI,CAACK,OAAG,CAACL,UAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;AACnE,IAAI,CAACK,OAAG,CAACL,UAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC,UAAU;AAClE,GAAG;AACH,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAGM,yBAAY,CAAC,KAAK,EAAEN,UAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;AACvH,EAAE,uBAAuBO,eAAI;AAC7B,IAAI,QAAQ;AACZ,IAAI;AACJ,MAAM,SAAS,EAAEC,qBAAO,CAACN,OAAK,CAAC,IAAI,EAAEA,OAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,EAAEA,OAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC;AACrH,MAAM,OAAO;AACb,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,GAAG,SAAS;AAClB,MAAM,QAAQ,EAAE;AAChB,wBAAwBO,cAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAEP,OAAK,CAAC,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,QAAQ,EAAE,CAAC;AACzH,QAAQ,SAAS,oBAAoBO,cAAG;AACxC,UAAU,SAAS;AACnB,UAAU;AACV,YAAY,aAAa,EAAE,IAAI;AAC/B,YAAY,SAAS,EAAED,qBAAO,CAACN,OAAK,CAAC,KAAK,CAAC,IAAI,EAAEA,OAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AACzF,YAAY,aAAa,EAAE;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,cAAc,CAAC,WAAW,GAAG,gBAAgB;;;;"}