@agenetix/docs 1.0.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 (189) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +282 -0
  3. package/dist/components/BlogCard.d.ts +7 -0
  4. package/dist/components/BlogCard.d.ts.map +1 -0
  5. package/dist/components/BlogCard.js +10 -0
  6. package/dist/components/BlogCard.js.map +1 -0
  7. package/dist/components/BlogCategories.d.ts +8 -0
  8. package/dist/components/BlogCategories.d.ts.map +1 -0
  9. package/dist/components/BlogCategories.js +23 -0
  10. package/dist/components/BlogCategories.js.map +1 -0
  11. package/dist/components/BlogDirectoryPage.d.ts +10 -0
  12. package/dist/components/BlogDirectoryPage.d.ts.map +1 -0
  13. package/dist/components/BlogDirectoryPage.js +9 -0
  14. package/dist/components/BlogDirectoryPage.js.map +1 -0
  15. package/dist/components/BlogPagination.d.ts +10 -0
  16. package/dist/components/BlogPagination.d.ts.map +1 -0
  17. package/dist/components/BlogPagination.js +23 -0
  18. package/dist/components/BlogPagination.js.map +1 -0
  19. package/dist/components/BlogPostPage.d.ts +11 -0
  20. package/dist/components/BlogPostPage.d.ts.map +1 -0
  21. package/dist/components/BlogPostPage.js +17 -0
  22. package/dist/components/BlogPostPage.js.map +1 -0
  23. package/dist/components/BlogSearch.d.ts +7 -0
  24. package/dist/components/BlogSearch.d.ts.map +1 -0
  25. package/dist/components/BlogSearch.js +5 -0
  26. package/dist/components/BlogSearch.js.map +1 -0
  27. package/dist/components/CopyPageButton.d.ts +4 -0
  28. package/dist/components/CopyPageButton.d.ts.map +1 -0
  29. package/dist/components/CopyPageButton.js +71 -0
  30. package/dist/components/CopyPageButton.js.map +1 -0
  31. package/dist/components/DocsHomePage.d.ts +12 -0
  32. package/dist/components/DocsHomePage.d.ts.map +1 -0
  33. package/dist/components/DocsHomePage.js +45 -0
  34. package/dist/components/DocsHomePage.js.map +1 -0
  35. package/dist/components/DocsLayout.d.ts +3 -0
  36. package/dist/components/DocsLayout.d.ts.map +1 -0
  37. package/dist/components/DocsLayout.js +6 -0
  38. package/dist/components/DocsLayout.js.map +1 -0
  39. package/dist/components/DocsPage.d.ts +14 -0
  40. package/dist/components/DocsPage.d.ts.map +1 -0
  41. package/dist/components/DocsPage.js +16 -0
  42. package/dist/components/DocsPage.js.map +1 -0
  43. package/dist/components/DocsPageMobileToc.d.ts +6 -0
  44. package/dist/components/DocsPageMobileToc.d.ts.map +1 -0
  45. package/dist/components/DocsPageMobileToc.js +15 -0
  46. package/dist/components/DocsPageMobileToc.js.map +1 -0
  47. package/dist/components/DocsSearch.d.ts +8 -0
  48. package/dist/components/DocsSearch.d.ts.map +1 -0
  49. package/dist/components/DocsSearch.js +44 -0
  50. package/dist/components/DocsSearch.js.map +1 -0
  51. package/dist/components/DocsSearchCommand.d.ts +9 -0
  52. package/dist/components/DocsSearchCommand.d.ts.map +1 -0
  53. package/dist/components/DocsSearchCommand.js +43 -0
  54. package/dist/components/DocsSearchCommand.js.map +1 -0
  55. package/dist/components/DocsSearchPalette.d.ts +11 -0
  56. package/dist/components/DocsSearchPalette.d.ts.map +1 -0
  57. package/dist/components/DocsSearchPalette.js +28 -0
  58. package/dist/components/DocsSearchPalette.js.map +1 -0
  59. package/dist/components/DocsSearchResults.d.ts +13 -0
  60. package/dist/components/DocsSearchResults.d.ts.map +1 -0
  61. package/dist/components/DocsSearchResults.js +26 -0
  62. package/dist/components/DocsSearchResults.js.map +1 -0
  63. package/dist/components/DocsSearchTrigger.d.ts +6 -0
  64. package/dist/components/DocsSearchTrigger.d.ts.map +1 -0
  65. package/dist/components/DocsSearchTrigger.js +7 -0
  66. package/dist/components/DocsSearchTrigger.js.map +1 -0
  67. package/dist/components/DocsShell.d.ts +3 -0
  68. package/dist/components/DocsShell.d.ts.map +1 -0
  69. package/dist/components/DocsShell.js +98 -0
  70. package/dist/components/DocsShell.js.map +1 -0
  71. package/dist/components/DocsSidebar.d.ts +10 -0
  72. package/dist/components/DocsSidebar.d.ts.map +1 -0
  73. package/dist/components/DocsSidebar.js +48 -0
  74. package/dist/components/DocsSidebar.js.map +1 -0
  75. package/dist/components/DocsToc.d.ts +6 -0
  76. package/dist/components/DocsToc.d.ts.map +1 -0
  77. package/dist/components/DocsToc.js +42 -0
  78. package/dist/components/DocsToc.js.map +1 -0
  79. package/dist/components/HeadingLinks.d.ts +2 -0
  80. package/dist/components/HeadingLinks.d.ts.map +1 -0
  81. package/dist/components/HeadingLinks.js +54 -0
  82. package/dist/components/HeadingLinks.js.map +1 -0
  83. package/dist/components/MobileDocsChrome.d.ts +9 -0
  84. package/dist/components/MobileDocsChrome.d.ts.map +1 -0
  85. package/dist/components/MobileDocsChrome.js +6 -0
  86. package/dist/components/MobileDocsChrome.js.map +1 -0
  87. package/dist/components/StickyAside.d.ts +7 -0
  88. package/dist/components/StickyAside.d.ts.map +1 -0
  89. package/dist/components/StickyAside.js +5 -0
  90. package/dist/components/StickyAside.js.map +1 -0
  91. package/dist/components/blog-utils.d.ts +8 -0
  92. package/dist/components/blog-utils.d.ts.map +1 -0
  93. package/dist/components/blog-utils.js +28 -0
  94. package/dist/components/blog-utils.js.map +1 -0
  95. package/dist/components/mdx/Accordion.d.ts +13 -0
  96. package/dist/components/mdx/Accordion.d.ts.map +1 -0
  97. package/dist/components/mdx/Accordion.js +8 -0
  98. package/dist/components/mdx/Accordion.js.map +1 -0
  99. package/dist/components/mdx/Banner.d.ts +12 -0
  100. package/dist/components/mdx/Banner.d.ts.map +1 -0
  101. package/dist/components/mdx/Banner.js +10 -0
  102. package/dist/components/mdx/Banner.js.map +1 -0
  103. package/dist/components/mdx/Callout.d.ts +9 -0
  104. package/dist/components/mdx/Callout.d.ts.map +1 -0
  105. package/dist/components/mdx/Callout.js +11 -0
  106. package/dist/components/mdx/Callout.js.map +1 -0
  107. package/dist/components/mdx/Card.d.ts +16 -0
  108. package/dist/components/mdx/Card.d.ts.map +1 -0
  109. package/dist/components/mdx/Card.js +13 -0
  110. package/dist/components/mdx/Card.js.map +1 -0
  111. package/dist/components/mdx/CodeBlock.d.ts +11 -0
  112. package/dist/components/mdx/CodeBlock.d.ts.map +1 -0
  113. package/dist/components/mdx/CodeBlock.js +61 -0
  114. package/dist/components/mdx/CodeBlock.js.map +1 -0
  115. package/dist/components/mdx/CopyCodeButton.d.ts +4 -0
  116. package/dist/components/mdx/CopyCodeButton.d.ts.map +1 -0
  117. package/dist/components/mdx/CopyCodeButton.js +18 -0
  118. package/dist/components/mdx/CopyCodeButton.js.map +1 -0
  119. package/dist/components/mdx/Files.d.ts +19 -0
  120. package/dist/components/mdx/Files.d.ts.map +1 -0
  121. package/dist/components/mdx/Files.js +11 -0
  122. package/dist/components/mdx/Files.js.map +1 -0
  123. package/dist/components/mdx/InlineToc.d.ts +12 -0
  124. package/dist/components/mdx/InlineToc.d.ts.map +1 -0
  125. package/dist/components/mdx/InlineToc.js +26 -0
  126. package/dist/components/mdx/InlineToc.js.map +1 -0
  127. package/dist/components/mdx/Mermaid.d.ts +9 -0
  128. package/dist/components/mdx/Mermaid.d.ts.map +1 -0
  129. package/dist/components/mdx/Mermaid.js +63 -0
  130. package/dist/components/mdx/Mermaid.js.map +1 -0
  131. package/dist/components/mdx/Steps.d.ts +12 -0
  132. package/dist/components/mdx/Steps.d.ts.map +1 -0
  133. package/dist/components/mdx/Steps.js +8 -0
  134. package/dist/components/mdx/Steps.js.map +1 -0
  135. package/dist/components/mdx/Tabs.d.ts +22 -0
  136. package/dist/components/mdx/Tabs.d.ts.map +1 -0
  137. package/dist/components/mdx/Tabs.js +27 -0
  138. package/dist/components/mdx/Tabs.js.map +1 -0
  139. package/dist/components/mdx/index.d.ts +11 -0
  140. package/dist/components/mdx/index.d.ts.map +1 -0
  141. package/dist/components/mdx/index.js +11 -0
  142. package/dist/components/mdx/index.js.map +1 -0
  143. package/dist/components/mdx/lazy.d.ts +11 -0
  144. package/dist/components/mdx/lazy.d.ts.map +1 -0
  145. package/dist/components/mdx/lazy.js +9 -0
  146. package/dist/components/mdx/lazy.js.map +1 -0
  147. package/dist/components/useDocsSearch.d.ts +27 -0
  148. package/dist/components/useDocsSearch.d.ts.map +1 -0
  149. package/dist/components/useDocsSearch.js +119 -0
  150. package/dist/components/useDocsSearch.js.map +1 -0
  151. package/dist/index.d.ts +33 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +33 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/mdx.d.ts +14 -0
  156. package/dist/mdx.d.ts.map +1 -0
  157. package/dist/mdx.js +107 -0
  158. package/dist/mdx.js.map +1 -0
  159. package/dist/server/blog.d.ts +3 -0
  160. package/dist/server/blog.d.ts.map +1 -0
  161. package/dist/server/blog.js +552 -0
  162. package/dist/server/blog.js.map +1 -0
  163. package/dist/server/docs.d.ts +5 -0
  164. package/dist/server/docs.d.ts.map +1 -0
  165. package/dist/server/docs.js +389 -0
  166. package/dist/server/docs.js.map +1 -0
  167. package/dist/server/search.d.ts +3 -0
  168. package/dist/server/search.d.ts.map +1 -0
  169. package/dist/server/search.js +216 -0
  170. package/dist/server/search.js.map +1 -0
  171. package/dist/styles.css +3337 -0
  172. package/dist/theme-provider.d.ts +19 -0
  173. package/dist/theme-provider.d.ts.map +1 -0
  174. package/dist/theme-provider.js +54 -0
  175. package/dist/theme-provider.js.map +1 -0
  176. package/dist/theme.d.ts +11 -0
  177. package/dist/theme.d.ts.map +1 -0
  178. package/dist/theme.js +602 -0
  179. package/dist/theme.js.map +1 -0
  180. package/dist/types.d.ts +379 -0
  181. package/dist/types.d.ts.map +1 -0
  182. package/dist/types.js +2 -0
  183. package/dist/types.js.map +1 -0
  184. package/dist/utils.d.ts +34 -0
  185. package/dist/utils.d.ts.map +1 -0
  186. package/dist/utils.js +85 -0
  187. package/dist/utils.js.map +1 -0
  188. package/package.json +133 -0
  189. package/styles.css +1 -0
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ import type { DocsNavSection } from "../types";
3
+ export default function DocsSidebar({ navigation, variant, onNavigate, header, footer, }: {
4
+ navigation: DocsNavSection[];
5
+ variant?: "desktop" | "mobile";
6
+ onNavigate?: () => void;
7
+ header?: ReactNode;
8
+ footer?: ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=DocsSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsSidebar.d.ts","sourceRoot":"","sources":["../../src/components/DocsSidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,UAAU,EACV,OAAmB,EACnB,UAAU,EACV,MAAM,EACN,MAAM,GACP,EAAE;IACD,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,2CAyBA"}
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Link from "next/link";
4
+ import { usePathname } from "next/navigation";
5
+ import { useMemo, useState } from "react";
6
+ import { isActiveDocsPath } from "../utils";
7
+ export default function DocsSidebar({ navigation, variant = "desktop", onNavigate, header, footer, }) {
8
+ const pathname = usePathname() ?? "";
9
+ const sections = useMemo(() => navigation.filter((section) => section.items.length > 0), [navigation]);
10
+ const sidebarStateKey = useMemo(() => variant === "mobile"
11
+ ? `mobile:${pathname}:${sections.map((section) => section.key).join("|")}`
12
+ : variant, [pathname, sections, variant]);
13
+ return (_jsx(DocsSidebarContent, { sections: sections, pathname: pathname, variant: variant, onNavigate: onNavigate, header: header, footer: footer }, sidebarStateKey));
14
+ }
15
+ function DocsSidebarContent({ sections, pathname, variant, onNavigate, header, footer, }) {
16
+ const [collapsed, setCollapsed] = useState(() => getInitialCollapsedState(sections, pathname, variant));
17
+ const isDesktop = variant === "desktop";
18
+ return (_jsxs("div", { className: isDesktop ? "emcydocs-sidebar" : "emcydocs-sidebar-mobile", children: [header ? _jsx("div", { className: "emcydocs-sidebar-header", children: header }) : null, _jsx("nav", { "aria-label": "Documentation navigation", className: "emcydocs-sidebar-scroll", children: sections.map((section) => {
19
+ const isCollapsed = collapsed[section.key] ?? false;
20
+ const sectionId = `emcydocs-sidebar-section-${section.key || "root"}`;
21
+ return (_jsxs("section", { className: "emcydocs-sidebar-section", children: [isDesktop ? (_jsx("h3", { className: "emcydocs-sidebar-section-label", children: section.label })) : (_jsxs("button", { type: "button", className: "emcydocs-sidebar-section-toggle", "aria-controls": sectionId, "aria-expanded": !isCollapsed, onClick: () => setCollapsed((current) => ({
22
+ ...current,
23
+ [section.key]: !current[section.key],
24
+ })), children: [_jsx("span", { children: section.label }), _jsx("span", { "aria-hidden": "true", children: isCollapsed ? "+" : "−" })] })), (!isCollapsed || isDesktop) && (_jsx("ul", { id: sectionId, className: "emcydocs-sidebar-list", children: section.items.map((item) => {
25
+ const depth = Math.max(0, item.slugs.length - 1);
26
+ const isActive = isActiveDocsPath(pathname, item.href);
27
+ return (_jsx("li", { children: _jsx(Link, { href: item.href, className: [
28
+ "emcydocs-sidebar-link",
29
+ isActive ? "is-active" : "",
30
+ depth > 0 ? "is-nested" : "",
31
+ ]
32
+ .filter(Boolean)
33
+ .join(" "), style: depth > 0 ? { paddingLeft: `${0.75 + depth * 0.5}rem` } : undefined, onClick: onNavigate, children: item.title }) }, item.href));
34
+ }) }))] }, section.key || "root"));
35
+ }) }), footer ? _jsx("div", { className: "emcydocs-sidebar-footer", children: footer }) : null] }));
36
+ }
37
+ function getInitialCollapsedState(sections, pathname, variant) {
38
+ if (variant !== "mobile") {
39
+ return {};
40
+ }
41
+ const activeSection = sections.find((section) => section.items.some((item) => isActiveDocsPath(pathname, item.href)));
42
+ const expandedSectionKey = activeSection?.key ?? sections[0]?.key;
43
+ return sections.reduce((state, section) => {
44
+ state[section.key] = section.key !== expandedSectionKey;
45
+ return state;
46
+ }, {});
47
+ }
48
+ //# sourceMappingURL=DocsSidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsSidebar.js","sourceRoot":"","sources":["../../src/components/DocsSidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { DocsHeading } from "../types";
2
+ export default function DocsToc({ headings, title, }: {
3
+ headings: DocsHeading[];
4
+ title?: string;
5
+ }): import("react/jsx-runtime").JSX.Element | null;
6
+ //# sourceMappingURL=DocsToc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsToc.d.ts","sourceRoot":"","sources":["../../src/components/DocsToc.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,QAAQ,EACR,KAAsB,GACvB,EAAE;IACD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,kDAmEA"}
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useMemo, useState } from "react";
4
+ export default function DocsToc({ headings, title = "On this page", }) {
5
+ const visibleHeadings = useMemo(() => headings.filter((heading) => heading.level >= 2 && heading.level <= 4), [headings]);
6
+ const [activeId, setActiveId] = useState("");
7
+ useEffect(() => {
8
+ if (visibleHeadings.length === 0) {
9
+ return;
10
+ }
11
+ const elements = visibleHeadings
12
+ .map((heading) => document.getElementById(heading.id))
13
+ .filter((element) => element !== null);
14
+ if (elements.length === 0) {
15
+ return;
16
+ }
17
+ const observer = new IntersectionObserver((entries) => {
18
+ const active = entries
19
+ .filter((entry) => entry.isIntersecting)
20
+ .sort((left, right) => left.boundingClientRect.top - right.boundingClientRect.top)[0];
21
+ if (active) {
22
+ setActiveId(active.target.id);
23
+ }
24
+ }, {
25
+ rootMargin: "-96px 0px -70% 0px",
26
+ threshold: 0,
27
+ });
28
+ elements.forEach((element) => observer.observe(element));
29
+ return () => observer.disconnect();
30
+ }, [visibleHeadings]);
31
+ if (visibleHeadings.length === 0) {
32
+ return null;
33
+ }
34
+ return (_jsxs("div", { className: "emcydocs-toc", children: [_jsx("p", { className: "emcydocs-toc-title", children: title }), _jsx("nav", { className: "emcydocs-toc-nav", children: visibleHeadings.map((heading) => (_jsx("a", { href: `#${heading.id}`, className: [
35
+ "emcydocs-toc-link",
36
+ heading.level >= 3 ? "emcydocs-toc-link-sub" : "",
37
+ activeId === heading.id ? "is-active" : "",
38
+ ]
39
+ .filter(Boolean)
40
+ .join(" "), children: heading.text }, heading.id))) })] }));
41
+ }
42
+ //# sourceMappingURL=DocsToc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsToc.js","sourceRoot":"","sources":["../../src/components/DocsToc.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGrD,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,QAAQ,EACR,KAAK,GAAG,cAAc,GAIvB;IACC,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAC5E,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe;aAC7B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACrD,MAAM,CAAC,CAAC,OAAO,EAA0B,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;QAEjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,CAAC,OAAO,EAAE,EAAE;YACV,MAAM,MAAM,GAAG,OAAO;iBACnB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;iBACvC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAExF,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,EACD;YACE,UAAU,EAAE,oBAAoB;YAChC,SAAS,EAAE,CAAC;SACb,CACF,CAAC;QAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAEzD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,cAAc,aAC3B,YAAG,SAAS,EAAC,oBAAoB,YAAE,KAAK,GAAK,EAC7C,cAAK,SAAS,EAAC,kBAAkB,YAC9B,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAChC,YAEE,IAAI,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,EACtB,SAAS,EAAE;wBACT,mBAAmB;wBACnB,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE;wBACjD,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;qBAC3C;yBACE,MAAM,CAAC,OAAO,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,YAEX,OAAO,CAAC,IAAI,IAVR,OAAO,CAAC,EAAE,CAWb,CACL,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default function HeadingLinks(): null;
2
+ //# sourceMappingURL=HeadingLinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadingLinks.d.ts","sourceRoot":"","sources":["../../src/components/HeadingLinks.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,YAAY,SA+DnC"}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { useEffect } from "react";
3
+ export default function HeadingLinks() {
4
+ useEffect(() => {
5
+ const highlight = (id, smooth) => {
6
+ if (!id) {
7
+ return;
8
+ }
9
+ const element = document.getElementById(id);
10
+ if (!element) {
11
+ return;
12
+ }
13
+ if (smooth) {
14
+ element.scrollIntoView({ behavior: "smooth", block: "start" });
15
+ }
16
+ element.classList.add("emcydocs-highlight");
17
+ window.setTimeout(() => {
18
+ element.classList.remove("emcydocs-highlight");
19
+ }, 1600);
20
+ };
21
+ const handleClick = (event) => {
22
+ const target = event.target;
23
+ if (!(target instanceof Element)) {
24
+ return;
25
+ }
26
+ const anchor = target.closest("[data-docs-anchor]");
27
+ if (!(anchor instanceof HTMLAnchorElement)) {
28
+ return;
29
+ }
30
+ event.preventDefault();
31
+ const hash = anchor.getAttribute("href");
32
+ if (!hash) {
33
+ return;
34
+ }
35
+ const id = hash.replace(/^#/, "");
36
+ const url = `${window.location.origin}${window.location.pathname}${hash}`;
37
+ window.history.pushState(null, "", hash);
38
+ void navigator.clipboard?.writeText(url);
39
+ highlight(id, true);
40
+ };
41
+ const handleHashChange = () => {
42
+ highlight(window.location.hash.replace(/^#/, ""), false);
43
+ };
44
+ document.addEventListener("click", handleClick);
45
+ window.addEventListener("hashchange", handleHashChange);
46
+ handleHashChange();
47
+ return () => {
48
+ document.removeEventListener("click", handleClick);
49
+ window.removeEventListener("hashchange", handleHashChange);
50
+ };
51
+ }, []);
52
+ return null;
53
+ }
54
+ //# sourceMappingURL=HeadingLinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadingLinks.js","sourceRoot":"","sources":["../../src/components/HeadingLinks.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,MAAe,EAAE,EAAE;YAChD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACrB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YACjD,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,MAAM,YAAY,iBAAiB,CAAC,EAAE,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;YAE1E,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACzC,KAAK,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YACzC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC5B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QACxD,gBAAgB,EAAE,CAAC;QAEnB,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACnD,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from "react";
2
+ export default function MobileDocsChrome({ currentTitle, isNavOpen, onToggleNav, showNavigationToggle, children, }: {
3
+ currentTitle: string;
4
+ isNavOpen: boolean;
5
+ onToggleNav: () => void;
6
+ showNavigationToggle?: boolean;
7
+ children?: ReactNode;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=MobileDocsChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileDocsChrome.d.ts","sourceRoot":"","sources":["../../src/components/MobileDocsChrome.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,YAAY,EACZ,SAAS,EACT,WAAW,EACX,oBAA2B,EAC3B,QAAQ,GACT,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,2CA8BA"}
@@ -0,0 +1,6 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ export default function MobileDocsChrome({ currentTitle, isNavOpen, onToggleNav, showNavigationToggle = true, children, }) {
4
+ return (_jsx("div", { className: "emcydocs-mobile", children: _jsxs("div", { className: "emcydocs-mobile-row", children: [_jsx("span", { className: "emcydocs-mobile-title", children: currentTitle }), _jsxs("div", { className: "emcydocs-mobile-actions", children: [children, showNavigationToggle ? (_jsx("button", { type: "button", className: "emcydocs-mobile-toggle", "aria-controls": "emcydocs-mobile-nav", "aria-expanded": isNavOpen, "aria-label": isNavOpen ? "Close menu" : "Open menu", "data-state": isNavOpen ? "open" : "closed", onClick: onToggleNav, children: _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: isNavOpen ? (_jsx("path", { d: "M6 18L18 6M6 6l12 12" })) : (_jsx("path", { d: "M4 6h16M4 12h16M4 18h16" })) }) })) : null] })] }) }));
5
+ }
6
+ //# sourceMappingURL=MobileDocsChrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileDocsChrome.js","sourceRoot":"","sources":["../../src/components/MobileDocsChrome.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,YAAY,EACZ,SAAS,EACT,WAAW,EACX,oBAAoB,GAAG,IAAI,EAC3B,QAAQ,GAOT;IACC,OAAO,CACL,cAAK,SAAS,EAAC,iBAAiB,YAC9B,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAM,SAAS,EAAC,uBAAuB,YAAE,YAAY,GAAQ,EAC7D,eAAK,SAAS,EAAC,yBAAyB,aACrC,QAAQ,EACR,oBAAoB,CAAC,CAAC,CAAC,CACtB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wBAAwB,mBACpB,qBAAqB,mBACpB,SAAS,gBACZ,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,gBACtC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EACzC,OAAO,EAAE,WAAW,YAEpB,cAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,YACvE,SAAS,CAAC,CAAC,CAAC,CACX,eAAM,CAAC,EAAC,sBAAsB,GAAG,CAClC,CAAC,CAAC,CAAC,CACF,eAAM,CAAC,EAAC,yBAAyB,GAAG,CACrC,GACG,GACC,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ReactNode } from "react";
2
+ export declare function StickyAside({ children, top, className, }: {
3
+ children: ReactNode;
4
+ top?: number;
5
+ className?: string;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=StickyAside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StickyAside.d.ts","sourceRoot":"","sources":["../../src/components/StickyAside.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,GAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAMA"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function StickyAside({ children, top = 88, className, }) {
3
+ return (_jsx("div", { className: ["emcydocs-sticky-aside", className ?? ""].filter(Boolean).join(" "), children: _jsx("div", { style: { position: "sticky", top }, children: children }) }));
4
+ }
5
+ //# sourceMappingURL=StickyAside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StickyAside.js","sourceRoot":"","sources":["../../src/components/StickyAside.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,GAAG,GAAG,EAAE,EACR,SAAS,GAKV;IACC,OAAO,CACL,cAAK,SAAS,EAAE,CAAC,uBAAuB,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAClF,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAG,QAAQ,GAAO,GACrD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function buildBlogDirectoryHref(args: {
2
+ baseHref: string;
3
+ query?: string;
4
+ category?: string;
5
+ page?: number;
6
+ }): string;
7
+ export declare function formatBlogDate(value: string, locale?: string): string;
8
+ //# sourceMappingURL=blog-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-utils.d.ts","sourceRoot":"","sources":["../../src/components/blog-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,UAmBA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAW5D"}
@@ -0,0 +1,28 @@
1
+ export function buildBlogDirectoryHref(args) {
2
+ const params = new URLSearchParams();
3
+ const query = args.query?.trim();
4
+ const category = args.category?.trim();
5
+ if (query) {
6
+ params.set("q", query);
7
+ }
8
+ if (category && category !== "all") {
9
+ params.set("category", category);
10
+ }
11
+ if (typeof args.page === "number" && args.page > 1) {
12
+ params.set("page", `${args.page}`);
13
+ }
14
+ const search = params.toString();
15
+ return search ? `${args.baseHref}?${search}` : args.baseHref;
16
+ }
17
+ export function formatBlogDate(value, locale) {
18
+ const date = new Date(value);
19
+ if (Number.isNaN(date.getTime())) {
20
+ return value;
21
+ }
22
+ return new Intl.DateTimeFormat(locale || undefined, {
23
+ year: "numeric",
24
+ month: "long",
25
+ day: "numeric",
26
+ }).format(date);
27
+ }
28
+ //# sourceMappingURL=blog-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-utils.js","sourceRoot":"","sources":["../../src/components/blog-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,IAKtC;IACC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEvC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,MAAe;IAC3D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,SAAS,EAAE;QAClD,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;KACf,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from "react";
2
+ interface AccordionProps {
3
+ children: ReactNode;
4
+ }
5
+ export default function Accordion({ children }: AccordionProps): import("react/jsx-runtime").JSX.Element;
6
+ interface AccordionItemProps {
7
+ title: string;
8
+ children: ReactNode;
9
+ defaultOpen?: boolean;
10
+ }
11
+ export declare function AccordionItem({ title, children, defaultOpen, }: AccordionItemProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=Accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/components/mdx/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,cAAc;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAE7D;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,WAAmB,GACpB,EAAE,kBAAkB,2CAkBpB"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export default function Accordion({ children }) {
3
+ return _jsx("div", { className: "emcydocs-accordion", children: children });
4
+ }
5
+ export function AccordionItem({ title, children, defaultOpen = false, }) {
6
+ return (_jsxs("details", { className: "emcydocs-accordion-item", open: defaultOpen, children: [_jsxs("summary", { className: "emcydocs-accordion-summary", children: [_jsx("span", { children: title }), _jsx("svg", { className: "emcydocs-accordion-chevron", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M6 9l6 6 6-6" }) })] }), _jsx("div", { className: "emcydocs-accordion-panel", children: children })] }));
7
+ }
8
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../../src/components/mdx/Accordion.tsx"],"names":[],"mappings":";AAMA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAkB;IAC5D,OAAO,cAAK,SAAS,EAAC,oBAAoB,YAAE,QAAQ,GAAO,CAAC;AAC9D,CAAC;AAQD,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,WAAW,GAAG,KAAK,GACA;IACnB,OAAO,CACL,mBAAS,SAAS,EAAC,yBAAyB,EAAC,IAAI,EAAE,WAAW,aAC5D,mBAAS,SAAS,EAAC,4BAA4B,aAC7C,yBAAO,KAAK,GAAQ,EACpB,cACE,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,YAEf,eAAM,CAAC,EAAC,cAAc,GAAG,GACrB,IACE,EACV,cAAK,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAO,IAClD,CACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from "react";
2
+ interface BannerProps {
3
+ title: string;
4
+ children?: ReactNode;
5
+ href?: string;
6
+ actionLabel?: string;
7
+ eyebrow?: string;
8
+ icon?: ReactNode;
9
+ }
10
+ export default function Banner({ title, children, href, actionLabel, eyebrow, icon, }: BannerProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=Banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../src/components/mdx/Banner.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,WAA0B,EAC1B,OAAO,EACP,IAAI,GACL,EAAE,WAAW,2CA+Bb"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import Link from "next/link";
3
+ export default function Banner({ title, children, href, actionLabel = "Learn more", eyebrow, icon, }) {
4
+ const content = (_jsxs(_Fragment, { children: [_jsxs("div", { className: "emcydocs-banner-copy", children: [eyebrow ? _jsx("span", { className: "emcydocs-banner-eyebrow", children: eyebrow }) : null, _jsxs("div", { className: "emcydocs-banner-title-row", children: [icon ? _jsx("span", { className: "emcydocs-banner-icon", children: icon }) : null, _jsx("h3", { className: "emcydocs-banner-title", children: title })] }), children ? _jsx("div", { className: "emcydocs-banner-body", children: children }) : null] }), href ? (_jsxs("span", { className: "emcydocs-banner-action", children: [_jsx("span", { children: actionLabel }), _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M5 12h14M13 5l7 7-7 7" }) })] })) : null] }));
5
+ if (href) {
6
+ return (_jsx(Link, { href: href, className: "emcydocs-banner emcydocs-banner-link", children: content }));
7
+ }
8
+ return _jsx("section", { className: "emcydocs-banner", children: content });
9
+ }
10
+ //# sourceMappingURL=Banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../src/components/mdx/Banner.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAY7B,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,YAAY,EAC1B,OAAO,EACP,IAAI,GACQ;IACZ,MAAM,OAAO,GAAG,CACd,8BACE,eAAK,SAAS,EAAC,sBAAsB,aAClC,OAAO,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,yBAAyB,YAAE,OAAO,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC5E,eAAK,SAAS,EAAC,2BAA2B,aACvC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,sBAAsB,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EACnE,aAAI,SAAS,EAAC,uBAAuB,YAAE,KAAK,GAAM,IAC9C,EACL,QAAQ,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,sBAAsB,YAAE,QAAQ,GAAO,CAAC,CAAC,CAAC,IAAI,IACrE,EACL,IAAI,CAAC,CAAC,CAAC,CACN,gBAAM,SAAS,EAAC,wBAAwB,aACtC,yBAAO,WAAW,GAAQ,EAC1B,cAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,YACxE,eAAM,CAAC,EAAC,uBAAuB,GAAG,GAC9B,IACD,CACR,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,sCAAsC,YAC/D,OAAO,GACH,CACR,CAAC;IACJ,CAAC;IAED,OAAO,kBAAS,SAAS,EAAC,iBAAiB,YAAE,OAAO,GAAW,CAAC;AAClE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from "react";
2
+ interface CalloutProps {
3
+ type?: "info" | "warning" | "error" | "tip";
4
+ title?: string;
5
+ children: ReactNode;
6
+ }
7
+ export default function Callout({ type, title, children }: CalloutProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=Callout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Callout.d.ts","sourceRoot":"","sources":["../../../src/components/mdx/Callout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB;AA2BD,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,YAAY,2CAU/E"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const icons = {
3
+ info: (_jsxs("svg", { className: "emcydocs-callout-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M12 16v-4M12 8h.01" })] })),
4
+ warning: (_jsx("svg", { className: "emcydocs-callout-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0zM12 9v4M12 17h.01" }) })),
5
+ error: (_jsxs("svg", { className: "emcydocs-callout-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M15 9l-6 6M9 9l6 6" })] })),
6
+ tip: (_jsx("svg", { className: "emcydocs-callout-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M9 18h6M10 22h4M12 2a7 7 0 017 7c0 2.38-1.19 4.47-3 5.74V17a1 1 0 01-1 1H9a1 1 0 01-1-1v-2.26C6.19 13.47 5 11.38 5 9a7 7 0 017-7z" }) })),
7
+ };
8
+ export default function Callout({ type = "info", title, children }) {
9
+ return (_jsxs("div", { className: `emcydocs-callout emcydocs-callout-${type}`, children: [_jsxs("div", { className: "emcydocs-callout-header", children: [icons[type], title && _jsx("span", { className: "emcydocs-callout-title", children: title })] }), _jsx("div", { className: "emcydocs-callout-content", children: children })] }));
10
+ }
11
+ //# sourceMappingURL=Callout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Callout.js","sourceRoot":"","sources":["../../../src/components/mdx/Callout.tsx"],"names":[],"mappings":";AAQA,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,CACJ,eAAK,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,aAC1G,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,EACjC,eAAM,CAAC,EAAC,oBAAoB,GAAG,IAC3B,CACP;IACD,OAAO,EAAE,CACP,cAAK,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,YAC1G,eAAM,CAAC,EAAC,sGAAsG,GAAG,GAC7G,CACP;IACD,KAAK,EAAE,CACL,eAAK,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,aAC1G,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,EACjC,eAAM,CAAC,EAAC,oBAAoB,GAAG,IAC3B,CACP;IACD,GAAG,EAAE,CACH,cAAK,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,YAC1G,eAAM,CAAC,EAAC,mIAAmI,GAAG,GAC1I,CACP;CACF,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAgB;IAC9E,OAAO,CACL,eAAK,SAAS,EAAE,qCAAqC,IAAI,EAAE,aACzD,eAAK,SAAS,EAAC,yBAAyB,aACrC,KAAK,CAAC,IAAI,CAAC,EACX,KAAK,IAAI,eAAM,SAAS,EAAC,wBAAwB,YAAE,KAAK,GAAQ,IAC7D,EACN,cAAK,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAO,IACtD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from "react";
2
+ interface CardProps {
3
+ title: string;
4
+ description?: string;
5
+ href?: string;
6
+ icon?: ReactNode;
7
+ children?: ReactNode;
8
+ }
9
+ export default function Card({ title, description, href, icon, children }: CardProps): import("react/jsx-runtime").JSX.Element;
10
+ interface CardGridProps {
11
+ children: ReactNode;
12
+ cols?: 1 | 2 | 3;
13
+ }
14
+ export declare function CardGrid({ children, cols }: CardGridProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/mdx/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,2CA0BnF;AAED,UAAU,aAAa;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAClB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAQ,EAAE,EAAE,aAAa,2CAE7D"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import Link from "next/link";
3
+ export default function Card({ title, description, href, icon, children }) {
4
+ const content = (_jsxs(_Fragment, { children: [icon && _jsx("div", { className: "emcydocs-card-icon", children: icon }), _jsxs("div", { className: "emcydocs-card-content", children: [_jsx("h3", { className: "emcydocs-card-title", children: title }), description && _jsx("p", { className: "emcydocs-card-description", children: description }), children] }), href && (_jsx("svg", { className: "emcydocs-card-arrow", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M9 18l6-6-6-6" }) }))] }));
5
+ if (href) {
6
+ return (_jsx(Link, { href: href, className: "emcydocs-card emcydocs-card-link", children: content }));
7
+ }
8
+ return _jsx("div", { className: "emcydocs-card", children: content });
9
+ }
10
+ export function CardGrid({ children, cols = 2 }) {
11
+ return _jsx("div", { className: `emcydocs-card-grid emcydocs-card-grid-${cols}`, children: children });
12
+ }
13
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/components/mdx/Card.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAa;IAClF,MAAM,OAAO,GAAG,CACd,8BACG,IAAI,IAAI,cAAK,SAAS,EAAC,oBAAoB,YAAE,IAAI,GAAO,EACzD,eAAK,SAAS,EAAC,uBAAuB,aACpC,aAAI,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAM,EAC/C,WAAW,IAAI,YAAG,SAAS,EAAC,2BAA2B,YAAE,WAAW,GAAK,EACzE,QAAQ,IACL,EACL,IAAI,IAAI,CACP,cAAK,SAAS,EAAC,qBAAqB,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,YACxG,eAAM,CAAC,EAAC,eAAe,GAAG,GACtB,CACP,IACA,CACJ,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,kCAAkC,YAC3D,OAAO,GACH,CACR,CAAC;IACJ,CAAC;IAED,OAAO,cAAK,SAAS,EAAC,eAAe,YAAE,OAAO,GAAO,CAAC;AACxD,CAAC;AAOD,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,EAAiB;IAC5D,OAAO,cAAK,SAAS,EAAE,yCAAyC,IAAI,EAAE,YAAG,QAAQ,GAAO,CAAC;AAC3F,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ interface CodeBlockProps {
3
+ children: ReactNode;
4
+ title?: string;
5
+ language?: string;
6
+ allowCopy?: boolean;
7
+ }
8
+ export default function CodeBlock({ children, title, language, allowCopy, }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function Pre({ children, className, ...props }: ComponentPropsWithoutRef<"pre">): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=CodeBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../../src/components/mdx/CodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIjE,UAAU,cAAc;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAgB,GACjB,EAAE,cAAc,2CA4BhB;AAED,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,wBAAwB,CAAC,KAAK,CAAC,2CAmBjC"}
@@ -0,0 +1,61 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import CopyCodeButton from "./CopyCodeButton";
3
+ import { LazyMermaid } from "./lazy";
4
+ export default function CodeBlock({ children, title, language, allowCopy = true, }) {
5
+ const codeText = collectText(children).trimEnd();
6
+ const detectedLanguage = language || inferLanguage(children);
7
+ const shouldShowChrome = Boolean(title || detectedLanguage || allowCopy);
8
+ return (_jsxs("div", { className: "emcydocs-codeblock", children: [shouldShowChrome ? (_jsxs("div", { className: "emcydocs-codeblock-header", children: [_jsxs("div", { className: "emcydocs-codeblock-meta", children: [_jsxs("span", { className: "emcydocs-codeblock-dots", "aria-hidden": "true", children: [_jsx("span", {}), _jsx("span", {}), _jsx("span", {})] }), title ? _jsx("span", { className: "emcydocs-codeblock-title", children: title }) : null, !title && detectedLanguage ? (_jsx("span", { className: "emcydocs-codeblock-title", children: detectedLanguage.toUpperCase() })) : null] }), allowCopy && codeText ? _jsx(CopyCodeButton, { value: codeText }) : null] })) : null, _jsx("div", { className: "emcydocs-codeblock-body", children: children })] }));
9
+ }
10
+ export function Pre({ children, className, ...props }) {
11
+ const dataLanguage = props["data-language"];
12
+ const language = inferLanguage(children, {
13
+ className,
14
+ dataLanguage: typeof dataLanguage === "string" ? dataLanguage : undefined,
15
+ });
16
+ const codeText = collectText(children).trimEnd();
17
+ if (language?.toLowerCase() === "mermaid") {
18
+ return _jsx(LazyMermaid, { chart: codeText });
19
+ }
20
+ return (_jsx(CodeBlock, { language: language, children: _jsx("pre", { className: className, ...props, children: children }) }));
21
+ }
22
+ function inferLanguage(children, preProps) {
23
+ if (preProps?.dataLanguage) {
24
+ return preProps.dataLanguage;
25
+ }
26
+ if (typeof preProps?.className === "string") {
27
+ const match = preProps.className.match(/language-([a-z0-9-]+)/i);
28
+ if (match?.[1]) {
29
+ return match[1];
30
+ }
31
+ }
32
+ if (children &&
33
+ typeof children === "object" &&
34
+ "props" in children &&
35
+ typeof children.props?.className === "string") {
36
+ const childProps = children.props;
37
+ if (typeof childProps["data-language"] === "string") {
38
+ return childProps["data-language"];
39
+ }
40
+ const className = childProps.className ?? "";
41
+ const match = className.match(/language-([a-z0-9-]+)/i);
42
+ return match?.[1];
43
+ }
44
+ return undefined;
45
+ }
46
+ function collectText(node) {
47
+ if (node === null || node === undefined || typeof node === "boolean") {
48
+ return "";
49
+ }
50
+ if (typeof node === "string" || typeof node === "number") {
51
+ return `${node}`;
52
+ }
53
+ if (Array.isArray(node)) {
54
+ return node.map(collectText).join("");
55
+ }
56
+ if (typeof node === "object" && "props" in node) {
57
+ return collectText(node.props?.children);
58
+ }
59
+ return "";
60
+ }
61
+ //# sourceMappingURL=CodeBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../../src/components/mdx/CodeBlock.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export default function CopyCodeButton({ value, }: {
2
+ value: string;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=CopyCodeButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyCodeButton.d.ts","sourceRoot":"","sources":["../../../src/components/mdx/CopyCodeButton.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;CACf,2CAuBA"}
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ export default function CopyCodeButton({ value, }) {
5
+ const [copied, setCopied] = useState(false);
6
+ const copy = async () => {
7
+ try {
8
+ await navigator.clipboard.writeText(value);
9
+ setCopied(true);
10
+ window.setTimeout(() => setCopied(false), 1800);
11
+ }
12
+ catch {
13
+ window.prompt("Copy code", value);
14
+ }
15
+ };
16
+ return (_jsx("button", { type: "button", className: "emcydocs-codeblock-copy", onClick: copy, "aria-label": copied ? "Code copied" : "Copy code", children: copied ? "Copied" : "Copy" }));
17
+ }
18
+ //# sourceMappingURL=CopyCodeButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyCodeButton.js","sourceRoot":"","sources":["../../../src/components/mdx/CopyCodeButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,GAGN;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3C,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yBAAyB,EACnC,OAAO,EAAE,IAAI,gBACD,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,YAE/C,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GACpB,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ReactNode } from "react";
2
+ interface FilesProps {
3
+ children: ReactNode;
4
+ title?: string;
5
+ }
6
+ export default function Files({ children, title }: FilesProps): import("react/jsx-runtime").JSX.Element;
7
+ interface FolderProps {
8
+ name: string;
9
+ children: ReactNode;
10
+ defaultOpen?: boolean;
11
+ }
12
+ export declare function Folder({ name, children, defaultOpen }: FolderProps): import("react/jsx-runtime").JSX.Element;
13
+ interface FileProps {
14
+ name: string;
15
+ meta?: string;
16
+ }
17
+ export declare function File({ name, meta }: FileProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=Files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Files.d.ts","sourceRoot":"","sources":["../../../src/components/mdx/Files.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,UAAU;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,UAAU,2CAO5D;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAkB,EAAE,EAAE,WAAW,2CAUzE;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,2CAQ7C"}