@geenius/docs 0.8.10 → 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.
Files changed (33) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +32 -20
  3. package/packages/convex/dist/index.d.ts +4 -4
  4. package/packages/convex/dist/index.js.map +1 -1
  5. package/packages/react/dist/index.css +2 -0
  6. package/packages/react/dist/index.css.map +1 -0
  7. package/packages/react/dist/index.d.ts +67 -49
  8. package/packages/react/dist/index.js +267 -172
  9. package/packages/react/dist/index.js.map +1 -1
  10. package/packages/react-css/dist/index.css +30 -18
  11. package/packages/react-css/dist/index.css.map +1 -1
  12. package/packages/react-css/dist/index.d.ts +68 -33
  13. package/packages/react-css/dist/index.js +61 -38
  14. package/packages/react-css/dist/index.js.map +1 -1
  15. package/packages/shared/dist/{chunk-BR2XBF64.js → chunk-QKKVTCRJ.js} +2 -2
  16. package/packages/shared/dist/{chunk-BR2XBF64.js.map → chunk-QKKVTCRJ.js.map} +1 -1
  17. package/packages/shared/dist/index.d.ts +55 -10
  18. package/packages/shared/dist/index.js +52 -6
  19. package/packages/shared/dist/index.js.map +1 -1
  20. package/packages/shared/dist/providers.d.ts +4 -4
  21. package/packages/shared/dist/providers.js +1 -1
  22. package/packages/shared/dist/providers.js.map +1 -1
  23. package/packages/shared/dist/{types-n-Ryn258.d.ts → types-D8ITXVwj.d.ts} +1 -1
  24. package/packages/solidjs/dist/index.css +2 -0
  25. package/packages/solidjs/dist/index.css.map +1 -0
  26. package/packages/solidjs/dist/index.d.ts +57 -27
  27. package/packages/solidjs/dist/index.js +231 -154
  28. package/packages/solidjs/dist/index.js.map +1 -1
  29. package/packages/solidjs-css/dist/index.css +30 -18
  30. package/packages/solidjs-css/dist/index.css.map +1 -1
  31. package/packages/solidjs-css/dist/index.d.ts +55 -20
  32. package/packages/solidjs-css/dist/index.js +34 -25
  33. package/packages/solidjs-css/dist/index.js.map +1 -1
@@ -1,21 +1,27 @@
1
1
  import { For, Show, createSignal, createUniqueId, createMemo, createEffect, children, onCleanup } from 'solid-js';
2
+ import { clsx } from 'clsx';
3
+ import { twMerge } from 'tailwind-merge';
2
4
  import { jsx, jsxs, Fragment } from 'solid-js/h/jsx-runtime';
3
5
  import remarkGfm from 'remark-gfm';
6
+ import { Dynamic } from 'solid-js/web';
4
7
  import { SolidMarkdown } from 'solid-markdown';
5
8
  import { AnimatePresence, motion } from '@geenius/motion/solidjs';
6
9
 
7
10
  // src/components/Breadcrumbs.tsx
11
+ function cn(...inputs) {
12
+ return twMerge(clsx(inputs));
13
+ }
8
14
  function Breadcrumbs(props) {
9
15
  if (props.items.length === 0) {
10
16
  return null;
11
17
  }
12
- return /* @__PURE__ */ jsx("nav", { class: "flex items-center gap-1.5 text-sm", "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx(For, { each: props.items, children: (item, idx) => /* @__PURE__ */ jsxs(Fragment, { children: [
13
- /* @__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" }) }) }),
14
- /* @__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 }) })
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: [
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 }) })
15
21
  ] }) }) });
16
22
  }
17
23
 
18
- // ../shared/dist/chunk-BR2XBF64.js
24
+ // ../shared/dist/chunk-QKKVTCRJ.js
19
25
  function toTocLevel(level) {
20
26
  if (level === 2 || level === 3 || level === 4) {
21
27
  return level;
@@ -173,11 +179,11 @@ function createHeading(Tag, className) {
173
179
  return (props) => {
174
180
  const text = getNodeText(props.children);
175
181
  const id = slugify(text);
176
- return /* @__PURE__ */ jsx(Tag, { id, class: 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 }) });
177
183
  };
178
184
  }
179
185
  function DocPage(props) {
180
- return /* @__PURE__ */ jsx("article", { class: "prose-custom max-w-none", children: /* @__PURE__ */ jsx(
186
+ return /* @__PURE__ */ jsx("article", { class: cn("prose-custom max-w-none", props.class), children: /* @__PURE__ */ jsx(
181
187
  SolidMarkdown,
182
188
  {
183
189
  remarkPlugins: [remarkGfm],
@@ -185,27 +191,27 @@ function DocPage(props) {
185
191
  h1: createHeading("h1", "scroll-mt-20 mt-8 mb-4 text-3xl font-bold"),
186
192
  h2: createHeading(
187
193
  "h2",
188
- "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"
189
195
  ),
190
196
  h3: createHeading("h3", "scroll-mt-20 mt-6 mb-2 text-xl font-semibold"),
191
197
  h4: createHeading("h4", "scroll-mt-20 mt-4 mb-2 text-lg font-medium"),
192
- 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 }),
193
199
  a: (componentProps) => /* @__PURE__ */ jsx(
194
200
  "a",
195
201
  {
196
202
  href: componentProps.href,
197
203
  target: componentProps.href?.startsWith("/") ? void 0 : "_blank",
198
204
  rel: componentProps.href?.startsWith("/") ? void 0 : "noreferrer noopener",
199
- class: "underline underline-offset-2 transition-colors hover:text-indigo-300",
205
+ class: "underline underline-offset-2 transition-colors hover:text-primary",
200
206
  children: componentProps.children
201
207
  }
202
208
  ),
203
- 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 }),
204
- 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 }),
205
- 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 }),
206
- 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 }) }),
207
- 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 }),
208
- 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 })
209
215
  },
210
216
  children: props.page.content
211
217
  }
@@ -259,7 +265,7 @@ function DocSearch(props) {
259
265
  if (!props.isOpen) {
260
266
  return null;
261
267
  }
262
- return /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsxs("div", { class: "fixed inset-0 z-50 flex items-start justify-center pt-[15vh]", children: [
268
+ return /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsxs("div", { class: cn("fixed inset-0 z-50 flex items-start justify-center pt-[15vh]", props.class), children: [
263
269
  /* @__PURE__ */ jsx(
264
270
  motion.button,
265
271
  {
@@ -268,7 +274,7 @@ function DocSearch(props) {
268
274
  initial: { opacity: 0 },
269
275
  animate: { opacity: 1 },
270
276
  exit: { opacity: 0 },
271
- class: "fixed inset-0 bg-black/60 backdrop-blur-md",
277
+ class: "fixed inset-0 bg-background/80 backdrop-blur-md",
272
278
  onClick: () => {
273
279
  props.onClose();
274
280
  previousFocus?.focus();
@@ -283,16 +289,16 @@ function DocSearch(props) {
283
289
  animate: { opacity: 1, scale: 1, y: 0 },
284
290
  exit: { opacity: 0, scale: 0.95, y: -20 },
285
291
  transition: { type: "spring", damping: 25, stiffness: 250 },
286
- 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",
287
293
  role: "dialog",
288
294
  "aria-modal": "true",
289
295
  "aria-labelledby": `${dialogId}-title`,
290
296
  onKeyDown: handleKeyDown,
291
297
  onClick: (e) => e.stopPropagation(),
292
298
  children: [
293
- /* @__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: [
294
300
  /* @__PURE__ */ jsx("h2", { id: `${dialogId}-title`, class: "sr-only", children: "Search documentation" }),
295
- /* @__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" }) }),
296
302
  /* @__PURE__ */ jsx(
297
303
  "input",
298
304
  {
@@ -304,10 +310,10 @@ function DocSearch(props) {
304
310
  "aria-label": "Search documentation",
305
311
  "aria-controls": `${dialogId}-results`,
306
312
  "aria-activedescendant": activeResultId(),
307
- 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"
308
314
  }
309
315
  ),
310
- /* @__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" })
311
317
  ] }),
312
318
  /* @__PURE__ */ jsxs(
313
319
  "div",
@@ -323,7 +329,7 @@ function DocSearch(props) {
323
329
  initial: { opacity: 0 },
324
330
  animate: { opacity: 1 },
325
331
  exit: { opacity: 0 },
326
- 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",
327
333
  children: [
328
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: [
329
335
  /* @__PURE__ */ jsx("circle", { cx: "11", cy: "11", r: "8", "stroke-width": "1.5" }),
@@ -344,7 +350,7 @@ function DocSearch(props) {
344
350
  initial: { opacity: 0 },
345
351
  animate: { opacity: 1 },
346
352
  exit: { opacity: 0 },
347
- class: "py-8 text-center text-sm text-white/30",
353
+ class: "py-8 text-center text-sm text-foreground/30",
348
354
  children: "Start typing to search\u2026"
349
355
  }
350
356
  ) })
@@ -361,41 +367,44 @@ function DocSearch(props) {
361
367
  "aria-selected": idx() === activeIndex(),
362
368
  onMouseEnter: () => setActiveIndex(idx()),
363
369
  onClick: () => props.onSelect(result),
364
- 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
+ ),
365
374
  children: [
366
375
  /* @__PURE__ */ jsx(Show, { when: idx() === activeIndex(), children: /* @__PURE__ */ jsx(
367
376
  motion.div,
368
377
  {
369
378
  layoutId: "search-active-bg",
370
- class: "absolute inset-0 bg-indigo-500/10 rounded-xl",
379
+ class: "absolute inset-0 rounded-xl bg-primary/10",
371
380
  transition: { type: "spring", stiffness: 300, damping: 30 }
372
381
  }
373
382
  ) }),
374
383
  /* @__PURE__ */ jsxs("div", { class: "relative z-10 flex items-center gap-2", children: [
375
- /* @__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 }),
376
385
  /* @__PURE__ */ jsx("span", { class: "text-sm font-medium", children: result.pageTitle })
377
386
  ] }),
378
- /* @__PURE__ */ jsx("p", { class: "relative z-10 truncate text-xs text-white/40", children: highlightMatch(result.highlight, props.query) }),
379
- /* @__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 }) }) }) })
380
389
  ]
381
390
  }
382
391
  ) })
383
392
  ]
384
393
  }
385
394
  ),
386
- /* @__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: [
387
396
  /* @__PURE__ */ jsxs("span", { class: "flex items-center gap-1", children: [
388
- /* @__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" }),
389
398
  " ",
390
- /* @__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" }),
391
400
  " navigate"
392
401
  ] }),
393
402
  /* @__PURE__ */ jsxs("span", { class: "flex items-center gap-1", children: [
394
- /* @__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" }),
395
404
  " select"
396
405
  ] }),
397
406
  /* @__PURE__ */ jsxs("span", { class: "flex items-center gap-1", children: [
398
- /* @__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" }),
399
408
  " close"
400
409
  ] })
401
410
  ] })
@@ -427,18 +436,22 @@ function DocSidebar(props) {
427
436
  {
428
437
  type: "button",
429
438
  onClick: () => toggle(section.id),
430
- 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
+ ),
431
444
  whileHover: { x: 2 },
432
445
  whileTap: { scale: 0.98 },
433
446
  children: [
434
447
  /* @__PURE__ */ jsx(Show, { when: section.icon, children: /* @__PURE__ */ jsx("span", { class: "text-base", children: section.icon }) }),
435
- /* @__PURE__ */ jsx("span", { class: "flex-1 truncate text-zinc-800 dark:text-zinc-200", children: section.title }),
436
- /* @__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 }) }),
437
450
  /* @__PURE__ */ jsx(Show, { when: hasContent(), children: /* @__PURE__ */ jsx(
438
451
  motion.svg,
439
452
  {
440
453
  animate: { rotate: isExpanded() ? 90 : 0 },
441
- 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",
442
455
  viewBox: "0 0 16 16",
443
456
  fill: "currentColor",
444
457
  children: /* @__PURE__ */ jsx("path", { d: "M6 4l4 4-4 4", stroke: "currentColor", "stroke-width": "2", fill: "none" })
@@ -454,7 +467,7 @@ function DocSidebar(props) {
454
467
  animate: { height: "auto", opacity: 1 },
455
468
  exit: { height: 0, opacity: 0 },
456
469
  transition: { duration: 0.2, ease: "easeInOut" },
457
- 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",
458
471
  children: [
459
472
  /* @__PURE__ */ jsx(For, { each: pages(), children: (page) => /* @__PURE__ */ jsx(
460
473
  motion.button,
@@ -463,7 +476,10 @@ function DocSidebar(props) {
463
476
  onClick: () => props.onNavigate(page, section),
464
477
  whileHover: { x: 2 },
465
478
  whileTap: { scale: 0.98 },
466
- 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
+ ),
467
483
  children: /* @__PURE__ */ jsx("span", { class: "truncate", children: page.title })
468
484
  }
469
485
  ) }),
@@ -473,8 +489,8 @@ function DocSidebar(props) {
473
489
  ) }) })
474
490
  ] });
475
491
  };
476
- return /* @__PURE__ */ jsxs("nav", { class: "flex flex-col gap-1 py-4", children: [
477
- /* @__PURE__ */ jsx("div", { class: "px-4 pb-3 text-xs font-bold uppercase tracking-widest text-zinc-400 dark:text-zinc-500", children: "Documentation" }),
492
+ return /* @__PURE__ */ jsxs("nav", { class: cn("flex flex-col gap-1 py-4", props.class), children: [
493
+ /* @__PURE__ */ jsx("div", { class: "px-4 pb-3 text-xs font-bold uppercase tracking-widest text-muted-foreground", children: "Documentation" }),
478
494
  /* @__PURE__ */ jsx(For, { each: topLevel(), children: (s) => renderSection(s, 0) })
479
495
  ] });
480
496
  }
@@ -486,7 +502,10 @@ function TocLink(props) {
486
502
  motion.a,
487
503
  {
488
504
  href: `#${props.item.id}`,
489
- class: `block truncate border-l-2 py-1 text-[13px] transition-all relative ${isActive() ? "border-indigo-500 text-indigo-400 font-medium" : "border-transparent text-white/40 hover:text-white/80 hover:border-white/20"}`,
505
+ class: cn(
506
+ "block truncate border-l-2 py-1 text-[13px] transition-all relative",
507
+ isActive() ? "border-primary text-primary font-medium" : "border-transparent text-foreground/40 hover:text-foreground/80 hover:border-border/80"
508
+ ),
490
509
  style: { "padding-left": `${12 + depth() * 12}px` },
491
510
  whileHover: { x: 2 },
492
511
  whileTap: { scale: 0.98 },
@@ -501,8 +520,8 @@ function TableOfContents(props) {
501
520
  if (props.toc.length === 0) {
502
521
  return null;
503
522
  }
504
- return /* @__PURE__ */ jsxs("nav", { class: "sticky top-24", children: [
505
- /* @__PURE__ */ jsx("h4", { class: "mb-3 text-xs font-semibold uppercase tracking-widest text-white/40", children: "On this page" }),
523
+ return /* @__PURE__ */ jsxs("nav", { class: cn("sticky top-24", props.class), children: [
524
+ /* @__PURE__ */ jsx("h4", { class: "mb-3 text-xs font-semibold uppercase tracking-widest text-foreground/40", children: "On this page" }),
506
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 }) }) }) }) })
507
526
  ] });
508
527
  }
@@ -510,8 +529,8 @@ function DocsLayout(props) {
510
529
  const resolvedChildren = children(() => props.children);
511
530
  const breadcrumbs = () => props.breadcrumbs ?? [];
512
531
  const toc = () => props.toc ?? [];
513
- return /* @__PURE__ */ jsxs("div", { class: "flex min-h-screen bg-[#090a0f] text-white", children: [
514
- /* @__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(
515
534
  DocSidebar,
516
535
  {
517
536
  sections: props.sections,
@@ -565,7 +584,10 @@ function EditButton(props) {
565
584
  href: `${props.editUrl.replace(/\/$/, "")}/${props.pageSlug}.mdx`,
566
585
  target: "_blank",
567
586
  rel: "noopener noreferrer",
568
- class: "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",
587
+ class: cn(
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",
589
+ props.class
590
+ ),
569
591
  children: [
570
592
  /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", class: "h-3.5 w-3.5", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M11.5 1.5l3 3-9 9H2.5v-3l9-9z", "stroke-width": "1.5", "stroke-linejoin": "round" }) }),
571
593
  "Edit this page"
@@ -577,14 +599,14 @@ function PageNavigation(props) {
577
599
  if (!props.prev && !props.next) {
578
600
  return null;
579
601
  }
580
- return /* @__PURE__ */ jsxs("div", { class: "mt-12 flex items-stretch gap-4 border-t border-white/10 pt-8", children: [
581
- /* @__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: [
582
- /* @__PURE__ */ jsx("span", { class: "text-xs text-white/40 group-hover:text-indigo-400 transition-colors", children: "\u2190 Previous" }),
583
- /* @__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 })
584
606
  ] }) }),
585
- /* @__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: [
586
- /* @__PURE__ */ jsx("span", { class: "text-xs text-white/40 group-hover:text-indigo-400 transition-colors", children: "Next \u2192" }),
587
- /* @__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 })
588
610
  ] }) })
589
611
  ] });
590
612
  }
@@ -593,13 +615,20 @@ function VersionSelector(props) {
593
615
  return null;
594
616
  }
595
617
  const [isOpen, setIsOpen] = createSignal(false);
596
- return /* @__PURE__ */ jsxs("div", { class: "relative", children: [
618
+ const menuId = createUniqueId();
619
+ return /* @__PURE__ */ jsxs("div", { class: cn("relative", props.class), children: [
597
620
  /* @__PURE__ */ jsxs(
598
621
  "button",
599
622
  {
600
623
  type: "button",
601
624
  onClick: () => setIsOpen(!isOpen()),
602
- 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
+ ),
603
632
  children: [
604
633
  /* @__PURE__ */ jsxs("span", { children: [
605
634
  "v",
@@ -609,7 +638,7 @@ function VersionSelector(props) {
609
638
  "svg",
610
639
  {
611
640
  "aria-hidden": "true",
612
- class: `h-3 w-3 transition-transform ${isOpen() ? "rotate-180" : ""}`,
641
+ class: cn("h-3 w-3 transition-transform", isOpen() && "rotate-180"),
613
642
  viewBox: "0 0 16 16",
614
643
  children: /* @__PURE__ */ jsx("path", { d: "M4 6l4 4 4-4", stroke: "currentColor", "stroke-width": "2", fill: "none" })
615
644
  }
@@ -617,22 +646,41 @@ function VersionSelector(props) {
617
646
  ]
618
647
  }
619
648
  ),
620
- /* @__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(
621
- "button",
649
+ /* @__PURE__ */ jsx(Show, { when: isOpen(), children: /* @__PURE__ */ jsx(
650
+ "div",
622
651
  {
623
- type: "button",
624
- onClick: () => {
625
- props.onSelect(v);
626
- 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
+ }
627
660
  },
628
- 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"}`,
629
- children: [
630
- "v",
631
- v,
632
- v === props.current && /* @__PURE__ */ jsx("span", { class: "ml-auto text-[10px]", children: "\u2713" })
633
- ]
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
+ ) })
634
682
  }
635
- ) }) }) })
683
+ ) })
636
684
  ] });
637
685
  }
638
686
  function createDocSearch(searchFn, debounceMs = 250) {
@@ -681,8 +729,8 @@ function DocSearchPage(props) {
681
729
  Show,
682
730
  {
683
731
  when: props.tree() !== void 0,
684
- fallback: /* @__PURE__ */ jsx("div", { class: "min-h-screen bg-[#090a0f] px-6 py-16", 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" }) }) }),
685
- children: /* @__PURE__ */ jsx("div", { class: "min-h-screen bg-[#090a0f] text-white", 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: [
686
734
  /* @__PURE__ */ jsx("h1", { class: "mb-8 text-2xl font-bold", children: "Search Documentation" }),
687
735
  /* @__PURE__ */ jsxs("div", { class: "relative mb-8", children: [
688
736
  /* @__PURE__ */ jsx(
@@ -693,10 +741,11 @@ function DocSearchPage(props) {
693
741
  onInput: (e) => setQuery(e.currentTarget.value),
694
742
  placeholder: "Type to search\u2026",
695
743
  autofocus: true,
696
- 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"
697
746
  }
698
747
  ),
699
- /* @__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" }) }) })
700
749
  ] }),
701
750
  /* @__PURE__ */ jsx(Show, { when: results().length > 0, children: /* @__PURE__ */ jsx("div", { class: "space-y-2", children: /* @__PURE__ */ jsx(For, { each: results(), children: (result) => {
702
751
  const section = () => sections().find((s) => s.slug === result.sectionSlug);
@@ -710,24 +759,24 @@ function DocSearchPage(props) {
710
759
  const s = section();
711
760
  if (p && s && props.onSelectPage) props.onSelectPage(p, s);
712
761
  },
713
- 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",
714
763
  children: [
715
764
  /* @__PURE__ */ jsxs("div", { class: "flex items-center gap-2", children: [
716
- /* @__PURE__ */ jsx("span", { class: "rounded bg-indigo-500/20 px-2 py-0.5 text-[10px] font-medium text-indigo-300", children: result.sectionTitle }),
717
- /* @__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 })
718
767
  ] }),
719
- /* @__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()) })
720
769
  ]
721
770
  }
722
771
  );
723
772
  } }) }) }),
724
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: [
725
774
  /* @__PURE__ */ jsx("div", { class: "mb-4 text-5xl opacity-30", children: "\u{1F50D}" }),
726
- /* @__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" })
727
776
  ] }) }),
728
777
  /* @__PURE__ */ jsx(Show, { when: !query().trim(), children: /* @__PURE__ */ jsxs("div", { class: "flex flex-col items-center py-16 text-center", children: [
729
778
  /* @__PURE__ */ jsx("div", { class: "mb-4 text-5xl opacity-20", children: "\u{1F4D6}" }),
730
- /* @__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" })
731
780
  ] }) })
732
781
  ] }) })
733
782
  }
@@ -781,18 +830,18 @@ function DocsAdminPage(props) {
781
830
  Show,
782
831
  {
783
832
  when: props.tree?.() !== void 0,
784
- fallback: /* @__PURE__ */ jsx("div", { class: "min-h-screen bg-[#090a0f] px-6 py-12", 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" }) }) }),
785
- children: /* @__PURE__ */ jsx("div", { class: "min-h-screen bg-[#090a0f] text-white", 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: [
786
835
  /* @__PURE__ */ jsx("h1", { class: "mb-8 text-2xl font-bold", children: "Docs Admin" }),
787
836
  /* @__PURE__ */ jsxs("div", { class: "grid gap-6 md:grid-cols-2", children: [
788
- /* @__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: [
789
838
  /* @__PURE__ */ jsxs("div", { class: "mb-4 flex items-center justify-between", children: [
790
- /* @__PURE__ */ jsx("h2", { class: "text-lg font-semibold text-white/80", children: "Sections" }),
791
- /* @__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" })
792
841
  ] }),
793
- /* @__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: [
794
843
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-title", children: [
795
- /* @__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" }),
796
845
  /* @__PURE__ */ jsx(
797
846
  "input",
798
847
  {
@@ -801,12 +850,12 @@ function DocsAdminPage(props) {
801
850
  placeholder: "Getting Started",
802
851
  value: sectionForm().title,
803
852
  onInput: (e) => setSectionForm({ ...sectionForm(), title: e.currentTarget.value }),
804
- 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"
805
854
  }
806
855
  )
807
856
  ] }),
808
857
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-slug", children: [
809
- /* @__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" }),
810
859
  /* @__PURE__ */ jsx(
811
860
  "input",
812
861
  {
@@ -815,12 +864,12 @@ function DocsAdminPage(props) {
815
864
  placeholder: "getting-started",
816
865
  value: sectionForm().slug,
817
866
  onInput: (e) => setSectionForm({ ...sectionForm(), slug: e.currentTarget.value }),
818
- 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"
819
868
  }
820
869
  )
821
870
  ] }),
822
871
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-icon", children: [
823
- /* @__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" }),
824
873
  /* @__PURE__ */ jsx(
825
874
  "input",
826
875
  {
@@ -829,12 +878,12 @@ function DocsAdminPage(props) {
829
878
  placeholder: "\u{1F4DA}",
830
879
  value: sectionForm().icon,
831
880
  onInput: (e) => setSectionForm({ ...sectionForm(), icon: e.currentTarget.value }),
832
- 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"
833
882
  }
834
883
  )
835
884
  ] }),
836
885
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-description", children: [
837
- /* @__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" }),
838
887
  /* @__PURE__ */ jsx(
839
888
  "input",
840
889
  {
@@ -843,19 +892,19 @@ function DocsAdminPage(props) {
843
892
  placeholder: "Overview pages and onboarding guides.",
844
893
  value: sectionForm().description,
845
894
  onInput: (e) => setSectionForm({ ...sectionForm(), description: e.currentTarget.value }),
846
- 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"
847
896
  }
848
897
  )
849
898
  ] }),
850
899
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-section-access", children: [
851
- /* @__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" }),
852
901
  /* @__PURE__ */ jsxs(
853
902
  "select",
854
903
  {
855
904
  id: "docs-admin-section-access",
856
905
  value: sectionForm().access,
857
906
  onChange: (e) => setSectionForm({ ...sectionForm(), access: toDocAccess(e.currentTarget.value) }),
858
- 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",
859
908
  children: [
860
909
  /* @__PURE__ */ jsx("option", { value: "public", children: "Public" }),
861
910
  /* @__PURE__ */ jsx("option", { value: "team", children: "Team" }),
@@ -871,20 +920,28 @@ function DocsAdminPage(props) {
871
920
  type: "button",
872
921
  disabled: !canCreateSection(),
873
922
  onClick: async () => {
874
- 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
+ });
875
929
  setSectionForm(initialSectionForm());
876
930
  setShowSF(false);
877
931
  },
878
- 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",
879
933
  children: "Create"
880
934
  }
881
935
  ),
882
- /* @__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" })
883
937
  ] })
884
938
  ] }) }),
885
939
  /* @__PURE__ */ jsxs("div", { class: "space-y-1", children: [
886
- /* @__PURE__ */ jsx(Show, { when: sections().length === 0, children: /* @__PURE__ */ jsx("p", { class: "py-8 text-center text-sm text-white/30", children: "No sections" }) }),
887
- /* @__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: [
888
945
  /* @__PURE__ */ jsxs(
889
946
  "button",
890
947
  {
@@ -906,7 +963,7 @@ function DocsAdminPage(props) {
906
963
  e.stopPropagation();
907
964
  if (confirm(`Delete "${section.title}"?`)) props.admin.deleteSection(section.id);
908
965
  },
909
- 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",
910
967
  "aria-label": `Delete section ${section.title}`,
911
968
  children: "\u2715"
912
969
  }
@@ -914,15 +971,15 @@ function DocsAdminPage(props) {
914
971
  ] }) })
915
972
  ] })
916
973
  ] }),
917
- /* @__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: [
918
975
  /* @__PURE__ */ jsxs("div", { class: "mb-4 flex items-center justify-between", children: [
919
- /* @__PURE__ */ jsx("h2", { class: "text-lg font-semibold text-white/80", children: selectedSection() ? `Pages \u2014 ${selectedSection()?.title}` : "Pages" }),
920
- /* @__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" }) })
921
978
  ] }),
922
- /* @__PURE__ */ jsx(Show, { when: !selectedSection(), children: /* @__PURE__ */ jsx("p", { class: "py-16 text-center text-sm text-white/30", children: "Select a section" }) }),
923
- /* @__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: [
924
981
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-title", children: [
925
- /* @__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" }),
926
983
  /* @__PURE__ */ jsx(
927
984
  "input",
928
985
  {
@@ -931,12 +988,12 @@ function DocsAdminPage(props) {
931
988
  placeholder: "Install the package",
932
989
  value: pageForm().title,
933
990
  onInput: (e) => setPageForm({ ...pageForm(), title: e.currentTarget.value }),
934
- 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"
935
992
  }
936
993
  )
937
994
  ] }),
938
995
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-slug", children: [
939
- /* @__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" }),
940
997
  /* @__PURE__ */ jsx(
941
998
  "input",
942
999
  {
@@ -945,12 +1002,12 @@ function DocsAdminPage(props) {
945
1002
  placeholder: "install",
946
1003
  value: pageForm().slug,
947
1004
  onInput: (e) => setPageForm({ ...pageForm(), slug: e.currentTarget.value }),
948
- 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"
949
1006
  }
950
1007
  )
951
1008
  ] }),
952
1009
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-content", children: [
953
- /* @__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)" }),
954
1011
  /* @__PURE__ */ jsx(
955
1012
  "textarea",
956
1013
  {
@@ -959,12 +1016,12 @@ function DocsAdminPage(props) {
959
1016
  value: pageForm().content,
960
1017
  onInput: (e) => setPageForm({ ...pageForm(), content: e.currentTarget.value }),
961
1018
  rows: 4,
962
- 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"
963
1020
  }
964
1021
  )
965
1022
  ] }),
966
1023
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-tags", children: [
967
- /* @__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" }),
968
1025
  /* @__PURE__ */ jsx(
969
1026
  "input",
970
1027
  {
@@ -973,19 +1030,19 @@ function DocsAdminPage(props) {
973
1030
  placeholder: "setup, install",
974
1031
  value: pageForm().tags,
975
1032
  onInput: (e) => setPageForm({ ...pageForm(), tags: e.currentTarget.value }),
976
- 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"
977
1034
  }
978
1035
  )
979
1036
  ] }),
980
1037
  /* @__PURE__ */ jsxs("label", { class: "block space-y-1", for: "docs-admin-page-access", children: [
981
- /* @__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" }),
982
1039
  /* @__PURE__ */ jsxs(
983
1040
  "select",
984
1041
  {
985
1042
  id: "docs-admin-page-access",
986
1043
  value: pageForm().access,
987
1044
  onChange: (e) => setPageForm({ ...pageForm(), access: toDocAccess(e.currentTarget.value) }),
988
- 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",
989
1046
  children: [
990
1047
  /* @__PURE__ */ jsx("option", { value: "public", children: "Public" }),
991
1048
  /* @__PURE__ */ jsx("option", { value: "team", children: "Team" }),
@@ -1007,25 +1064,25 @@ function DocsAdminPage(props) {
1007
1064
  setPageForm(initialPageForm());
1008
1065
  setShowPF(false);
1009
1066
  },
1010
- 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",
1011
1068
  children: "Create"
1012
1069
  }
1013
1070
  ),
1014
- /* @__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" })
1015
1072
  ] })
1016
1073
  ] }) }),
1017
- /* @__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: [
1018
1075
  /* @__PURE__ */ jsxs("div", { class: "flex-1 min-w-0", children: [
1019
- /* @__PURE__ */ jsx("p", { class: "text-sm font-medium text-white/80 truncate", children: page.title }),
1020
- /* @__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: [
1021
1078
  "/",
1022
1079
  page.slug
1023
1080
  ] })
1024
1081
  ] }),
1025
- /* @__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 }),
1026
1083
  /* @__PURE__ */ jsxs("div", { class: "flex items-center gap-1 opacity-0 group-hover:opacity-100", children: [
1027
- /* @__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" }) }),
1028
- /* @__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" }) }),
1029
1086
  /* @__PURE__ */ jsx(
1030
1087
  "button",
1031
1088
  {
@@ -1033,14 +1090,14 @@ function DocsAdminPage(props) {
1033
1090
  onClick: () => {
1034
1091
  if (confirm(`Delete "${page.title}"?`)) props.admin.deletePage(page.id);
1035
1092
  },
1036
- class: "rounded p-1 text-white/20 hover:text-red-400",
1093
+ class: "rounded p-1 text-muted-foreground/60 hover:text-destructive",
1037
1094
  "aria-label": `Delete page ${page.title}`,
1038
1095
  children: "\u2715"
1039
1096
  }
1040
1097
  )
1041
1098
  ] })
1042
1099
  ] }) }) }) }),
1043
- /* @__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" }) })
1044
1101
  ] })
1045
1102
  ] })
1046
1103
  ] }) })
@@ -1100,34 +1157,44 @@ function DocsIndexPage(props) {
1100
1157
  Show,
1101
1158
  {
1102
1159
  when: !docs.isLoading(),
1103
- fallback: /* @__PURE__ */ jsx("div", { class: "min-h-screen bg-[#090a0f] px-6 py-16", children: /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-5xl", children: [
1104
- /* @__PURE__ */ jsx("div", { class: "mb-10 h-10 w-64 animate-pulse rounded-lg bg-white/5" }),
1105
- /* @__PURE__ */ jsx("div", { class: "mb-8 h-12 w-full max-w-xl animate-pulse rounded-xl bg-white/5" }),
1106
- /* @__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" }) }) })
1107
1164
  ] }) }),
1108
1165
  children: /* @__PURE__ */ jsx(
1109
1166
  Show,
1110
1167
  {
1111
1168
  when: docs.sections().length > 0,
1112
- fallback: /* @__PURE__ */ jsxs("div", { class: "flex min-h-screen flex-col items-center justify-center bg-[#090a0f] text-center", children: [
1113
- /* @__PURE__ */ jsx("div", { class: "mb-4 text-6xl opacity-30", children: "\u{1F4DA}" }),
1114
- /* @__PURE__ */ jsx("h2", { class: "mb-2 text-xl font-semibold text-white/80", children: "No documentation yet" }),
1115
- /* @__PURE__ */ jsx("p", { class: "max-w-sm text-sm text-white/40", children: "Create your first section and pages to get started." })
1116
- ] }),
1117
- children: /* @__PURE__ */ jsxs("div", { class: "min-h-screen bg-[#090a0f] text-white", children: [
1169
+ fallback: /* @__PURE__ */ jsxs(
1170
+ "div",
1171
+ {
1172
+ class: cn(
1173
+ "flex min-h-screen flex-col items-center justify-center bg-background text-center",
1174
+ props.class
1175
+ ),
1176
+ children: [
1177
+ /* @__PURE__ */ jsx("div", { class: "mb-4 text-6xl opacity-30", children: "\u{1F4DA}" }),
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." })
1180
+ ]
1181
+ }
1182
+ ),
1183
+ children: /* @__PURE__ */ jsxs("div", { class: cn("min-h-screen bg-background text-foreground", props.class), children: [
1118
1184
  /* @__PURE__ */ jsxs("div", { class: "mx-auto max-w-5xl px-6 py-16", children: [
1119
1185
  /* @__PURE__ */ jsx("h1", { class: "mb-2 text-4xl font-bold tracking-tight", children: "Documentation" }),
1120
- /* @__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." }),
1121
1187
  /* @__PURE__ */ jsxs(
1122
1188
  "button",
1123
1189
  {
1124
1190
  type: "button",
1125
1191
  onClick: () => setIsSearchOpen(true),
1126
- 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",
1127
1194
  children: [
1128
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" }) }),
1129
1196
  /* @__PURE__ */ jsx("span", { class: "flex-1", children: "Search documentation\u2026" }),
1130
- /* @__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" })
1131
1198
  ]
1132
1199
  }
1133
1200
  ),
@@ -1139,12 +1206,12 @@ function DocsIndexPage(props) {
1139
1206
  const fp = section.pages?.[0];
1140
1207
  if (fp && props.onSelectPage) props.onSelectPage(fp, section);
1141
1208
  },
1142
- 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",
1143
1210
  children: [
1144
1211
  /* @__PURE__ */ jsx(Show, { when: section.icon, children: /* @__PURE__ */ jsx("span", { class: "mb-3 text-2xl", children: section.icon }) }),
1145
- /* @__PURE__ */ jsx("h3", { class: "mb-1.5 text-base font-semibold text-white/90 group-hover:text-white", children: section.title }),
1146
- /* @__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 }) }),
1147
- /* @__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: [
1148
1215
  section.pageCount ?? 0,
1149
1216
  " pages"
1150
1217
  ] }) })
@@ -1251,18 +1318,27 @@ function DocViewPage(props) {
1251
1318
  Show,
1252
1319
  {
1253
1320
  when: !docs.isLoading() && props.page() !== void 0,
1254
- fallback: /* @__PURE__ */ jsxs("div", { class: "flex min-h-screen bg-[#090a0f]", children: [
1255
- /* @__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" })) }) }),
1256
- /* @__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" }) }) })
1257
1324
  ] }),
1258
1325
  children: /* @__PURE__ */ jsx(
1259
1326
  Show,
1260
1327
  {
1261
1328
  when: props.page(),
1262
- fallback: /* @__PURE__ */ jsxs("div", { class: "flex min-h-screen flex-col items-center justify-center bg-[#090a0f] text-center", children: [
1263
- /* @__PURE__ */ jsx("div", { class: "mb-4 text-6xl opacity-30", children: "\u{1F50D}" }),
1264
- /* @__PURE__ */ jsx("h2", { class: "mb-2 text-xl font-semibold text-white/80", children: "Page not found" })
1265
- ] }),
1329
+ fallback: /* @__PURE__ */ jsxs(
1330
+ "div",
1331
+ {
1332
+ class: cn(
1333
+ "flex min-h-screen flex-col items-center justify-center bg-background text-center",
1334
+ props.class
1335
+ ),
1336
+ children: [
1337
+ /* @__PURE__ */ jsx("div", { class: "mb-4 text-6xl opacity-30", children: "\u{1F50D}" }),
1338
+ /* @__PURE__ */ jsx("h2", { class: "mb-2 text-xl font-semibold text-foreground/80", children: "Page not found" })
1339
+ ]
1340
+ }
1341
+ ),
1266
1342
  children: (page) => /* @__PURE__ */ jsxs(
1267
1343
  DocsLayout,
1268
1344
  {
@@ -1272,10 +1348,11 @@ function DocViewPage(props) {
1272
1348
  breadcrumbs: breadcrumbs(),
1273
1349
  currentPageId: page().id,
1274
1350
  onNavigate: props.onNavigate,
1351
+ class: props.class,
1275
1352
  children: [
1276
1353
  /* @__PURE__ */ jsxs("div", { class: "mb-8", children: [
1277
1354
  /* @__PURE__ */ jsx("h1", { class: "mb-3 text-3xl font-bold tracking-tight", children: page().title }),
1278
- /* @__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: [
1279
1356
  /* @__PURE__ */ jsx("span", { children: page().author.name }),
1280
1357
  /* @__PURE__ */ jsx(Show, { when: page().readingTime > 0, children: /* @__PURE__ */ jsxs("span", { children: [
1281
1358
  page().readingTime,
@@ -1288,7 +1365,7 @@ function DocViewPage(props) {
1288
1365
  ] })
1289
1366
  ] }),
1290
1367
  /* @__PURE__ */ jsx(DocPage, { page: page() }),
1291
- /* @__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 }) }),
1292
1369
  /* @__PURE__ */ jsx(PageNavigation, { prev: nav().prev, next: nav().next })
1293
1370
  ]
1294
1371
  }