Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@assistant-ui/react-markdown

Package Overview
Dependencies
Maintainers
2
Versions
97
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@assistant-ui/react-markdown - npm Package Compare versions

Comparing version
0.11.8
to
0.11.9
+4
-4
dist/index.d.ts

@@ -1,5 +0,5 @@

export { MarkdownTextPrimitive, type MarkdownTextPrimitiveProps, } from "./primitives/MarkdownText";
export type { CodeHeaderProps, SyntaxHighlighterProps, } from "./overrides/types";
export { useIsMarkdownCodeBlock } from "./overrides/PreOverride";
export { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from "./memoization";
export { MarkdownTextPrimitive, type MarkdownTextPrimitiveProps, } from "./primitives/MarkdownText.js";
export type { CodeHeaderProps, SyntaxHighlighterProps, } from "./overrides/types.js";
export { useIsMarkdownCodeBlock } from "./overrides/PreOverride.js";
export { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from "./memoization.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,yBAAyB,IAAI,kCAAkC,EAAE,MAAM,eAAe,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,qCAAkC;AAEnC,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,6BAA0B;AAE3B,OAAO,EAAE,sBAAsB,EAAE,mCAAgC;AACjE,OAAO,EAAE,yBAAyB,IAAI,kCAAkC,EAAE,yBAAsB"}

@@ -1,12 +0,4 @@

// src/index.ts
import {
MarkdownTextPrimitive
} from "./primitives/MarkdownText.js";
import { useIsMarkdownCodeBlock } from "./overrides/PreOverride.js";
import { memoizeMarkdownComponents } from "./memoization.js";
export {
MarkdownTextPrimitive,
memoizeMarkdownComponents as unstable_memoizeMarkdownComponents,
useIsMarkdownCodeBlock
};
export { MarkdownTextPrimitive, } from "./primitives/MarkdownText.js";
export { useIsMarkdownCodeBlock } from "./overrides/PreOverride.js";
export { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from "./memoization.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n MarkdownTextPrimitive,\n type MarkdownTextPrimitiveProps,\n} from \"./primitives/MarkdownText\";\n\nexport type {\n CodeHeaderProps,\n SyntaxHighlighterProps,\n} from \"./overrides/types\";\n\nexport { useIsMarkdownCodeBlock } from \"./overrides/PreOverride\";\nexport { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from \"./memoization\";\n"],"mappings":";AAAA;AAAA,EACE;AAAA,OAEK;AAOP,SAAS,8BAA8B;AACvC,SAAsC,iCAA0C;","names":[]}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAEtB,qCAAkC;AAOnC,OAAO,EAAE,sBAAsB,EAAE,mCAAgC;AACjE,OAAO,EAAE,yBAAyB,IAAI,kCAAkC,EAAE,yBAAsB"}

@@ -1,4 +0,4 @@

import { Element } from "hast";
import type { Element } from "hast";
import { ComponentProps, ComponentType, ElementType } from "react";
import { CodeHeaderProps, SyntaxHighlighterProps } from "./overrides/types";
import { CodeHeaderProps, SyntaxHighlighterProps } from "./overrides/types.js";
type Components = {

@@ -5,0 +5,0 @@ [Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;

@@ -1,1 +0,1 @@

{"version":3,"file":"memoization.d.ts","sourceRoot":"","sources":["../src/memoization.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAQ,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,KAAK,UAAU,GAAG;KACf,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;CAC3E,GAAG;IACF,iBAAiB,CAAC,EACd,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,GACnD,SAAS,CAAC;IACd,UAAU,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACvE,CAAC;AAOF,eAAO,MAAM,aAAa,GACxB,MAAM,OAAO,GAAG,SAAS,EACzB,MAAM,OAAO,GAAG,SAAS,YAe1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,EACpC,MAAM;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,YAGrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,aAAY,UAAe;0EAMtB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CAMhE,CAAC"}
{"version":3,"file":"memoization.d.ts","sourceRoot":"","sources":["../src/memoization.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAQ,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,6BAA0B;AAE5E,KAAK,UAAU,GAAG;KACf,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;CAC3E,GAAG;IACF,iBAAiB,CAAC,EACd,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,GACnD,SAAS,CAAC;IACd,UAAU,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACvE,CAAC;AAOF,eAAO,MAAM,aAAa,GACxB,MAAM,OAAO,GAAG,SAAS,EACzB,MAAM,OAAO,GAAG,SAAS,YAe1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,EACpC,MAAM;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,YAGrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,aAAY,UAAe;0EAMtB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CAMhE,CAAC"}

@@ -1,36 +0,33 @@

// src/memoization.tsx
import { jsx as _jsx } from "react/jsx-runtime";
import { memo } from "react";
import { jsx } from "react/jsx-runtime";
var areChildrenEqual = (prev, next) => {
if (typeof prev === "string") return prev === next;
return JSON.stringify(prev) === JSON.stringify(next);
const areChildrenEqual = (prev, next) => {
if (typeof prev === "string")
return prev === next;
return JSON.stringify(prev) === JSON.stringify(next);
};
var areNodesEqual = (prev, next) => {
if (!prev || !next) return false;
const excludeMetadata = (props) => {
const { position, data, ...rest } = props || {};
return rest;
};
return JSON.stringify(excludeMetadata(prev.properties)) === JSON.stringify(excludeMetadata(next.properties)) && areChildrenEqual(prev.children, next.children);
export const areNodesEqual = (prev, next) => {
if (!prev || !next)
return false;
const excludeMetadata = (props) => {
const { position, data, ...rest } = props || {};
return rest;
};
return (JSON.stringify(excludeMetadata(prev.properties)) ===
JSON.stringify(excludeMetadata(next.properties)) &&
areChildrenEqual(prev.children, next.children));
};
var memoCompareNodes = (prev, next) => {
return areNodesEqual(prev.node, next.node);
export const memoCompareNodes = (prev, next) => {
return areNodesEqual(prev.node, next.node);
};
var memoizeMarkdownComponents = (components = {}) => {
return Object.fromEntries(
Object.entries(components ?? {}).map(([key, value]) => {
if (!value) return [key, value];
const Component = value;
const WithoutNode = ({ node, ...props }) => {
return /* @__PURE__ */ jsx(Component, { ...props });
};
return [key, memo(WithoutNode, memoCompareNodes)];
})
);
export const memoizeMarkdownComponents = (components = {}) => {
return Object.fromEntries(Object.entries(components ?? {}).map(([key, value]) => {
if (!value)
return [key, value];
const Component = value;
const WithoutNode = ({ node, ...props }) => {
return _jsx(Component, { ...props });
};
return [key, memo(WithoutNode, memoCompareNodes)];
}));
};
export {
areNodesEqual,
memoCompareNodes,
memoizeMarkdownComponents
};
//# sourceMappingURL=memoization.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/memoization.tsx"],"sourcesContent":["import { Element } from \"hast\";\nimport { ComponentProps, ComponentType, ElementType, memo } from \"react\";\nimport { CodeHeaderProps, SyntaxHighlighterProps } from \"./overrides/types\";\n\ntype Components = {\n [Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;\n} & {\n SyntaxHighlighter?:\n | ComponentType<Omit<SyntaxHighlighterProps, \"node\">>\n | undefined;\n CodeHeader?: ComponentType<Omit<CodeHeaderProps, \"node\">> | undefined;\n};\n\nconst areChildrenEqual = (prev: string | unknown, next: string | unknown) => {\n if (typeof prev === \"string\") return prev === next;\n return JSON.stringify(prev) === JSON.stringify(next);\n};\n\nexport const areNodesEqual = (\n prev: Element | undefined,\n next: Element | undefined,\n) => {\n if (!prev || !next) return false;\n\n const excludeMetadata = (props: Element[\"properties\"]) => {\n const { position, data, ...rest } =\n (props as Record<string, unknown>) || {};\n return rest;\n };\n\n return (\n JSON.stringify(excludeMetadata(prev.properties)) ===\n JSON.stringify(excludeMetadata(next.properties)) &&\n areChildrenEqual(prev.children, next.children)\n );\n};\n\nexport const memoCompareNodes = (\n prev: { node?: Element | undefined },\n next: { node?: Element | undefined },\n) => {\n return areNodesEqual(prev.node, next.node);\n};\n\nexport const memoizeMarkdownComponents = (components: Components = {}) => {\n return Object.fromEntries(\n Object.entries(components ?? {}).map(([key, value]) => {\n if (!value) return [key, value];\n\n const Component = value as ComponentType;\n const WithoutNode = ({ node, ...props }: { node?: Element }) => {\n return <Component {...props} />;\n };\n return [key, memo(WithoutNode, memoCompareNodes)];\n }),\n );\n};\n"],"mappings":";AACA,SAAqD,YAAY;AAkDlD;AAtCf,IAAM,mBAAmB,CAAC,MAAwB,SAA2B;AAC3E,MAAI,OAAO,SAAS,SAAU,QAAO,SAAS;AAC9C,SAAO,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI;AACrD;AAEO,IAAM,gBAAgB,CAC3B,MACA,SACG;AACH,MAAI,CAAC,QAAQ,CAAC,KAAM,QAAO;AAE3B,QAAM,kBAAkB,CAAC,UAAiC;AACxD,UAAM,EAAE,UAAU,MAAM,GAAG,KAAK,IAC7B,SAAqC,CAAC;AACzC,WAAO;AAAA,EACT;AAEA,SACE,KAAK,UAAU,gBAAgB,KAAK,UAAU,CAAC,MAC7C,KAAK,UAAU,gBAAgB,KAAK,UAAU,CAAC,KACjD,iBAAiB,KAAK,UAAU,KAAK,QAAQ;AAEjD;AAEO,IAAM,mBAAmB,CAC9B,MACA,SACG;AACH,SAAO,cAAc,KAAK,MAAM,KAAK,IAAI;AAC3C;AAEO,IAAM,4BAA4B,CAAC,aAAyB,CAAC,MAAM;AACxE,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,UAAI,CAAC,MAAO,QAAO,CAAC,KAAK,KAAK;AAE9B,YAAM,YAAY;AAClB,YAAM,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,MAA0B;AAC9D,eAAO,oBAAC,aAAW,GAAG,OAAO;AAAA,MAC/B;AACA,aAAO,CAAC,KAAK,KAAK,aAAa,gBAAgB,CAAC;AAAA,IAClD,CAAC;AAAA,EACH;AACF;","names":[]}
{"version":3,"file":"memoization.js","sourceRoot":"","sources":["../src/memoization.tsx"],"names":[],"mappings":";AACA,OAAO,EAA8C,IAAI,EAAE,MAAM,OAAO,CAAC;AAYzE,MAAM,gBAAgB,GAAG,CAAC,IAAsB,EAAE,IAAsB,EAAE,EAAE;IAC1E,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,IAAI,CAAC;IACnD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAAyB,EACzB,IAAyB,EACzB,EAAE;IACF,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjC,MAAM,eAAe,GAAG,CAAC,KAA4B,EAAE,EAAE;QACvD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAC9B,KAAiC,IAAI,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC/C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAoC,EACpC,IAAoC,EACpC,EAAE;IACF,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,aAAyB,EAAE,EAAE,EAAE;IACvE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpD,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEhC,MAAM,SAAS,GAAG,KAAsB,CAAC;QACzC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAsB,EAAE,EAAE;YAC7D,OAAO,KAAC,SAAS,OAAK,KAAK,GAAI,CAAC;QAClC,CAAC,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
import { ComponentType, FC } from "react";
import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
import { Element } from "hast";
import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types.js";
import type { Element } from "hast";
export type CodeBlockProps = {

@@ -5,0 +5,0 @@ node: Element | undefined;

@@ -1,1 +0,1 @@

{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAEnD,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;QACpB,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC3C,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC1D,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAqB/C,CAAC"}
{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAEnD,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,mBAAgB;AAEjB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;QACpB,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC3C,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC1D,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAqB/C,CAAC"}

@@ -1,29 +0,9 @@

// src/overrides/CodeBlock.tsx
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { useMemo } from "react";
import { DefaultCodeBlockContent } from "./defaultComponents.js";
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
var DefaultCodeBlock = ({
node,
components: { Pre, Code, SyntaxHighlighter, CodeHeader },
language,
code
}) => {
const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
const SH = language ? SyntaxHighlighter : DefaultCodeBlockContent;
return /* @__PURE__ */ jsxs(Fragment, { children: [
/* @__PURE__ */ jsx(CodeHeader, { node, language, code }),
/* @__PURE__ */ jsx(
SH,
{
node,
components,
language: language ?? "unknown",
code
}
)
] });
export const DefaultCodeBlock = ({ node, components: { Pre, Code, SyntaxHighlighter, CodeHeader }, language, code, }) => {
const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
const SH = language ? SyntaxHighlighter : DefaultCodeBlockContent;
return (_jsxs(_Fragment, { children: [_jsx(CodeHeader, { node: node, language: language, code: code }), _jsx(SH, { node: node, components: components, language: language ?? "unknown", code: code })] }));
};
export {
DefaultCodeBlock
};
//# sourceMappingURL=CodeBlock.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/overrides/CodeBlock.tsx"],"sourcesContent":["import { ComponentType, FC, useMemo } from \"react\";\n\nimport {\n CodeComponent,\n CodeHeaderProps,\n PreComponent,\n SyntaxHighlighterProps,\n} from \"./types\";\nimport { DefaultCodeBlockContent } from \"./defaultComponents\";\nimport { Element } from \"hast\";\n\nexport type CodeBlockProps = {\n node: Element | undefined;\n language: string;\n code: string;\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n};\n\nexport const DefaultCodeBlock: FC<CodeBlockProps> = ({\n node,\n components: { Pre, Code, SyntaxHighlighter, CodeHeader },\n language,\n code,\n}) => {\n const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);\n\n const SH = language ? SyntaxHighlighter : DefaultCodeBlockContent;\n\n return (\n <>\n <CodeHeader node={node} language={language} code={code} />\n <SH\n node={node}\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n />\n </>\n );\n};\n"],"mappings":";AAAA,SAA4B,eAAe;AAQ3C,SAAS,+BAA+B;AA0BpC,mBACE,KADF;AAXG,IAAM,mBAAuC,CAAC;AAAA,EACnD;AAAA,EACA,YAAY,EAAE,KAAK,MAAM,mBAAmB,WAAW;AAAA,EACvD;AAAA,EACA;AACF,MAAM;AACJ,QAAM,aAAa,QAAQ,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAE7D,QAAM,KAAK,WAAW,oBAAoB;AAE1C,SACE,iCACE;AAAA,wBAAC,cAAW,MAAY,UAAoB,MAAY;AAAA,IACxD;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,UAAU,YAAY;AAAA,QACtB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
{"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../src/overrides/CodeBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,OAAO,EAAE,MAAM,OAAO,CAAC;AAQnD,OAAO,EAAE,uBAAuB,EAAE,+BAA4B;AAe9D,MAAM,CAAC,MAAM,gBAAgB,GAAuB,CAAC,EACnD,IAAI,EACJ,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,EACxD,QAAQ,EACR,IAAI,GACL,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/D,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAElE,OAAO,CACL,8BACE,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAI,EAC1D,KAAC,EAAE,IACD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAC/B,IAAI,EAAE,IAAI,GACV,IACD,CACJ,CAAC;AACJ,CAAC,CAAC"}
import { ComponentPropsWithoutRef, ComponentType } from "react";
import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types.js";
export type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {

@@ -4,0 +4,0 @@ components: {

@@ -1,1 +0,1 @@

{"version":3,"file":"CodeOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeOverride.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,aAAa,EAId,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAiEjB,MAAM,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,aAAa,CAAC,GAAG;IACxE,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;QACpB,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC3C,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC1D,CAAC;IACF,oBAAoB,CAAC,EACjB,MAAM,CACJ,MAAM,EACN;QACE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC5C,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC3D,CACF,GACD,SAAS,CAAC;CACf,CAAC;AAoBF,eAAO,MAAM,YAAY,yDAMvB,CAAC"}
{"version":3,"file":"CodeOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/CodeOverride.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,aAAa,EAId,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,mBAAgB;AAiEjB,MAAM,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,aAAa,CAAC,GAAG;IACxE,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;QACpB,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC3C,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC1D,CAAC;IACF,oBAAoB,CAAC,EACjB,MAAM,CACJ,MAAM,EACN;QACE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAC5C,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KAC3D,CACF,GACD,SAAS,CAAC;CACf,CAAC;AAoBF,eAAO,MAAM,YAAY,yDAMvB,CAAC"}

@@ -1,6 +0,3 @@

// src/overrides/CodeOverride.tsx
import {
memo,
useContext
} from "react";
import { jsx as _jsx } from "react/jsx-runtime";
import { memo, useContext, } from "react";
import { PreContext, useIsMarkdownCodeBlock } from "./PreOverride.js";

@@ -12,73 +9,35 @@ import { DefaultCodeBlock } from "./CodeBlock.js";

import { memoCompareNodes } from "../memoization.js";
import { jsx } from "react/jsx-runtime";
var CodeBlockOverride = ({
node,
components: {
Pre,
Code,
SyntaxHighlighter: FallbackSyntaxHighlighter,
CodeHeader: FallbackCodeHeader
},
componentsByLanguage = {},
children,
...codeProps
}) => {
const preProps = useContext(PreContext);
const getPreProps = withDefaultProps(preProps);
const WrappedPre = useCallbackRef((props) => /* @__PURE__ */ jsx(Pre, { ...getPreProps(props) }));
const getCodeProps = withDefaultProps(codeProps);
const WrappedCode = useCallbackRef((props) => /* @__PURE__ */ jsx(Code, { ...getCodeProps(props) }));
const language = /language-(\w+)/.exec(codeProps.className || "")?.[1] ?? "";
if (typeof children !== "string") {
return /* @__PURE__ */ jsx(
DefaultCodeBlockContent,
{
node,
components: { Pre: WrappedPre, Code: WrappedCode },
code: children
}
);
}
const SyntaxHighlighter = componentsByLanguage[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
const CodeHeader = componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;
return /* @__PURE__ */ jsx(
DefaultCodeBlock,
{
node,
components: {
Pre: WrappedPre,
Code: WrappedCode,
SyntaxHighlighter,
CodeHeader
},
language: language || "unknown",
code: children
const CodeBlockOverride = ({ node, components: { Pre, Code, SyntaxHighlighter: FallbackSyntaxHighlighter, CodeHeader: FallbackCodeHeader, }, componentsByLanguage = {}, children, ...codeProps }) => {
const preProps = useContext(PreContext);
const getPreProps = withDefaultProps(preProps);
const WrappedPre = useCallbackRef((props) => (_jsx(Pre, { ...getPreProps(props) })));
const getCodeProps = withDefaultProps(codeProps);
const WrappedCode = useCallbackRef((props) => (_jsx(Code, { ...getCodeProps(props) })));
const language = /language-(\w+)/.exec(codeProps.className || "")?.[1] ?? "";
// if the code content is not string (due to rehype plugins), return a default code block
if (typeof children !== "string") {
return (_jsx(DefaultCodeBlockContent, { node: node, components: { Pre: WrappedPre, Code: WrappedCode }, code: children }));
}
);
const SyntaxHighlighter = componentsByLanguage[language]?.SyntaxHighlighter ??
FallbackSyntaxHighlighter;
const CodeHeader = componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;
return (_jsx(DefaultCodeBlock, { node: node, components: {
Pre: WrappedPre,
Code: WrappedCode,
SyntaxHighlighter,
CodeHeader,
}, language: language || "unknown", code: children }));
};
var CodeOverrideImpl = ({
node,
components,
componentsByLanguage,
...props
}) => {
const isCodeBlock = useIsMarkdownCodeBlock();
if (!isCodeBlock) return /* @__PURE__ */ jsx(components.Code, { ...props });
return /* @__PURE__ */ jsx(
CodeBlockOverride,
{
node,
components,
componentsByLanguage,
...props
}
);
const CodeOverrideImpl = ({ node, components, componentsByLanguage, ...props }) => {
const isCodeBlock = useIsMarkdownCodeBlock();
if (!isCodeBlock)
return _jsx(components.Code, { ...props });
return (_jsx(CodeBlockOverride, { node: node, components: components, componentsByLanguage: componentsByLanguage, ...props }));
};
var CodeOverride = memo(CodeOverrideImpl, (prev, next) => {
const isEqual = prev.components === next.components && prev.componentsByLanguage === next.componentsByLanguage && memoCompareNodes(prev, next);
return isEqual;
export const CodeOverride = memo(CodeOverrideImpl, (prev, next) => {
const isEqual = prev.components === next.components &&
prev.componentsByLanguage === next.componentsByLanguage &&
memoCompareNodes(prev, next);
return isEqual;
});
export {
CodeOverride
};
//# sourceMappingURL=CodeOverride.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/overrides/CodeOverride.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n ComponentType,\n FC,\n memo,\n useContext,\n} from \"react\";\nimport { PreContext, useIsMarkdownCodeBlock } from \"./PreOverride\";\nimport {\n CodeComponent,\n CodeHeaderProps,\n PreComponent,\n SyntaxHighlighterProps,\n} from \"./types\";\nimport { DefaultCodeBlock } from \"./CodeBlock\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { withDefaultProps } from \"./withDefaults\";\nimport { DefaultCodeBlockContent } from \"./defaultComponents\";\nimport { memoCompareNodes } from \"../memoization\";\n\nconst CodeBlockOverride: FC<CodeOverrideProps> = ({\n node,\n components: {\n Pre,\n Code,\n SyntaxHighlighter: FallbackSyntaxHighlighter,\n CodeHeader: FallbackCodeHeader,\n },\n componentsByLanguage = {},\n children,\n ...codeProps\n}) => {\n const preProps = useContext(PreContext)!;\n const getPreProps = withDefaultProps<any>(preProps);\n const WrappedPre: PreComponent = useCallbackRef((props) => (\n <Pre {...getPreProps(props)} />\n ));\n\n const getCodeProps = withDefaultProps<any>(codeProps);\n const WrappedCode: CodeComponent = useCallbackRef((props) => (\n <Code {...getCodeProps(props)} />\n ));\n\n const language = /language-(\\w+)/.exec(codeProps.className || \"\")?.[1] ?? \"\";\n\n // if the code content is not string (due to rehype plugins), return a default code block\n if (typeof children !== \"string\") {\n return (\n <DefaultCodeBlockContent\n node={node}\n components={{ Pre: WrappedPre, Code: WrappedCode }}\n code={children}\n />\n );\n }\n\n const SyntaxHighlighter: ComponentType<SyntaxHighlighterProps> =\n componentsByLanguage[language]?.SyntaxHighlighter ??\n FallbackSyntaxHighlighter;\n\n const CodeHeader: ComponentType<CodeHeaderProps> =\n componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;\n\n return (\n <DefaultCodeBlock\n node={node}\n components={{\n Pre: WrappedPre,\n Code: WrappedCode,\n SyntaxHighlighter,\n CodeHeader,\n }}\n language={language || \"unknown\"}\n code={children}\n />\n );\n};\n\nexport type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n CodeHeader: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;\n };\n componentsByLanguage?:\n | Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps>;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;\n }\n >\n | undefined;\n};\n\nconst CodeOverrideImpl: FC<CodeOverrideProps> = ({\n node,\n components,\n componentsByLanguage,\n ...props\n}) => {\n const isCodeBlock = useIsMarkdownCodeBlock();\n if (!isCodeBlock) return <components.Code {...props} />;\n return (\n <CodeBlockOverride\n node={node}\n components={components}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n );\n};\n\nexport const CodeOverride = memo(CodeOverrideImpl, (prev, next) => {\n const isEqual =\n prev.components === next.components &&\n prev.componentsByLanguage === next.componentsByLanguage &&\n memoCompareNodes(prev, next);\n return isEqual;\n});\n"],"mappings":";AAAA;AAAA,EAIE;AAAA,EACA;AAAA,OACK;AACP,SAAS,YAAY,8BAA8B;AAOnD,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,+BAA+B;AACxC,SAAS,wBAAwB;AAiB7B;AAfJ,IAAM,oBAA2C,CAAC;AAAA,EAChD;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB,YAAY;AAAA,EACd;AAAA,EACA,uBAAuB,CAAC;AAAA,EACxB;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,WAAW,WAAW,UAAU;AACtC,QAAM,cAAc,iBAAsB,QAAQ;AAClD,QAAM,aAA2B,eAAe,CAAC,UAC/C,oBAAC,OAAK,GAAG,YAAY,KAAK,GAAG,CAC9B;AAED,QAAM,eAAe,iBAAsB,SAAS;AACpD,QAAM,cAA6B,eAAe,CAAC,UACjD,oBAAC,QAAM,GAAG,aAAa,KAAK,GAAG,CAChC;AAED,QAAM,WAAW,iBAAiB,KAAK,UAAU,aAAa,EAAE,IAAI,CAAC,KAAK;AAG1E,MAAI,OAAO,aAAa,UAAU;AAChC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,YAAY,EAAE,KAAK,YAAY,MAAM,YAAY;AAAA,QACjD,MAAM;AAAA;AAAA,IACR;AAAA,EAEJ;AAEA,QAAM,oBACJ,qBAAqB,QAAQ,GAAG,qBAChC;AAEF,QAAM,aACJ,qBAAqB,QAAQ,GAAG,cAAc;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,MAAM;AAAA;AAAA,EACR;AAEJ;AAoBA,IAAM,mBAA0C,CAAC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAc,uBAAuB;AAC3C,MAAI,CAAC,YAAa,QAAO,oBAAC,WAAW,MAAX,EAAiB,GAAG,OAAO;AACrD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,IAAM,eAAe,KAAK,kBAAkB,CAAC,MAAM,SAAS;AACjE,QAAM,UACJ,KAAK,eAAe,KAAK,cACzB,KAAK,yBAAyB,KAAK,wBACnC,iBAAiB,MAAM,IAAI;AAC7B,SAAO;AACT,CAAC;","names":[]}
{"version":3,"file":"CodeOverride.js","sourceRoot":"","sources":["../../src/overrides/CodeOverride.tsx"],"names":[],"mappings":"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"}
import type { ComponentType, ReactNode } from "react";
import { PreComponent, CodeComponent, CodeHeaderProps } from "./types";
import { Element } from "hast";
import { PreComponent, CodeComponent, CodeHeaderProps } from "./types.js";
import type { Element } from "hast";
export declare const DefaultPre: PreComponent;

@@ -5,0 +5,0 @@ export declare const DefaultCode: CodeComponent;

@@ -1,1 +0,1 @@

{"version":3,"file":"defaultComponents.d.ts","sourceRoot":"","sources":["../../src/overrides/defaultComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,eAAO,MAAM,UAAU,EAAE,YAExB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,aAEzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC;IAClD,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE;QAAE,GAAG,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IACvD,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC,CAIA,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,eAAe,CAAc,CAAC"}
{"version":3,"file":"defaultComponents.d.ts","sourceRoot":"","sources":["../../src/overrides/defaultComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAgB;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,eAAO,MAAM,UAAU,EAAE,YAExB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,aAEzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC;IAClD,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE;QAAE,GAAG,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IACvD,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC,CAIA,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,eAAe,CAAc,CAAC"}

@@ -1,13 +0,6 @@

// src/overrides/defaultComponents.tsx
import { jsx } from "react/jsx-runtime";
var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ jsx("pre", { ...rest });
var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ jsx("code", { ...rest });
var DefaultCodeBlockContent = ({ node, components: { Pre, Code }, code }) => /* @__PURE__ */ jsx(Pre, { children: /* @__PURE__ */ jsx(Code, { node, children: code }) });
var DefaultCodeHeader = () => null;
export {
DefaultCode,
DefaultCodeBlockContent,
DefaultCodeHeader,
DefaultPre
};
import { jsx as _jsx } from "react/jsx-runtime";
export const DefaultPre = ({ node, ...rest }) => (_jsx("pre", { ...rest }));
export const DefaultCode = ({ node, ...rest }) => (_jsx("code", { ...rest }));
export const DefaultCodeBlockContent = ({ node, components: { Pre, Code }, code }) => (_jsx(Pre, { children: _jsx(Code, { node: node, children: code }) }));
export const DefaultCodeHeader = () => null;
//# sourceMappingURL=defaultComponents.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\nimport { Element } from \"hast\";\n\nexport const DefaultPre: PreComponent = ({ node, ...rest }) => (\n <pre {...rest} />\n);\n\nexport const DefaultCode: CodeComponent = ({ node, ...rest }) => (\n <code {...rest} />\n);\n\nexport const DefaultCodeBlockContent: ComponentType<{\n node: Element | undefined;\n components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n}> = ({ node, components: { Pre, Code }, code }) => (\n <Pre>\n <Code node={node}>{code}</Code>\n </Pre>\n);\n\nexport const DefaultCodeHeader: ComponentType<CodeHeaderProps> = () => null;\n"],"mappings":";AAKE;AADK,IAAM,aAA2B,CAAC,EAAE,MAAM,GAAG,KAAK,MACvD,oBAAC,SAAK,GAAG,MAAM;AAGV,IAAM,cAA6B,CAAC,EAAE,MAAM,GAAG,KAAK,MACzD,oBAAC,UAAM,GAAG,MAAM;AAGX,IAAM,0BAIR,CAAC,EAAE,MAAM,YAAY,EAAE,KAAK,KAAK,GAAG,KAAK,MAC5C,oBAAC,OACC,8BAAC,QAAK,MAAa,gBAAK,GAC1B;AAGK,IAAM,oBAAoD,MAAM;","names":[]}
{"version":3,"file":"defaultComponents.js","sourceRoot":"","sources":["../../src/overrides/defaultComponents.tsx"],"names":[],"mappings":";AAIA,MAAM,CAAC,MAAM,UAAU,GAAiB,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAC7D,iBAAS,IAAI,GAAI,CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAkB,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAC/D,kBAAU,IAAI,GAAI,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAI/B,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAClD,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,YAAG,IAAI,GAAQ,GAC3B,CACP,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAmC,GAAG,EAAE,CAAC,IAAI,CAAC"}
"use client";
// src/overrides/PreOverride.tsx
import {
createContext,
useContext,
memo
} from "react";
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useContext, memo, } from "react";
import { memoCompareNodes } from "../memoization.js";
import { jsx } from "react/jsx-runtime";
var PreContext = createContext(null);
var useIsMarkdownCodeBlock = () => {
return useContext(PreContext) !== null;
export const PreContext = createContext(null);
export const useIsMarkdownCodeBlock = () => {
return useContext(PreContext) !== null;
};
var PreOverrideImpl = ({ children, ...rest }) => {
return /* @__PURE__ */ jsx(PreContext.Provider, { value: rest, children });
const PreOverrideImpl = ({ children, ...rest }) => {
return _jsx(PreContext.Provider, { value: rest, children: children });
};
var PreOverride = memo(PreOverrideImpl, memoCompareNodes);
export {
PreContext,
PreOverride,
useIsMarkdownCodeBlock
};
export const PreOverride = memo(PreOverrideImpl, memoCompareNodes);
//# sourceMappingURL=PreOverride.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/overrides/PreOverride.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n ComponentPropsWithoutRef,\n useContext,\n memo,\n} from \"react\";\nimport { PreComponent } from \"./types\";\nimport { memoCompareNodes } from \"../memoization\";\n\nexport const PreContext = createContext<Omit<\n ComponentPropsWithoutRef<PreComponent>,\n \"children\"\n> | null>(null);\n\nexport const useIsMarkdownCodeBlock = () => {\n return useContext(PreContext) !== null;\n};\n\nconst PreOverrideImpl: PreComponent = ({ children, ...rest }) => {\n return <PreContext.Provider value={rest}>{children}</PreContext.Provider>;\n};\n\nexport const PreOverride = memo(PreOverrideImpl, memoCompareNodes);\n"],"mappings":";;;AAEA;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,wBAAwB;AAYxB;AAVF,IAAM,aAAa,cAGhB,IAAI;AAEP,IAAM,yBAAyB,MAAM;AAC1C,SAAO,WAAW,UAAU,MAAM;AACpC;AAEA,IAAM,kBAAgC,CAAC,EAAE,UAAU,GAAG,KAAK,MAAM;AAC/D,SAAO,oBAAC,WAAW,UAAX,EAAoB,OAAO,MAAO,UAAS;AACrD;AAEO,IAAM,cAAc,KAAK,iBAAiB,gBAAgB;","names":[]}
{"version":3,"file":"PreOverride.js","sourceRoot":"","sources":["../../src/overrides/PreOverride.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,aAAa,EAEb,UAAU,EACV,IAAI,GACL,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,gBAAgB,EAAE,0BAAuB;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAG7B,IAAI,CAAC,CAAC;AAEhB,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,OAAO,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC9D,OAAO,KAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YAAG,QAAQ,GAAuB,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC"}

@@ -1,2 +0,2 @@

import { Element } from "hast";
import type { Element } from "hast";
import { ComponentPropsWithoutRef, ComponentType } from "react";

@@ -3,0 +3,0 @@ export type PreComponent = ComponentType<ComponentPropsWithoutRef<"pre"> & {

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/overrides/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,aAAa,CACtC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CACjE,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,CACvC,wBAAwB,CAAC,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAClE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/overrides/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,aAAa,CACtC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CACjE,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,CACvC,wBAAwB,CAAC,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAClE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE;QACV,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}

@@ -0,1 +1,2 @@

export {};
//# sourceMappingURL=types.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/overrides/types.ts"],"names":[],"mappings":""}

@@ -1,16 +0,9 @@

// src/overrides/withDefaults.tsx
import classNames from "classnames";
var withDefaultProps = ({
className,
...defaultProps
}) => ({ className: classNameProp, ...props }) => {
return {
className: classNames(className, classNameProp),
...defaultProps,
...props
};
export const withDefaultProps = ({ className, ...defaultProps }) => ({ className: classNameProp, ...props }) => {
return {
className: classNames(className, classNameProp),
...defaultProps,
...props,
};
};
export {
withDefaultProps
};
//# sourceMappingURL=withDefaults.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/overrides/withDefaults.tsx"],"sourcesContent":["import classNames from \"classnames\";\n\nexport const withDefaultProps =\n <TProps extends { className?: string | undefined }>({\n className,\n ...defaultProps\n }: Partial<TProps>) =>\n ({ className: classNameProp, ...props }: TProps) => {\n return {\n className: classNames(className, classNameProp),\n ...defaultProps,\n ...props,\n } as TProps;\n };\n"],"mappings":";AAAA,OAAO,gBAAgB;AAEhB,IAAM,mBACX,CAAoD;AAAA,EAClD;AAAA,EACA,GAAG;AACL,MACA,CAAC,EAAE,WAAW,eAAe,GAAG,MAAM,MAAc;AAClD,SAAO;AAAA,IACL,WAAW,WAAW,WAAW,aAAa;AAAA,IAC9C,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;","names":[]}
{"version":3,"file":"withDefaults.js","sourceRoot":"","sources":["../../src/overrides/withDefaults.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,MAAM,CAAC,MAAM,gBAAgB,GAC3B,CAAoD,EAClD,SAAS,EACT,GAAG,YAAY,EACC,EAAE,EAAE,CACtB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,EAAU,EAAE,EAAE;IACjD,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC;QAC/C,GAAG,YAAY;QACf,GAAG,KAAK;KACC,CAAC;AACd,CAAC,CAAC"}
import { ElementType, ForwardRefExoticComponent, RefAttributes, type ComponentPropsWithoutRef, type ComponentType } from "react";
import { type Options } from "react-markdown";
import { SyntaxHighlighterProps, CodeHeaderProps } from "../overrides/types";
import { SyntaxHighlighterProps, CodeHeaderProps } from "../overrides/types.js";
import { Primitive } from "@radix-ui/react-primitive";

@@ -5,0 +5,0 @@ type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;

@@ -1,1 +0,1 @@

{"version":3,"file":"MarkdownText.d.ts","sourceRoot":"","sources":["../../src/primitives/MarkdownText.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,WAAW,EAGX,yBAAyB,EACzB,aAAa,EAEb,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AACf,OAAsB,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAU7E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD,KAAK,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AAExE,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,OAAO,EACP,YAAY,GAAG,UAAU,CAC1B,GAAG;IACF,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC7E,kBAAkB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC7C,UAAU,CAAC,EACP,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;QACpC,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;QACtE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;KACzD,CAAC,GACF,SAAS,CAAC;IACd;;;OAGG;IACH,oBAAoB,CAAC,EACjB,MAAM,CACJ,MAAM,EACN;QACE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;QACxD,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;KACvE,CACF,GACD,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC,CAAC;AA2FF,eAAO,MAAM,qBAAqB,uFAEjC,CAAC"}
{"version":3,"file":"MarkdownText.d.ts","sourceRoot":"","sources":["../../src/primitives/MarkdownText.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,WAAW,EAGX,yBAAyB,EACzB,aAAa,EAEb,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AACf,OAAsB,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,8BAA2B;AAU7E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD,KAAK,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AAExE,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,OAAO,EACP,YAAY,GAAG,UAAU,CAC1B,GAAG;IACF,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC7E,kBAAkB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC7C,UAAU,CAAC,EACP,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;QACpC,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;QACtE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;KACzD,CAAC,GACF,SAAS,CAAC;IACd;;;OAGG;IACH,oBAAoB,CAAC,EACjB,MAAM,CACJ,MAAM,EACN;QACE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;QACxD,iBAAiB,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;KACvE,CACF,GACD,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC,CAAC;AA2FF,eAAO,MAAM,qBAAqB,uFAEjC,CAAC"}
"use client";
// src/primitives/MarkdownText.tsx
import { jsx as _jsx } from "react/jsx-runtime";
import { INTERNAL, useMessagePartText } from "@assistant-ui/react";
import {
forwardRef,
useMemo
} from "react";
import { forwardRef, useMemo, } from "react";
import ReactMarkdown from "react-markdown";
import { PreOverride } from "../overrides/PreOverride.js";
import {
DefaultPre,
DefaultCode,
DefaultCodeBlockContent,
DefaultCodeHeader
} from "../overrides/defaultComponents.js";
import { DefaultPre, DefaultCode, DefaultCodeBlockContent, DefaultCodeHeader, } from "../overrides/defaultComponents.js";
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
import { CodeOverride } from "../overrides/CodeOverride.js";
import classNames from "classnames";
import { jsx } from "react/jsx-runtime";
var { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;
var MarkdownTextInner = ({
components: userComponents,
componentsByLanguage,
smooth = true,
preprocess,
...rest
}) => {
const messagePartText = useMessagePartText();
const processedMessagePart = useMemo(() => {
if (!preprocess) return messagePartText;
return {
...messagePartText,
text: preprocess(messagePartText.text)
};
}, [messagePartText, preprocess]);
const { text } = useSmooth(processedMessagePart, smooth);
const {
pre = DefaultPre,
code = DefaultCode,
SyntaxHighlighter = DefaultCodeBlockContent,
CodeHeader = DefaultCodeHeader
} = userComponents ?? {};
const useCodeOverrideComponents = useMemo(() => {
return {
Pre: pre,
Code: code,
SyntaxHighlighter,
CodeHeader
};
}, [pre, code, SyntaxHighlighter, CodeHeader]);
const CodeComponent = useCallbackRef((props) => /* @__PURE__ */ jsx(
CodeOverride,
{
components: useCodeOverrideComponents,
componentsByLanguage,
...props
}
));
const components = useMemo(() => {
const { pre: pre2, code: code2, SyntaxHighlighter: SyntaxHighlighter2, CodeHeader: CodeHeader2, ...componentsRest } = userComponents ?? {};
return {
...componentsRest,
pre: PreOverride,
code: CodeComponent
};
}, [CodeComponent, userComponents]);
return /* @__PURE__ */ jsx(ReactMarkdown, { components, ...rest, children: text });
const { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;
const MarkdownTextInner = ({ components: userComponents, componentsByLanguage, smooth = true, preprocess, ...rest }) => {
const messagePartText = useMessagePartText();
const processedMessagePart = useMemo(() => {
if (!preprocess)
return messagePartText;
return {
...messagePartText,
text: preprocess(messagePartText.text),
};
}, [messagePartText, preprocess]);
const { text } = useSmooth(processedMessagePart, smooth);
const { pre = DefaultPre, code = DefaultCode, SyntaxHighlighter = DefaultCodeBlockContent, CodeHeader = DefaultCodeHeader, } = userComponents ?? {};
const useCodeOverrideComponents = useMemo(() => {
return {
Pre: pre,
Code: code,
SyntaxHighlighter,
CodeHeader,
};
}, [pre, code, SyntaxHighlighter, CodeHeader]);
const CodeComponent = useCallbackRef((props) => (_jsx(CodeOverride, { components: useCodeOverrideComponents, componentsByLanguage: componentsByLanguage, ...props })));
const components = useMemo(() => {
const { pre, code, SyntaxHighlighter, CodeHeader, ...componentsRest } = userComponents ?? {};
return {
...componentsRest,
pre: PreOverride,
code: CodeComponent,
};
}, [CodeComponent, userComponents]);
return (_jsx(ReactMarkdown, { components: components, ...rest, children: text }));
};
var MarkdownTextPrimitiveImpl = forwardRef(
({
className,
containerProps,
containerComponent: Container = "div",
...rest
}, forwardedRef) => {
const MarkdownTextPrimitiveImpl = forwardRef(({ className, containerProps, containerComponent: Container = "div", ...rest }, forwardedRef) => {
const status = useSmoothStatus();
return /* @__PURE__ */ jsx(
Container,
{
"data-status": status.type,
...containerProps,
className: classNames(className, containerProps?.className),
ref: forwardedRef,
children: /* @__PURE__ */ jsx(MarkdownTextInner, { ...rest })
}
);
}
);
return (_jsx(Container, { "data-status": status.type, ...containerProps, className: classNames(className, containerProps?.className), ref: forwardedRef, children: _jsx(MarkdownTextInner, { ...rest }) }));
});
MarkdownTextPrimitiveImpl.displayName = "MarkdownTextPrimitive";
var MarkdownTextPrimitive = withSmoothContextProvider(
MarkdownTextPrimitiveImpl
);
export {
MarkdownTextPrimitive
};
export const MarkdownTextPrimitive = withSmoothContextProvider(MarkdownTextPrimitiveImpl);
//# sourceMappingURL=MarkdownText.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/primitives/MarkdownText.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useMessagePartText } from \"@assistant-ui/react\";\nimport {\n ComponentRef,\n ElementType,\n FC,\n forwardRef,\n ForwardRefExoticComponent,\n RefAttributes,\n useMemo,\n type ComponentPropsWithoutRef,\n type ComponentType,\n} from \"react\";\nimport ReactMarkdown, { type Options } from \"react-markdown\";\nimport { SyntaxHighlighterProps, CodeHeaderProps } from \"../overrides/types\";\nimport { PreOverride } from \"../overrides/PreOverride\";\nimport {\n DefaultPre,\n DefaultCode,\n DefaultCodeBlockContent,\n DefaultCodeHeader,\n} from \"../overrides/defaultComponents\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { CodeOverride } from \"../overrides/CodeOverride\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport classNames from \"classnames\";\n\nconst { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;\n\ntype MarkdownTextPrimitiveElement = ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;\n\nexport type MarkdownTextPrimitiveProps = Omit<\n Options,\n \"components\" | \"children\"\n> & {\n className?: string | undefined;\n containerProps?: Omit<PrimitiveDivProps, \"children\" | \"asChild\"> | undefined;\n containerComponent?: ElementType | undefined;\n components?:\n | (NonNullable<Options[\"components\"]> & {\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;\n CodeHeader?: ComponentType<CodeHeaderProps> | undefined;\n })\n | undefined;\n /**\n * Language-specific component overrides.\n * @example { mermaid: { SyntaxHighlighter: MermaidDiagram } }\n */\n componentsByLanguage?:\n | Record<\n string,\n {\n CodeHeader?: ComponentType<CodeHeaderProps> | undefined;\n SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;\n }\n >\n | undefined;\n smooth?: boolean | undefined;\n /**\n * Function to transform text before markdown processing.\n */\n preprocess?: (text: string) => string;\n};\n\nconst MarkdownTextInner: FC<MarkdownTextPrimitiveProps> = ({\n components: userComponents,\n componentsByLanguage,\n smooth = true,\n preprocess,\n ...rest\n}) => {\n const messagePartText = useMessagePartText();\n\n const processedMessagePart = useMemo(() => {\n if (!preprocess) return messagePartText;\n\n return {\n ...messagePartText,\n text: preprocess(messagePartText.text),\n };\n }, [messagePartText, preprocess]);\n\n const { text } = useSmooth(processedMessagePart, smooth);\n\n const {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n } = userComponents ?? {};\n const useCodeOverrideComponents = useMemo(() => {\n return {\n Pre: pre,\n Code: code,\n SyntaxHighlighter,\n CodeHeader,\n };\n }, [pre, code, SyntaxHighlighter, CodeHeader]);\n const CodeComponent = useCallbackRef((props) => (\n <CodeOverride\n components={useCodeOverrideComponents}\n componentsByLanguage={componentsByLanguage}\n {...props}\n />\n ));\n\n const components: Options[\"components\"] = useMemo(() => {\n const { pre, code, SyntaxHighlighter, CodeHeader, ...componentsRest } =\n userComponents ?? {};\n return {\n ...componentsRest,\n pre: PreOverride,\n code: CodeComponent,\n };\n }, [CodeComponent, userComponents]);\n\n return (\n <ReactMarkdown components={components} {...rest}>\n {text}\n </ReactMarkdown>\n );\n};\n\nconst MarkdownTextPrimitiveImpl: ForwardRefExoticComponent<MarkdownTextPrimitiveProps> &\n RefAttributes<MarkdownTextPrimitiveElement> = forwardRef<\n MarkdownTextPrimitiveElement,\n MarkdownTextPrimitiveProps\n>(\n (\n {\n className,\n containerProps,\n containerComponent: Container = \"div\",\n ...rest\n },\n forwardedRef,\n ) => {\n const status = useSmoothStatus();\n return (\n <Container\n data-status={status.type}\n {...containerProps}\n className={classNames(className, containerProps?.className)}\n ref={forwardedRef}\n >\n <MarkdownTextInner {...rest}></MarkdownTextInner>\n </Container>\n );\n },\n);\n\nMarkdownTextPrimitiveImpl.displayName = \"MarkdownTextPrimitive\";\n\nexport const MarkdownTextPrimitive = withSmoothContextProvider(\n MarkdownTextPrimitiveImpl,\n);\n"],"mappings":";;;AAEA,SAAS,UAAU,0BAA0B;AAC7C;AAAA,EAIE;AAAA,EAGA;AAAA,OAGK;AACP,OAAO,mBAAqC;AAE5C,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAE7B,OAAO,gBAAgB;AA2EnB;AAzEJ,IAAM,EAAE,WAAW,iBAAiB,0BAA0B,IAAI;AAsClE,IAAM,oBAAoD,CAAC;AAAA,EACzD,YAAY;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,kBAAkB,mBAAmB;AAE3C,QAAM,uBAAuB,QAAQ,MAAM;AACzC,QAAI,CAAC,WAAY,QAAO;AAExB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM,WAAW,gBAAgB,IAAI;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,iBAAiB,UAAU,CAAC;AAEhC,QAAM,EAAE,KAAK,IAAI,UAAU,sBAAsB,MAAM;AAEvD,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACf,IAAI,kBAAkB,CAAC;AACvB,QAAM,4BAA4B,QAAQ,MAAM;AAC9C,WAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,MAAM,mBAAmB,UAAU,CAAC;AAC7C,QAAM,gBAAgB,eAAe,CAAC,UACpC;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ;AAAA,MACC,GAAG;AAAA;AAAA,EACN,CACD;AAED,QAAM,aAAoC,QAAQ,MAAM;AACtD,UAAM,EAAE,KAAAA,MAAK,MAAAC,OAAM,mBAAAC,oBAAmB,YAAAC,aAAY,GAAG,eAAe,IAClE,kBAAkB,CAAC;AACrB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF,GAAG,CAAC,eAAe,cAAc,CAAC;AAElC,SACE,oBAAC,iBAAc,YAAyB,GAAG,MACxC,gBACH;AAEJ;AAEA,IAAM,4BAC0C;AAAA,EAI9C,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,oBAAoB,YAAY;AAAA,IAChC,GAAG;AAAA,EACL,GACA,iBACG;AACH,UAAM,SAAS,gBAAgB;AAC/B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAa,OAAO;AAAA,QACnB,GAAG;AAAA,QACJ,WAAW,WAAW,WAAW,gBAAgB,SAAS;AAAA,QAC1D,KAAK;AAAA,QAEL,8BAAC,qBAAmB,GAAG,MAAM;AAAA;AAAA,IAC/B;AAAA,EAEJ;AACF;AAEA,0BAA0B,cAAc;AAEjC,IAAM,wBAAwB;AAAA,EACnC;AACF;","names":["pre","code","SyntaxHighlighter","CodeHeader"]}
{"version":3,"file":"MarkdownText.js","sourceRoot":"","sources":["../../src/primitives/MarkdownText.tsx"],"names":[],"mappings":"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"}
{
"name": "@assistant-ui/react-markdown",
"version": "0.11.8",
"version": "0.11.9",
"description": "Markdown rendering for assistant-ui",
"keywords": [
"markdown",
"react-markdown",
"assistant-ui",
"react",
"ai",
"chat",
"rendering"
],
"author": "AgentbaseAI Inc.",
"license": "MIT",

@@ -8,2 +19,3 @@ "type": "module",

".": {
"aui-source": "./src/index.ts",
"types": "./dist/index.d.ts",

@@ -16,3 +28,2 @@ "default": "./dist/index.js"

},
"source": "./src/index.ts",
"main": "./dist/index.js",

@@ -30,3 +41,2 @@ "types": "./dist/index.d.ts",

"@radix-ui/react-use-callback-ref": "^1.1.1",
"@types/hast": "^3.0.4",
"classnames": "^2.5.1",

@@ -36,5 +46,5 @@ "react-markdown": "^10.1.0"

"peerDependencies": {
"@assistant-ui/react": "^0.11.50",
"@assistant-ui/react": "^0.11.53",
"@types/react": "*",
"react": "^18 || ^19 || ^19.0.0-rc"
"react": "^18 || ^19"
},

@@ -47,8 +57,8 @@ "peerDependenciesMeta": {

"devDependencies": {
"@types/node": "^25.0.0",
"@types/hast": "^3.0.4",
"@types/react": "^19.2.7",
"react": "19.2.3",
"react-dom": "19.2.3",
"tsx": "^4.21.0",
"vitest": "^4.0.15",
"@assistant-ui/react": "0.11.50",
"vitest": "^4.0.16",
"@assistant-ui/react": "0.11.53",
"@assistant-ui/x-buildutils": "0.0.1"

@@ -63,3 +73,4 @@ },

"type": "git",
"url": "https://github.com/assistant-ui/assistant-ui/tree/main/packages/react-markdown"
"url": "git+https://github.com/assistant-ui/assistant-ui.git",
"directory": "packages/react-markdown"
},

@@ -70,3 +81,3 @@ "bugs": {

"scripts": {
"build": "tsx scripts/build.mts",
"build": "aui-build",
"test": "vitest run",

@@ -73,0 +84,0 @@ "test:watch": "vitest"

@@ -1,2 +0,2 @@

import { Element } from "hast";
import type { Element } from "hast";
import { ComponentProps, ComponentType, ElementType, memo } from "react";

@@ -3,0 +3,0 @@ import { CodeHeaderProps, SyntaxHighlighterProps } from "./overrides/types";

@@ -10,3 +10,3 @@ import { ComponentType, FC, useMemo } from "react";

import { DefaultCodeBlockContent } from "./defaultComponents";
import { Element } from "hast";
import type { Element } from "hast";

@@ -13,0 +13,0 @@ export type CodeBlockProps = {

import type { ComponentType, ReactNode } from "react";
import { PreComponent, CodeComponent, CodeHeaderProps } from "./types";
import { Element } from "hast";
import type { Element } from "hast";

@@ -5,0 +5,0 @@ export const DefaultPre: PreComponent = ({ node, ...rest }) => (

@@ -1,2 +0,2 @@

import { Element } from "hast";
import type { Element } from "hast";
import { ComponentPropsWithoutRef, ComponentType } from "react";

@@ -3,0 +3,0 @@

export {};
//# sourceMappingURL=memoization.test.d.ts.map
{"version":3,"file":"memoization.test.d.ts","sourceRoot":"","sources":["../src/memoization.test.tsx"],"names":[],"mappings":""}