@assistant-ui/react-markdown 0.9.3 → 0.10.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 (55) hide show
  1. package/dist/index.js +8 -34
  2. package/dist/index.js.map +1 -1
  3. package/dist/memoization.js +10 -38
  4. package/dist/memoization.js.map +1 -1
  5. package/dist/overrides/CodeBlock.js +11 -37
  6. package/dist/overrides/CodeBlock.js.map +1 -1
  7. package/dist/overrides/CodeOverride.js +29 -52
  8. package/dist/overrides/CodeOverride.js.map +1 -1
  9. package/dist/overrides/PreOverride.js +15 -39
  10. package/dist/overrides/PreOverride.js.map +1 -1
  11. package/dist/overrides/defaultComponents.js +7 -36
  12. package/dist/overrides/defaultComponents.js.map +1 -1
  13. package/dist/overrides/types.js +0 -18
  14. package/dist/overrides/types.js.map +1 -1
  15. package/dist/overrides/withDefaults.js +5 -41
  16. package/dist/overrides/withDefaults.js.map +1 -1
  17. package/dist/primitives/MarkdownText.js +41 -69
  18. package/dist/primitives/MarkdownText.js.map +1 -1
  19. package/package.json +6 -7
  20. package/dist/index.d.ts +0 -5
  21. package/dist/index.d.ts.map +0 -1
  22. package/dist/index.mjs +0 -12
  23. package/dist/index.mjs.map +0 -1
  24. package/dist/memoization.d.ts +0 -22
  25. package/dist/memoization.d.ts.map +0 -1
  26. package/dist/memoization.mjs +0 -33
  27. package/dist/memoization.mjs.map +0 -1
  28. package/dist/overrides/CodeBlock.d.ts +0 -16
  29. package/dist/overrides/CodeBlock.d.ts.map +0 -1
  30. package/dist/overrides/CodeBlock.mjs +0 -29
  31. package/dist/overrides/CodeBlock.mjs.map +0 -1
  32. package/dist/overrides/CodeOverride.d.ts +0 -16
  33. package/dist/overrides/CodeOverride.d.ts.map +0 -1
  34. package/dist/overrides/CodeOverride.mjs +0 -83
  35. package/dist/overrides/CodeOverride.mjs.map +0 -1
  36. package/dist/overrides/PreOverride.d.ts +0 -8
  37. package/dist/overrides/PreOverride.d.ts.map +0 -1
  38. package/dist/overrides/PreOverride.mjs +0 -24
  39. package/dist/overrides/PreOverride.mjs.map +0 -1
  40. package/dist/overrides/defaultComponents.d.ts +0 -15
  41. package/dist/overrides/defaultComponents.d.ts.map +0 -1
  42. package/dist/overrides/defaultComponents.mjs +0 -13
  43. package/dist/overrides/defaultComponents.mjs.map +0 -1
  44. package/dist/overrides/types.d.ts +0 -23
  45. package/dist/overrides/types.d.ts.map +0 -1
  46. package/dist/overrides/types.mjs +0 -1
  47. package/dist/overrides/types.mjs.map +0 -1
  48. package/dist/overrides/withDefaults.d.ts +0 -4
  49. package/dist/overrides/withDefaults.d.ts.map +0 -1
  50. package/dist/overrides/withDefaults.mjs +0 -16
  51. package/dist/overrides/withDefaults.mjs.map +0 -1
  52. package/dist/primitives/MarkdownText.d.ts +0 -22
  53. package/dist/primitives/MarkdownText.d.ts.map +0 -1
  54. package/dist/primitives/MarkdownText.mjs +0 -94
  55. package/dist/primitives/MarkdownText.mjs.map +0 -1
@@ -1,63 +1,36 @@
1
- "use strict";
2
1
  "use client";
3
- var __create = Object.create;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
-
31
- // src/primitives/MarkdownText.tsx
32
- var MarkdownText_exports = {};
33
- __export(MarkdownText_exports, {
34
- MarkdownTextPrimitive: () => MarkdownTextPrimitive
35
- });
36
- module.exports = __toCommonJS(MarkdownText_exports);
37
- var import_react = require("@assistant-ui/react");
38
- var import_react2 = require("react");
39
- var import_react_markdown = __toESM(require("react-markdown"));
40
- var import_PreOverride = require("../overrides/PreOverride.js");
41
- var import_defaultComponents = require("../overrides/defaultComponents.js");
42
- var import_react_use_callback_ref = require("@radix-ui/react-use-callback-ref");
43
- var import_CodeOverride = require("../overrides/CodeOverride.js");
44
- var import_classnames = __toESM(require("classnames"));
45
- var import_jsx_runtime = require("react/jsx-runtime");
46
- var { useSmooth, useSmoothStatus, withSmoothContextProvider } = import_react.INTERNAL;
47
- var MarkdownTextInner = ({
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { INTERNAL, useContentPartText } from "@assistant-ui/react";
4
+ import {
5
+ forwardRef,
6
+ useMemo
7
+ } from "react";
8
+ import ReactMarkdown from "react-markdown";
9
+ import { PreOverride } from "../overrides/PreOverride";
10
+ import {
11
+ DefaultPre,
12
+ DefaultCode,
13
+ DefaultCodeBlockContent,
14
+ DefaultCodeHeader
15
+ } from "../overrides/defaultComponents";
16
+ import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
17
+ import { CodeOverride } from "../overrides/CodeOverride";
18
+ import classNames from "classnames";
19
+ const { useSmooth, useSmoothStatus, withSmoothContextProvider } = INTERNAL;
20
+ const MarkdownTextInner = ({
48
21
  components: userComponents,
49
22
  componentsByLanguage,
50
23
  smooth = true,
51
24
  ...rest
52
25
  }) => {
53
- const { text } = useSmooth((0, import_react.useContentPartText)(), smooth);
26
+ const { text } = useSmooth(useContentPartText(), smooth);
54
27
  const {
55
- pre = import_defaultComponents.DefaultPre,
56
- code = import_defaultComponents.DefaultCode,
57
- SyntaxHighlighter = import_defaultComponents.DefaultCodeBlockContent,
58
- CodeHeader = import_defaultComponents.DefaultCodeHeader
28
+ pre = DefaultPre,
29
+ code = DefaultCode,
30
+ SyntaxHighlighter = DefaultCodeBlockContent,
31
+ CodeHeader = DefaultCodeHeader
59
32
  } = userComponents ?? {};
60
- const useCodeOverrideComponents = (0, import_react2.useMemo)(() => {
33
+ const useCodeOverrideComponents = useMemo(() => {
61
34
  return {
62
35
  Pre: pre,
63
36
  Code: code,
@@ -65,31 +38,31 @@ var MarkdownTextInner = ({
65
38
  CodeHeader
66
39
  };
67
40
  }, [pre, code, SyntaxHighlighter, CodeHeader]);
68
- const CodeComponent = (0, import_react_use_callback_ref.useCallbackRef)((props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
69
- import_CodeOverride.CodeOverride,
41
+ const CodeComponent = useCallbackRef((props) => /* @__PURE__ */ jsx(
42
+ CodeOverride,
70
43
  {
71
44
  components: useCodeOverrideComponents,
72
45
  componentsByLanguage,
73
46
  ...props
74
47
  }
75
48
  ));
76
- const components = (0, import_react2.useMemo)(() => {
49
+ const components = useMemo(() => {
77
50
  const {
78
- pre: pre2 = import_defaultComponents.DefaultPre,
79
- code: code2 = import_defaultComponents.DefaultCode,
80
- SyntaxHighlighter: SyntaxHighlighter2 = import_defaultComponents.DefaultCodeBlockContent,
81
- CodeHeader: CodeHeader2 = import_defaultComponents.DefaultCodeHeader,
51
+ pre: pre2 = DefaultPre,
52
+ code: code2 = DefaultCode,
53
+ SyntaxHighlighter: SyntaxHighlighter2 = DefaultCodeBlockContent,
54
+ CodeHeader: CodeHeader2 = DefaultCodeHeader,
82
55
  ...componentsRest
83
56
  } = userComponents ?? {};
84
57
  return {
85
58
  ...componentsRest,
86
- pre: import_PreOverride.PreOverride,
59
+ pre: PreOverride,
87
60
  code: CodeComponent
88
61
  };
89
62
  }, [CodeComponent, userComponents]);
90
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_markdown.default, { components, ...rest, children: text });
63
+ return /* @__PURE__ */ jsx(ReactMarkdown, { components, ...rest, children: text });
91
64
  };
92
- var MarkdownTextPrimitiveImpl = (0, import_react2.forwardRef)(
65
+ const MarkdownTextPrimitiveImpl = forwardRef(
93
66
  ({
94
67
  className,
95
68
  containerProps,
@@ -97,24 +70,23 @@ var MarkdownTextPrimitiveImpl = (0, import_react2.forwardRef)(
97
70
  ...rest
98
71
  }, forwardedRef) => {
99
72
  const status = useSmoothStatus();
100
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
73
+ return /* @__PURE__ */ jsx(
101
74
  Container,
102
75
  {
103
76
  "data-status": status.type,
104
77
  ...containerProps,
105
- className: (0, import_classnames.default)(className, containerProps?.className),
78
+ className: classNames(className, containerProps?.className),
106
79
  ref: forwardedRef,
107
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MarkdownTextInner, { ...rest })
80
+ children: /* @__PURE__ */ jsx(MarkdownTextInner, { ...rest })
108
81
  }
109
82
  );
110
83
  }
111
84
  );
112
85
  MarkdownTextPrimitiveImpl.displayName = "MarkdownTextPrimitive";
113
- var MarkdownTextPrimitive = withSmoothContextProvider(
86
+ const MarkdownTextPrimitive = withSmoothContextProvider(
114
87
  MarkdownTextPrimitiveImpl
115
88
  );
116
- // Annotate the CommonJS export names for ESM import in node:
117
- 0 && (module.exports = {
89
+ export {
118
90
  MarkdownTextPrimitive
119
- });
91
+ };
120
92
  //# sourceMappingURL=MarkdownText.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/primitives/MarkdownText.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useContentPartText } 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 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\nconst MarkdownTextInner: FC<MarkdownTextPrimitiveProps> = ({\n components: userComponents,\n componentsByLanguage,\n smooth = true,\n ...rest\n}) => {\n const { text } = useSmooth(useContentPartText(), 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 {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n ...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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA6C;AAC7C,IAAAA,gBAUO;AACP,4BAA4C;AAE5C,yBAA4B;AAC5B,+BAKO;AACP,oCAA+B;AAC/B,0BAA6B;AAE7B,wBAAuB;AAuDnB;AArDJ,IAAM,EAAE,WAAW,iBAAiB,0BAA0B,IAAI;AA8BlE,IAAM,oBAAoD,CAAC;AAAA,EACzD,YAAY;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,EACT,GAAG;AACL,MAAM;AACJ,QAAM,EAAE,KAAK,IAAI,cAAU,iCAAmB,GAAG,MAAM;AAEvD,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACf,IAAI,kBAAkB,CAAC;AACvB,QAAM,gCAA4B,uBAAQ,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,oBAAgB,8CAAe,CAAC,UACpC;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ;AAAA,MACC,GAAG;AAAA;AAAA,EACN,CACD;AAED,QAAM,iBAAoC,uBAAQ,MAAM;AACtD,UAAM;AAAA,MACJ,KAAAC,OAAM;AAAA,MACN,MAAAC,QAAO;AAAA,MACP,mBAAAC,qBAAoB;AAAA,MACpB,YAAAC,cAAa;AAAA,MACb,GAAG;AAAA,IACL,IAAI,kBAAkB,CAAC;AACvB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF,GAAG,CAAC,eAAe,cAAc,CAAC;AAElC,SACE,4CAAC,sBAAAC,SAAA,EAAc,YAAyB,GAAG,MACxC,gBACH;AAEJ;AAEA,IAAM,gCAC0C;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,eAAW,kBAAAC,SAAW,WAAW,gBAAgB,SAAS;AAAA,QAC1D,KAAK;AAAA,QAEL,sDAAC,qBAAmB,GAAG,MAAM;AAAA;AAAA,IAC/B;AAAA,EAEJ;AACF;AAEA,0BAA0B,cAAc;AAEjC,IAAM,wBAAwB;AAAA,EACnC;AACF;","names":["import_react","pre","code","SyntaxHighlighter","CodeHeader","ReactMarkdown","classNames"]}
1
+ {"version":3,"sources":["../../src/primitives/MarkdownText.tsx"],"sourcesContent":["\"use client\";\n\nimport { INTERNAL, useContentPartText } 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 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\nconst MarkdownTextInner: FC<MarkdownTextPrimitiveProps> = ({\n components: userComponents,\n componentsByLanguage,\n smooth = true,\n ...rest\n}) => {\n const { text } = useSmooth(useContentPartText(), 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 {\n pre = DefaultPre,\n code = DefaultCode,\n SyntaxHighlighter = DefaultCodeBlockContent,\n CodeHeader = DefaultCodeHeader,\n ...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":";AAiFI;AA/EJ,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;AAEvB,MAAM,EAAE,WAAW,iBAAiB,0BAA0B,IAAI;AA8BlE,MAAM,oBAAoD,CAAC;AAAA,EACzD,YAAY;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,EACT,GAAG;AACL,MAAM;AACJ,QAAM,EAAE,KAAK,IAAI,UAAU,mBAAmB,GAAG,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;AAAA,MACJ,KAAAA,OAAM;AAAA,MACN,MAAAC,QAAO;AAAA,MACP,mBAAAC,qBAAoB;AAAA,MACpB,YAAAC,cAAa;AAAA,MACb,GAAG;AAAA,IACL,IAAI,kBAAkB,CAAC;AACvB,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,MAAM,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,MAAM,wBAAwB;AAAA,EACnC;AACF;","names":["pre","code","SyntaxHighlighter","CodeHeader"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@assistant-ui/react-markdown",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "license": "MIT",
5
+ "type": "module",
5
6
  "exports": {
6
7
  ".": {
7
8
  "types": "./dist/index.d.ts",
8
- "import": "./dist/index.mjs",
9
- "require": "./dist/index.js"
9
+ "default": "./dist/index.js"
10
10
  },
11
11
  "./styles/dot.css": {
12
12
  "default": "./styles/dot.css"
@@ -14,7 +14,6 @@
14
14
  },
15
15
  "source": "./src/index.ts",
16
16
  "main": "./dist/index.js",
17
- "module": "./dist/index.mjs",
18
17
  "types": "./dist/index.d.ts",
19
18
  "files": [
20
19
  "dist",
@@ -31,7 +30,7 @@
31
30
  "react-markdown": "^10.1.0"
32
31
  },
33
32
  "peerDependencies": {
34
- "@assistant-ui/react": "^0.9.6",
33
+ "@assistant-ui/react": "^0.10.0",
35
34
  "@types/react": "*",
36
35
  "react": "^18 || ^19 || ^19.0.0-rc"
37
36
  },
@@ -47,9 +46,9 @@
47
46
  "react": "19.1.0",
48
47
  "react-dom": "19.1.0",
49
48
  "tsx": "^4.19.3",
49
+ "@assistant-ui/react": "0.10.0",
50
50
  "@assistant-ui/tsbuildutils": "0.0.1",
51
- "@assistant-ui/tsconfig": "0.0.0",
52
- "@assistant-ui/react": "0.9.6"
51
+ "@assistant-ui/tsconfig": "0.0.0"
53
52
  },
54
53
  "publishConfig": {
55
54
  "access": "public",
package/dist/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export { MarkdownTextPrimitive, type MarkdownTextPrimitiveProps, } from "./primitives/MarkdownText";
2
- export type { CodeHeaderProps, SyntaxHighlighterProps, } from "./overrides/types";
3
- export { useIsMarkdownCodeBlock } from "./overrides/PreOverride";
4
- export { memoizeMarkdownComponents as unstable_memoizeMarkdownComponents } from "./memoization";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,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"}
package/dist/index.mjs DELETED
@@ -1,12 +0,0 @@
1
- // src/index.ts
2
- import {
3
- MarkdownTextPrimitive
4
- } from "./primitives/MarkdownText.mjs";
5
- import { useIsMarkdownCodeBlock } from "./overrides/PreOverride.mjs";
6
- import { memoizeMarkdownComponents } from "./memoization.mjs";
7
- export {
8
- MarkdownTextPrimitive,
9
- memoizeMarkdownComponents as unstable_memoizeMarkdownComponents,
10
- useIsMarkdownCodeBlock
11
- };
12
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,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":[]}
@@ -1,22 +0,0 @@
1
- import { Element } from "hast";
2
- import { ComponentProps, ComponentType, ElementType } from "react";
3
- import { CodeHeaderProps, SyntaxHighlighterProps } from "./overrides/types";
4
- type Components = {
5
- [Key in Extract<ElementType, string>]?: ComponentType<ComponentProps<Key>>;
6
- } & {
7
- SyntaxHighlighter?: ComponentType<Omit<SyntaxHighlighterProps, "node">> | undefined;
8
- CodeHeader?: ComponentType<Omit<CodeHeaderProps, "node">> | undefined;
9
- };
10
- export declare const areNodesEqual: (prev: Element | undefined, next: Element | undefined) => boolean;
11
- export declare const memoCompareNodes: (prev: {
12
- node?: Element | undefined;
13
- }, next: {
14
- node?: Element | undefined;
15
- }) => boolean;
16
- export declare const memoizeMarkdownComponents: (components?: Components) => {
17
- [k: string]: import("react").MemoExoticComponent<({ node, ...props }: {
18
- node?: Element;
19
- }) => import("react/jsx-runtime").JSX.Element> | undefined;
20
- };
21
- export {};
22
- //# sourceMappingURL=memoization.d.ts.map
@@ -1 +0,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,YAQ1B,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,33 +0,0 @@
1
- // src/memoization.tsx
2
- import { memo } from "react";
3
- import { jsx } from "react/jsx-runtime";
4
- var areChildrenEqual = (prev, next) => {
5
- if (typeof prev === "string") return prev === next;
6
- return JSON.stringify(prev) === JSON.stringify(next);
7
- };
8
- var areNodesEqual = (prev, next) => {
9
- if (!prev || !next) return false;
10
- const isEqual = JSON.stringify(prev?.properties) === JSON.stringify(next?.properties) && areChildrenEqual(prev?.children, next?.children);
11
- return isEqual;
12
- };
13
- var memoCompareNodes = (prev, next) => {
14
- return areNodesEqual(prev.node, next.node);
15
- };
16
- var memoizeMarkdownComponents = (components = {}) => {
17
- return Object.fromEntries(
18
- Object.entries(components ?? {}).map(([key, value]) => {
19
- if (!value) return [key, value];
20
- const Component = value;
21
- const WithoutNode = ({ node, ...props }) => {
22
- return /* @__PURE__ */ jsx(Component, { ...props });
23
- };
24
- return [key, memo(WithoutNode, memoCompareNodes)];
25
- })
26
- );
27
- };
28
- export {
29
- areNodesEqual,
30
- memoCompareNodes,
31
- memoizeMarkdownComponents
32
- };
33
- //# sourceMappingURL=memoization.mjs.map
@@ -1 +0,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 // 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,16 +0,0 @@
1
- import { ComponentType, FC } from "react";
2
- import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
3
- import { Element } from "hast";
4
- export type CodeBlockProps = {
5
- node: Element | undefined;
6
- language: string;
7
- code: string;
8
- components: {
9
- Pre: PreComponent;
10
- Code: CodeComponent;
11
- CodeHeader: ComponentType<CodeHeaderProps>;
12
- SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
13
- };
14
- };
15
- export declare const DefaultCodeBlock: FC<CodeBlockProps>;
16
- //# sourceMappingURL=CodeBlock.d.ts.map
@@ -1 +0,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"}
@@ -1,29 +0,0 @@
1
- // src/overrides/CodeBlock.tsx
2
- import { useMemo } from "react";
3
- import { DefaultCodeBlockContent } from "./defaultComponents.mjs";
4
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
- var DefaultCodeBlock = ({
6
- node,
7
- components: { Pre, Code, SyntaxHighlighter, CodeHeader },
8
- language,
9
- code
10
- }) => {
11
- const components = useMemo(() => ({ Pre, Code }), [Pre, Code]);
12
- const SH = !!language ? SyntaxHighlighter : DefaultCodeBlockContent;
13
- return /* @__PURE__ */ jsxs(Fragment, { children: [
14
- /* @__PURE__ */ jsx(CodeHeader, { node, language, code }),
15
- /* @__PURE__ */ jsx(
16
- SH,
17
- {
18
- node,
19
- components,
20
- language: language ?? "unknown",
21
- code
22
- }
23
- )
24
- ] });
25
- };
26
- export {
27
- DefaultCodeBlock
28
- };
29
- //# sourceMappingURL=CodeBlock.mjs.map
@@ -1 +0,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,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,16 +0,0 @@
1
- import { ComponentPropsWithoutRef, ComponentType } from "react";
2
- import { CodeComponent, CodeHeaderProps, PreComponent, SyntaxHighlighterProps } from "./types";
3
- export type CodeOverrideProps = ComponentPropsWithoutRef<CodeComponent> & {
4
- components: {
5
- Pre: PreComponent;
6
- Code: CodeComponent;
7
- CodeHeader: ComponentType<CodeHeaderProps>;
8
- SyntaxHighlighter: ComponentType<SyntaxHighlighterProps>;
9
- };
10
- componentsByLanguage?: Record<string, {
11
- CodeHeader?: ComponentType<CodeHeaderProps>;
12
- SyntaxHighlighter?: ComponentType<SyntaxHighlighterProps>;
13
- }> | undefined;
14
- };
15
- export declare const CodeOverride: import("react").NamedExoticComponent<CodeOverrideProps>;
16
- //# sourceMappingURL=CodeOverride.d.ts.map
@@ -1 +0,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"}
@@ -1,83 +0,0 @@
1
- // src/overrides/CodeOverride.tsx
2
- import {
3
- memo,
4
- useContext
5
- } from "react";
6
- import { PreContext, useIsMarkdownCodeBlock } from "./PreOverride.mjs";
7
- import { DefaultCodeBlock } from "./CodeBlock.mjs";
8
- import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
9
- import { withDefaultProps } from "./withDefaults.mjs";
10
- import { DefaultCodeBlockContent } from "./defaultComponents.mjs";
11
- import { memoCompareNodes } from "../memoization.mjs";
12
- import { jsx } from "react/jsx-runtime";
13
- var CodeBlockOverride = ({
14
- node,
15
- components: {
16
- Pre,
17
- Code,
18
- SyntaxHighlighter: FallbackSyntaxHighlighter,
19
- CodeHeader: FallbackCodeHeader
20
- },
21
- componentsByLanguage = {},
22
- children,
23
- ...codeProps
24
- }) => {
25
- const preProps = useContext(PreContext);
26
- const getPreProps = withDefaultProps(preProps);
27
- const WrappedPre = useCallbackRef((props) => /* @__PURE__ */ jsx(Pre, { ...getPreProps(props) }));
28
- const getCodeProps = withDefaultProps(codeProps);
29
- const WrappedCode = useCallbackRef((props) => /* @__PURE__ */ jsx(Code, { ...getCodeProps(props) }));
30
- const language = /language-(\w+)/.exec(codeProps.className || "")?.[1] ?? "";
31
- if (typeof children !== "string") {
32
- return /* @__PURE__ */ jsx(
33
- DefaultCodeBlockContent,
34
- {
35
- node,
36
- components: { Pre: WrappedPre, Code: WrappedCode },
37
- code: children
38
- }
39
- );
40
- }
41
- const SyntaxHighlighter = componentsByLanguage[language]?.SyntaxHighlighter ?? FallbackSyntaxHighlighter;
42
- const CodeHeader = componentsByLanguage[language]?.CodeHeader ?? FallbackCodeHeader;
43
- return /* @__PURE__ */ jsx(
44
- DefaultCodeBlock,
45
- {
46
- node,
47
- components: {
48
- Pre: WrappedPre,
49
- Code: WrappedCode,
50
- SyntaxHighlighter,
51
- CodeHeader
52
- },
53
- language: language || "unknown",
54
- code: children
55
- }
56
- );
57
- };
58
- var CodeOverrideImpl = ({
59
- node,
60
- components,
61
- componentsByLanguage,
62
- ...props
63
- }) => {
64
- const isCodeBlock = useIsMarkdownCodeBlock();
65
- if (!isCodeBlock) return /* @__PURE__ */ jsx(components.Code, { ...props });
66
- return /* @__PURE__ */ jsx(
67
- CodeBlockOverride,
68
- {
69
- node,
70
- components,
71
- componentsByLanguage,
72
- ...props
73
- }
74
- );
75
- };
76
- var CodeOverride = memo(CodeOverrideImpl, (prev, next) => {
77
- const isEqual = prev.components === next.components && prev.componentsByLanguage === next.componentsByLanguage && memoCompareNodes(prev, next);
78
- return isEqual;
79
- });
80
- export {
81
- CodeOverride
82
- };
83
- //# sourceMappingURL=CodeOverride.mjs.map
@@ -1 +0,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":[]}
@@ -1,8 +0,0 @@
1
- export declare const PreContext: import("react").Context<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLPreElement>, HTMLPreElement>, "ref"> & {
2
- node?: import("hast").Element | undefined;
3
- }, "children"> | null>;
4
- export declare const useIsMarkdownCodeBlock: () => boolean;
5
- export declare const PreOverride: import("react").NamedExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLPreElement>, HTMLPreElement>, "ref"> & {
6
- node?: import("hast").Element | undefined;
7
- }>;
8
- //# sourceMappingURL=PreOverride.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PreOverride.d.ts","sourceRoot":"","sources":["../../src/overrides/PreOverride.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,UAAU;;sBAGR,CAAC;AAEhB,eAAO,MAAM,sBAAsB,eAElC,CAAC;AAMF,eAAO,MAAM,WAAW;;EAA0C,CAAC"}
@@ -1,24 +0,0 @@
1
- "use client";
2
-
3
- // src/overrides/PreOverride.tsx
4
- import {
5
- createContext,
6
- useContext,
7
- memo
8
- } from "react";
9
- import { memoCompareNodes } from "../memoization.mjs";
10
- import { jsx } from "react/jsx-runtime";
11
- var PreContext = createContext(null);
12
- var useIsMarkdownCodeBlock = () => {
13
- return useContext(PreContext) !== null;
14
- };
15
- var PreOverrideImpl = ({ children, ...rest }) => {
16
- return /* @__PURE__ */ jsx(PreContext.Provider, { value: rest, children });
17
- };
18
- var PreOverride = memo(PreOverrideImpl, memoCompareNodes);
19
- export {
20
- PreContext,
21
- PreOverride,
22
- useIsMarkdownCodeBlock
23
- };
24
- //# sourceMappingURL=PreOverride.mjs.map
@@ -1 +0,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":[]}
@@ -1,15 +0,0 @@
1
- import type { ComponentType, ReactNode } from "react";
2
- import { PreComponent, CodeComponent, CodeHeaderProps } from "./types";
3
- import { Element } from "hast";
4
- export declare const DefaultPre: PreComponent;
5
- export declare const DefaultCode: CodeComponent;
6
- export declare const DefaultCodeBlockContent: ComponentType<{
7
- node: Element | undefined;
8
- components: {
9
- Pre: PreComponent;
10
- Code: CodeComponent;
11
- };
12
- code: string | ReactNode | undefined;
13
- }>;
14
- export declare const DefaultCodeHeader: ComponentType<CodeHeaderProps>;
15
- //# sourceMappingURL=defaultComponents.d.ts.map
@@ -1 +0,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"}
@@ -1,13 +0,0 @@
1
- // src/overrides/defaultComponents.tsx
2
- import { jsx } from "react/jsx-runtime";
3
- var DefaultPre = ({ node, ...rest }) => /* @__PURE__ */ jsx("pre", { ...rest });
4
- var DefaultCode = ({ node, ...rest }) => /* @__PURE__ */ jsx("code", { ...rest });
5
- var DefaultCodeBlockContent = ({ node, components: { Pre, Code }, code }) => /* @__PURE__ */ jsx(Pre, { children: /* @__PURE__ */ jsx(Code, { node, children: code }) });
6
- var DefaultCodeHeader = () => null;
7
- export {
8
- DefaultCode,
9
- DefaultCodeBlockContent,
10
- DefaultCodeHeader,
11
- DefaultPre
12
- };
13
- //# sourceMappingURL=defaultComponents.mjs.map
@@ -1 +0,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":[]}
@@ -1,23 +0,0 @@
1
- import { Element } from "hast";
2
- import { ComponentPropsWithoutRef, ComponentType } from "react";
3
- export type PreComponent = ComponentType<ComponentPropsWithoutRef<"pre"> & {
4
- node?: Element | undefined;
5
- }>;
6
- export type CodeComponent = ComponentType<ComponentPropsWithoutRef<"code"> & {
7
- node?: Element | undefined;
8
- }>;
9
- export type CodeHeaderProps = {
10
- node?: Element | undefined;
11
- language: string | undefined;
12
- code: string;
13
- };
14
- export type SyntaxHighlighterProps = {
15
- node?: Element | undefined;
16
- components: {
17
- Pre: PreComponent;
18
- Code: CodeComponent;
19
- };
20
- language: string;
21
- code: string;
22
- };
23
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,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"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}