@zpress/config 0.2.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -22,8 +22,8 @@ export { BuiltInThemeName }
22
22
  * Controls how an entry appears as a card on its parent section's
23
23
  * auto-generated landing page.
24
24
  *
25
- * When present, the landing page uses workspace-style cards
26
- * (icon + scope + name + description + tags + optional badge).
25
+ * Schema: `cardConfigSchema` in schema.ts validates this shape.
26
+ * A compile-time guard in schema.ts ensures these stay in sync.
27
27
  *
28
28
  * @example
29
29
  * ```ts
@@ -37,28 +37,13 @@ export { BuiltInThemeName }
37
37
  * ```
38
38
  */
39
39
  export declare interface CardConfig {
40
- /**
41
- * Icon configuration — Iconify identifier string or `{ id, color }` object.
42
- */
43
- icon?: IconConfig;
44
- /**
45
- * Scope label shown above the name (e.g. `"apps/"`).
46
- */
47
- scope?: string;
48
- /**
49
- * Short description shown on the card. Overrides auto-extracted description.
50
- */
51
- description?: string;
52
- /**
53
- * Technology tags shown at the bottom of the card.
54
- */
55
- tags?: string[];
56
- /**
57
- * Deploy badge image shown in the card header.
58
- */
59
- badge?: {
60
- src: string;
61
- alt: string;
40
+ readonly icon?: IconConfig;
41
+ readonly scope?: string;
42
+ readonly description?: string;
43
+ readonly tags?: readonly string[];
44
+ readonly badge?: {
45
+ readonly src: string;
46
+ readonly alt: string;
62
47
  };
63
48
  }
64
49
 
@@ -76,11 +61,24 @@ export declare interface ConfigError {
76
61
  }[];
77
62
  }
78
63
 
64
+ /**
65
+ * Create a ConfigError with the given type and message.
66
+ *
67
+ * @param type - The error type discriminant
68
+ * @param message - Human-readable error message
69
+ * @returns A ConfigError object
70
+ */
79
71
  export declare function configError(type: ConfigErrorType, message: string): ConfigError;
80
72
 
73
+ /**
74
+ * Convert a Zod validation error into a ConfigError.
75
+ *
76
+ * @param zodError - The ZodError produced by a failed safeParse call
77
+ * @returns A ConfigError with type `'validation_failed'` and mapped issue list
78
+ */
81
79
  export declare function configErrorFromZod(zodError: ZodError): ConfigError;
82
80
 
83
- export declare type ConfigErrorType = 'not_found' | 'parse_error' | 'validation_failed' | 'empty_sections' | 'missing_field' | 'invalid_entry' | 'invalid_section' | 'invalid_field' | 'invalid_icon' | 'invalid_theme' | 'duplicate_prefix' | 'unknown';
81
+ export declare type ConfigErrorType = 'not_found' | 'parse_error' | 'validation_failed' | 'empty_sections' | 'missing_field' | 'invalid_entry' | 'invalid_section' | 'invalid_field' | 'invalid_icon' | 'invalid_theme' | 'duplicate_prefix' | 'invalid_openapi' | 'unknown';
84
82
 
85
83
  export declare type ConfigResult<T> = Result<T, ConfigError>;
86
84
 
@@ -95,87 +93,10 @@ export declare type ConfigResult<T> = Result<T, ConfigError>;
95
93
  */
96
94
  export declare function defineConfig(config: ZpressConfig): ZpressConfig;
97
95
 
98
- /**
99
- * Unified discovery configuration with properly typed recursion dependency.
100
- */
101
- export declare type Discovery = FlatDiscoveryConfig | RecursiveDiscoveryConfig;
102
-
103
- /**
104
- * Content discovery configuration for auto-generating pages from files.
105
- */
106
- declare interface DiscoveryConfig {
107
- /**
108
- * Content source — file path or glob pattern.
109
- * - **No wildcards** → single file (e.g. `"docs/overview.md"`)
110
- * - **With wildcards** → auto-discover children (e.g. `"docs/*.md"`)
111
- */
112
- readonly from?: string | GlobPattern;
113
- /**
114
- * Title configuration for auto-discovered children.
115
- * @default { from: 'auto' }
116
- */
117
- readonly title?: TitleConfig;
118
- /**
119
- * Sort order for auto-discovered children.
120
- * - `"alpha"` — alphabetical by derived title (default)
121
- * - `"filename"` — alphabetical by filename
122
- * - Custom comparator function
123
- */
124
- readonly sort?: 'alpha' | 'filename' | ((a: ResolvedPage, b: ResolvedPage) => number);
125
- /**
126
- * Exclude globs, scoped to this discovery's `from` glob.
127
- */
128
- readonly exclude?: readonly GlobPattern[];
129
- /**
130
- * Frontmatter injected at build time for all discovered pages.
131
- */
132
- readonly frontmatter?: Frontmatter;
133
- }
134
-
135
- /**
136
- * Base type for all config entries — shared display metadata.
137
- *
138
- * All types in the information architecture (Section, Workspace, WorkspaceCategory, Feature)
139
- * extend this base to inherit common display fields.
140
- */
141
- export declare interface Entry {
142
- /**
143
- * Display title shown in UI (sidebar, nav, cards).
144
- * Can be a static string or a configuration for deriving from files.
145
- */
146
- readonly title: string | TitleConfig;
147
- /**
148
- * Icon configuration — Iconify identifier string or `{ id, color }` object.
149
- *
150
- * Accepts either:
151
- * - **String**: Iconify identifier (e.g. `"devicon:hono"`, `"pixelarticons:device-mobile"`)
152
- * - Color defaults to purple (first in rotation)
153
- * - Find icons at https://icon-sets.iconify.design/
154
- * - **Object**: `{ id: IconId, color: IconColor }`
155
- * - Explicit color from 8-color palette
156
- *
157
- * Auto-generated section cards rotate through these colors:
158
- * purple → blue → green → amber → cyan → red → pink → slate
159
- *
160
- * @example
161
- * ```ts
162
- * icon: 'devicon:react' // Uses purple (default)
163
- * icon: { id: 'devicon:nextjs', color: 'blue' } // Explicit blue
164
- * ```
165
- */
166
- readonly icon?: IconConfig;
167
- /**
168
- * Short description for cards and summaries.
169
- */
170
- readonly description?: string;
171
- }
172
-
173
96
  /**
174
97
  * Explicit feature card for the home page.
175
98
  *
176
- * When `features` is provided on the config, these replace the
177
- * auto-generated feature cards that are normally derived from
178
- * top-level sections.
99
+ * Schema: `featureSchema` in schema.ts validates this shape.
179
100
  *
180
101
  * @example
181
102
  * ```ts
@@ -187,33 +108,48 @@ export declare interface Entry {
187
108
  * }
188
109
  * ```
189
110
  */
190
- export declare interface Feature extends Entry {
191
- /**
192
- * Link target when the card is clicked.
193
- */
194
- readonly link: string;
111
+ export declare interface Feature {
112
+ readonly title: TitleConfig;
113
+ readonly description: string;
114
+ readonly link?: string;
115
+ readonly icon?: IconConfig;
195
116
  }
196
117
 
197
118
  /**
198
- * Relative file path from repo root (e.g. `"docs/guides/add-api-route.md"`)
119
+ * File-system path (absolute or relative).
199
120
  */
200
121
  declare type FilePath = string;
201
122
 
202
123
  /**
203
- * Flat (non-recursive) discovery configuration.
124
+ * Site footer shown below all page content.
125
+ *
126
+ * Schema: `footerConfigSchema` in schema.ts validates this shape.
127
+ *
128
+ * @example
129
+ * ```ts
130
+ * footer: {
131
+ * message: 'Built with zpress',
132
+ * copyright: 'Copyright © 2025 Acme Inc.',
133
+ * }
134
+ * ```
204
135
  */
205
- export declare interface FlatDiscoveryConfig extends DiscoveryConfig {
206
- readonly recursive?: false;
136
+ export declare interface FooterConfig {
137
+ readonly message?: string;
138
+ readonly copyright?: string;
139
+ readonly socials?: boolean;
207
140
  }
208
141
 
209
142
  /**
210
143
  * Rspress frontmatter fields injectable at build time.
144
+ *
145
+ * Schema: `frontmatterSchema` in schema.ts validates this shape.
146
+ * The index signature allows arbitrary extra fields (schema uses `.passthrough()`).
211
147
  */
212
148
  export declare interface Frontmatter {
213
149
  readonly title?: string;
214
150
  readonly titleTemplate?: string | boolean;
215
151
  readonly description?: string;
216
- readonly layout?: 'doc' | 'page' | 'home' | (string & {});
152
+ readonly layout?: string;
217
153
  readonly sidebar?: boolean;
218
154
  readonly aside?: boolean | 'left';
219
155
  readonly outline?: false | number | [number, number] | 'deep';
@@ -223,45 +159,44 @@ export declare interface Frontmatter {
223
159
  readonly footer?: boolean;
224
160
  readonly pageClass?: string;
225
161
  readonly head?: readonly [string, Record<string, string>][];
226
- /**
227
- * Arbitrary extra fields merged into frontmatter.
228
- */
229
162
  readonly [key: string]: unknown;
230
163
  }
231
164
 
232
165
  /**
233
- * Glob pattern (e.g. `"docs/guides/*.md"`)
166
+ * A single call-to-action button on the home page hero.
167
+ *
168
+ * Schema: `heroActionSchema` in schema.ts validates this shape.
234
169
  */
235
- declare type GlobPattern = string;
170
+ export declare interface HeroAction {
171
+ readonly theme: 'brand' | 'alt';
172
+ readonly text: string;
173
+ readonly link: string;
174
+ }
236
175
 
237
176
  /**
238
- * Hero section configuration override.
177
+ * Home page layout customization.
178
+ *
179
+ * Schema: `homeConfigSchema` in schema.ts validates this shape.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * home: {
184
+ * features: { columns: 3, truncate: { description: 2 } },
185
+ * workspaces: { columns: 2, truncate: { title: 1, description: 2 } },
186
+ * }
187
+ * ```
239
188
  */
240
- export declare interface HeroConfig {
241
- /**
242
- * Main hero title. Overrides site title on home page.
243
- */
244
- readonly title?: string;
245
- /**
246
- * Hero subtitle/headline. Overrides site description on home page.
247
- */
248
- readonly subtitle?: string;
249
- /**
250
- * Hero tagline. Overrides site tagline on home page.
251
- */
252
- readonly tagline?: string;
253
- /**
254
- * Hero image path. Defaults to "/banner.svg".
255
- */
256
- readonly image?: string;
257
- /**
258
- * Call-to-action buttons.
259
- */
260
- readonly actions?: readonly {
261
- readonly theme: 'brand' | 'alt';
262
- readonly text: string;
263
- readonly link: string;
264
- }[];
189
+ export declare interface HomeConfig {
190
+ readonly features?: HomeGridConfig;
191
+ readonly workspaces?: HomeGridConfig;
192
+ }
193
+
194
+ /**
195
+ * Layout and styling options for a card grid section on the home page.
196
+ */
197
+ export declare interface HomeGridConfig {
198
+ readonly columns?: 1 | 2 | 3 | 4;
199
+ readonly truncate?: TruncateConfig;
265
200
  }
266
201
 
267
202
  export { ICON_COLORS }
@@ -293,10 +228,19 @@ export declare type IconConfig = IconId | {
293
228
  };
294
229
 
295
230
  /**
296
- * Iconify icon identifier (e.g. `"devicon:hono"`, `"pixelarticons:device-mobile"`).
297
- * Find icons at https://icon-sets.iconify.design/
231
+ * Iconify icon identifier `"prefix:name"` where prefix matches an installed set.
232
+ *
233
+ * @example `"devicon:hono"`, `"pixelarticons:device-mobile"`
234
+ * @see https://icon-sets.iconify.design/
235
+ */
236
+ export declare type IconId = `${IconPrefix}:${string}`;
237
+
238
+ /**
239
+ * Installed Iconify icon-set prefixes.
240
+ *
241
+ * Must stay in sync with `@iconify-json/*` packages in root `package.json`.
298
242
  */
299
- export declare type IconId = string;
243
+ export declare type IconPrefix = 'catppuccin' | 'devicon' | 'logos' | 'material-icon-theme' | 'mdi' | 'pixelarticons' | 'simple-icons' | 'skill-icons' | 'vscode-icons';
300
244
 
301
245
  export { isBuiltInIconColor }
302
246
 
@@ -328,9 +272,15 @@ export declare interface LoadConfigOptions {
328
272
  readonly configFile?: string;
329
273
  }
330
274
 
275
+ /**
276
+ * Navigation item for the top nav bar.
277
+ *
278
+ * Schema: `navItemSchema` in schema.ts validates this shape.
279
+ * The schema uses `z.ZodType<NavItem>` to enforce consistency.
280
+ */
331
281
  export declare interface NavItem {
332
282
  readonly title: string;
333
- readonly link?: UrlPath;
283
+ readonly link?: string;
334
284
  readonly items?: readonly NavItem[];
335
285
  readonly activeMatch?: string;
336
286
  }
@@ -342,16 +292,25 @@ export declare interface OpenAPIConfig {
342
292
  /**
343
293
  * Path to openapi.json relative to repo root.
344
294
  */
345
- spec: FilePath;
295
+ readonly spec: FilePath;
346
296
  /**
347
- * URL prefix for API operation pages (e.g., '/api').
297
+ * URL path for API operation pages (e.g., '/api').
348
298
  */
349
- prefix: UrlPath;
299
+ readonly path: UrlPath;
350
300
  /**
351
301
  * Sidebar group title.
352
302
  * @default 'API Reference'
353
303
  */
354
- title?: string;
304
+ readonly title?: string;
305
+ /**
306
+ * How operations appear in the sidebar.
307
+ *
308
+ * - `'method-path'` — shows `GET /users` with method badge and path in code font
309
+ * - `'title'` — shows the operation summary (e.g., "List Users")
310
+ *
311
+ * @default 'method-path'
312
+ */
313
+ readonly sidebarLayout?: 'method-path' | 'title';
355
314
  }
356
315
 
357
316
  export declare const pathsSchema: z.ZodObject<{
@@ -377,40 +336,15 @@ export declare const pathsSchema: z.ZodObject<{
377
336
  cacheDir: string;
378
337
  }>;
379
338
 
380
- /**
381
- * Recursive directory-based discovery configuration.
382
- * Type-enforces that `indexFile` only exists when `recursive: true`.
383
- */
384
- export declare interface RecursiveDiscoveryConfig extends DiscoveryConfig {
385
- readonly recursive: true;
386
- /**
387
- * Filename (without extension) used as the section header page in each directory.
388
- * @default "overview"
389
- */
390
- readonly indexFile?: string;
391
- }
392
-
393
339
  export { resolveDefaultColorMode }
394
340
 
395
341
  /**
396
342
  * A fully resolved page after the sync engine processes the config.
397
343
  */
398
344
  export declare interface ResolvedPage {
399
- /**
400
- * Display title.
401
- */
402
345
  readonly title: string;
403
- /**
404
- * Output URL path.
405
- */
406
- readonly link: UrlPath;
407
- /**
408
- * Source file path (undefined for virtual pages).
409
- */
410
- readonly source?: FilePath;
411
- /**
412
- * Merged frontmatter.
413
- */
346
+ readonly link: string;
347
+ readonly source?: string;
414
348
  readonly frontmatter: Frontmatter;
415
349
  }
416
350
 
@@ -419,48 +353,11 @@ export declare interface ResolvedPage {
419
353
  */
420
354
  export declare interface ResolvedSection {
421
355
  readonly title: string;
422
- readonly link?: UrlPath;
356
+ readonly link?: string;
423
357
  readonly collapsible?: boolean;
424
358
  readonly items: readonly (ResolvedPage | ResolvedSection)[];
425
359
  }
426
360
 
427
- /**
428
- * zpress — unified information architecture config.
429
- *
430
- * The IA tree IS the config. Each node defines what it is, where its
431
- * content comes from, and where it sits in the sidebar — all in one place.
432
- * Source `.md` files are never edited.
433
- *
434
- * @example
435
- * ```ts
436
- * import { defineConfig } from '@zpress/core'
437
- *
438
- * export default defineConfig({
439
- * title: 'My Docs',
440
- * sections: [
441
- * {
442
- * title: 'Introduction',
443
- * items: [
444
- * { title: 'Architecture', link: '/architecture', from: 'docs/architecture.md' },
445
- * { title: 'Structure', link: '/structure', from: 'docs/structure.md' },
446
- * ],
447
- * },
448
- * {
449
- * title: 'Guides',
450
- * prefix: '/guides',
451
- * from: 'docs/guides/*.md',
452
- * },
453
- * {
454
- * title: 'API Reference',
455
- * items: [
456
- * { title: 'Overview', link: '/api/overview', content: '# API\n...' },
457
- * { title: 'Routes', link: '/api/routes', from: 'apps/api/docs/routes.md' },
458
- * ],
459
- * },
460
- * ],
461
- * })
462
- * ```
463
- */
464
361
  /**
465
362
  * Result type for error handling without exceptions.
466
363
  *
@@ -478,16 +375,17 @@ export declare type Result<T, E = Error> = readonly [E, null] | readonly [null,
478
375
  /**
479
376
  * A single node in the information architecture (sidebar/nav tree).
480
377
  *
481
- * Goes in `config.sections` array. Can be a page, section, or both.
378
+ * Schema: `entrySchema` in schema.ts validates this shape.
379
+ * The schema uses `z.ZodType<Section>` to enforce consistency.
482
380
  *
483
381
  * **Page — explicit file**:
484
382
  * ```ts
485
- * { title: 'Architecture', link: '/architecture', from: 'docs/architecture.md' }
383
+ * { title: 'Architecture', path: '/architecture', include: 'docs/architecture.md' }
486
384
  * ```
487
385
  *
488
386
  * **Page — inline/generated content**:
489
387
  * ```ts
490
- * { title: 'Overview', link: '/api/overview', content: '# API Overview\n...' }
388
+ * { title: 'Overview', path: '/api/overview', content: '# API Overview\n...' }
491
389
  * ```
492
390
  *
493
391
  * **Section — explicit children**:
@@ -497,194 +395,93 @@ export declare type Result<T, E = Error> = readonly [E, null] | readonly [null,
497
395
  *
498
396
  * **Section — auto-discovered from glob**:
499
397
  * ```ts
500
- * { title: 'Guides', prefix: '/guides', from: 'docs/guides/*.md' }
501
- * ```
502
- *
503
- * **Section — mix of explicit + auto-discovered**:
504
- * ```ts
505
- * {
506
- * title: 'Guides',
507
- * prefix: '/guides',
508
- * from: 'docs/guides/*.md',
509
- * items: [
510
- * { title: 'Getting Started', link: '/guides/start', from: 'docs/intro.md' },
511
- * ],
512
- * }
398
+ * { title: 'Guides', path: '/guides', include: 'docs/guides/*.md' }
513
399
  * ```
514
400
  */
515
- export declare interface Section extends Entry {
516
- /**
517
- * Output URL path.
518
- * - Pages: exact URL (e.g. `"/guides/add-api-route"`)
519
- * - Sections: optional makes the section header clickable
520
- */
521
- readonly link?: UrlPath;
522
- /**
523
- * Content source — file path or glob, relative to repo root.
524
- *
525
- * - **No wildcards** → single file (e.g. `"docs/architecture.md"`)
526
- * - **With wildcards** → auto-discover children (e.g. `"docs/guides/*.md"`)
527
- */
528
- readonly from?: FilePath | GlobPattern;
529
- /**
530
- * URL prefix for auto-discovered children.
531
- * Used with glob `from` — each discovered file gets `prefix + "/" + slug`.
532
- *
533
- * @example
534
- * `prefix: "/guides"` + file `add-api-route.md` → `/guides/add-api-route`
535
- */
536
- readonly prefix?: UrlPath;
537
- /**
538
- * Inline markdown or async content generator.
539
- * For virtual pages that have no source `.md` file.
540
- * Mutually exclusive with `from`.
541
- */
401
+ export declare interface Section {
402
+ readonly title: TitleConfig;
403
+ readonly description?: string;
404
+ readonly path?: string;
405
+ readonly include?: string | readonly string[];
542
406
  readonly content?: string | (() => string | Promise<string>);
543
- /**
544
- * Child entries — pages and/or sub-sections.
545
- */
546
407
  readonly items?: readonly Section[];
547
- /**
548
- * Landing page generation strategy for sections with children.
549
- *
550
- * - `"auto"` (default) — generate cards from children, or promote overview/index if found
551
- * - `"cards"` — always generate cards, never promote overview files
552
- * - `"overview"` — only use overview file if found, no auto-generation
553
- * - `false` — disable landing page (section header not clickable unless explicit `from`)
554
- *
555
- * Only applies to sections with `items`.
556
- * Requires `link` to be set.
557
- */
558
- readonly landing?: 'auto' | 'cards' | 'overview' | false;
559
- /**
560
- * Make this section collapsible in the sidebar.
561
- *
562
- * - `true` — always collapsible
563
- * - `false` — never collapsible (keeps deep sections always-open)
564
- * - `undefined` (default) — auto-collapsible when depth > 1
565
- */
408
+ readonly landing?: boolean;
566
409
  readonly collapsible?: boolean;
567
- /**
568
- * Exclude globs, scoped to this section's `from` glob.
569
- */
570
- readonly exclude?: readonly GlobPattern[];
571
- /**
572
- * Hide from sidebar. Page is still built and routable.
573
- * Useful for pages that should exist but not clutter navigation.
574
- */
410
+ readonly exclude?: readonly string[];
575
411
  readonly hidden?: boolean;
576
- /**
577
- * Isolate this section into its own Rspress sidebar namespace.
578
- *
579
- * When `true`, the section's children appear under a dedicated sidebar
580
- * keyed by `link` (e.g. `"/apps/"`) instead of the root `"/"` sidebar.
581
- * This mirrors how the OpenAPI reference already works.
582
- *
583
- * Note: Isolated sections are excluded from `nav: "auto"` generation.
584
- *
585
- * Requires `link` to be set.
586
- * @default false
587
- */
588
- readonly isolated?: boolean;
589
- /**
590
- * Frontmatter injected at build time.
591
- * - On a page: applied to that page.
592
- * - On a section: applied to all pages within.
593
- */
594
412
  readonly frontmatter?: Frontmatter;
595
- /**
596
- * How to derive `title` for auto-discovered children.
597
- * - `"filename"` — kebab-to-title from filename (default)
598
- * - `"heading"` — first `# heading` in the file
599
- * - `"frontmatter"` — `title` field from YAML frontmatter, falls back to heading
600
- * - `"auto"` — frontmatter > heading > filename fallback chain
601
- *
602
- * @deprecated Use `title: { from: 'auto' }` instead
603
- */
604
- readonly titleFrom?: 'filename' | 'heading' | 'frontmatter' | 'auto';
605
- /**
606
- * Transform function applied to auto-derived title (from `titleFrom`).
607
- * Called after title derivation for glob-discovered and recursive children.
608
- * Does NOT apply to sections with explicit `title` string (those are already user-controlled).
609
- *
610
- * @param title - The derived title (from heading or filename)
611
- * @param slug - The filename slug (without extension)
612
- * @returns Transformed title for sidebar display
613
- *
614
- * @deprecated Use `title: { from: 'auto', transform: ... }` instead
615
- */
616
- readonly titleTransform?: (title: string, slug: string) => string;
617
- /**
618
- * Sort order for auto-discovered children.
619
- * - `"alpha"` — alphabetical by derived title (default)
620
- * - `"filename"` — alphabetical by filename
621
- * - Custom comparator function
622
- */
623
- readonly sort?: 'alpha' | 'filename' | ((a: ResolvedPage, b: ResolvedPage) => number);
624
- /**
625
- * Enable recursive directory-based nesting for glob patterns.
626
- * When true, directory structure under the glob base drives sidebar nesting:
627
- * - The `indexFile` (default `"overview"`) in a directory becomes the section header page
628
- * - Other `.md` files become children
629
- * - Sub-directories become nested collapsible sections
630
- *
631
- * Requires `from` with a recursive glob (e.g. `"docs/**\/*.md"`) and `prefix`.
632
- * @default false
633
- */
413
+ readonly sort?: 'default' | 'alpha' | 'filename' | ((a: ResolvedPage, b: ResolvedPage) => number);
634
414
  readonly recursive?: boolean;
635
- /**
636
- * Filename (without extension) used as the section header page in each directory.
637
- * Only meaningful when `recursive` is true.
638
- * @default "overview"
639
- */
640
- readonly indexFile?: string;
641
- /**
642
- * Card display metadata for the parent section's auto-generated landing page.
643
- *
644
- * When present on child sections, the parent's landing page uses
645
- * workspace-style cards instead of the default simple cards.
646
- */
415
+ readonly entryFile?: string;
416
+ readonly icon?: IconConfig;
647
417
  readonly card?: CardConfig;
648
- /**
649
- * SEO meta tag overrides for this page.
650
- * Merges with site-level SEO config.
651
- */
652
- readonly seo?: SeoConfig;
418
+ readonly standalone?: boolean;
653
419
  }
654
420
 
655
421
  /**
656
- * SEO meta tag configuration.
422
+ * Sidebar configuration.
423
+ *
424
+ * Schema: `sidebarConfigSchema` in schema.ts validates this shape.
425
+ *
426
+ * @example
427
+ * ```ts
428
+ * sidebar: {
429
+ * above: [
430
+ * { text: 'Home', link: '/', icon: 'pixelarticons:home' },
431
+ * ],
432
+ * below: [
433
+ * { text: 'GitHub', link: 'https://github.com/...', icon: 'pixelarticons:github' },
434
+ * { text: 'Discord', link: 'https://discord.gg/...', icon: 'pixelarticons:message' },
435
+ * ],
436
+ * }
437
+ * ```
657
438
  */
658
- export declare interface SeoConfig {
659
- /**
660
- * Meta title (for `<title>` tag and og:title).
661
- * Falls back to site title or page title.
662
- */
663
- readonly title?: string;
664
- /**
665
- * Meta description (for description and og:description).
666
- * Falls back to site description or auto-generated from content.
667
- */
668
- readonly description?: string;
669
- /**
670
- * Open Graph image URL.
671
- * Falls back to `/og-image.png` (auto-generated from banner.svg).
672
- */
673
- readonly image?: string;
674
- /**
675
- * OG site name. Defaults to site title.
676
- */
677
- readonly siteName?: string;
678
- /**
679
- * OG locale (e.g. "en_US"). Defaults to "en_US".
680
- */
681
- readonly locale?: string;
682
- /**
683
- * Twitter card type. Defaults to "summary_large_image".
684
- */
685
- readonly twitterCard?: 'summary' | 'summary_large_image' | 'app' | 'player';
439
+ export declare interface SidebarConfig {
440
+ readonly above?: readonly SidebarLink[];
441
+ readonly below?: readonly SidebarLink[];
442
+ }
443
+
444
+ /**
445
+ * A persistent link rendered above or below the sidebar nav tree.
446
+ *
447
+ * Schema: `sidebarLinkSchema` in schema.ts validates this shape.
448
+ */
449
+ export declare interface SidebarLink {
450
+ readonly text: string;
451
+ readonly link: string;
452
+ readonly icon?: IconConfig;
453
+ readonly style?: 'brand' | 'alt' | 'ghost';
454
+ readonly shape?: 'square' | 'rounded' | 'circle';
686
455
  }
687
456
 
457
+ /**
458
+ * A social link shown in the navigation bar.
459
+ *
460
+ * Schema: `socialLinkSchema` in schema.ts validates this shape.
461
+ *
462
+ * @example
463
+ * ```ts
464
+ * socialLinks: [
465
+ * { icon: 'github', mode: 'link', content: 'https://github.com/acme' },
466
+ * { icon: 'discord', mode: 'link', content: 'https://discord.gg/acme' },
467
+ * ]
468
+ * ```
469
+ */
470
+ export declare interface SocialLink {
471
+ readonly icon: SocialLinkIcon | {
472
+ readonly svg: string;
473
+ };
474
+ readonly mode: 'link' | 'text' | 'img' | 'dom';
475
+ readonly content: string;
476
+ }
477
+
478
+ /**
479
+ * Built-in social link icon identifier.
480
+ *
481
+ * Rspress supports these icons out of the box via `virtual-social-links`.
482
+ */
483
+ export declare type SocialLinkIcon = 'lark' | 'discord' | 'facebook' | 'github' | 'instagram' | 'linkedin' | 'slack' | 'x' | 'youtube' | 'wechat' | 'qq' | 'juejin' | 'zhihu' | 'bilibili' | 'weibo' | 'gitlab' | 'X' | 'bluesky' | 'npm';
484
+
688
485
  export { THEME_NAMES }
689
486
 
690
487
  export { ThemeColors }
@@ -696,6 +493,8 @@ export { ThemeName }
696
493
  /**
697
494
  * Title configuration — static or derived from source files.
698
495
  *
496
+ * Schema: `titleConfigSchema` in schema.ts validates this shape.
497
+ *
699
498
  * **Static title**:
700
499
  * ```ts
701
500
  * title: "Getting Started"
@@ -725,7 +524,18 @@ export declare type TitleConfig = string | {
725
524
  };
726
525
 
727
526
  /**
728
- * URL path (e.g. `"/guides/add-api-route"`)
527
+ * Text truncation configuration for card content.
528
+ *
529
+ * Values represent the maximum number of visible lines before
530
+ * overflow is clipped with an ellipsis via CSS `line-clamp`.
531
+ */
532
+ export declare interface TruncateConfig {
533
+ readonly title?: number;
534
+ readonly description?: number;
535
+ }
536
+
537
+ /**
538
+ * URL path segment (e.g. `"/api"`, `"/guides/auth"`).
729
539
  */
730
540
  declare type UrlPath = string;
731
541
 
@@ -740,185 +550,90 @@ export declare function validateConfig(config: unknown): ConfigResult<ZpressConf
740
550
  /**
741
551
  * Workspace item representing an app or package in the monorepo.
742
552
  *
743
- * Used as the single source of truth for workspace metadata — home page cards,
744
- * landing page cards, and introduction bullets all derive from these arrays.
553
+ * Schema: `workspaceItemSchema` in schema.ts validates this shape.
745
554
  *
746
555
  * @example
747
556
  * ```ts
748
557
  * {
749
558
  * title: 'API',
750
559
  * icon: 'devicon:hono',
751
- * description: 'Hono REST API serving all client applications with RPC-typed routes',
560
+ * description: 'Hono REST API serving all client applications',
752
561
  * tags: ['hono', 'react', 'vercel'],
753
- * badge: { src: '/logos/vercel.svg', alt: 'Vercel' },
754
- * prefix: '/apps/api',
755
- * discovery: {
756
- * from: 'docs/*.md',
757
- * title: { from: 'auto' },
758
- * },
562
+ * path: '/apps/api',
563
+ * include: 'docs/*.md',
564
+ * sort: 'alpha',
759
565
  * }
760
566
  * ```
761
567
  */
762
- export declare interface Workspace extends Entry {
763
- /**
764
- * URL prefix for this workspace item's documentation (e.g. "/apps/api").
765
- */
766
- readonly prefix: string;
767
- /**
768
- * Technology tags — kebab-case keys resolved by the UI TechTag component.
769
- * Each tag maps to an Iconify icon and display label.
770
- */
568
+ export declare interface Workspace {
569
+ readonly title: TitleConfig;
570
+ readonly icon?: IconConfig;
571
+ readonly description: string;
771
572
  readonly tags?: readonly string[];
772
- /**
773
- * Deploy badge image for the card header.
774
- */
775
573
  readonly badge?: {
776
574
  readonly src: string;
777
575
  readonly alt: string;
778
576
  };
779
- /**
780
- * Content discovery configuration for this workspace item's documentation.
781
- * The `from` field is **relative to the workspace base path** (derived from `prefix`).
782
- *
783
- * For example, `prefix: "/apps/api"` + `discovery.from: "docs/*.md"`
784
- * resolves to `apps/api/docs/*.md` (repo-root relative).
785
- *
786
- * @default { from: "docs/*.md", title: { from: 'auto' } }
787
- */
788
- readonly discovery?: Discovery;
789
- /**
790
- * Explicit child sections. Can be combined with discovery — explicit children override glob-discovered pages.
791
- */
577
+ readonly path: string;
578
+ readonly include?: string | readonly string[];
792
579
  readonly items?: readonly Section[];
793
- /**
794
- * Make this item's section collapsible in the sidebar.
795
- */
796
- readonly collapsible?: boolean;
580
+ readonly sort?: 'default' | 'alpha' | 'filename' | ((a: ResolvedPage, b: ResolvedPage) => number);
581
+ readonly exclude?: readonly string[];
582
+ readonly recursive?: boolean;
583
+ readonly entryFile?: string;
584
+ readonly frontmatter?: Frontmatter;
585
+ readonly openapi?: OpenAPIConfig;
797
586
  }
798
587
 
799
588
  /**
800
589
  * Custom workspace category grouping apps/packages.
801
590
  *
802
- * Lets users define arbitrary groups beyond the built-in `apps` and `packages`
803
- * (e.g. "Services", "Tools", "Integrations") that receive the same
804
- * card/landing-page treatment.
591
+ * Schema: `workspaceGroupSchema` in schema.ts validates this shape.
805
592
  *
806
593
  * @example
807
594
  * ```ts
808
595
  * {
809
596
  * title: 'Integrations',
810
597
  * description: 'Third-party service connectors',
811
- * icon: 'pixelarticons:integration',
598
+ * icon: 'mdi:puzzle',
812
599
  * items: [
813
- * { title: 'Stripe', description: 'Payment processing', prefix: '/integrations/stripe' },
600
+ * { title: 'Stripe', description: 'Payment processing', path: '/integrations/stripe' },
814
601
  * ],
815
602
  * }
816
603
  * ```
817
604
  */
818
- export declare interface WorkspaceCategory extends Entry {
819
- /**
820
- * Workspace items in this category.
821
- */
605
+ export declare interface WorkspaceCategory {
606
+ readonly title: TitleConfig;
607
+ readonly description?: string;
608
+ readonly icon: IconId;
822
609
  readonly items: readonly Workspace[];
823
- /**
824
- * URL prefix override for the category's landing page.
825
- * Defaults to `/${slugify(title)}` when omitted.
826
- */
827
610
  readonly link?: string;
828
611
  }
829
612
 
830
613
  /**
831
- * @deprecated Use `WorkspaceCategory` instead
832
- */
833
- export declare type WorkspaceGroup = WorkspaceCategory;
834
-
835
- /**
836
- * @deprecated Use `Workspace` instead
614
+ * zpress configuration.
615
+ *
616
+ * Schema: `zpressConfigSchema` in schema.ts validates this shape.
617
+ * The information architecture tree IS the config — each node defines
618
+ * what it is, where its content comes from, and where it sits in the sidebar.
837
619
  */
838
- export declare type WorkspaceItem = Workspace;
839
-
840
620
  export declare interface ZpressConfig {
841
- /**
842
- * Site title.
843
- */
844
621
  readonly title?: string;
845
- /**
846
- * Site meta description. Used as the hero headline on the home page.
847
- */
848
622
  readonly description?: string;
849
- /**
850
- * Theme configuration.
851
- * Controls the visual theme, color mode, and optional color overrides.
852
- */
853
623
  readonly theme?: ThemeConfig;
854
- /**
855
- * Path to a custom favicon file served from `.zpress/public/`.
856
- * When omitted, defaults to the auto-generated `/icon.svg`.
857
- */
858
- readonly icon?: string;
859
- /**
860
- * Hero tagline displayed below the headline on the home page.
861
- * When omitted, the tagline is not rendered.
862
- */
624
+ readonly icon?: IconId;
863
625
  readonly tagline?: string;
864
- /**
865
- * Hero section override for the home page.
866
- * When omitted, uses site-level title, description, and tagline.
867
- */
868
- readonly hero?: HeroConfig;
869
- /**
870
- * SEO meta tag configuration for the entire site.
871
- * Individual sections can override with their own seo config.
872
- */
873
- readonly seo?: SeoConfig;
874
- /**
875
- * Workspace apps — deployable services that make up the platform.
876
- * Single source of truth for app metadata used on the home page,
877
- * landing pages, and introduction page.
878
- */
879
- readonly apps?: readonly Workspace[];
880
- /**
881
- * Workspace packages — shared libraries consumed by apps.
882
- * Single source of truth for package metadata used on the home page,
883
- * landing pages, and introduction page.
884
- */
885
- readonly packages?: readonly Workspace[];
886
- /**
887
- * Custom workspace groups — arbitrary named groups of workspace items.
888
- * Each group receives the same card/landing-page treatment as apps and packages.
889
- * Rendered after apps and packages, in array order.
890
- */
626
+ readonly actions?: readonly HeroAction[];
891
627
  readonly workspaces?: readonly WorkspaceCategory[];
892
- /**
893
- * Explicit feature cards for the home page.
894
- *
895
- * When provided, these replace the auto-generated feature cards
896
- * that are normally derived from top-level sections.
897
- * When omitted, features are auto-generated from sections with icons.
898
- */
899
628
  readonly features?: readonly Feature[];
900
- /**
901
- * The information architecture.
902
- * Defines content sources, sidebar structure, and routing in a single tree.
903
- */
629
+ readonly sidebar?: SidebarConfig;
904
630
  readonly sections: readonly Section[];
905
- /**
906
- * Top navigation bar.
907
- * - `"auto"` (default) — one nav item per top-level non-isolated section
908
- * - Array — explicit nav items
909
- *
910
- * Note: Sections with `isolated: true` are excluded from auto nav generation.
911
- * @default "auto"
912
- */
913
631
  readonly nav?: 'auto' | readonly NavItem[];
914
- /**
915
- * Globs to exclude globally across all sources.
916
- */
917
- readonly exclude?: readonly GlobPattern[];
918
- /**
919
- * OpenAPI spec integration for interactive API docs.
920
- */
632
+ readonly exclude?: readonly string[];
921
633
  readonly openapi?: OpenAPIConfig;
634
+ readonly home?: HomeConfig;
635
+ readonly socialLinks?: readonly SocialLink[];
636
+ readonly footer?: FooterConfig;
922
637
  }
923
638
 
924
639
  export declare const zpressConfigSchema: z.ZodObject<{
@@ -1093,48 +808,61 @@ export declare const zpressConfigSchema: z.ZodObject<{
1093
808
  homeBg?: string | undefined;
1094
809
  } | undefined;
1095
810
  }>>;
1096
- icon: z.ZodOptional<z.ZodString>;
811
+ icon: z.ZodOptional<z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>>;
1097
812
  tagline: z.ZodOptional<z.ZodString>;
1098
- apps: z.ZodOptional<z.ZodArray<z.ZodObject<{
813
+ workspaces: z.ZodOptional<z.ZodArray<z.ZodObject<{
1099
814
  title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1100
815
  from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1101
- transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
816
+ transform: z.ZodOptional<z.ZodType<(text: string, slug: string) => string, z.ZodTypeDef, (text: string, slug: string) => string>>;
1102
817
  }, "strict", z.ZodTypeAny, {
1103
818
  from: "auto" | "filename" | "heading" | "frontmatter";
1104
- transform?: ((...args: unknown[]) => unknown) | undefined;
819
+ transform?: ((text: string, slug: string) => string) | undefined;
1105
820
  }, {
1106
821
  from: "auto" | "filename" | "heading" | "frontmatter";
1107
- transform?: ((...args: unknown[]) => unknown) | undefined;
822
+ transform?: ((text: string, slug: string) => string) | undefined;
1108
823
  }>]>;
1109
- icon: z.ZodOptional<z.ZodString>;
1110
- iconColor: z.ZodOptional<z.ZodString>;
1111
- description: z.ZodString;
1112
- tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1113
- badge: z.ZodOptional<z.ZodObject<{
1114
- src: z.ZodString;
1115
- alt: z.ZodString;
1116
- }, "strict", z.ZodTypeAny, {
1117
- alt: string;
1118
- src: string;
1119
- }, {
1120
- alt: string;
1121
- src: string;
1122
- }>>;
1123
- prefix: z.ZodString;
1124
- discovery: z.ZodOptional<z.ZodObject<{
1125
- from: z.ZodOptional<z.ZodString>;
1126
- title: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
824
+ description: z.ZodOptional<z.ZodString>;
825
+ icon: z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>;
826
+ items: z.ZodArray<z.ZodObject<{
827
+ title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1127
828
  from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1128
- transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
829
+ transform: z.ZodOptional<z.ZodType<(text: string, slug: string) => string, z.ZodTypeDef, (text: string, slug: string) => string>>;
1129
830
  }, "strict", z.ZodTypeAny, {
1130
831
  from: "auto" | "filename" | "heading" | "frontmatter";
1131
- transform?: ((...args: unknown[]) => unknown) | undefined;
832
+ transform?: ((text: string, slug: string) => string) | undefined;
1132
833
  }, {
1133
834
  from: "auto" | "filename" | "heading" | "frontmatter";
1134
- transform?: ((...args: unknown[]) => unknown) | undefined;
835
+ transform?: ((text: string, slug: string) => string) | undefined;
836
+ }>]>;
837
+ icon: z.ZodOptional<z.ZodUnion<[z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>, z.ZodObject<{
838
+ id: z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>;
839
+ color: z.ZodString;
840
+ }, "strict", z.ZodTypeAny, {
841
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
842
+ color: string;
843
+ }, {
844
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
845
+ color: string;
1135
846
  }>]>>;
1136
- sort: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["alpha", "filename"]>, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
847
+ description: z.ZodString;
848
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
849
+ badge: z.ZodOptional<z.ZodObject<{
850
+ src: z.ZodString;
851
+ alt: z.ZodString;
852
+ }, "strict", z.ZodTypeAny, {
853
+ alt: string;
854
+ src: string;
855
+ }, {
856
+ alt: string;
857
+ src: string;
858
+ }>>;
859
+ path: z.ZodString;
860
+ include: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
861
+ items: z.ZodOptional<z.ZodArray<z.ZodType<Section, z.ZodTypeDef, Section>, "many">>;
862
+ sort: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["default", "alpha", "filename"]>, z.ZodType<(a: ResolvedPage, b: ResolvedPage) => number, z.ZodTypeDef, (a: ResolvedPage, b: ResolvedPage) => number>]>>;
1137
863
  exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
864
+ recursive: z.ZodOptional<z.ZodBoolean>;
865
+ entryFile: z.ZodOptional<z.ZodString>;
1138
866
  frontmatter: z.ZodOptional<z.ZodObject<{
1139
867
  title: z.ZodOptional<z.ZodString>;
1140
868
  titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
@@ -1178,13 +906,29 @@ export declare const zpressConfigSchema: z.ZodObject<{
1178
906
  pageClass: z.ZodOptional<z.ZodString>;
1179
907
  head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1180
908
  }, z.ZodTypeAny, "passthrough">>>;
1181
- recursive: z.ZodOptional<z.ZodBoolean>;
1182
- indexFile: z.ZodOptional<z.ZodString>;
909
+ openapi: z.ZodOptional<z.ZodObject<{
910
+ spec: z.ZodString;
911
+ path: z.ZodString;
912
+ title: z.ZodOptional<z.ZodString>;
913
+ sidebarLayout: z.ZodOptional<z.ZodEnum<["method-path", "title"]>>;
914
+ }, "strict", z.ZodTypeAny, {
915
+ path: string;
916
+ spec: string;
917
+ title?: string | undefined;
918
+ sidebarLayout?: "title" | "method-path" | undefined;
919
+ }, {
920
+ path: string;
921
+ spec: string;
922
+ title?: string | undefined;
923
+ sidebarLayout?: "title" | "method-path" | undefined;
924
+ }>>;
1183
925
  }, "strict", z.ZodTypeAny, {
1184
- title?: string | {
926
+ title: string | {
1185
927
  from: "auto" | "filename" | "heading" | "frontmatter";
1186
- transform?: ((...args: unknown[]) => unknown) | undefined;
1187
- } | undefined;
928
+ transform?: ((text: string, slug: string) => string) | undefined;
929
+ };
930
+ description: string;
931
+ path: string;
1188
932
  frontmatter?: z.objectOutputType<{
1189
933
  title: z.ZodOptional<z.ZodString>;
1190
934
  titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
@@ -1200,16 +944,34 @@ export declare const zpressConfigSchema: z.ZodObject<{
1200
944
  pageClass: z.ZodOptional<z.ZodString>;
1201
945
  head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1202
946
  }, z.ZodTypeAny, "passthrough"> | undefined;
1203
- recursive?: boolean | undefined;
1204
- indexFile?: string | undefined;
1205
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1206
- from?: string | undefined;
947
+ sort?: "filename" | "default" | "alpha" | ((a: ResolvedPage, b: ResolvedPage) => number) | undefined;
948
+ items?: Section[] | undefined;
949
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
950
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
951
+ color: string;
952
+ } | undefined;
953
+ tags?: string[] | undefined;
954
+ badge?: {
955
+ alt: string;
956
+ src: string;
957
+ } | undefined;
958
+ include?: string | string[] | undefined;
1207
959
  exclude?: string[] | undefined;
960
+ recursive?: boolean | undefined;
961
+ entryFile?: string | undefined;
962
+ openapi?: {
963
+ path: string;
964
+ spec: string;
965
+ title?: string | undefined;
966
+ sidebarLayout?: "title" | "method-path" | undefined;
967
+ } | undefined;
1208
968
  }, {
1209
- title?: string | {
969
+ title: string | {
1210
970
  from: "auto" | "filename" | "heading" | "frontmatter";
1211
- transform?: ((...args: unknown[]) => unknown) | undefined;
1212
- } | undefined;
971
+ transform?: ((text: string, slug: string) => string) | undefined;
972
+ };
973
+ description: string;
974
+ path: string;
1213
975
  frontmatter?: z.objectInputType<{
1214
976
  title: z.ZodOptional<z.ZodString>;
1215
977
  titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
@@ -1225,33 +987,41 @@ export declare const zpressConfigSchema: z.ZodObject<{
1225
987
  pageClass: z.ZodOptional<z.ZodString>;
1226
988
  head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1227
989
  }, z.ZodTypeAny, "passthrough"> | undefined;
1228
- recursive?: boolean | undefined;
1229
- indexFile?: string | undefined;
1230
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1231
- from?: string | undefined;
990
+ sort?: "filename" | "default" | "alpha" | ((a: ResolvedPage, b: ResolvedPage) => number) | undefined;
991
+ items?: Section[] | undefined;
992
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
993
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
994
+ color: string;
995
+ } | undefined;
996
+ tags?: string[] | undefined;
997
+ badge?: {
998
+ alt: string;
999
+ src: string;
1000
+ } | undefined;
1001
+ include?: string | string[] | undefined;
1232
1002
  exclude?: string[] | undefined;
1233
- }>>;
1234
- items: z.ZodOptional<z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">>;
1003
+ recursive?: boolean | undefined;
1004
+ entryFile?: string | undefined;
1005
+ openapi?: {
1006
+ path: string;
1007
+ spec: string;
1008
+ title?: string | undefined;
1009
+ sidebarLayout?: "title" | "method-path" | undefined;
1010
+ } | undefined;
1011
+ }>, "many">;
1012
+ link: z.ZodOptional<z.ZodString>;
1235
1013
  }, "strict", z.ZodTypeAny, {
1236
1014
  title: string | {
1237
1015
  from: "auto" | "filename" | "heading" | "frontmatter";
1238
- transform?: ((...args: unknown[]) => unknown) | undefined;
1016
+ transform?: ((text: string, slug: string) => string) | undefined;
1239
1017
  };
1240
- description: string;
1241
- prefix: string;
1242
- items?: unknown[] | undefined;
1243
- icon?: string | undefined;
1244
- iconColor?: string | undefined;
1245
- tags?: string[] | undefined;
1246
- badge?: {
1247
- alt: string;
1248
- src: string;
1249
- } | undefined;
1250
- discovery?: {
1251
- title?: string | {
1018
+ items: {
1019
+ title: string | {
1252
1020
  from: "auto" | "filename" | "heading" | "frontmatter";
1253
- transform?: ((...args: unknown[]) => unknown) | undefined;
1254
- } | undefined;
1021
+ transform?: ((text: string, slug: string) => string) | undefined;
1022
+ };
1023
+ description: string;
1024
+ path: string;
1255
1025
  frontmatter?: z.objectOutputType<{
1256
1026
  title: z.ZodOptional<z.ZodString>;
1257
1027
  titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
@@ -1267,32 +1037,43 @@ export declare const zpressConfigSchema: z.ZodObject<{
1267
1037
  pageClass: z.ZodOptional<z.ZodString>;
1268
1038
  head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1269
1039
  }, z.ZodTypeAny, "passthrough"> | undefined;
1270
- recursive?: boolean | undefined;
1271
- indexFile?: string | undefined;
1272
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1273
- from?: string | undefined;
1040
+ sort?: "filename" | "default" | "alpha" | ((a: ResolvedPage, b: ResolvedPage) => number) | undefined;
1041
+ items?: Section[] | undefined;
1042
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1043
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1044
+ color: string;
1045
+ } | undefined;
1046
+ tags?: string[] | undefined;
1047
+ badge?: {
1048
+ alt: string;
1049
+ src: string;
1050
+ } | undefined;
1051
+ include?: string | string[] | undefined;
1274
1052
  exclude?: string[] | undefined;
1275
- } | undefined;
1053
+ recursive?: boolean | undefined;
1054
+ entryFile?: string | undefined;
1055
+ openapi?: {
1056
+ path: string;
1057
+ spec: string;
1058
+ title?: string | undefined;
1059
+ sidebarLayout?: "title" | "method-path" | undefined;
1060
+ } | undefined;
1061
+ }[];
1062
+ icon: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1063
+ description?: string | undefined;
1064
+ link?: string | undefined;
1276
1065
  }, {
1277
1066
  title: string | {
1278
1067
  from: "auto" | "filename" | "heading" | "frontmatter";
1279
- transform?: ((...args: unknown[]) => unknown) | undefined;
1068
+ transform?: ((text: string, slug: string) => string) | undefined;
1280
1069
  };
1281
- description: string;
1282
- prefix: string;
1283
- items?: unknown[] | undefined;
1284
- icon?: string | undefined;
1285
- iconColor?: string | undefined;
1286
- tags?: string[] | undefined;
1287
- badge?: {
1288
- alt: string;
1289
- src: string;
1290
- } | undefined;
1291
- discovery?: {
1292
- title?: string | {
1070
+ items: {
1071
+ title: string | {
1293
1072
  from: "auto" | "filename" | "heading" | "frontmatter";
1294
- transform?: ((...args: unknown[]) => unknown) | undefined;
1295
- } | undefined;
1073
+ transform?: ((text: string, slug: string) => string) | undefined;
1074
+ };
1075
+ description: string;
1076
+ path: string;
1296
1077
  frontmatter?: z.objectInputType<{
1297
1078
  title: z.ZodOptional<z.ZodString>;
1298
1079
  titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
@@ -1308,621 +1089,444 @@ export declare const zpressConfigSchema: z.ZodObject<{
1308
1089
  pageClass: z.ZodOptional<z.ZodString>;
1309
1090
  head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1310
1091
  }, z.ZodTypeAny, "passthrough"> | undefined;
1311
- recursive?: boolean | undefined;
1312
- indexFile?: string | undefined;
1313
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1314
- from?: string | undefined;
1092
+ sort?: "filename" | "default" | "alpha" | ((a: ResolvedPage, b: ResolvedPage) => number) | undefined;
1093
+ items?: Section[] | undefined;
1094
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1095
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1096
+ color: string;
1097
+ } | undefined;
1098
+ tags?: string[] | undefined;
1099
+ badge?: {
1100
+ alt: string;
1101
+ src: string;
1102
+ } | undefined;
1103
+ include?: string | string[] | undefined;
1315
1104
  exclude?: string[] | undefined;
1316
- } | undefined;
1105
+ recursive?: boolean | undefined;
1106
+ entryFile?: string | undefined;
1107
+ openapi?: {
1108
+ path: string;
1109
+ spec: string;
1110
+ title?: string | undefined;
1111
+ sidebarLayout?: "title" | "method-path" | undefined;
1112
+ } | undefined;
1113
+ }[];
1114
+ icon: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1115
+ description?: string | undefined;
1116
+ link?: string | undefined;
1317
1117
  }>, "many">>;
1318
- packages: z.ZodOptional<z.ZodArray<z.ZodObject<{
1118
+ features: z.ZodOptional<z.ZodArray<z.ZodObject<{
1319
1119
  title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1320
1120
  from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1321
- transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1121
+ transform: z.ZodOptional<z.ZodType<(text: string, slug: string) => string, z.ZodTypeDef, (text: string, slug: string) => string>>;
1322
1122
  }, "strict", z.ZodTypeAny, {
1323
1123
  from: "auto" | "filename" | "heading" | "frontmatter";
1324
- transform?: ((...args: unknown[]) => unknown) | undefined;
1124
+ transform?: ((text: string, slug: string) => string) | undefined;
1325
1125
  }, {
1326
1126
  from: "auto" | "filename" | "heading" | "frontmatter";
1327
- transform?: ((...args: unknown[]) => unknown) | undefined;
1127
+ transform?: ((text: string, slug: string) => string) | undefined;
1328
1128
  }>]>;
1329
- icon: z.ZodOptional<z.ZodString>;
1330
- iconColor: z.ZodOptional<z.ZodString>;
1331
1129
  description: z.ZodString;
1332
- tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1333
- badge: z.ZodOptional<z.ZodObject<{
1334
- src: z.ZodString;
1335
- alt: z.ZodString;
1130
+ link: z.ZodOptional<z.ZodString>;
1131
+ icon: z.ZodOptional<z.ZodUnion<[z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>, z.ZodObject<{
1132
+ id: z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>;
1133
+ color: z.ZodString;
1336
1134
  }, "strict", z.ZodTypeAny, {
1337
- alt: string;
1338
- src: string;
1135
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1136
+ color: string;
1339
1137
  }, {
1340
- alt: string;
1341
- src: string;
1342
- }>>;
1343
- prefix: z.ZodString;
1344
- discovery: z.ZodOptional<z.ZodObject<{
1345
- from: z.ZodOptional<z.ZodString>;
1346
- title: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
1347
- from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1348
- transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1138
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1139
+ color: string;
1140
+ }>]>>;
1141
+ }, "strict", z.ZodTypeAny, {
1142
+ title: string | {
1143
+ from: "auto" | "filename" | "heading" | "frontmatter";
1144
+ transform?: ((text: string, slug: string) => string) | undefined;
1145
+ };
1146
+ description: string;
1147
+ link?: string | undefined;
1148
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1149
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1150
+ color: string;
1151
+ } | undefined;
1152
+ }, {
1153
+ title: string | {
1154
+ from: "auto" | "filename" | "heading" | "frontmatter";
1155
+ transform?: ((text: string, slug: string) => string) | undefined;
1156
+ };
1157
+ description: string;
1158
+ link?: string | undefined;
1159
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1160
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1161
+ color: string;
1162
+ } | undefined;
1163
+ }>, "many">>;
1164
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1165
+ theme: z.ZodEnum<["brand", "alt"]>;
1166
+ text: z.ZodString;
1167
+ link: z.ZodString;
1168
+ }, "strict", z.ZodTypeAny, {
1169
+ link: string;
1170
+ text: string;
1171
+ theme: "brand" | "alt";
1172
+ }, {
1173
+ link: string;
1174
+ text: string;
1175
+ theme: "brand" | "alt";
1176
+ }>, "many">>;
1177
+ sidebar: z.ZodOptional<z.ZodObject<{
1178
+ above: z.ZodOptional<z.ZodArray<z.ZodObject<{
1179
+ text: z.ZodString;
1180
+ link: z.ZodString;
1181
+ icon: z.ZodOptional<z.ZodUnion<[z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>, z.ZodObject<{
1182
+ id: z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>;
1183
+ color: z.ZodString;
1349
1184
  }, "strict", z.ZodTypeAny, {
1350
- from: "auto" | "filename" | "heading" | "frontmatter";
1351
- transform?: ((...args: unknown[]) => unknown) | undefined;
1185
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1186
+ color: string;
1352
1187
  }, {
1353
- from: "auto" | "filename" | "heading" | "frontmatter";
1354
- transform?: ((...args: unknown[]) => unknown) | undefined;
1188
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1189
+ color: string;
1355
1190
  }>]>>;
1356
- sort: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["alpha", "filename"]>, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
1357
- exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1358
- frontmatter: z.ZodOptional<z.ZodObject<{
1359
- title: z.ZodOptional<z.ZodString>;
1360
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1361
- description: z.ZodOptional<z.ZodString>;
1362
- layout: z.ZodOptional<z.ZodString>;
1363
- sidebar: z.ZodOptional<z.ZodBoolean>;
1364
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1365
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1366
- navbar: z.ZodOptional<z.ZodBoolean>;
1367
- editLink: z.ZodOptional<z.ZodBoolean>;
1368
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1369
- footer: z.ZodOptional<z.ZodBoolean>;
1370
- pageClass: z.ZodOptional<z.ZodString>;
1371
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1372
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1373
- title: z.ZodOptional<z.ZodString>;
1374
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1375
- description: z.ZodOptional<z.ZodString>;
1376
- layout: z.ZodOptional<z.ZodString>;
1377
- sidebar: z.ZodOptional<z.ZodBoolean>;
1378
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1379
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1380
- navbar: z.ZodOptional<z.ZodBoolean>;
1381
- editLink: z.ZodOptional<z.ZodBoolean>;
1382
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1383
- footer: z.ZodOptional<z.ZodBoolean>;
1384
- pageClass: z.ZodOptional<z.ZodString>;
1385
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1386
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1387
- title: z.ZodOptional<z.ZodString>;
1388
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1389
- description: z.ZodOptional<z.ZodString>;
1390
- layout: z.ZodOptional<z.ZodString>;
1391
- sidebar: z.ZodOptional<z.ZodBoolean>;
1392
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1393
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1394
- navbar: z.ZodOptional<z.ZodBoolean>;
1395
- editLink: z.ZodOptional<z.ZodBoolean>;
1396
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1397
- footer: z.ZodOptional<z.ZodBoolean>;
1398
- pageClass: z.ZodOptional<z.ZodString>;
1399
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1400
- }, z.ZodTypeAny, "passthrough">>>;
1401
- recursive: z.ZodOptional<z.ZodBoolean>;
1402
- indexFile: z.ZodOptional<z.ZodString>;
1191
+ style: z.ZodOptional<z.ZodEnum<["brand", "alt", "ghost"]>>;
1192
+ shape: z.ZodOptional<z.ZodEnum<["square", "rounded", "circle"]>>;
1403
1193
  }, "strict", z.ZodTypeAny, {
1404
- title?: string | {
1405
- from: "auto" | "filename" | "heading" | "frontmatter";
1406
- transform?: ((...args: unknown[]) => unknown) | undefined;
1194
+ link: string;
1195
+ text: string;
1196
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1197
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1198
+ color: string;
1407
1199
  } | undefined;
1408
- frontmatter?: z.objectOutputType<{
1409
- title: z.ZodOptional<z.ZodString>;
1410
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1411
- description: z.ZodOptional<z.ZodString>;
1412
- layout: z.ZodOptional<z.ZodString>;
1413
- sidebar: z.ZodOptional<z.ZodBoolean>;
1414
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1415
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1416
- navbar: z.ZodOptional<z.ZodBoolean>;
1417
- editLink: z.ZodOptional<z.ZodBoolean>;
1418
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1419
- footer: z.ZodOptional<z.ZodBoolean>;
1420
- pageClass: z.ZodOptional<z.ZodString>;
1421
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1422
- }, z.ZodTypeAny, "passthrough"> | undefined;
1423
- recursive?: boolean | undefined;
1424
- indexFile?: string | undefined;
1425
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1426
- from?: string | undefined;
1427
- exclude?: string[] | undefined;
1200
+ style?: "brand" | "alt" | "ghost" | undefined;
1201
+ shape?: "square" | "rounded" | "circle" | undefined;
1428
1202
  }, {
1429
- title?: string | {
1430
- from: "auto" | "filename" | "heading" | "frontmatter";
1431
- transform?: ((...args: unknown[]) => unknown) | undefined;
1203
+ link: string;
1204
+ text: string;
1205
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1206
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1207
+ color: string;
1432
1208
  } | undefined;
1433
- frontmatter?: z.objectInputType<{
1434
- title: z.ZodOptional<z.ZodString>;
1435
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1436
- description: z.ZodOptional<z.ZodString>;
1437
- layout: z.ZodOptional<z.ZodString>;
1438
- sidebar: z.ZodOptional<z.ZodBoolean>;
1439
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1440
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1441
- navbar: z.ZodOptional<z.ZodBoolean>;
1442
- editLink: z.ZodOptional<z.ZodBoolean>;
1443
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1444
- footer: z.ZodOptional<z.ZodBoolean>;
1445
- pageClass: z.ZodOptional<z.ZodString>;
1446
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1447
- }, z.ZodTypeAny, "passthrough"> | undefined;
1448
- recursive?: boolean | undefined;
1449
- indexFile?: string | undefined;
1450
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1451
- from?: string | undefined;
1452
- exclude?: string[] | undefined;
1453
- }>>;
1454
- items: z.ZodOptional<z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">>;
1455
- }, "strict", z.ZodTypeAny, {
1456
- title: string | {
1457
- from: "auto" | "filename" | "heading" | "frontmatter";
1458
- transform?: ((...args: unknown[]) => unknown) | undefined;
1459
- };
1460
- description: string;
1461
- prefix: string;
1462
- items?: unknown[] | undefined;
1463
- icon?: string | undefined;
1464
- iconColor?: string | undefined;
1465
- tags?: string[] | undefined;
1466
- badge?: {
1467
- alt: string;
1468
- src: string;
1469
- } | undefined;
1470
- discovery?: {
1471
- title?: string | {
1472
- from: "auto" | "filename" | "heading" | "frontmatter";
1473
- transform?: ((...args: unknown[]) => unknown) | undefined;
1209
+ style?: "brand" | "alt" | "ghost" | undefined;
1210
+ shape?: "square" | "rounded" | "circle" | undefined;
1211
+ }>, "many">>;
1212
+ below: z.ZodOptional<z.ZodArray<z.ZodObject<{
1213
+ text: z.ZodString;
1214
+ link: z.ZodString;
1215
+ icon: z.ZodOptional<z.ZodUnion<[z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>, z.ZodObject<{
1216
+ id: z.ZodType<`catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`, z.ZodTypeDef, `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`>;
1217
+ color: z.ZodString;
1218
+ }, "strict", z.ZodTypeAny, {
1219
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1220
+ color: string;
1221
+ }, {
1222
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1223
+ color: string;
1224
+ }>]>>;
1225
+ style: z.ZodOptional<z.ZodEnum<["brand", "alt", "ghost"]>>;
1226
+ shape: z.ZodOptional<z.ZodEnum<["square", "rounded", "circle"]>>;
1227
+ }, "strict", z.ZodTypeAny, {
1228
+ link: string;
1229
+ text: string;
1230
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1231
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1232
+ color: string;
1474
1233
  } | undefined;
1475
- frontmatter?: z.objectOutputType<{
1476
- title: z.ZodOptional<z.ZodString>;
1477
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1478
- description: z.ZodOptional<z.ZodString>;
1479
- layout: z.ZodOptional<z.ZodString>;
1480
- sidebar: z.ZodOptional<z.ZodBoolean>;
1481
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1482
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1483
- navbar: z.ZodOptional<z.ZodBoolean>;
1484
- editLink: z.ZodOptional<z.ZodBoolean>;
1485
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1486
- footer: z.ZodOptional<z.ZodBoolean>;
1487
- pageClass: z.ZodOptional<z.ZodString>;
1488
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1489
- }, z.ZodTypeAny, "passthrough"> | undefined;
1490
- recursive?: boolean | undefined;
1491
- indexFile?: string | undefined;
1492
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1493
- from?: string | undefined;
1494
- exclude?: string[] | undefined;
1495
- } | undefined;
1234
+ style?: "brand" | "alt" | "ghost" | undefined;
1235
+ shape?: "square" | "rounded" | "circle" | undefined;
1236
+ }, {
1237
+ link: string;
1238
+ text: string;
1239
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1240
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1241
+ color: string;
1242
+ } | undefined;
1243
+ style?: "brand" | "alt" | "ghost" | undefined;
1244
+ shape?: "square" | "rounded" | "circle" | undefined;
1245
+ }>, "many">>;
1246
+ }, "strict", z.ZodTypeAny, {
1247
+ above?: {
1248
+ link: string;
1249
+ text: string;
1250
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1251
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1252
+ color: string;
1253
+ } | undefined;
1254
+ style?: "brand" | "alt" | "ghost" | undefined;
1255
+ shape?: "square" | "rounded" | "circle" | undefined;
1256
+ }[] | undefined;
1257
+ below?: {
1258
+ link: string;
1259
+ text: string;
1260
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1261
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1262
+ color: string;
1263
+ } | undefined;
1264
+ style?: "brand" | "alt" | "ghost" | undefined;
1265
+ shape?: "square" | "rounded" | "circle" | undefined;
1266
+ }[] | undefined;
1496
1267
  }, {
1497
- title: string | {
1498
- from: "auto" | "filename" | "heading" | "frontmatter";
1499
- transform?: ((...args: unknown[]) => unknown) | undefined;
1500
- };
1501
- description: string;
1502
- prefix: string;
1503
- items?: unknown[] | undefined;
1504
- icon?: string | undefined;
1505
- iconColor?: string | undefined;
1506
- tags?: string[] | undefined;
1507
- badge?: {
1508
- alt: string;
1509
- src: string;
1510
- } | undefined;
1511
- discovery?: {
1512
- title?: string | {
1513
- from: "auto" | "filename" | "heading" | "frontmatter";
1514
- transform?: ((...args: unknown[]) => unknown) | undefined;
1268
+ above?: {
1269
+ link: string;
1270
+ text: string;
1271
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1272
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1273
+ color: string;
1515
1274
  } | undefined;
1516
- frontmatter?: z.objectInputType<{
1517
- title: z.ZodOptional<z.ZodString>;
1518
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1519
- description: z.ZodOptional<z.ZodString>;
1520
- layout: z.ZodOptional<z.ZodString>;
1521
- sidebar: z.ZodOptional<z.ZodBoolean>;
1522
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1523
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1524
- navbar: z.ZodOptional<z.ZodBoolean>;
1525
- editLink: z.ZodOptional<z.ZodBoolean>;
1526
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1527
- footer: z.ZodOptional<z.ZodBoolean>;
1528
- pageClass: z.ZodOptional<z.ZodString>;
1529
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1530
- }, z.ZodTypeAny, "passthrough"> | undefined;
1531
- recursive?: boolean | undefined;
1532
- indexFile?: string | undefined;
1533
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1534
- from?: string | undefined;
1535
- exclude?: string[] | undefined;
1536
- } | undefined;
1537
- }>, "many">>;
1538
- workspaces: z.ZodOptional<z.ZodArray<z.ZodObject<{
1539
- title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1540
- from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1541
- transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1542
- }, "strict", z.ZodTypeAny, {
1543
- from: "auto" | "filename" | "heading" | "frontmatter";
1544
- transform?: ((...args: unknown[]) => unknown) | undefined;
1545
- }, {
1546
- from: "auto" | "filename" | "heading" | "frontmatter";
1547
- transform?: ((...args: unknown[]) => unknown) | undefined;
1548
- }>]>;
1549
- description: z.ZodString;
1550
- icon: z.ZodString;
1551
- items: z.ZodArray<z.ZodObject<{
1552
- title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1553
- from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1554
- transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1555
- }, "strict", z.ZodTypeAny, {
1556
- from: "auto" | "filename" | "heading" | "frontmatter";
1557
- transform?: ((...args: unknown[]) => unknown) | undefined;
1558
- }, {
1559
- from: "auto" | "filename" | "heading" | "frontmatter";
1560
- transform?: ((...args: unknown[]) => unknown) | undefined;
1561
- }>]>;
1562
- icon: z.ZodOptional<z.ZodString>;
1563
- iconColor: z.ZodOptional<z.ZodString>;
1564
- description: z.ZodString;
1565
- tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1566
- badge: z.ZodOptional<z.ZodObject<{
1567
- src: z.ZodString;
1568
- alt: z.ZodString;
1275
+ style?: "brand" | "alt" | "ghost" | undefined;
1276
+ shape?: "square" | "rounded" | "circle" | undefined;
1277
+ }[] | undefined;
1278
+ below?: {
1279
+ link: string;
1280
+ text: string;
1281
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1282
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1283
+ color: string;
1284
+ } | undefined;
1285
+ style?: "brand" | "alt" | "ghost" | undefined;
1286
+ shape?: "square" | "rounded" | "circle" | undefined;
1287
+ }[] | undefined;
1288
+ }>>;
1289
+ sections: z.ZodArray<z.ZodType<Section, z.ZodTypeDef, Section>, "many">;
1290
+ nav: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"auto">, z.ZodArray<z.ZodType<NavItem, z.ZodTypeDef, NavItem>, "many">]>>;
1291
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1292
+ home: z.ZodOptional<z.ZodObject<{
1293
+ features: z.ZodOptional<z.ZodObject<{
1294
+ columns: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
1295
+ truncate: z.ZodOptional<z.ZodObject<{
1296
+ title: z.ZodOptional<z.ZodNumber>;
1297
+ description: z.ZodOptional<z.ZodNumber>;
1569
1298
  }, "strict", z.ZodTypeAny, {
1570
- alt: string;
1571
- src: string;
1299
+ title?: number | undefined;
1300
+ description?: number | undefined;
1572
1301
  }, {
1573
- alt: string;
1574
- src: string;
1302
+ title?: number | undefined;
1303
+ description?: number | undefined;
1575
1304
  }>>;
1576
- prefix: z.ZodString;
1577
- discovery: z.ZodOptional<z.ZodObject<{
1578
- from: z.ZodOptional<z.ZodString>;
1579
- title: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
1580
- from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1581
- transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1582
- }, "strict", z.ZodTypeAny, {
1583
- from: "auto" | "filename" | "heading" | "frontmatter";
1584
- transform?: ((...args: unknown[]) => unknown) | undefined;
1585
- }, {
1586
- from: "auto" | "filename" | "heading" | "frontmatter";
1587
- transform?: ((...args: unknown[]) => unknown) | undefined;
1588
- }>]>>;
1589
- sort: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["alpha", "filename"]>, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
1590
- exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1591
- frontmatter: z.ZodOptional<z.ZodObject<{
1592
- title: z.ZodOptional<z.ZodString>;
1593
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1594
- description: z.ZodOptional<z.ZodString>;
1595
- layout: z.ZodOptional<z.ZodString>;
1596
- sidebar: z.ZodOptional<z.ZodBoolean>;
1597
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1598
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1599
- navbar: z.ZodOptional<z.ZodBoolean>;
1600
- editLink: z.ZodOptional<z.ZodBoolean>;
1601
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1602
- footer: z.ZodOptional<z.ZodBoolean>;
1603
- pageClass: z.ZodOptional<z.ZodString>;
1604
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1605
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1606
- title: z.ZodOptional<z.ZodString>;
1607
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1608
- description: z.ZodOptional<z.ZodString>;
1609
- layout: z.ZodOptional<z.ZodString>;
1610
- sidebar: z.ZodOptional<z.ZodBoolean>;
1611
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1612
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1613
- navbar: z.ZodOptional<z.ZodBoolean>;
1614
- editLink: z.ZodOptional<z.ZodBoolean>;
1615
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1616
- footer: z.ZodOptional<z.ZodBoolean>;
1617
- pageClass: z.ZodOptional<z.ZodString>;
1618
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1619
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1620
- title: z.ZodOptional<z.ZodString>;
1621
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1622
- description: z.ZodOptional<z.ZodString>;
1623
- layout: z.ZodOptional<z.ZodString>;
1624
- sidebar: z.ZodOptional<z.ZodBoolean>;
1625
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1626
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1627
- navbar: z.ZodOptional<z.ZodBoolean>;
1628
- editLink: z.ZodOptional<z.ZodBoolean>;
1629
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1630
- footer: z.ZodOptional<z.ZodBoolean>;
1631
- pageClass: z.ZodOptional<z.ZodString>;
1632
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1633
- }, z.ZodTypeAny, "passthrough">>>;
1634
- recursive: z.ZodOptional<z.ZodBoolean>;
1635
- indexFile: z.ZodOptional<z.ZodString>;
1305
+ }, "strict", z.ZodTypeAny, {
1306
+ columns?: 2 | 1 | 3 | 4 | undefined;
1307
+ truncate?: {
1308
+ title?: number | undefined;
1309
+ description?: number | undefined;
1310
+ } | undefined;
1311
+ }, {
1312
+ columns?: 2 | 1 | 3 | 4 | undefined;
1313
+ truncate?: {
1314
+ title?: number | undefined;
1315
+ description?: number | undefined;
1316
+ } | undefined;
1317
+ }>>;
1318
+ workspaces: z.ZodOptional<z.ZodObject<{
1319
+ columns: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
1320
+ truncate: z.ZodOptional<z.ZodObject<{
1321
+ title: z.ZodOptional<z.ZodNumber>;
1322
+ description: z.ZodOptional<z.ZodNumber>;
1636
1323
  }, "strict", z.ZodTypeAny, {
1637
- title?: string | {
1638
- from: "auto" | "filename" | "heading" | "frontmatter";
1639
- transform?: ((...args: unknown[]) => unknown) | undefined;
1640
- } | undefined;
1641
- frontmatter?: z.objectOutputType<{
1642
- title: z.ZodOptional<z.ZodString>;
1643
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1644
- description: z.ZodOptional<z.ZodString>;
1645
- layout: z.ZodOptional<z.ZodString>;
1646
- sidebar: z.ZodOptional<z.ZodBoolean>;
1647
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1648
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1649
- navbar: z.ZodOptional<z.ZodBoolean>;
1650
- editLink: z.ZodOptional<z.ZodBoolean>;
1651
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1652
- footer: z.ZodOptional<z.ZodBoolean>;
1653
- pageClass: z.ZodOptional<z.ZodString>;
1654
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1655
- }, z.ZodTypeAny, "passthrough"> | undefined;
1656
- recursive?: boolean | undefined;
1657
- indexFile?: string | undefined;
1658
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1659
- from?: string | undefined;
1660
- exclude?: string[] | undefined;
1324
+ title?: number | undefined;
1325
+ description?: number | undefined;
1661
1326
  }, {
1662
- title?: string | {
1663
- from: "auto" | "filename" | "heading" | "frontmatter";
1664
- transform?: ((...args: unknown[]) => unknown) | undefined;
1665
- } | undefined;
1666
- frontmatter?: z.objectInputType<{
1667
- title: z.ZodOptional<z.ZodString>;
1668
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1669
- description: z.ZodOptional<z.ZodString>;
1670
- layout: z.ZodOptional<z.ZodString>;
1671
- sidebar: z.ZodOptional<z.ZodBoolean>;
1672
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1673
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1674
- navbar: z.ZodOptional<z.ZodBoolean>;
1675
- editLink: z.ZodOptional<z.ZodBoolean>;
1676
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1677
- footer: z.ZodOptional<z.ZodBoolean>;
1678
- pageClass: z.ZodOptional<z.ZodString>;
1679
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1680
- }, z.ZodTypeAny, "passthrough"> | undefined;
1681
- recursive?: boolean | undefined;
1682
- indexFile?: string | undefined;
1683
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1684
- from?: string | undefined;
1685
- exclude?: string[] | undefined;
1327
+ title?: number | undefined;
1328
+ description?: number | undefined;
1686
1329
  }>>;
1687
- items: z.ZodOptional<z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">>;
1688
1330
  }, "strict", z.ZodTypeAny, {
1689
- title: string | {
1690
- from: "auto" | "filename" | "heading" | "frontmatter";
1691
- transform?: ((...args: unknown[]) => unknown) | undefined;
1692
- };
1693
- description: string;
1694
- prefix: string;
1695
- items?: unknown[] | undefined;
1696
- icon?: string | undefined;
1697
- iconColor?: string | undefined;
1698
- tags?: string[] | undefined;
1699
- badge?: {
1700
- alt: string;
1701
- src: string;
1702
- } | undefined;
1703
- discovery?: {
1704
- title?: string | {
1705
- from: "auto" | "filename" | "heading" | "frontmatter";
1706
- transform?: ((...args: unknown[]) => unknown) | undefined;
1707
- } | undefined;
1708
- frontmatter?: z.objectOutputType<{
1709
- title: z.ZodOptional<z.ZodString>;
1710
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1711
- description: z.ZodOptional<z.ZodString>;
1712
- layout: z.ZodOptional<z.ZodString>;
1713
- sidebar: z.ZodOptional<z.ZodBoolean>;
1714
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1715
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1716
- navbar: z.ZodOptional<z.ZodBoolean>;
1717
- editLink: z.ZodOptional<z.ZodBoolean>;
1718
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1719
- footer: z.ZodOptional<z.ZodBoolean>;
1720
- pageClass: z.ZodOptional<z.ZodString>;
1721
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1722
- }, z.ZodTypeAny, "passthrough"> | undefined;
1723
- recursive?: boolean | undefined;
1724
- indexFile?: string | undefined;
1725
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1726
- from?: string | undefined;
1727
- exclude?: string[] | undefined;
1331
+ columns?: 2 | 1 | 3 | 4 | undefined;
1332
+ truncate?: {
1333
+ title?: number | undefined;
1334
+ description?: number | undefined;
1728
1335
  } | undefined;
1729
1336
  }, {
1730
- title: string | {
1731
- from: "auto" | "filename" | "heading" | "frontmatter";
1732
- transform?: ((...args: unknown[]) => unknown) | undefined;
1733
- };
1734
- description: string;
1735
- prefix: string;
1736
- items?: unknown[] | undefined;
1737
- icon?: string | undefined;
1738
- iconColor?: string | undefined;
1739
- tags?: string[] | undefined;
1740
- badge?: {
1741
- alt: string;
1742
- src: string;
1743
- } | undefined;
1744
- discovery?: {
1745
- title?: string | {
1746
- from: "auto" | "filename" | "heading" | "frontmatter";
1747
- transform?: ((...args: unknown[]) => unknown) | undefined;
1748
- } | undefined;
1749
- frontmatter?: z.objectInputType<{
1750
- title: z.ZodOptional<z.ZodString>;
1751
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1752
- description: z.ZodOptional<z.ZodString>;
1753
- layout: z.ZodOptional<z.ZodString>;
1754
- sidebar: z.ZodOptional<z.ZodBoolean>;
1755
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1756
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1757
- navbar: z.ZodOptional<z.ZodBoolean>;
1758
- editLink: z.ZodOptional<z.ZodBoolean>;
1759
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1760
- footer: z.ZodOptional<z.ZodBoolean>;
1761
- pageClass: z.ZodOptional<z.ZodString>;
1762
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1763
- }, z.ZodTypeAny, "passthrough"> | undefined;
1764
- recursive?: boolean | undefined;
1765
- indexFile?: string | undefined;
1766
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1767
- from?: string | undefined;
1768
- exclude?: string[] | undefined;
1337
+ columns?: 2 | 1 | 3 | 4 | undefined;
1338
+ truncate?: {
1339
+ title?: number | undefined;
1340
+ description?: number | undefined;
1769
1341
  } | undefined;
1770
- }>, "many">;
1771
- link: z.ZodOptional<z.ZodString>;
1342
+ }>>;
1772
1343
  }, "strict", z.ZodTypeAny, {
1773
- title: string | {
1774
- from: "auto" | "filename" | "heading" | "frontmatter";
1775
- transform?: ((...args: unknown[]) => unknown) | undefined;
1776
- };
1777
- description: string;
1778
- items: {
1779
- title: string | {
1780
- from: "auto" | "filename" | "heading" | "frontmatter";
1781
- transform?: ((...args: unknown[]) => unknown) | undefined;
1782
- };
1783
- description: string;
1784
- prefix: string;
1785
- items?: unknown[] | undefined;
1786
- icon?: string | undefined;
1787
- iconColor?: string | undefined;
1788
- tags?: string[] | undefined;
1789
- badge?: {
1790
- alt: string;
1791
- src: string;
1344
+ features?: {
1345
+ columns?: 2 | 1 | 3 | 4 | undefined;
1346
+ truncate?: {
1347
+ title?: number | undefined;
1348
+ description?: number | undefined;
1792
1349
  } | undefined;
1793
- discovery?: {
1794
- title?: string | {
1795
- from: "auto" | "filename" | "heading" | "frontmatter";
1796
- transform?: ((...args: unknown[]) => unknown) | undefined;
1797
- } | undefined;
1798
- frontmatter?: z.objectOutputType<{
1799
- title: z.ZodOptional<z.ZodString>;
1800
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1801
- description: z.ZodOptional<z.ZodString>;
1802
- layout: z.ZodOptional<z.ZodString>;
1803
- sidebar: z.ZodOptional<z.ZodBoolean>;
1804
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1805
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1806
- navbar: z.ZodOptional<z.ZodBoolean>;
1807
- editLink: z.ZodOptional<z.ZodBoolean>;
1808
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1809
- footer: z.ZodOptional<z.ZodBoolean>;
1810
- pageClass: z.ZodOptional<z.ZodString>;
1811
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1812
- }, z.ZodTypeAny, "passthrough"> | undefined;
1813
- recursive?: boolean | undefined;
1814
- indexFile?: string | undefined;
1815
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1816
- from?: string | undefined;
1817
- exclude?: string[] | undefined;
1350
+ } | undefined;
1351
+ workspaces?: {
1352
+ columns?: 2 | 1 | 3 | 4 | undefined;
1353
+ truncate?: {
1354
+ title?: number | undefined;
1355
+ description?: number | undefined;
1818
1356
  } | undefined;
1819
- }[];
1820
- icon: string;
1821
- link?: string | undefined;
1357
+ } | undefined;
1822
1358
  }, {
1823
- title: string | {
1824
- from: "auto" | "filename" | "heading" | "frontmatter";
1825
- transform?: ((...args: unknown[]) => unknown) | undefined;
1826
- };
1827
- description: string;
1828
- items: {
1829
- title: string | {
1830
- from: "auto" | "filename" | "heading" | "frontmatter";
1831
- transform?: ((...args: unknown[]) => unknown) | undefined;
1832
- };
1833
- description: string;
1834
- prefix: string;
1835
- items?: unknown[] | undefined;
1836
- icon?: string | undefined;
1837
- iconColor?: string | undefined;
1838
- tags?: string[] | undefined;
1839
- badge?: {
1840
- alt: string;
1841
- src: string;
1359
+ features?: {
1360
+ columns?: 2 | 1 | 3 | 4 | undefined;
1361
+ truncate?: {
1362
+ title?: number | undefined;
1363
+ description?: number | undefined;
1842
1364
  } | undefined;
1843
- discovery?: {
1844
- title?: string | {
1845
- from: "auto" | "filename" | "heading" | "frontmatter";
1846
- transform?: ((...args: unknown[]) => unknown) | undefined;
1847
- } | undefined;
1848
- frontmatter?: z.objectInputType<{
1849
- title: z.ZodOptional<z.ZodString>;
1850
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1851
- description: z.ZodOptional<z.ZodString>;
1852
- layout: z.ZodOptional<z.ZodString>;
1853
- sidebar: z.ZodOptional<z.ZodBoolean>;
1854
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1855
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1856
- navbar: z.ZodOptional<z.ZodBoolean>;
1857
- editLink: z.ZodOptional<z.ZodBoolean>;
1858
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1859
- footer: z.ZodOptional<z.ZodBoolean>;
1860
- pageClass: z.ZodOptional<z.ZodString>;
1861
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1862
- }, z.ZodTypeAny, "passthrough"> | undefined;
1863
- recursive?: boolean | undefined;
1864
- indexFile?: string | undefined;
1865
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
1866
- from?: string | undefined;
1867
- exclude?: string[] | undefined;
1365
+ } | undefined;
1366
+ workspaces?: {
1367
+ columns?: 2 | 1 | 3 | 4 | undefined;
1368
+ truncate?: {
1369
+ title?: number | undefined;
1370
+ description?: number | undefined;
1868
1371
  } | undefined;
1869
- }[];
1870
- icon: string;
1871
- link?: string | undefined;
1872
- }>, "many">>;
1873
- features: z.ZodOptional<z.ZodArray<z.ZodObject<{
1874
- title: z.ZodUnion<[z.ZodString, z.ZodObject<{
1875
- from: z.ZodEnum<["auto", "filename", "heading", "frontmatter"]>;
1876
- transform: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1372
+ } | undefined;
1373
+ }>>;
1374
+ socialLinks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1375
+ icon: z.ZodUnion<[z.ZodEnum<["lark", "discord", "facebook", "github", "instagram", "linkedin", "slack", "x", "youtube", "wechat", "qq", "juejin", "zhihu", "bilibili", "weibo", "gitlab", "X", "bluesky", "npm"]>, z.ZodObject<{
1376
+ svg: z.ZodString;
1877
1377
  }, "strict", z.ZodTypeAny, {
1878
- from: "auto" | "filename" | "heading" | "frontmatter";
1879
- transform?: ((...args: unknown[]) => unknown) | undefined;
1378
+ svg: string;
1880
1379
  }, {
1881
- from: "auto" | "filename" | "heading" | "frontmatter";
1882
- transform?: ((...args: unknown[]) => unknown) | undefined;
1380
+ svg: string;
1883
1381
  }>]>;
1884
- description: z.ZodString;
1885
- link: z.ZodOptional<z.ZodString>;
1886
- icon: z.ZodOptional<z.ZodString>;
1382
+ mode: z.ZodEnum<["link", "text", "img", "dom"]>;
1383
+ content: z.ZodString;
1887
1384
  }, "strict", z.ZodTypeAny, {
1888
- title: string | {
1889
- from: "auto" | "filename" | "heading" | "frontmatter";
1890
- transform?: ((...args: unknown[]) => unknown) | undefined;
1385
+ icon: "lark" | "discord" | "facebook" | "github" | "instagram" | "linkedin" | "slack" | "x" | "youtube" | "wechat" | "qq" | "juejin" | "zhihu" | "bilibili" | "weibo" | "gitlab" | "X" | "bluesky" | "npm" | {
1386
+ svg: string;
1891
1387
  };
1892
- description: string;
1893
- link?: string | undefined;
1894
- icon?: string | undefined;
1388
+ content: string;
1389
+ mode: "link" | "text" | "img" | "dom";
1895
1390
  }, {
1896
- title: string | {
1897
- from: "auto" | "filename" | "heading" | "frontmatter";
1898
- transform?: ((...args: unknown[]) => unknown) | undefined;
1391
+ icon: "lark" | "discord" | "facebook" | "github" | "instagram" | "linkedin" | "slack" | "x" | "youtube" | "wechat" | "qq" | "juejin" | "zhihu" | "bilibili" | "weibo" | "gitlab" | "X" | "bluesky" | "npm" | {
1392
+ svg: string;
1899
1393
  };
1900
- description: string;
1901
- link?: string | undefined;
1902
- icon?: string | undefined;
1394
+ content: string;
1395
+ mode: "link" | "text" | "img" | "dom";
1903
1396
  }>, "many">>;
1904
- sections: z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">;
1905
- nav: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"auto">, z.ZodArray<z.ZodType<unknown, z.ZodTypeDef, unknown>, "many">]>>;
1906
- exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1397
+ footer: z.ZodOptional<z.ZodObject<{
1398
+ message: z.ZodOptional<z.ZodString>;
1399
+ copyright: z.ZodOptional<z.ZodString>;
1400
+ socials: z.ZodOptional<z.ZodBoolean>;
1401
+ }, "strict", z.ZodTypeAny, {
1402
+ message?: string | undefined;
1403
+ copyright?: string | undefined;
1404
+ socials?: boolean | undefined;
1405
+ }, {
1406
+ message?: string | undefined;
1407
+ copyright?: string | undefined;
1408
+ socials?: boolean | undefined;
1409
+ }>>;
1907
1410
  openapi: z.ZodOptional<z.ZodObject<{
1908
1411
  spec: z.ZodString;
1909
- prefix: z.ZodString;
1412
+ path: z.ZodString;
1910
1413
  title: z.ZodOptional<z.ZodString>;
1414
+ sidebarLayout: z.ZodOptional<z.ZodEnum<["method-path", "title"]>>;
1911
1415
  }, "strict", z.ZodTypeAny, {
1912
- prefix: string;
1416
+ path: string;
1913
1417
  spec: string;
1914
1418
  title?: string | undefined;
1419
+ sidebarLayout?: "title" | "method-path" | undefined;
1915
1420
  }, {
1916
- prefix: string;
1421
+ path: string;
1917
1422
  spec: string;
1918
1423
  title?: string | undefined;
1424
+ sidebarLayout?: "title" | "method-path" | undefined;
1919
1425
  }>>;
1920
1426
  }, "strict", z.ZodTypeAny, {
1921
- sections: unknown[];
1427
+ sections: Section[];
1922
1428
  title?: string | undefined;
1923
1429
  description?: string | undefined;
1430
+ sidebar?: {
1431
+ above?: {
1432
+ link: string;
1433
+ text: string;
1434
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1435
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1436
+ color: string;
1437
+ } | undefined;
1438
+ style?: "brand" | "alt" | "ghost" | undefined;
1439
+ shape?: "square" | "rounded" | "circle" | undefined;
1440
+ }[] | undefined;
1441
+ below?: {
1442
+ link: string;
1443
+ text: string;
1444
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1445
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1446
+ color: string;
1447
+ } | undefined;
1448
+ style?: "brand" | "alt" | "ghost" | undefined;
1449
+ shape?: "square" | "rounded" | "circle" | undefined;
1450
+ }[] | undefined;
1451
+ } | undefined;
1452
+ footer?: {
1453
+ message?: string | undefined;
1454
+ copyright?: string | undefined;
1455
+ socials?: boolean | undefined;
1456
+ } | undefined;
1457
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | undefined;
1924
1458
  exclude?: string[] | undefined;
1925
- icon?: string | undefined;
1459
+ openapi?: {
1460
+ path: string;
1461
+ spec: string;
1462
+ title?: string | undefined;
1463
+ sidebarLayout?: "title" | "method-path" | undefined;
1464
+ } | undefined;
1465
+ features?: {
1466
+ title: string | {
1467
+ from: "auto" | "filename" | "heading" | "frontmatter";
1468
+ transform?: ((text: string, slug: string) => string) | undefined;
1469
+ };
1470
+ description: string;
1471
+ link?: string | undefined;
1472
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1473
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1474
+ color: string;
1475
+ } | undefined;
1476
+ }[] | undefined;
1477
+ workspaces?: {
1478
+ title: string | {
1479
+ from: "auto" | "filename" | "heading" | "frontmatter";
1480
+ transform?: ((text: string, slug: string) => string) | undefined;
1481
+ };
1482
+ items: {
1483
+ title: string | {
1484
+ from: "auto" | "filename" | "heading" | "frontmatter";
1485
+ transform?: ((text: string, slug: string) => string) | undefined;
1486
+ };
1487
+ description: string;
1488
+ path: string;
1489
+ frontmatter?: z.objectOutputType<{
1490
+ title: z.ZodOptional<z.ZodString>;
1491
+ titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1492
+ description: z.ZodOptional<z.ZodString>;
1493
+ layout: z.ZodOptional<z.ZodString>;
1494
+ sidebar: z.ZodOptional<z.ZodBoolean>;
1495
+ aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1496
+ outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1497
+ navbar: z.ZodOptional<z.ZodBoolean>;
1498
+ editLink: z.ZodOptional<z.ZodBoolean>;
1499
+ lastUpdated: z.ZodOptional<z.ZodBoolean>;
1500
+ footer: z.ZodOptional<z.ZodBoolean>;
1501
+ pageClass: z.ZodOptional<z.ZodString>;
1502
+ head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1503
+ }, z.ZodTypeAny, "passthrough"> | undefined;
1504
+ sort?: "filename" | "default" | "alpha" | ((a: ResolvedPage, b: ResolvedPage) => number) | undefined;
1505
+ items?: Section[] | undefined;
1506
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1507
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1508
+ color: string;
1509
+ } | undefined;
1510
+ tags?: string[] | undefined;
1511
+ badge?: {
1512
+ alt: string;
1513
+ src: string;
1514
+ } | undefined;
1515
+ include?: string | string[] | undefined;
1516
+ exclude?: string[] | undefined;
1517
+ recursive?: boolean | undefined;
1518
+ entryFile?: string | undefined;
1519
+ openapi?: {
1520
+ path: string;
1521
+ spec: string;
1522
+ title?: string | undefined;
1523
+ sidebarLayout?: "title" | "method-path" | undefined;
1524
+ } | undefined;
1525
+ }[];
1526
+ icon: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1527
+ description?: string | undefined;
1528
+ link?: string | undefined;
1529
+ }[] | undefined;
1926
1530
  theme?: {
1927
1531
  name: string;
1928
1532
  colorMode?: "dark" | "light" | "toggle" | undefined;
@@ -1961,69 +1565,99 @@ export declare const zpressConfigSchema: z.ZodObject<{
1961
1565
  } | undefined;
1962
1566
  } | undefined;
1963
1567
  tagline?: string | undefined;
1964
- apps?: {
1965
- title: string | {
1966
- from: "auto" | "filename" | "heading" | "frontmatter";
1967
- transform?: ((...args: unknown[]) => unknown) | undefined;
1968
- };
1969
- description: string;
1970
- prefix: string;
1971
- items?: unknown[] | undefined;
1972
- icon?: string | undefined;
1973
- iconColor?: string | undefined;
1974
- tags?: string[] | undefined;
1975
- badge?: {
1976
- alt: string;
1977
- src: string;
1568
+ actions?: {
1569
+ link: string;
1570
+ text: string;
1571
+ theme: "brand" | "alt";
1572
+ }[] | undefined;
1573
+ nav?: "auto" | NavItem[] | undefined;
1574
+ home?: {
1575
+ features?: {
1576
+ columns?: 2 | 1 | 3 | 4 | undefined;
1577
+ truncate?: {
1578
+ title?: number | undefined;
1579
+ description?: number | undefined;
1580
+ } | undefined;
1978
1581
  } | undefined;
1979
- discovery?: {
1980
- title?: string | {
1981
- from: "auto" | "filename" | "heading" | "frontmatter";
1982
- transform?: ((...args: unknown[]) => unknown) | undefined;
1582
+ workspaces?: {
1583
+ columns?: 2 | 1 | 3 | 4 | undefined;
1584
+ truncate?: {
1585
+ title?: number | undefined;
1586
+ description?: number | undefined;
1983
1587
  } | undefined;
1984
- frontmatter?: z.objectOutputType<{
1985
- title: z.ZodOptional<z.ZodString>;
1986
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
1987
- description: z.ZodOptional<z.ZodString>;
1988
- layout: z.ZodOptional<z.ZodString>;
1989
- sidebar: z.ZodOptional<z.ZodBoolean>;
1990
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
1991
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
1992
- navbar: z.ZodOptional<z.ZodBoolean>;
1993
- editLink: z.ZodOptional<z.ZodBoolean>;
1994
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
1995
- footer: z.ZodOptional<z.ZodBoolean>;
1996
- pageClass: z.ZodOptional<z.ZodString>;
1997
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
1998
- }, z.ZodTypeAny, "passthrough"> | undefined;
1999
- recursive?: boolean | undefined;
2000
- indexFile?: string | undefined;
2001
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2002
- from?: string | undefined;
2003
- exclude?: string[] | undefined;
2004
1588
  } | undefined;
1589
+ } | undefined;
1590
+ socialLinks?: {
1591
+ icon: "lark" | "discord" | "facebook" | "github" | "instagram" | "linkedin" | "slack" | "x" | "youtube" | "wechat" | "qq" | "juejin" | "zhihu" | "bilibili" | "weibo" | "gitlab" | "X" | "bluesky" | "npm" | {
1592
+ svg: string;
1593
+ };
1594
+ content: string;
1595
+ mode: "link" | "text" | "img" | "dom";
2005
1596
  }[] | undefined;
2006
- packages?: {
1597
+ }, {
1598
+ sections: Section[];
1599
+ title?: string | undefined;
1600
+ description?: string | undefined;
1601
+ sidebar?: {
1602
+ above?: {
1603
+ link: string;
1604
+ text: string;
1605
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1606
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1607
+ color: string;
1608
+ } | undefined;
1609
+ style?: "brand" | "alt" | "ghost" | undefined;
1610
+ shape?: "square" | "rounded" | "circle" | undefined;
1611
+ }[] | undefined;
1612
+ below?: {
1613
+ link: string;
1614
+ text: string;
1615
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1616
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1617
+ color: string;
1618
+ } | undefined;
1619
+ style?: "brand" | "alt" | "ghost" | undefined;
1620
+ shape?: "square" | "rounded" | "circle" | undefined;
1621
+ }[] | undefined;
1622
+ } | undefined;
1623
+ footer?: {
1624
+ message?: string | undefined;
1625
+ copyright?: string | undefined;
1626
+ socials?: boolean | undefined;
1627
+ } | undefined;
1628
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | undefined;
1629
+ exclude?: string[] | undefined;
1630
+ openapi?: {
1631
+ path: string;
1632
+ spec: string;
1633
+ title?: string | undefined;
1634
+ sidebarLayout?: "title" | "method-path" | undefined;
1635
+ } | undefined;
1636
+ features?: {
2007
1637
  title: string | {
2008
1638
  from: "auto" | "filename" | "heading" | "frontmatter";
2009
- transform?: ((...args: unknown[]) => unknown) | undefined;
1639
+ transform?: ((text: string, slug: string) => string) | undefined;
2010
1640
  };
2011
1641
  description: string;
2012
- prefix: string;
2013
- items?: unknown[] | undefined;
2014
- icon?: string | undefined;
2015
- iconColor?: string | undefined;
2016
- tags?: string[] | undefined;
2017
- badge?: {
2018
- alt: string;
2019
- src: string;
1642
+ link?: string | undefined;
1643
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1644
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1645
+ color: string;
2020
1646
  } | undefined;
2021
- discovery?: {
2022
- title?: string | {
1647
+ }[] | undefined;
1648
+ workspaces?: {
1649
+ title: string | {
1650
+ from: "auto" | "filename" | "heading" | "frontmatter";
1651
+ transform?: ((text: string, slug: string) => string) | undefined;
1652
+ };
1653
+ items: {
1654
+ title: string | {
2023
1655
  from: "auto" | "filename" | "heading" | "frontmatter";
2024
- transform?: ((...args: unknown[]) => unknown) | undefined;
2025
- } | undefined;
2026
- frontmatter?: z.objectOutputType<{
1656
+ transform?: ((text: string, slug: string) => string) | undefined;
1657
+ };
1658
+ description: string;
1659
+ path: string;
1660
+ frontmatter?: z.objectInputType<{
2027
1661
  title: z.ZodOptional<z.ZodString>;
2028
1662
  titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2029
1663
  description: z.ZodOptional<z.ZodString>;
@@ -2038,85 +1672,32 @@ export declare const zpressConfigSchema: z.ZodObject<{
2038
1672
  pageClass: z.ZodOptional<z.ZodString>;
2039
1673
  head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2040
1674
  }, z.ZodTypeAny, "passthrough"> | undefined;
2041
- recursive?: boolean | undefined;
2042
- indexFile?: string | undefined;
2043
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2044
- from?: string | undefined;
2045
- exclude?: string[] | undefined;
2046
- } | undefined;
2047
- }[] | undefined;
2048
- workspaces?: {
2049
- title: string | {
2050
- from: "auto" | "filename" | "heading" | "frontmatter";
2051
- transform?: ((...args: unknown[]) => unknown) | undefined;
2052
- };
2053
- description: string;
2054
- items: {
2055
- title: string | {
2056
- from: "auto" | "filename" | "heading" | "frontmatter";
2057
- transform?: ((...args: unknown[]) => unknown) | undefined;
2058
- };
2059
- description: string;
2060
- prefix: string;
2061
- items?: unknown[] | undefined;
2062
- icon?: string | undefined;
2063
- iconColor?: string | undefined;
1675
+ sort?: "filename" | "default" | "alpha" | ((a: ResolvedPage, b: ResolvedPage) => number) | undefined;
1676
+ items?: Section[] | undefined;
1677
+ icon?: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}` | {
1678
+ id: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1679
+ color: string;
1680
+ } | undefined;
2064
1681
  tags?: string[] | undefined;
2065
1682
  badge?: {
2066
1683
  alt: string;
2067
1684
  src: string;
2068
1685
  } | undefined;
2069
- discovery?: {
2070
- title?: string | {
2071
- from: "auto" | "filename" | "heading" | "frontmatter";
2072
- transform?: ((...args: unknown[]) => unknown) | undefined;
2073
- } | undefined;
2074
- frontmatter?: z.objectOutputType<{
2075
- title: z.ZodOptional<z.ZodString>;
2076
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2077
- description: z.ZodOptional<z.ZodString>;
2078
- layout: z.ZodOptional<z.ZodString>;
2079
- sidebar: z.ZodOptional<z.ZodBoolean>;
2080
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2081
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2082
- navbar: z.ZodOptional<z.ZodBoolean>;
2083
- editLink: z.ZodOptional<z.ZodBoolean>;
2084
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
2085
- footer: z.ZodOptional<z.ZodBoolean>;
2086
- pageClass: z.ZodOptional<z.ZodString>;
2087
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2088
- }, z.ZodTypeAny, "passthrough"> | undefined;
2089
- recursive?: boolean | undefined;
2090
- indexFile?: string | undefined;
2091
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2092
- from?: string | undefined;
2093
- exclude?: string[] | undefined;
1686
+ include?: string | string[] | undefined;
1687
+ exclude?: string[] | undefined;
1688
+ recursive?: boolean | undefined;
1689
+ entryFile?: string | undefined;
1690
+ openapi?: {
1691
+ path: string;
1692
+ spec: string;
1693
+ title?: string | undefined;
1694
+ sidebarLayout?: "title" | "method-path" | undefined;
2094
1695
  } | undefined;
2095
1696
  }[];
2096
- icon: string;
2097
- link?: string | undefined;
2098
- }[] | undefined;
2099
- features?: {
2100
- title: string | {
2101
- from: "auto" | "filename" | "heading" | "frontmatter";
2102
- transform?: ((...args: unknown[]) => unknown) | undefined;
2103
- };
2104
- description: string;
1697
+ icon: `catppuccin:${string}` | `devicon:${string}` | `logos:${string}` | `material-icon-theme:${string}` | `mdi:${string}` | `pixelarticons:${string}` | `simple-icons:${string}` | `skill-icons:${string}` | `vscode-icons:${string}`;
1698
+ description?: string | undefined;
2105
1699
  link?: string | undefined;
2106
- icon?: string | undefined;
2107
1700
  }[] | undefined;
2108
- nav?: "auto" | unknown[] | undefined;
2109
- openapi?: {
2110
- prefix: string;
2111
- spec: string;
2112
- title?: string | undefined;
2113
- } | undefined;
2114
- }, {
2115
- sections: unknown[];
2116
- title?: string | undefined;
2117
- description?: string | undefined;
2118
- exclude?: string[] | undefined;
2119
- icon?: string | undefined;
2120
1701
  theme?: {
2121
1702
  name?: string | undefined;
2122
1703
  colorMode?: "dark" | "light" | "toggle" | undefined;
@@ -2155,156 +1736,35 @@ export declare const zpressConfigSchema: z.ZodObject<{
2155
1736
  } | undefined;
2156
1737
  } | undefined;
2157
1738
  tagline?: string | undefined;
2158
- apps?: {
2159
- title: string | {
2160
- from: "auto" | "filename" | "heading" | "frontmatter";
2161
- transform?: ((...args: unknown[]) => unknown) | undefined;
2162
- };
2163
- description: string;
2164
- prefix: string;
2165
- items?: unknown[] | undefined;
2166
- icon?: string | undefined;
2167
- iconColor?: string | undefined;
2168
- tags?: string[] | undefined;
2169
- badge?: {
2170
- alt: string;
2171
- src: string;
2172
- } | undefined;
2173
- discovery?: {
2174
- title?: string | {
2175
- from: "auto" | "filename" | "heading" | "frontmatter";
2176
- transform?: ((...args: unknown[]) => unknown) | undefined;
2177
- } | undefined;
2178
- frontmatter?: z.objectInputType<{
2179
- title: z.ZodOptional<z.ZodString>;
2180
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2181
- description: z.ZodOptional<z.ZodString>;
2182
- layout: z.ZodOptional<z.ZodString>;
2183
- sidebar: z.ZodOptional<z.ZodBoolean>;
2184
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2185
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2186
- navbar: z.ZodOptional<z.ZodBoolean>;
2187
- editLink: z.ZodOptional<z.ZodBoolean>;
2188
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
2189
- footer: z.ZodOptional<z.ZodBoolean>;
2190
- pageClass: z.ZodOptional<z.ZodString>;
2191
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2192
- }, z.ZodTypeAny, "passthrough"> | undefined;
2193
- recursive?: boolean | undefined;
2194
- indexFile?: string | undefined;
2195
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2196
- from?: string | undefined;
2197
- exclude?: string[] | undefined;
2198
- } | undefined;
1739
+ actions?: {
1740
+ link: string;
1741
+ text: string;
1742
+ theme: "brand" | "alt";
2199
1743
  }[] | undefined;
2200
- packages?: {
2201
- title: string | {
2202
- from: "auto" | "filename" | "heading" | "frontmatter";
2203
- transform?: ((...args: unknown[]) => unknown) | undefined;
2204
- };
2205
- description: string;
2206
- prefix: string;
2207
- items?: unknown[] | undefined;
2208
- icon?: string | undefined;
2209
- iconColor?: string | undefined;
2210
- tags?: string[] | undefined;
2211
- badge?: {
2212
- alt: string;
2213
- src: string;
2214
- } | undefined;
2215
- discovery?: {
2216
- title?: string | {
2217
- from: "auto" | "filename" | "heading" | "frontmatter";
2218
- transform?: ((...args: unknown[]) => unknown) | undefined;
1744
+ nav?: "auto" | NavItem[] | undefined;
1745
+ home?: {
1746
+ features?: {
1747
+ columns?: 2 | 1 | 3 | 4 | undefined;
1748
+ truncate?: {
1749
+ title?: number | undefined;
1750
+ description?: number | undefined;
2219
1751
  } | undefined;
2220
- frontmatter?: z.objectInputType<{
2221
- title: z.ZodOptional<z.ZodString>;
2222
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2223
- description: z.ZodOptional<z.ZodString>;
2224
- layout: z.ZodOptional<z.ZodString>;
2225
- sidebar: z.ZodOptional<z.ZodBoolean>;
2226
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2227
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2228
- navbar: z.ZodOptional<z.ZodBoolean>;
2229
- editLink: z.ZodOptional<z.ZodBoolean>;
2230
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
2231
- footer: z.ZodOptional<z.ZodBoolean>;
2232
- pageClass: z.ZodOptional<z.ZodString>;
2233
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2234
- }, z.ZodTypeAny, "passthrough"> | undefined;
2235
- recursive?: boolean | undefined;
2236
- indexFile?: string | undefined;
2237
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2238
- from?: string | undefined;
2239
- exclude?: string[] | undefined;
2240
1752
  } | undefined;
2241
- }[] | undefined;
2242
- workspaces?: {
2243
- title: string | {
2244
- from: "auto" | "filename" | "heading" | "frontmatter";
2245
- transform?: ((...args: unknown[]) => unknown) | undefined;
2246
- };
2247
- description: string;
2248
- items: {
2249
- title: string | {
2250
- from: "auto" | "filename" | "heading" | "frontmatter";
2251
- transform?: ((...args: unknown[]) => unknown) | undefined;
2252
- };
2253
- description: string;
2254
- prefix: string;
2255
- items?: unknown[] | undefined;
2256
- icon?: string | undefined;
2257
- iconColor?: string | undefined;
2258
- tags?: string[] | undefined;
2259
- badge?: {
2260
- alt: string;
2261
- src: string;
2262
- } | undefined;
2263
- discovery?: {
2264
- title?: string | {
2265
- from: "auto" | "filename" | "heading" | "frontmatter";
2266
- transform?: ((...args: unknown[]) => unknown) | undefined;
2267
- } | undefined;
2268
- frontmatter?: z.objectInputType<{
2269
- title: z.ZodOptional<z.ZodString>;
2270
- titleTemplate: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
2271
- description: z.ZodOptional<z.ZodString>;
2272
- layout: z.ZodOptional<z.ZodString>;
2273
- sidebar: z.ZodOptional<z.ZodBoolean>;
2274
- aside: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"left">]>>;
2275
- outline: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodLiteral<"deep">]>>;
2276
- navbar: z.ZodOptional<z.ZodBoolean>;
2277
- editLink: z.ZodOptional<z.ZodBoolean>;
2278
- lastUpdated: z.ZodOptional<z.ZodBoolean>;
2279
- footer: z.ZodOptional<z.ZodBoolean>;
2280
- pageClass: z.ZodOptional<z.ZodString>;
2281
- head: z.ZodOptional<z.ZodArray<z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>], null>, "many">>;
2282
- }, z.ZodTypeAny, "passthrough"> | undefined;
2283
- recursive?: boolean | undefined;
2284
- indexFile?: string | undefined;
2285
- sort?: "filename" | "alpha" | ((...args: unknown[]) => unknown) | undefined;
2286
- from?: string | undefined;
2287
- exclude?: string[] | undefined;
1753
+ workspaces?: {
1754
+ columns?: 2 | 1 | 3 | 4 | undefined;
1755
+ truncate?: {
1756
+ title?: number | undefined;
1757
+ description?: number | undefined;
2288
1758
  } | undefined;
2289
- }[];
2290
- icon: string;
2291
- link?: string | undefined;
2292
- }[] | undefined;
2293
- features?: {
2294
- title: string | {
2295
- from: "auto" | "filename" | "heading" | "frontmatter";
2296
- transform?: ((...args: unknown[]) => unknown) | undefined;
1759
+ } | undefined;
1760
+ } | undefined;
1761
+ socialLinks?: {
1762
+ icon: "lark" | "discord" | "facebook" | "github" | "instagram" | "linkedin" | "slack" | "x" | "youtube" | "wechat" | "qq" | "juejin" | "zhihu" | "bilibili" | "weibo" | "gitlab" | "X" | "bluesky" | "npm" | {
1763
+ svg: string;
2297
1764
  };
2298
- description: string;
2299
- link?: string | undefined;
2300
- icon?: string | undefined;
1765
+ content: string;
1766
+ mode: "link" | "text" | "img" | "dom";
2301
1767
  }[] | undefined;
2302
- nav?: "auto" | unknown[] | undefined;
2303
- openapi?: {
2304
- prefix: string;
2305
- spec: string;
2306
- title?: string | undefined;
2307
- } | undefined;
2308
1768
  }>;
2309
1769
 
2310
1770
  export { }