@farming-labs/svelte-theme 0.1.45 → 0.1.48

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/svelte-theme",
3
- "version": "0.1.45",
3
+ "version": "0.1.48",
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.45",
116
- "@farming-labs/svelte": "0.1.45"
115
+ "@farming-labs/docs": "0.1.48",
116
+ "@farming-labs/svelte": "0.1.48"
117
117
  },
118
118
  "peerDependencies": {
119
119
  "svelte": ">=5.0.0"
@@ -124,6 +124,23 @@
124
124
  );
125
125
  let showActionsAbove = $derived(pageActionsPosition === "above-title" && showPageActions);
126
126
  let showActionsBelow = $derived(pageActionsPosition === "below-title" && showPageActions);
127
+ let readingTimeValue = $derived(
128
+ typeof data.readingTime === "number"
129
+ ? Math.max(1, Math.ceil(data.readingTime))
130
+ : null
131
+ );
132
+ let readingTimeLabel = $derived(readingTimeValue ? `${readingTimeValue} min read` : null);
133
+ let showReadingTimeAbove = $derived(!!readingTimeLabel && showActionsAbove);
134
+ let showReadingTimeBelow = $derived(
135
+ !!readingTimeLabel &&
136
+ !showReadingTimeAbove &&
137
+ (showActionsBelow ||
138
+ showLastUpdatedBelowTitle ||
139
+ (!showPageActions && pageActionsPosition === "below-title"))
140
+ );
141
+ let showReadingTimeStandalone = $derived(
142
+ !!readingTimeLabel && !showReadingTimeAbove && !showReadingTimeBelow
143
+ );
127
144
  let feedbackPathKey = $derived(
128
145
  `${data.locale ?? ""}:${data.entry ?? config?.entry ?? "docs"}:${data.slug ?? ""}`
129
146
  );
@@ -373,6 +390,18 @@
373
390
  {/if}
374
391
  </div>
375
392
  {/if}
393
+ {#if showReadingTimeAbove}
394
+ <div class="fd-page-meta">
395
+ <span class="fd-page-meta-dot" aria-hidden="true">·</span>
396
+ <span class="fd-page-meta-item">{readingTimeLabel}</span>
397
+ </div>
398
+ {/if}
399
+ {#if showReadingTimeStandalone}
400
+ <div class="fd-page-meta">
401
+ <span class="fd-page-meta-dot" aria-hidden="true">·</span>
402
+ <span class="fd-page-meta-item">{readingTimeLabel}</span>
403
+ </div>
404
+ {/if}
376
405
 
377
406
  <h1 class="fd-page-title">{data.title}</h1>
378
407
  {#if data.description}
@@ -383,6 +412,12 @@
383
412
  Last updated: {data.lastModified}
384
413
  </p>
385
414
  {/if}
415
+ {#if showReadingTimeBelow && !showActionsBelow}
416
+ <div class="fd-page-meta">
417
+ <span class="fd-page-meta-dot" aria-hidden="true">·</span>
418
+ <span class="fd-page-meta-item">{readingTimeLabel}</span>
419
+ </div>
420
+ {/if}
386
421
 
387
422
  {#if showActionsBelow}
388
423
  <hr class="fd-page-actions-divider" aria-hidden="true" />
@@ -444,6 +479,12 @@
444
479
  </div>
445
480
  {/if}
446
481
  </div>
482
+ {#if showReadingTimeBelow}
483
+ <div class="fd-page-meta">
484
+ <span class="fd-page-meta-dot" aria-hidden="true">·</span>
485
+ <span class="fd-page-meta-item">{readingTimeLabel}</span>
486
+ </div>
487
+ {/if}
447
488
  {/if}
448
489
 
449
490
  {@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;