{"version":3,"file":"Mermaid.mjs","names":["FullFeatured","Flexbox"],"sources":["../../src/Mermaid/Mermaid.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport CopyButton from '@/CopyButton';\nimport { Flexbox } from '@/Flex';\nimport { styles, variants } from '@/Highlighter/style';\nimport Tag from '@/Tag';\n\nimport FullFeatured from './FullFeatured';\nimport SyntaxMermaid from './SyntaxMermaid';\nimport type { MermaidProps } from './type';\n\nconst Mermaid = memo<MermaidProps>(\n  ({\n    actionIconSize,\n    animated,\n    bodyRender,\n    children,\n    classNames,\n    className,\n    copyable = true,\n    defaultExpand = true,\n    fileName,\n    fullFeatured,\n    language = 'mermaid',\n    actionsRender,\n    shadow,\n    showLanguage = true,\n    style,\n    styles: customStyles,\n    theme,\n    variant = 'filled',\n    ...rest\n  }) => {\n    const tirmedChildren = children.trim();\n    const copyContentRef = useRef(tirmedChildren);\n\n    useEffect(() => {\n      copyContentRef.current = tirmedChildren;\n    }, [tirmedChildren]);\n\n    const getCopyContent = useCallback(() => copyContentRef.current, []);\n\n    const originalActions = useMemo(() => {\n      if (!copyable) return null;\n      return (\n        <CopyButton content={getCopyContent} size={actionIconSize || { blockSize: 28, size: 16 }} />\n      );\n    }, [actionIconSize, copyable, getCopyContent]);\n\n    const actions = useMemo(() => {\n      if (!actionsRender) return originalActions;\n      return actionsRender({\n        actionIconSize,\n        content: tirmedChildren,\n        getContent: getCopyContent,\n        originalNode: originalActions,\n      });\n    }, [actionIconSize, actionsRender, getCopyContent, originalActions, tirmedChildren]);\n\n    const defaultBody = useMemo(\n      () => (\n        <SyntaxMermaid\n          animated={animated}\n          className={classNames?.content}\n          style={customStyles?.content}\n          theme={theme}\n          variant={variant}\n        >\n          {tirmedChildren}\n        </SyntaxMermaid>\n      ),\n      [animated, theme, tirmedChildren, variant, classNames?.content, customStyles?.content],\n    );\n\n    const body = useMemo(() => {\n      if (!bodyRender) return defaultBody;\n      return bodyRender({ content: tirmedChildren, originalNode: defaultBody });\n    }, [bodyRender, defaultBody, tirmedChildren]);\n\n    if (fullFeatured)\n      return (\n        <FullFeatured\n          actionsRender={actionsRender}\n          className={className}\n          classNames={classNames}\n          content={tirmedChildren}\n          copyable={copyable}\n          defaultExpand={defaultExpand}\n          fileName={fileName}\n          language={language}\n          shadow={shadow}\n          showLanguage={showLanguage}\n          style={style}\n          styles={customStyles}\n          variant={variant}\n          {...rest}\n        >\n          {body}\n        </FullFeatured>\n      );\n\n    return (\n      <div\n        className={cx(variants({ shadow, variant }), className)}\n        data-code-type=\"mermaid\"\n        style={style}\n        {...rest}\n      >\n        <Flexbox horizontal align={'center'} className={styles.actions} flex={'none'} gap={4}>\n          {actions}\n        </Flexbox>\n        {showLanguage && <Tag className={styles.lang}>{language.toLowerCase()}</Tag>}\n        {body}\n      </div>\n    );\n  },\n);\n\nMermaid.displayName = 'Mermaid';\n\nexport default Mermaid;\n\nexport { type MermaidProps } from './type';\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,UAAU,MACb,EACC,gBACA,UACA,YACA,UACA,YACA,WACA,WAAW,MACX,gBAAgB,MAChB,UACA,cACA,WAAW,WACX,eACA,QACA,eAAe,MACf,OACA,QAAQ,cACR,OACA,UAAU,UACV,GAAG,WACC;CACJ,MAAM,iBAAiB,SAAS,MAAM;CACtC,MAAM,iBAAiB,OAAO,eAAe;AAE7C,iBAAgB;AACd,iBAAe,UAAU;IACxB,CAAC,eAAe,CAAC;CAEpB,MAAM,iBAAiB,kBAAkB,eAAe,SAAS,EAAE,CAAC;CAEpE,MAAM,kBAAkB,cAAc;AACpC,MAAI,CAAC,SAAU,QAAO;AACtB,SACE,oBAAC,YAAD;GAAY,SAAS;GAAgB,MAAM,kBAAkB;IAAE,WAAW;IAAI,MAAM;IAAI;GAAI,CAAA;IAE7F;EAAC;EAAgB;EAAU;EAAe,CAAC;CAE9C,MAAM,UAAU,cAAc;AAC5B,MAAI,CAAC,cAAe,QAAO;AAC3B,SAAO,cAAc;GACnB;GACA,SAAS;GACT,YAAY;GACZ,cAAc;GACf,CAAC;IACD;EAAC;EAAgB;EAAe;EAAgB;EAAiB;EAAe,CAAC;CAEpF,MAAM,cAAc,cAEhB,oBAAC,eAAD;EACY;EACV,WAAW,YAAY;EACvB,OAAO,cAAc;EACd;EACE;YAER;EACa,CAAA,EAElB;EAAC;EAAU;EAAO;EAAgB;EAAS,YAAY;EAAS,cAAc;EAAQ,CACvF;CAED,MAAM,OAAO,cAAc;AACzB,MAAI,CAAC,WAAY,QAAO;AACxB,SAAO,WAAW;GAAE,SAAS;GAAgB,cAAc;GAAa,CAAC;IACxE;EAAC;EAAY;EAAa;EAAe,CAAC;AAE7C,KAAI,aACF,QACE,oBAACA,qBAAD;EACiB;EACJ;EACC;EACZ,SAAS;EACC;EACK;EACL;EACA;EACF;EACM;EACP;EACP,QAAQ;EACC;EACT,GAAI;YAEH;EACY,CAAA;AAGnB,QACE,qBAAC,OAAD;EACE,WAAW,GAAG,SAAS;GAAE;GAAQ;GAAS,CAAC,EAAE,UAAU;EACvD,kBAAe;EACR;EACP,GAAI;YAJN;GAME,oBAACC,mBAAD;IAAS,YAAA;IAAW,OAAO;IAAU,WAAW,OAAO;IAAS,MAAM;IAAQ,KAAK;cAChF;IACO,CAAA;GACT,gBAAgB,oBAAC,KAAD;IAAK,WAAW,OAAO;cAAO,SAAS,aAAa;IAAO,CAAA;GAC3E;GACG;;EAGX;AAED,QAAQ,cAAc"}