@farming-labs/svelte-theme 0.1.45 → 0.1.47
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/package.json +3 -3
- package/src/components/DocsContent.svelte +45 -0
- package/styles/docs.css +27 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farming-labs/svelte-theme",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.47",
|
|
4
4
|
"description": "Svelte UI components for @farming-labs/docs — layout, sidebar, TOC, search, and theme toggle",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"docs",
|
|
@@ -112,8 +112,8 @@
|
|
|
112
112
|
"dependencies": {
|
|
113
113
|
"gray-matter": "^4.0.3",
|
|
114
114
|
"sugar-high": "^0.9.5",
|
|
115
|
-
"@farming-labs/docs": "0.1.
|
|
116
|
-
"@farming-labs/svelte": "0.1.
|
|
115
|
+
"@farming-labs/docs": "0.1.47",
|
|
116
|
+
"@farming-labs/svelte": "0.1.47"
|
|
117
117
|
},
|
|
118
118
|
"peerDependencies": {
|
|
119
119
|
"svelte": ">=5.0.0"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import { resolveReadingTimeOptions } from "@farming-labs/docs";
|
|
2
3
|
import DocsPage from "./DocsPage.svelte";
|
|
3
4
|
import { onMount, onDestroy } from "svelte";
|
|
4
5
|
|
|
@@ -124,6 +125,26 @@
|
|
|
124
125
|
);
|
|
125
126
|
let showActionsAbove = $derived(pageActionsPosition === "above-title" && showPageActions);
|
|
126
127
|
let showActionsBelow = $derived(pageActionsPosition === "below-title" && showPageActions);
|
|
128
|
+
let readingTimeConfig = $derived.by(() => {
|
|
129
|
+
return resolveReadingTimeOptions(config?.readingTime);
|
|
130
|
+
});
|
|
131
|
+
let readingTimeValue = $derived(
|
|
132
|
+
readingTimeConfig.enabled && typeof data.readingTime === "number"
|
|
133
|
+
? Math.max(1, Math.ceil(data.readingTime))
|
|
134
|
+
: null
|
|
135
|
+
);
|
|
136
|
+
let readingTimeLabel = $derived(readingTimeValue ? `${readingTimeValue} min read` : null);
|
|
137
|
+
let showReadingTimeAbove = $derived(!!readingTimeLabel && showActionsAbove);
|
|
138
|
+
let showReadingTimeBelow = $derived(
|
|
139
|
+
!!readingTimeLabel &&
|
|
140
|
+
!showReadingTimeAbove &&
|
|
141
|
+
(showActionsBelow ||
|
|
142
|
+
showLastUpdatedBelowTitle ||
|
|
143
|
+
(!showPageActions && pageActionsPosition === "below-title"))
|
|
144
|
+
);
|
|
145
|
+
let showReadingTimeStandalone = $derived(
|
|
146
|
+
!!readingTimeLabel && !showReadingTimeAbove && !showReadingTimeBelow
|
|
147
|
+
);
|
|
127
148
|
let feedbackPathKey = $derived(
|
|
128
149
|
`${data.locale ?? ""}:${data.entry ?? config?.entry ?? "docs"}:${data.slug ?? ""}`
|
|
129
150
|
);
|
|
@@ -373,6 +394,18 @@
|
|
|
373
394
|
{/if}
|
|
374
395
|
</div>
|
|
375
396
|
{/if}
|
|
397
|
+
{#if showReadingTimeAbove}
|
|
398
|
+
<div class="fd-page-meta">
|
|
399
|
+
<span class="fd-page-meta-dot" aria-hidden="true">·</span>
|
|
400
|
+
<span class="fd-page-meta-item">{readingTimeLabel}</span>
|
|
401
|
+
</div>
|
|
402
|
+
{/if}
|
|
403
|
+
{#if showReadingTimeStandalone}
|
|
404
|
+
<div class="fd-page-meta">
|
|
405
|
+
<span class="fd-page-meta-dot" aria-hidden="true">·</span>
|
|
406
|
+
<span class="fd-page-meta-item">{readingTimeLabel}</span>
|
|
407
|
+
</div>
|
|
408
|
+
{/if}
|
|
376
409
|
|
|
377
410
|
<h1 class="fd-page-title">{data.title}</h1>
|
|
378
411
|
{#if data.description}
|
|
@@ -383,6 +416,12 @@
|
|
|
383
416
|
Last updated: {data.lastModified}
|
|
384
417
|
</p>
|
|
385
418
|
{/if}
|
|
419
|
+
{#if showReadingTimeBelow && !showActionsBelow}
|
|
420
|
+
<div class="fd-page-meta">
|
|
421
|
+
<span class="fd-page-meta-dot" aria-hidden="true">·</span>
|
|
422
|
+
<span class="fd-page-meta-item">{readingTimeLabel}</span>
|
|
423
|
+
</div>
|
|
424
|
+
{/if}
|
|
386
425
|
|
|
387
426
|
{#if showActionsBelow}
|
|
388
427
|
<hr class="fd-page-actions-divider" aria-hidden="true" />
|
|
@@ -444,6 +483,12 @@
|
|
|
444
483
|
</div>
|
|
445
484
|
{/if}
|
|
446
485
|
</div>
|
|
486
|
+
{#if showReadingTimeBelow}
|
|
487
|
+
<div class="fd-page-meta">
|
|
488
|
+
<span class="fd-page-meta-dot" aria-hidden="true">·</span>
|
|
489
|
+
<span class="fd-page-meta-item">{readingTimeLabel}</span>
|
|
490
|
+
</div>
|
|
491
|
+
{/if}
|
|
447
492
|
{/if}
|
|
448
493
|
|
|
449
494
|
{@html htmlWithoutFirstH1}
|
package/styles/docs.css
CHANGED
|
@@ -745,6 +745,33 @@ samp {
|
|
|
745
745
|
margin-bottom: 1rem;
|
|
746
746
|
}
|
|
747
747
|
|
|
748
|
+
.fd-page-meta {
|
|
749
|
+
display: flex;
|
|
750
|
+
flex-wrap: wrap;
|
|
751
|
+
align-items: center;
|
|
752
|
+
gap: 0.375rem;
|
|
753
|
+
margin-bottom: 0.75rem;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
.fd-page-meta-dot {
|
|
757
|
+
display: inline-flex;
|
|
758
|
+
align-items: center;
|
|
759
|
+
justify-content: center;
|
|
760
|
+
font-family: var(--fd-font-mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace);
|
|
761
|
+
font-size: 0.8rem;
|
|
762
|
+
line-height: 1;
|
|
763
|
+
color: color-mix(in srgb, var(--color-fd-muted-foreground) 78%, transparent);
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
.fd-page-meta-item {
|
|
767
|
+
font-family: var(--fd-font-mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace);
|
|
768
|
+
font-size: 0.6875rem;
|
|
769
|
+
font-weight: 500;
|
|
770
|
+
letter-spacing: 0;
|
|
771
|
+
text-transform: uppercase;
|
|
772
|
+
color: var(--color-fd-muted-foreground);
|
|
773
|
+
}
|
|
774
|
+
|
|
748
775
|
.fd-feedback {
|
|
749
776
|
margin-top: 2rem;
|
|
750
777
|
margin-bottom: 1.25rem;
|