@docubook/mdx-content 2.0.0 → 2.1.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.
@@ -1,7 +1,10 @@
1
- import type { ComponentProps } from "react";
1
+ import { type ComponentProps } from "react";
2
2
  type CodeBlockProps = ComponentProps<"pre"> & {
3
3
  raw?: string;
4
4
  "data-title"?: string;
5
+ "data-language"?: string;
6
+ "data-expandable"?: string;
7
+ "data-expandable-lines"?: string;
5
8
  };
6
9
  export declare function CodeBlock({ children, raw, ...rest }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
7
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/components/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,OAAO,CAAC;AA4BvD,KAAK,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAuDF,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,2CA2BnE"}
1
+ {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/components/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,cAAc,EAAkB,MAAM,OAAO,CAAA;AA6B3E,KAAK,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC,CAAA;AAuFD,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,2CA2GnE"}
@@ -1,12 +1,31 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { isValidElement } from "react";
2
3
  import { SiJavascript, SiTypescript, SiReact, SiPython, SiGo, SiPhp, SiRuby, SiSwift, SiKotlin, SiHtml5, SiCss, SiSass, SiPostgresql, SiGraphql, SiYaml, SiToml, SiDocker, SiNginx, SiGit, SiGnubash, SiMarkdown, } from "react-icons/si";
3
- import { FaJava, FaCode, FaFileAlt } from "react-icons/fa";
4
+ import { FaJava, FaCode, FaRegFileAlt } from "react-icons/fa";
4
5
  import { TbJson } from "react-icons/tb";
5
6
  import { CopyButton } from "./CopyButton";
7
+ import { ExpandableCode } from "./ExpandableCode";
6
8
  function getLanguage(className = "") {
7
9
  const match = className.match(/language-(\w+)/);
8
10
  return match ? match[1] : "text";
9
11
  }
12
+ function resolveLanguage(preClassName, dataLanguage, children) {
13
+ if (typeof dataLanguage === "string" && dataLanguage.trim().length > 0) {
14
+ return dataLanguage.trim().toLowerCase();
15
+ }
16
+ const languageFromPre = getLanguage(preClassName ?? "");
17
+ if (languageFromPre !== "text")
18
+ return languageFromPre;
19
+ if (isValidElement(children)) {
20
+ const childProps = children.props;
21
+ if (typeof childProps.className === "string") {
22
+ const languageFromCode = getLanguage(childProps.className);
23
+ if (languageFromCode !== "text")
24
+ return languageFromCode;
25
+ }
26
+ }
27
+ return "text";
28
+ }
10
29
  function getLanguageIcon(language) {
11
30
  const normalized = language.toLowerCase();
12
31
  const iconProps = { size: 14 };
@@ -47,21 +66,70 @@ function getLanguageIcon(language) {
47
66
  css: _jsx(SiCss, { ...iconProps }),
48
67
  scss: _jsx(SiSass, { ...iconProps }),
49
68
  sass: _jsx(SiSass, { ...iconProps }),
50
- text: _jsx(FaFileAlt, { ...iconProps }),
51
- plaintext: _jsx(FaFileAlt, { ...iconProps }),
69
+ text: _jsx(FaRegFileAlt, { ...iconProps }),
70
+ plaintext: _jsx(FaRegFileAlt, { ...iconProps }),
52
71
  };
53
72
  return map[normalized] || _jsx(FaCode, { ...iconProps });
54
73
  }
74
+ function countCodeLines(raw) {
75
+ let normalized = raw.replace(/\r\n/g, "\n");
76
+ if (normalized.startsWith("\n"))
77
+ normalized = normalized.slice(1);
78
+ if (normalized.endsWith("\n"))
79
+ normalized = normalized.slice(0, -1);
80
+ if (normalized.length === 0)
81
+ return 0;
82
+ return normalized.split("\n").length;
83
+ }
55
84
  export function CodeBlock({ children, raw, ...rest }) {
56
- const { className, "data-title": title, ...props } = rest;
57
- const language = getLanguage(className);
58
- return (_jsxs("div", { style: { border: "1px solid hsl(var(--border, 210 14% 94%))", borderRadius: 12, overflow: "hidden", margin: "1rem 0" }, children: [_jsxs("div", { style: {
85
+ const { className, "data-title": title, "data-language": dataLanguage, "data-expandable": isExpandable, "data-expandable-lines": totalLinesStr, ...props } = rest;
86
+ const language = resolveLanguage(typeof className === "string" ? className : undefined, dataLanguage, children);
87
+ const totalLinesFromMeta = parseInt(totalLinesStr, 10) || 0;
88
+ const totalLinesFromRaw = raw ? countCodeLines(raw) : 0;
89
+ const totalLines = totalLinesFromRaw || totalLinesFromMeta;
90
+ const hasExpandableClass = typeof className === "string" && className.split(" ").includes("mdx-expandable-code");
91
+ const shouldExpand = isExpandable === "true" || hasExpandableClass;
92
+ const preProps = {
93
+ ...props,
94
+ "data-expandable": isExpandable,
95
+ "data-expandable-lines": totalLinesStr,
96
+ };
97
+ return (_jsxs("div", { className: "code-block-container", style: {
98
+ position: "relative",
99
+ margin: "1.5rem 0",
100
+ border: "1px solid hsl(var(--border))",
101
+ overflow: "hidden",
102
+ fontSize: "0.875rem",
103
+ borderRadius: "0.75rem",
104
+ }, children: [_jsxs("div", { className: "code-block-header", style: {
59
105
  display: "flex",
60
106
  alignItems: "center",
61
107
  justifyContent: "space-between",
62
- padding: "0.45rem 0.6rem",
63
- borderBottom: "1px solid hsl(var(--border, 210 14% 94%))",
108
+ gap: "0.75rem",
64
109
  background: "hsl(var(--muted, 210 12% 96%))",
65
- }, children: [_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 6, fontSize: "0.78rem", color: "hsl(var(--muted-foreground, 215 20% 65%))" }, children: [getLanguageIcon(language), _jsx("span", { children: title || language })] }), raw ? _jsx(CopyButton, { content: raw }) : null] }), _jsx("pre", { ...props, className: className, style: { margin: 0, padding: "0.9rem", overflowX: "auto" }, children: children })] }));
110
+ padding: "0.5rem 1rem",
111
+ borderBottom: "1px solid hsl(var(--border, 210 14% 94%))",
112
+ color: "hsl(var(--muted-foreground, 210 12% 40%))",
113
+ fontFamily: "monospace",
114
+ fontSize: "0.8rem",
115
+ }, children: [_jsxs("div", { style: {
116
+ display: "flex",
117
+ alignItems: "center",
118
+ gap: 6,
119
+ fontSize: "0.78rem",
120
+ color: "hsl(var(--muted-foreground, 210 12% 40%))",
121
+ }, children: [getLanguageIcon(language), _jsx("span", { children: title || language })] }), raw ? (_jsx("div", { className: "code-block-actions", style: {
122
+ display: "inline-flex",
123
+ alignItems: "center",
124
+ marginLeft: "auto",
125
+ }, children: _jsx("div", { style: {
126
+ color: "hsl(var(--muted-foreground))",
127
+ transition: "color 0.2s ease-in-out",
128
+ }, children: _jsx(CopyButton, { content: raw }) }) })) : null] }), _jsx("div", { className: "code-block-body", style: {
129
+ overflowY: "visible",
130
+ backgroundColor: "hsl(var(--background))",
131
+ willChange: "transform",
132
+ borderBottom: "none",
133
+ }, children: _jsx(ExpandableCode, { isExpandable: shouldExpand, totalLines: totalLines, preContent: children, preProps: preProps, className: className }) })] }));
66
134
  }
67
135
  //# sourceMappingURL=CodeBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../src/components/CodeBlock.tsx"],"names":[],"mappings":";AACA,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,YAAY,EACZ,SAAS,EACT,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,KAAK,EACL,SAAS,EACT,UAAU,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,SAAS,WAAW,CAAC,YAAoB,EAAE;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACrC,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAE/B,MAAM,GAAG,GAA8B;QACnC,SAAS,EAAE,KAAC,KAAK,OAAK,SAAS,GAAI;QACnC,MAAM,EAAE,KAAC,QAAQ,OAAK,SAAS,GAAI;QACnC,UAAU,EAAE,KAAC,QAAQ,OAAK,SAAS,GAAI;QACvC,KAAK,EAAE,KAAC,OAAO,OAAK,SAAS,GAAI;QACjC,GAAG,EAAE,KAAC,YAAY,OAAK,SAAS,GAAI;QACpC,OAAO,EAAE,KAAC,SAAS,OAAK,SAAS,GAAI;QACrC,IAAI,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC/B,GAAG,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC9B,IAAI,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC/B,IAAI,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC/B,EAAE,EAAE,KAAC,UAAU,OAAK,SAAS,GAAI;QACjC,QAAQ,EAAE,KAAC,UAAU,OAAK,SAAS,GAAI;QACvC,IAAI,EAAE,KAAC,SAAS,OAAK,SAAS,GAAI;QAClC,EAAE,EAAE,KAAC,SAAS,OAAK,SAAS,GAAI;QAChC,KAAK,EAAE,KAAC,SAAS,OAAK,SAAS,GAAI;QACnC,KAAK,EAAE,KAAC,OAAO,OAAK,SAAS,GAAI;QACjC,MAAM,EAAE,KAAC,QAAQ,OAAK,SAAS,GAAI;QACnC,EAAE,EAAE,KAAC,QAAQ,OAAK,SAAS,GAAI;QAC/B,GAAG,EAAE,KAAC,QAAQ,OAAK,SAAS,GAAI;QAChC,EAAE,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC7B,IAAI,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC/B,GAAG,EAAE,KAAC,KAAK,OAAK,SAAS,GAAI;QAC7B,EAAE,EAAE,KAAC,IAAI,OAAK,SAAS,GAAI;QAC3B,EAAE,EAAE,KAAC,QAAQ,OAAK,SAAS,GAAI;QAC/B,MAAM,EAAE,KAAC,QAAQ,OAAK,SAAS,GAAI;QACnC,IAAI,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC/B,GAAG,EAAE,KAAC,OAAO,OAAK,SAAS,GAAI;QAC/B,UAAU,EAAE,KAAC,YAAY,OAAK,SAAS,GAAI;QAC3C,EAAE,EAAE,KAAC,YAAY,OAAK,SAAS,GAAI;QACnC,GAAG,EAAE,KAAC,OAAO,OAAK,SAAS,GAAI;QAC/B,EAAE,EAAE,KAAC,YAAY,OAAK,SAAS,GAAI;QACnC,UAAU,EAAE,KAAC,YAAY,OAAK,SAAS,GAAI;QAC3C,IAAI,EAAE,KAAC,OAAO,OAAK,SAAS,GAAI;QAChC,GAAG,EAAE,KAAC,KAAK,OAAK,SAAS,GAAI;QAC7B,IAAI,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC/B,IAAI,EAAE,KAAC,MAAM,OAAK,SAAS,GAAI;QAC/B,IAAI,EAAE,KAAC,SAAS,OAAK,SAAS,GAAI;QAClC,SAAS,EAAE,KAAC,SAAS,OAAK,SAAS,GAAI;KAC1C,CAAC;IAEF,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,KAAC,MAAM,OAAK,SAAS,GAAI,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,EAAkB;IAChE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAExC,OAAO,CACH,eAAK,KAAK,EAAE,EAAE,MAAM,EAAE,2CAA2C,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aACvH,eACI,KAAK,EAAE;oBACH,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,cAAc,EAAE,eAAe;oBAC/B,OAAO,EAAE,gBAAgB;oBACzB,YAAY,EAAE,2CAA2C;oBACzD,UAAU,EAAE,gCAAgC;iBAC/C,aAED,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,2CAA2C,EAAE,aACjI,eAAe,CAAC,QAAQ,CAAC,EAC1B,yBAAO,KAAK,IAAI,QAAQ,GAAQ,IAC9B,EACL,GAAG,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,OAAO,EAAE,GAAG,GAAI,CAAC,CAAC,CAAC,IAAI,IACxC,EACN,iBAAS,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,YAC3F,QAAQ,GACP,IACJ,CACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../src/components/CodeBlock.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type ReactNode } from "react";
2
+ type ExpandableCodeProps = {
3
+ isExpandable: boolean;
4
+ totalLines: number;
5
+ preContent: ReactNode;
6
+ preProps: Record<string, unknown>;
7
+ className?: string;
8
+ };
9
+ export declare function ExpandableCode({ isExpandable, totalLines, preContent, preProps, className, }: ExpandableCodeProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=ExpandableCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandableCode.d.ts","sourceRoot":"","sources":["../../src/components/ExpandableCode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGnE,KAAK,mBAAmB,GAAG;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,SAAS,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAKD,wBAAgB,cAAc,CAAC,EAC7B,YAAY,EACZ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,GACV,EAAE,mBAAmB,2CAyHrB"}
@@ -0,0 +1,83 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useEffect, useState, useRef } from "react";
4
+ import { Ellipsis } from "lucide-react";
5
+ const DEFAULT_VISIBLE_LINES = 20;
6
+ const FALLBACK_LINE_HEIGHT_PX = 24;
7
+ export function ExpandableCode({ isExpandable, totalLines, preContent, preProps, className, }) {
8
+ const [isOpen, setIsOpen] = useState(false);
9
+ const [collapsedMaxHeight, setCollapsedMaxHeight] = useState(`${DEFAULT_VISIBLE_LINES * FALLBACK_LINE_HEIGHT_PX}px`);
10
+ const preRef = useRef(null);
11
+ const shouldShow = isExpandable && totalLines > DEFAULT_VISIBLE_LINES;
12
+ const isCollapsed = shouldShow && !isOpen;
13
+ useEffect(() => {
14
+ const pre = preRef.current;
15
+ if (!pre)
16
+ return;
17
+ const calculateCollapsedHeight = () => {
18
+ const styles = window.getComputedStyle(pre);
19
+ const paddingTop = Number.parseFloat(styles.paddingTop) || 0;
20
+ const paddingBottom = Number.parseFloat(styles.paddingBottom) || 0;
21
+ const contentHeight = Math.max(pre.scrollHeight - paddingTop - paddingBottom, 0);
22
+ if (totalLines > 0 && contentHeight > 0) {
23
+ const lineHeight = contentHeight / totalLines;
24
+ setCollapsedMaxHeight(`${DEFAULT_VISIBLE_LINES * lineHeight + paddingTop + paddingBottom}px`);
25
+ return;
26
+ }
27
+ let lineHeight = Number.parseFloat(styles.lineHeight);
28
+ if (!Number.isFinite(lineHeight) || lineHeight === 0) {
29
+ const fontSize = Number.parseFloat(styles.fontSize);
30
+ lineHeight = Number.isFinite(fontSize) ? fontSize * 1.5 : FALLBACK_LINE_HEIGHT_PX;
31
+ }
32
+ setCollapsedMaxHeight(`${DEFAULT_VISIBLE_LINES * lineHeight + paddingTop + paddingBottom}px`);
33
+ };
34
+ const frame = requestAnimationFrame(calculateCollapsedHeight);
35
+ const timeout = window.setTimeout(calculateCollapsedHeight, 50);
36
+ window.addEventListener("resize", calculateCollapsedHeight);
37
+ return () => {
38
+ cancelAnimationFrame(frame);
39
+ window.clearTimeout(timeout);
40
+ window.removeEventListener("resize", calculateCollapsedHeight);
41
+ };
42
+ }, [preContent, totalLines]);
43
+ return (_jsxs(_Fragment, { children: [_jsx("div", { style: {
44
+ overflowX: "auto",
45
+ overscrollBehaviorX: "contain",
46
+ }, children: _jsx("pre", { ref: preRef, ...preProps, className: `${className || ""} mdx-expandable-code`, style: {
47
+ margin: 0,
48
+ padding: "0.9rem",
49
+ overflowX: "visible",
50
+ width: "max-content !important",
51
+ minWidth: "100%",
52
+ maxHeight: isCollapsed ? collapsedMaxHeight : "none",
53
+ overflowY: isCollapsed ? "hidden" : "visible",
54
+ transition: "max-height 0.3s ease",
55
+ scrollbarWidth: "thin",
56
+ backgroundColor: "transparent !important",
57
+ }, children: preContent }) }), shouldShow && (_jsx("div", { className: "code-block-expandable-footer", style: {
58
+ display: "flex",
59
+ alignItems: "center",
60
+ justifyContent: "center",
61
+ padding: "0.6rem",
62
+ background: "hsl(var(--muted, 210 12% 96%))",
63
+ borderTop: "1px solid hsl(var(--border, 210 14% 94%))",
64
+ }, children: _jsxs("button", { className: "code-block-expandable-toggle", onClick: () => setIsOpen(!isOpen), style: {
65
+ display: "flex",
66
+ alignItems: "center",
67
+ gap: "0.5rem",
68
+ padding: "0.4rem 0.8rem",
69
+ border: "1px solid hsl(var(--border, 210 14% 94%))",
70
+ borderRadius: 6,
71
+ background: "hsl(var(--background, 0 0% 100%))",
72
+ color: "hsl(var(--foreground, 222 12% 12%))",
73
+ fontSize: "0.85rem",
74
+ fontWeight: 500,
75
+ cursor: "pointer",
76
+ transition: "all 0.2s ease",
77
+ fontFamily: "inherit",
78
+ }, children: [_jsx(Ellipsis, { size: 16, style: {
79
+ transform: isOpen ? "rotate(180deg)" : "rotate(0deg)",
80
+ transition: "transform 0.2s ease",
81
+ } }), _jsx("span", { children: isOpen ? "Collapse" : `See all ${totalLines} lines` })] }) }))] }));
82
+ }
83
+ //# sourceMappingURL=ExpandableCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandableCode.js","sourceRoot":"","sources":["../../src/components/ExpandableCode.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export { ButtonMdx } from "./ButtonMdx";
4
4
  export { CardMdx } from "./CardMdx";
5
5
  export { CardsMdx, CardGroupMdx } from "./CardGroupMdx";
6
6
  export { CodeBlock } from "./CodeBlock";
7
+ export { ExpandableCode } from "./ExpandableCode";
7
8
  export { CopyButton } from "./CopyButton";
8
9
  export { FileMdx, FilesMdx, FolderMdx } from "./FileTreeMdx";
9
10
  export { ImageMdx } from "./ImageMdx";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -4,6 +4,7 @@ export { ButtonMdx } from "./ButtonMdx";
4
4
  export { CardMdx } from "./CardMdx";
5
5
  export { CardsMdx, CardGroupMdx } from "./CardGroupMdx";
6
6
  export { CodeBlock } from "./CodeBlock";
7
+ export { ExpandableCode } from "./ExpandableCode";
7
8
  export { CopyButton } from "./CopyButton";
8
9
  export { FileMdx, FilesMdx, FolderMdx } from "./FileTreeMdx";
9
10
  export { ImageMdx } from "./ImageMdx";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { ButtonMdx } from "./components/ButtonMdx";
4
4
  export { CardMdx } from "./components/CardMdx";
5
5
  export { CardsMdx, CardGroupMdx } from "./components/CardGroupMdx";
6
6
  export { CodeBlock } from "./components/CodeBlock";
7
+ export { ExpandableCode } from "./components/ExpandableCode";
7
8
  export { FileMdx, FilesMdx, FolderMdx } from "./components/FileTreeMdx";
8
9
  export { ImageMdx, type ImageMdxProps } from "./components/ImageMdx";
9
10
  export { KbdMdx } from "./components/KeyboardMdx";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EACH,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EACH,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { ButtonMdx } from "./components/ButtonMdx";
4
4
  export { CardMdx } from "./components/CardMdx";
5
5
  export { CardsMdx, CardGroupMdx } from "./components/CardGroupMdx";
6
6
  export { CodeBlock } from "./components/CodeBlock";
7
+ export { ExpandableCode } from "./components/ExpandableCode";
7
8
  export { FileMdx, FilesMdx, FolderMdx } from "./components/FileTreeMdx";
8
9
  export { ImageMdx } from "./components/ImageMdx";
9
10
  export { KbdMdx } from "./components/KeyboardMdx";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAqB,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EACH,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAwB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAqB,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EACH,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAwB,MAAM,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,76 +1,75 @@
1
1
  {
2
- "name": "@docubook/mdx-content",
3
- "version": "2.0.0",
4
- "description": "Portable MDX components and framework adapters for DocuBook",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js",
12
- "default": "./dist/index.js"
13
- },
14
- "./client": {
15
- "types": "./dist/client.d.ts",
16
- "import": "./dist/client.js",
17
- "default": "./dist/client.js"
18
- },
19
- "./server": {
20
- "types": "./dist/server.d.ts",
21
- "import": "./dist/server.js",
22
- "default": "./dist/server.js"
23
- },
24
- "./next": {
25
- "types": "./dist/adapters/next/index.d.ts",
26
- "import": "./dist/adapters/next/index.js",
27
- "default": "./dist/adapters/next/index.js"
28
- }
2
+ "name": "@docubook/mdx-content",
3
+ "version": "2.1.0",
4
+ "description": "Portable MDX components and framework adapters for DocuBook",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
29
13
  },
30
- "files": [
31
- "dist",
32
- "components.md"
33
- ],
34
- "scripts": {
35
- "build": "rm -rf dist tsconfig.tsbuildinfo && tsc -p tsconfig.json",
36
- "clean": "rm -rf dist tsconfig.tsbuildinfo",
37
- "typecheck": "tsc -p tsconfig.json --noEmit",
38
- "prepublishOnly": "pnpm run clean && pnpm run build"
14
+ "./client": {
15
+ "types": "./dist/client.d.ts",
16
+ "import": "./dist/client.js",
17
+ "default": "./dist/client.js"
39
18
  },
40
- "keywords": [
41
- "docubook",
42
- "mdx",
43
- "react",
44
- "components",
45
- "mdx-components"
46
- ],
47
- "homepage": "https://docubook.pro/",
48
- "repository": {
49
- "type": "git",
50
- "url": "git+https://github.com/DocuBook/docubook"
19
+ "./server": {
20
+ "types": "./dist/server.d.ts",
21
+ "import": "./dist/server.js",
22
+ "default": "./dist/server.js"
51
23
  },
52
- "publishConfig": {
53
- "access": "public"
54
- },
55
- "author": "wildan.nrs",
56
- "author-url": "https://wildan.dev",
57
- "license": "MIT",
58
- "peerDependencies": {
59
- "react": ">=18",
60
- "react-dom": ">=18",
61
- "react-icons": "^5.0.0",
62
- "lucide-react": "^1.7.0"
63
- },
64
- "peerDependenciesMeta": {
65
- "next": {
66
- "optional": true
67
- }
68
- },
69
- "devDependencies": {
70
- "@types/react": "19.2.8",
71
- "@types/react-dom": "19.2.3",
72
- "lucide-react": "^1.7.0",
73
- "react-icons": "^5.0.0",
74
- "typescript": "^5.9.3"
24
+ "./next": {
25
+ "types": "./dist/adapters/next/index.d.ts",
26
+ "import": "./dist/adapters/next/index.js",
27
+ "default": "./dist/adapters/next/index.js"
28
+ }
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "components.md"
33
+ ],
34
+ "keywords": [
35
+ "docubook",
36
+ "mdx",
37
+ "react",
38
+ "components",
39
+ "mdx-components"
40
+ ],
41
+ "homepage": "https://docubook.pro/",
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+https://github.com/DocuBook/docubook"
45
+ },
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "author": "wildan.nrs",
50
+ "author-url": "https://wildan.dev",
51
+ "license": "MIT",
52
+ "peerDependencies": {
53
+ "react": ">=18",
54
+ "react-dom": ">=18",
55
+ "react-icons": "^5.0.0",
56
+ "lucide-react": "^1.7.0"
57
+ },
58
+ "peerDependenciesMeta": {
59
+ "next": {
60
+ "optional": true
75
61
  }
62
+ },
63
+ "devDependencies": {
64
+ "@types/react": "19.2.8",
65
+ "@types/react-dom": "19.2.3",
66
+ "lucide-react": "^1.7.0",
67
+ "react-icons": "^5.0.0",
68
+ "typescript": "^5.9.3"
69
+ },
70
+ "scripts": {
71
+ "build": "rm -rf dist tsconfig.tsbuildinfo && tsc -p tsconfig.json",
72
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
73
+ "typecheck": "tsc -p tsconfig.json --noEmit"
74
+ }
76
75
  }