@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.
@@ -3,6 +3,7 @@ import { clsx } from 'clsx';
3
3
  import { twMerge } from 'tailwind-merge';
4
4
  import { jsx, jsxs, Fragment } from 'solid-js/h/jsx-runtime';
5
5
  import remarkGfm from 'remark-gfm';
6
+ import { Dynamic } from 'solid-js/web';
6
7
  import { SolidMarkdown } from 'solid-markdown';
7
8
  import { AnimatePresence, motion } from '@geenius/motion/solidjs';
8
9
 
@@ -15,8 +16,8 @@ function Breadcrumbs(props) {
15
16
  return null;
16
17
  }
17
18
  return /* @__PURE__ */ jsx("nav", { class: cn("flex items-center gap-1.5 text-sm", props.class), "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx(For, { each: props.items, children: (item, idx) => /* @__PURE__ */ jsxs(Fragment, { children: [
18
- /* @__PURE__ */ jsx(Show, { when: idx() > 0, children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", class: "h-3.5 w-3.5 shrink-0 text-white/20", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M6 4l4 4-4 4", stroke: "currentColor", "stroke-width": "1.5" }) }) }),
19
- /* @__PURE__ */ jsx(Show, { when: idx() === props.items.length - 1, fallback: /* @__PURE__ */ jsx("a", { href: item.href, class: "truncate text-white/40 transition-colors hover:text-white/70", children: item.title }), children: /* @__PURE__ */ jsx("span", { class: "truncate text-white/60", children: item.title }) })
19
+ /* @__PURE__ */ jsx(Show, { when: idx() > 0, children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", class: "h-3.5 w-3.5 shrink-0 text-foreground/20", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M6 4l4 4-4 4", stroke: "currentColor", "stroke-width": "1.5" }) }) }),
20
+ /* @__PURE__ */ jsx(Show, { when: idx() === props.items.length - 1, fallback: /* @__PURE__ */ jsx("a", { href: item.href, class: "truncate text-foreground/40 transition-colors hover:text-foreground/70", children: item.title }), children: /* @__PURE__ */ jsx("span", { class: "truncate text-foreground/60", children: item.title }) })
20
21
  ] }) }) });
21
22
  }
22
23
 
@@ -178,7 +179,7 @@ function createHeading(Tag, className) {
178
179
  return (props) => {
179
180
  const text = getNodeText(props.children);
180
181
  const id = slugify(text);
181
- return /* @__PURE__ */ jsx(Tag, { id, class: cn(className), children: /* @__PURE__ */ jsx("a", { href: `#${id}`, class: "transition-colors hover:text-indigo-300", children: props.children }) });
182
+ return /* @__PURE__ */ jsx(Dynamic, { component: Tag, id, class: cn(className), children: /* @__PURE__ */ jsx("a", { href: `#${id}`, class: "transition-colors hover:text-primary", children: props.children }) });
182
183
  };
183
184
  }
184
185
  function DocPage(props) {
@@ -190,27 +191,27 @@ function DocPage(props) {
190
191
  h1: createHeading("h1", "scroll-mt-20 mt-8 mb-4 text-3xl font-bold"),
191
192
  h2: createHeading(
192
193
  "h2",
193
- "scroll-mt-20 mt-8 mb-3 border-b border-white/10 pb-2 text-2xl font-bold"
194
+ "scroll-mt-20 mt-8 mb-3 border-b border-border/60 pb-2 text-2xl font-bold"
194
195
  ),
195
196
  h3: createHeading("h3", "scroll-mt-20 mt-6 mb-2 text-xl font-semibold"),
196
197
  h4: createHeading("h4", "scroll-mt-20 mt-4 mb-2 text-lg font-medium"),
197
- p: (componentProps) => /* @__PURE__ */ jsx("p", { class: "my-3 leading-relaxed text-white/80", children: componentProps.children }),
198
+ p: (componentProps) => /* @__PURE__ */ jsx("p", { class: "my-3 leading-relaxed text-foreground/80", children: componentProps.children }),
198
199
  a: (componentProps) => /* @__PURE__ */ jsx(
199
200
  "a",
200
201
  {
201
202
  href: componentProps.href,
202
203
  target: componentProps.href?.startsWith("/") ? void 0 : "_blank",
203
204
  rel: componentProps.href?.startsWith("/") ? void 0 : "noreferrer noopener",
204
- class: "underline underline-offset-2 transition-colors hover:text-indigo-300",
205
+ class: "underline underline-offset-2 transition-colors hover:text-primary",
205
206
  children: componentProps.children
206
207
  }
207
208
  ),
208
- code: (componentProps) => componentProps.class ? /* @__PURE__ */ jsx("code", { class: componentProps.class, children: componentProps.children }) : /* @__PURE__ */ jsx("code", { class: "rounded bg-white/10 px-1.5 py-0.5 text-sm text-indigo-300", children: componentProps.children }),
209
- pre: (componentProps) => /* @__PURE__ */ jsx("pre", { class: "my-4 overflow-x-auto rounded-lg bg-black/30 p-4 text-sm leading-relaxed", children: componentProps.children }),
210
- blockquote: (componentProps) => /* @__PURE__ */ jsx("blockquote", { class: "my-4 rounded-r-lg border-l-4 border-indigo-500/40 bg-white/5 py-3 pl-4 pr-4 text-white/70 italic", children: componentProps.children }),
211
- table: (componentProps) => /* @__PURE__ */ jsx("div", { class: "my-4 overflow-x-auto rounded-lg border border-white/10", children: /* @__PURE__ */ jsx("table", { class: "w-full text-sm", children: componentProps.children }) }),
212
- th: (componentProps) => /* @__PURE__ */ jsx("th", { class: "border-b border-white/10 bg-white/5 px-4 py-2.5 text-left font-semibold", children: componentProps.children }),
213
- td: (componentProps) => /* @__PURE__ */ jsx("td", { class: "border-b border-white/5 px-4 py-2 text-white/70 last:border-none", children: componentProps.children })
209
+ code: (componentProps) => componentProps.class ? /* @__PURE__ */ jsx("code", { class: componentProps.class, children: componentProps.children }) : /* @__PURE__ */ jsx("code", { class: "rounded bg-foreground/10 px-1.5 py-0.5 text-sm text-primary", children: componentProps.children }),
210
+ pre: (componentProps) => /* @__PURE__ */ jsx("pre", { class: "my-4 overflow-x-auto rounded-lg bg-background/80 p-4 text-sm leading-relaxed", children: componentProps.children }),
211
+ blockquote: (componentProps) => /* @__PURE__ */ jsx("blockquote", { class: "my-4 rounded-r-lg border-l-4 border-primary/40 bg-foreground/5 py-3 pl-4 pr-4 text-foreground/70 italic", children: componentProps.children }),
212
+ table: (componentProps) => /* @__PURE__ */ jsx("div", { class: "my-4 overflow-x-auto rounded-lg border border-border/60", children: /* @__PURE__ */ jsx("table", { class: "w-full text-sm", children: componentProps.children }) }),
213
+ th: (componentProps) => /* @__PURE__ */ jsx("th", { class: "border-b border-border/60 bg-foreground/5 px-4 py-2.5 text-left font-semibold", children: componentProps.children }),
214
+ td: (componentProps) => /* @__PURE__ */ jsx("td", { class: "border-b border-border/40 px-4 py-2 text-foreground/70 last:border-none", children: componentProps.children })
214
215
  },
215
216
  children: props.page.content
216
217
  }
@@ -273,7 +274,7 @@ function DocSearch(props) {
273
274
  initial: { opacity: 0 },
274
275
  animate: { opacity: 1 },
275
276
  exit: { opacity: 0 },
276
- class: "fixed inset-0 bg-black/60 backdrop-blur-md",
277
+ class: "fixed inset-0 bg-background/80 backdrop-blur-md",
277
278
  onClick: () => {
278
279
  props.onClose();
279
280
  previousFocus?.focus();
@@ -288,16 +289,16 @@ function DocSearch(props) {
288
289
  animate: { opacity: 1, scale: 1, y: 0 },
289
290
  exit: { opacity: 0, scale: 0.95, y: -20 },
290
291
  transition: { type: "spring", damping: 25, stiffness: 250 },
291
- class: "relative z-10 w-full max-w-xl overflow-hidden rounded-2xl border border-white/10 bg-zinc-900/40 backdrop-blur-3xl shadow-2xl ring-1 ring-white/5",
292
+ class: "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",
292
293
  role: "dialog",
293
294
  "aria-modal": "true",
294
295
  "aria-labelledby": `${dialogId}-title`,
295
296
  onKeyDown: handleKeyDown,
296
297
  onClick: (e) => e.stopPropagation(),
297
298
  children: [
298
- /* @__PURE__ */ jsxs("div", { class: "flex items-center gap-3 border-b border-white/10 px-5 py-4 bg-white/5", children: [
299
+ /* @__PURE__ */ jsxs("div", { class: "flex items-center gap-3 border-b border-border/60 px-5 py-4 bg-foreground/5", children: [
299
300
  /* @__PURE__ */ jsx("h2", { id: `${dialogId}-title`, class: "sr-only", children: "Search documentation" }),
300
- /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", class: "h-5 w-5 shrink-0 text-white/40", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { "fill-rule": "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", "clip-rule": "evenodd" }) }),
301
+ /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", class: "h-5 w-5 shrink-0 text-foreground/40", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { "fill-rule": "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", "clip-rule": "evenodd" }) }),
301
302
  /* @__PURE__ */ jsx(
302
303
  "input",
303
304
  {
@@ -309,10 +310,10 @@ function DocSearch(props) {
309
310
  "aria-label": "Search documentation",
310
311
  "aria-controls": `${dialogId}-results`,
311
312
  "aria-activedescendant": activeResultId(),
312
- class: "flex-1 bg-transparent text-sm text-white placeholder-white/30 outline-none"
313
+ class: "flex-1 bg-transparent text-sm text-foreground placeholder:text-muted-foreground outline-none focus-visible:ring-0"
313
314
  }
314
315
  ),
315
- /* @__PURE__ */ jsx("kbd", { class: "rounded border border-white/10 bg-white/5 px-1.5 py-0.5 text-[11px] text-white/30 font-medium", children: "ESC" })
316
+ /* @__PURE__ */ jsx("kbd", { class: "rounded border border-border/60 bg-foreground/5 px-1.5 py-0.5 text-[11px] text-foreground/30 font-medium", children: "ESC" })
316
317
  ] }),
317
318
  /* @__PURE__ */ jsxs(
318
319
  "div",
@@ -328,7 +329,7 @@ function DocSearch(props) {
328
329
  initial: { opacity: 0 },
329
330
  animate: { opacity: 1 },
330
331
  exit: { opacity: 0 },
331
- class: "flex flex-col items-center py-10 text-center text-white/30",
332
+ class: "flex flex-col items-center py-10 text-center text-foreground/30",
332
333
  children: [
333
334
  /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", class: "mb-3 h-10 w-10 opacity-50", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: [
334
335
  /* @__PURE__ */ jsx("circle", { cx: "11", cy: "11", r: "8", "stroke-width": "1.5" }),
@@ -349,7 +350,7 @@ function DocSearch(props) {
349
350
  initial: { opacity: 0 },
350
351
  animate: { opacity: 1 },
351
352
  exit: { opacity: 0 },
352
- class: "py-8 text-center text-sm text-white/30",
353
+ class: "py-8 text-center text-sm text-foreground/30",
353
354
  children: "Start typing to search\u2026"
354
355
  }
355
356
  ) })
@@ -366,41 +367,44 @@ function DocSearch(props) {
366
367
  "aria-selected": idx() === activeIndex(),
367
368
  onMouseEnter: () => setActiveIndex(idx()),
368
369
  onClick: () => props.onSelect(result),
369
- class: `group relative flex w-full flex-col gap-1 rounded-xl px-4 py-3 text-left transition-colors my-0.5 ${idx() === activeIndex() ? "bg-indigo-500/15 text-white ring-1 ring-indigo-500/30" : "text-white/70 hover:bg-white/5"}`,
370
+ class: cn(
371
+ "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",
372
+ idx() === activeIndex() ? "bg-primary/15 text-foreground ring-1 ring-primary/30" : "text-muted-foreground hover:bg-muted hover:text-foreground"
373
+ ),
370
374
  children: [
371
375
  /* @__PURE__ */ jsx(Show, { when: idx() === activeIndex(), children: /* @__PURE__ */ jsx(
372
376
  motion.div,
373
377
  {
374
378
  layoutId: "search-active-bg",
375
- class: "absolute inset-0 bg-indigo-500/10 rounded-xl",
379
+ class: "absolute inset-0 rounded-xl bg-primary/10",
376
380
  transition: { type: "spring", stiffness: 300, damping: 30 }
377
381
  }
378
382
  ) }),
379
383
  /* @__PURE__ */ jsxs("div", { class: "relative z-10 flex items-center gap-2", children: [
380
- /* @__PURE__ */ jsx("span", { class: "rounded bg-indigo-500/20 px-1.5 py-0.5 text-[10px] font-medium text-indigo-300", children: result.sectionTitle }),
384
+ /* @__PURE__ */ jsx("span", { class: "rounded bg-primary/20 px-1.5 py-0.5 text-[10px] font-medium text-primary", children: result.sectionTitle }),
381
385
  /* @__PURE__ */ jsx("span", { class: "text-sm font-medium", children: result.pageTitle })
382
386
  ] }),
383
- /* @__PURE__ */ jsx("p", { class: "relative z-10 truncate text-xs text-white/40", children: highlightMatch(result.highlight, props.query) }),
384
- /* @__PURE__ */ jsx(Show, { when: result.tags.length > 0, children: /* @__PURE__ */ jsx("div", { class: "relative z-10 flex gap-1 mt-1", children: /* @__PURE__ */ jsx(For, { each: result.tags.slice(0, 3), children: (tag) => /* @__PURE__ */ jsx("span", { class: "rounded bg-white/5 px-1.5 py-0.5 text-[10px] text-white/30 border border-white/5", children: tag }) }) }) })
387
+ /* @__PURE__ */ jsx("p", { class: "relative z-10 truncate text-xs text-foreground/40", children: highlightMatch(result.highlight, props.query) }),
388
+ /* @__PURE__ */ jsx(Show, { when: result.tags.length > 0, children: /* @__PURE__ */ jsx("div", { class: "relative z-10 flex gap-1 mt-1", children: /* @__PURE__ */ jsx(For, { each: result.tags.slice(0, 3), children: (tag) => /* @__PURE__ */ jsx("span", { class: "rounded border border-border bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground", children: tag }) }) }) })
385
389
  ]
386
390
  }
387
391
  ) })
388
392
  ]
389
393
  }
390
394
  ),
391
- /* @__PURE__ */ jsxs("div", { class: "flex items-center gap-4 border-t border-white/10 px-5 py-2.5 text-[11px] text-white/30 bg-black/20", children: [
395
+ /* @__PURE__ */ jsxs("div", { class: "flex items-center gap-4 border-t border-border/60 px-5 py-2.5 text-[11px] text-foreground/30 bg-background/70", children: [
392
396
  /* @__PURE__ */ jsxs("span", { class: "flex items-center gap-1", children: [
393
- /* @__PURE__ */ jsx("kbd", { class: "rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]", children: "\u2191" }),
397
+ /* @__PURE__ */ jsx("kbd", { class: "rounded border border-border/60 bg-foreground/5 px-1 pb-0.5 text-[10px]", children: "\u2191" }),
394
398
  " ",
395
- /* @__PURE__ */ jsx("kbd", { class: "rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]", children: "\u2193" }),
399
+ /* @__PURE__ */ jsx("kbd", { class: "rounded border border-border/60 bg-foreground/5 px-1 pb-0.5 text-[10px]", children: "\u2193" }),
396
400
  " navigate"
397
401
  ] }),
398
402
  /* @__PURE__ */ jsxs("span", { class: "flex items-center gap-1", children: [
399
- /* @__PURE__ */ jsx("kbd", { class: "rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]", children: "\u21B5" }),
403
+ /* @__PURE__ */ jsx("kbd", { class: "rounded border border-border/60 bg-foreground/5 px-1 pb-0.5 text-[10px]", children: "\u21B5" }),
400
404
  " select"
401
405
  ] }),
402
406
  /* @__PURE__ */ jsxs("span", { class: "flex items-center gap-1", children: [
403
- /* @__PURE__ */ jsx("kbd", { class: "rounded border border-white/10 bg-white/5 px-1 pb-0.5 text-[10px]", children: "esc" }),
407
+ /* @__PURE__ */ jsx("kbd", { class: "rounded border border-border/60 bg-foreground/5 px-1 pb-0.5 text-[10px]", children: "esc" }),
404
408
  " close"
405
409
  ] })
406
410
  ] })
@@ -432,18 +436,22 @@ function DocSidebar(props) {
432
436
  {
433
437
  type: "button",
434
438
  onClick: () => toggle(section.id),
435
- class: "flex w-full items-center gap-2 rounded-xl px-3 py-2 text-left text-sm font-medium transition-colors hover:bg-white/10",
439
+ "aria-expanded": hasContent() ? isExpanded() : void 0,
440
+ class: cn(
441
+ "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",
442
+ isExpanded() ? "bg-muted text-foreground" : "text-foreground hover:bg-muted/70"
443
+ ),
436
444
  whileHover: { x: 2 },
437
445
  whileTap: { scale: 0.98 },
438
446
  children: [
439
447
  /* @__PURE__ */ jsx(Show, { when: section.icon, children: /* @__PURE__ */ jsx("span", { class: "text-base", children: section.icon }) }),
440
- /* @__PURE__ */ jsx("span", { class: "flex-1 truncate text-zinc-800 dark:text-zinc-200", children: section.title }),
441
- /* @__PURE__ */ jsx(Show, { when: section.pageCount != null, children: /* @__PURE__ */ jsx("span", { class: "text-xs tabular-nums opacity-50 dark:text-zinc-400", children: section.pageCount }) }),
448
+ /* @__PURE__ */ jsx("span", { class: "flex-1 truncate", children: section.title }),
449
+ /* @__PURE__ */ jsx(Show, { when: section.pageCount != null, children: /* @__PURE__ */ jsx("span", { class: "text-xs tabular-nums opacity-50 text-muted-foreground", children: section.pageCount }) }),
442
450
  /* @__PURE__ */ jsx(Show, { when: hasContent(), children: /* @__PURE__ */ jsx(
443
451
  motion.svg,
444
452
  {
445
453
  animate: { rotate: isExpanded() ? 90 : 0 },
446
- class: "h-3.5 w-3.5 shrink-0 text-zinc-500",
454
+ class: "h-3.5 w-3.5 shrink-0 text-muted-foreground",
447
455
  viewBox: "0 0 16 16",
448
456
  fill: "currentColor",
449
457
  children: /* @__PURE__ */ jsx("path", { d: "M6 4l4 4-4 4", stroke: "currentColor", "stroke-width": "2", fill: "none" })
@@ -459,7 +467,7 @@ function DocSidebar(props) {
459
467
  animate: { height: "auto", opacity: 1 },
460
468
  exit: { height: 0, opacity: 0 },
461
469
  transition: { duration: 0.2, ease: "easeInOut" },
462
- class: "ml-2 overflow-hidden border-l border-white/10 pl-2 dark:border-zinc-800",
470
+ class: "ml-2 overflow-hidden border-l border-border pl-2",
463
471
  children: [
464
472
  /* @__PURE__ */ jsx(For, { each: pages(), children: (page) => /* @__PURE__ */ jsx(
465
473
  motion.button,
@@ -468,7 +476,10 @@ function DocSidebar(props) {
468
476
  onClick: () => props.onNavigate(page, section),
469
477
  whileHover: { x: 2 },
470
478
  whileTap: { scale: 0.98 },
471
- class: `flex w-full items-center gap-2 rounded-lg px-3 py-1.5 my-0.5 text-left text-sm transition-all outline-none ${props.currentPageId === page.id ? "bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 font-semibold ring-1 ring-indigo-500/20" : "text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-white/5"}`,
479
+ class: cn(
480
+ "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",
481
+ props.currentPageId === page.id ? "bg-primary/10 font-semibold text-primary ring-1 ring-primary/20" : "text-muted-foreground hover:bg-muted hover:text-foreground"
482
+ ),
472
483
  children: /* @__PURE__ */ jsx("span", { class: "truncate", children: page.title })
473
484
  }
474
485
  ) }),
@@ -479,7 +490,7 @@ function DocSidebar(props) {
479
490
  ] });
480
491
  };
481
492
  return /* @__PURE__ */ jsxs("nav", { class: cn("flex flex-col gap-1 py-4", props.class), children: [
482
- /* @__PURE__ */ jsx("div", { class: "px-4 pb-3 text-xs font-bold uppercase tracking-widest text-zinc-400 dark:text-zinc-500", children: "Documentation" }),
493
+ /* @__PURE__ */ jsx("div", { class: "px-4 pb-3 text-xs font-bold uppercase tracking-widest text-muted-foreground", children: "Documentation" }),
483
494
  /* @__PURE__ */ jsx(For, { each: topLevel(), children: (s) => renderSection(s, 0) })
484
495
  ] });
485
496
  }
@@ -493,7 +504,7 @@ function TocLink(props) {
493
504
  href: `#${props.item.id}`,
494
505
  class: cn(
495
506
  "block truncate border-l-2 py-1 text-[13px] transition-all relative",
496
- isActive() ? "border-indigo-500 text-indigo-400 font-medium" : "border-transparent text-white/40 hover:text-white/80 hover:border-white/20"
507
+ isActive() ? "border-primary text-primary font-medium" : "border-transparent text-foreground/40 hover:text-foreground/80 hover:border-border/80"
497
508
  ),
498
509
  style: { "padding-left": `${12 + depth() * 12}px` },
499
510
  whileHover: { x: 2 },
@@ -510,7 +521,7 @@ function TableOfContents(props) {
510
521
  return null;
511
522
  }
512
523
  return /* @__PURE__ */ jsxs("nav", { class: cn("sticky top-24", props.class), children: [
513
- /* @__PURE__ */ jsx("h4", { class: "mb-3 text-xs font-semibold uppercase tracking-widest text-white/40", children: "On this page" }),
524
+ /* @__PURE__ */ jsx("h4", { class: "mb-3 text-xs font-semibold uppercase tracking-widest text-foreground/40", children: "On this page" }),
514
525
  /* @__PURE__ */ jsx(motion.div, { class: "flex flex-col relative", layoutRoot: true, children: /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsx(For, { each: props.toc, children: (item) => /* @__PURE__ */ jsx(motion.div, { initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, children: /* @__PURE__ */ jsx(TocLink, { item, activeId: props.activeId }) }) }) }) })
515
526
  ] });
516
527
  }
@@ -518,8 +529,8 @@ function DocsLayout(props) {
518
529
  const resolvedChildren = children(() => props.children);
519
530
  const breadcrumbs = () => props.breadcrumbs ?? [];
520
531
  const toc = () => props.toc ?? [];
521
- return /* @__PURE__ */ jsxs("div", { class: cn("flex min-h-screen bg-[#090a0f] text-white", props.class), children: [
522
- /* @__PURE__ */ jsx("aside", { class: "sticky top-0 hidden h-screen w-[260px] shrink-0 overflow-y-auto border-r border-white/5 bg-[#0b0c12] lg:block", children: /* @__PURE__ */ jsx(
532
+ return /* @__PURE__ */ jsxs("div", { class: cn("flex min-h-screen bg-background text-foreground", props.class), children: [
533
+ /* @__PURE__ */ jsx("aside", { class: "sticky top-0 hidden h-screen w-[260px] shrink-0 overflow-y-auto border-r border-border bg-card lg:block", children: /* @__PURE__ */ jsx(
523
534
  DocSidebar,
524
535
  {
525
536
  sections: props.sections,
@@ -574,7 +585,7 @@ function EditButton(props) {
574
585
  target: "_blank",
575
586
  rel: "noopener noreferrer",
576
587
  class: cn(
577
- "inline-flex items-center gap-1.5 rounded-lg border border-white/10 px-3 py-1.5 text-xs text-white/40 transition-colors hover:border-white/20 hover:text-white/60",
588
+ "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",
578
589
  props.class
579
590
  ),
580
591
  children: [
@@ -588,14 +599,14 @@ function PageNavigation(props) {
588
599
  if (!props.prev && !props.next) {
589
600
  return null;
590
601
  }
591
- return /* @__PURE__ */ jsxs("div", { class: cn("mt-12 flex items-stretch gap-4 border-t border-white/10 pt-8", props.class), children: [
592
- /* @__PURE__ */ jsx(Show, { when: props.prev, fallback: /* @__PURE__ */ jsx("div", { class: "flex-1" }), children: (prev) => /* @__PURE__ */ jsxs("a", { href: prev().href, class: "group flex flex-1 flex-col rounded-xl border border-white/10 p-4 transition-all hover:border-indigo-500/40 hover:bg-white/5", children: [
593
- /* @__PURE__ */ jsx("span", { class: "text-xs text-white/40 group-hover:text-indigo-400 transition-colors", children: "\u2190 Previous" }),
594
- /* @__PURE__ */ jsx("span", { class: "mt-1 text-sm font-medium text-white/80 group-hover:text-white transition-colors truncate", children: prev().title })
602
+ return /* @__PURE__ */ jsxs("div", { class: cn("mt-12 flex items-stretch gap-4 border-t border-border/60 pt-8", props.class), children: [
603
+ /* @__PURE__ */ jsx(Show, { when: props.prev, fallback: /* @__PURE__ */ jsx("div", { class: "flex-1" }), children: (prev) => /* @__PURE__ */ jsxs("a", { href: prev().href, class: "group flex flex-1 flex-col rounded-xl border border-border/60 p-4 transition-all hover:border-primary/40 hover:bg-foreground/5", children: [
604
+ /* @__PURE__ */ jsx("span", { class: "text-xs text-foreground/40 group-hover:text-primary transition-colors", children: "\u2190 Previous" }),
605
+ /* @__PURE__ */ jsx("span", { class: "mt-1 text-sm font-medium text-foreground/80 group-hover:text-foreground transition-colors truncate", children: prev().title })
595
606
  ] }) }),
596
- /* @__PURE__ */ jsx(Show, { when: props.next, fallback: /* @__PURE__ */ jsx("div", { class: "flex-1" }), children: (next) => /* @__PURE__ */ jsxs("a", { href: next().href, class: "group flex flex-1 flex-col items-end rounded-xl border border-white/10 p-4 text-right transition-all hover:border-indigo-500/40 hover:bg-white/5", children: [
597
- /* @__PURE__ */ jsx("span", { class: "text-xs text-white/40 group-hover:text-indigo-400 transition-colors", children: "Next \u2192" }),
598
- /* @__PURE__ */ jsx("span", { class: "mt-1 text-sm font-medium text-white/80 group-hover:text-white transition-colors truncate", children: next().title })
607
+ /* @__PURE__ */ jsx(Show, { when: props.next, fallback: /* @__PURE__ */ jsx("div", { class: "flex-1" }), children: (next) => /* @__PURE__ */ jsxs("a", { href: next().href, class: "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", children: [
608
+ /* @__PURE__ */ jsx("span", { class: "text-xs text-foreground/40 group-hover:text-primary transition-colors", children: "Next \u2192" }),
609
+ /* @__PURE__ */ jsx("span", { class: "mt-1 text-sm font-medium text-foreground/80 group-hover:text-foreground transition-colors truncate", children: next().title })
599
610
  ] }) })
600
611
  ] });
601
612
  }
@@ -604,13 +615,20 @@ function VersionSelector(props) {
604
615
  return null;
605
616
  }
606
617
  const [isOpen, setIsOpen] = createSignal(false);
618
+ const menuId = createUniqueId();
607
619
  return /* @__PURE__ */ jsxs("div", { class: cn("relative", props.class), children: [
608
620
  /* @__PURE__ */ jsxs(
609
621
  "button",
610
622
  {
611
623
  type: "button",
612
624
  onClick: () => setIsOpen(!isOpen()),
613
- class: "flex items-center gap-1.5 rounded-lg border border-white/10 bg-white/5 px-3 py-1.5 text-xs font-medium text-white/60 transition-colors hover:border-indigo-500/30",
625
+ "aria-expanded": isOpen(),
626
+ "aria-haspopup": "listbox",
627
+ "aria-controls": menuId,
628
+ class: cn(
629
+ "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",
630
+ isOpen() && "border-primary/30 text-foreground"
631
+ ),
614
632
  children: [
615
633
  /* @__PURE__ */ jsxs("span", { children: [
616
634
  "v",
@@ -620,7 +638,7 @@ function VersionSelector(props) {
620
638
  "svg",
621
639
  {
622
640
  "aria-hidden": "true",
623
- class: `h-3 w-3 transition-transform ${isOpen() ? "rotate-180" : ""}`,
641
+ class: cn("h-3 w-3 transition-transform", isOpen() && "rotate-180"),
624
642
  viewBox: "0 0 16 16",
625
643
  children: /* @__PURE__ */ jsx("path", { d: "M4 6l4 4 4-4", stroke: "currentColor", "stroke-width": "2", fill: "none" })
626
644
  }
@@ -628,22 +646,41 @@ function VersionSelector(props) {
628
646
  ]
629
647
  }
630
648
  ),
631
- /* @__PURE__ */ jsx(Show, { when: isOpen(), children: /* @__PURE__ */ jsx("div", { class: "absolute right-0 top-full z-20 mt-1 min-w-[120px] overflow-hidden rounded-lg border border-white/10 bg-[#111218] shadow-xl", children: /* @__PURE__ */ jsx(For, { each: props.versions, children: (v) => /* @__PURE__ */ jsxs(
632
- "button",
649
+ /* @__PURE__ */ jsx(Show, { when: isOpen(), children: /* @__PURE__ */ jsx(
650
+ "div",
633
651
  {
634
- type: "button",
635
- onClick: () => {
636
- props.onSelect(v);
637
- setIsOpen(false);
652
+ id: menuId,
653
+ role: "listbox",
654
+ class: "absolute right-0 top-full z-20 mt-1 min-w-[120px] overflow-hidden rounded-lg border border-border bg-popover shadow-xl",
655
+ onKeyDown: (event) => {
656
+ if (event.key === "Escape") {
657
+ event.preventDefault();
658
+ setIsOpen(false);
659
+ }
638
660
  },
639
- class: `flex w-full items-center px-3 py-2 text-xs transition-colors ${v === props.current ? "bg-indigo-500/15 text-indigo-300" : "text-white/60 hover:bg-white/5"}`,
640
- children: [
641
- "v",
642
- v,
643
- v === props.current && /* @__PURE__ */ jsx("span", { class: "ml-auto text-[10px]", children: "\u2713" })
644
- ]
661
+ children: /* @__PURE__ */ jsx(For, { each: props.versions, children: (v) => /* @__PURE__ */ jsxs(
662
+ "button",
663
+ {
664
+ type: "button",
665
+ role: "option",
666
+ "aria-selected": v === props.current,
667
+ onClick: () => {
668
+ props.onSelect(v);
669
+ setIsOpen(false);
670
+ },
671
+ class: cn(
672
+ "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",
673
+ v === props.current ? "bg-primary/15 text-primary" : "text-muted-foreground hover:bg-muted hover:text-foreground"
674
+ ),
675
+ children: [
676
+ "v",
677
+ v,
678
+ v === props.current && /* @__PURE__ */ jsx("span", { class: "ml-auto text-[10px]", children: "\u2713" })
679
+ ]
680
+ }
681
+ ) })
645
682
  }
646
- ) }) }) })
683
+ ) })
647
684
  ] });
648
685
  }
649
686
  function createDocSearch(searchFn, debounceMs = 250) {
@@ -692,8 +729,8 @@ function DocSearchPage(props) {
692
729
  Show,
693
730
  {
694
731
  when: props.tree() !== void 0,
695
- fallback: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-[#090a0f] px-6 py-16", props.class), children: /* @__PURE__ */ jsx("div", { class: "mx-auto max-w-2xl", children: /* @__PURE__ */ jsx("div", { class: "mb-8 h-12 animate-pulse rounded-xl bg-white/5" }) }) }),
696
- children: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-[#090a0f] text-white", props.class), children: /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-2xl px-6 py-16", children: [
732
+ fallback: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-background px-6 py-16", props.class), children: /* @__PURE__ */ jsx("div", { class: "mx-auto max-w-2xl", children: /* @__PURE__ */ jsx("div", { class: "mb-8 h-12 animate-pulse rounded-xl bg-foreground/5" }) }) }),
733
+ children: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-background text-foreground", props.class), children: /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-2xl px-6 py-16", children: [
697
734
  /* @__PURE__ */ jsx("h1", { class: "mb-8 text-2xl font-bold", children: "Search Documentation" }),
698
735
  /* @__PURE__ */ jsxs("div", { class: "relative mb-8", children: [
699
736
  /* @__PURE__ */ jsx(
@@ -704,10 +741,11 @@ function DocSearchPage(props) {
704
741
  onInput: (e) => setQuery(e.currentTarget.value),
705
742
  placeholder: "Type to search\u2026",
706
743
  autofocus: true,
707
- class: "w-full rounded-xl border border-white/10 bg-white/5 py-3.5 pl-12 pr-4 text-sm text-white placeholder-white/30 outline-none focus:border-indigo-500/40"
744
+ "aria-label": "Search documentation",
745
+ class: "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 focus:border-primary/40 focus:ring-2 focus:ring-ring/20"
708
746
  }
709
747
  ),
710
- /* @__PURE__ */ jsx(Show, { when: isSearching(), children: /* @__PURE__ */ jsx("div", { class: "absolute right-4 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsx("div", { class: "h-4 w-4 animate-spin rounded-full border-2 border-white/10 border-t-indigo-400" }) }) })
748
+ /* @__PURE__ */ jsx(Show, { when: isSearching(), children: /* @__PURE__ */ jsx("div", { class: "absolute right-4 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsx("div", { class: "h-4 w-4 animate-spin rounded-full border-2 border-border/60 border-t-primary" }) }) })
711
749
  ] }),
712
750
  /* @__PURE__ */ jsx(Show, { when: results().length > 0, children: /* @__PURE__ */ jsx("div", { class: "space-y-2", children: /* @__PURE__ */ jsx(For, { each: results(), children: (result) => {
713
751
  const section = () => sections().find((s) => s.slug === result.sectionSlug);
@@ -721,24 +759,24 @@ function DocSearchPage(props) {
721
759
  const s = section();
722
760
  if (p && s && props.onSelectPage) props.onSelectPage(p, s);
723
761
  },
724
- class: "flex w-full flex-col gap-1.5 rounded-xl border border-white/5 bg-white/[0.02] p-4 text-left transition-all hover:border-indigo-500/20 hover:bg-white/[0.05]",
762
+ class: "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",
725
763
  children: [
726
764
  /* @__PURE__ */ jsxs("div", { class: "flex items-center gap-2", children: [
727
- /* @__PURE__ */ jsx("span", { class: "rounded bg-indigo-500/20 px-2 py-0.5 text-[10px] font-medium text-indigo-300", children: result.sectionTitle }),
728
- /* @__PURE__ */ jsx("span", { class: "text-sm font-medium text-white/90", children: result.pageTitle })
765
+ /* @__PURE__ */ jsx("span", { class: "rounded bg-primary/20 px-2 py-0.5 text-[10px] font-medium text-primary", children: result.sectionTitle }),
766
+ /* @__PURE__ */ jsx("span", { class: "text-sm font-medium text-foreground/90", children: result.pageTitle })
729
767
  ] }),
730
- /* @__PURE__ */ jsx("p", { class: "text-xs leading-relaxed text-white/40", children: highlightMatch(result.highlight, query()) })
768
+ /* @__PURE__ */ jsx("p", { class: "text-xs leading-relaxed text-foreground/40", children: highlightMatch(result.highlight, query()) })
731
769
  ]
732
770
  }
733
771
  );
734
772
  } }) }) }),
735
773
  /* @__PURE__ */ jsx(Show, { when: query().trim() && results().length === 0 && !isSearching(), children: /* @__PURE__ */ jsxs("div", { class: "flex flex-col items-center py-16 text-center", children: [
736
774
  /* @__PURE__ */ jsx("div", { class: "mb-4 text-5xl opacity-30", children: "\u{1F50D}" }),
737
- /* @__PURE__ */ jsx("h3", { class: "text-lg font-medium text-white/60", children: "No results found" })
775
+ /* @__PURE__ */ jsx("h3", { class: "text-lg font-medium text-foreground/60", children: "No results found" })
738
776
  ] }) }),
739
777
  /* @__PURE__ */ jsx(Show, { when: !query().trim(), children: /* @__PURE__ */ jsxs("div", { class: "flex flex-col items-center py-16 text-center", children: [
740
778
  /* @__PURE__ */ jsx("div", { class: "mb-4 text-5xl opacity-20", children: "\u{1F4D6}" }),
741
- /* @__PURE__ */ jsx("p", { class: "text-sm text-white/30", children: "Start typing to search across all documentation" })
779
+ /* @__PURE__ */ jsx("p", { class: "text-sm text-foreground/30", children: "Start typing to search across all documentation" })
742
780
  ] }) })
743
781
  ] }) })
744
782
  }
@@ -792,18 +830,18 @@ function DocsAdminPage(props) {
792
830
  Show,
793
831
  {
794
832
  when: props.tree?.() !== void 0,
795
- fallback: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-[#090a0f] px-6 py-12", props.class), children: /* @__PURE__ */ jsx("div", { class: "mx-auto max-w-6xl", children: /* @__PURE__ */ jsx("div", { class: "mb-8 h-10 w-48 animate-pulse rounded bg-white/5" }) }) }),
796
- children: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-[#090a0f] text-white", props.class), children: /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-6xl px-6 py-12", children: [
833
+ fallback: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-background px-6 py-12", props.class), children: /* @__PURE__ */ jsx("div", { class: "mx-auto max-w-6xl", children: /* @__PURE__ */ jsx("div", { class: "mb-8 h-10 w-48 animate-pulse rounded bg-muted/60" }) }) }),
834
+ children: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-background text-foreground", props.class), children: /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-6xl px-6 py-12", children: [
797
835
  /* @__PURE__ */ jsx("h1", { class: "mb-8 text-2xl font-bold", children: "Docs Admin" }),
798
836
  /* @__PURE__ */ jsxs("div", { class: "grid gap-6 md:grid-cols-2", children: [
799
- /* @__PURE__ */ jsxs("div", { class: "rounded-xl border border-white/8 bg-white/[0.02] p-5", children: [
837
+ /* @__PURE__ */ jsxs("div", { class: "rounded-xl border border-border bg-card/40 p-5", children: [
800
838
  /* @__PURE__ */ jsxs("div", { class: "mb-4 flex items-center justify-between", children: [
801
- /* @__PURE__ */ jsx("h2", { class: "text-lg font-semibold text-white/80", children: "Sections" }),
802
- /* @__PURE__ */ jsx("button", { type: "button", onClick: () => setShowSF(!showSF()), class: "rounded-lg bg-indigo-600 px-3 py-1.5 text-xs font-medium hover:bg-indigo-500", children: "+ Add" })
839
+ /* @__PURE__ */ jsx("h2", { class: "text-lg font-semibold text-foreground", children: "Sections" }),
840
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: () => setShowSF(!showSF()), class: "rounded-lg bg-primary px-3 py-1.5 text-xs font-medium hover:bg-primary/90", children: "+ Add" })
803
841
  ] }),
804
- /* @__PURE__ */ jsx(Show, { when: showSF(), children: /* @__PURE__ */ jsxs("div", { class: "mb-4 space-y-2 rounded-lg border border-white/10 bg-white/5 p-4", children: [
842
+ /* @__PURE__ */ jsx(Show, { when: showSF(), children: /* @__PURE__ */ jsxs("div", { class: "mb-4 space-y-2 rounded-lg border border-border bg-card/60 p-4", children: [
805
843
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-title", children: [
806
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Title" }),
844
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Title" }),
807
845
  /* @__PURE__ */ jsx(
808
846
  "input",
809
847
  {
@@ -812,12 +850,12 @@ function DocsAdminPage(props) {
812
850
  placeholder: "Getting Started",
813
851
  value: sectionForm().title,
814
852
  onInput: (e) => setSectionForm({ ...sectionForm(), title: e.currentTarget.value }),
815
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40"
853
+ class: "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"
816
854
  }
817
855
  )
818
856
  ] }),
819
857
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-slug", children: [
820
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Slug" }),
858
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Slug" }),
821
859
  /* @__PURE__ */ jsx(
822
860
  "input",
823
861
  {
@@ -826,12 +864,12 @@ function DocsAdminPage(props) {
826
864
  placeholder: "getting-started",
827
865
  value: sectionForm().slug,
828
866
  onInput: (e) => setSectionForm({ ...sectionForm(), slug: e.currentTarget.value }),
829
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40"
867
+ class: "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"
830
868
  }
831
869
  )
832
870
  ] }),
833
871
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-icon", children: [
834
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Icon" }),
872
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Icon" }),
835
873
  /* @__PURE__ */ jsx(
836
874
  "input",
837
875
  {
@@ -840,12 +878,12 @@ function DocsAdminPage(props) {
840
878
  placeholder: "\u{1F4DA}",
841
879
  value: sectionForm().icon,
842
880
  onInput: (e) => setSectionForm({ ...sectionForm(), icon: e.currentTarget.value }),
843
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40"
881
+ class: "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"
844
882
  }
845
883
  )
846
884
  ] }),
847
885
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-description", children: [
848
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Description" }),
886
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Description" }),
849
887
  /* @__PURE__ */ jsx(
850
888
  "input",
851
889
  {
@@ -854,19 +892,19 @@ function DocsAdminPage(props) {
854
892
  placeholder: "Overview pages and onboarding guides.",
855
893
  value: sectionForm().description,
856
894
  onInput: (e) => setSectionForm({ ...sectionForm(), description: e.currentTarget.value }),
857
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40"
895
+ class: "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"
858
896
  }
859
897
  )
860
898
  ] }),
861
899
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-access", children: [
862
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Access" }),
900
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Access" }),
863
901
  /* @__PURE__ */ jsxs(
864
902
  "select",
865
903
  {
866
904
  id: "docs-admin-section-access",
867
905
  value: sectionForm().access,
868
906
  onChange: (e) => setSectionForm({ ...sectionForm(), access: toDocAccess(e.currentTarget.value) }),
869
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40",
907
+ class: "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",
870
908
  children: [
871
909
  /* @__PURE__ */ jsx("option", { value: "public", children: "Public" }),
872
910
  /* @__PURE__ */ jsx("option", { value: "team", children: "Team" }),
@@ -882,20 +920,28 @@ function DocsAdminPage(props) {
882
920
  type: "button",
883
921
  disabled: !canCreateSection(),
884
922
  onClick: async () => {
885
- await props.admin.createSection({ ...sectionForm(), order: sections().length });
923
+ await props.admin.createSection({
924
+ ...sectionForm(),
925
+ order: sections().length,
926
+ icon: sectionForm().icon || void 0,
927
+ description: sectionForm().description || void 0
928
+ });
886
929
  setSectionForm(initialSectionForm());
887
930
  setShowSF(false);
888
931
  },
889
- class: "rounded-lg bg-indigo-600 px-4 py-2 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-40 hover:bg-indigo-500",
932
+ class: "rounded-lg bg-primary px-4 py-2 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-40 hover:bg-primary/90",
890
933
  children: "Create"
891
934
  }
892
935
  ),
893
- /* @__PURE__ */ jsx("button", { type: "button", onClick: () => setShowSF(false), class: "rounded-lg border border-white/10 px-4 py-2 text-xs hover:bg-white/5", children: "Cancel" })
936
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: () => setShowSF(false), class: "rounded-lg border border-border px-4 py-2 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground", children: "Cancel" })
894
937
  ] })
895
938
  ] }) }),
896
939
  /* @__PURE__ */ jsxs("div", { class: "space-y-1", children: [
897
- /* @__PURE__ */ jsx(Show, { when: sections().length === 0, children: /* @__PURE__ */ jsx("p", { class: "py-8 text-center text-sm text-white/30", children: "No sections" }) }),
898
- /* @__PURE__ */ jsx(For, { each: sections(), children: (section) => /* @__PURE__ */ jsxs("div", { class: `group flex items-center gap-2 rounded-lg px-3 py-2.5 cursor-pointer ${selectedId() === section.id ? "bg-indigo-500/15 text-indigo-300" : "hover:bg-white/5 text-white/70"}`, children: [
940
+ /* @__PURE__ */ jsx(Show, { when: sections().length === 0, children: /* @__PURE__ */ jsx("p", { class: "py-8 text-center text-sm text-muted-foreground", children: "No sections" }) }),
941
+ /* @__PURE__ */ jsx(For, { each: sections(), children: (section) => /* @__PURE__ */ jsxs("div", { class: cn(
942
+ "group flex items-center gap-2 rounded-lg px-3 py-2.5",
943
+ selectedId() === section.id ? "bg-primary/15 text-primary" : "text-muted-foreground hover:bg-muted hover:text-foreground"
944
+ ), children: [
899
945
  /* @__PURE__ */ jsxs(
900
946
  "button",
901
947
  {
@@ -917,7 +963,7 @@ function DocsAdminPage(props) {
917
963
  e.stopPropagation();
918
964
  if (confirm(`Delete "${section.title}"?`)) props.admin.deleteSection(section.id);
919
965
  },
920
- class: "rounded p-1 text-white/20 opacity-0 group-hover:opacity-100 hover:text-red-400",
966
+ class: "rounded p-1 text-muted-foreground/60 opacity-0 transition-opacity group-hover:opacity-100 hover:text-destructive",
921
967
  "aria-label": `Delete section ${section.title}`,
922
968
  children: "\u2715"
923
969
  }
@@ -925,15 +971,15 @@ function DocsAdminPage(props) {
925
971
  ] }) })
926
972
  ] })
927
973
  ] }),
928
- /* @__PURE__ */ jsxs("div", { class: "rounded-xl border border-white/8 bg-white/[0.02] p-5", children: [
974
+ /* @__PURE__ */ jsxs("div", { class: "rounded-xl border border-border bg-card/40 p-5", children: [
929
975
  /* @__PURE__ */ jsxs("div", { class: "mb-4 flex items-center justify-between", children: [
930
- /* @__PURE__ */ jsx("h2", { class: "text-lg font-semibold text-white/80", children: selectedSection() ? `Pages \u2014 ${selectedSection()?.title}` : "Pages" }),
931
- /* @__PURE__ */ jsx(Show, { when: selectedSection(), children: /* @__PURE__ */ jsx("button", { type: "button", onClick: () => setShowPF(!showPF()), class: "rounded-lg bg-indigo-600 px-3 py-1.5 text-xs font-medium hover:bg-indigo-500", children: "+ Add" }) })
976
+ /* @__PURE__ */ jsx("h2", { class: "text-lg font-semibold text-foreground", children: selectedSection() ? `Pages \u2014 ${selectedSection()?.title}` : "Pages" }),
977
+ /* @__PURE__ */ jsx(Show, { when: selectedSection(), children: /* @__PURE__ */ jsx("button", { type: "button", onClick: () => setShowPF(!showPF()), class: "rounded-lg bg-primary px-3 py-1.5 text-xs font-medium hover:bg-primary/90", children: "+ Add" }) })
932
978
  ] }),
933
- /* @__PURE__ */ jsx(Show, { when: !selectedSection(), children: /* @__PURE__ */ jsx("p", { class: "py-16 text-center text-sm text-white/30", children: "Select a section" }) }),
934
- /* @__PURE__ */ jsx(Show, { when: showPF() && selectedSection(), children: /* @__PURE__ */ jsxs("div", { class: "mb-4 space-y-2 rounded-lg border border-white/10 bg-white/5 p-4", children: [
979
+ /* @__PURE__ */ jsx(Show, { when: !selectedSection(), children: /* @__PURE__ */ jsx("p", { class: "py-16 text-center text-sm text-muted-foreground", children: "Select a section" }) }),
980
+ /* @__PURE__ */ jsx(Show, { when: showPF() && selectedSection(), children: /* @__PURE__ */ jsxs("div", { class: "mb-4 space-y-2 rounded-lg border border-border bg-card/60 p-4", children: [
935
981
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-title", children: [
936
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Title" }),
982
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Title" }),
937
983
  /* @__PURE__ */ jsx(
938
984
  "input",
939
985
  {
@@ -942,12 +988,12 @@ function DocsAdminPage(props) {
942
988
  placeholder: "Install the package",
943
989
  value: pageForm().title,
944
990
  onInput: (e) => setPageForm({ ...pageForm(), title: e.currentTarget.value }),
945
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40"
991
+ class: "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"
946
992
  }
947
993
  )
948
994
  ] }),
949
995
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-slug", children: [
950
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Slug" }),
996
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Slug" }),
951
997
  /* @__PURE__ */ jsx(
952
998
  "input",
953
999
  {
@@ -956,12 +1002,12 @@ function DocsAdminPage(props) {
956
1002
  placeholder: "install",
957
1003
  value: pageForm().slug,
958
1004
  onInput: (e) => setPageForm({ ...pageForm(), slug: e.currentTarget.value }),
959
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40"
1005
+ class: "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"
960
1006
  }
961
1007
  )
962
1008
  ] }),
963
1009
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-content", children: [
964
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Content (MDX)" }),
1010
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Content (MDX)" }),
965
1011
  /* @__PURE__ */ jsx(
966
1012
  "textarea",
967
1013
  {
@@ -970,12 +1016,12 @@ function DocsAdminPage(props) {
970
1016
  value: pageForm().content,
971
1017
  onInput: (e) => setPageForm({ ...pageForm(), content: e.currentTarget.value }),
972
1018
  rows: 4,
973
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40 resize-y"
1019
+ class: "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"
974
1020
  }
975
1021
  )
976
1022
  ] }),
977
1023
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-tags", children: [
978
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Tags" }),
1024
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Tags" }),
979
1025
  /* @__PURE__ */ jsx(
980
1026
  "input",
981
1027
  {
@@ -984,19 +1030,19 @@ function DocsAdminPage(props) {
984
1030
  placeholder: "setup, install",
985
1031
  value: pageForm().tags,
986
1032
  onInput: (e) => setPageForm({ ...pageForm(), tags: e.currentTarget.value }),
987
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40"
1033
+ class: "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"
988
1034
  }
989
1035
  )
990
1036
  ] }),
991
1037
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-access", children: [
992
- /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-white/50", children: "Access" }),
1038
+ /* @__PURE__ */ jsx("span", { class: "text-xs font-medium text-muted-foreground", children: "Access" }),
993
1039
  /* @__PURE__ */ jsxs(
994
1040
  "select",
995
1041
  {
996
1042
  id: "docs-admin-page-access",
997
1043
  value: pageForm().access,
998
1044
  onChange: (e) => setPageForm({ ...pageForm(), access: toDocAccess(e.currentTarget.value) }),
999
- class: "w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm outline-none focus:border-indigo-500/40",
1045
+ class: "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",
1000
1046
  children: [
1001
1047
  /* @__PURE__ */ jsx("option", { value: "public", children: "Public" }),
1002
1048
  /* @__PURE__ */ jsx("option", { value: "team", children: "Team" }),
@@ -1018,25 +1064,25 @@ function DocsAdminPage(props) {
1018
1064
  setPageForm(initialPageForm());
1019
1065
  setShowPF(false);
1020
1066
  },
1021
- class: "rounded-lg bg-indigo-600 px-4 py-2 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-40 hover:bg-indigo-500",
1067
+ class: "rounded-lg bg-primary px-4 py-2 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-40 hover:bg-primary/90",
1022
1068
  children: "Create"
1023
1069
  }
1024
1070
  ),
1025
- /* @__PURE__ */ jsx("button", { type: "button", onClick: () => setShowPF(false), class: "rounded-lg border border-white/10 px-4 py-2 text-xs hover:bg-white/5", children: "Cancel" })
1071
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: () => setShowPF(false), class: "rounded-lg border border-border px-4 py-2 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground", children: "Cancel" })
1026
1072
  ] })
1027
1073
  ] }) }),
1028
- /* @__PURE__ */ jsx(Show, { when: selectedSection() && sectionPages().length > 0, children: /* @__PURE__ */ jsx("div", { class: "space-y-1", children: /* @__PURE__ */ jsx(For, { each: sectionPages(), children: (page) => /* @__PURE__ */ jsxs("div", { class: "group flex items-center gap-3 rounded-lg px-3 py-2.5 hover:bg-white/5", children: [
1074
+ /* @__PURE__ */ jsx(Show, { when: selectedSection() && sectionPages().length > 0, children: /* @__PURE__ */ jsx("div", { class: "space-y-1", children: /* @__PURE__ */ jsx(For, { each: sectionPages(), children: (page) => /* @__PURE__ */ jsxs("div", { class: "group flex items-center gap-3 rounded-lg px-3 py-2.5 transition-colors hover:bg-muted", children: [
1029
1075
  /* @__PURE__ */ jsxs("div", { class: "flex-1 min-w-0", children: [
1030
- /* @__PURE__ */ jsx("p", { class: "text-sm font-medium text-white/80 truncate", children: page.title }),
1031
- /* @__PURE__ */ jsxs("p", { class: "text-[11px] text-white/30", children: [
1076
+ /* @__PURE__ */ jsx("p", { class: "text-sm font-medium text-foreground truncate", children: page.title }),
1077
+ /* @__PURE__ */ jsxs("p", { class: "text-[11px] text-muted-foreground", children: [
1032
1078
  "/",
1033
1079
  page.slug
1034
1080
  ] })
1035
1081
  ] }),
1036
- /* @__PURE__ */ jsx("span", { class: `shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${page.status === "published" ? "bg-emerald-500/15 text-emerald-400" : page.status === "archived" ? "bg-white/5 text-white/30" : "bg-amber-500/15 text-amber-400"}`, children: page.status }),
1082
+ /* @__PURE__ */ jsx("span", { class: cn("shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium", page.status === "published" ? "bg-success/15 text-success" : page.status === "archived" ? "bg-muted text-muted-foreground" : "bg-warning/15 text-warning"), children: page.status }),
1037
1083
  /* @__PURE__ */ jsxs("div", { class: "flex items-center gap-1 opacity-0 group-hover:opacity-100", children: [
1038
- /* @__PURE__ */ jsx(Show, { when: page.status === "draft", children: /* @__PURE__ */ jsx("button", { type: "button", onClick: () => props.admin.publishPage(page.id), class: "rounded px-2 py-1 text-[11px] text-emerald-400 hover:bg-emerald-500/10", children: "Publish" }) }),
1039
- /* @__PURE__ */ jsx(Show, { when: page.status === "published", children: /* @__PURE__ */ jsx("button", { type: "button", onClick: () => props.admin.archivePage(page.id), class: "rounded px-2 py-1 text-[11px] text-amber-400 hover:bg-amber-500/10", children: "Archive" }) }),
1084
+ /* @__PURE__ */ jsx(Show, { when: page.status === "draft", children: /* @__PURE__ */ jsx("button", { type: "button", onClick: () => props.admin.publishPage(page.id), class: "rounded px-2 py-1 text-[11px] text-success hover:bg-success/10", children: "Publish" }) }),
1085
+ /* @__PURE__ */ jsx(Show, { when: page.status === "published", children: /* @__PURE__ */ jsx("button", { type: "button", onClick: () => props.admin.archivePage(page.id), class: "rounded px-2 py-1 text-[11px] text-warning hover:bg-warning/10", children: "Archive" }) }),
1040
1086
  /* @__PURE__ */ jsx(
1041
1087
  "button",
1042
1088
  {
@@ -1044,14 +1090,14 @@ function DocsAdminPage(props) {
1044
1090
  onClick: () => {
1045
1091
  if (confirm(`Delete "${page.title}"?`)) props.admin.deletePage(page.id);
1046
1092
  },
1047
- class: "rounded p-1 text-white/20 hover:text-red-400",
1093
+ class: "rounded p-1 text-muted-foreground/60 hover:text-destructive",
1048
1094
  "aria-label": `Delete page ${page.title}`,
1049
1095
  children: "\u2715"
1050
1096
  }
1051
1097
  )
1052
1098
  ] })
1053
1099
  ] }) }) }) }),
1054
- /* @__PURE__ */ jsx(Show, { when: selectedSection() && sectionPages().length === 0 && !showPF(), children: /* @__PURE__ */ jsx("p", { class: "py-12 text-center text-sm text-white/30", children: "No pages in this section" }) })
1100
+ /* @__PURE__ */ jsx(Show, { when: selectedSection() && sectionPages().length === 0 && !showPF(), children: /* @__PURE__ */ jsx("p", { class: "py-12 text-center text-sm text-muted-foreground", children: "No pages in this section" }) })
1055
1101
  ] })
1056
1102
  ] })
1057
1103
  ] }) })
@@ -1111,10 +1157,10 @@ function DocsIndexPage(props) {
1111
1157
  Show,
1112
1158
  {
1113
1159
  when: !docs.isLoading(),
1114
- fallback: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-[#090a0f] px-6 py-16", props.class), children: /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-5xl", children: [
1115
- /* @__PURE__ */ jsx("div", { class: "mb-10 h-10 w-64 animate-pulse rounded-lg bg-white/5" }),
1116
- /* @__PURE__ */ jsx("div", { class: "mb-8 h-12 w-full max-w-xl animate-pulse rounded-xl bg-white/5" }),
1117
- /* @__PURE__ */ jsx("div", { class: "grid gap-4 md:grid-cols-2 lg:grid-cols-3", children: /* @__PURE__ */ jsx(For, { each: Array(6), children: () => /* @__PURE__ */ jsx("div", { class: "h-36 animate-pulse rounded-xl bg-white/5" }) }) })
1160
+ fallback: /* @__PURE__ */ jsx("div", { class: cn("min-h-screen bg-background px-6 py-16", props.class), children: /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-5xl", children: [
1161
+ /* @__PURE__ */ jsx("div", { class: "mb-10 h-10 w-64 animate-pulse rounded-lg bg-foreground/5" }),
1162
+ /* @__PURE__ */ jsx("div", { class: "mb-8 h-12 w-full max-w-xl animate-pulse rounded-xl bg-foreground/5" }),
1163
+ /* @__PURE__ */ jsx("div", { class: "grid gap-4 md:grid-cols-2 lg:grid-cols-3", children: /* @__PURE__ */ jsx(For, { each: Array(6), children: () => /* @__PURE__ */ jsx("div", { class: "h-36 animate-pulse rounded-xl bg-foreground/5" }) }) })
1118
1164
  ] }) }),
1119
1165
  children: /* @__PURE__ */ jsx(
1120
1166
  Show,
@@ -1124,30 +1170,31 @@ function DocsIndexPage(props) {
1124
1170
  "div",
1125
1171
  {
1126
1172
  class: cn(
1127
- "flex min-h-screen flex-col items-center justify-center bg-[#090a0f] text-center",
1173
+ "flex min-h-screen flex-col items-center justify-center bg-background text-center",
1128
1174
  props.class
1129
1175
  ),
1130
1176
  children: [
1131
1177
  /* @__PURE__ */ jsx("div", { class: "mb-4 text-6xl opacity-30", children: "\u{1F4DA}" }),
1132
- /* @__PURE__ */ jsx("h2", { class: "mb-2 text-xl font-semibold text-white/80", children: "No documentation yet" }),
1133
- /* @__PURE__ */ jsx("p", { class: "max-w-sm text-sm text-white/40", children: "Create your first section and pages to get started." })
1178
+ /* @__PURE__ */ jsx("h2", { class: "mb-2 text-xl font-semibold text-foreground/80", children: "No documentation yet" }),
1179
+ /* @__PURE__ */ jsx("p", { class: "max-w-sm text-sm text-foreground/40", children: "Create your first section and pages to get started." })
1134
1180
  ]
1135
1181
  }
1136
1182
  ),
1137
- children: /* @__PURE__ */ jsxs("div", { class: cn("min-h-screen bg-[#090a0f] text-white", props.class), children: [
1183
+ children: /* @__PURE__ */ jsxs("div", { class: cn("min-h-screen bg-background text-foreground", props.class), children: [
1138
1184
  /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-5xl px-6 py-16", children: [
1139
1185
  /* @__PURE__ */ jsx("h1", { class: "mb-2 text-4xl font-bold tracking-tight", children: "Documentation" }),
1140
- /* @__PURE__ */ jsx("p", { class: "mb-10 text-lg text-white/50", children: "Browse guides, API references, and tutorials." }),
1186
+ /* @__PURE__ */ jsx("p", { class: "mb-10 text-lg text-foreground/50", children: "Browse guides, API references, and tutorials." }),
1141
1187
  /* @__PURE__ */ jsxs(
1142
1188
  "button",
1143
1189
  {
1144
1190
  type: "button",
1145
1191
  onClick: () => setIsSearchOpen(true),
1146
- class: "mb-12 flex w-full max-w-xl items-center gap-3 rounded-xl border border-white/10 bg-white/5 px-5 py-3.5 text-left text-sm text-white/30 transition-colors hover:border-white/20",
1192
+ "aria-haspopup": "dialog",
1193
+ class: "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",
1147
1194
  children: [
1148
1195
  /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", class: "h-4.5 w-4.5 shrink-0", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { "fill-rule": "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", "clip-rule": "evenodd" }) }),
1149
1196
  /* @__PURE__ */ jsx("span", { class: "flex-1", children: "Search documentation\u2026" }),
1150
- /* @__PURE__ */ jsx("kbd", { class: "rounded border border-white/10 bg-white/5 px-2 py-0.5 text-[11px]", children: "\u2318K" })
1197
+ /* @__PURE__ */ jsx("kbd", { class: "rounded border border-border/60 bg-foreground/5 px-2 py-0.5 text-[11px]", children: "\u2318K" })
1151
1198
  ]
1152
1199
  }
1153
1200
  ),
@@ -1159,12 +1206,12 @@ function DocsIndexPage(props) {
1159
1206
  const fp = section.pages?.[0];
1160
1207
  if (fp && props.onSelectPage) props.onSelectPage(fp, section);
1161
1208
  },
1162
- class: "group flex flex-col rounded-xl border border-white/8 bg-white/[0.03] p-5 text-left transition-all hover:border-indigo-500/30 hover:bg-white/[0.06]",
1209
+ class: "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",
1163
1210
  children: [
1164
1211
  /* @__PURE__ */ jsx(Show, { when: section.icon, children: /* @__PURE__ */ jsx("span", { class: "mb-3 text-2xl", children: section.icon }) }),
1165
- /* @__PURE__ */ jsx("h3", { class: "mb-1.5 text-base font-semibold text-white/90 group-hover:text-white", children: section.title }),
1166
- /* @__PURE__ */ jsx(Show, { when: section.description, children: /* @__PURE__ */ jsx("p", { class: "mb-3 flex-1 text-sm leading-relaxed text-white/40", children: section.description }) }),
1167
- /* @__PURE__ */ jsx("div", { class: "text-xs text-white/25", children: /* @__PURE__ */ jsxs("span", { children: [
1212
+ /* @__PURE__ */ jsx("h3", { class: "mb-1.5 text-base font-semibold text-foreground/90 group-hover:text-foreground", children: section.title }),
1213
+ /* @__PURE__ */ jsx(Show, { when: section.description, children: /* @__PURE__ */ jsx("p", { class: "mb-3 flex-1 text-sm leading-relaxed text-foreground/40", children: section.description }) }),
1214
+ /* @__PURE__ */ jsx("div", { class: "text-xs text-foreground/25", children: /* @__PURE__ */ jsxs("span", { children: [
1168
1215
  section.pageCount ?? 0,
1169
1216
  " pages"
1170
1217
  ] }) })
@@ -1271,9 +1318,9 @@ function DocViewPage(props) {
1271
1318
  Show,
1272
1319
  {
1273
1320
  when: !docs.isLoading() && props.page() !== void 0,
1274
- fallback: /* @__PURE__ */ jsxs("div", { class: cn("flex min-h-screen bg-[#090a0f]", props.class), children: [
1275
- /* @__PURE__ */ jsx("div", { class: "hidden w-[260px] shrink-0 border-r border-white/5 bg-[#0b0c12] lg:block", children: /* @__PURE__ */ jsx("div", { class: "space-y-3 p-4", children: Array.from({ length: 8 }).map(() => /* @__PURE__ */ jsx("div", { class: "h-8 animate-pulse rounded-lg bg-white/5" })) }) }),
1276
- /* @__PURE__ */ jsx("div", { class: "flex-1 px-10 py-8", children: /* @__PURE__ */ jsx("div", { class: "mx-auto max-w-3xl space-y-4", children: /* @__PURE__ */ jsx("div", { class: "h-10 w-96 animate-pulse rounded bg-white/5" }) }) })
1321
+ fallback: /* @__PURE__ */ jsxs("div", { class: cn("flex min-h-screen bg-background", props.class), children: [
1322
+ /* @__PURE__ */ jsx("div", { class: "hidden w-[260px] shrink-0 border-r border-border bg-card lg:block", children: /* @__PURE__ */ jsx("div", { class: "space-y-3 p-4", children: Array.from({ length: 8 }).map(() => /* @__PURE__ */ jsx("div", { class: "h-8 animate-pulse rounded-lg bg-foreground/5" })) }) }),
1323
+ /* @__PURE__ */ jsx("div", { class: "flex-1 px-10 py-8", children: /* @__PURE__ */ jsx("div", { class: "mx-auto max-w-3xl space-y-4", children: /* @__PURE__ */ jsx("div", { class: "h-10 w-96 animate-pulse rounded bg-foreground/5" }) }) })
1277
1324
  ] }),
1278
1325
  children: /* @__PURE__ */ jsx(
1279
1326
  Show,
@@ -1283,12 +1330,12 @@ function DocViewPage(props) {
1283
1330
  "div",
1284
1331
  {
1285
1332
  class: cn(
1286
- "flex min-h-screen flex-col items-center justify-center bg-[#090a0f] text-center",
1333
+ "flex min-h-screen flex-col items-center justify-center bg-background text-center",
1287
1334
  props.class
1288
1335
  ),
1289
1336
  children: [
1290
1337
  /* @__PURE__ */ jsx("div", { class: "mb-4 text-6xl opacity-30", children: "\u{1F50D}" }),
1291
- /* @__PURE__ */ jsx("h2", { class: "mb-2 text-xl font-semibold text-white/80", children: "Page not found" })
1338
+ /* @__PURE__ */ jsx("h2", { class: "mb-2 text-xl font-semibold text-foreground/80", children: "Page not found" })
1292
1339
  ]
1293
1340
  }
1294
1341
  ),
@@ -1305,7 +1352,7 @@ function DocViewPage(props) {
1305
1352
  children: [
1306
1353
  /* @__PURE__ */ jsxs("div", { class: "mb-8", children: [
1307
1354
  /* @__PURE__ */ jsx("h1", { class: "mb-3 text-3xl font-bold tracking-tight", children: page().title }),
1308
- /* @__PURE__ */ jsxs("div", { class: "flex flex-wrap items-center gap-4 text-sm text-white/40", children: [
1355
+ /* @__PURE__ */ jsxs("div", { class: "flex flex-wrap items-center gap-4 text-sm text-foreground/40", children: [
1309
1356
  /* @__PURE__ */ jsx("span", { children: page().author.name }),
1310
1357
  /* @__PURE__ */ jsx(Show, { when: page().readingTime > 0, children: /* @__PURE__ */ jsxs("span", { children: [
1311
1358
  page().readingTime,
@@ -1318,7 +1365,7 @@ function DocViewPage(props) {
1318
1365
  ] })
1319
1366
  ] }),
1320
1367
  /* @__PURE__ */ jsx(DocPage, { page: page() }),
1321
- /* @__PURE__ */ jsx("div", { class: "mt-10 flex items-center justify-between border-t border-white/5 pt-6", children: /* @__PURE__ */ jsx(EditButton, { pageSlug: page().slug, editUrl: props.editPageUrl }) }),
1368
+ /* @__PURE__ */ jsx("div", { class: "mt-10 flex items-center justify-between border-t border-border/40 pt-6", children: /* @__PURE__ */ jsx(EditButton, { pageSlug: page().slug, editUrl: props.editPageUrl }) }),
1322
1369
  /* @__PURE__ */ jsx(PageNavigation, { prev: nav().prev, next: nav().next })
1323
1370
  ]
1324
1371
  }