@cedros/data-react 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +7 -0
  2. package/dist/docsContract.d.ts +56 -0
  3. package/dist/docsContract.js +136 -0
  4. package/dist/react/contentCollections.d.ts +4 -0
  5. package/dist/react/contentCollections.js +48 -0
  6. package/dist/react/docs.d.ts +14 -0
  7. package/dist/react/docs.js +207 -0
  8. package/dist/react/entries.js +6 -7
  9. package/dist/react/index.d.ts +2 -1
  10. package/dist/react/index.js +1 -0
  11. package/dist/react/server.d.ts +2 -1
  12. package/dist/react/server.js +1 -0
  13. package/dist/react/sitemap.js +7 -20
  14. package/dist/react/slugs.js +7 -20
  15. package/dist/react/types.d.ts +17 -0
  16. package/dist/site-templates/BlogTemplates.js +16 -12
  17. package/dist/site-templates/DocsSidebar.d.ts +1 -1
  18. package/dist/site-templates/DocsSidebar.js +2 -2
  19. package/dist/site-templates/DocsTemplates.d.ts +9 -8
  20. package/dist/site-templates/DocsTemplates.js +32 -18
  21. package/dist/site-templates/SiteFooter.js +1 -1
  22. package/dist/site-templates/SiteLayout.js +1 -1
  23. package/dist/site-templates/TopNav.js +1 -1
  24. package/dist/site-templates/blog-styles.css +259 -0
  25. package/dist/site-templates/blogControls.js +2 -2
  26. package/dist/site-templates/blogTemplateUi.d.ts +10 -0
  27. package/dist/site-templates/blogTemplateUi.js +4 -0
  28. package/dist/site-templates/content-styles.css +127 -309
  29. package/dist/site-templates/contentIndex.d.ts +4 -7
  30. package/dist/site-templates/contentIndex.js +25 -1
  31. package/dist/site-templates/contentUi.js +4 -3
  32. package/dist/site-templates/dashboard-styles.css +109 -0
  33. package/dist/site-templates/docs-layout.css +372 -0
  34. package/dist/site-templates/docs-styles.css +288 -96
  35. package/dist/site-templates/docsNavigation.d.ts +50 -1
  36. package/dist/site-templates/docsNavigation.js +242 -8
  37. package/dist/site-templates/docsTemplateShell.d.ts +8 -0
  38. package/dist/site-templates/docsTemplateShell.js +14 -0
  39. package/dist/site-templates/index.d.ts +2 -1
  40. package/dist/site-templates/index.js +2 -1
  41. package/dist/site-templates/styles.css +283 -201
  42. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /* ─── Syntax highlighting (GitHub-light inspired, dark-mode aware) ──── */
1
+ /* Syntax highlighting --------------------------------------------------- */
2
2
 
3
3
  .cedros-site__prose .hljs {
4
4
  color: var(--cds-fg);
@@ -7,81 +7,221 @@
7
7
 
8
8
  .hljs-comment,
9
9
  .hljs-quote {
10
- color: color-mix(in srgb, var(--cds-muted) 85%, var(--cds-fg) 15%);
10
+ color: color-mix(in srgb, var(--cds-muted) 82%, var(--cds-fg) 18%);
11
11
  font-style: italic;
12
12
  }
13
13
 
14
14
  .hljs-keyword,
15
15
  .hljs-selector-tag,
16
16
  .hljs-type {
17
- color: #cf222e;
17
+ color: #bc2d31;
18
18
  }
19
19
 
20
20
  .hljs-string,
21
21
  .hljs-addition {
22
- color: #0a3069;
22
+ color: #005d8f;
23
23
  }
24
24
 
25
25
  .hljs-number,
26
26
  .hljs-literal,
27
27
  .hljs-variable,
28
28
  .hljs-template-variable {
29
- color: #0550ae;
29
+ color: #0f5bd8;
30
30
  }
31
31
 
32
32
  .hljs-title,
33
33
  .hljs-section,
34
34
  .hljs-attr {
35
- color: #953800;
35
+ color: #92521d;
36
36
  }
37
37
 
38
38
  .hljs-built_in,
39
39
  .hljs-name {
40
- color: #8250df;
40
+ color: #7750c4;
41
41
  }
42
42
 
43
43
  .hljs-deletion {
44
- color: #82071e;
45
- background: #ffebe9;
44
+ color: #821c2f;
45
+ background: #fce8ee;
46
46
  }
47
47
 
48
48
  @media (prefers-color-scheme: dark) {
49
49
  .hljs-keyword,
50
50
  .hljs-selector-tag,
51
51
  .hljs-type {
52
- color: #ff7b72;
52
+ color: #ff8f7a;
53
53
  }
54
54
 
55
55
  .hljs-string,
56
56
  .hljs-addition {
57
- color: #a5d6ff;
57
+ color: #9cd4ff;
58
58
  }
59
59
 
60
60
  .hljs-number,
61
61
  .hljs-literal,
62
62
  .hljs-variable,
63
63
  .hljs-template-variable {
64
- color: #79c0ff;
64
+ color: #83b8ff;
65
65
  }
66
66
 
67
67
  .hljs-title,
68
68
  .hljs-section,
69
69
  .hljs-attr {
70
- color: #ffa657;
70
+ color: #ffbc77;
71
71
  }
72
72
 
73
73
  .hljs-built_in,
74
74
  .hljs-name {
75
- color: #d2a8ff;
75
+ color: #ceb1ff;
76
76
  }
77
77
 
78
78
  .hljs-deletion {
79
- color: #ffdcd7;
80
- background: #67060c;
79
+ color: #ffdde5;
80
+ background: #5f1320;
81
81
  }
82
82
  }
83
83
 
84
- /* ─── Code block copy button ──── */
84
+ /* Markdown/prose -------------------------------------------------------- */
85
+
86
+ .cedros-site__prose {
87
+ display: grid;
88
+ gap: 1rem;
89
+ line-height: 1.74;
90
+ color: var(--cds-fg);
91
+ }
92
+
93
+ .cedros-site__prose :where(h2, h3, h4) {
94
+ margin: 1.4rem 0 0;
95
+ line-height: 1.18;
96
+ letter-spacing: -0.04em;
97
+ scroll-margin-top: 6.5rem;
98
+ }
99
+
100
+ .cedros-site__prose h2 {
101
+ font-size: clamp(1.4rem, 2.6vw, 1.9rem);
102
+ }
103
+
104
+ .cedros-site__prose h3 {
105
+ font-size: 1.18rem;
106
+ }
107
+
108
+ .cedros-site__prose h4 {
109
+ font-size: 1rem;
110
+ }
111
+
112
+ .cedros-site__prose p,
113
+ .cedros-site__prose ul,
114
+ .cedros-site__prose ol,
115
+ .cedros-site__prose table,
116
+ .cedros-site__prose pre,
117
+ .cedros-site__prose blockquote {
118
+ margin: 0;
119
+ }
120
+
121
+ .cedros-site__prose ul,
122
+ .cedros-site__prose ol {
123
+ padding-left: 1.1rem;
124
+ display: grid;
125
+ gap: 0.55rem;
126
+ }
127
+
128
+ .cedros-site__prose li {
129
+ color: var(--cds-muted);
130
+ }
131
+
132
+ .cedros-site__prose li > * {
133
+ color: var(--cds-fg);
134
+ }
135
+
136
+ .cedros-site__prose strong {
137
+ color: var(--cds-fg);
138
+ }
139
+
140
+ .cedros-site__prose hr {
141
+ width: 100%;
142
+ height: 1px;
143
+ border: 0;
144
+ background: color-mix(in srgb, var(--cds-border) 84%, transparent);
145
+ }
146
+
147
+ .cedros-site__prose a {
148
+ color: var(--cds-link-strong);
149
+ text-decoration-color: color-mix(in srgb, var(--cds-link) 42%, transparent);
150
+ text-underline-offset: 0.22em;
151
+ }
152
+
153
+ .cedros-site__prose :where(h2, h3, h4) a {
154
+ color: inherit;
155
+ text-decoration: none;
156
+ }
157
+
158
+ .cedros-site__prose pre {
159
+ overflow-x: auto;
160
+ padding: 1rem 1rem 1.05rem;
161
+ border-radius: calc(var(--cds-radius) - 0.05rem);
162
+ border: 1px solid color-mix(in srgb, var(--cds-border) 88%, transparent);
163
+ background: color-mix(in srgb, var(--cds-panel-muted) 82%, transparent);
164
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 24%);
165
+ }
166
+
167
+ .cedros-site__prose code {
168
+ font-family:
169
+ var(--cedros-font-mono, "JetBrains Mono", "SFMono-Regular", "Consolas", monospace);
170
+ font-size: 0.92em;
171
+ }
172
+
173
+ .cedros-site__prose :not(pre) > code {
174
+ border: 1px solid color-mix(in srgb, var(--cds-border) 84%, transparent);
175
+ border-radius: 0.45rem;
176
+ background: color-mix(in srgb, var(--cds-panel-muted) 78%, transparent);
177
+ padding: 0.12rem 0.38rem;
178
+ }
179
+
180
+ .cedros-site__prose blockquote {
181
+ padding: 0.85rem 1rem;
182
+ border-left: 3px solid color-mix(in srgb, var(--cds-link) 36%, var(--cds-border) 64%);
183
+ color: var(--cds-muted);
184
+ background: color-mix(in srgb, var(--cds-panel-muted) 84%, transparent);
185
+ border-radius: calc(var(--cds-radius) - 0.18rem);
186
+ }
187
+
188
+ .cedros-site__prose img {
189
+ max-width: 100%;
190
+ height: auto;
191
+ border-radius: calc(var(--cds-radius) - 0.1rem);
192
+ border: 1px solid color-mix(in srgb, var(--cds-border) 78%, transparent);
193
+ }
194
+
195
+ .cedros-site__content-warning {
196
+ margin: 0;
197
+ color: var(--cds-muted);
198
+ border: 1px dashed color-mix(in srgb, var(--cds-border) 88%, transparent);
199
+ border-radius: calc(var(--cds-radius) - 0.1rem);
200
+ padding: 0.8rem 0.95rem;
201
+ background: color-mix(in srgb, var(--cds-panel-muted) 82%, transparent);
202
+ }
203
+
204
+ .cedros-site__prose table {
205
+ width: 100%;
206
+ border-collapse: collapse;
207
+ font-size: 0.9rem;
208
+ overflow: hidden;
209
+ border-radius: calc(var(--cds-radius) - 0.1rem);
210
+ }
211
+
212
+ .cedros-site__prose th,
213
+ .cedros-site__prose td {
214
+ padding: 0.65rem 0.8rem;
215
+ border: 1px solid color-mix(in srgb, var(--cds-border) 84%, transparent);
216
+ text-align: left;
217
+ }
218
+
219
+ .cedros-site__prose th {
220
+ background: color-mix(in srgb, var(--cds-panel-muted) 86%, transparent);
221
+ font-weight: 700;
222
+ }
223
+
224
+ /* Code block copy ------------------------------------------------------- */
85
225
 
86
226
  .cedros-site__code-block {
87
227
  position: relative;
@@ -89,17 +229,20 @@
89
229
 
90
230
  .cedros-site__code-copy {
91
231
  position: absolute;
92
- top: 0.45rem;
93
- right: 0.45rem;
94
- padding: 0.2rem 0.5rem;
95
- font-size: 0.7rem;
96
- border: 1px solid var(--cds-border);
97
- border-radius: calc(var(--cds-radius) - 2px);
98
- background: var(--cds-bg);
232
+ top: 0.7rem;
233
+ right: 0.7rem;
234
+ min-height: 2rem;
235
+ border: 1px solid color-mix(in srgb, var(--cds-border) 84%, transparent);
236
+ border-radius: 999px;
237
+ padding: 0 0.65rem;
238
+ background: color-mix(in srgb, var(--cds-panel) 92%, transparent);
99
239
  color: var(--cds-muted);
100
240
  cursor: pointer;
101
241
  opacity: 0;
102
- transition: opacity 0.15s;
242
+ transition:
243
+ opacity 140ms ease,
244
+ color 140ms ease,
245
+ border-color 140ms ease;
103
246
  }
104
247
 
105
248
  .cedros-site__code-block:hover .cedros-site__code-copy {
@@ -108,69 +251,49 @@
108
251
 
109
252
  .cedros-site__code-copy:hover {
110
253
  color: var(--cds-fg);
111
- border-color: var(--cds-fg);
254
+ border-color: color-mix(in srgb, var(--cds-link) 36%, var(--cds-border) 64%);
112
255
  }
113
256
 
114
- /* ─── Callout / alert styles (remark-github-blockquote-alert) ──── */
257
+ /* Alert callouts -------------------------------------------------------- */
115
258
 
116
259
  .markdown-alert {
117
260
  margin: 0;
118
- padding: 0.65rem 0.85rem;
261
+ padding: 0.8rem 0.95rem;
119
262
  border-left: 3px solid var(--cds-border);
120
- border-radius: calc(var(--cds-radius) - 2px);
121
- background: color-mix(in srgb, var(--cds-muted-bg) 72%, var(--cds-bg) 28%);
263
+ border-radius: calc(var(--cds-radius) - 0.18rem);
264
+ background: color-mix(in srgb, var(--cds-panel-muted) 84%, transparent);
122
265
  }
123
266
 
124
267
  .markdown-alert .markdown-alert-title {
125
- font-weight: 600;
268
+ font-weight: 700;
126
269
  font-size: 0.82rem;
127
- margin-bottom: 0.35rem;
270
+ margin-bottom: 0.4rem;
128
271
  display: flex;
129
272
  align-items: center;
130
273
  gap: 0.35rem;
131
274
  }
132
275
 
133
276
  .markdown-alert-note {
134
- border-left-color: #0969da;
277
+ border-left-color: #0d6fd8;
135
278
  }
136
279
 
137
280
  .markdown-alert-tip {
138
- border-left-color: #1a7f37;
281
+ border-left-color: #188b58;
139
282
  }
140
283
 
141
284
  .markdown-alert-important {
142
- border-left-color: #8250df;
285
+ border-left-color: #7750c4;
143
286
  }
144
287
 
145
288
  .markdown-alert-warning {
146
- border-left-color: #9a6700;
289
+ border-left-color: #b27706;
147
290
  }
148
291
 
149
292
  .markdown-alert-caution {
150
- border-left-color: #cf222e;
293
+ border-left-color: #d14c62;
151
294
  }
152
295
 
153
- /* ─── Prose table styles ──── */
154
-
155
- .cedros-site__prose table {
156
- width: 100%;
157
- border-collapse: collapse;
158
- font-size: 0.85rem;
159
- }
160
-
161
- .cedros-site__prose th,
162
- .cedros-site__prose td {
163
- padding: 0.45rem 0.65rem;
164
- border: 1px solid var(--cds-border);
165
- text-align: left;
166
- }
167
-
168
- .cedros-site__prose th {
169
- background: var(--cds-muted-bg);
170
- font-weight: 600;
171
- }
172
-
173
- /* ─── Collapsible sidebar sections ──── */
296
+ /* Docs chrome ----------------------------------------------------------- */
174
297
 
175
298
  .cedros-site__docs-section summary {
176
299
  cursor: pointer;
@@ -183,38 +306,110 @@
183
306
  }
184
307
 
185
308
  .cedros-site__docs-section summary::before {
186
- content: "";
187
- font-size: 0.65em;
188
- vertical-align: middle;
309
+ content: "";
310
+ display: inline-block;
311
+ width: 0.45rem;
312
+ height: 0.45rem;
313
+ margin-right: 0.55rem;
314
+ border-right: 1.5px solid currentColor;
315
+ border-bottom: 1.5px solid currentColor;
316
+ transform: rotate(-45deg) translateY(-1px);
317
+ transition: transform 140ms ease;
189
318
  }
190
319
 
191
320
  .cedros-site__docs-section[open] summary::before {
192
- content: "▾ ";
321
+ transform: rotate(45deg) translateY(-1px);
193
322
  }
194
323
 
195
- /* ─── Mobile sidebar drawer ──── */
196
-
197
324
  .cedros-site__sidebar-toggle {
198
325
  display: none;
326
+ align-items: center;
327
+ justify-content: space-between;
199
328
  width: 100%;
200
- padding: 0.55rem 0.75rem;
201
- font-size: 0.85rem;
202
- font-weight: 600;
203
- border: 1px solid var(--cds-border);
204
- border-radius: var(--cds-radius);
205
- background: var(--cds-bg);
329
+ min-height: 3.15rem;
330
+ padding: 0.85rem 0.95rem;
331
+ border: 1px solid color-mix(in srgb, var(--cds-border) 86%, transparent);
332
+ border-radius: calc(var(--cds-radius) - 0.05rem);
333
+ background: color-mix(in srgb, var(--cds-panel) 90%, transparent);
206
334
  color: var(--cds-fg);
207
335
  cursor: pointer;
208
336
  text-align: left;
337
+ box-shadow: var(--cds-shadow-sm);
338
+ }
339
+
340
+ .cedros-site__sidebar-toggle-copy {
341
+ display: grid;
342
+ gap: 0.12rem;
343
+ }
344
+
345
+ .cedros-site__sidebar-toggle-label {
346
+ font-size: 0.86rem;
347
+ font-weight: 700;
348
+ }
349
+
350
+ .cedros-site__sidebar-toggle-meta,
351
+ .cedros-site__sidebar-toggle-state {
352
+ font-size: 0.76rem;
353
+ color: var(--cds-muted);
209
354
  }
210
355
 
211
356
  .cedros-site__sidebar-overlay {
212
357
  display: none;
213
358
  }
214
359
 
215
- @media (max-width: 900px) {
360
+ .cedros-site__docs-article {
361
+ overflow: hidden;
362
+ }
363
+
364
+ .cedros-site__toc-links {
365
+ display: grid;
366
+ gap: 0.35rem;
367
+ }
368
+
369
+ .cedros-site__toc-link {
370
+ display: inline-flex;
371
+ align-items: center;
372
+ min-height: 2.2rem;
373
+ border: 1px solid transparent;
374
+ border-radius: calc(var(--cds-radius) - 0.2rem);
375
+ padding: 0.42rem 0.62rem;
376
+ color: var(--cds-muted);
377
+ text-decoration: none;
378
+ font-size: 0.81rem;
379
+ transition:
380
+ color 140ms ease,
381
+ background 140ms ease,
382
+ border-color 140ms ease;
383
+ }
384
+
385
+ .cedros-site__toc-link--depth-2 {
386
+ padding-left: 0.62rem;
387
+ }
388
+
389
+ .cedros-site__toc-link--depth-3 {
390
+ padding-left: 1rem;
391
+ }
392
+
393
+ .cedros-site__toc-link--depth-4 {
394
+ padding-left: 1.35rem;
395
+ }
396
+
397
+ .cedros-site__toc-link:hover {
398
+ color: var(--cds-fg);
399
+ background: color-mix(in srgb, var(--cds-panel-muted) 82%, transparent);
400
+ border-color: color-mix(in srgb, var(--cds-border) 84%, transparent);
401
+ }
402
+
403
+ .cedros-site__toc-link--active {
404
+ color: var(--cds-link-strong);
405
+ border-color: color-mix(in srgb, var(--cds-link) 38%, var(--cds-border) 62%);
406
+ background: var(--cds-link-soft);
407
+ font-weight: 700;
408
+ }
409
+
410
+ @media (max-width: 960px) {
216
411
  .cedros-site__sidebar-toggle {
217
- display: block;
412
+ display: inline-flex;
218
413
  }
219
414
 
220
415
  .cedros-site__docs-sidebar {
@@ -224,11 +419,14 @@
224
419
  .cedros-site__docs-sidebar--open {
225
420
  display: grid;
226
421
  position: fixed;
227
- inset: 0;
422
+ inset: 0 auto 0 0;
228
423
  z-index: 100;
424
+ width: min(340px, calc(100vw - 1.5rem));
425
+ max-width: none;
426
+ height: 100vh;
229
427
  overflow-y: auto;
230
- max-width: 320px;
231
- box-shadow: 4px 0 12px rgba(0, 0, 0, 0.15);
428
+ border-radius: 0 calc(var(--cds-radius) + 0.1rem) calc(var(--cds-radius) + 0.1rem) 0;
429
+ box-shadow: 0 36px 80px rgb(15 23 42 / 24%);
232
430
  }
233
431
 
234
432
  .cedros-site__sidebar-overlay {
@@ -236,30 +434,24 @@
236
434
  position: fixed;
237
435
  inset: 0;
238
436
  z-index: 99;
239
- background: rgba(0, 0, 0, 0.3);
437
+ background: rgb(15 23 42 / 38%);
438
+ backdrop-filter: blur(3px);
240
439
  }
241
- }
242
-
243
- /* ─── Docs article modifier ──── */
244
-
245
- .cedros-site__docs-article {
246
- overflow: hidden;
247
- }
248
440
 
249
- /* ─── TOC scroll-spy active link ──── */
250
-
251
- .cedros-site__toc-link--active {
252
- color: var(--cds-link);
253
- font-weight: 600;
441
+ .cedros-site__docs-sidebar-close {
442
+ display: inline-flex;
443
+ align-items: center;
444
+ justify-content: center;
445
+ }
254
446
  }
255
447
 
256
- /* ─── Autolinked heading anchors ──── */
257
-
258
- .cedros-site__prose :where(h2, h3, h4) a {
259
- color: inherit;
260
- text-decoration: none;
261
- }
448
+ @media (max-width: 700px) {
449
+ .cedros-site__prose {
450
+ gap: 0.9rem;
451
+ font-size: 0.97rem;
452
+ }
262
453
 
263
- .cedros-site__prose :where(h2, h3, h4) a:hover {
264
- text-decoration: underline;
454
+ .cedros-site__code-copy {
455
+ opacity: 1;
456
+ }
265
457
  }
@@ -1,10 +1,11 @@
1
+ import { type DocsNormalizationOptions } from "../docsContract.js";
1
2
  import type { DocsIndexEntry } from "./contentIndex.js";
2
3
  export interface DocsSidebarItem {
3
4
  key: string;
4
5
  label: string;
5
6
  href: string;
6
7
  isActive?: boolean;
7
- depth?: 0 | 1 | 2;
8
+ depth?: number;
8
9
  badge?: string;
9
10
  }
10
11
  export interface DocsSidebarSection {
@@ -14,5 +15,53 @@ export interface DocsSidebarSection {
14
15
  /** When true, section renders collapsed by default in the sidebar. */
15
16
  collapsed?: boolean;
16
17
  }
18
+ export interface DocsTreeNode<T extends DocsIndexEntry = DocsIndexEntry> {
19
+ key: string;
20
+ slug: string;
21
+ label: string;
22
+ href?: string;
23
+ entry?: T;
24
+ children: DocsTreeNode<T>[];
25
+ }
26
+ export interface DocsTreeSection<T extends DocsIndexEntry = DocsIndexEntry> {
27
+ key: string;
28
+ label: string;
29
+ nodes: DocsTreeNode<T>[];
30
+ }
31
+ export interface DocsPagerLink<T extends DocsIndexEntry = DocsIndexEntry> {
32
+ title: string;
33
+ href: string;
34
+ entry: T;
35
+ }
36
+ export interface DocsPrevNext<T extends DocsIndexEntry = DocsIndexEntry> {
37
+ previousDoc?: DocsPagerLink<T>;
38
+ nextDoc?: DocsPagerLink<T>;
39
+ }
40
+ export interface FetchDocEntryOptions extends DocsNormalizationOptions {
41
+ }
42
+ export interface DocsNavigationOptions extends FetchDocEntryOptions {
43
+ currentPath?: string;
44
+ groupByProduct?: boolean;
45
+ preserveOrder?: boolean;
46
+ collapsible?: boolean;
47
+ productSlug?: string;
48
+ sectionKey?: string;
49
+ }
17
50
  export declare function buildDocsSidebarSections(docs: DocsIndexEntry[], basePath?: string): DocsSidebarSection[];
51
+ export declare function fetchDocEntry<T extends DocsIndexEntry>(docs: T[], slugOrPath: string, options?: FetchDocEntryOptions): T | undefined;
52
+ /**
53
+ * Builds sidebar-ready docs navigation from a normalized docs collection.
54
+ *
55
+ * Groups by product automatically when multiple products exist and preserves explicit ordering fields when present.
56
+ */
57
+ export declare function buildDocsNavigation<T extends DocsIndexEntry>(docs: T[], options?: DocsNavigationOptions): DocsSidebarSection[];
58
+ export declare function buildDocsTree<T extends DocsIndexEntry>(docs: T[], basePath?: string): DocsTreeSection<T>[];
59
+ export declare function buildHierarchicalDocsSidebarSections<T extends DocsIndexEntry>(docs: T[], basePath?: string): DocsSidebarSection[];
60
+ /**
61
+ * Builds previous/next links from the same ordered docs collection used for navigation.
62
+ *
63
+ * When the current doc belongs to a product, pager links stay inside that product by default.
64
+ */
65
+ export declare function buildDocsArticlePager<T extends DocsIndexEntry>(docs: T[], currentSlugOrPath: string, options?: DocsNavigationOptions): DocsPrevNext<T>;
66
+ export declare function buildDocsPrevNext<T extends DocsIndexEntry>(docs: T[], currentSlugOrPath: string, options?: DocsNavigationOptions): DocsPrevNext<T>;
18
67
  export declare function withActiveDocsSidebar(sections: DocsSidebarSection[], currentPath?: string): DocsSidebarSection[];