@assistant-ui/react-markdown 0.7.20 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/index.d.ts +0 -7
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +0 -6
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +0 -6
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/memoization.d.ts +2 -2
  8. package/dist/memoization.d.ts.map +1 -1
  9. package/dist/memoization.js +1 -1
  10. package/dist/memoization.js.map +1 -1
  11. package/dist/memoization.mjs +1 -1
  12. package/dist/memoization.mjs.map +1 -1
  13. package/dist/overrides/CodeBlock.d.ts +2 -0
  14. package/dist/overrides/CodeBlock.d.ts.map +1 -1
  15. package/dist/overrides/CodeBlock.js +3 -1
  16. package/dist/overrides/CodeBlock.js.map +1 -1
  17. package/dist/overrides/CodeBlock.mjs +3 -1
  18. package/dist/overrides/CodeBlock.mjs.map +1 -1
  19. package/dist/overrides/CodeOverride.d.ts.map +1 -1
  20. package/dist/overrides/CodeOverride.js +5 -0
  21. package/dist/overrides/CodeOverride.js.map +1 -1
  22. package/dist/overrides/CodeOverride.mjs +5 -0
  23. package/dist/overrides/CodeOverride.mjs.map +1 -1
  24. package/dist/overrides/defaultComponents.d.ts +2 -0
  25. package/dist/overrides/defaultComponents.d.ts.map +1 -1
  26. package/dist/overrides/defaultComponents.js +1 -1
  27. package/dist/overrides/defaultComponents.js.map +1 -1
  28. package/dist/overrides/defaultComponents.mjs +1 -1
  29. package/dist/overrides/defaultComponents.mjs.map +1 -1
  30. package/dist/overrides/types.d.ts +2 -0
  31. package/dist/overrides/types.d.ts.map +1 -1
  32. package/dist/overrides/types.js.map +1 -1
  33. package/package.json +4 -19
  34. package/src/index.ts +0 -12
  35. package/src/memoization.tsx +6 -3
  36. package/src/overrides/CodeBlock.tsx +5 -1
  37. package/src/overrides/CodeOverride.tsx +5 -0
  38. package/src/overrides/defaultComponents.tsx +4 -2
  39. package/src/overrides/types.ts +2 -0
  40. package/dist/styles/markdown.css +0 -274
  41. package/dist/styles/markdown.css.map +0 -1
  42. package/dist/styles/tailwindcss/markdown.css +0 -106
  43. package/dist/styles/tailwindcss/markdown.css.json +0 -68
  44. package/dist/tailwindcss/index.d.ts +0 -9
  45. package/dist/tailwindcss/index.d.ts.map +0 -1
  46. package/dist/tailwindcss/index.js +0 -113
  47. package/dist/tailwindcss/index.js.map +0 -1
  48. package/dist/tailwindcss/index.mjs +0 -105
  49. package/dist/tailwindcss/index.mjs.map +0 -1
  50. package/dist/ui/code-header.d.ts +0 -4
  51. package/dist/ui/code-header.d.ts.map +0 -1
  52. package/dist/ui/code-header.js +0 -54
  53. package/dist/ui/code-header.js.map +0 -1
  54. package/dist/ui/code-header.mjs +0 -29
  55. package/dist/ui/code-header.mjs.map +0 -1
  56. package/dist/ui/markdown-text.d.ts +0 -4
  57. package/dist/ui/markdown-text.d.ts.map +0 -1
  58. package/dist/ui/markdown-text.js +0 -114
  59. package/dist/ui/markdown-text.js.map +0 -1
  60. package/dist/ui/markdown-text.mjs +0 -81
  61. package/dist/ui/markdown-text.mjs.map +0 -1
  62. package/dist/ui/useCopyToClipboard.d.ts +0 -11
  63. package/dist/ui/useCopyToClipboard.d.ts.map +0 -1
  64. package/dist/ui/useCopyToClipboard.js +0 -45
  65. package/dist/ui/useCopyToClipboard.js.map +0 -1
  66. package/dist/ui/useCopyToClipboard.mjs +0 -21
  67. package/dist/ui/useCopyToClipboard.mjs.map +0 -1
  68. package/src/styles/tailwindcss/markdown.css +0 -106
  69. package/src/tailwindcss/index.ts +0 -8
  70. package/src/ui/code-header.tsx +0 -32
  71. package/src/ui/markdown-text.tsx +0 -114
  72. package/src/ui/useCopyToClipboard.tsx +0 -26
  73. package/tailwindcss/README.md +0 -1
  74. package/tailwindcss/package-lock.json +0 -6
  75. package/tailwindcss/package.json +0 -5
package/dist/index.d.ts CHANGED
@@ -1,12 +1,5 @@
1
1
  export { MarkdownTextPrimitive, type MarkdownTextPrimitiveProps, } from "./primitives/MarkdownText";
2
2
  export type { CodeHeaderProps, SyntaxHighlighterProps, } from "./overrides/types";
3
3
  export { useIsMarkdownCodeBlock } from "./overrides/PreOverride";
4
- export {
5
- /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */
6
- makeMarkdownText,
7
- /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */
8
- type MakeMarkdownTextProps, } from "./ui/markdown-text";
9
- /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */
10
- export { CodeHeader } from "./ui/code-header";
11
4
  export { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from "./memoization";
12
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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;AAEjE,OAAO;AACL,2JAA2J;AAC3J,gBAAgB;AAEhB,2JAA2J;AAC3J,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,2JAA2J;AAC3J,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,yBAAyB,IAAI,kCAAkC,EAAE,MAAM,eAAe,CAAC"}
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"}
package/dist/index.js CHANGED
@@ -20,23 +20,17 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
- CodeHeader: () => import_code_header.CodeHeader,
24
23
  MarkdownTextPrimitive: () => import_MarkdownText.MarkdownTextPrimitive,
25
- makeMarkdownText: () => import_markdown_text.makeMarkdownText,
26
24
  unstable_memoizeMarkdownComponents: () => import_memoization.memoizeMarkdownComponents,
27
25
  useIsMarkdownCodeBlock: () => import_PreOverride.useIsMarkdownCodeBlock
28
26
  });
29
27
  module.exports = __toCommonJS(index_exports);
30
28
  var import_MarkdownText = require("./primitives/MarkdownText.js");
31
29
  var import_PreOverride = require("./overrides/PreOverride.js");
32
- var import_markdown_text = require("./ui/markdown-text.js");
33
- var import_code_header = require("./ui/code-header.js");
34
30
  var import_memoization = require("./memoization.js");
35
31
  // Annotate the CommonJS export names for ESM import in node:
36
32
  0 && (module.exports = {
37
- CodeHeader,
38
33
  MarkdownTextPrimitive,
39
- makeMarkdownText,
40
34
  unstable_memoizeMarkdownComponents,
41
35
  useIsMarkdownCodeBlock
42
36
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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\";\n\nexport {\n /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */\n makeMarkdownText,\n\n /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */\n type MakeMarkdownTextProps,\n} from \"./ui/markdown-text\";\n\n/** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */\nexport { CodeHeader } from \"./ui/code-header\";\n\nexport { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from \"./memoization\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAGO;AAOP,yBAAuC;AAEvC,2BAMO;AAGP,yBAA2B;AAE3B,yBAAgF;","names":[]}
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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAGO;AAOP,yBAAuC;AACvC,yBAAgF;","names":[]}
package/dist/index.mjs CHANGED
@@ -3,15 +3,9 @@ import {
3
3
  MarkdownTextPrimitive
4
4
  } from "./primitives/MarkdownText.mjs";
5
5
  import { useIsMarkdownCodeBlock } from "./overrides/PreOverride.mjs";
6
- import {
7
- makeMarkdownText
8
- } from "./ui/markdown-text.mjs";
9
- import { CodeHeader } from "./ui/code-header.mjs";
10
6
  import { memoizeMarkdownComponents } from "./memoization.mjs";
11
7
  export {
12
- CodeHeader,
13
8
  MarkdownTextPrimitive,
14
- makeMarkdownText,
15
9
  memoizeMarkdownComponents as unstable_memoizeMarkdownComponents,
16
10
  useIsMarkdownCodeBlock
17
11
  };
@@ -1 +1 @@
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\";\n\nexport {\n /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */\n makeMarkdownText,\n\n /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */\n type MakeMarkdownTextProps,\n} from \"./ui/markdown-text\";\n\n/** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */\nexport { CodeHeader } from \"./ui/code-header\";\n\nexport { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from \"./memoization\";\n"],"mappings":";AAAA;AAAA,EACE;AAAA,OAEK;AAOP,SAAS,8BAA8B;AAEvC;AAAA,EAEE;AAAA,OAIK;AAGP,SAAS,kBAAkB;AAE3B,SAAsC,iCAA0C;","names":[]}
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":[]}
@@ -4,8 +4,8 @@ import { CodeHeaderProps, SyntaxHighlighterProps } from "./overrides/types";
4
4
  type Components = {
5
5
  [Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;
6
6
  } & {
7
- SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;
8
- CodeHeader?: ComponentType<CodeHeaderProps> | undefined;
7
+ SyntaxHighlighter?: ComponentType<Omit<SyntaxHighlighterProps, "node">> | undefined;
8
+ CodeHeader?: ComponentType<Omit<CodeHeaderProps, "node">> | undefined;
9
9
  };
10
10
  export declare const areNodesEqual: (prev: Element | undefined, next: Element | undefined) => boolean;
11
11
  export declare const memoCompareNodes: (prev: {
@@ -1 +1 @@
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,EAAE,aAAa,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;IACtE,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;CACzD,CAAC;AAOF,eAAO,MAAM,aAAa,SAClB,OAAO,GAAG,SAAS,QACnB,OAAO,GAAG,SAAS,YAO1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,SACrB;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,QAC9B;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,YAGrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBAAgB,UAAU;0EAMjB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CAMhE,CAAC"}
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,SAClB,OAAO,GAAG,SAAS,QACnB,OAAO,GAAG,SAAS,YAQ1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,SACrB;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,QAC9B;IAAE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,YAGrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBAAgB,UAAU;0EAMjB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CAMhE,CAAC"}
@@ -32,7 +32,7 @@ var areChildrenEqual = (prev, next) => {
32
32
  return JSON.stringify(prev) === JSON.stringify(next);
33
33
  };
34
34
  var areNodesEqual = (prev, next) => {
35
- if (!prev || !next) return prev === next;
35
+ if (!prev || !next) return false;
36
36
  const isEqual = JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) && areChildrenEqual(prev?.children, next?.children);
37
37
  return isEqual;
38
38
  };
@@ -1 +1 @@
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?: ComponentType<SyntaxHighlighterProps> | undefined;\n CodeHeader?: ComponentType<CodeHeaderProps> | 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 prev === next;\n const isEqual =\n JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) &&\n areChildrenEqual(prev?.children, next?.children);\n return isEqual;\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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAiE;AAwClD;AA9Bf,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,SAAS;AACpC,QAAM,UACJ,KAAK,UAAU,MAAM,UAAU,MAAM,KAAK,UAAU,MAAM,UAAU,KACpE,iBAAiB,MAAM,UAAU,MAAM,QAAQ;AACjD,SAAO;AACT;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,4CAAC,aAAW,GAAG,OAAO;AAAA,MAC/B;AACA,aAAO,CAAC,SAAK,mBAAK,aAAa,gBAAgB,CAAC;AAAA,IAClD,CAAC;AAAA,EACH;AACF;","names":[]}
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 // TODO troubleshoot why this is triggering for code blocks\n if (!prev || !next) return false;\n const isEqual =\n JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) &&\n areChildrenEqual(prev?.children, next?.children);\n return isEqual;\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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAiE;AA2ClD;AA/Bf,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;AAEH,MAAI,CAAC,QAAQ,CAAC,KAAM,QAAO;AAC3B,QAAM,UACJ,KAAK,UAAU,MAAM,UAAU,MAAM,KAAK,UAAU,MAAM,UAAU,KACpE,iBAAiB,MAAM,UAAU,MAAM,QAAQ;AACjD,SAAO;AACT;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,4CAAC,aAAW,GAAG,OAAO;AAAA,MAC/B;AACA,aAAO,CAAC,SAAK,mBAAK,aAAa,gBAAgB,CAAC;AAAA,IAClD,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -6,7 +6,7 @@ var areChildrenEqual = (prev, next) => {
6
6
  return JSON.stringify(prev) === JSON.stringify(next);
7
7
  };
8
8
  var areNodesEqual = (prev, next) => {
9
- if (!prev || !next) return prev === next;
9
+ if (!prev || !next) return false;
10
10
  const isEqual = JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) && areChildrenEqual(prev?.children, next?.children);
11
11
  return isEqual;
12
12
  };
@@ -1 +1 @@
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?: ComponentType<SyntaxHighlighterProps> | undefined;\n CodeHeader?: ComponentType<CodeHeaderProps> | 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 prev === next;\n const isEqual =\n JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) &&\n areChildrenEqual(prev?.children, next?.children);\n return isEqual;\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;AAwClD;AA9Bf,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,SAAS;AACpC,QAAM,UACJ,KAAK,UAAU,MAAM,UAAU,MAAM,KAAK,UAAU,MAAM,UAAU,KACpE,iBAAiB,MAAM,UAAU,MAAM,QAAQ;AACjD,SAAO;AACT;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":[]}
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 // TODO troubleshoot why this is triggering for code blocks\n if (!prev || !next) return false;\n const isEqual =\n JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) &&\n areChildrenEqual(prev?.children, next?.children);\n return isEqual;\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;AA2ClD;AA/Bf,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;AAEH,MAAI,CAAC,QAAQ,CAAC,KAAM,QAAO;AAC3B,QAAM,UACJ,KAAK,UAAU,MAAM,UAAU,MAAM,KAAK,UAAU,MAAM,UAAU,KACpE,iBAAiB,MAAM,UAAU,MAAM,QAAQ;AACjD,SAAO;AACT;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":[]}
@@ -1,6 +1,8 @@
1
1
  import { ComponentType, FC } from "react";
2
2
  import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
3
+ import { Element } from "hast";
3
4
  export type CodeBlockProps = {
5
+ node: Element | undefined;
4
6
  language: string;
5
7
  code: string;
6
8
  components: {
@@ -1 +1 @@
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;AAGjB,MAAM,MAAM,cAAc,GAAG;IAC3B,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,CAmB/C,CAAC"}
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"}
@@ -27,6 +27,7 @@ var import_react = require("react");
27
27
  var import_defaultComponents = require("./defaultComponents.js");
28
28
  var import_jsx_runtime = require("react/jsx-runtime");
29
29
  var DefaultCodeBlock = ({
30
+ node,
30
31
  components: { Pre, Code, SyntaxHighlighter, CodeHeader },
31
32
  language,
32
33
  code
@@ -34,10 +35,11 @@ var DefaultCodeBlock = ({
34
35
  const components = (0, import_react.useMemo)(() => ({ Pre, Code }), [Pre, Code]);
35
36
  const SH = !!language ? SyntaxHighlighter : import_defaultComponents.DefaultCodeBlockContent;
36
37
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
37
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CodeHeader, { language, code }),
38
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CodeHeader, { node, language, code }),
38
39
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
39
40
  SH,
40
41
  {
42
+ node,
41
43
  components,
42
44
  language: language ?? "unknown",
43
45
  code
@@ -1 +1 @@
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\";\n\nexport type CodeBlockProps = {\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 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 language={language} code={code} />\n <SH\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAQ3C,+BAAwC;AAuBpC;AAVG,IAAM,mBAAuC,CAAC;AAAA,EACnD,YAAY,EAAE,KAAK,MAAM,mBAAmB,WAAW;AAAA,EACvD;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAa,sBAAQ,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAE7D,QAAM,KAAK,CAAC,CAAC,WAAW,oBAAoB;AAE5C,SACE,4EACE;AAAA,gDAAC,cAAW,UAAoB,MAAY;AAAA,IAC5C;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,UAAU,YAAY;AAAA,QACtB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
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;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAQ3C,+BAAwC;AA0BpC;AAXG,IAAM,mBAAuC,CAAC;AAAA,EACnD;AAAA,EACA,YAAY,EAAE,KAAK,MAAM,mBAAmB,WAAW;AAAA,EACvD;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAa,sBAAQ,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAE7D,QAAM,KAAK,CAAC,CAAC,WAAW,oBAAoB;AAE5C,SACE,4EACE;AAAA,gDAAC,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":[]}
@@ -3,6 +3,7 @@ import { useMemo } from "react";
3
3
  import { DefaultCodeBlockContent } from "./defaultComponents.mjs";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  var DefaultCodeBlock = ({
6
+ node,
6
7
  components: { Pre, Code, SyntaxHighlighter, CodeHeader },
7
8
  language,
8
9
  code
@@ -10,10 +11,11 @@ var DefaultCodeBlock = ({
10
11
  const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
11
12
  const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;
12
13
  return /* @__PURE__ */ jsxs(Fragment, { children: [
13
- /* @__PURE__ */ jsx(CodeHeader, { language, code }),
14
+ /* @__PURE__ */ jsx(CodeHeader, { node, language, code }),
14
15
  /* @__PURE__ */ jsx(
15
16
  SH,
16
17
  {
18
+ node,
17
19
  components,
18
20
  language: language ?? "unknown",
19
21
  code
@@ -1 +1 @@
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\";\n\nexport type CodeBlockProps = {\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 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 language={language} code={code} />\n <SH\n components={components}\n language={language ?? \"unknown\"}\n code={code}\n />\n </>\n );\n};\n"],"mappings":";AAAA,SAA4B,eAAe;AAQ3C,SAAS,+BAA+B;AAuBpC,mBACE,KADF;AAVG,IAAM,mBAAuC,CAAC;AAAA,EACnD,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,CAAC,CAAC,WAAW,oBAAoB;AAE5C,SACE,iCACE;AAAA,wBAAC,cAAW,UAAoB,MAAY;AAAA,IAC5C;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,UAAU,YAAY;AAAA,QACtB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
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,CAAC,CAAC,WAAW,oBAAoB;AAE5C,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":[]}
@@ -1 +1 @@
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;AA8DjB,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;AAkBF,eAAO,MAAM,YAAY,yDAMvB,CAAC"}
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"}
@@ -32,6 +32,7 @@ var import_defaultComponents = require("./defaultComponents.js");
32
32
  var import_memoization = require("../memoization.js");
33
33
  var import_jsx_runtime = require("react/jsx-runtime");
34
34
  var CodeBlockOverride = ({
35
+ node,
35
36
  components: {
36
37
  Pre,
37
38
  Code,
@@ -52,6 +53,7 @@ var CodeBlockOverride = ({
52
53
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
53
54
  import_defaultComponents.DefaultCodeBlockContent,
54
55
  {
56
+ node,
55
57
  components: { Pre: WrappedPre, Code: WrappedCode },
56
58
  code: children
57
59
  }
@@ -62,6 +64,7 @@ var CodeBlockOverride = ({
62
64
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
63
65
  import_CodeBlock.DefaultCodeBlock,
64
66
  {
67
+ node,
65
68
  components: {
66
69
  Pre: WrappedPre,
67
70
  Code: WrappedCode,
@@ -74,6 +77,7 @@ var CodeBlockOverride = ({
74
77
  );
75
78
  };
76
79
  var CodeOverrideImpl = ({
80
+ node,
77
81
  components,
78
82
  componentsByLanguage,
79
83
  ...props
@@ -83,6 +87,7 @@ var CodeOverrideImpl = ({
83
87
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
88
  CodeBlockOverride,
85
89
  {
90
+ node,
86
91
  components,
87
92
  componentsByLanguage,
88
93
  ...props
@@ -1 +1 @@
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 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 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 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 components,\n componentsByLanguage,\n ...props\n}) => {\n const isCodeBlock = useIsMarkdownCodeBlock();\n if (!isCodeBlock) return <components.Code {...props} />;\n return (\n <CodeBlockOverride\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;AAAA;AAAA;AAAA;AAAA,mBAMO;AACP,yBAAmD;AAOnD,uBAAiC;AACjC,oCAA+B;AAC/B,0BAAiC;AACjC,+BAAwC;AACxC,yBAAiC;AAgB7B;AAdJ,IAAM,oBAA2C,CAAC;AAAA,EAChD,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,eAAW,yBAAW,6BAAU;AACtC,QAAM,kBAAc,sCAAsB,QAAQ;AAClD,QAAM,iBAA2B,8CAAe,CAAC,UAC/C,4CAAC,OAAK,GAAG,YAAY,KAAK,GAAG,CAC9B;AAED,QAAM,mBAAe,sCAAsB,SAAS;AACpD,QAAM,kBAA6B,8CAAe,CAAC,UACjD,4CAAC,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,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,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,GAAG;AACL,MAAM;AACJ,QAAM,kBAAc,2CAAuB;AAC3C,MAAI,CAAC,YAAa,QAAO,4CAAC,WAAW,MAAX,EAAiB,GAAG,OAAO;AACrD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,IAAM,mBAAe,mBAAK,kBAAkB,CAAC,MAAM,SAAS;AACjE,QAAM,UACJ,KAAK,eAAe,KAAK,cACzB,KAAK,yBAAyB,KAAK,4BACnC,qCAAiB,MAAM,IAAI;AAC7B,SAAO;AACT,CAAC;","names":[]}
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;AAAA;AAAA;AAAA;AAAA,mBAMO;AACP,yBAAmD;AAOnD,uBAAiC;AACjC,oCAA+B;AAC/B,0BAAiC;AACjC,+BAAwC;AACxC,yBAAiC;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,eAAW,yBAAW,6BAAU;AACtC,QAAM,kBAAc,sCAAsB,QAAQ;AAClD,QAAM,iBAA2B,8CAAe,CAAC,UAC/C,4CAAC,OAAK,GAAG,YAAY,KAAK,GAAG,CAC9B;AAED,QAAM,mBAAe,sCAAsB,SAAS;AACpD,QAAM,kBAA6B,8CAAe,CAAC,UACjD,4CAAC,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,kBAAc,2CAAuB;AAC3C,MAAI,CAAC,YAAa,QAAO,4CAAC,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,mBAAe,mBAAK,kBAAkB,CAAC,MAAM,SAAS;AACjE,QAAM,UACJ,KAAK,eAAe,KAAK,cACzB,KAAK,yBAAyB,KAAK,4BACnC,qCAAiB,MAAM,IAAI;AAC7B,SAAO;AACT,CAAC;","names":[]}
@@ -11,6 +11,7 @@ import { DefaultCodeBlockContent } from "./defaultComponents.mjs";
11
11
  import { memoCompareNodes } from "../memoization.mjs";
12
12
  import { jsx } from "react/jsx-runtime";
13
13
  var CodeBlockOverride = ({
14
+ node,
14
15
  components: {
15
16
  Pre,
16
17
  Code,
@@ -31,6 +32,7 @@ var CodeBlockOverride = ({
31
32
  return /* @__PURE__ */ jsx(
32
33
  DefaultCodeBlockContent,
33
34
  {
35
+ node,
34
36
  components: { Pre: WrappedPre, Code: WrappedCode },
35
37
  code: children
36
38
  }
@@ -41,6 +43,7 @@ var CodeBlockOverride = ({
41
43
  return /* @__PURE__ */ jsx(
42
44
  DefaultCodeBlock,
43
45
  {
46
+ node,
44
47
  components: {
45
48
  Pre: WrappedPre,
46
49
  Code: WrappedCode,
@@ -53,6 +56,7 @@ var CodeBlockOverride = ({
53
56
  );
54
57
  };
55
58
  var CodeOverrideImpl = ({
59
+ node,
56
60
  components,
57
61
  componentsByLanguage,
58
62
  ...props
@@ -62,6 +66,7 @@ var CodeOverrideImpl = ({
62
66
  return /* @__PURE__ */ jsx(
63
67
  CodeBlockOverride,
64
68
  {
69
+ node,
65
70
  components,
66
71
  componentsByLanguage,
67
72
  ...props
@@ -1 +1 @@
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 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 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 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 components,\n componentsByLanguage,\n ...props\n}) => {\n const isCodeBlock = useIsMarkdownCodeBlock();\n if (!isCodeBlock) return <components.Code {...props} />;\n return (\n <CodeBlockOverride\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;AAgB7B;AAdJ,IAAM,oBAA2C,CAAC;AAAA,EAChD,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,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,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,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,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":[]}
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":[]}
@@ -1,8 +1,10 @@
1
1
  import type { ComponentType, ReactNode } from "react";
2
2
  import { PreComponent, CodeComponent, CodeHeaderProps } from "./types";
3
+ import { Element } from "hast";
3
4
  export declare const DefaultPre: PreComponent;
4
5
  export declare const DefaultCode: CodeComponent;
5
6
  export declare const DefaultCodeBlockContent: ComponentType<{
7
+ node: Element | undefined;
6
8
  components: {
7
9
  Pre: PreComponent;
8
10
  Code: CodeComponent;
@@ -1 +1 @@
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;AAEvE,eAAO,MAAM,UAAU,EAAE,YAExB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,aAEzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC;IAClD,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
+ {"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"}
@@ -29,7 +29,7 @@ module.exports = __toCommonJS(defaultComponents_exports);
29
29
  var import_jsx_runtime = require("react/jsx-runtime");
30
30
  var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", { ...rest });
31
31
  var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("code", { ...rest });
32
- var DefaultCodeBlockContent = ({ components: { Pre, Code }, code }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pre, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Code, { children: code }) });
32
+ var DefaultCodeBlockContent = ({ node, components: { Pre, Code }, code }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pre, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Code, { node, children: code }) });
33
33
  var DefaultCodeHeader = () => null;
34
34
  // Annotate the CommonJS export names for ESM import in node:
35
35
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\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 components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n}> = ({ components: { Pre, Code }, code }) => (\n <Pre>\n <Code>{code}</Code>\n </Pre>\n);\n\nexport const DefaultCodeHeader: ComponentType<CodeHeaderProps> = () => null;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIE;AADK,IAAM,aAA2B,CAAC,EAAE,MAAM,GAAG,KAAK,MACvD,4CAAC,SAAK,GAAG,MAAM;AAGV,IAAM,cAA6B,CAAC,EAAE,MAAM,GAAG,KAAK,MACzD,4CAAC,UAAM,GAAG,MAAM;AAGX,IAAM,0BAGR,CAAC,EAAE,YAAY,EAAE,KAAK,KAAK,GAAG,KAAK,MACtC,4CAAC,OACC,sDAAC,QAAM,gBAAK,GACd;AAGK,IAAM,oBAAoD,MAAM;","names":[]}
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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKE;AADK,IAAM,aAA2B,CAAC,EAAE,MAAM,GAAG,KAAK,MACvD,4CAAC,SAAK,GAAG,MAAM;AAGV,IAAM,cAA6B,CAAC,EAAE,MAAM,GAAG,KAAK,MACzD,4CAAC,UAAM,GAAG,MAAM;AAGX,IAAM,0BAIR,CAAC,EAAE,MAAM,YAAY,EAAE,KAAK,KAAK,GAAG,KAAK,MAC5C,4CAAC,OACC,sDAAC,QAAK,MAAa,gBAAK,GAC1B;AAGK,IAAM,oBAAoD,MAAM;","names":[]}
@@ -2,7 +2,7 @@
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ jsx("pre", { ...rest });
4
4
  var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ jsx("code", { ...rest });
5
- var DefaultCodeBlockContent = ({ components: { Pre, Code }, code }) => /* @__PURE__ */ jsx(Pre, { children: /* @__PURE__ */ jsx(Code, { children: code }) });
5
+ var DefaultCodeBlockContent = ({ node, components: { Pre, Code }, code }) => /* @__PURE__ */ jsx(Pre, { children: /* @__PURE__ */ jsx(Code, { node, children: code }) });
6
6
  var DefaultCodeHeader = () => null;
7
7
  export {
8
8
  DefaultCode,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/overrides/defaultComponents.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from \"react\";\nimport { PreComponent, CodeComponent, CodeHeaderProps } from \"./types\";\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 components: { Pre: PreComponent; Code: CodeComponent };\n code: string | ReactNode | undefined;\n}> = ({ components: { Pre, Code }, code }) => (\n <Pre>\n <Code>{code}</Code>\n </Pre>\n);\n\nexport const DefaultCodeHeader: ComponentType<CodeHeaderProps> = () => null;\n"],"mappings":";AAIE;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,0BAGR,CAAC,EAAE,YAAY,EAAE,KAAK,KAAK,GAAG,KAAK,MACtC,oBAAC,OACC,8BAAC,QAAM,gBAAK,GACd;AAGK,IAAM,oBAAoD,MAAM;","names":[]}
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":[]}
@@ -7,10 +7,12 @@ export type CodeComponent = ComponentType<ComponentPropsWithoutRef<"code"> & {
7
7
  node?: Element | undefined;
8
8
  }>;
9
9
  export type CodeHeaderProps = {
10
+ node?: Element | undefined;
10
11
  language: string | undefined;
11
12
  code: string;
12
13
  };
13
14
  export type SyntaxHighlighterProps = {
15
+ node?: Element | undefined;
14
16
  components: {
15
17
  Pre: PreComponent;
16
18
  Code: CodeComponent;
@@ -1 +1 @@
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,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/overrides/types.ts"],"sourcesContent":["import { Element } from \"hast\";\nimport { ComponentPropsWithoutRef, ComponentType } from \"react\";\n\nexport type PreComponent = ComponentType<\n ComponentPropsWithoutRef<\"pre\"> & { node?: Element | undefined }\n>;\nexport type CodeComponent = ComponentType<\n ComponentPropsWithoutRef<\"code\"> & { node?: Element | undefined }\n>;\n\nexport type CodeHeaderProps = {\n language: string | undefined;\n code: string;\n};\n\nexport type SyntaxHighlighterProps = {\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n };\n language: string;\n code: string;\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/overrides/types.ts"],"sourcesContent":["import { Element } from \"hast\";\nimport { ComponentPropsWithoutRef, ComponentType } from \"react\";\n\nexport type PreComponent = ComponentType<\n ComponentPropsWithoutRef<\"pre\"> & { node?: Element | undefined }\n>;\nexport type CodeComponent = ComponentType<\n ComponentPropsWithoutRef<\"code\"> & { node?: Element | undefined }\n>;\n\nexport type CodeHeaderProps = {\n node?: Element | undefined;\n language: string | undefined;\n code: string;\n};\n\nexport type SyntaxHighlighterProps = {\n node?: Element | undefined;\n components: {\n Pre: PreComponent;\n Code: CodeComponent;\n };\n language: string;\n code: string;\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/react-markdown",
3
- "version": "0.7.20",
3
+ "version": "0.8.0",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": {
@@ -8,16 +8,8 @@
8
8
  "import": "./dist/index.mjs",
9
9
  "require": "./dist/index.js"
10
10
  },
11
- "./tailwindcss": {
12
- "types": "./dist/tailwindcss/index.d.ts",
13
- "import": "./dist/tailwindcss/index.mjs",
14
- "require": "./dist/tailwindcss/index.js"
15
- },
16
11
  "./styles/dot.css": {
17
12
  "default": "./styles/dot.css"
18
- },
19
- "./styles/*": {
20
- "default": "./dist/styles/*"
21
13
  }
22
14
  },
23
15
  "source": "./src/index.ts",
@@ -26,7 +18,6 @@
26
18
  "types": "./dist/index.d.ts",
27
19
  "files": [
28
20
  "dist",
29
- "tailwindcss",
30
21
  "src",
31
22
  "styles",
32
23
  "README.md"
@@ -37,11 +28,10 @@
37
28
  "@radix-ui/react-use-callback-ref": "^1.1.0",
38
29
  "@types/hast": "^3.0.4",
39
30
  "classnames": "^2.5.1",
40
- "lucide-react": "^0.475.0",
41
31
  "react-markdown": "^9.0.3"
42
32
  },
43
33
  "peerDependencies": {
44
- "@assistant-ui/react": "^0.7.75",
34
+ "@assistant-ui/react": "^0.8.0",
45
35
  "@types/react": "*",
46
36
  "react": "^18 || ^19 || ^19.0.0-rc"
47
37
  },
@@ -52,19 +42,14 @@
52
42
  },
53
43
  "devDependencies": {
54
44
  "@types/node": "^22.13.1",
55
- "autoprefixer": "^10.4.20",
56
45
  "eslint": "^9",
57
46
  "eslint-config-next": "15.1.6",
58
- "postcss": "^8.5.1",
59
47
  "react": "19.0.0",
60
48
  "react-dom": "19.0.0",
61
- "tailwindcss": "^3.4.17",
62
- "tailwindcss-animate": "^1.0.7",
63
49
  "tsx": "^4.19.2",
64
50
  "@assistant-ui/tsbuildutils": "^0.0.1",
65
- "@assistant-ui/tsconfig": "0.0.0",
66
- "@assistant-ui/react": "0.7.75",
67
- "@assistant-ui/tailwindcss-transformer": "0.1.0"
51
+ "@assistant-ui/react": "0.8.0",
52
+ "@assistant-ui/tsconfig": "0.0.0"
68
53
  },
69
54
  "publishConfig": {
70
55
  "access": "public",
package/src/index.ts CHANGED
@@ -9,16 +9,4 @@ export type {
9
9
  } from "./overrides/types";
10
10
 
11
11
  export { useIsMarkdownCodeBlock } from "./overrides/PreOverride";
12
-
13
- export {
14
- /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */
15
- makeMarkdownText,
16
-
17
- /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */
18
- type MakeMarkdownTextProps,
19
- } from "./ui/markdown-text";
20
-
21
- /** @deprecated This export was moved to `@assistant-ui/react-ui`. Use the migration codemod to update your code, by running `npx assistant-ui upgrade`. */
22
- export { CodeHeader } from "./ui/code-header";
23
-
24
12
  export { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from "./memoization";
@@ -5,8 +5,10 @@ import { CodeHeaderProps, SyntaxHighlighterProps } from "./overrides/types";
5
5
  type Components = {
6
6
  [Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;
7
7
  } & {
8
- SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps> | undefined;
9
- CodeHeader?: ComponentType<CodeHeaderProps> | undefined;
8
+ SyntaxHighlighter?:
9
+ | ComponentType<Omit<SyntaxHighlighterProps, "node">>
10
+ | undefined;
11
+ CodeHeader?: ComponentType<Omit<CodeHeaderProps, "node">> | undefined;
10
12
  };
11
13
 
12
14
  const areChildrenEqual = (prev: string | unknown, next: string | unknown) => {
@@ -18,7 +20,8 @@ export const areNodesEqual = (
18
20
  prev: Element | undefined,
19
21
  next: Element | undefined,
20
22
  ) => {
21
- if (!prev || !next) return prev === next;
23
+ // TODO troubleshoot why this is triggering for code blocks
24
+ if (!prev || !next) return false;
22
25
  const isEqual =
23
26
  JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) &&
24
27
  areChildrenEqual(prev?.children, next?.children);
@@ -7,8 +7,10 @@ import {
7
7
  SyntaxHighlighterProps,
8
8
  } from "./types";
9
9
  import { DefaultCodeBlockContent } from "./defaultComponents";
10
+ import { Element } from "hast";
10
11
 
11
12
  export type CodeBlockProps = {
13
+ node: Element | undefined;
12
14
  language: string;
13
15
  code: string;
14
16
  components: {
@@ -20,6 +22,7 @@ export type CodeBlockProps = {
20
22
  };
21
23
 
22
24
  export const DefaultCodeBlock: FC<CodeBlockProps> = ({
25
+ node,
23
26
  components: { Pre, Code, SyntaxHighlighter, CodeHeader },
24
27
  language,
25
28
  code,
@@ -30,8 +33,9 @@ export const DefaultCodeBlock: FC<CodeBlockProps> = ({
30
33
 
31
34
  return (
32
35
  <>
33
- <CodeHeader language={language} code={code} />
36
+ <CodeHeader node={node} language={language} code={code} />
34
37
  <SH
38
+ node={node}
35
39
  components={components}
36
40
  language={language ?? "unknown"}
37
41
  code={code}