@geenius/docs 0.9.0 → 0.11.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/CHANGELOG.md +12 -0
- package/package.json +7 -7
- package/packages/react/dist/index.js +201 -148
- package/packages/react/dist/index.js.map +1 -1
- package/packages/react-css/dist/index.css +30 -18
- package/packages/react-css/dist/index.css.map +1 -1
- package/packages/shared/dist/index.d.ts +49 -4
- package/packages/shared/dist/index.js +51 -5
- package/packages/shared/dist/index.js.map +1 -1
- package/packages/solidjs/dist/index.js +190 -143
- package/packages/solidjs/dist/index.js.map +1 -1
- package/packages/solidjs-css/dist/index.css +30 -18
- package/packages/solidjs-css/dist/index.css.map +1 -1
|
@@ -20,17 +20,17 @@ function Breadcrumbs({
|
|
|
20
20
|
"svg",
|
|
21
21
|
{
|
|
22
22
|
"aria-hidden": "true",
|
|
23
|
-
className: "h-3.5 w-3.5 shrink-0 text-
|
|
23
|
+
className: "h-3.5 w-3.5 shrink-0 text-foreground/20",
|
|
24
24
|
viewBox: "0 0 16 16",
|
|
25
25
|
fill: "none",
|
|
26
26
|
children: /* @__PURE__ */ jsx("path", { d: "M6 4l4 4-4 4", stroke: "currentColor", strokeWidth: "1.5" })
|
|
27
27
|
}
|
|
28
28
|
),
|
|
29
|
-
idx === items.length - 1 ? /* @__PURE__ */ jsx("span", { className: "truncate text-
|
|
29
|
+
idx === items.length - 1 ? /* @__PURE__ */ jsx("span", { className: "truncate text-foreground/60", children: item.title }) : /* @__PURE__ */ jsx(
|
|
30
30
|
"a",
|
|
31
31
|
{
|
|
32
32
|
href: item.href,
|
|
33
|
-
className: "truncate text-
|
|
33
|
+
className: "truncate text-foreground/40 transition-colors hover:text-foreground/70",
|
|
34
34
|
children: item.title
|
|
35
35
|
}
|
|
36
36
|
)
|
|
@@ -206,11 +206,11 @@ function DocPage(props) {
|
|
|
206
206
|
h1: createHeading("h1", "mb-4 mt-8 text-3xl font-bold"),
|
|
207
207
|
h2: createHeading(
|
|
208
208
|
"h2",
|
|
209
|
-
"mb-3 mt-8 border-b border-
|
|
209
|
+
"mb-3 mt-8 border-b border-border/60 pb-2 text-2xl font-bold"
|
|
210
210
|
),
|
|
211
211
|
h3: createHeading("h3", "mb-2 mt-6 text-xl font-semibold"),
|
|
212
212
|
h4: createHeading("h4", "mb-2 mt-4 text-lg font-medium"),
|
|
213
|
-
p: ({ children }) => /* @__PURE__ */ jsx("p", { className: "my-3 leading-relaxed text-
|
|
213
|
+
p: ({ children }) => /* @__PURE__ */ jsx("p", { className: "my-3 leading-relaxed text-foreground/80", children }),
|
|
214
214
|
a: ({ href, children }) => /* @__PURE__ */ jsx(
|
|
215
215
|
"a",
|
|
216
216
|
{
|
|
@@ -221,12 +221,12 @@ function DocPage(props) {
|
|
|
221
221
|
children
|
|
222
222
|
}
|
|
223
223
|
),
|
|
224
|
-
code: ({ className, children }) => className ? /* @__PURE__ */ jsx("code", { className, children }) : /* @__PURE__ */ jsx("code", { className: "rounded bg-
|
|
225
|
-
pre: ({ children }) => /* @__PURE__ */ jsx("pre", { className: "my-4 overflow-x-auto rounded-lg bg-
|
|
226
|
-
blockquote: ({ children }) => /* @__PURE__ */ jsx("blockquote", { className: "my-4 rounded-r-lg border-l-4 border-primary/40 bg-
|
|
227
|
-
table: ({ children }) => /* @__PURE__ */ jsx("div", { className: "my-4 overflow-x-auto rounded-lg border border-
|
|
228
|
-
th: ({ children }) => /* @__PURE__ */ jsx("th", { className: "border-b border-
|
|
229
|
-
td: ({ children }) => /* @__PURE__ */ jsx("td", { className: "border-b border-
|
|
224
|
+
code: ({ className, children }) => className ? /* @__PURE__ */ jsx("code", { className, children }) : /* @__PURE__ */ jsx("code", { className: "rounded bg-foreground/10 px-1.5 py-0.5 text-sm text-primary", children }),
|
|
225
|
+
pre: ({ children }) => /* @__PURE__ */ jsx("pre", { className: "my-4 overflow-x-auto rounded-lg bg-background/80 p-4 text-sm leading-relaxed", children }),
|
|
226
|
+
blockquote: ({ children }) => /* @__PURE__ */ jsx("blockquote", { className: "my-4 rounded-r-lg border-l-4 border-primary/40 bg-foreground/5 py-3 pl-4 pr-4 italic text-foreground/70", children }),
|
|
227
|
+
table: ({ children }) => /* @__PURE__ */ jsx("div", { className: "my-4 overflow-x-auto rounded-lg border border-border/60", children: /* @__PURE__ */ jsx("table", { className: "w-full text-sm", children }) }),
|
|
228
|
+
th: ({ children }) => /* @__PURE__ */ jsx("th", { className: "border-b border-border/60 bg-foreground/5 px-4 py-2.5 text-left font-semibold", children }),
|
|
229
|
+
td: ({ children }) => /* @__PURE__ */ jsx("td", { className: "border-b border-border/40 px-4 py-2 text-foreground/70 last:border-none", children })
|
|
230
230
|
},
|
|
231
231
|
children: props.page.content
|
|
232
232
|
}
|
|
@@ -313,7 +313,7 @@ function DocSearch({
|
|
|
313
313
|
initial: { opacity: 0 },
|
|
314
314
|
animate: { opacity: 1 },
|
|
315
315
|
exit: { opacity: 0 },
|
|
316
|
-
className: "fixed inset-0 bg-
|
|
316
|
+
className: "fixed inset-0 bg-background/80 backdrop-blur-md",
|
|
317
317
|
onClick: onClose
|
|
318
318
|
}
|
|
319
319
|
),
|
|
@@ -325,16 +325,16 @@ function DocSearch({
|
|
|
325
325
|
animate: { opacity: 1, scale: 1, y: 0 },
|
|
326
326
|
exit: { opacity: 0, scale: 0.95, y: -20 },
|
|
327
327
|
transition: { type: "spring", damping: 25, stiffness: 250 },
|
|
328
|
-
className: "relative z-10 w-full max-w-xl overflow-hidden rounded-2xl border border-
|
|
328
|
+
className: "relative z-10 w-full max-w-xl overflow-hidden rounded-2xl border border-border/60 bg-card/40 backdrop-blur-3xl shadow-2xl ring-1 ring-border/40",
|
|
329
329
|
role: "dialog",
|
|
330
330
|
"aria-modal": "true",
|
|
331
331
|
"aria-labelledby": `${dialogId}-title`,
|
|
332
332
|
onKeyDown: handleKeyDown,
|
|
333
333
|
onClick: (e) => e.stopPropagation(),
|
|
334
334
|
children: [
|
|
335
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-b border-
|
|
335
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-b border-border/60 px-5 py-4 bg-foreground/5", children: [
|
|
336
336
|
/* @__PURE__ */ jsx("h2", { id: `${dialogId}-title`, className: "sr-only", children: "Search documentation" }),
|
|
337
|
-
/* @__PURE__ */ jsx("svg", { "aria-hidden": "true", className: "h-5 w-5 shrink-0 text-
|
|
337
|
+
/* @__PURE__ */ jsx("svg", { "aria-hidden": "true", className: "h-5 w-5 shrink-0 text-foreground/40", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z", clipRule: "evenodd" }) }),
|
|
338
338
|
/* @__PURE__ */ jsx(
|
|
339
339
|
"input",
|
|
340
340
|
{
|
|
@@ -346,10 +346,10 @@ function DocSearch({
|
|
|
346
346
|
"aria-label": "Search documentation",
|
|
347
347
|
"aria-controls": `${dialogId}-results`,
|
|
348
348
|
"aria-activedescendant": activeResultId,
|
|
349
|
-
className: "flex-1 bg-transparent text-sm text-
|
|
349
|
+
className: "flex-1 bg-transparent text-sm text-foreground placeholder:text-muted-foreground outline-none focus-visible:ring-0"
|
|
350
350
|
}
|
|
351
351
|
),
|
|
352
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-
|
|
352
|
+
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-border/60 bg-foreground/5 px-1.5 py-0.5 text-[11px] text-foreground/30 font-medium", children: "ESC" })
|
|
353
353
|
] }),
|
|
354
354
|
/* @__PURE__ */ jsxs(
|
|
355
355
|
"div",
|
|
@@ -365,7 +365,7 @@ function DocSearch({
|
|
|
365
365
|
initial: { opacity: 0 },
|
|
366
366
|
animate: { opacity: 1 },
|
|
367
367
|
exit: { opacity: 0 },
|
|
368
|
-
className: "flex flex-col items-center py-10 text-center text-
|
|
368
|
+
className: "flex flex-col items-center py-10 text-center text-foreground/30",
|
|
369
369
|
children: [
|
|
370
370
|
/* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", className: "mb-3 h-10 w-10 opacity-50", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: [
|
|
371
371
|
/* @__PURE__ */ jsx("circle", { cx: "11", cy: "11", r: "8", strokeWidth: "1.5" }),
|
|
@@ -386,7 +386,7 @@ function DocSearch({
|
|
|
386
386
|
initial: { opacity: 0 },
|
|
387
387
|
animate: { opacity: 1 },
|
|
388
388
|
exit: { opacity: 0 },
|
|
389
|
-
className: "py-8 text-center text-sm text-
|
|
389
|
+
className: "py-8 text-center text-sm text-foreground/30",
|
|
390
390
|
children: "Start typing to search\u2026"
|
|
391
391
|
}
|
|
392
392
|
)
|
|
@@ -403,7 +403,10 @@ function DocSearch({
|
|
|
403
403
|
"aria-selected": idx === activeIndex,
|
|
404
404
|
onMouseEnter: () => setActiveIndex(idx),
|
|
405
405
|
onClick: () => onSelect(result),
|
|
406
|
-
className:
|
|
406
|
+
className: cn(
|
|
407
|
+
"group relative my-0.5 flex w-full flex-col gap-1 rounded-xl px-4 py-3 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",
|
|
408
|
+
idx === activeIndex ? "bg-primary/15 text-foreground ring-1 ring-primary/30" : "text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
409
|
+
),
|
|
407
410
|
children: [
|
|
408
411
|
idx === activeIndex && /* @__PURE__ */ jsx(
|
|
409
412
|
motion.div,
|
|
@@ -417,8 +420,8 @@ function DocSearch({
|
|
|
417
420
|
/* @__PURE__ */ jsx("span", { className: "rounded bg-primary/20 px-1.5 py-0.5 text-[10px] font-medium text-primary", children: result.sectionTitle }),
|
|
418
421
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: result.pageTitle })
|
|
419
422
|
] }),
|
|
420
|
-
/* @__PURE__ */ jsx("p", { className: "relative z-10 truncate text-xs text-
|
|
421
|
-
result.tags.length > 0 && /* @__PURE__ */ jsx("div", { className: "relative z-10 flex gap-1 mt-1", children: result.tags.slice(0, 3).map((tag) => /* @__PURE__ */ jsx("span", { className: "rounded bg-
|
|
423
|
+
/* @__PURE__ */ jsx("p", { className: "relative z-10 truncate text-xs text-foreground/40", children: highlightMatch(result.highlight, query) }),
|
|
424
|
+
result.tags.length > 0 && /* @__PURE__ */ jsx("div", { className: "relative z-10 flex gap-1 mt-1", children: result.tags.slice(0, 3).map((tag) => /* @__PURE__ */ jsx("span", { className: "rounded bg-foreground/5 px-1.5 py-0.5 text-[10px] text-foreground/30 border border-border/40", children: tag }, tag)) })
|
|
422
425
|
]
|
|
423
426
|
},
|
|
424
427
|
result.pageId
|
|
@@ -426,19 +429,19 @@ function DocSearch({
|
|
|
426
429
|
]
|
|
427
430
|
}
|
|
428
431
|
),
|
|
429
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 border-t border-
|
|
432
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 border-t border-border/60 px-5 py-2.5 text-[11px] text-foreground/30 bg-background/70", children: [
|
|
430
433
|
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
431
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-
|
|
434
|
+
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-border/60 bg-foreground/5 px-1 pb-0.5 text-[10px]", children: "\u2191" }),
|
|
432
435
|
" ",
|
|
433
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-
|
|
436
|
+
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-border/60 bg-foreground/5 px-1 pb-0.5 text-[10px]", children: "\u2193" }),
|
|
434
437
|
" navigate"
|
|
435
438
|
] }),
|
|
436
439
|
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
437
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-
|
|
440
|
+
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-border/60 bg-foreground/5 px-1 pb-0.5 text-[10px]", children: "\u21B5" }),
|
|
438
441
|
" select"
|
|
439
442
|
] }),
|
|
440
443
|
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
441
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-
|
|
444
|
+
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-border/60 bg-foreground/5 px-1 pb-0.5 text-[10px]", children: "esc" }),
|
|
442
445
|
" close"
|
|
443
446
|
] })
|
|
444
447
|
] })
|
|
@@ -475,7 +478,11 @@ function DocSidebar({
|
|
|
475
478
|
{
|
|
476
479
|
type: "button",
|
|
477
480
|
onClick: () => toggle(section.id),
|
|
478
|
-
|
|
481
|
+
"aria-expanded": hasContent ? isExpanded : void 0,
|
|
482
|
+
className: cn(
|
|
483
|
+
"flex w-full items-center gap-2 rounded-xl px-3 py-2 text-left text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",
|
|
484
|
+
isExpanded ? "bg-muted text-foreground" : "text-foreground hover:bg-muted/70"
|
|
485
|
+
),
|
|
479
486
|
whileHover: { x: 2 },
|
|
480
487
|
whileTap: { scale: 0.98 },
|
|
481
488
|
children: [
|
|
@@ -511,7 +518,10 @@ function DocSidebar({
|
|
|
511
518
|
onClick: () => onNavigate(page, section),
|
|
512
519
|
whileHover: { x: 2 },
|
|
513
520
|
whileTap: { scale: 0.98 },
|
|
514
|
-
className:
|
|
521
|
+
className: cn(
|
|
522
|
+
"my-0.5 flex w-full items-center gap-2 rounded-lg px-3 py-1.5 text-left text-sm transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",
|
|
523
|
+
currentPageId === page.id ? "bg-primary/10 font-semibold text-primary ring-1 ring-primary/20" : "text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
524
|
+
),
|
|
515
525
|
children: /* @__PURE__ */ jsx("span", { className: "truncate", children: page.title })
|
|
516
526
|
},
|
|
517
527
|
page.id
|
|
@@ -536,7 +546,7 @@ function TocLink({ item, activeId, depth = 0 }) {
|
|
|
536
546
|
href: `#${item.id}`,
|
|
537
547
|
className: cn(
|
|
538
548
|
"block truncate border-l-2 py-1 text-[13px] transition-all relative",
|
|
539
|
-
isActive ? "border-primary text-primary font-medium" : "border-transparent text-
|
|
549
|
+
isActive ? "border-primary text-primary font-medium" : "border-transparent text-foreground/40 hover:text-foreground/80 hover:border-border/80"
|
|
540
550
|
),
|
|
541
551
|
style: { paddingLeft: 12 + depth * 12 },
|
|
542
552
|
whileHover: { x: 2 },
|
|
@@ -555,7 +565,7 @@ function TableOfContents({
|
|
|
555
565
|
}) {
|
|
556
566
|
if (toc.length === 0) return null;
|
|
557
567
|
return /* @__PURE__ */ jsxs("nav", { className: cn("sticky top-24", className), children: [
|
|
558
|
-
/* @__PURE__ */ jsx("h4", { className: "mb-3 text-xs font-semibold uppercase tracking-widest text-
|
|
568
|
+
/* @__PURE__ */ jsx("h4", { className: "mb-3 text-xs font-semibold uppercase tracking-widest text-foreground/40", children: "On this page" }),
|
|
559
569
|
/* @__PURE__ */ jsx(motion.div, { className: "flex flex-col relative", layoutRoot: true, children: /* @__PURE__ */ jsx(AnimatePresence, { children: toc.map((item) => /* @__PURE__ */ jsx(motion.div, { initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, children: /* @__PURE__ */ jsx(TocLink, { item, activeId }) }, item.id)) }) })
|
|
560
570
|
] });
|
|
561
571
|
}
|
|
@@ -569,8 +579,8 @@ function DocsLayout({
|
|
|
569
579
|
children,
|
|
570
580
|
className
|
|
571
581
|
}) {
|
|
572
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-screen bg-
|
|
573
|
-
/* @__PURE__ */ jsx("aside", { className: "sticky top-0 hidden h-screen w-[260px] shrink-0 overflow-y-auto border-r border-
|
|
582
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-screen bg-background text-foreground", className), children: [
|
|
583
|
+
/* @__PURE__ */ jsx("aside", { className: "sticky top-0 hidden h-screen w-[260px] shrink-0 overflow-y-auto border-r border-border bg-card lg:block", children: /* @__PURE__ */ jsx(
|
|
574
584
|
DocSidebar,
|
|
575
585
|
{
|
|
576
586
|
sections,
|
|
@@ -629,7 +639,7 @@ function EditButton({
|
|
|
629
639
|
target: "_blank",
|
|
630
640
|
rel: "noopener noreferrer",
|
|
631
641
|
className: cn(
|
|
632
|
-
"inline-flex items-center gap-1.5 rounded-lg border border-
|
|
642
|
+
"inline-flex items-center gap-1.5 rounded-lg border border-border/60 px-3 py-1.5 text-xs text-foreground/40 transition-colors hover:border-border/80 hover:text-foreground/60",
|
|
633
643
|
className
|
|
634
644
|
),
|
|
635
645
|
children: [
|
|
@@ -645,15 +655,15 @@ function PageNavigation({
|
|
|
645
655
|
className
|
|
646
656
|
}) {
|
|
647
657
|
if (!prev && !next) return null;
|
|
648
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("mt-12 flex items-stretch gap-4 border-t border-
|
|
658
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("mt-12 flex items-stretch gap-4 border-t border-border/60 pt-8", className), children: [
|
|
649
659
|
prev ? /* @__PURE__ */ jsxs(
|
|
650
660
|
"a",
|
|
651
661
|
{
|
|
652
662
|
href: prev.href,
|
|
653
|
-
className: "group flex flex-1 flex-col rounded-xl border border-
|
|
663
|
+
className: "group flex flex-1 flex-col rounded-xl border border-border/60 p-4 transition-all hover:border-primary/40 hover:bg-foreground/5",
|
|
654
664
|
children: [
|
|
655
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs text-
|
|
656
|
-
/* @__PURE__ */ jsx("span", { className: "mt-1 text-sm font-medium text-
|
|
665
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs text-foreground/40 group-hover:text-primary transition-colors", children: "\u2190 Previous" }),
|
|
666
|
+
/* @__PURE__ */ jsx("span", { className: "mt-1 text-sm font-medium text-foreground/80 group-hover:text-foreground transition-colors truncate", children: prev.title })
|
|
657
667
|
]
|
|
658
668
|
}
|
|
659
669
|
) : /* @__PURE__ */ jsx("div", { className: "flex-1" }),
|
|
@@ -661,10 +671,10 @@ function PageNavigation({
|
|
|
661
671
|
"a",
|
|
662
672
|
{
|
|
663
673
|
href: next.href,
|
|
664
|
-
className: "group flex flex-1 flex-col items-end rounded-xl border border-
|
|
674
|
+
className: "group flex flex-1 flex-col items-end rounded-xl border border-border/60 p-4 text-right transition-all hover:border-primary/40 hover:bg-foreground/5",
|
|
665
675
|
children: [
|
|
666
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs text-
|
|
667
|
-
/* @__PURE__ */ jsx("span", { className: "mt-1 text-sm font-medium text-
|
|
676
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs text-foreground/40 group-hover:text-primary transition-colors", children: "Next \u2192" }),
|
|
677
|
+
/* @__PURE__ */ jsx("span", { className: "mt-1 text-sm font-medium text-foreground/80 group-hover:text-foreground transition-colors truncate", children: next.title })
|
|
668
678
|
]
|
|
669
679
|
}
|
|
670
680
|
) : /* @__PURE__ */ jsx("div", { className: "flex-1" })
|
|
@@ -678,6 +688,7 @@ function VersionSelector({
|
|
|
678
688
|
}) {
|
|
679
689
|
const [isOpen, setIsOpen] = useState(false);
|
|
680
690
|
const ref = useRef(null);
|
|
691
|
+
const menuId = useId();
|
|
681
692
|
useEffect(() => {
|
|
682
693
|
const handleClickOutside = (e) => {
|
|
683
694
|
if (ref.current && e.target instanceof Node && !ref.current.contains(e.target)) {
|
|
@@ -694,33 +705,67 @@ function VersionSelector({
|
|
|
694
705
|
{
|
|
695
706
|
type: "button",
|
|
696
707
|
onClick: () => setIsOpen(!isOpen),
|
|
697
|
-
|
|
708
|
+
"aria-expanded": isOpen,
|
|
709
|
+
"aria-haspopup": "listbox",
|
|
710
|
+
"aria-controls": menuId,
|
|
711
|
+
className: cn(
|
|
712
|
+
"flex items-center gap-1.5 rounded-lg border border-border bg-card/60 px-3 py-1.5 text-xs font-medium text-muted-foreground transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",
|
|
713
|
+
isOpen && "border-primary/30 text-foreground"
|
|
714
|
+
),
|
|
698
715
|
children: [
|
|
699
716
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
700
717
|
"v",
|
|
701
718
|
current
|
|
702
719
|
] }),
|
|
703
|
-
/* @__PURE__ */ jsx(
|
|
720
|
+
/* @__PURE__ */ jsx(
|
|
721
|
+
"svg",
|
|
722
|
+
{
|
|
723
|
+
"aria-hidden": "true",
|
|
724
|
+
className: cn("h-3 w-3 transition-transform", isOpen && "rotate-180"),
|
|
725
|
+
viewBox: "0 0 16 16",
|
|
726
|
+
fill: "currentColor",
|
|
727
|
+
children: /* @__PURE__ */ jsx("path", { d: "M4 6l4 4 4-4", stroke: "currentColor", strokeWidth: "2", fill: "none" })
|
|
728
|
+
}
|
|
729
|
+
)
|
|
704
730
|
]
|
|
705
731
|
}
|
|
706
732
|
),
|
|
707
|
-
isOpen && /* @__PURE__ */ jsx(
|
|
708
|
-
"
|
|
733
|
+
isOpen && /* @__PURE__ */ jsx(
|
|
734
|
+
"div",
|
|
709
735
|
{
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
736
|
+
id: menuId,
|
|
737
|
+
role: "listbox",
|
|
738
|
+
className: "absolute right-0 top-full z-20 mt-1 min-w-[120px] overflow-hidden rounded-lg border border-border bg-popover shadow-xl",
|
|
739
|
+
onKeyDown: (event) => {
|
|
740
|
+
if (event.key === "Escape") {
|
|
741
|
+
event.preventDefault();
|
|
742
|
+
setIsOpen(false);
|
|
743
|
+
}
|
|
714
744
|
},
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
745
|
+
children: versions.map((v) => /* @__PURE__ */ jsxs(
|
|
746
|
+
"button",
|
|
747
|
+
{
|
|
748
|
+
type: "button",
|
|
749
|
+
role: "option",
|
|
750
|
+
"aria-selected": v === current,
|
|
751
|
+
onClick: () => {
|
|
752
|
+
onSelect(v);
|
|
753
|
+
setIsOpen(false);
|
|
754
|
+
},
|
|
755
|
+
className: cn(
|
|
756
|
+
"flex w-full items-center px-3 py-2 text-xs transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring/40",
|
|
757
|
+
v === current ? "bg-primary/15 font-medium text-primary" : "text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
758
|
+
),
|
|
759
|
+
children: [
|
|
760
|
+
"v",
|
|
761
|
+
v,
|
|
762
|
+
v === current && /* @__PURE__ */ jsx("span", { className: "ml-auto text-[10px]", children: "\u2713" })
|
|
763
|
+
]
|
|
764
|
+
},
|
|
765
|
+
v
|
|
766
|
+
))
|
|
767
|
+
}
|
|
768
|
+
)
|
|
724
769
|
] });
|
|
725
770
|
}
|
|
726
771
|
function useDocSearch(searchFn, debounceMs = 250) {
|
|
@@ -931,15 +976,15 @@ function DocSearchPage({
|
|
|
931
976
|
);
|
|
932
977
|
const { results, isSearching, query, setQuery } = useDocSearch(searchFn);
|
|
933
978
|
if (tree === void 0) {
|
|
934
|
-
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-
|
|
935
|
-
/* @__PURE__ */ jsx("div", { className: "mb-8 h-12 animate-pulse rounded-xl bg-
|
|
936
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: Array.from({ length: 5 }, (_, index) => `doc-search-skeleton-${index}`).map((key) => /* @__PURE__ */ jsx("div", { className: "h-20 animate-pulse rounded-xl bg-
|
|
979
|
+
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-background px-6 py-16", className), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-2xl", children: [
|
|
980
|
+
/* @__PURE__ */ jsx("div", { className: "mb-8 h-12 animate-pulse rounded-xl bg-foreground/5" }),
|
|
981
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: Array.from({ length: 5 }, (_, index) => `doc-search-skeleton-${index}`).map((key) => /* @__PURE__ */ jsx("div", { className: "h-20 animate-pulse rounded-xl bg-foreground/5" }, key)) })
|
|
937
982
|
] }) });
|
|
938
983
|
}
|
|
939
|
-
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-
|
|
984
|
+
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-background text-foreground", className), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-2xl px-6 py-16", children: [
|
|
940
985
|
/* @__PURE__ */ jsx("h1", { className: "mb-8 text-2xl font-bold", children: "Search Documentation" }),
|
|
941
986
|
/* @__PURE__ */ jsxs("div", { className: "relative mb-8", children: [
|
|
942
|
-
/* @__PURE__ */ jsx("svg", { "aria-hidden": "true", className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 text-
|
|
987
|
+
/* @__PURE__ */ jsx("svg", { "aria-hidden": "true", className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 text-foreground/30", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z", clipRule: "evenodd" }) }),
|
|
943
988
|
/* @__PURE__ */ jsx(
|
|
944
989
|
"input",
|
|
945
990
|
{
|
|
@@ -947,10 +992,11 @@ function DocSearchPage({
|
|
|
947
992
|
value: query,
|
|
948
993
|
onChange: (e) => setQuery(e.target.value),
|
|
949
994
|
placeholder: "Type to search\u2026",
|
|
950
|
-
|
|
995
|
+
"aria-label": "Search documentation",
|
|
996
|
+
className: "w-full rounded-xl border border-border bg-card/60 py-3.5 pl-12 pr-4 text-sm text-foreground placeholder:text-muted-foreground outline-none transition-colors focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
|
|
951
997
|
}
|
|
952
998
|
),
|
|
953
|
-
isSearching && /* @__PURE__ */ jsx("div", { className: "absolute right-4 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-4 animate-spin rounded-full border-2 border-
|
|
999
|
+
isSearching && /* @__PURE__ */ jsx("div", { className: "absolute right-4 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-4 animate-spin rounded-full border-2 border-border/60 border-t-primary" }) })
|
|
954
1000
|
] }),
|
|
955
1001
|
results.length > 0 && /* @__PURE__ */ jsx("div", { className: "space-y-2", children: results.map((result) => {
|
|
956
1002
|
const section = sections.find((s) => s.slug === result.sectionSlug);
|
|
@@ -962,18 +1008,18 @@ function DocSearchPage({
|
|
|
962
1008
|
onClick: () => {
|
|
963
1009
|
if (page && section && onSelectPage) onSelectPage(page, section);
|
|
964
1010
|
},
|
|
965
|
-
className: "flex w-full flex-col gap-1.5 rounded-xl border border-
|
|
1011
|
+
className: "flex w-full flex-col gap-1.5 rounded-xl border border-border bg-card/40 p-4 text-left transition-all hover:border-primary/20 hover:bg-card",
|
|
966
1012
|
children: [
|
|
967
1013
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
968
1014
|
/* @__PURE__ */ jsx("span", { className: "rounded bg-primary/20 px-2 py-0.5 text-[10px] font-medium text-primary", children: result.sectionTitle }),
|
|
969
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-
|
|
970
|
-
/* @__PURE__ */ jsxs("span", { className: "ml-auto text-xs tabular-nums text-
|
|
1015
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground/90", children: result.pageTitle }),
|
|
1016
|
+
/* @__PURE__ */ jsxs("span", { className: "ml-auto text-xs tabular-nums text-foreground/20", children: [
|
|
971
1017
|
page?.readingTime ?? 0,
|
|
972
1018
|
" min"
|
|
973
1019
|
] })
|
|
974
1020
|
] }),
|
|
975
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs leading-relaxed text-
|
|
976
|
-
result.tags.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex gap-1 mt-1", children: result.tags.slice(0, 4).map((tag) => /* @__PURE__ */ jsx("span", { className: "rounded bg-
|
|
1021
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs leading-relaxed text-foreground/40", children: highlightMatch(result.highlight, query) }),
|
|
1022
|
+
result.tags.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex gap-1 mt-1", children: result.tags.slice(0, 4).map((tag) => /* @__PURE__ */ jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground", children: tag }, tag)) })
|
|
977
1023
|
]
|
|
978
1024
|
},
|
|
979
1025
|
result.pageId
|
|
@@ -981,12 +1027,12 @@ function DocSearchPage({
|
|
|
981
1027
|
}) }),
|
|
982
1028
|
query.trim() && results.length === 0 && !isSearching && /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center py-16 text-center", children: [
|
|
983
1029
|
/* @__PURE__ */ jsx("div", { className: "mb-4 text-5xl opacity-30", children: "\u{1F50D}" }),
|
|
984
|
-
/* @__PURE__ */ jsx("h3", { className: "mb-2 text-lg font-medium text-
|
|
985
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-
|
|
1030
|
+
/* @__PURE__ */ jsx("h3", { className: "mb-2 text-lg font-medium text-foreground/60", children: "No results found" }),
|
|
1031
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-foreground/30", children: "Try different keywords or check your spelling." })
|
|
986
1032
|
] }),
|
|
987
1033
|
!query.trim() && /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center py-16 text-center", children: [
|
|
988
1034
|
/* @__PURE__ */ jsx("div", { className: "mb-4 text-5xl opacity-20", children: "\u{1F4D6}" }),
|
|
989
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-
|
|
1035
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-foreground/30", children: "Start typing to search across all documentation" })
|
|
990
1036
|
] })
|
|
991
1037
|
] }) });
|
|
992
1038
|
}
|
|
@@ -1035,20 +1081,20 @@ function DocsAdminPage({
|
|
|
1035
1081
|
const canCreateSection = sectionForm.title.trim().length > 0 && sectionForm.slug.trim().length > 0;
|
|
1036
1082
|
const canCreatePage = pageForm.title.trim().length > 0 && pageForm.slug.trim().length > 0 && pageForm.content.trim().length > 0;
|
|
1037
1083
|
if (tree === void 0) {
|
|
1038
|
-
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-
|
|
1039
|
-
/* @__PURE__ */ jsx("div", { className: "mb-8 h-10 w-48 animate-pulse rounded bg-
|
|
1084
|
+
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-background px-6 py-12", className), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-6xl", children: [
|
|
1085
|
+
/* @__PURE__ */ jsx("div", { className: "mb-8 h-10 w-48 animate-pulse rounded bg-muted/60" }),
|
|
1040
1086
|
/* @__PURE__ */ jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [
|
|
1041
|
-
/* @__PURE__ */ jsx("div", { className: "h-96 animate-pulse rounded-xl bg-
|
|
1042
|
-
/* @__PURE__ */ jsx("div", { className: "h-96 animate-pulse rounded-xl bg-
|
|
1087
|
+
/* @__PURE__ */ jsx("div", { className: "h-96 animate-pulse rounded-xl bg-muted/60" }),
|
|
1088
|
+
/* @__PURE__ */ jsx("div", { className: "h-96 animate-pulse rounded-xl bg-muted/60" })
|
|
1043
1089
|
] })
|
|
1044
1090
|
] }) });
|
|
1045
1091
|
}
|
|
1046
|
-
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-
|
|
1092
|
+
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-background text-foreground", className), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-6xl px-6 py-12", children: [
|
|
1047
1093
|
/* @__PURE__ */ jsx("h1", { className: "mb-8 text-2xl font-bold", children: "Docs Admin" }),
|
|
1048
1094
|
/* @__PURE__ */ jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [
|
|
1049
|
-
/* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-
|
|
1095
|
+
/* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border bg-card/40 p-5", children: [
|
|
1050
1096
|
/* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
1051
|
-
/* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-
|
|
1097
|
+
/* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-foreground", children: "Sections" }),
|
|
1052
1098
|
/* @__PURE__ */ jsx(
|
|
1053
1099
|
"button",
|
|
1054
1100
|
{
|
|
@@ -1059,9 +1105,9 @@ function DocsAdminPage({
|
|
|
1059
1105
|
}
|
|
1060
1106
|
)
|
|
1061
1107
|
] }),
|
|
1062
|
-
showSectionForm && /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2 rounded-lg border border-
|
|
1108
|
+
showSectionForm && /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2 rounded-lg border border-border bg-card/60 p-4", children: [
|
|
1063
1109
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-section-title", children: [
|
|
1064
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1110
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Title" }),
|
|
1065
1111
|
/* @__PURE__ */ jsx(
|
|
1066
1112
|
"input",
|
|
1067
1113
|
{
|
|
@@ -1070,12 +1116,12 @@ function DocsAdminPage({
|
|
|
1070
1116
|
placeholder: "Getting Started",
|
|
1071
1117
|
value: sectionForm.title,
|
|
1072
1118
|
onChange: (e) => setSectionForm({ ...sectionForm, title: e.target.value }),
|
|
1073
|
-
className: "w-full rounded-lg border border-
|
|
1119
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
|
|
1074
1120
|
}
|
|
1075
1121
|
)
|
|
1076
1122
|
] }),
|
|
1077
1123
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-section-slug", children: [
|
|
1078
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1124
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Slug" }),
|
|
1079
1125
|
/* @__PURE__ */ jsx(
|
|
1080
1126
|
"input",
|
|
1081
1127
|
{
|
|
@@ -1084,12 +1130,12 @@ function DocsAdminPage({
|
|
|
1084
1130
|
placeholder: "getting-started",
|
|
1085
1131
|
value: sectionForm.slug,
|
|
1086
1132
|
onChange: (e) => setSectionForm({ ...sectionForm, slug: e.target.value }),
|
|
1087
|
-
className: "w-full rounded-lg border border-
|
|
1133
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
|
|
1088
1134
|
}
|
|
1089
1135
|
)
|
|
1090
1136
|
] }),
|
|
1091
1137
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-section-icon", children: [
|
|
1092
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1138
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Icon" }),
|
|
1093
1139
|
/* @__PURE__ */ jsx(
|
|
1094
1140
|
"input",
|
|
1095
1141
|
{
|
|
@@ -1098,7 +1144,7 @@ function DocsAdminPage({
|
|
|
1098
1144
|
placeholder: "\u{1F4DA}",
|
|
1099
1145
|
value: sectionForm.icon,
|
|
1100
1146
|
onChange: (e) => setSectionForm({ ...sectionForm, icon: e.target.value }),
|
|
1101
|
-
className: "w-full rounded-lg border border-
|
|
1147
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
|
|
1102
1148
|
}
|
|
1103
1149
|
)
|
|
1104
1150
|
] }),
|
|
@@ -1108,7 +1154,7 @@ function DocsAdminPage({
|
|
|
1108
1154
|
className: "block space-y-1",
|
|
1109
1155
|
htmlFor: "docs-admin-section-description",
|
|
1110
1156
|
children: [
|
|
1111
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1157
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Description" }),
|
|
1112
1158
|
/* @__PURE__ */ jsx(
|
|
1113
1159
|
"input",
|
|
1114
1160
|
{
|
|
@@ -1120,14 +1166,14 @@ function DocsAdminPage({
|
|
|
1120
1166
|
...sectionForm,
|
|
1121
1167
|
description: e.target.value
|
|
1122
1168
|
}),
|
|
1123
|
-
className: "w-full rounded-lg border border-
|
|
1169
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
|
|
1124
1170
|
}
|
|
1125
1171
|
)
|
|
1126
1172
|
]
|
|
1127
1173
|
}
|
|
1128
1174
|
),
|
|
1129
1175
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-section-access", children: [
|
|
1130
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1176
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Access" }),
|
|
1131
1177
|
/* @__PURE__ */ jsxs(
|
|
1132
1178
|
"select",
|
|
1133
1179
|
{
|
|
@@ -1137,7 +1183,7 @@ function DocsAdminPage({
|
|
|
1137
1183
|
...sectionForm,
|
|
1138
1184
|
access: toDocAccess(e.target.value)
|
|
1139
1185
|
}),
|
|
1140
|
-
className: "w-full rounded-lg border border-
|
|
1186
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20",
|
|
1141
1187
|
children: [
|
|
1142
1188
|
/* @__PURE__ */ jsx("option", { value: "public", children: "Public" }),
|
|
1143
1189
|
/* @__PURE__ */ jsx("option", { value: "team", children: "Team" }),
|
|
@@ -1171,18 +1217,21 @@ function DocsAdminPage({
|
|
|
1171
1217
|
{
|
|
1172
1218
|
type: "button",
|
|
1173
1219
|
onClick: () => setShowSectionForm(false),
|
|
1174
|
-
className: "rounded-lg border border-
|
|
1220
|
+
className: "rounded-lg border border-border px-4 py-2 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
1175
1221
|
children: "Cancel"
|
|
1176
1222
|
}
|
|
1177
1223
|
)
|
|
1178
1224
|
] })
|
|
1179
1225
|
] }),
|
|
1180
1226
|
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
1181
|
-
sections.length === 0 && /* @__PURE__ */ jsx("p", { className: "py-8 text-center text-sm text-
|
|
1227
|
+
sections.length === 0 && /* @__PURE__ */ jsx("p", { className: "py-8 text-center text-sm text-muted-foreground", children: "No sections yet" }),
|
|
1182
1228
|
sections.map((section) => /* @__PURE__ */ jsxs(
|
|
1183
1229
|
"div",
|
|
1184
1230
|
{
|
|
1185
|
-
className:
|
|
1231
|
+
className: cn(
|
|
1232
|
+
"group flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2.5 transition-colors",
|
|
1233
|
+
selectedSectionId === section.id ? "bg-primary/15 text-primary" : "text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
1234
|
+
),
|
|
1186
1235
|
children: [
|
|
1187
1236
|
/* @__PURE__ */ jsxs(
|
|
1188
1237
|
"button",
|
|
@@ -1207,7 +1256,7 @@ function DocsAdminPage({
|
|
|
1207
1256
|
admin.deleteSection(section.id);
|
|
1208
1257
|
}
|
|
1209
1258
|
},
|
|
1210
|
-
className: "rounded p-1 text-
|
|
1259
|
+
className: "rounded p-1 text-muted-foreground/60 opacity-0 transition-opacity group-hover:opacity-100 hover:text-destructive",
|
|
1211
1260
|
"aria-label": `Delete section ${section.title}`,
|
|
1212
1261
|
title: "Delete section",
|
|
1213
1262
|
children: /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", className: "h-3.5 w-3.5", viewBox: "0 0 16 16", fill: "currentColor", children: [
|
|
@@ -1222,9 +1271,9 @@ function DocsAdminPage({
|
|
|
1222
1271
|
))
|
|
1223
1272
|
] })
|
|
1224
1273
|
] }),
|
|
1225
|
-
/* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-
|
|
1274
|
+
/* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border bg-card/40 p-5", children: [
|
|
1226
1275
|
/* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
1227
|
-
/* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-
|
|
1276
|
+
/* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-foreground", children: selectedSection ? `Pages \u2014 ${selectedSection.title}` : "Pages" }),
|
|
1228
1277
|
selectedSection && /* @__PURE__ */ jsx(
|
|
1229
1278
|
"button",
|
|
1230
1279
|
{
|
|
@@ -1235,10 +1284,10 @@ function DocsAdminPage({
|
|
|
1235
1284
|
}
|
|
1236
1285
|
)
|
|
1237
1286
|
] }),
|
|
1238
|
-
!selectedSection && /* @__PURE__ */ jsx("p", { className: "py-16 text-center text-sm text-
|
|
1239
|
-
showPageForm && selectedSection && /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2 rounded-lg border border-
|
|
1287
|
+
!selectedSection && /* @__PURE__ */ jsx("p", { className: "py-16 text-center text-sm text-muted-foreground", children: "Select a section to manage pages" }),
|
|
1288
|
+
showPageForm && selectedSection && /* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2 rounded-lg border border-border bg-card/60 p-4", children: [
|
|
1240
1289
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-page-title", children: [
|
|
1241
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1290
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Title" }),
|
|
1242
1291
|
/* @__PURE__ */ jsx(
|
|
1243
1292
|
"input",
|
|
1244
1293
|
{
|
|
@@ -1247,12 +1296,12 @@ function DocsAdminPage({
|
|
|
1247
1296
|
placeholder: "Install the package",
|
|
1248
1297
|
value: pageForm.title,
|
|
1249
1298
|
onChange: (e) => setPageForm({ ...pageForm, title: e.target.value }),
|
|
1250
|
-
className: "w-full rounded-lg border border-
|
|
1299
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
|
|
1251
1300
|
}
|
|
1252
1301
|
)
|
|
1253
1302
|
] }),
|
|
1254
1303
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-page-slug", children: [
|
|
1255
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1304
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Slug" }),
|
|
1256
1305
|
/* @__PURE__ */ jsx(
|
|
1257
1306
|
"input",
|
|
1258
1307
|
{
|
|
@@ -1261,12 +1310,12 @@ function DocsAdminPage({
|
|
|
1261
1310
|
placeholder: "install",
|
|
1262
1311
|
value: pageForm.slug,
|
|
1263
1312
|
onChange: (e) => setPageForm({ ...pageForm, slug: e.target.value }),
|
|
1264
|
-
className: "w-full rounded-lg border border-
|
|
1313
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
|
|
1265
1314
|
}
|
|
1266
1315
|
)
|
|
1267
1316
|
] }),
|
|
1268
1317
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-page-content", children: [
|
|
1269
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1318
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Content (MDX)" }),
|
|
1270
1319
|
/* @__PURE__ */ jsx(
|
|
1271
1320
|
"textarea",
|
|
1272
1321
|
{
|
|
@@ -1275,12 +1324,12 @@ function DocsAdminPage({
|
|
|
1275
1324
|
value: pageForm.content,
|
|
1276
1325
|
onChange: (e) => setPageForm({ ...pageForm, content: e.target.value }),
|
|
1277
1326
|
rows: 5,
|
|
1278
|
-
className: "w-full rounded-lg border border-
|
|
1327
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20 resize-y"
|
|
1279
1328
|
}
|
|
1280
1329
|
)
|
|
1281
1330
|
] }),
|
|
1282
1331
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-page-tags", children: [
|
|
1283
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1332
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Tags" }),
|
|
1284
1333
|
/* @__PURE__ */ jsx(
|
|
1285
1334
|
"input",
|
|
1286
1335
|
{
|
|
@@ -1289,12 +1338,12 @@ function DocsAdminPage({
|
|
|
1289
1338
|
placeholder: "setup, install",
|
|
1290
1339
|
value: pageForm.tags,
|
|
1291
1340
|
onChange: (e) => setPageForm({ ...pageForm, tags: e.target.value }),
|
|
1292
|
-
className: "w-full rounded-lg border border-
|
|
1341
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
|
|
1293
1342
|
}
|
|
1294
1343
|
)
|
|
1295
1344
|
] }),
|
|
1296
1345
|
/* @__PURE__ */ jsxs("label", { className: "block space-y-1", htmlFor: "docs-admin-page-access", children: [
|
|
1297
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-
|
|
1346
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Access" }),
|
|
1298
1347
|
/* @__PURE__ */ jsxs(
|
|
1299
1348
|
"select",
|
|
1300
1349
|
{
|
|
@@ -1304,7 +1353,7 @@ function DocsAdminPage({
|
|
|
1304
1353
|
...pageForm,
|
|
1305
1354
|
access: toDocAccess(e.target.value)
|
|
1306
1355
|
}),
|
|
1307
|
-
className: "w-full rounded-lg border border-
|
|
1356
|
+
className: "w-full rounded-lg border border-border bg-card/70 px-3 py-2 text-sm outline-none focus:border-primary/40 focus:ring-2 focus:ring-ring/20",
|
|
1308
1357
|
children: [
|
|
1309
1358
|
/* @__PURE__ */ jsx("option", { value: "public", children: "Public" }),
|
|
1310
1359
|
/* @__PURE__ */ jsx("option", { value: "team", children: "Team" }),
|
|
@@ -1341,7 +1390,7 @@ function DocsAdminPage({
|
|
|
1341
1390
|
{
|
|
1342
1391
|
type: "button",
|
|
1343
1392
|
onClick: () => setShowPageForm(false),
|
|
1344
|
-
className: "rounded-lg border border-
|
|
1393
|
+
className: "rounded-lg border border-border px-4 py-2 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
1345
1394
|
children: "Cancel"
|
|
1346
1395
|
}
|
|
1347
1396
|
)
|
|
@@ -1350,11 +1399,11 @@ function DocsAdminPage({
|
|
|
1350
1399
|
selectedSection && sectionPages.length > 0 && /* @__PURE__ */ jsx("div", { className: "space-y-1", children: sectionPages.map((page) => /* @__PURE__ */ jsxs(
|
|
1351
1400
|
"div",
|
|
1352
1401
|
{
|
|
1353
|
-
className: "group flex items-center gap-3 rounded-lg px-3 py-2.5 transition-colors hover:bg-
|
|
1402
|
+
className: "group flex items-center gap-3 rounded-lg px-3 py-2.5 transition-colors hover:bg-muted",
|
|
1354
1403
|
children: [
|
|
1355
1404
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
1356
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-
|
|
1357
|
-
/* @__PURE__ */ jsxs("p", { className: "text-[11px] text-
|
|
1405
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-foreground truncate", children: page.title }),
|
|
1406
|
+
/* @__PURE__ */ jsxs("p", { className: "text-[11px] text-muted-foreground", children: [
|
|
1358
1407
|
"/",
|
|
1359
1408
|
page.slug
|
|
1360
1409
|
] })
|
|
@@ -1362,7 +1411,10 @@ function DocsAdminPage({
|
|
|
1362
1411
|
/* @__PURE__ */ jsx(
|
|
1363
1412
|
"span",
|
|
1364
1413
|
{
|
|
1365
|
-
className:
|
|
1414
|
+
className: cn(
|
|
1415
|
+
"shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium",
|
|
1416
|
+
page.status === "published" ? "bg-success/15 text-success" : page.status === "archived" ? "bg-muted text-muted-foreground" : "bg-warning/15 text-warning"
|
|
1417
|
+
),
|
|
1366
1418
|
children: page.status
|
|
1367
1419
|
}
|
|
1368
1420
|
),
|
|
@@ -1394,7 +1446,7 @@ function DocsAdminPage({
|
|
|
1394
1446
|
onClick: () => {
|
|
1395
1447
|
if (confirm(`Delete page "${page.title}"?`)) admin.deletePage(page.id);
|
|
1396
1448
|
},
|
|
1397
|
-
className: "rounded p-1 text-
|
|
1449
|
+
className: "rounded p-1 text-muted-foreground/60 hover:text-destructive",
|
|
1398
1450
|
"aria-label": `Delete page ${page.title}`,
|
|
1399
1451
|
title: "Delete",
|
|
1400
1452
|
children: /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", className: "h-3.5 w-3.5", viewBox: "0 0 16 16", fill: "currentColor", children: [
|
|
@@ -1408,7 +1460,7 @@ function DocsAdminPage({
|
|
|
1408
1460
|
},
|
|
1409
1461
|
page.id
|
|
1410
1462
|
)) }),
|
|
1411
|
-
selectedSection && sectionPages.length === 0 && !showPageForm && /* @__PURE__ */ jsx("p", { className: "py-12 text-center text-sm text-
|
|
1463
|
+
selectedSection && sectionPages.length === 0 && !showPageForm && /* @__PURE__ */ jsx("p", { className: "py-12 text-center text-sm text-muted-foreground", children: "No pages in this section" })
|
|
1412
1464
|
] })
|
|
1413
1465
|
] })
|
|
1414
1466
|
] }) });
|
|
@@ -1439,10 +1491,10 @@ function DocsIndexPage({
|
|
|
1439
1491
|
return () => document.removeEventListener("keydown", handler);
|
|
1440
1492
|
}, []);
|
|
1441
1493
|
if (docs.isLoading) {
|
|
1442
|
-
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-
|
|
1443
|
-
/* @__PURE__ */ jsx("div", { className: "mb-10 h-10 w-64 animate-pulse rounded-lg bg-
|
|
1444
|
-
/* @__PURE__ */ jsx("div", { className: "mb-8 h-12 w-full max-w-xl animate-pulse rounded-xl bg-
|
|
1445
|
-
/* @__PURE__ */ jsx("div", { className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }, (_, index) => `docs-index-skeleton-${index}`).map((key) => /* @__PURE__ */ jsx("div", { className: "h-36 animate-pulse rounded-xl bg-
|
|
1494
|
+
return /* @__PURE__ */ jsx("div", { className: cn("min-h-screen bg-background px-6 py-16", className), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-5xl", children: [
|
|
1495
|
+
/* @__PURE__ */ jsx("div", { className: "mb-10 h-10 w-64 animate-pulse rounded-lg bg-foreground/5" }),
|
|
1496
|
+
/* @__PURE__ */ jsx("div", { className: "mb-8 h-12 w-full max-w-xl animate-pulse rounded-xl bg-foreground/5" }),
|
|
1497
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }, (_, index) => `docs-index-skeleton-${index}`).map((key) => /* @__PURE__ */ jsx("div", { className: "h-36 animate-pulse rounded-xl bg-foreground/5" }, key)) })
|
|
1446
1498
|
] }) });
|
|
1447
1499
|
}
|
|
1448
1500
|
if (docs.sections.length === 0) {
|
|
@@ -1450,31 +1502,32 @@ function DocsIndexPage({
|
|
|
1450
1502
|
"div",
|
|
1451
1503
|
{
|
|
1452
1504
|
className: cn(
|
|
1453
|
-
"flex min-h-screen flex-col items-center justify-center bg-
|
|
1505
|
+
"flex min-h-screen flex-col items-center justify-center bg-background text-center",
|
|
1454
1506
|
className
|
|
1455
1507
|
),
|
|
1456
1508
|
children: [
|
|
1457
1509
|
/* @__PURE__ */ jsx("div", { className: "mb-4 text-6xl opacity-30", children: "\u{1F4DA}" }),
|
|
1458
|
-
/* @__PURE__ */ jsx("h2", { className: "mb-2 text-xl font-semibold text-
|
|
1459
|
-
/* @__PURE__ */ jsx("p", { className: "max-w-sm text-sm text-
|
|
1510
|
+
/* @__PURE__ */ jsx("h2", { className: "mb-2 text-xl font-semibold text-foreground/80", children: "No documentation yet" }),
|
|
1511
|
+
/* @__PURE__ */ jsx("p", { className: "max-w-sm text-sm text-foreground/40", children: "Create your first section and pages to get started with your documentation." })
|
|
1460
1512
|
]
|
|
1461
1513
|
}
|
|
1462
1514
|
);
|
|
1463
1515
|
}
|
|
1464
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("min-h-screen bg-
|
|
1516
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("min-h-screen bg-background text-foreground", className), children: [
|
|
1465
1517
|
/* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-5xl px-6 py-16", children: [
|
|
1466
1518
|
/* @__PURE__ */ jsx("h1", { className: "mb-2 text-4xl font-bold tracking-tight", children: "Documentation" }),
|
|
1467
|
-
/* @__PURE__ */ jsx("p", { className: "mb-10 text-lg text-
|
|
1519
|
+
/* @__PURE__ */ jsx("p", { className: "mb-10 text-lg text-foreground/50", children: "Browse guides, API references, and tutorials." }),
|
|
1468
1520
|
/* @__PURE__ */ jsxs(
|
|
1469
1521
|
"button",
|
|
1470
1522
|
{
|
|
1471
1523
|
type: "button",
|
|
1472
1524
|
onClick: () => setIsSearchOpen(true),
|
|
1473
|
-
|
|
1525
|
+
"aria-haspopup": "dialog",
|
|
1526
|
+
className: "mb-12 flex w-full max-w-xl items-center gap-3 rounded-xl border border-border bg-card/60 px-5 py-3.5 text-left text-sm text-muted-foreground transition-colors hover:border-primary/20 hover:bg-card",
|
|
1474
1527
|
children: [
|
|
1475
1528
|
/* @__PURE__ */ jsx("svg", { "aria-hidden": "true", className: "h-4.5 w-4.5 shrink-0", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z", clipRule: "evenodd" }) }),
|
|
1476
1529
|
/* @__PURE__ */ jsx("span", { className: "flex-1", children: "Search documentation\u2026" }),
|
|
1477
|
-
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-
|
|
1530
|
+
/* @__PURE__ */ jsx("kbd", { className: "rounded border border-border/60 bg-foreground/5 px-2 py-0.5 text-[11px]", children: "\u2318K" })
|
|
1478
1531
|
]
|
|
1479
1532
|
}
|
|
1480
1533
|
),
|
|
@@ -1486,12 +1539,12 @@ function DocsIndexPage({
|
|
|
1486
1539
|
const firstPage = section.pages?.[0];
|
|
1487
1540
|
if (firstPage && onSelectPage) onSelectPage(firstPage, section);
|
|
1488
1541
|
},
|
|
1489
|
-
className: "group flex flex-col rounded-xl border border-
|
|
1542
|
+
className: "group flex flex-col rounded-xl border border-border bg-card/40 p-5 text-left transition-all hover:border-primary/30 hover:bg-card hover:shadow-lg hover:shadow-primary/5",
|
|
1490
1543
|
children: [
|
|
1491
1544
|
section.icon && /* @__PURE__ */ jsx("span", { className: "mb-3 text-2xl", children: section.icon }),
|
|
1492
|
-
/* @__PURE__ */ jsx("h3", { className: "mb-1.5 text-base font-semibold text-
|
|
1493
|
-
section.description && /* @__PURE__ */ jsx("p", { className: "mb-3 flex-1 text-sm leading-relaxed text-
|
|
1494
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 text-xs text-
|
|
1545
|
+
/* @__PURE__ */ jsx("h3", { className: "mb-1.5 text-base font-semibold text-foreground/90 group-hover:text-foreground transition-colors", children: section.title }),
|
|
1546
|
+
section.description && /* @__PURE__ */ jsx("p", { className: "mb-3 flex-1 text-sm leading-relaxed text-foreground/40", children: section.description }),
|
|
1547
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 text-xs text-foreground/25", children: /* @__PURE__ */ jsxs("span", { children: [
|
|
1495
1548
|
section.pageCount ?? 0,
|
|
1496
1549
|
" pages"
|
|
1497
1550
|
] }) })
|
|
@@ -1500,7 +1553,7 @@ function DocsIndexPage({
|
|
|
1500
1553
|
section.id
|
|
1501
1554
|
)) }),
|
|
1502
1555
|
docs.flatPages.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-16", children: [
|
|
1503
|
-
/* @__PURE__ */ jsx("h2", { className: "mb-6 text-lg font-semibold text-
|
|
1556
|
+
/* @__PURE__ */ jsx("h2", { className: "mb-6 text-lg font-semibold text-foreground/80", children: "Recently updated" }),
|
|
1504
1557
|
/* @__PURE__ */ jsx("div", { className: "space-y-2", children: docs.flatPages.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()).slice(0, 8).map((page) => {
|
|
1505
1558
|
const section = docs.sections.find((s) => s.id === page.sectionId);
|
|
1506
1559
|
return /* @__PURE__ */ jsxs(
|
|
@@ -1508,13 +1561,13 @@ function DocsIndexPage({
|
|
|
1508
1561
|
{
|
|
1509
1562
|
type: "button",
|
|
1510
1563
|
onClick: () => section && onSelectPage?.(page, section),
|
|
1511
|
-
className: "flex w-full items-center gap-4 rounded-lg px-4 py-3 text-left transition-colors hover:bg-
|
|
1564
|
+
className: "flex w-full items-center gap-4 rounded-lg px-4 py-3 text-left transition-colors hover:bg-muted",
|
|
1512
1565
|
children: [
|
|
1513
1566
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
1514
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-
|
|
1515
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-
|
|
1567
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-foreground/80 truncate", children: page.title }),
|
|
1568
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-foreground/30 truncate", children: section?.title })
|
|
1516
1569
|
] }),
|
|
1517
|
-
/* @__PURE__ */ jsxs("span", { className: "shrink-0 text-xs tabular-nums text-
|
|
1570
|
+
/* @__PURE__ */ jsxs("span", { className: "shrink-0 text-xs tabular-nums text-foreground/20", children: [
|
|
1518
1571
|
page.readingTime,
|
|
1519
1572
|
" min read"
|
|
1520
1573
|
] })
|
|
@@ -1574,12 +1627,12 @@ function DocViewPage({
|
|
|
1574
1627
|
};
|
|
1575
1628
|
}, [page, docs.flatPages, docs.sections]);
|
|
1576
1629
|
if (docs.isLoading || page === void 0) {
|
|
1577
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-screen bg-
|
|
1578
|
-
/* @__PURE__ */ jsx("div", { className: "hidden w-[260px] shrink-0 border-r border-
|
|
1630
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-screen bg-background", className), children: [
|
|
1631
|
+
/* @__PURE__ */ jsx("div", { className: "hidden w-[260px] shrink-0 border-r border-border bg-card lg:block", children: /* @__PURE__ */ jsx("div", { className: "space-y-3 p-4", children: Array.from({ length: 8 }, (_, index) => `doc-view-sidebar-skeleton-${index}`).map((key) => /* @__PURE__ */ jsx("div", { className: "h-8 animate-pulse rounded-lg bg-foreground/5" }, key)) }) }),
|
|
1579
1632
|
/* @__PURE__ */ jsx("div", { className: "flex-1 px-10 py-8", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl space-y-4", children: [
|
|
1580
|
-
/* @__PURE__ */ jsx("div", { className: "h-5 w-48 animate-pulse rounded bg-
|
|
1581
|
-
/* @__PURE__ */ jsx("div", { className: "h-10 w-96 animate-pulse rounded bg-
|
|
1582
|
-
/* @__PURE__ */ jsx("div", { className: "mt-8 space-y-3", children: Array.from({ length: 12 }, (_, index) => `doc-view-body-skeleton-${index}`).map((key, index) => /* @__PURE__ */ jsx("div", { className: "h-4 animate-pulse rounded bg-
|
|
1633
|
+
/* @__PURE__ */ jsx("div", { className: "h-5 w-48 animate-pulse rounded bg-foreground/5" }),
|
|
1634
|
+
/* @__PURE__ */ jsx("div", { className: "h-10 w-96 animate-pulse rounded bg-foreground/5" }),
|
|
1635
|
+
/* @__PURE__ */ jsx("div", { className: "mt-8 space-y-3", children: Array.from({ length: 12 }, (_, index) => `doc-view-body-skeleton-${index}`).map((key, index) => /* @__PURE__ */ jsx("div", { className: "h-4 animate-pulse rounded bg-foreground/5", style: { width: `${60 + index * 3}%` } }, key)) })
|
|
1583
1636
|
] }) })
|
|
1584
1637
|
] });
|
|
1585
1638
|
}
|
|
@@ -1588,13 +1641,13 @@ function DocViewPage({
|
|
|
1588
1641
|
"div",
|
|
1589
1642
|
{
|
|
1590
1643
|
className: cn(
|
|
1591
|
-
"flex min-h-screen flex-col items-center justify-center bg-
|
|
1644
|
+
"flex min-h-screen flex-col items-center justify-center bg-background text-center",
|
|
1592
1645
|
className
|
|
1593
1646
|
),
|
|
1594
1647
|
children: [
|
|
1595
1648
|
/* @__PURE__ */ jsx("div", { className: "mb-4 text-6xl opacity-30", children: "\u{1F50D}" }),
|
|
1596
|
-
/* @__PURE__ */ jsx("h2", { className: "mb-2 text-xl font-semibold text-
|
|
1597
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-
|
|
1649
|
+
/* @__PURE__ */ jsx("h2", { className: "mb-2 text-xl font-semibold text-foreground/80", children: "Page not found" }),
|
|
1650
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-foreground/40", children: "The documentation page you're looking for doesn't exist." })
|
|
1598
1651
|
]
|
|
1599
1652
|
}
|
|
1600
1653
|
);
|
|
@@ -1613,7 +1666,7 @@ function DocViewPage({
|
|
|
1613
1666
|
children: [
|
|
1614
1667
|
/* @__PURE__ */ jsxs("div", { className: "mb-8", children: [
|
|
1615
1668
|
/* @__PURE__ */ jsx("h1", { className: "mb-3 text-3xl font-bold tracking-tight", children: page.title }),
|
|
1616
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-4 text-sm text-
|
|
1669
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-4 text-sm text-foreground/40", children: [
|
|
1617
1670
|
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
1618
1671
|
page.author.avatar ? /* @__PURE__ */ jsx("img", { src: page.author.avatar, alt: "", className: "h-5 w-5 rounded-full" }) : /* @__PURE__ */ jsx("span", { className: "flex h-5 w-5 items-center justify-center rounded-full bg-primary/20 text-[10px] text-primary", children: page.author.name[0] }),
|
|
1619
1672
|
page.author.name
|
|
@@ -1631,12 +1684,12 @@ function DocViewPage({
|
|
|
1631
1684
|
" views"
|
|
1632
1685
|
] })
|
|
1633
1686
|
] }),
|
|
1634
|
-
page.tags.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 flex flex-wrap gap-1.5", children: page.tags.map((tag) => /* @__PURE__ */ jsx("span", { className: "rounded-full bg-
|
|
1687
|
+
page.tags.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-3 flex flex-wrap gap-1.5", children: page.tags.map((tag) => /* @__PURE__ */ jsx("span", { className: "rounded-full bg-foreground/5 px-2.5 py-0.5 text-xs text-foreground/40", children: tag }, tag)) })
|
|
1635
1688
|
] }),
|
|
1636
1689
|
/* @__PURE__ */ jsx(DocPage, { page }),
|
|
1637
|
-
/* @__PURE__ */ jsxs("div", { className: "mt-10 flex items-center justify-between border-t border-
|
|
1690
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-10 flex items-center justify-between border-t border-border/40 pt-6", children: [
|
|
1638
1691
|
/* @__PURE__ */ jsx(EditButton, { pageSlug: page.slug, editUrl: editPageUrl }),
|
|
1639
|
-
page.version && /* @__PURE__ */ jsxs("span", { className: "text-xs text-
|
|
1692
|
+
page.version && /* @__PURE__ */ jsxs("span", { className: "text-xs text-foreground/25", children: [
|
|
1640
1693
|
"v",
|
|
1641
1694
|
page.version
|
|
1642
1695
|
] })
|