@usecross/docs 0.5.0 → 0.7.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/dist/index.js CHANGED
@@ -117,48 +117,473 @@ function InlineCode({ children }) {
117
117
  return /* @__PURE__ */ jsx("code", { className: "rounded bg-slate-100 px-1.5 py-0.5 text-sm font-medium text-slate-800", children });
118
118
  }
119
119
 
120
+ // src/components/DocSetSelector.tsx
121
+ import { useState as useState2, useRef, useEffect as useEffect2 } from "react";
122
+ import { router } from "@inertiajs/react";
123
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
124
+ var ChevronUpDownIcon = ({ className }) => /* @__PURE__ */ jsx2(
125
+ "svg",
126
+ {
127
+ className,
128
+ viewBox: "0 0 16 16",
129
+ fill: "none",
130
+ xmlns: "http://www.w3.org/2000/svg",
131
+ children: /* @__PURE__ */ jsx2(
132
+ "path",
133
+ {
134
+ d: "M5 6l3-3 3 3M5 10l3 3 3-3",
135
+ stroke: "currentColor",
136
+ strokeWidth: "1.5",
137
+ strokeLinecap: "round",
138
+ strokeLinejoin: "round"
139
+ }
140
+ )
141
+ }
142
+ );
143
+ var CheckIcon = ({ className }) => /* @__PURE__ */ jsx2(
144
+ "svg",
145
+ {
146
+ className,
147
+ viewBox: "0 0 16 16",
148
+ fill: "none",
149
+ xmlns: "http://www.w3.org/2000/svg",
150
+ children: /* @__PURE__ */ jsx2(
151
+ "path",
152
+ {
153
+ d: "M3.5 8.5l3 3 6-6.5",
154
+ stroke: "currentColor",
155
+ strokeWidth: "1.75",
156
+ strokeLinecap: "round",
157
+ strokeLinejoin: "round"
158
+ }
159
+ )
160
+ }
161
+ );
162
+ var PackageIcon = ({ className }) => /* @__PURE__ */ jsxs2(
163
+ "svg",
164
+ {
165
+ className,
166
+ viewBox: "0 0 20 20",
167
+ fill: "none",
168
+ xmlns: "http://www.w3.org/2000/svg",
169
+ children: [
170
+ /* @__PURE__ */ jsx2(
171
+ "path",
172
+ {
173
+ d: "M10 2L17 6v8l-7 4-7-4V6l7-4z",
174
+ stroke: "currentColor",
175
+ strokeWidth: "1.5",
176
+ strokeLinejoin: "round"
177
+ }
178
+ ),
179
+ /* @__PURE__ */ jsx2(
180
+ "path",
181
+ {
182
+ d: "M10 10v8M10 10l7-4M10 10L3 6",
183
+ stroke: "currentColor",
184
+ strokeWidth: "1.5",
185
+ strokeLinecap: "round",
186
+ strokeLinejoin: "round"
187
+ }
188
+ )
189
+ ]
190
+ }
191
+ );
192
+ function DocSetSelector({ docSets, currentDocSet, className }) {
193
+ const [isOpen, setIsOpen] = useState2(false);
194
+ const dropdownRef = useRef(null);
195
+ const current = docSets.find((ds) => ds.slug === currentDocSet) || docSets[0];
196
+ useEffect2(() => {
197
+ const handleClickOutside = (event) => {
198
+ if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
199
+ setIsOpen(false);
200
+ }
201
+ };
202
+ if (isOpen) {
203
+ document.addEventListener("mousedown", handleClickOutside);
204
+ return () => document.removeEventListener("mousedown", handleClickOutside);
205
+ }
206
+ }, [isOpen]);
207
+ useEffect2(() => {
208
+ const handleEscape = (event) => {
209
+ if (event.key === "Escape") setIsOpen(false);
210
+ };
211
+ if (isOpen) {
212
+ document.addEventListener("keydown", handleEscape);
213
+ return () => document.removeEventListener("keydown", handleEscape);
214
+ }
215
+ }, [isOpen]);
216
+ const handleSelect = (docSet) => {
217
+ setIsOpen(false);
218
+ if (docSet.slug !== currentDocSet) {
219
+ router.visit(`${docSet.prefix}/`);
220
+ }
221
+ };
222
+ return /* @__PURE__ */ jsxs2("div", { className: cn("relative", className), ref: dropdownRef, children: [
223
+ /* @__PURE__ */ jsxs2(
224
+ "button",
225
+ {
226
+ onClick: () => setIsOpen(!isOpen),
227
+ className: cn(
228
+ "w-full flex items-center gap-2.5 px-3 py-2",
229
+ "bg-gray-100/80 dark:bg-white/5",
230
+ "border border-gray-200 dark:border-white/10",
231
+ "rounded-lg",
232
+ "hover:bg-gray-200/80 dark:hover:bg-white/10",
233
+ "transition-colors duration-150",
234
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/50"
235
+ ),
236
+ "aria-label": "Select documentation",
237
+ "aria-expanded": isOpen,
238
+ "aria-haspopup": "listbox",
239
+ children: [
240
+ /* @__PURE__ */ jsx2("div", { className: "flex-shrink-0 w-5 h-5 flex items-center justify-center text-gray-600 dark:text-gray-400", children: current.icon ? /* @__PURE__ */ jsx2("span", { className: "text-base leading-none", children: current.icon }) : current.iconUrl ? /* @__PURE__ */ jsx2("img", { src: current.iconUrl, alt: "", className: "w-5 h-5" }) : /* @__PURE__ */ jsx2(PackageIcon, { className: "w-5 h-5" }) }),
241
+ /* @__PURE__ */ jsx2("span", { className: "flex-1 text-left text-sm font-medium text-gray-900 dark:text-white truncate", children: current.name }),
242
+ /* @__PURE__ */ jsx2(ChevronUpDownIcon, { className: "flex-shrink-0 w-4 h-4 text-gray-400 dark:text-gray-500" })
243
+ ]
244
+ }
245
+ ),
246
+ /* @__PURE__ */ jsx2(
247
+ "div",
248
+ {
249
+ className: cn(
250
+ "absolute left-0 right-0 mt-1.5",
251
+ "py-1",
252
+ "bg-white dark:bg-[#1a1a1a]",
253
+ "border border-gray-200 dark:border-white/10",
254
+ "rounded-lg",
255
+ "shadow-lg shadow-black/5 dark:shadow-black/30",
256
+ "z-50",
257
+ "transition-all duration-150 ease-out origin-top",
258
+ isOpen ? "opacity-100 scale-100" : "opacity-0 scale-95 pointer-events-none"
259
+ ),
260
+ role: "listbox",
261
+ "aria-label": "Select documentation set",
262
+ children: docSets.map((docSet) => {
263
+ const isSelected = docSet.slug === currentDocSet;
264
+ return /* @__PURE__ */ jsxs2(
265
+ "button",
266
+ {
267
+ onClick: () => handleSelect(docSet),
268
+ className: cn(
269
+ "w-full flex items-center gap-2.5 px-3 py-2",
270
+ "transition-colors duration-100",
271
+ "focus:outline-none",
272
+ isSelected ? "bg-primary-50 dark:bg-primary-500/10" : "hover:bg-gray-50 dark:hover:bg-white/5"
273
+ ),
274
+ role: "option",
275
+ "aria-selected": isSelected,
276
+ children: [
277
+ /* @__PURE__ */ jsx2("div", { className: cn(
278
+ "flex-shrink-0 w-5 h-5 flex items-center justify-center",
279
+ isSelected ? "text-primary-600 dark:text-primary-400" : "text-gray-500 dark:text-gray-400"
280
+ ), children: docSet.icon ? /* @__PURE__ */ jsx2("span", { className: "text-base leading-none", children: docSet.icon }) : docSet.iconUrl ? /* @__PURE__ */ jsx2("img", { src: docSet.iconUrl, alt: "", className: "w-5 h-5" }) : /* @__PURE__ */ jsx2(PackageIcon, { className: "w-5 h-5" }) }),
281
+ /* @__PURE__ */ jsxs2("div", { className: "flex-1 text-left min-w-0", children: [
282
+ /* @__PURE__ */ jsx2(
283
+ "div",
284
+ {
285
+ className: cn(
286
+ "text-sm font-medium truncate",
287
+ isSelected ? "text-primary-700 dark:text-primary-300" : "text-gray-900 dark:text-white"
288
+ ),
289
+ children: docSet.name
290
+ }
291
+ ),
292
+ docSet.description && /* @__PURE__ */ jsx2("div", { className: cn(
293
+ "text-xs truncate",
294
+ isSelected ? "text-primary-600/70 dark:text-primary-400/70" : "text-gray-500 dark:text-gray-400"
295
+ ), children: docSet.description })
296
+ ] }),
297
+ isSelected && /* @__PURE__ */ jsx2(CheckIcon, { className: "flex-shrink-0 w-4 h-4 text-primary-600 dark:text-primary-400" })
298
+ ]
299
+ },
300
+ docSet.slug || "_root"
301
+ );
302
+ })
303
+ }
304
+ )
305
+ ] });
306
+ }
307
+
120
308
  // src/components/DocsLayout.tsx
121
309
  import { Head, Link as Link2, usePage } from "@inertiajs/react";
122
- import { useState as useState2 } from "react";
310
+ import { useState as useState5 } from "react";
123
311
 
124
312
  // src/components/Sidebar.tsx
125
313
  import { Link } from "@inertiajs/react";
126
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
127
- function Sidebar({ nav, currentPath, className }) {
128
- return /* @__PURE__ */ jsx2("nav", { className: cn("space-y-8", className), children: nav.map((section) => /* @__PURE__ */ jsxs2("div", { children: [
129
- /* @__PURE__ */ jsx2("h3", { className: "mb-3 text-xs font-mono uppercase tracking-widest text-gray-500", children: section.title }),
130
- /* @__PURE__ */ jsx2("ul", { className: "space-y-1 border-l-2 border-gray-200", children: section.items.map((item) => /* @__PURE__ */ jsx2("li", { children: /* @__PURE__ */ jsx2(
131
- Link,
314
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
315
+ function Sidebar({ nav, currentPath, className, docSets, currentDocSet }) {
316
+ return /* @__PURE__ */ jsxs3("nav", { className: cn("space-y-6", className), children: [
317
+ docSets && docSets.length > 1 && /* @__PURE__ */ jsx3(DocSetSelector, { docSets, currentDocSet: currentDocSet ?? "", className: "mb-6" }),
318
+ /* @__PURE__ */ jsx3("div", { className: "space-y-8", children: nav.map((section) => /* @__PURE__ */ jsxs3("div", { children: [
319
+ /* @__PURE__ */ jsx3("h3", { className: "mb-3 text-xs font-mono uppercase tracking-widest text-gray-500 dark:text-gray-400", children: section.title }),
320
+ /* @__PURE__ */ jsx3("ul", { className: "space-y-1 border-l-2 border-gray-200 dark:border-gray-700", children: section.items.map((item) => /* @__PURE__ */ jsx3("li", { children: /* @__PURE__ */ jsx3(
321
+ Link,
322
+ {
323
+ href: item.href,
324
+ className: cn(
325
+ "block border-l-2 py-1.5 pl-4 text-sm transition-colors -ml-0.5",
326
+ currentPath === item.href ? "border-primary-500 text-gray-900 dark:text-white font-bold" : "border-transparent text-gray-600 dark:text-gray-300 hover:border-gray-900 dark:hover:border-white hover:text-gray-900 dark:hover:text-white"
327
+ ),
328
+ children: item.title
329
+ }
330
+ ) }, item.href)) })
331
+ ] }, section.title)) })
332
+ ] });
333
+ }
334
+
335
+ // src/components/ThemeToggle.tsx
336
+ import { useState as useState4, useRef as useRef2, useEffect as useEffect4 } from "react";
337
+
338
+ // src/components/ThemeProvider.tsx
339
+ import { createContext, useContext, useEffect as useEffect3, useState as useState3 } from "react";
340
+ import { jsx as jsx4 } from "react/jsx-runtime";
341
+ var ThemeContext = createContext(null);
342
+ var STORAGE_KEY = "cross-docs-theme";
343
+ function getSystemTheme() {
344
+ if (typeof window === "undefined") return "light";
345
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
346
+ }
347
+ function getStoredTheme() {
348
+ if (typeof window === "undefined") return null;
349
+ const stored = localStorage.getItem(STORAGE_KEY);
350
+ if (stored === "light" || stored === "dark" || stored === "system") {
351
+ return stored;
352
+ }
353
+ return null;
354
+ }
355
+ function ThemeProvider({
356
+ children,
357
+ defaultTheme: defaultTheme2 = "system",
358
+ forcedTheme
359
+ }) {
360
+ const [theme, setThemeState] = useState3(() => {
361
+ if (typeof window === "undefined") return defaultTheme2;
362
+ return getStoredTheme() ?? defaultTheme2;
363
+ });
364
+ const [resolvedTheme, setResolvedTheme] = useState3(() => {
365
+ if (forcedTheme) return forcedTheme;
366
+ if (typeof window === "undefined") return "light";
367
+ if (theme === "system") return getSystemTheme();
368
+ return theme;
369
+ });
370
+ useEffect3(() => {
371
+ if (forcedTheme) {
372
+ setResolvedTheme(forcedTheme);
373
+ return;
374
+ }
375
+ const updateResolvedTheme = () => {
376
+ if (theme === "system") {
377
+ setResolvedTheme(getSystemTheme());
378
+ } else {
379
+ setResolvedTheme(theme);
380
+ }
381
+ };
382
+ updateResolvedTheme();
383
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
384
+ const handleChange = () => {
385
+ if (theme === "system") {
386
+ setResolvedTheme(getSystemTheme());
387
+ }
388
+ };
389
+ mediaQuery.addEventListener("change", handleChange);
390
+ return () => mediaQuery.removeEventListener("change", handleChange);
391
+ }, [theme, forcedTheme]);
392
+ useEffect3(() => {
393
+ const root = document.documentElement;
394
+ root.classList.remove("light", "dark");
395
+ root.classList.add(resolvedTheme);
396
+ }, [resolvedTheme]);
397
+ const setTheme = (newTheme) => {
398
+ setThemeState(newTheme);
399
+ localStorage.setItem(STORAGE_KEY, newTheme);
400
+ };
401
+ return /* @__PURE__ */ jsx4(ThemeContext.Provider, { value: { theme, resolvedTheme, setTheme }, children });
402
+ }
403
+ function useTheme() {
404
+ const context = useContext(ThemeContext);
405
+ if (!context) {
406
+ throw new Error("useTheme must be used within a ThemeProvider");
407
+ }
408
+ return context;
409
+ }
410
+ var themeInitScript = `
411
+ (function() {
412
+ try {
413
+ var stored = localStorage.getItem('${STORAGE_KEY}');
414
+ var theme = stored === 'light' || stored === 'dark' ? stored :
415
+ (stored === 'system' || !stored) && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
416
+ document.documentElement.classList.add(theme);
417
+ } catch (e) {}
418
+ })();
419
+ `.trim();
420
+
421
+ // src/components/ThemeToggle.tsx
422
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
423
+ var SunIcon = ({ className }) => /* @__PURE__ */ jsxs4("svg", { className, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
424
+ /* @__PURE__ */ jsx5("circle", { cx: "12", cy: "12", r: "4", stroke: "currentColor", strokeWidth: "1.5" }),
425
+ /* @__PURE__ */ jsx5("path", { d: "M12 5V3M12 21v-2M5 12H3m18 0h-2M7.05 7.05 5.636 5.636m12.728 12.728L16.95 16.95M7.05 16.95l-1.414 1.414M18.364 5.636 16.95 7.05", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
426
+ ] });
427
+ var MoonIcon = ({ className }) => /* @__PURE__ */ jsx5("svg", { className, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx5("path", { d: "M21.752 15.002A9.718 9.718 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
428
+ var MonitorIcon = ({ className }) => /* @__PURE__ */ jsxs4("svg", { className, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
429
+ /* @__PURE__ */ jsx5("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2", stroke: "currentColor", strokeWidth: "1.5" }),
430
+ /* @__PURE__ */ jsx5("path", { d: "M8 21h8m-4-4v4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
431
+ ] });
432
+ var themeOptions = [
433
+ { value: "light", label: "Light", icon: SunIcon },
434
+ { value: "dark", label: "Dark", icon: MoonIcon },
435
+ { value: "system", label: "System", icon: MonitorIcon }
436
+ ];
437
+ function ThemeToggle({ className, size = "md" }) {
438
+ const { theme, resolvedTheme, setTheme } = useTheme();
439
+ const [isOpen, setIsOpen] = useState4(false);
440
+ const dropdownRef = useRef2(null);
441
+ useEffect4(() => {
442
+ const handleClickOutside = (event) => {
443
+ if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
444
+ setIsOpen(false);
445
+ }
446
+ };
447
+ if (isOpen) {
448
+ document.addEventListener("mousedown", handleClickOutside);
449
+ return () => document.removeEventListener("mousedown", handleClickOutside);
450
+ }
451
+ }, [isOpen]);
452
+ useEffect4(() => {
453
+ const handleEscape = (event) => {
454
+ if (event.key === "Escape") setIsOpen(false);
455
+ };
456
+ if (isOpen) {
457
+ document.addEventListener("keydown", handleEscape);
458
+ return () => document.removeEventListener("keydown", handleEscape);
459
+ }
460
+ }, [isOpen]);
461
+ const iconSizes = {
462
+ sm: "w-[18px] h-[18px]",
463
+ md: "w-5 h-5",
464
+ lg: "w-[22px] h-[22px]"
465
+ };
466
+ return /* @__PURE__ */ jsxs4("div", { className: "relative", ref: dropdownRef, children: [
467
+ /* @__PURE__ */ jsxs4(
468
+ "button",
132
469
  {
133
- href: item.href,
470
+ onClick: () => setIsOpen(!isOpen),
134
471
  className: cn(
135
- "block border-l-2 py-1.5 pl-4 text-sm transition-colors -ml-0.5",
136
- currentPath === item.href ? "border-primary-500 text-black font-bold" : "border-transparent text-gray-600 hover:border-black hover:text-black"
472
+ "relative inline-flex items-center justify-center",
473
+ "rounded-full p-4",
474
+ "text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white",
475
+ "hover:bg-gray-100 dark:hover:bg-white/10",
476
+ "transition-all duration-200 ease-out",
477
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/50 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-[#0f0f0f]",
478
+ iconSizes[size],
479
+ className
137
480
  ),
138
- children: item.title
481
+ "aria-label": "Toggle theme",
482
+ "aria-expanded": isOpen,
483
+ "aria-haspopup": "listbox",
484
+ children: [
485
+ /* @__PURE__ */ jsx5(
486
+ SunIcon,
487
+ {
488
+ className: cn(
489
+ iconSizes[size],
490
+ "absolute inset-0 m-auto transition-all duration-300 ease-out",
491
+ resolvedTheme === "light" ? "rotate-0 scale-100 opacity-100" : "rotate-90 scale-75 opacity-0"
492
+ )
493
+ }
494
+ ),
495
+ /* @__PURE__ */ jsx5(
496
+ MoonIcon,
497
+ {
498
+ className: cn(
499
+ iconSizes[size],
500
+ "absolute inset-0 m-auto transition-all duration-300 ease-out",
501
+ resolvedTheme === "dark" ? "rotate-0 scale-100 opacity-100" : "-rotate-90 scale-75 opacity-0"
502
+ )
503
+ }
504
+ )
505
+ ]
139
506
  }
140
- ) }, item.href)) })
141
- ] }, section.title)) });
507
+ ),
508
+ /* @__PURE__ */ jsx5(
509
+ "div",
510
+ {
511
+ className: cn(
512
+ "absolute right-0 mt-2 min-w-[140px]",
513
+ "p-1",
514
+ "bg-white dark:bg-[#171717]",
515
+ "border border-gray-200 dark:border-[#262626]",
516
+ "rounded-xl",
517
+ "shadow-lg shadow-black/5 dark:shadow-black/40",
518
+ "z-50",
519
+ "transition-all duration-200 ease-out origin-top-right",
520
+ isOpen ? "opacity-100 scale-100 translate-y-0" : "opacity-0 scale-95 -translate-y-1 pointer-events-none"
521
+ ),
522
+ role: "listbox",
523
+ "aria-label": "Select theme",
524
+ children: themeOptions.map((option, index) => {
525
+ const Icon = option.icon;
526
+ const isSelected = theme === option.value;
527
+ return /* @__PURE__ */ jsxs4(
528
+ "button",
529
+ {
530
+ onClick: () => {
531
+ setTheme(option.value);
532
+ setIsOpen(false);
533
+ },
534
+ className: cn(
535
+ "w-full flex items-center gap-2.5 px-3 py-2",
536
+ "rounded-lg",
537
+ "text-[13px] font-medium",
538
+ "transition-all duration-150 ease-out",
539
+ "focus:outline-none",
540
+ isSelected ? "text-gray-900 dark:text-white bg-gray-100 dark:bg-[#262626]" : "text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-[#1f1f1f]"
541
+ ),
542
+ role: "option",
543
+ "aria-selected": isSelected,
544
+ style: {
545
+ animationDelay: isOpen ? `${index * 25}ms` : "0ms"
546
+ },
547
+ children: [
548
+ /* @__PURE__ */ jsx5(Icon, { className: cn(
549
+ "w-4 h-4 flex-shrink-0",
550
+ "transition-transform duration-150",
551
+ isSelected ? "scale-110" : "scale-100"
552
+ ) }),
553
+ /* @__PURE__ */ jsx5("span", { className: "flex-1 text-left", children: option.label }),
554
+ /* @__PURE__ */ jsx5("div", { className: cn(
555
+ "w-1.5 h-1.5 rounded-full",
556
+ "transition-all duration-200",
557
+ isSelected ? "bg-primary-500 scale-100 opacity-100" : "bg-transparent scale-0 opacity-0"
558
+ ) })
559
+ ]
560
+ },
561
+ option.value
562
+ );
563
+ })
564
+ }
565
+ )
566
+ ] });
142
567
  }
143
568
 
144
569
  // src/components/DocsLayout.tsx
145
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
570
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
146
571
  function MobileMenuButton({ onClick, isOpen }) {
147
- return /* @__PURE__ */ jsxs3(
572
+ return /* @__PURE__ */ jsxs5(
148
573
  "button",
149
574
  {
150
575
  onClick,
151
- className: "inline-flex items-center justify-center p-2 -ml-2 text-black hover:text-primary-500 lg:hidden",
576
+ className: "inline-flex items-center justify-center p-2 -ml-2 text-gray-700 hover:text-primary-500 dark:text-gray-300 dark:hover:text-primary-400 lg:hidden transition-colors",
152
577
  "aria-expanded": isOpen,
153
578
  children: [
154
- /* @__PURE__ */ jsx3("span", { className: "sr-only", children: isOpen ? "Close menu" : "Open menu" }),
155
- isOpen ? /* @__PURE__ */ jsx3("svg", { className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx3("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) : /* @__PURE__ */ jsx3("svg", { className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx3("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }) })
579
+ /* @__PURE__ */ jsx6("span", { className: "sr-only", children: isOpen ? "Close menu" : "Open menu" }),
580
+ isOpen ? /* @__PURE__ */ jsx6("svg", { className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx6("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) : /* @__PURE__ */ jsx6("svg", { className: "h-6 w-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx6("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }) })
156
581
  ]
157
582
  }
158
583
  );
159
584
  }
160
585
  function GitHubIcon() {
161
- return /* @__PURE__ */ jsx3("svg", { className: "w-6 h-6", fill: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx3(
586
+ return /* @__PURE__ */ jsx6("svg", { className: "w-6 h-6", fill: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx6(
162
587
  "path",
163
588
  {
164
589
  fillRule: "evenodd",
@@ -180,63 +605,67 @@ function DocsLayout({
180
605
  footer
181
606
  }) {
182
607
  const sharedProps = usePage().props;
183
- const { nav, currentPath } = sharedProps;
184
- const [mobileMenuOpen, setMobileMenuOpen] = useState2(false);
608
+ const { nav, currentPath, docSets, currentDocSet } = sharedProps;
609
+ const [mobileMenuOpen, setMobileMenuOpen] = useState5(false);
610
+ const { resolvedTheme } = useTheme();
185
611
  const logoUrl = propLogoUrl ?? sharedProps.logoUrl;
186
612
  const logoInvertedUrl = propLogoInvertedUrl ?? sharedProps.logoInvertedUrl;
187
613
  const githubUrl = propGithubUrl ?? sharedProps.githubUrl;
188
614
  const navLinks = propNavLinks ?? sharedProps.navLinks ?? [];
189
- const headerLogo = logoInverted || logo || (logoInvertedUrl ? /* @__PURE__ */ jsx3("img", { src: logoInvertedUrl, alt: "Logo", className: "h-8" }) : logoUrl ? /* @__PURE__ */ jsx3("img", { src: logoUrl, alt: "Logo", className: "h-8" }) : null);
615
+ const headerLogo = logoInverted || logo || (logoInvertedUrl ? /* @__PURE__ */ jsx6("img", { src: logoInvertedUrl, alt: "Logo", className: "h-8" }) : logoUrl ? /* @__PURE__ */ jsx6("img", { src: logoUrl, alt: "Logo", className: "h-8" }) : null);
190
616
  const footerLogoUrl = sharedProps.footerLogoUrl || logoUrl;
191
- const footerLogo = logo || (footerLogoUrl ? /* @__PURE__ */ jsx3("img", { src: footerLogoUrl, alt: "Logo", className: "h-6" }) : null);
192
- return /* @__PURE__ */ jsxs3("div", { className: "min-h-screen bg-white flex flex-col", children: [
193
- /* @__PURE__ */ jsx3(Head, { title }),
194
- /* @__PURE__ */ jsx3("nav", { className: "fixed w-full z-50 bg-white border-b border-gray-200", children: /* @__PURE__ */ jsx3("div", { className: "px-4 lg:px-10", children: /* @__PURE__ */ jsxs3("div", { className: "flex justify-between h-16 items-center", children: [
195
- /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
196
- /* @__PURE__ */ jsx3(MobileMenuButton, { onClick: () => setMobileMenuOpen(!mobileMenuOpen), isOpen: mobileMenuOpen }),
197
- headerLogo ? /* @__PURE__ */ jsx3(Link2, { href: "/", className: "flex items-center", children: headerLogo }) : /* @__PURE__ */ jsx3(Link2, { href: "/", className: "font-bold text-lg", children: "Docs" })
617
+ const footerLogoInvertedUrl = sharedProps.footerLogoInvertedUrl || logoInvertedUrl;
618
+ const currentFooterLogoUrl = resolvedTheme === "dark" ? footerLogoInvertedUrl || footerLogoUrl : footerLogoUrl;
619
+ const footerLogo = logo || (currentFooterLogoUrl ? /* @__PURE__ */ jsx6("img", { src: currentFooterLogoUrl, alt: "Logo", className: "h-6" }) : null);
620
+ return /* @__PURE__ */ jsxs5("div", { className: "min-h-screen bg-white dark:bg-[#0f0f0f] flex flex-col transition-colors duration-200", children: [
621
+ /* @__PURE__ */ jsx6(Head, { title }),
622
+ /* @__PURE__ */ jsx6("nav", { className: "fixed w-full z-50 bg-white/95 dark:bg-[#0f0f0f]/95 backdrop-blur-sm border-b border-gray-200 dark:border-gray-800 transition-colors", children: /* @__PURE__ */ jsx6("div", { className: "px-4 lg:px-10", children: /* @__PURE__ */ jsxs5("div", { className: "flex justify-between h-16 items-center", children: [
623
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-2", children: [
624
+ /* @__PURE__ */ jsx6(MobileMenuButton, { onClick: () => setMobileMenuOpen(!mobileMenuOpen), isOpen: mobileMenuOpen }),
625
+ headerLogo ? /* @__PURE__ */ jsx6(Link2, { href: "/", className: "flex items-center", children: headerLogo }) : /* @__PURE__ */ jsx6(Link2, { href: "/", className: "font-bold text-lg text-gray-900 dark:text-white", children: "Docs" })
198
626
  ] }),
199
- /* @__PURE__ */ jsxs3("div", { className: "flex items-center space-x-8", children: [
200
- navLinks.map((link) => /* @__PURE__ */ jsx3(
627
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-6", children: [
628
+ /* @__PURE__ */ jsx6("div", { className: "-mr-2", children: /* @__PURE__ */ jsx6(ThemeToggle, { size: "sm" }) }),
629
+ navLinks.map((link) => /* @__PURE__ */ jsx6(
201
630
  Link2,
202
631
  {
203
632
  href: link.href,
204
- className: "text-black font-medium hover:text-primary-500 transition-colors",
633
+ className: "hidden sm:block text-gray-700 dark:text-gray-300 font-medium hover:text-primary-600 dark:hover:text-primary-400 transition-colors",
205
634
  children: link.label
206
635
  },
207
636
  link.href
208
637
  )),
209
- githubUrl && /* @__PURE__ */ jsx3(
638
+ githubUrl && /* @__PURE__ */ jsx6(
210
639
  "a",
211
640
  {
212
641
  href: githubUrl,
213
642
  target: "_blank",
214
643
  rel: "noopener noreferrer",
215
- className: "text-black hover:text-primary-500 transition-colors",
216
- children: /* @__PURE__ */ jsx3(GitHubIcon, {})
644
+ className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",
645
+ children: /* @__PURE__ */ jsx6(GitHubIcon, {})
217
646
  }
218
647
  )
219
648
  ] })
220
649
  ] }) }) }),
221
- mobileMenuOpen && /* @__PURE__ */ jsxs3("div", { className: "fixed inset-0 z-40 lg:hidden", children: [
222
- /* @__PURE__ */ jsx3("div", { className: "fixed inset-0 bg-black/50", onClick: () => setMobileMenuOpen(false) }),
223
- /* @__PURE__ */ jsx3("div", { className: "fixed inset-y-0 left-0 w-72 overflow-y-auto bg-white px-4 lg:px-10 py-6 pt-20 border-r border-gray-200", children: /* @__PURE__ */ jsx3(Sidebar, { nav, currentPath }) })
650
+ mobileMenuOpen && /* @__PURE__ */ jsxs5("div", { className: "fixed inset-0 z-40 lg:hidden", children: [
651
+ /* @__PURE__ */ jsx6("div", { className: "fixed inset-0 bg-black/50 dark:bg-black/70", onClick: () => setMobileMenuOpen(false) }),
652
+ /* @__PURE__ */ jsx6("div", { className: "fixed inset-y-0 left-0 w-64 overflow-y-auto bg-white dark:bg-[#0f0f0f] px-4 py-6 pt-20 border-r border-gray-200 dark:border-gray-800 transition-colors", children: /* @__PURE__ */ jsx6(Sidebar, { nav, currentPath, docSets, currentDocSet }) })
224
653
  ] }),
225
- /* @__PURE__ */ jsx3("div", { className: "bg-white pt-16 w-full flex-1", children: /* @__PURE__ */ jsxs3("div", { className: "grid grid-cols-12", children: [
226
- /* @__PURE__ */ jsx3("aside", { className: "hidden lg:block lg:col-span-3 xl:col-span-2 border-r border-gray-200 min-h-[calc(100vh-4rem)]", children: /* @__PURE__ */ jsx3("nav", { className: "sticky top-16 px-4 lg:px-10 py-6 max-h-[calc(100vh-4rem)] overflow-y-auto", children: /* @__PURE__ */ jsx3(Sidebar, { nav, currentPath }) }) }),
227
- /* @__PURE__ */ jsx3("main", { className: "col-span-12 lg:col-span-9 xl:col-span-10 p-4 lg:px-10 lg:py-6", children: /* @__PURE__ */ jsx3("article", { className: "prose prose-lg max-w-3xl prose-headings:font-bold prose-headings:tracking-tight prose-h1:text-3xl prose-h1:mb-4 prose-h2:text-2xl prose-h2:mt-10 first:prose-h2:mt-0 prose-h3:text-xl prose-a:text-primary-600 prose-a:no-underline hover:prose-a:underline prose-code:bg-gray-100 prose-code:px-1.5 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none", children }) })
654
+ /* @__PURE__ */ jsx6("div", { className: "bg-white dark:bg-[#0f0f0f] pt-16 w-full flex-1 transition-colors", children: /* @__PURE__ */ jsxs5("div", { className: "flex", children: [
655
+ /* @__PURE__ */ jsx6("aside", { className: "hidden lg:block w-72 flex-shrink-0 border-r border-gray-200 dark:border-gray-800 min-h-[calc(100vh-4rem)] transition-colors", children: /* @__PURE__ */ jsx6("nav", { className: "sticky top-16 px-4 py-6 max-h-[calc(100vh-4rem)] overflow-y-auto", children: /* @__PURE__ */ jsx6(Sidebar, { nav, currentPath, docSets, currentDocSet }) }) }),
656
+ /* @__PURE__ */ jsx6("main", { className: "flex-1 min-w-0 p-4 lg:px-10 lg:py-6", children: /* @__PURE__ */ jsx6("article", { className: "prose prose-lg max-w-3xl prose-headings:font-bold prose-headings:tracking-tight prose-h1:text-3xl prose-h1:mb-4 prose-h2:text-2xl prose-h2:mt-10 first:prose-h2:mt-0 prose-h3:text-xl prose-a:text-primary-600 dark:prose-a:text-primary-400 prose-a:no-underline hover:prose-a:underline prose-code:bg-gray-100 dark:prose-code:bg-gray-800 prose-code:px-1.5 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none dark:prose-headings:text-white dark:prose-strong:text-white dark:text-gray-300", children }) })
228
657
  ] }) }),
229
- footer || /* @__PURE__ */ jsx3("footer", { className: "border-t border-gray-200 py-8", children: /* @__PURE__ */ jsxs3("div", { className: "px-4 lg:px-10 flex flex-col md:flex-row justify-between items-center gap-6", children: [
230
- footerLogo && /* @__PURE__ */ jsx3(Link2, { href: "/", children: footerLogo }),
231
- /* @__PURE__ */ jsxs3("div", { className: "flex gap-8 text-sm text-gray-600", children: [
232
- navLinks.map((link) => /* @__PURE__ */ jsx3(Link2, { href: link.href, className: "hover:text-black transition-colors", children: link.label }, link.href)),
233
- githubUrl && /* @__PURE__ */ jsx3(
658
+ footer || /* @__PURE__ */ jsx6("footer", { className: "border-t border-gray-200 dark:border-gray-800 py-8 bg-white dark:bg-[#0f0f0f] transition-colors", children: /* @__PURE__ */ jsxs5("div", { className: "px-4 lg:px-10 flex flex-col md:flex-row justify-between items-center gap-6", children: [
659
+ footerLogo && /* @__PURE__ */ jsx6(Link2, { href: "/", children: footerLogo }),
660
+ /* @__PURE__ */ jsxs5("div", { className: "flex gap-8 text-sm text-gray-600 dark:text-gray-400", children: [
661
+ navLinks.map((link) => /* @__PURE__ */ jsx6(Link2, { href: link.href, className: "hover:text-black dark:hover:text-white transition-colors", children: link.label }, link.href)),
662
+ githubUrl && /* @__PURE__ */ jsx6(
234
663
  "a",
235
664
  {
236
665
  href: githubUrl,
237
666
  target: "_blank",
238
667
  rel: "noopener noreferrer",
239
- className: "hover:text-black transition-colors",
668
+ className: "hover:text-black dark:hover:text-white transition-colors",
240
669
  children: "GitHub"
241
670
  }
242
671
  )
@@ -249,7 +678,7 @@ function DocsLayout({
249
678
  import ReactMarkdown from "react-markdown";
250
679
  import remarkGfm from "remark-gfm";
251
680
  import rehypeRaw from "rehype-raw";
252
- import { Fragment, jsx as jsx4 } from "react/jsx-runtime";
681
+ import { Fragment, jsx as jsx7 } from "react/jsx-runtime";
253
682
  function Markdown({ content, components }) {
254
683
  const lowercaseComponents = components ? Object.entries(components).reduce(
255
684
  (acc, [name, Component]) => {
@@ -258,7 +687,7 @@ function Markdown({ content, components }) {
258
687
  },
259
688
  {}
260
689
  ) : {};
261
- return /* @__PURE__ */ jsx4(
690
+ return /* @__PURE__ */ jsx7(
262
691
  ReactMarkdown,
263
692
  {
264
693
  remarkPlugins: [remarkGfm],
@@ -267,14 +696,14 @@ function Markdown({ content, components }) {
267
696
  ...lowercaseComponents,
268
697
  // Override pre to avoid double wrapping with CodeBlock
269
698
  pre({ children }) {
270
- return /* @__PURE__ */ jsx4(Fragment, { children });
699
+ return /* @__PURE__ */ jsx7(Fragment, { children });
271
700
  },
272
701
  // Custom code block rendering with syntax highlighting
273
702
  code({ node, className, children, ...props }) {
274
703
  const match = /language-(\w+)/.exec(className || "");
275
704
  const isInline = !match && !className;
276
705
  if (isInline) {
277
- return /* @__PURE__ */ jsx4(
706
+ return /* @__PURE__ */ jsx7(
278
707
  "code",
279
708
  {
280
709
  className: "rounded bg-gray-100 px-1.5 py-0.5 text-sm font-medium text-gray-800 dark:bg-gray-800 dark:text-gray-200",
@@ -287,7 +716,7 @@ function Markdown({ content, components }) {
287
716
  const titleMatch = /title="([^"]+)"/.exec(meta);
288
717
  const filename = titleMatch ? titleMatch[1] : void 0;
289
718
  const showLineNumbers = meta.includes("showLineNumbers");
290
- return /* @__PURE__ */ jsx4(
719
+ return /* @__PURE__ */ jsx7(
291
720
  CodeBlock,
292
721
  {
293
722
  code: String(children).replace(/\n$/, ""),
@@ -300,7 +729,7 @@ function Markdown({ content, components }) {
300
729
  // Custom link styling
301
730
  a({ href, children }) {
302
731
  const isExternal = href?.startsWith("http");
303
- return /* @__PURE__ */ jsx4(
732
+ return /* @__PURE__ */ jsx7(
304
733
  "a",
305
734
  {
306
735
  href,
@@ -312,13 +741,13 @@ function Markdown({ content, components }) {
312
741
  },
313
742
  // Tables
314
743
  table({ children }) {
315
- return /* @__PURE__ */ jsx4("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx4("table", { className: "w-full text-left text-sm", children }) });
744
+ return /* @__PURE__ */ jsx7("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx7("table", { className: "w-full text-left text-sm", children }) });
316
745
  },
317
746
  th({ children }) {
318
- return /* @__PURE__ */ jsx4("th", { className: "border-b border-gray-200 bg-gray-50 px-4 py-2 font-semibold dark:border-gray-700 dark:bg-gray-800", children });
747
+ return /* @__PURE__ */ jsx7("th", { className: "border-b border-gray-200 bg-gray-50 px-4 py-2 font-semibold dark:border-gray-700 dark:bg-gray-800", children });
319
748
  },
320
749
  td({ children }) {
321
- return /* @__PURE__ */ jsx4("td", { className: "border-b border-gray-200 px-4 py-2 dark:border-gray-700", children });
750
+ return /* @__PURE__ */ jsx7("td", { className: "border-b border-gray-200 px-4 py-2 dark:border-gray-700", children });
322
751
  }
323
752
  },
324
753
  children: content
@@ -327,32 +756,32 @@ function Markdown({ content, components }) {
327
756
  }
328
757
 
329
758
  // src/context/ComponentsContext.tsx
330
- import { createContext, useContext } from "react";
331
- import { jsx as jsx5 } from "react/jsx-runtime";
332
- var ComponentsContext = createContext({});
759
+ import { createContext as createContext2, useContext as useContext2 } from "react";
760
+ import { jsx as jsx8 } from "react/jsx-runtime";
761
+ var ComponentsContext = createContext2({});
333
762
  function ComponentsProvider({
334
763
  children,
335
764
  components
336
765
  }) {
337
- return /* @__PURE__ */ jsx5(ComponentsContext.Provider, { value: { components }, children });
766
+ return /* @__PURE__ */ jsx8(ComponentsContext.Provider, { value: { components }, children });
338
767
  }
339
768
  function useComponents() {
340
- return useContext(ComponentsContext);
769
+ return useContext2(ComponentsContext);
341
770
  }
342
771
 
343
772
  // src/components/DocsPage.tsx
344
- import { jsx as jsx6 } from "react/jsx-runtime";
773
+ import { jsx as jsx9 } from "react/jsx-runtime";
345
774
  function DocsPage({ content, ...layoutProps }) {
346
775
  const { components } = useComponents();
347
- return /* @__PURE__ */ jsx6(DocsLayout, { title: content?.title ?? "", description: content?.description, ...layoutProps, children: /* @__PURE__ */ jsx6(Markdown, { content: content?.body ?? "", components }) });
776
+ return /* @__PURE__ */ jsx9(DocsLayout, { title: content?.title ?? "", description: content?.description, ...layoutProps, children: /* @__PURE__ */ jsx9(Markdown, { content: content?.body ?? "", components }) });
348
777
  }
349
778
 
350
779
  // src/components/EmojiConfetti.tsx
351
- import { useState as useState3, useCallback } from "react";
352
- import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
780
+ import { useState as useState6, useCallback } from "react";
781
+ import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
353
782
  function EmojiConfetti({ children, emoji }) {
354
- const [particles, setParticles] = useState3([]);
355
- const [isActive, setIsActive] = useState3(false);
783
+ const [particles, setParticles] = useState6([]);
784
+ const [isActive, setIsActive] = useState6(false);
356
785
  const triggerBurst = useCallback(() => {
357
786
  if (isActive) return;
358
787
  setIsActive(true);
@@ -379,17 +808,17 @@ function EmojiConfetti({ children, emoji }) {
379
808
  setIsActive(false);
380
809
  }, 1e3);
381
810
  }, [isActive]);
382
- return /* @__PURE__ */ jsxs4(
811
+ return /* @__PURE__ */ jsxs6(
383
812
  "span",
384
813
  {
385
814
  className: "relative inline-block",
386
815
  onMouseEnter: triggerBurst,
387
816
  children: [
388
817
  children,
389
- /* @__PURE__ */ jsx7("span", { className: "absolute inset-0 pointer-events-none overflow-visible", children: particles.map((p) => {
818
+ /* @__PURE__ */ jsx10("span", { className: "absolute inset-0 pointer-events-none overflow-visible", children: particles.map((p) => {
390
819
  const endX = p.x + Math.cos(p.angle) * p.velocity;
391
820
  const endY = p.y + Math.sin(p.angle) * p.velocity;
392
- return /* @__PURE__ */ jsx7(
821
+ return /* @__PURE__ */ jsx10(
393
822
  "span",
394
823
  {
395
824
  className: "absolute",
@@ -415,39 +844,39 @@ function EmojiConfetti({ children, emoji }) {
415
844
 
416
845
  // src/components/HomePage.tsx
417
846
  import { Head as Head2, Link as Link3 } from "@inertiajs/react";
418
- import { createContext as createContext2, useContext as useContext2, useState as useState4 } from "react";
419
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
420
- var HomePageContext = createContext2(null);
847
+ import { createContext as createContext3, useContext as useContext3, useState as useState7 } from "react";
848
+ import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
849
+ var HomePageContext = createContext3(null);
421
850
  function useHomePage() {
422
- const context = useContext2(HomePageContext);
851
+ const context = useContext3(HomePageContext);
423
852
  if (!context) {
424
853
  throw new Error("HomePage sub-components must be used within <HomePage>");
425
854
  }
426
855
  return context;
427
856
  }
428
857
  function InstallCommand({ command }) {
429
- const [copied, setCopied] = useState4(false);
858
+ const [copied, setCopied] = useState7(false);
430
859
  const copyToClipboard = async () => {
431
860
  await navigator.clipboard.writeText(command);
432
861
  setCopied(true);
433
862
  setTimeout(() => setCopied(false), 2e3);
434
863
  };
435
- return /* @__PURE__ */ jsxs5(
864
+ return /* @__PURE__ */ jsxs7(
436
865
  "button",
437
866
  {
438
867
  onClick: copyToClipboard,
439
- className: "group relative flex items-center bg-black border border-black px-4 h-14 font-mono text-sm text-white hover:bg-white hover:text-black transition-colors cursor-pointer",
868
+ className: "group relative flex items-center bg-gray-900 dark:bg-white border border-gray-900 dark:border-white px-4 h-14 font-mono text-sm text-white dark:text-gray-900 hover:bg-white dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-white transition-colors cursor-pointer",
440
869
  children: [
441
- /* @__PURE__ */ jsx8("span", { className: "text-primary-500 mr-2", children: "$" }),
442
- /* @__PURE__ */ jsx8("span", { children: command }),
443
- /* @__PURE__ */ jsx8(
870
+ /* @__PURE__ */ jsx11("span", { className: "text-primary-500 dark:text-primary-600 mr-2", children: "$" }),
871
+ /* @__PURE__ */ jsx11("span", { children: command }),
872
+ /* @__PURE__ */ jsx11(
444
873
  "svg",
445
874
  {
446
875
  className: `ml-4 w-4 h-4 transition ${copied ? "text-green-400" : "opacity-50 group-hover:opacity-100"}`,
447
876
  fill: "none",
448
877
  stroke: "currentColor",
449
878
  viewBox: "0 0 24 24",
450
- children: /* @__PURE__ */ jsx8(
879
+ children: /* @__PURE__ */ jsx11(
451
880
  "path",
452
881
  {
453
882
  strokeLinecap: "round",
@@ -458,10 +887,10 @@ function InstallCommand({ command }) {
458
887
  )
459
888
  }
460
889
  ),
461
- /* @__PURE__ */ jsx8(
890
+ /* @__PURE__ */ jsx11(
462
891
  "span",
463
892
  {
464
- className: `absolute -top-8 left-1/2 -translate-x-1/2 bg-black text-white text-xs py-1 px-2 rounded transition-opacity duration-300 whitespace-nowrap ${copied ? "opacity-100" : "opacity-0"}`,
893
+ className: `absolute -top-8 left-1/2 -translate-x-1/2 bg-gray-900 dark:bg-white text-white dark:text-gray-900 text-xs py-1 px-2 rounded transition-opacity duration-300 whitespace-nowrap ${copied ? "opacity-100" : "opacity-0"}`,
465
894
  children: "Copied!"
466
895
  }
467
896
  )
@@ -470,7 +899,7 @@ function InstallCommand({ command }) {
470
899
  );
471
900
  }
472
901
  function GitHubIcon2() {
473
- return /* @__PURE__ */ jsx8("svg", { className: "w-6 h-6", fill: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx8(
902
+ return /* @__PURE__ */ jsx11("svg", { className: "w-6 h-6", fill: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx11(
474
903
  "path",
475
904
  {
476
905
  fillRule: "evenodd",
@@ -482,32 +911,33 @@ function GitHubIcon2() {
482
911
  function DefaultLogo() {
483
912
  const { title, logoUrl } = useHomePage();
484
913
  if (logoUrl) {
485
- return /* @__PURE__ */ jsx8(Link3, { href: "/", className: "flex items-center", children: /* @__PURE__ */ jsx8("img", { src: logoUrl, alt: title, className: "h-8" }) });
914
+ return /* @__PURE__ */ jsx11(Link3, { href: "/", className: "flex items-center", children: /* @__PURE__ */ jsx11("img", { src: logoUrl, alt: title, className: "h-8" }) });
486
915
  }
487
- return /* @__PURE__ */ jsx8(Link3, { href: "/", className: "font-bold text-lg", children: title });
916
+ return /* @__PURE__ */ jsx11(Link3, { href: "/", className: "font-bold text-lg text-gray-900 dark:text-white", children: title });
488
917
  }
489
918
  function HomeHeader({ renderLogo } = {}) {
490
919
  const { navLinks, githubUrl } = useHomePage();
491
- return /* @__PURE__ */ jsx8("nav", { className: "fixed w-full z-50 bg-white border-b border-gray-200", children: /* @__PURE__ */ jsx8("div", { className: "px-4 lg:px-10", children: /* @__PURE__ */ jsxs5("div", { className: "flex justify-between h-16 items-center", children: [
492
- renderLogo ? renderLogo() : /* @__PURE__ */ jsx8(DefaultLogo, {}),
493
- /* @__PURE__ */ jsxs5("div", { className: "flex items-center space-x-8", children: [
494
- navLinks.map((link) => /* @__PURE__ */ jsx8(
920
+ return /* @__PURE__ */ jsx11("nav", { className: "fixed w-full z-50 bg-white/95 dark:bg-[#0f0f0f]/95 backdrop-blur-sm border-b border-gray-200 dark:border-gray-800 transition-colors", children: /* @__PURE__ */ jsx11("div", { className: "px-4 lg:px-10", children: /* @__PURE__ */ jsxs7("div", { className: "flex justify-between h-16 items-center", children: [
921
+ renderLogo ? renderLogo() : /* @__PURE__ */ jsx11(DefaultLogo, {}),
922
+ /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-6", children: [
923
+ /* @__PURE__ */ jsx11("div", { className: "-mr-2", children: /* @__PURE__ */ jsx11(ThemeToggle, { size: "sm" }) }),
924
+ navLinks.map((link) => /* @__PURE__ */ jsx11(
495
925
  Link3,
496
926
  {
497
927
  href: link.href,
498
- className: "text-black font-medium hover:text-primary-500 transition-colors",
928
+ className: "hidden sm:block text-gray-700 dark:text-gray-300 font-medium hover:text-primary-600 dark:hover:text-primary-400 transition-colors",
499
929
  children: link.label
500
930
  },
501
931
  link.href
502
932
  )),
503
- githubUrl && /* @__PURE__ */ jsx8(
933
+ githubUrl && /* @__PURE__ */ jsx11(
504
934
  "a",
505
935
  {
506
936
  href: githubUrl,
507
937
  target: "_blank",
508
938
  rel: "noopener noreferrer",
509
- className: "text-black hover:text-primary-500 transition-colors",
510
- children: /* @__PURE__ */ jsx8(GitHubIcon2, {})
939
+ className: "text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",
940
+ children: /* @__PURE__ */ jsx11(GitHubIcon2, {})
511
941
  }
512
942
  )
513
943
  ] })
@@ -515,39 +945,39 @@ function HomeHeader({ renderLogo } = {}) {
515
945
  }
516
946
  function HomeHero() {
517
947
  const { title, tagline, description, ctaText, ctaHref, installCommand, heroLogoUrl } = useHomePage();
518
- return /* @__PURE__ */ jsx8("section", { className: "pt-16", children: /* @__PURE__ */ jsx8("div", { className: "px-4 lg:px-10 py-16 lg:py-24", children: /* @__PURE__ */ jsxs5("div", { className: "max-w-4xl", children: [
519
- /* @__PURE__ */ jsx8("div", { className: "mb-4 text-sm font-mono uppercase tracking-widest text-gray-500", children: tagline }),
520
- heroLogoUrl ? /* @__PURE__ */ jsx8("h1", { className: "mb-6 lg:mb-8", children: /* @__PURE__ */ jsx8(
948
+ return /* @__PURE__ */ jsx11("section", { className: "pt-16", children: /* @__PURE__ */ jsx11("div", { className: "px-4 lg:px-10 py-16 lg:py-24", children: /* @__PURE__ */ jsxs7("div", { className: "max-w-4xl", children: [
949
+ /* @__PURE__ */ jsx11("div", { className: "mb-4 text-sm font-mono uppercase tracking-widest text-gray-500 dark:text-gray-400", children: tagline }),
950
+ heroLogoUrl ? /* @__PURE__ */ jsx11("h1", { className: "mb-6 lg:mb-8", children: /* @__PURE__ */ jsx11(
521
951
  "img",
522
952
  {
523
953
  src: heroLogoUrl,
524
954
  alt: title,
525
955
  className: "h-auto w-auto max-w-[580px]"
526
956
  }
527
- ) }) : /* @__PURE__ */ jsx8("h1", { className: "text-5xl lg:text-7xl font-bold tracking-tight mb-6", children: title }),
528
- /* @__PURE__ */ jsx8("p", { className: "text-xl lg:text-2xl text-gray-700 max-w-2xl leading-relaxed mb-8", children: description }),
529
- /* @__PURE__ */ jsxs5("div", { className: "flex flex-col sm:flex-row gap-3", children: [
530
- /* @__PURE__ */ jsx8(
957
+ ) }) : /* @__PURE__ */ jsx11("h1", { className: "text-5xl lg:text-7xl font-bold tracking-tight mb-6 text-gray-900 dark:text-white", children: title }),
958
+ /* @__PURE__ */ jsx11("p", { className: "text-xl lg:text-2xl text-gray-600 dark:text-gray-300 max-w-2xl leading-relaxed mb-8", children: description }),
959
+ /* @__PURE__ */ jsxs7("div", { className: "flex flex-col sm:flex-row gap-3", children: [
960
+ /* @__PURE__ */ jsx11(
531
961
  Link3,
532
962
  {
533
963
  href: ctaHref,
534
- className: "inline-flex items-center justify-center px-8 h-14 bg-black text-white font-bold text-lg hover:bg-primary-500 transition-colors border border-black",
964
+ className: "inline-flex items-center justify-center px-8 h-14 bg-gray-900 dark:bg-white text-white dark:text-gray-900 font-bold text-lg hover:bg-primary-500 dark:hover:bg-primary-500 dark:hover:text-white transition-colors border border-gray-900 dark:border-white hover:border-primary-500 dark:hover:border-primary-500",
535
965
  children: ctaText
536
966
  }
537
967
  ),
538
- installCommand && /* @__PURE__ */ jsx8(InstallCommand, { command: installCommand })
968
+ installCommand && /* @__PURE__ */ jsx11(InstallCommand, { command: installCommand })
539
969
  ] })
540
970
  ] }) }) });
541
971
  }
542
972
  function HomeFeatureItem({ feature, index, totalFeatures }) {
543
- return /* @__PURE__ */ jsxs5(
973
+ return /* @__PURE__ */ jsxs7(
544
974
  "div",
545
975
  {
546
- className: `p-4 lg:p-10 border-b sm:border-b border-gray-200 ${index % 2 === 0 ? "sm:border-r" : ""} ${index >= totalFeatures - 2 ? "sm:border-b-0" : ""} ${index === totalFeatures - 1 && totalFeatures % 2 === 1 ? "border-b-0" : ""}`,
976
+ className: `p-4 lg:p-10 border-b sm:border-b border-gray-200 dark:border-gray-800 ${index % 2 === 0 ? "sm:border-r" : ""} ${index >= totalFeatures - 2 ? "sm:border-b-0" : ""} ${index === totalFeatures - 1 && totalFeatures % 2 === 1 ? "border-b-0" : ""} transition-colors`,
547
977
  children: [
548
- /* @__PURE__ */ jsx8("div", { className: "text-5xl font-bold text-primary-500 mb-4", children: String(index + 1).padStart(2, "0") }),
549
- /* @__PURE__ */ jsx8("h3", { className: "text-xl font-bold mb-2", children: feature.title }),
550
- /* @__PURE__ */ jsx8("p", { className: "text-gray-600", children: feature.description })
978
+ /* @__PURE__ */ jsx11("div", { className: "text-5xl font-bold text-primary-500 dark:text-primary-400 mb-4", children: String(index + 1).padStart(2, "0") }),
979
+ /* @__PURE__ */ jsx11("h3", { className: "text-xl font-bold mb-2 text-gray-900 dark:text-white", children: feature.title }),
980
+ /* @__PURE__ */ jsx11("p", { className: "text-gray-600 dark:text-gray-300", children: feature.description })
551
981
  ]
552
982
  }
553
983
  );
@@ -557,17 +987,17 @@ function HomeFeatures({ renderFeature } = {}) {
557
987
  if (features.length === 0) {
558
988
  return null;
559
989
  }
560
- return /* @__PURE__ */ jsx8("section", { className: "border-t border-gray-200", children: /* @__PURE__ */ jsxs5("div", { className: "grid grid-cols-12", children: [
561
- /* @__PURE__ */ jsxs5("div", { className: "col-span-12 lg:col-span-4 p-4 lg:p-10 border-b lg:border-b-0 lg:border-r border-gray-200", children: [
562
- /* @__PURE__ */ jsx8("div", { className: "text-sm font-mono uppercase tracking-widest text-gray-500 mb-4", children: "Features" }),
563
- /* @__PURE__ */ jsxs5("h2", { className: "text-4xl lg:text-5xl font-bold tracking-tight", children: [
990
+ return /* @__PURE__ */ jsx11("section", { className: "border-t border-gray-200 dark:border-gray-800 transition-colors", children: /* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-12", children: [
991
+ /* @__PURE__ */ jsxs7("div", { className: "col-span-12 lg:col-span-4 p-4 lg:p-10 border-b lg:border-b-0 lg:border-r border-gray-200 dark:border-gray-800 transition-colors", children: [
992
+ /* @__PURE__ */ jsx11("div", { className: "text-sm font-mono uppercase tracking-widest text-gray-500 dark:text-gray-400 mb-4", children: "Features" }),
993
+ /* @__PURE__ */ jsxs7("h2", { className: "text-4xl lg:text-5xl font-bold tracking-tight text-gray-900 dark:text-white", children: [
564
994
  "Why ",
565
995
  title,
566
996
  "?"
567
997
  ] })
568
998
  ] }),
569
- /* @__PURE__ */ jsx8("div", { className: "col-span-12 lg:col-span-8 grid grid-cols-1 sm:grid-cols-2", children: features.map(
570
- (feature, index) => renderFeature ? /* @__PURE__ */ jsx8("div", { children: renderFeature(feature, index, HomeFeatureItem) }, index) : /* @__PURE__ */ jsx8(
999
+ /* @__PURE__ */ jsx11("div", { className: "col-span-12 lg:col-span-8 grid grid-cols-1 sm:grid-cols-2", children: features.map(
1000
+ (feature, index) => renderFeature ? /* @__PURE__ */ jsx11("div", { children: renderFeature(feature, index, HomeFeatureItem) }, index) : /* @__PURE__ */ jsx11(
571
1001
  HomeFeatureItem,
572
1002
  {
573
1003
  feature,
@@ -581,42 +1011,44 @@ function HomeFeatures({ renderFeature } = {}) {
581
1011
  }
582
1012
  function HomeCTA() {
583
1013
  const { ctaHref } = useHomePage();
584
- return /* @__PURE__ */ jsx8("section", { className: "border-t border-gray-200", children: /* @__PURE__ */ jsxs5("div", { className: "grid grid-cols-12 items-center", children: [
585
- /* @__PURE__ */ jsxs5("div", { className: "col-span-12 lg:col-span-8 p-4 lg:p-10", children: [
586
- /* @__PURE__ */ jsx8("h2", { className: "text-4xl lg:text-6xl font-bold tracking-tight mb-4", children: "Ready to start?" }),
587
- /* @__PURE__ */ jsx8("p", { className: "text-xl text-gray-600 mb-8 max-w-2xl", children: "Get up and running in minutes. Check out our documentation to learn more." }),
588
- /* @__PURE__ */ jsx8(
1014
+ return /* @__PURE__ */ jsx11("section", { className: "border-t border-gray-200 dark:border-gray-800 transition-colors", children: /* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-12 items-center", children: [
1015
+ /* @__PURE__ */ jsxs7("div", { className: "col-span-12 lg:col-span-8 p-4 lg:p-10", children: [
1016
+ /* @__PURE__ */ jsx11("h2", { className: "text-4xl lg:text-6xl font-bold tracking-tight mb-4 text-gray-900 dark:text-white", children: "Ready to start?" }),
1017
+ /* @__PURE__ */ jsx11("p", { className: "text-xl text-gray-600 dark:text-gray-300 mb-8 max-w-2xl", children: "Get up and running in minutes. Check out our documentation to learn more." }),
1018
+ /* @__PURE__ */ jsx11(
589
1019
  Link3,
590
1020
  {
591
1021
  href: ctaHref,
592
- className: "inline-flex items-center justify-center px-8 py-4 bg-primary-500 text-white font-bold text-lg hover:bg-black transition-colors border border-primary-500 hover:border-black",
1022
+ className: "inline-flex items-center justify-center px-8 py-4 bg-primary-500 text-white font-bold text-lg hover:bg-gray-900 dark:hover:bg-white dark:hover:text-gray-900 transition-colors border border-primary-500 hover:border-gray-900 dark:hover:border-white",
593
1023
  children: "Read the Docs"
594
1024
  }
595
1025
  )
596
1026
  ] }),
597
- /* @__PURE__ */ jsx8(
1027
+ /* @__PURE__ */ jsx11(
598
1028
  Link3,
599
1029
  {
600
1030
  href: ctaHref,
601
- className: "col-span-12 lg:col-span-4 h-full bg-primary-500 hidden lg:flex items-center justify-center p-4 lg:p-10 hover:bg-black transition-colors min-h-[200px]",
602
- children: /* @__PURE__ */ jsx8("div", { className: "text-white text-8xl font-bold", children: "\u2192" })
1031
+ className: "col-span-12 lg:col-span-4 h-full bg-primary-500 hidden lg:flex items-center justify-center p-4 lg:p-10 hover:bg-gray-900 dark:hover:bg-white transition-colors min-h-[200px] group",
1032
+ children: /* @__PURE__ */ jsx11("div", { className: "text-white group-hover:text-white dark:group-hover:text-gray-900 text-8xl font-bold transition-colors", children: "\u2192" })
603
1033
  }
604
1034
  )
605
1035
  ] }) });
606
1036
  }
607
1037
  function HomeFooter() {
608
- const { title, logoUrl, footerLogoUrl, navLinks, githubUrl } = useHomePage();
609
- return /* @__PURE__ */ jsx8("footer", { className: "border-t border-gray-200 py-8", children: /* @__PURE__ */ jsxs5("div", { className: "px-4 lg:px-10 flex flex-col md:flex-row justify-between items-center gap-6", children: [
610
- (footerLogoUrl || logoUrl) && /* @__PURE__ */ jsx8(Link3, { href: "/", children: /* @__PURE__ */ jsx8("img", { src: footerLogoUrl || logoUrl, alt: title, className: "h-6" }) }),
611
- /* @__PURE__ */ jsxs5("div", { className: "flex gap-8 text-sm text-gray-600", children: [
612
- navLinks.map((link) => /* @__PURE__ */ jsx8(Link3, { href: link.href, className: "hover:text-black transition-colors", children: link.label }, link.href)),
613
- githubUrl && /* @__PURE__ */ jsx8(
1038
+ const { title, logoUrl, footerLogoUrl, footerLogoInvertedUrl, navLinks, githubUrl } = useHomePage();
1039
+ const { resolvedTheme } = useTheme();
1040
+ const currentLogoUrl = resolvedTheme === "dark" ? footerLogoInvertedUrl || footerLogoUrl || logoUrl : footerLogoUrl || logoUrl;
1041
+ return /* @__PURE__ */ jsx11("footer", { className: "border-t border-gray-200 dark:border-gray-800 py-8 bg-white dark:bg-[#0f0f0f] transition-colors", children: /* @__PURE__ */ jsxs7("div", { className: "px-4 lg:px-10 flex flex-col md:flex-row justify-between items-center gap-6", children: [
1042
+ currentLogoUrl && /* @__PURE__ */ jsx11(Link3, { href: "/", children: /* @__PURE__ */ jsx11("img", { src: currentLogoUrl, alt: title, className: "h-6" }) }),
1043
+ /* @__PURE__ */ jsxs7("div", { className: "flex gap-8 text-sm text-gray-600 dark:text-gray-300", children: [
1044
+ navLinks.map((link) => /* @__PURE__ */ jsx11(Link3, { href: link.href, className: "hover:text-black dark:hover:text-white transition-colors", children: link.label }, link.href)),
1045
+ githubUrl && /* @__PURE__ */ jsx11(
614
1046
  "a",
615
1047
  {
616
1048
  href: githubUrl,
617
1049
  target: "_blank",
618
1050
  rel: "noopener noreferrer",
619
- className: "hover:text-black transition-colors",
1051
+ className: "hover:text-black dark:hover:text-white transition-colors",
620
1052
  children: "GitHub"
621
1053
  }
622
1054
  )
@@ -624,22 +1056,32 @@ function HomeFooter() {
624
1056
  ] }) });
625
1057
  }
626
1058
  function HomeSpacer() {
627
- return /* @__PURE__ */ jsx8(
1059
+ return /* @__PURE__ */ jsx11(
628
1060
  "div",
629
1061
  {
630
- className: "grow",
1062
+ className: "grow dark:hidden",
631
1063
  style: { backgroundImage: "linear-gradient(rgb(229, 231, 235) 1px, transparent 1px)" }
632
1064
  }
633
1065
  );
634
1066
  }
1067
+ function HomeSpacerDark() {
1068
+ return /* @__PURE__ */ jsx11(
1069
+ "div",
1070
+ {
1071
+ className: "grow hidden dark:block",
1072
+ style: { backgroundImage: "linear-gradient(rgb(38, 38, 38) 1px, transparent 1px)" }
1073
+ }
1074
+ );
1075
+ }
635
1076
  function DefaultHomeLayout() {
636
- return /* @__PURE__ */ jsxs5(Fragment2, { children: [
637
- /* @__PURE__ */ jsx8(HomeHeader, {}),
638
- /* @__PURE__ */ jsx8(HomeHero, {}),
639
- /* @__PURE__ */ jsx8(HomeFeatures, {}),
640
- /* @__PURE__ */ jsx8(HomeCTA, {}),
641
- /* @__PURE__ */ jsx8(HomeSpacer, {}),
642
- /* @__PURE__ */ jsx8(HomeFooter, {})
1077
+ return /* @__PURE__ */ jsxs7(Fragment2, { children: [
1078
+ /* @__PURE__ */ jsx11(HomeHeader, {}),
1079
+ /* @__PURE__ */ jsx11(HomeHero, {}),
1080
+ /* @__PURE__ */ jsx11(HomeFeatures, {}),
1081
+ /* @__PURE__ */ jsx11(HomeCTA, {}),
1082
+ /* @__PURE__ */ jsx11(HomeSpacer, {}),
1083
+ /* @__PURE__ */ jsx11(HomeSpacerDark, {}),
1084
+ /* @__PURE__ */ jsx11(HomeFooter, {})
643
1085
  ] });
644
1086
  }
645
1087
  function HomePage({
@@ -651,9 +1093,9 @@ function HomePage({
651
1093
  ...props,
652
1094
  navLinks
653
1095
  };
654
- return /* @__PURE__ */ jsx8(HomePageContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs5("div", { className: "min-h-screen bg-white flex flex-col", children: [
655
- /* @__PURE__ */ jsx8(Head2, { title: props.title }),
656
- children || /* @__PURE__ */ jsx8(DefaultHomeLayout, {})
1096
+ return /* @__PURE__ */ jsx11(HomePageContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs7("div", { className: "min-h-screen bg-white dark:bg-[#0f0f0f] flex flex-col transition-colors duration-200", children: [
1097
+ /* @__PURE__ */ jsx11(Head2, { title: props.title }),
1098
+ children || /* @__PURE__ */ jsx11(DefaultHomeLayout, {})
657
1099
  ] }) });
658
1100
  }
659
1101
  HomePage.Header = HomeHeader;
@@ -666,7 +1108,7 @@ HomePage.Footer = HomeFooter;
666
1108
  // src/app.tsx
667
1109
  import { createInertiaApp } from "@inertiajs/react";
668
1110
  import { createRoot, hydrateRoot } from "react-dom/client";
669
- import { jsx as jsx9 } from "react/jsx-runtime";
1111
+ import { jsx as jsx12 } from "react/jsx-runtime";
670
1112
  function createDocsApp(config) {
671
1113
  const { pages, title, components } = config;
672
1114
  if (typeof window !== "undefined") {
@@ -683,7 +1125,7 @@ function createDocsApp(config) {
683
1125
  return page;
684
1126
  },
685
1127
  setup({ el, App, props }) {
686
- const appElement = /* @__PURE__ */ jsx9(ComponentsProvider, { components, children: /* @__PURE__ */ jsx9(App, { ...props }) });
1128
+ const appElement = /* @__PURE__ */ jsx12(ThemeProvider, { children: /* @__PURE__ */ jsx12(ComponentsProvider, { components, children: /* @__PURE__ */ jsx12(App, { ...props }) }) });
687
1129
  if (el.hasChildNodes()) {
688
1130
  hydrateRoot(el, appElement);
689
1131
  } else {
@@ -694,6 +1136,7 @@ function createDocsApp(config) {
694
1136
  }
695
1137
  export {
696
1138
  CodeBlock,
1139
+ DocSetSelector,
697
1140
  DocsLayout,
698
1141
  DocsPage,
699
1142
  EmojiConfetti,
@@ -707,9 +1150,13 @@ export {
707
1150
  InlineCode,
708
1151
  Markdown,
709
1152
  Sidebar,
1153
+ ThemeProvider,
1154
+ ThemeToggle,
710
1155
  cn,
711
1156
  configureHighlighter,
712
1157
  createDocsApp,
713
- getHighlighter
1158
+ getHighlighter,
1159
+ themeInitScript,
1160
+ useTheme
714
1161
  };
715
1162
  //# sourceMappingURL=index.js.map