{"version":3,"file":"atoms.mjs","names":["BaseUIAccordion"],"sources":["../../../src/base-ui/Accordion/atoms.tsx"],"sourcesContent":["'use client';\n\nimport { Accordion as BaseUIAccordion } from '@base-ui/react/accordion';\nimport { cx } from 'antd-style';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport { createContext, type FC, use, useMemo } from 'react';\n\nimport {\n  contentVariants,\n  headerVariants,\n  indicatorVariants,\n  itemVariants,\n  rootVariants,\n  styles,\n  triggerVariants,\n} from './style';\nimport type {\n  AccordionHeaderProps,\n  AccordionIndicatorPlacement,\n  AccordionItemProps,\n  AccordionPanelProps,\n  AccordionRootProps,\n  AccordionTriggerProps,\n  AccordionVariant,\n} from './type';\n\ninterface AccordionContextValue {\n  hideIndicator: boolean;\n  indicatorPlacement: AccordionIndicatorPlacement;\n  variant: AccordionVariant;\n}\n\nconst AccordionContext = createContext<AccordionContextValue>({\n  hideIndicator: false,\n  indicatorPlacement: 'start',\n  variant: 'borderless',\n});\n\nexport const useAccordionContext = () => use(AccordionContext);\n\nexport const AccordionRoot: FC<AccordionRootProps> = ({\n  children,\n  className,\n  hideIndicator = false,\n  indicatorPlacement = 'start',\n  variant = 'borderless',\n  ...rest\n}) => {\n  const contextValue = useMemo(\n    () => ({ hideIndicator, indicatorPlacement, variant }),\n    [hideIndicator, indicatorPlacement, variant],\n  );\n\n  return (\n    <AccordionContext value={contextValue}>\n      <BaseUIAccordion.Root className={cx(rootVariants({ variant }), className)} {...rest}>\n        {children}\n      </BaseUIAccordion.Root>\n    </AccordionContext>\n  );\n};\n\nAccordionRoot.displayName = 'AccordionRoot';\n\nexport const AccordionItem: FC<AccordionItemProps> = ({\n  className,\n  variant: variantProp,\n  ...rest\n}) => {\n  const ctx = useAccordionContext();\n  const variant = variantProp ?? ctx.variant;\n\n  return <BaseUIAccordion.Item className={cx(itemVariants({ variant }), className)} {...rest} />;\n};\n\nAccordionItem.displayName = 'AccordionItem';\n\nexport const AccordionHeader: FC<AccordionHeaderProps> = ({\n  className,\n  variant: variantProp,\n  ...rest\n}) => {\n  const ctx = useAccordionContext();\n  const variant = variantProp ?? ctx.variant;\n\n  return (\n    <BaseUIAccordion.Header className={cx(headerVariants({ variant }), className)} {...rest} />\n  );\n};\n\nAccordionHeader.displayName = 'AccordionHeader';\n\nexport const AccordionTrigger: FC<AccordionTriggerProps> = ({\n  children,\n  className,\n  hideIndicator: hideIndicatorProp,\n  indicatorPlacement: placementProp,\n  variant: variantProp,\n  ...rest\n}) => {\n  const ctx = useAccordionContext();\n  const variant = variantProp ?? ctx.variant;\n  const hideIndicator = hideIndicatorProp ?? ctx.hideIndicator;\n  const placement = placementProp ?? ctx.indicatorPlacement;\n\n  const indicator = !hideIndicator && (\n    <span className={indicatorVariants({ placement })}>\n      {placement === 'start' ? <ChevronRight size={16} /> : <ChevronDown size={16} />}\n    </span>\n  );\n\n  return (\n    <BaseUIAccordion.Trigger className={cx(triggerVariants({ variant }), className)} {...rest}>\n      {placement === 'start' && indicator}\n      {children}\n      {placement === 'end' && indicator}\n    </BaseUIAccordion.Trigger>\n  );\n};\n\nAccordionTrigger.displayName = 'AccordionTrigger';\n\nexport const AccordionPanel: FC<AccordionPanelProps> = ({\n  children,\n  className,\n  contentClassName,\n  contentStyle,\n  hideIndicator: hideIndicatorProp,\n  indicatorPlacement: placementProp,\n  variant: variantProp,\n  ...rest\n}) => {\n  const ctx = useAccordionContext();\n  const variant = variantProp ?? ctx.variant;\n  const hideIndicator = hideIndicatorProp ?? ctx.hideIndicator;\n  const placement = placementProp ?? ctx.indicatorPlacement;\n  const indent = !hideIndicator && placement === 'start';\n\n  return (\n    <BaseUIAccordion.Panel className={cx(styles.panel, className)} {...rest}>\n      <div\n        className={cx(contentVariants({ indent, variant }), contentClassName)}\n        style={contentStyle}\n      >\n        {children}\n      </div>\n    </BaseUIAccordion.Panel>\n  );\n};\n\nAccordionPanel.displayName = 'AccordionPanel';\n\nexport { styles as accordionStyles } from './style';\n"],"mappings":";;;;;;;;AAgCA,MAAM,mBAAmB,cAAqC;CAC5D,eAAe;CACf,oBAAoB;CACpB,SAAS;AACX,CAAC;AAED,MAAa,4BAA4B,IAAI,gBAAgB;AAE7D,MAAa,iBAAyC,EACpD,UACA,WACA,gBAAgB,OAChB,qBAAqB,SACrB,UAAU,cACV,GAAG,WACC;CACJ,MAAM,eAAe,eACZ;EAAE;EAAe;EAAoB;CAAQ,IACpD;EAAC;EAAe;EAAoB;CAAO,CAC7C;CAEA,OACE,oBAAC,kBAAD;EAAkB,OAAO;EACvB,UAAA,oBAACA,UAAgB,MAAjB;GAAsB,WAAW,GAAG,aAAa,EAAE,QAAQ,CAAC,GAAG,SAAS;GAAG,GAAI;GAC5E;EACmB,CAAA;CACN,CAAA;AAEtB;AAEA,cAAc,cAAc;AAE5B,MAAa,iBAAyC,EACpD,WACA,SAAS,aACT,GAAG,WACC;CACJ,MAAM,MAAM,oBAAoB;CAChC,MAAM,UAAU,eAAe,IAAI;CAEnC,OAAO,oBAACA,UAAgB,MAAjB;EAAsB,WAAW,GAAG,aAAa,EAAE,QAAQ,CAAC,GAAG,SAAS;EAAG,GAAI;CAAO,CAAA;AAC/F;AAEA,cAAc,cAAc;AAE5B,MAAa,mBAA6C,EACxD,WACA,SAAS,aACT,GAAG,WACC;CACJ,MAAM,MAAM,oBAAoB;CAChC,MAAM,UAAU,eAAe,IAAI;CAEnC,OACE,oBAACA,UAAgB,QAAjB;EAAwB,WAAW,GAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;EAAG,GAAI;CAAO,CAAA;AAE9F;AAEA,gBAAgB,cAAc;AAE9B,MAAa,oBAA+C,EAC1D,UACA,WACA,eAAe,mBACf,oBAAoB,eACpB,SAAS,aACT,GAAG,WACC;CACJ,MAAM,MAAM,oBAAoB;CAChC,MAAM,UAAU,eAAe,IAAI;CACnC,MAAM,gBAAgB,qBAAqB,IAAI;CAC/C,MAAM,YAAY,iBAAiB,IAAI;CAEvC,MAAM,YAAY,CAAC,iBACjB,oBAAC,QAAD;EAAM,WAAW,kBAAkB,EAAE,UAAU,CAAC;EAC7C,UAAA,cAAc,UAAU,oBAAC,cAAD,EAAc,MAAM,GAAK,CAAA,IAAI,oBAAC,aAAD,EAAa,MAAM,GAAK,CAAA;CAC1E,CAAA;CAGR,OACE,qBAACA,UAAgB,SAAjB;EAAyB,WAAW,GAAG,gBAAgB,EAAE,QAAQ,CAAC,GAAG,SAAS;EAAG,GAAI;EAArF,UAAA;GACG,cAAc,WAAW;GACzB;GACA,cAAc,SAAS;EACD;;AAE7B;AAEA,iBAAiB,cAAc;AAE/B,MAAa,kBAA2C,EACtD,UACA,WACA,kBACA,cACA,eAAe,mBACf,oBAAoB,eACpB,SAAS,aACT,GAAG,WACC;CACJ,MAAM,MAAM,oBAAoB;CAChC,MAAM,UAAU,eAAe,IAAI;CACnC,MAAM,gBAAgB,qBAAqB,IAAI;CAC/C,MAAM,YAAY,iBAAiB,IAAI;CACvC,MAAM,SAAS,CAAC,iBAAiB,cAAc;CAE/C,OACE,oBAACA,UAAgB,OAAjB;EAAuB,WAAW,GAAG,OAAO,OAAO,SAAS;EAAG,GAAI;EACjE,UAAA,oBAAC,OAAD;GACE,WAAW,GAAG,gBAAgB;IAAE;IAAQ;GAAQ,CAAC,GAAG,gBAAgB;GACpE,OAAO;GAEN;EACE,CAAA;CACgB,CAAA;AAE3B;AAEA,eAAe,cAAc"}