ardo 3.1.0 → 3.2.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.
- package/README.md +9 -19
- package/dist/DocPage-BVibJR9O.js +997 -0
- package/dist/DocPage-BVibJR9O.js.map +1 -0
- package/dist/assets/src/ui/Breadcrumb.css.ts.vanilla-Dpgq-C_p.css +20 -0
- package/dist/assets/src/ui/DocPage.css.ts.vanilla-CXKuz4U-.css +34 -0
- package/dist/assets/src/ui/Footer.css.ts.vanilla-BSzPIPt4.css +100 -0
- package/dist/assets/src/ui/Header.css.ts.vanilla-8QL0Jzgk.css +156 -0
- package/dist/assets/src/ui/Layout.css.ts.vanilla-Bpx_-gJt.css +67 -0
- package/dist/assets/src/ui/Nav.css.ts.vanilla-CsAQjogy.css +51 -0
- package/dist/assets/src/ui/Sidebar.css.ts.vanilla-D70qXTEr.css +115 -0
- package/dist/assets/src/ui/TOC.css.ts.vanilla-435FKDcl.css +52 -0
- package/dist/assets/src/ui/components/ApiItem.css.ts.vanilla-B_DW-1iJ.css +218 -0
- package/dist/assets/src/ui/components/CodeBlock.css.ts.vanilla-lNKqskjQ.css +182 -0
- package/dist/assets/src/ui/components/Container.css.ts.vanilla-CUhRUA9t.css +80 -0
- package/dist/assets/src/ui/components/CopyButton.css.ts.vanilla-DZZ5jgTM.css +24 -0
- package/dist/assets/src/ui/components/Features.css.ts.vanilla-D-pNXM9Q.css +129 -0
- package/dist/assets/src/ui/components/Hero.css.ts.vanilla-DHJVZ6GX.css +134 -0
- package/dist/assets/src/ui/components/Search.css.ts.vanilla-BYpWHzky.css +135 -0
- package/dist/assets/src/ui/components/Steps.css.ts.vanilla-CisaxeNj.css +59 -0
- package/dist/assets/src/ui/components/Tabs.css.ts.vanilla-C4-vJSnf.css +30 -0
- package/dist/assets/src/ui/components/ThemeToggle.css.ts.vanilla---sSUELC.css +22 -0
- package/dist/assets/src/ui/content.css.ts.vanilla-O_RaSPXm.css +106 -0
- package/dist/assets/src/ui/theme/animations.css.ts.vanilla-D6ImVUKy.css +10 -0
- package/dist/assets/src/ui/theme/dark.css.ts.vanilla-2iJgcpbU.css +87 -0
- package/dist/assets/src/ui/theme/light.css.ts.vanilla-CwinfWSf.css +87 -0
- package/dist/assets/src/ui/theme/reset.css.ts.vanilla-0Q3pLjfC.css +34 -0
- package/dist/config/index.d.ts +5 -5
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +54 -11
- package/dist/config/index.js.map +1 -1
- package/dist/contract.css-QS0y3-CM.d.ts +105 -0
- package/dist/contract.css-QS0y3-CM.d.ts.map +1 -0
- package/dist/generator-DcUomVnD.js +1193 -0
- package/dist/generator-DcUomVnD.js.map +1 -0
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.js +1 -2
- package/dist/index-DNKCjxv5.d.ts +78 -0
- package/dist/index-DNKCjxv5.d.ts.map +1 -0
- package/dist/index-DSeJoaxz.d.ts +938 -0
- package/dist/index-DSeJoaxz.d.ts.map +1 -0
- package/dist/index.d.ts +5 -8
- package/dist/index.js +6 -100
- package/dist/mdx/provider.d.ts +61 -4
- package/dist/mdx/provider.d.ts.map +1 -0
- package/dist/mdx/provider.js +89 -117
- package/dist/mdx/provider.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -41
- package/dist/runtime/index.js +2 -28
- package/dist/sidebar-utils-1Skqle1Q.js +109 -0
- package/dist/sidebar-utils-1Skqle1Q.js.map +1 -0
- package/dist/theme/index.d.ts +201 -182
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +288 -128
- package/dist/theme/index.js.map +1 -1
- package/dist/typedoc/components/index.d.ts +55 -0
- package/dist/typedoc/components/index.d.ts.map +1 -0
- package/dist/typedoc/components/index.js +328 -0
- package/dist/typedoc/components/index.js.map +1 -0
- package/dist/typedoc/index.d.ts +34 -303
- package/dist/typedoc/index.d.ts.map +1 -0
- package/dist/typedoc/index.js +97 -268
- package/dist/typedoc/index.js.map +1 -1
- package/dist/types-DAZHcySL.d.ts +182 -0
- package/dist/types-DAZHcySL.d.ts.map +1 -0
- package/dist/types-DVodb4lK.d.ts +198 -0
- package/dist/types-DVodb4lK.d.ts.map +1 -0
- package/dist/ui/index.d.ts +2 -178
- package/dist/ui/index.js +3 -95
- package/dist/ui/styles.css +1401 -1335
- package/dist/ui/styles.d.ts +1 -2
- package/dist/ui/styles.js +23 -4
- package/dist/ui-NhRDIFUN.js +1301 -0
- package/dist/ui-NhRDIFUN.js.map +1 -0
- package/dist/vite/index.d.ts +72 -78
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +2918 -1282
- package/dist/vite/index.js.map +1 -1
- package/package.json +25 -17
- package/dist/Features-D_Pt7zpA.d.ts +0 -615
- package/dist/Search-DOJMNI2T.css +0 -193
- package/dist/Search-DOJMNI2T.css.map +0 -1
- package/dist/Search-VYYG3D43.js +0 -10
- package/dist/Search-VYYG3D43.js.map +0 -1
- package/dist/chunk-4YQE3TNM.js +0 -1
- package/dist/chunk-4YQE3TNM.js.map +0 -1
- package/dist/chunk-AXLJDGQL.js +0 -1
- package/dist/chunk-AXLJDGQL.js.map +0 -1
- package/dist/chunk-CZM5NX27.js +0 -909
- package/dist/chunk-CZM5NX27.js.map +0 -1
- package/dist/chunk-FZP2AVJL.js +0 -43
- package/dist/chunk-FZP2AVJL.js.map +0 -1
- package/dist/chunk-IEPSORG5.js +0 -444
- package/dist/chunk-IEPSORG5.js.map +0 -1
- package/dist/chunk-KUWEUO37.js +0 -1
- package/dist/chunk-KUWEUO37.js.map +0 -1
- package/dist/chunk-NBRHGTR2.js +0 -79
- package/dist/chunk-NBRHGTR2.js.map +0 -1
- package/dist/chunk-PGHUPTGL.js +0 -1035
- package/dist/chunk-PGHUPTGL.js.map +0 -1
- package/dist/chunk-PMS3P4MA.js +0 -43
- package/dist/chunk-PMS3P4MA.js.map +0 -1
- package/dist/chunk-QELSOHIY.js +0 -46
- package/dist/chunk-QELSOHIY.js.map +0 -1
- package/dist/chunk-R2QKY6G3.js +0 -1
- package/dist/chunk-R2QKY6G3.js.map +0 -1
- package/dist/chunk-ZPYQQZ7J.js +0 -210
- package/dist/chunk-ZPYQQZ7J.js.map +0 -1
- package/dist/icons/index.js.map +0 -1
- package/dist/index.css +0 -1290
- package/dist/index.css.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mdx/provider.css +0 -403
- package/dist/mdx/provider.css.map +0 -1
- package/dist/runtime/index.js.map +0 -1
- package/dist/types-CLkHwCch.d.ts +0 -248
- package/dist/ui/index.css +0 -1290
- package/dist/ui/index.css.map +0 -1
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/styles.css.map +0 -1
- package/dist/ui/styles.js.map +0 -1
package/dist/chunk-IEPSORG5.js
DELETED
|
@@ -1,444 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Check,
|
|
3
|
-
CircleX,
|
|
4
|
-
Copy,
|
|
5
|
-
FileText,
|
|
6
|
-
Info,
|
|
7
|
-
Lightbulb,
|
|
8
|
-
TriangleAlert
|
|
9
|
-
} from "./chunk-PMS3P4MA.js";
|
|
10
|
-
import {
|
|
11
|
-
getPrevNextLinks
|
|
12
|
-
} from "./chunk-FZP2AVJL.js";
|
|
13
|
-
import {
|
|
14
|
-
usePageData,
|
|
15
|
-
useSidebar,
|
|
16
|
-
useThemeConfig
|
|
17
|
-
} from "./chunk-QELSOHIY.js";
|
|
18
|
-
|
|
19
|
-
// src/ui/BareContent.tsx
|
|
20
|
-
import { createContext, useContext } from "react";
|
|
21
|
-
import { jsx } from "react/jsx-runtime";
|
|
22
|
-
var BareContentContext = createContext(false);
|
|
23
|
-
function BareContent({ children }) {
|
|
24
|
-
return /* @__PURE__ */ jsx(BareContentContext, { value: true, children });
|
|
25
|
-
}
|
|
26
|
-
function useBareContent() {
|
|
27
|
-
return useContext(BareContentContext);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// src/ui/Content.tsx
|
|
31
|
-
import { Link, useLocation } from "react-router";
|
|
32
|
-
|
|
33
|
-
// src/ui/DocPage.css.ts
|
|
34
|
-
var contentBody = "DocPage_contentBody__1f1m4jr5";
|
|
35
|
-
var contentContainer = "DocPage_contentContainer__1f1m4jr1";
|
|
36
|
-
var contentDescription = "DocPage_contentDescription__1f1m4jr4";
|
|
37
|
-
var contentHeader = "DocPage_contentHeader__1f1m4jr2";
|
|
38
|
-
var contentTitle = "DocPage_contentTitle__1f1m4jr3";
|
|
39
|
-
var docPage = "DocPage_docPage__1f1m4jr0";
|
|
40
|
-
|
|
41
|
-
// src/ui/Footer.css.ts
|
|
42
|
-
var contentFooter = "Footer_contentFooter__169q00b7";
|
|
43
|
-
var contentMeta = "Footer_contentMeta__169q00b8";
|
|
44
|
-
var editLink = "Footer_editLink__169q00b9";
|
|
45
|
-
var footer = "Footer_footer__169q00b0";
|
|
46
|
-
var footerBuildTime = "Footer_footerBuildTime__169q00b6";
|
|
47
|
-
var footerCopyright = "Footer_footerCopyright__169q00b5";
|
|
48
|
-
var footerLink = "Footer_footerLink__169q00b3";
|
|
49
|
-
var footerMessage = "Footer_footerMessage__169q00b4";
|
|
50
|
-
var footerPrimary = "Footer_footerPrimary__169q00b1";
|
|
51
|
-
var footerSeparator = "Footer_footerSeparator__169q00b2";
|
|
52
|
-
var nextLink = "Footer_nextLink__169q00bd Footer_prevNextLinkBase__169q00bb";
|
|
53
|
-
var prevLink = "Footer_prevNextLinkBase__169q00bb";
|
|
54
|
-
var prevNext = "Footer_prevNext__169q00ba";
|
|
55
|
-
var prevNextLabel = "Footer_prevNextLabel__169q00be";
|
|
56
|
-
var prevNextTitle = "Footer_prevNextTitle__169q00bf";
|
|
57
|
-
|
|
58
|
-
// src/ui/Content.tsx
|
|
59
|
-
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
60
|
-
function Content({ children }) {
|
|
61
|
-
const isBare = useBareContent();
|
|
62
|
-
const pageData = usePageData();
|
|
63
|
-
const themeConfig = useThemeConfig();
|
|
64
|
-
const sidebar = useSidebar();
|
|
65
|
-
const location = useLocation();
|
|
66
|
-
if (isBare) {
|
|
67
|
-
return /* @__PURE__ */ jsx2("div", { className: `${contentBody} ardo-content`, children });
|
|
68
|
-
}
|
|
69
|
-
const { prev, next } = getPrevNextLinks(sidebar, location.pathname);
|
|
70
|
-
const showEditLink = pageData?.frontmatter.editLink !== false && themeConfig.editLink?.pattern;
|
|
71
|
-
const showLastUpdated = pageData?.frontmatter.lastUpdated !== false && themeConfig.lastUpdated?.enabled && pageData?.lastUpdated;
|
|
72
|
-
const editLink2 = showEditLink ? themeConfig.editLink.pattern.replace(":path", pageData?.relativePath || "") : null;
|
|
73
|
-
const lastUpdatedText = showLastUpdated ? new Date(pageData.lastUpdated).toLocaleDateString(
|
|
74
|
-
void 0,
|
|
75
|
-
themeConfig.lastUpdated?.formatOptions ?? {
|
|
76
|
-
year: "numeric",
|
|
77
|
-
month: "long",
|
|
78
|
-
day: "numeric"
|
|
79
|
-
}
|
|
80
|
-
) : null;
|
|
81
|
-
return /* @__PURE__ */ jsxs("article", { className: contentContainer, children: [
|
|
82
|
-
pageData?.frontmatter.title && /* @__PURE__ */ jsxs("header", { className: contentHeader, children: [
|
|
83
|
-
/* @__PURE__ */ jsx2("h1", { className: contentTitle, children: pageData.frontmatter.title }),
|
|
84
|
-
pageData.frontmatter.description && /* @__PURE__ */ jsx2("p", { className: contentDescription, children: pageData.frontmatter.description })
|
|
85
|
-
] }),
|
|
86
|
-
/* @__PURE__ */ jsx2("div", { className: `${contentBody} ardo-content`, children }),
|
|
87
|
-
/* @__PURE__ */ jsxs("footer", { className: contentFooter, children: [
|
|
88
|
-
(showEditLink || showLastUpdated) && /* @__PURE__ */ jsxs("div", { className: contentMeta, children: [
|
|
89
|
-
showEditLink && /* @__PURE__ */ jsx2(
|
|
90
|
-
"a",
|
|
91
|
-
{
|
|
92
|
-
href: editLink2,
|
|
93
|
-
target: "_blank",
|
|
94
|
-
rel: "noopener noreferrer",
|
|
95
|
-
className: editLink,
|
|
96
|
-
children: themeConfig.editLink?.text ?? "Edit this page"
|
|
97
|
-
}
|
|
98
|
-
),
|
|
99
|
-
showLastUpdated && /* @__PURE__ */ jsxs("span", { children: [
|
|
100
|
-
themeConfig.lastUpdated?.text ?? "Last updated",
|
|
101
|
-
": ",
|
|
102
|
-
lastUpdatedText
|
|
103
|
-
] })
|
|
104
|
-
] }),
|
|
105
|
-
(prev || next) && /* @__PURE__ */ jsxs("nav", { className: prevNext, "aria-label": "Page navigation", children: [
|
|
106
|
-
prev ? /* @__PURE__ */ jsxs(Link, { to: prev.link, className: prevLink, children: [
|
|
107
|
-
/* @__PURE__ */ jsx2("span", { className: prevNextLabel, children: "Previous" }),
|
|
108
|
-
/* @__PURE__ */ jsx2("span", { className: prevNextTitle, children: prev.text })
|
|
109
|
-
] }) : /* @__PURE__ */ jsx2("div", {}),
|
|
110
|
-
next ? /* @__PURE__ */ jsxs(Link, { to: next.link, className: nextLink, children: [
|
|
111
|
-
/* @__PURE__ */ jsx2("span", { className: prevNextLabel, children: "Next" }),
|
|
112
|
-
/* @__PURE__ */ jsx2("span", { className: prevNextTitle, children: next.text })
|
|
113
|
-
] }) : /* @__PURE__ */ jsx2("div", {})
|
|
114
|
-
] })
|
|
115
|
-
] })
|
|
116
|
-
] });
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// src/ui/components/Icon.tsx
|
|
120
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
121
|
-
var iconRegistry = /* @__PURE__ */ new Map();
|
|
122
|
-
function registerIcons(icons2) {
|
|
123
|
-
for (const [name, icon] of Object.entries(icons2)) {
|
|
124
|
-
iconRegistry.set(name, icon);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
function getRegisteredIconNames() {
|
|
128
|
-
return Array.from(iconRegistry.keys());
|
|
129
|
-
}
|
|
130
|
-
function Icon({ name, ...props }) {
|
|
131
|
-
const IconComp = iconRegistry.get(name);
|
|
132
|
-
if (!IconComp) {
|
|
133
|
-
console.warn(`[Ardo] Icon "${name}" not found. Did you register it with registerIcons()?`);
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
return /* @__PURE__ */ jsx3(IconComp, { ...props });
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// src/ui/components/CopyButton.tsx
|
|
140
|
-
import { useState } from "react";
|
|
141
|
-
|
|
142
|
-
// src/ui/components/CopyButton.css.ts
|
|
143
|
-
var copyButton = "CopyButton_copyButton__1flm2ul0";
|
|
144
|
-
|
|
145
|
-
// src/ui/components/CopyButton.tsx
|
|
146
|
-
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
147
|
-
function CopyButton({ code }) {
|
|
148
|
-
const [copied, setCopied] = useState(false);
|
|
149
|
-
const handleCopy = async () => {
|
|
150
|
-
try {
|
|
151
|
-
await navigator.clipboard.writeText(code);
|
|
152
|
-
setCopied(true);
|
|
153
|
-
setTimeout(() => setCopied(false), 2e3);
|
|
154
|
-
} catch (err) {
|
|
155
|
-
console.error("Failed to copy:", err);
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
return /* @__PURE__ */ jsxs2(
|
|
159
|
-
"button",
|
|
160
|
-
{
|
|
161
|
-
className: copyButton,
|
|
162
|
-
onClick: handleCopy,
|
|
163
|
-
"aria-label": copied ? "Copied!" : "Copy code",
|
|
164
|
-
children: [
|
|
165
|
-
copied ? /* @__PURE__ */ jsx4(Check, { size: 16 }) : /* @__PURE__ */ jsx4(Copy, { size: 16 }),
|
|
166
|
-
/* @__PURE__ */ jsx4("span", { className: "ardo-copy-text", children: copied ? "Copied!" : "Copy" })
|
|
167
|
-
]
|
|
168
|
-
}
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// src/ui/components/CodeBlock.tsx
|
|
173
|
-
import { useState as useState2, Children, isValidElement } from "react";
|
|
174
|
-
|
|
175
|
-
// src/ui/components/CodeBlock.css.ts
|
|
176
|
-
var codeBlock = "CodeBlock_codeBlock__1l68ra30";
|
|
177
|
-
var codeGroup = "CodeBlock_codeGroup__1l68ra35";
|
|
178
|
-
var codeGroupTab = "CodeBlock_codeGroupTab__1l68ra37";
|
|
179
|
-
var codeGroupTabs = "CodeBlock_codeGroupTabs__1l68ra36";
|
|
180
|
-
var codeLine = "CodeBlock_codeLine__1l68ra33";
|
|
181
|
-
var codeTitle = "CodeBlock_codeTitle__1l68ra31";
|
|
182
|
-
var codeWrapper = "CodeBlock_codeWrapper__1l68ra32";
|
|
183
|
-
var lineNumber = "CodeBlock_lineNumber__1l68ra34";
|
|
184
|
-
|
|
185
|
-
// src/ui/components/CodeBlock.tsx
|
|
186
|
-
import { Fragment, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
187
|
-
function outdent(text) {
|
|
188
|
-
const trimmed = text.replace(/^\n+/, "").replace(/\n\s*$/, "");
|
|
189
|
-
const lines = trimmed.split("\n");
|
|
190
|
-
const indent = lines.reduce((min, line) => {
|
|
191
|
-
if (line.trim().length === 0) return min;
|
|
192
|
-
const match = line.match(/^(\s*)/);
|
|
193
|
-
return match ? Math.min(min, match[1].length) : min;
|
|
194
|
-
}, Infinity);
|
|
195
|
-
if (indent === 0 || indent === Infinity) return trimmed;
|
|
196
|
-
return lines.map((line) => line.slice(indent)).join("\n");
|
|
197
|
-
}
|
|
198
|
-
function CodeBlock({
|
|
199
|
-
code: codeProp,
|
|
200
|
-
language = "text",
|
|
201
|
-
title,
|
|
202
|
-
lineNumbers = false,
|
|
203
|
-
highlightLines = [],
|
|
204
|
-
children,
|
|
205
|
-
__html
|
|
206
|
-
}) {
|
|
207
|
-
const code = codeProp ?? (typeof children === "string" ? outdent(children) : "");
|
|
208
|
-
const hasCustomChildren = children != null && typeof children !== "string";
|
|
209
|
-
const lines = code.split("\n");
|
|
210
|
-
let content;
|
|
211
|
-
if (__html) {
|
|
212
|
-
content = /* @__PURE__ */ jsx5("div", { dangerouslySetInnerHTML: { __html } });
|
|
213
|
-
} else if (hasCustomChildren) {
|
|
214
|
-
content = /* @__PURE__ */ jsx5(Fragment, { children });
|
|
215
|
-
} else {
|
|
216
|
-
content = /* @__PURE__ */ jsx5("pre", { className: `language-${language}`, children: /* @__PURE__ */ jsx5("code", { children: lines.map((line, index) => {
|
|
217
|
-
const lineNum = index + 1;
|
|
218
|
-
const isHighlighted = highlightLines.includes(lineNum);
|
|
219
|
-
const classes = [codeLine];
|
|
220
|
-
if (isHighlighted) classes.push("highlighted");
|
|
221
|
-
return /* @__PURE__ */ jsxs3("span", { className: classes.join(" "), children: [
|
|
222
|
-
lineNumbers && /* @__PURE__ */ jsx5("span", { className: lineNumber, children: lineNum }),
|
|
223
|
-
/* @__PURE__ */ jsx5("span", { children: line }),
|
|
224
|
-
index < lines.length - 1 && "\n"
|
|
225
|
-
] }, index);
|
|
226
|
-
}) }) });
|
|
227
|
-
}
|
|
228
|
-
return /* @__PURE__ */ jsxs3("div", { className: codeBlock, "data-lang": language, children: [
|
|
229
|
-
title && /* @__PURE__ */ jsx5("div", { className: codeTitle, children: title }),
|
|
230
|
-
/* @__PURE__ */ jsxs3("div", { className: codeWrapper, children: [
|
|
231
|
-
content,
|
|
232
|
-
/* @__PURE__ */ jsx5(CopyButton, { code })
|
|
233
|
-
] })
|
|
234
|
-
] });
|
|
235
|
-
}
|
|
236
|
-
function CodeGroup({ children, labels: labelsStr }) {
|
|
237
|
-
const [activeTab, setActiveTab] = useState2(0);
|
|
238
|
-
const childArray = Children.toArray(children).filter(isValidElement);
|
|
239
|
-
const labelArray = labelsStr ? labelsStr.split(",") : [];
|
|
240
|
-
const tabs2 = childArray.map((child, index) => {
|
|
241
|
-
if (labelArray[index]) return labelArray[index];
|
|
242
|
-
const props = child.props;
|
|
243
|
-
return props["data-label"] || props.title || props.language || `Tab ${index + 1}`;
|
|
244
|
-
});
|
|
245
|
-
return /* @__PURE__ */ jsxs3("div", { className: codeGroup, children: [
|
|
246
|
-
/* @__PURE__ */ jsx5("div", { className: codeGroupTabs, children: tabs2.map((tab2, index) => /* @__PURE__ */ jsx5(
|
|
247
|
-
"button",
|
|
248
|
-
{
|
|
249
|
-
className: [codeGroupTab, index === activeTab && "active"].filter(Boolean).join(" "),
|
|
250
|
-
onClick: () => setActiveTab(index),
|
|
251
|
-
children: tab2
|
|
252
|
-
},
|
|
253
|
-
index
|
|
254
|
-
)) }),
|
|
255
|
-
/* @__PURE__ */ jsx5("div", { className: "ardo-code-group-panels", children: childArray.map((child, index) => /* @__PURE__ */ jsx5(
|
|
256
|
-
"div",
|
|
257
|
-
{
|
|
258
|
-
className: ["ardo-code-group-panel", index === activeTab && "active"].filter(Boolean).join(" "),
|
|
259
|
-
style: { display: index === activeTab ? "block" : "none" },
|
|
260
|
-
children: child
|
|
261
|
-
},
|
|
262
|
-
index
|
|
263
|
-
)) })
|
|
264
|
-
] });
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
// src/ui/components/Container.css.ts
|
|
268
|
-
import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
269
|
-
var container = _7a468({ defaultClassName: "Container_container__1l7ew7r0", variantClassNames: { type: { tip: "Container_container_type_tip__1l7ew7r1", warning: "Container_container_type_warning__1l7ew7r2", danger: "Container_container_type_danger__1l7ew7r3", info: "Container_container_type_info__1l7ew7r4", note: "Container_container_type_note__1l7ew7r5" } }, defaultVariants: {}, compoundVariants: [] });
|
|
270
|
-
var containerContent = "Container_containerContent__1l7ew7rc";
|
|
271
|
-
var containerTitle = _7a468({ defaultClassName: "Container_containerTitle__1l7ew7r6", variantClassNames: { type: { tip: "Container_containerTitle_type_tip__1l7ew7r7", warning: "Container_containerTitle_type_warning__1l7ew7r8", danger: "Container_containerTitle_type_danger__1l7ew7r9", info: "Container_containerTitle_type_info__1l7ew7ra", note: "Container_containerTitle_type_note__1l7ew7rb" } }, defaultVariants: {}, compoundVariants: [] });
|
|
272
|
-
|
|
273
|
-
// src/ui/components/Container.tsx
|
|
274
|
-
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
275
|
-
var defaultTitles = {
|
|
276
|
-
tip: "TIP",
|
|
277
|
-
warning: "WARNING",
|
|
278
|
-
danger: "DANGER",
|
|
279
|
-
info: "INFO",
|
|
280
|
-
note: "NOTE"
|
|
281
|
-
};
|
|
282
|
-
var icons = {
|
|
283
|
-
tip: /* @__PURE__ */ jsx6(Lightbulb, { size: 18 }),
|
|
284
|
-
warning: /* @__PURE__ */ jsx6(TriangleAlert, { size: 18 }),
|
|
285
|
-
danger: /* @__PURE__ */ jsx6(CircleX, { size: 18 }),
|
|
286
|
-
info: /* @__PURE__ */ jsx6(Info, { size: 18 }),
|
|
287
|
-
note: /* @__PURE__ */ jsx6(FileText, { size: 18 })
|
|
288
|
-
};
|
|
289
|
-
function Container({ type, title, children }) {
|
|
290
|
-
const displayTitle = title || defaultTitles[type];
|
|
291
|
-
return /* @__PURE__ */ jsxs4("div", { className: container({ type }), children: [
|
|
292
|
-
/* @__PURE__ */ jsxs4("p", { className: containerTitle({ type }), children: [
|
|
293
|
-
/* @__PURE__ */ jsx6("span", { children: icons[type] }),
|
|
294
|
-
displayTitle
|
|
295
|
-
] }),
|
|
296
|
-
/* @__PURE__ */ jsx6("div", { className: containerContent, children })
|
|
297
|
-
] });
|
|
298
|
-
}
|
|
299
|
-
function Tip({ title, children }) {
|
|
300
|
-
return /* @__PURE__ */ jsx6(Container, { type: "tip", title, children });
|
|
301
|
-
}
|
|
302
|
-
function Warning({ title, children }) {
|
|
303
|
-
return /* @__PURE__ */ jsx6(Container, { type: "warning", title, children });
|
|
304
|
-
}
|
|
305
|
-
function Danger({ title, children }) {
|
|
306
|
-
return /* @__PURE__ */ jsx6(Container, { type: "danger", title, children });
|
|
307
|
-
}
|
|
308
|
-
function Info2({ title, children }) {
|
|
309
|
-
return /* @__PURE__ */ jsx6(Container, { type: "info", title, children });
|
|
310
|
-
}
|
|
311
|
-
function Note({ title, children }) {
|
|
312
|
-
return /* @__PURE__ */ jsx6(Container, { type: "note", title, children });
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// src/ui/components/Tabs.tsx
|
|
316
|
-
import {
|
|
317
|
-
Children as Children2,
|
|
318
|
-
isValidElement as isValidElement2,
|
|
319
|
-
useEffect,
|
|
320
|
-
useRef,
|
|
321
|
-
useState as useState3,
|
|
322
|
-
createContext as createContext2,
|
|
323
|
-
useContext as useContext2
|
|
324
|
-
} from "react";
|
|
325
|
-
|
|
326
|
-
// src/ui/components/Tabs.css.ts
|
|
327
|
-
var tab = "Tabs_tab__1jypr342";
|
|
328
|
-
var tabList = "Tabs_tabList__1jypr341";
|
|
329
|
-
var tabPanel = "Tabs_tabPanel__1jypr343";
|
|
330
|
-
var tabs = "Tabs_tabs__1jypr340";
|
|
331
|
-
|
|
332
|
-
// src/ui/components/Tabs.tsx
|
|
333
|
-
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
334
|
-
var TabsContext = createContext2(null);
|
|
335
|
-
var AUTO_TAB_PREFIX = "__ardo-tab-";
|
|
336
|
-
function useTabsContext() {
|
|
337
|
-
const context = useContext2(TabsContext);
|
|
338
|
-
if (!context) {
|
|
339
|
-
throw new Error("Tab components must be used within a Tabs component");
|
|
340
|
-
}
|
|
341
|
-
return context;
|
|
342
|
-
}
|
|
343
|
-
function Tabs({ defaultValue, children }) {
|
|
344
|
-
const [activeTab, setActiveTab] = useState3(() => defaultValue ?? findFirstTabValue(children));
|
|
345
|
-
const tabIndexRef = useRef(0);
|
|
346
|
-
const panelIndexRef = useRef(0);
|
|
347
|
-
tabIndexRef.current = 0;
|
|
348
|
-
panelIndexRef.current = 0;
|
|
349
|
-
const getTabValue = (value) => {
|
|
350
|
-
const index = tabIndexRef.current++;
|
|
351
|
-
return value ?? `${AUTO_TAB_PREFIX}${index}`;
|
|
352
|
-
};
|
|
353
|
-
const getPanelValue = (value) => {
|
|
354
|
-
const index = panelIndexRef.current++;
|
|
355
|
-
return value ?? `${AUTO_TAB_PREFIX}${index}`;
|
|
356
|
-
};
|
|
357
|
-
useEffect(() => {
|
|
358
|
-
if (defaultValue !== void 0) {
|
|
359
|
-
setActiveTab(defaultValue);
|
|
360
|
-
}
|
|
361
|
-
}, [defaultValue]);
|
|
362
|
-
return /* @__PURE__ */ jsx7(TabsContext.Provider, { value: { activeTab, setActiveTab, getTabValue, getPanelValue }, children: /* @__PURE__ */ jsx7("div", { className: tabs, children }) });
|
|
363
|
-
}
|
|
364
|
-
function TabList({ children }) {
|
|
365
|
-
return /* @__PURE__ */ jsx7("div", { className: tabList, role: "tablist", children });
|
|
366
|
-
}
|
|
367
|
-
function Tab({ value, children }) {
|
|
368
|
-
const { activeTab, setActiveTab, getTabValue } = useTabsContext();
|
|
369
|
-
const resolvedValue = getTabValue(value);
|
|
370
|
-
const isActive = activeTab === resolvedValue;
|
|
371
|
-
return /* @__PURE__ */ jsx7(
|
|
372
|
-
"button",
|
|
373
|
-
{
|
|
374
|
-
type: "button",
|
|
375
|
-
role: "tab",
|
|
376
|
-
"aria-selected": isActive,
|
|
377
|
-
className: [tab, isActive && "active"].filter(Boolean).join(" "),
|
|
378
|
-
onClick: () => setActiveTab(resolvedValue),
|
|
379
|
-
children
|
|
380
|
-
}
|
|
381
|
-
);
|
|
382
|
-
}
|
|
383
|
-
function TabPanel({ value, children }) {
|
|
384
|
-
const { activeTab, getPanelValue } = useTabsContext();
|
|
385
|
-
const resolvedValue = getPanelValue(value);
|
|
386
|
-
const isActive = activeTab === resolvedValue;
|
|
387
|
-
if (!isActive) {
|
|
388
|
-
return null;
|
|
389
|
-
}
|
|
390
|
-
return /* @__PURE__ */ jsx7("div", { role: "tabpanel", className: tabPanel, children });
|
|
391
|
-
}
|
|
392
|
-
function TabPanels({ children }) {
|
|
393
|
-
return /* @__PURE__ */ jsx7("div", { className: "ardo-tab-panels", children });
|
|
394
|
-
}
|
|
395
|
-
function findFirstTabValue(children) {
|
|
396
|
-
for (const child of Children2.toArray(children)) {
|
|
397
|
-
if (!isValidElement2(child)) {
|
|
398
|
-
continue;
|
|
399
|
-
}
|
|
400
|
-
if (child.type === Tab) {
|
|
401
|
-
const tabValue = child.props.value;
|
|
402
|
-
return tabValue ?? `${AUTO_TAB_PREFIX}0`;
|
|
403
|
-
}
|
|
404
|
-
const nestedChildren = child.props.children;
|
|
405
|
-
if (nestedChildren) {
|
|
406
|
-
const nestedValue = findFirstTabValue(nestedChildren);
|
|
407
|
-
if (nestedValue) {
|
|
408
|
-
return nestedValue;
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
return "";
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
export {
|
|
416
|
-
footer,
|
|
417
|
-
footerBuildTime,
|
|
418
|
-
footerCopyright,
|
|
419
|
-
footerLink,
|
|
420
|
-
footerMessage,
|
|
421
|
-
footerPrimary,
|
|
422
|
-
footerSeparator,
|
|
423
|
-
BareContent,
|
|
424
|
-
docPage,
|
|
425
|
-
Content,
|
|
426
|
-
registerIcons,
|
|
427
|
-
getRegisteredIconNames,
|
|
428
|
-
Icon,
|
|
429
|
-
CopyButton,
|
|
430
|
-
CodeBlock,
|
|
431
|
-
CodeGroup,
|
|
432
|
-
Container,
|
|
433
|
-
Tip,
|
|
434
|
-
Warning,
|
|
435
|
-
Danger,
|
|
436
|
-
Info2 as Info,
|
|
437
|
-
Note,
|
|
438
|
-
Tabs,
|
|
439
|
-
TabList,
|
|
440
|
-
Tab,
|
|
441
|
-
TabPanel,
|
|
442
|
-
TabPanels
|
|
443
|
-
};
|
|
444
|
-
//# sourceMappingURL=chunk-IEPSORG5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/BareContent.tsx","../src/ui/Content.tsx","../src/ui/DocPage.css.ts","../src/ui/Footer.css.ts","../src/ui/components/Icon.tsx","../src/ui/components/CopyButton.tsx","../src/ui/components/CopyButton.css.ts","../src/ui/components/CodeBlock.tsx","../src/ui/components/CodeBlock.css.ts","../src/ui/components/Container.css.ts","../src/ui/components/Container.tsx","../src/ui/components/Tabs.tsx","../src/ui/components/Tabs.css.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode } from \"react\"\n\nconst BareContentContext = createContext(false)\n\n/**\n * Wraps imported MDX content to render without the full Content wrapper\n * (article, header, footer, navigation). Only the content body is rendered.\n *\n * ```tsx\n * import MySnippet from \"./snippet.mdx\"\n *\n * <BareContent>\n * <MySnippet />\n * </BareContent>\n * ```\n */\nexport function BareContent({ children }: { children: ReactNode }) {\n return <BareContentContext value={true}>{children}</BareContentContext>\n}\n\nexport function useBareContent(): boolean {\n return useContext(BareContentContext)\n}\n","import { type ReactNode } from \"react\"\nimport { usePageData, useThemeConfig, useSidebar } from \"../runtime/hooks\"\nimport { getPrevNextLinks } from \"../runtime/sidebar-utils\"\nimport { Link, useLocation } from \"react-router\"\nimport { useBareContent } from \"./BareContent\"\nimport * as docStyles from \"./DocPage.css\"\nimport * as footerStyles from \"./Footer.css\"\n\ninterface ContentProps {\n children: ReactNode\n}\n\nexport function Content({ children }: ContentProps) {\n const isBare = useBareContent()\n const pageData = usePageData()\n const themeConfig = useThemeConfig()\n const sidebar = useSidebar()\n const location = useLocation()\n\n if (isBare) {\n return <div className={`${docStyles.contentBody} ardo-content`}>{children}</div>\n }\n\n const { prev, next } = getPrevNextLinks(sidebar, location.pathname)\n\n const showEditLink = pageData?.frontmatter.editLink !== false && themeConfig.editLink?.pattern\n\n const showLastUpdated =\n pageData?.frontmatter.lastUpdated !== false &&\n themeConfig.lastUpdated?.enabled &&\n pageData?.lastUpdated\n\n const editLink = showEditLink\n ? themeConfig.editLink!.pattern.replace(\":path\", pageData?.relativePath || \"\")\n : null\n\n const lastUpdatedText = showLastUpdated\n ? new Date(pageData!.lastUpdated!).toLocaleDateString(\n undefined,\n themeConfig.lastUpdated?.formatOptions ?? {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n }\n )\n : null\n\n return (\n <article className={docStyles.contentContainer}>\n {pageData?.frontmatter.title && (\n <header className={docStyles.contentHeader}>\n <h1 className={docStyles.contentTitle}>{pageData.frontmatter.title}</h1>\n {pageData.frontmatter.description && (\n <p className={docStyles.contentDescription}>{pageData.frontmatter.description}</p>\n )}\n </header>\n )}\n\n <div className={`${docStyles.contentBody} ardo-content`}>{children}</div>\n\n <footer className={footerStyles.contentFooter}>\n {(showEditLink || showLastUpdated) && (\n <div className={footerStyles.contentMeta}>\n {showEditLink && (\n <a\n href={editLink!}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={footerStyles.editLink}\n >\n {themeConfig.editLink?.text ?? \"Edit this page\"}\n </a>\n )}\n {showLastUpdated && (\n <span>\n {themeConfig.lastUpdated?.text ?? \"Last updated\"}: {lastUpdatedText}\n </span>\n )}\n </div>\n )}\n\n {(prev || next) && (\n <nav className={footerStyles.prevNext} aria-label=\"Page navigation\">\n {prev ? (\n <Link to={prev.link!} className={footerStyles.prevLink}>\n <span className={footerStyles.prevNextLabel}>Previous</span>\n <span className={footerStyles.prevNextTitle}>{prev.text}</span>\n </Link>\n ) : (\n <div />\n )}\n {next ? (\n <Link to={next.link!} className={footerStyles.nextLink}>\n <span className={footerStyles.prevNextLabel}>Next</span>\n <span className={footerStyles.prevNextTitle}>{next.text}</span>\n </Link>\n ) : (\n <div />\n )}\n </nav>\n )}\n </footer>\n </article>\n )\n}\n","import 'src/ui/DocPage.css.ts.vanilla.css?source=#H4sIAAAAAAAAA4WTP0_DMBDF93yKG1shR3YoUKULAgYGkBiQGJEbX1sjx46cA1JQvzuy04bQBJgivdyf37u8pDeueJBrfFb757NYiXL24jl8JgBK15WR2xxWBptFAlDKhr1rRZscCmmKyZv0E8akV44ZuXWvxApnCS3dy-Yp1E3hBIZF5Ir27bQd6tfa5sBBvpILSiWV0nbNDK4oH-mvtcKl9O2MRbJL0oOP_fprZ0lqi74zJKKh4CMHcWTlfxc9qMCZzaqmz-n1ekO_nqRzCyexc5T4FqXq4WYRt70MWzoiV-Yw4z_XHvQDztJ5hb6TRdVA7YxWfYOFMy6UhMpRkEdN5jsHp-3ZnA1H_8AcTs_bXVF6x9b4BedBM9oi2-w1kWZRQyL0rK5kEY_HeMozLBdDdyILk4dAN1gXXlekne2wZsdYYt5iRXv50DBhQ3cBbDoCej629sqpbbfvLO47ars4C32XJSotYdLLk-DxM8ee9O8_7Djr8Y67X8Zmcz4Y-0_gBxk9ZGWX7L4A44Kfbv0DAAA';\nexport var contentBody = 'DocPage_contentBody__1f1m4jr5';\nexport var contentContainer = 'DocPage_contentContainer__1f1m4jr1';\nexport var contentDescription = 'DocPage_contentDescription__1f1m4jr4';\nexport var contentHeader = 'DocPage_contentHeader__1f1m4jr2';\nexport var contentTitle = 'DocPage_contentTitle__1f1m4jr3';\nexport var docPage = 'DocPage_docPage__1f1m4jr0';","import 'src/ui/Footer.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61WTW_bOBC9-1fMJYAFlF7KsfPBXBZdoKdmUSC99FRQ4ljmmiK5FB3bXeS_L0jJsmQpgdsGRvxBijNv5r15zOyTMR7d91X98T29uf-X0ozCfxMAy4WQumBwPbd7mC_s_mEC4HHvCVey0Axy1B5dWM3MnlRrLsyOAQWS2j1c2z2YjcrXUwrh9QfQGb1O4tM83xTObLVgoKRG7kjhuJCo_TS9owKLD_DM3ZQQ7oQhuVHGkaxIgF59OMac3d-GgCmktzSBlNKr5GHyMpkJ7jYwe6uuC7Gm7wc1vYtQl-dYeyi_OFlyd2jBphGskJVV_MBgpTD2P7aeSI9l1SXgn23l5epAcqM9at_dKrhlQMO3EIPsXPgd3uOS0Z5U8gcySBuGYw1sWFVg_rMs1j42puSukJpkxntTMrgJZ89LekLLHffmxMC8X5TUoackUybfhKA7KfyaQQNkjSFb-zMzTqAjofvbisGSXp0T9DpkdB3QgfZ0Xgd9RudlztVR0qUUQuGwlM9Sb9oqrmMVr_Upc1yLpJ0Vgblx3EujGWijMW44ritZrxnLc-kP3TinbbLilR8RSx8OW5tndBFUE40Bnd0Njz1iVfEC25OLeOZXNBAbeh7-L2MPLuy2CZbvm-DjVirxVZanCm4GCeY_k6DVsTd2IOJmlj71TeQ2Zuwdo3XKxjDrxXlftXEtWE1llBQjoomPJSPpH9HzNvnduCkMpr-yPEeSod8h6jds42yKj6DfgTAU0vdUev-7QxNB7RpPWFL6m4M0BHjBGFmHz3_j_iRw3iekcFJEz3VSEI-lVdxjKHFb6opBunLhr3Xl9Exxx_AB10denWSejfMeDV1Ih3ndgjrRQ_fyDilgTrtivEyIA8PtPFovkYxX-DZn3bt2kKreeCqTcya5Uq-w2GS8pGMdNptCGu0db-VFuJXrSzle-IvBhT-u0qdt5hUmF5b3KHp4dYO1xSkiwu5_VdFBR2vkGar2IL7mfGNzcqkbRhyx3yvjSgZba9HlvIpkKvQeHQneEqVFZ3SJ5YiNLMZV_VV6dSJodcJ_BHvzNtijR7xM_ixRSA7TSDGD-JHEeD-li0Z1danxaxjXb1Myt_vYjpfJy_8ztN0aIwsAAA';\nexport var contentFooter = 'Footer_contentFooter__169q00b7';\nexport var contentMeta = 'Footer_contentMeta__169q00b8';\nexport var editLink = 'Footer_editLink__169q00b9';\nexport var footer = 'Footer_footer__169q00b0';\nexport var footerBuildTime = 'Footer_footerBuildTime__169q00b6';\nexport var footerCopyright = 'Footer_footerCopyright__169q00b5';\nexport var footerLink = 'Footer_footerLink__169q00b3';\nexport var footerMessage = 'Footer_footerMessage__169q00b4';\nexport var footerPrimary = 'Footer_footerPrimary__169q00b1';\nexport var footerSeparator = 'Footer_footerSeparator__169q00b2';\nexport var nextLink = 'Footer_nextLink__169q00bd Footer_prevNextLinkBase__169q00bb';\nexport var prevLink = 'Footer_prevNextLinkBase__169q00bb';\nexport var prevNext = 'Footer_prevNext__169q00ba';\nexport var prevNextLabel = 'Footer_prevNextLabel__169q00be';\nexport var prevNextTitle = 'Footer_prevNextTitle__169q00bf';","import type { ComponentType, SVGAttributes, ReactNode } from \"react\"\n\ntype IconComponent = ComponentType<SVGAttributes<SVGSVGElement> & { size?: number }>\n\nexport interface IconProps extends SVGAttributes<SVGSVGElement> {\n /** Name of the registered icon */\n name: string\n /** Icon size */\n size?: number\n}\n\n// Icon registry - users register only the icons they need\nconst iconRegistry = new Map<string, IconComponent>()\n\n/**\n * Register icons for use with the Icon component.\n * Only registered icons are included in your bundle.\n *\n * @example\n * ```tsx\n * // In your app's entry point or layout:\n * import { registerIcons } from \"ardo/ui\"\n * import { Zap, Rocket, Code } from \"lucide-react\"\n *\n * registerIcons({ Zap, Rocket, Code })\n * ```\n */\nexport function registerIcons(icons: Record<string, IconComponent>): void {\n for (const [name, icon] of Object.entries(icons)) {\n iconRegistry.set(name, icon)\n }\n}\n\n/**\n * Get all registered icon names (useful for documentation).\n */\nexport function getRegisteredIconNames(): string[] {\n return Array.from(iconRegistry.keys())\n}\n\n/**\n * Renders a registered icon by name.\n * Icons must be registered first using `registerIcons()`.\n *\n * @example\n * ```tsx\n * // First register icons in your app:\n * import { registerIcons } from \"ardo/ui\"\n * import { Zap, Rocket } from \"lucide-react\"\n * registerIcons({ Zap, Rocket })\n *\n * // Then use in MDX:\n * <Icon name=\"Zap\" size={24} />\n * <Icon name=\"Rocket\" className=\"text-brand\" />\n * ```\n *\n * @see https://lucide.dev/icons for available icon names\n */\nexport function Icon({ name, ...props }: IconProps): ReactNode {\n const IconComp = iconRegistry.get(name)\n\n if (!IconComp) {\n console.warn(`[Ardo] Icon \"${name}\" not found. Did you register it with registerIcons()?`)\n return null\n }\n\n return <IconComp {...props} />\n}\n","import { useState } from \"react\"\nimport { CopyIcon, CheckIcon } from \"../icons\"\nimport * as styles from \"./CopyButton.css\"\n\ninterface CopyButtonProps {\n code: string\n}\n\nexport function CopyButton({ code }: CopyButtonProps) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(code)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n } catch (err) {\n console.error(\"Failed to copy:\", err)\n }\n }\n\n return (\n <button\n className={styles.copyButton}\n onClick={handleCopy}\n aria-label={copied ? \"Copied!\" : \"Copy code\"}\n >\n {copied ? <CheckIcon size={16} /> : <CopyIcon size={16} />}\n <span className=\"ardo-copy-text\">{copied ? \"Copied!\" : \"Copy\"}</span>\n </button>\n )\n}\n","import 'src/ui/components/CopyButton.css.ts.vanilla.css?source=LkNvcHlCdXR0b25fY29weUJ1dHRvbl9fMWZsbTJ1bDAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDEwcHg7CiAgcmlnaHQ6IDEwcHg7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogNnB4OwogIHBhZGRpbmc6IDZweCAxMHB4OwogIGJhY2tncm91bmQ6IHZhcigtLWFyZG8tY29sb3ItYmcpOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFyZG8tY29sb3ItYm9yZGVyKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1hcmRvLXJhZGl1cy1zbSk7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtc2l6ZTogMTJweDsKICBmb250LWZhbWlseTogdmFyKC0tYXJkby1mb250LWZhbWlseSk7CiAgY29sb3I6IHZhcigtLWFyZG8tY29sb3ItdGV4dExpZ2h0KTsKICBvcGFjaXR5OiAwLjY7CiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWFyZG8tdHJhbnNpdGlvbi1iYXNlKTsKfQouQ29weUJ1dHRvbl9jb3B5QnV0dG9uX18xZmxtMnVsMDpob3ZlciB7CiAgb3BhY2l0eTogMTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1hcmRvLWNvbG9yLWJnU29mdCk7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hcmRvLWNvbG9yLWJyYW5kKTsKICBjb2xvcjogdmFyKC0tYXJkby1jb2xvci1icmFuZCk7Cn0';\nexport var copyButton = 'CopyButton_copyButton__1flm2ul0';","import { useState, Children, isValidElement } from \"react\"\nimport { CopyButton } from \"./CopyButton\"\nimport * as styles from \"./CodeBlock.css\"\n\n/**\n * Strips leading/trailing blank lines and removes common leading whitespace\n * so that template literals in indented JSX render cleanly.\n */\nfunction outdent(text: string): string {\n // Remove leading/trailing blank lines\n const trimmed = text.replace(/^\\n+/, \"\").replace(/\\n\\s*$/, \"\")\n const lines = trimmed.split(\"\\n\")\n\n // Find minimum indentation (ignoring empty lines)\n const indent = lines.reduce((min, line) => {\n if (line.trim().length === 0) return min\n const match = line.match(/^(\\s*)/)\n return match ? Math.min(min, match[1].length) : min\n }, Infinity)\n\n if (indent === 0 || indent === Infinity) return trimmed\n return lines.map((line) => line.slice(indent)).join(\"\\n\")\n}\n\nexport interface CodeBlockProps {\n /** The code to display (as prop or as children string) */\n code?: string\n /** Programming language for syntax highlighting */\n language?: string\n /** Optional title shown above the code */\n title?: string\n /** Show line numbers */\n lineNumbers?: boolean\n /** Line numbers to highlight */\n highlightLines?: number[]\n /** Code as children — supports template literals with auto-outdent */\n children?: React.ReactNode\n /** Pre-rendered Shiki HTML (injected by ardo:codeblock-highlight plugin) */\n __html?: string\n}\n\n/**\n * Syntax-highlighted code block with copy button.\n *\n * Code can be provided via the `code` prop or as children:\n * ```tsx\n * <CodeBlock language=\"typescript\">{`\n * const x = 42\n * `}</CodeBlock>\n * ```tsx\n * When children is a string, leading/trailing blank lines and common\n * indentation are stripped automatically.\n */\nexport function CodeBlock({\n code: codeProp,\n language = \"text\",\n title,\n lineNumbers = false,\n highlightLines = [],\n children,\n __html,\n}: CodeBlockProps) {\n const code = codeProp ?? (typeof children === \"string\" ? outdent(children) : \"\")\n const hasCustomChildren = children != null && typeof children !== \"string\"\n const lines = code.split(\"\\n\")\n\n let content: React.ReactNode\n if (__html) {\n content = <div dangerouslySetInnerHTML={{ __html }} />\n } else if (hasCustomChildren) {\n content = <>{children}</>\n } else {\n content = (\n <pre className={`language-${language}`}>\n <code>\n {lines.map((line, index) => {\n const lineNum = index + 1\n const isHighlighted = highlightLines.includes(lineNum)\n const classes = [styles.codeLine]\n if (isHighlighted) classes.push(\"highlighted\")\n\n return (\n <span key={index} className={classes.join(\" \")}>\n {lineNumbers && <span className={styles.lineNumber}>{lineNum}</span>}\n <span>{line}</span>\n {index < lines.length - 1 && \"\\n\"}\n </span>\n )\n })}\n </code>\n </pre>\n )\n }\n\n return (\n <div className={styles.codeBlock} data-lang={language}>\n {title && <div className={styles.codeTitle}>{title}</div>}\n <div className={styles.codeWrapper}>\n {content}\n <CopyButton code={code} />\n </div>\n </div>\n )\n}\n\nexport interface CodeGroupProps {\n /** CodeBlock components to display as tabs */\n children: React.ReactNode\n /** Comma-separated tab labels */\n labels?: string\n}\n\n/**\n * Tabbed group of code blocks.\n * Labels come from the `labels` prop (set at remark level) or fall back to\n * data-label / title / language props on children.\n */\nexport function CodeGroup({ children, labels: labelsStr }: CodeGroupProps) {\n const [activeTab, setActiveTab] = useState(0)\n\n // Filter to only valid React elements (skip whitespace text nodes)\n const childArray = Children.toArray(children).filter(isValidElement)\n const labelArray = labelsStr ? labelsStr.split(\",\") : []\n const tabs = childArray.map((child, index) => {\n if (labelArray[index]) return labelArray[index]\n const props = child.props as Record<string, unknown>\n return (\n (props[\"data-label\"] as string) ||\n (props.title as string) ||\n (props.language as string) ||\n `Tab ${index + 1}`\n )\n })\n\n return (\n <div className={styles.codeGroup}>\n <div className={styles.codeGroupTabs}>\n {tabs.map((tab, index) => (\n <button\n key={index}\n className={[styles.codeGroupTab, index === activeTab && \"active\"]\n .filter(Boolean)\n .join(\" \")}\n onClick={() => setActiveTab(index)}\n >\n {tab}\n </button>\n ))}\n </div>\n <div className=\"ardo-code-group-panels\">\n {childArray.map((child, index) => (\n <div\n key={index}\n className={[\"ardo-code-group-panel\", index === activeTab && \"active\"]\n .filter(Boolean)\n .join(\" \")}\n style={{ display: index === activeTab ? \"block\" : \"none\" }}\n >\n {child}\n </div>\n ))}\n </div>\n </div>\n )\n}\n","import 'src/ui/components/CodeBlock.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-VWO2_bMBDe_StYFAFiIFQpv5IoWzt0Cbo0QMeAFs8SYZokSCpxWuS_F6RkWpZlWwXaqZt1vOd33905-aIYfBYqXz_n8ddzKhZ3hk4J-jVCaENNwWWGJkRvEXmIEixg5TKE04XeeulSGQYGG8p4ZTP0Qs01xtQw1YjwkloYe031AmYl1GuGSs4YyGBN83VhVCXZgWmuhDI4pFaM91EylOotskpwdkI7qDUWW2xLyny8Xt3v4XH8MHofJYdwPHEnIMKRBjg0ZYzLIkOpxyMW30pfcAnU4MKXDdJd3xMGxQ1Sa5GX1ySZ3SGSpHOU3hL0CZGEzMaIXN2crQOlhFyFalZKOmz5T8hQOq1jB9Er8KJ0GZoTEmUruuHi7aDqIN8oqYKzEKcHFQdb9-j9tSDHS-Wc2gxH_gjNH4ZqDSbiOanxVJY7rmSGDAjq-AsMMtUGDtgZqt73pmnLjml4myFaOTUcmjbOs9qZ7ysuG5zTZDG_BOG4ywxnqLSaGpAOfeAbrYyj0oV6GTVrNLjqJupHmMDdigwGzL8Ee8atFvQtQysBNYcEbDHjBvK6F7kS1Ub-mePEA1Q3hcs9UKLscfPI5X6wpoc5Lb3WQ7u3-yUTO0xQZ-_U22gaydnC-mL8pORFKXy-wEIu7aadmtt03ImOT3Fhaahk3YnwYH2rNssWlrNDHLgMjItwvHLmygxNJ3XdF4e32X_-G1PBCz9iXt5a4abpUQNlZcFgCwJylyGpJPRS82TmO1bObufzxX2wtSVf8yNIz8xBbWA1lW2XdZHhDYtmMcXMLpt4vb6N9NWoSsci5v_7uQtwPNGljZAs-rfF5ezb-fyd67FLLuZ2O_Ac1zzeQ7n7zitjPVG04tKBOXdc_80hnfTvqki4nR5O61SCVnMrqRDtaPsnvKLWDcMvKz0zj2fm-IoNcJbQ3N_us952e7CDxMW9OXRc3kdJI2aAvbrGmkoQ3bt67l8u6aNKZ9ZJd86iXv-Oexi9_wbZM8AFaAsAAA';\nexport var codeBlock = 'CodeBlock_codeBlock__1l68ra30';\nexport var codeGroup = 'CodeBlock_codeGroup__1l68ra35';\nexport var codeGroupTab = 'CodeBlock_codeGroupTab__1l68ra37';\nexport var codeGroupTabs = 'CodeBlock_codeGroupTabs__1l68ra36';\nexport var codeLine = 'CodeBlock_codeLine__1l68ra33';\nexport var codeTitle = 'CodeBlock_codeTitle__1l68ra31';\nexport var codeWrapper = 'CodeBlock_codeWrapper__1l68ra32';\nexport var lineNumber = 'CodeBlock_lineNumber__1l68ra34';","import 'src/ui/components/Container.css.ts.vanilla.css?source=#H4sIAAAAAAAAA52UwW7CMBBE7_mKPZaDEaE0UHNrf6F35MSOsWpsyzEFWvHvVZw0BErtpLdoMjN6knd3-qqVI0Ixuym6r00ql-ywtDP4SgB2xHKhMKSZOcJsnQAYQqlQHEM6N0ev12quLWUWWULFvsLwQewDQsRS3UooJxWbXJwYUnOESktBe3HJSodhcflzTqb3GN3JsI0TpoNNPWxOindu9V7RK4JCS22RE-aF9wga-Q-jd0xuyEKJSZj1QKwSine88zhvGxnG_GMex92mIuyUKN6bi8c4epMYRt56x4E3oQi3UKXuqBdx6to_jNk7xxHXkQiv0o51vE9x3to_jNc7x_HWkT9534STF9TMo1JRGUlOGErJ_EUgUnCFhGO7CkPBlGO2ljkxGFbN0Si1cujABN86DNls1mmV-GQY0kVja24QyrVzeteGQ2C_rsPSE_5ne3uFtyu8CpbGVqtXfLNfz8HeyOT3aq_GnwRLg8PZq7ya0DxYGZyfWmLKdVWFr7rz8lIohrbtgKTTbJ2cvwGhHDgltAYAAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'Container_container__1l7ew7r0',variantClassNames:{type:{tip:'Container_container_type_tip__1l7ew7r1',warning:'Container_container_type_warning__1l7ew7r2',danger:'Container_container_type_danger__1l7ew7r3',info:'Container_container_type_info__1l7ew7r4',note:'Container_container_type_note__1l7ew7r5'}},defaultVariants:{},compoundVariants:[]});\nexport var containerContent = 'Container_containerContent__1l7ew7rc';\nexport var containerTitle = _7a468({defaultClassName:'Container_containerTitle__1l7ew7r6',variantClassNames:{type:{tip:'Container_containerTitle_type_tip__1l7ew7r7',warning:'Container_containerTitle_type_warning__1l7ew7r8',danger:'Container_containerTitle_type_danger__1l7ew7r9',info:'Container_containerTitle_type_info__1l7ew7ra',note:'Container_containerTitle_type_note__1l7ew7rb'}},defaultVariants:{},compoundVariants:[]});","import { type ReactNode } from \"react\"\nimport { LightbulbIcon, AlertTriangleIcon, XCircleIcon, InfoIcon, FileTextIcon } from \"../icons\"\nimport * as styles from \"./Container.css\"\n\nexport type ContainerType = \"tip\" | \"warning\" | \"danger\" | \"info\" | \"note\"\n\nexport interface ContainerProps {\n /** Container type determining the style */\n type: ContainerType\n /** Optional custom title */\n title?: string\n /** Content to display inside the container */\n children: ReactNode\n}\n\nconst defaultTitles: Record<ContainerType, string> = {\n tip: \"TIP\",\n warning: \"WARNING\",\n danger: \"DANGER\",\n info: \"INFO\",\n note: \"NOTE\",\n}\n\nconst icons: Record<ContainerType, ReactNode> = {\n tip: <LightbulbIcon size={18} />,\n warning: <AlertTriangleIcon size={18} />,\n danger: <XCircleIcon size={18} />,\n info: <InfoIcon size={18} />,\n note: <FileTextIcon size={18} />,\n}\n\n/**\n * A styled container for callouts, tips, warnings, etc.\n */\nexport function Container({ type, title, children }: ContainerProps) {\n const displayTitle = title || defaultTitles[type]\n\n return (\n <div className={styles.container({ type })}>\n <p className={styles.containerTitle({ type })}>\n <span>{icons[type]}</span>\n {displayTitle}\n </p>\n <div className={styles.containerContent}>{children}</div>\n </div>\n )\n}\n\nexport interface TipProps {\n /** Optional custom title */\n title?: string\n /** Content to display */\n children: ReactNode\n}\n\n/**\n * A tip container for helpful information.\n */\nexport function Tip({ title, children }: TipProps) {\n return (\n <Container type=\"tip\" title={title}>\n {children}\n </Container>\n )\n}\n\nexport interface WarningProps {\n /** Optional custom title */\n title?: string\n /** Content to display */\n children: ReactNode\n}\n\n/**\n * A warning container for cautionary information.\n */\nexport function Warning({ title, children }: WarningProps) {\n return (\n <Container type=\"warning\" title={title}>\n {children}\n </Container>\n )\n}\n\nexport interface DangerProps {\n /** Optional custom title */\n title?: string\n /** Content to display */\n children: ReactNode\n}\n\n/**\n * A danger container for critical warnings.\n */\nexport function Danger({ title, children }: DangerProps) {\n return (\n <Container type=\"danger\" title={title}>\n {children}\n </Container>\n )\n}\n\nexport interface InfoProps {\n /** Optional custom title */\n title?: string\n /** Content to display */\n children: ReactNode\n}\n\n/**\n * An info container for informational content.\n */\nexport function Info({ title, children }: InfoProps) {\n return (\n <Container type=\"info\" title={title}>\n {children}\n </Container>\n )\n}\n\nexport interface NoteProps {\n /** Optional custom title */\n title?: string\n /** Content to display */\n children: ReactNode\n}\n\n/**\n * A note container for additional information.\n */\nexport function Note({ title, children }: NoteProps) {\n return (\n <Container type=\"note\" title={title}>\n {children}\n </Container>\n )\n}\n","import {\n Children,\n isValidElement,\n useEffect,\n useRef,\n useState,\n createContext,\n useContext,\n type ReactNode,\n} from \"react\"\nimport * as styles from \"./Tabs.css\"\n\ninterface TabsContextValue {\n activeTab: string\n setActiveTab: (tab: string) => void\n getTabValue: (value?: string) => string\n getPanelValue: (value?: string) => string\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null)\nconst AUTO_TAB_PREFIX = \"__ardo-tab-\"\n\nfunction useTabsContext() {\n const context = useContext(TabsContext)\n if (!context) {\n throw new Error(\"Tab components must be used within a Tabs component\")\n }\n return context\n}\n\nexport interface TabsProps {\n /** Default active tab value */\n defaultValue?: string\n /** Tab components (TabList and TabPanels) */\n children: ReactNode\n}\n\n/**\n * Tabs container component for organizing content into tabbed panels.\n */\nexport function Tabs({ defaultValue, children }: TabsProps) {\n const [activeTab, setActiveTab] = useState(() => defaultValue ?? findFirstTabValue(children))\n const tabIndexRef = useRef(0)\n const panelIndexRef = useRef(0)\n\n tabIndexRef.current = 0\n panelIndexRef.current = 0\n\n const getTabValue = (value?: string) => {\n const index = tabIndexRef.current++\n return value ?? `${AUTO_TAB_PREFIX}${index}`\n }\n\n const getPanelValue = (value?: string) => {\n const index = panelIndexRef.current++\n return value ?? `${AUTO_TAB_PREFIX}${index}`\n }\n\n useEffect(() => {\n if (defaultValue !== undefined) {\n setActiveTab(defaultValue)\n }\n }, [defaultValue])\n\n return (\n <TabsContext.Provider value={{ activeTab, setActiveTab, getTabValue, getPanelValue }}>\n <div className={styles.tabs}>{children}</div>\n </TabsContext.Provider>\n )\n}\n\nexport interface TabListProps {\n /** Tab buttons */\n children: ReactNode\n}\n\n/**\n * Container for Tab buttons.\n */\nexport function TabList({ children }: TabListProps) {\n return (\n <div className={styles.tabList} role=\"tablist\">\n {children}\n </div>\n )\n}\n\nexport interface TabProps {\n /** Unique value identifying this tab (optional if tab order matches panels) */\n value?: string\n /** Tab button label */\n children: ReactNode\n}\n\n/**\n * Individual tab button.\n */\nexport function Tab({ value, children }: TabProps) {\n const { activeTab, setActiveTab, getTabValue } = useTabsContext()\n const resolvedValue = getTabValue(value)\n const isActive = activeTab === resolvedValue\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n className={[styles.tab, isActive && \"active\"].filter(Boolean).join(\" \")}\n onClick={() => setActiveTab(resolvedValue)}\n >\n {children}\n </button>\n )\n}\n\nexport interface TabPanelProps {\n /** Value matching the corresponding Tab (optional if panel order matches tabs) */\n value?: string\n /** Panel content */\n children: ReactNode\n}\n\n/**\n * Content panel for a tab.\n */\nexport function TabPanel({ value, children }: TabPanelProps) {\n const { activeTab, getPanelValue } = useTabsContext()\n const resolvedValue = getPanelValue(value)\n const isActive = activeTab === resolvedValue\n\n if (!isActive) {\n return null\n }\n\n return (\n <div role=\"tabpanel\" className={styles.tabPanel}>\n {children}\n </div>\n )\n}\n\nexport interface TabPanelsProps {\n /** TabPanel components */\n children: ReactNode\n}\n\n/**\n * Container for TabPanel components.\n */\nexport function TabPanels({ children }: TabPanelsProps) {\n return <div className=\"ardo-tab-panels\">{children}</div>\n}\n\nfunction findFirstTabValue(children: ReactNode): string {\n for (const child of Children.toArray(children)) {\n if (!isValidElement(child)) {\n continue\n }\n\n if (child.type === Tab) {\n const tabValue = (child.props as { value?: string }).value\n return tabValue ?? `${AUTO_TAB_PREFIX}0`\n }\n\n const nestedChildren = (child.props as { children?: ReactNode }).children\n if (nestedChildren) {\n const nestedValue = findFirstTabValue(nestedChildren)\n if (nestedValue) {\n return nestedValue\n }\n }\n }\n\n return \"\"\n}\n","import 'src/ui/components/Tabs.css.ts.vanilla.css?source=LlRhYnNfdGFic19fMWp5cHIzNDAgewogIG1hcmdpbjogMjBweCAwOwp9Ci5UYWJzX3RhYkxpc3RfXzFqeXByMzQxIHsKICBkaXNwbGF5OiBmbGV4OwogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hcmRvLWNvbG9yLWJvcmRlcik7CiAgZ2FwOiA0cHg7Cn0KLlRhYnNfdGFiX18xanlwcjM0MiB7CiAgcGFkZGluZzogMTBweCAxOHB4OwogIGJhY2tncm91bmQ6IG5vbmU7CiAgYm9yZGVyOiBub25lOwogIGN1cnNvcjogcG9pbnRlcjsKICBmb250LXNpemU6IDE0cHg7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBjb2xvcjogdmFyKC0tYXJkby1jb2xvci10ZXh0TGlnaHQpOwogIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICBtYXJnaW4tYm90dG9tOiAtMXB4OwogIHRyYW5zaXRpb246IGFsbCB2YXIoLS1hcmRvLXRyYW5zaXRpb24tZmFzdCk7Cn0KLlRhYnNfdGFiX18xanlwcjM0Mjpob3ZlciB7CiAgY29sb3I6IHZhcigtLWFyZG8tY29sb3ItdGV4dCk7Cn0KLlRhYnNfdGFiX18xanlwcjM0Mi5hY3RpdmUgewogIGNvbG9yOiB2YXIoLS1hcmRvLWNvbG9yLWJyYW5kKTsKICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1hcmRvLWNvbG9yLWJyYW5kKTsKfQouVGFic190YWJQYW5lbF9fMWp5cHIzNDMgewogIHBhZGRpbmc6IDIwcHggMDsKfQ';\nexport var tab = 'Tabs_tab__1jypr342';\nexport var tabList = 'Tabs_tabList__1jypr341';\nexport var tabPanel = 'Tabs_tabPanel__1jypr343';\nexport var tabs = 'Tabs_tabs__1jypr340';"],"mappings":"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","names":["jsx","editLink","jsx","icons","jsx","jsxs","useState","jsx","jsxs","useState","tabs","tab","jsx","jsxs","Info","Children","isValidElement","useState","createContext","useContext","jsx","createContext","useContext","useState","Children","isValidElement"]}
|
package/dist/chunk-KUWEUO37.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-KUWEUO37.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-NBRHGTR2.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
// src/config/index.ts
|
|
2
|
-
import path from "path";
|
|
3
|
-
function defineConfig(config) {
|
|
4
|
-
return config;
|
|
5
|
-
}
|
|
6
|
-
var defaultThemeConfig = {
|
|
7
|
-
nav: [],
|
|
8
|
-
sidebar: [],
|
|
9
|
-
socialLinks: [],
|
|
10
|
-
search: {
|
|
11
|
-
enabled: true,
|
|
12
|
-
placeholder: "Search..."
|
|
13
|
-
},
|
|
14
|
-
outline: {
|
|
15
|
-
level: 2,
|
|
16
|
-
label: "On this page"
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
var defaultMarkdownConfig = {
|
|
20
|
-
theme: {
|
|
21
|
-
light: "github-light-default",
|
|
22
|
-
dark: "github-dark-default"
|
|
23
|
-
},
|
|
24
|
-
lineNumbers: false,
|
|
25
|
-
anchor: true,
|
|
26
|
-
toc: {
|
|
27
|
-
level: [2, 3]
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
function resolveConfig(config, root) {
|
|
31
|
-
const srcDir = config.srcDir ?? "content";
|
|
32
|
-
const contentDir = path.resolve(root, srcDir);
|
|
33
|
-
return {
|
|
34
|
-
title: config.title,
|
|
35
|
-
description: config.description ?? "",
|
|
36
|
-
titleSeparator: config.titleSeparator ?? " | ",
|
|
37
|
-
base: config.base ?? "/",
|
|
38
|
-
srcDir,
|
|
39
|
-
outDir: config.outDir ?? "dist",
|
|
40
|
-
lang: config.lang ?? "en",
|
|
41
|
-
head: config.head ?? [],
|
|
42
|
-
themeConfig: {
|
|
43
|
-
...defaultThemeConfig,
|
|
44
|
-
...config.themeConfig
|
|
45
|
-
},
|
|
46
|
-
markdown: {
|
|
47
|
-
...defaultMarkdownConfig,
|
|
48
|
-
...config.markdown
|
|
49
|
-
},
|
|
50
|
-
vite: config.vite,
|
|
51
|
-
project: config.project ?? {},
|
|
52
|
-
root,
|
|
53
|
-
contentDir
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
async function loadConfig(root) {
|
|
57
|
-
const configPath = path.resolve(root, "press.config.ts");
|
|
58
|
-
try {
|
|
59
|
-
const configModule = await import(configPath);
|
|
60
|
-
const config = configModule.default;
|
|
61
|
-
return resolveConfig(config, root);
|
|
62
|
-
} catch {
|
|
63
|
-
return resolveConfig(
|
|
64
|
-
{
|
|
65
|
-
title: "Ardo",
|
|
66
|
-
description: "Documentation powered by Ardo"
|
|
67
|
-
},
|
|
68
|
-
root
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export {
|
|
74
|
-
defineConfig,
|
|
75
|
-
defaultMarkdownConfig,
|
|
76
|
-
resolveConfig,
|
|
77
|
-
loadConfig
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=chunk-NBRHGTR2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config/index.ts"],"sourcesContent":["import type {\n ArdoConfig,\n ProjectMeta,\n ResolvedConfig,\n ThemeConfig,\n MarkdownConfig,\n TypeDocConfig,\n SidebarItem,\n NavItem,\n SocialLink,\n SponsorConfig,\n PageFrontmatter,\n TOCItem,\n PageData,\n HeadConfig,\n} from \"./types\"\nimport path from \"path\"\n\nexport type {\n ArdoConfig,\n ProjectMeta,\n ResolvedConfig,\n ThemeConfig,\n MarkdownConfig,\n TypeDocConfig,\n SidebarItem,\n NavItem,\n SocialLink,\n SponsorConfig,\n PageFrontmatter,\n TOCItem,\n PageData,\n HeadConfig,\n}\n\nexport function defineConfig(config: ArdoConfig): ArdoConfig {\n return config\n}\n\nconst defaultThemeConfig: ThemeConfig = {\n nav: [],\n sidebar: [],\n socialLinks: [],\n search: {\n enabled: true,\n placeholder: \"Search...\",\n },\n outline: {\n level: 2,\n label: \"On this page\",\n },\n}\n\nexport const defaultMarkdownConfig: MarkdownConfig = {\n theme: {\n light: \"github-light-default\",\n dark: \"github-dark-default\",\n },\n lineNumbers: false,\n anchor: true,\n toc: {\n level: [2, 3],\n },\n}\n\nexport function resolveConfig(config: ArdoConfig, root: string): ResolvedConfig {\n const srcDir = config.srcDir ?? \"content\"\n const contentDir = path.resolve(root, srcDir)\n\n return {\n title: config.title,\n description: config.description ?? \"\",\n titleSeparator: config.titleSeparator ?? \" | \",\n base: config.base ?? \"/\",\n srcDir,\n outDir: config.outDir ?? \"dist\",\n lang: config.lang ?? \"en\",\n head: config.head ?? [],\n themeConfig: {\n ...defaultThemeConfig,\n ...config.themeConfig,\n },\n markdown: {\n ...defaultMarkdownConfig,\n ...config.markdown,\n },\n vite: config.vite,\n project: config.project ?? {},\n root,\n contentDir,\n }\n}\n\nexport async function loadConfig(root: string): Promise<ResolvedConfig> {\n const configPath = path.resolve(root, \"press.config.ts\")\n\n try {\n const configModule = await import(configPath)\n const config = configModule.default as ArdoConfig\n return resolveConfig(config, root)\n } catch {\n return resolveConfig(\n {\n title: \"Ardo\",\n description: \"Documentation powered by Ardo\",\n },\n root\n )\n }\n}\n"],"mappings":";AAgBA,OAAO,UAAU;AAmBV,SAAS,aAAa,QAAgC;AAC3D,SAAO;AACT;AAEA,IAAM,qBAAkC;AAAA,EACtC,KAAK,CAAC;AAAA,EACN,SAAS,CAAC;AAAA,EACV,aAAa,CAAC;AAAA,EACd,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;AAEO,IAAM,wBAAwC;AAAA,EACnD,OAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,KAAK;AAAA,IACH,OAAO,CAAC,GAAG,CAAC;AAAA,EACd;AACF;AAEO,SAAS,cAAc,QAAoB,MAA8B;AAC9E,QAAM,SAAS,OAAO,UAAU;AAChC,QAAM,aAAa,KAAK,QAAQ,MAAM,MAAM;AAE5C,SAAO;AAAA,IACL,OAAO,OAAO;AAAA,IACd,aAAa,OAAO,eAAe;AAAA,IACnC,gBAAgB,OAAO,kBAAkB;AAAA,IACzC,MAAM,OAAO,QAAQ;AAAA,IACrB;AAAA,IACA,QAAQ,OAAO,UAAU;AAAA,IACzB,MAAM,OAAO,QAAQ;AAAA,IACrB,MAAM,OAAO,QAAQ,CAAC;AAAA,IACtB,aAAa;AAAA,MACX,GAAG;AAAA,MACH,GAAG,OAAO;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAG,OAAO;AAAA,IACZ;AAAA,IACA,MAAM,OAAO;AAAA,IACb,SAAS,OAAO,WAAW,CAAC;AAAA,IAC5B;AAAA,IACA;AAAA,EACF;AACF;AAEA,eAAsB,WAAW,MAAuC;AACtE,QAAM,aAAa,KAAK,QAAQ,MAAM,iBAAiB;AAEvD,MAAI;AACF,UAAM,eAAe,MAAM,OAAO;AAClC,UAAM,SAAS,aAAa;AAC5B,WAAO,cAAc,QAAQ,IAAI;AAAA,EACnC,QAAQ;AACN,WAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|