@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 2.83 kB
Source Map (JSON)
{"version":3,"file":"AccordionPanel.cjs","names":["factory","useProps","useAccordionItemContext","useAccordionContext","Collapse","classes"],"sources":["../../../../src/components/Accordion/AccordionPanel/AccordionPanel.tsx"],"sourcesContent":["import {\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { Collapse } from '../../Collapse';\nimport { useAccordionContext } from '../Accordion.context';\nimport { useAccordionItemContext } from '../AccordionItem.context';\nimport classes from '../Accordion.module.css';\n\nexport type AccordionPanelStylesNames = 'panel' | 'content';\n\nexport interface AccordionPanelProps\n extends BoxProps, CompoundStylesApiProps<AccordionPanelFactory>, ElementProps<'div'> {\n /** Called when the panel animation completes */\n onTransitionEnd?: () => void;\n\n /** Called when the panel animation starts */\n onTransitionStart?: () => void;\n\n /** If set, overrides the Accordion-level `keepMounted` value. When undefined (default), uses Accordion's `keepMounted` setting. */\n keepMounted?: boolean;\n}\n\nexport type AccordionPanelFactory = Factory<{\n props: AccordionPanelProps;\n ref: HTMLDivElement;\n stylesNames: AccordionPanelStylesNames;\n compound: true;\n}>;\n\nexport const AccordionPanel = factory<AccordionPanelFactory>((props) => {\n const { classNames, className, style, styles, vars, children, keepMounted, ...others } = useProps(\n 'AccordionPanel',\n null,\n props\n );\n\n const { value } = useAccordionItemContext();\n const ctx = useAccordionContext();\n\n return (\n <Collapse\n {...ctx.getStyles('panel', { className, classNames, style, styles })}\n expanded={ctx.isItemActive(value)}\n transitionDuration={ctx.transitionDuration ?? 200}\n role=\"region\"\n id={ctx.getRegionId(value)}\n aria-labelledby={ctx.getControlId(value)}\n keepMounted={keepMounted ?? ctx.keepMounted}\n {...others}\n >\n <div {...ctx.getStyles('content', { classNames, styles })}>{children}</div>\n </Collapse>\n );\n});\n\nAccordionPanel.displayName = '@mantine/core/AccordionPanel';\nAccordionPanel.classes = classes;\n"],"mappings":";;;;;;;;;;AAkCA,MAAa,iBAAiBA,gBAAAA,SAAgC,UAAU;CACtE,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,MAAM,UAAU,aAAa,GAAG,WAAWC,kBAAAA,SACvF,kBACA,MACA,MACD;CAED,MAAM,EAAE,UAAUC,8BAAAA,yBAAyB;CAC3C,MAAM,MAAMC,0BAAAA,qBAAqB;AAEjC,QACE,iBAAA,GAAA,kBAAA,KAACC,iBAAAA,UAAD;EACE,GAAI,IAAI,UAAU,SAAS;GAAE;GAAW;GAAY;GAAO;GAAQ,CAAC;EACpE,UAAU,IAAI,aAAa,MAAM;EACjC,oBAAoB,IAAI,sBAAsB;EAC9C,MAAK;EACL,IAAI,IAAI,YAAY,MAAM;EAC1B,mBAAiB,IAAI,aAAa,MAAM;EACxC,aAAa,eAAe,IAAI;EAChC,GAAI;YAEJ,iBAAA,GAAA,kBAAA,KAAC,OAAD;GAAK,GAAI,IAAI,UAAU,WAAW;IAAE;IAAY;IAAQ,CAAC;GAAG;GAAe,CAAA;EAClE,CAAA;EAEb;AAEF,eAAe,cAAc;AAC7B,eAAe,UAAUC,yBAAAA"}