{"version":3,"file":"MarkdownProvider.mjs","names":[],"sources":["../../../src/Markdown/components/MarkdownProvider.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, memo, type PropsWithChildren, use } from 'react';\n\nimport { useStableValue } from '@/hooks/useStableValue';\n\nimport { type SyntaxMarkdownProps } from '../type';\n\nexport type MarkdownContentConfig = Omit<SyntaxMarkdownProps, 'children' | 'reactMarkdownProps'>;\n\nexport const MarkdownContext = createContext<MarkdownContentConfig>({});\n\nexport const MarkdownProvider = memo<PropsWithChildren<MarkdownContentConfig>>(\n  ({ children, ...config }) => {\n    // The rest-spread builds a fresh object on every render while `children`\n    // changes on every streamed chunk, so without stabilisation each chunk\n    // swaps the context identity and re-renders every consumer inside every\n    // block, bypassing the per-block memo entirely.\n    const stableConfig = useStableValue(config);\n\n    return <MarkdownContext value={stableConfig}>{children}</MarkdownContext>;\n  },\n);\n\nexport const useMarkdownContext = () => {\n  return use(MarkdownContext);\n};\n"],"mappings":";;;;;AAUA,MAAa,kBAAkB,cAAqC,CAAC,CAAC;AAEtE,MAAa,mBAAmB,MAC7B,EAAE,UAAU,GAAG,aAAa;CAK3B,MAAM,eAAe,eAAe,MAAM;CAE1C,OAAO,oBAAC,iBAAD;EAAiB,OAAO;EAAe;CAA0B,CAAA;AAC1E,CACF;AAEA,MAAa,2BAA2B;CACtC,OAAO,IAAI,eAAe;AAC5B"}