@farming-labs/nuxt-theme 0.2.44 → 0.2.45

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/nuxt-theme",
3
- "version": "0.2.44",
3
+ "version": "0.2.45",
4
4
  "description": "Nuxt/Vue UI components for @farming-labs/docs — layout, sidebar, TOC, search, and theme toggle",
5
5
  "keywords": [
6
6
  "docs",
@@ -88,7 +88,7 @@
88
88
  },
89
89
  "dependencies": {
90
90
  "sugar-high": "^0.9.5",
91
- "@farming-labs/docs": "0.2.44"
91
+ "@farming-labs/docs": "0.2.45"
92
92
  },
93
93
  "peerDependencies": {
94
94
  "nuxt": ">=3.0.0",
@@ -156,7 +156,9 @@ function buildTypographyCSS(typo: Record<string, any> | undefined): string {
156
156
  }
157
157
  }
158
158
  if (vars.length === 0) return "";
159
- return `:root {\n ${vars.join("\n ")}\n}`;
159
+ return `:root,
160
+ body:has(#nd-docs-layout),
161
+ #nd-docs-layout {\n ${vars.join("\n ")}\n}`;
160
162
  }
161
163
 
162
164
  function buildLayoutCSS(layout: Record<string, any> | undefined): string {
@@ -168,10 +170,10 @@ function buildLayoutCSS(layout: Record<string, any> | undefined): string {
168
170
  if (layout.tocWidth) desktopVars.push(`--fd-toc-width: ${layout.tocWidth}px;`);
169
171
  if (rootVars.length === 0 && desktopVars.length === 0) return "";
170
172
  const parts: string[] = [];
171
- if (rootVars.length > 0) parts.push(`:root {\n ${rootVars.join("\n ")}\n}`);
173
+ if (rootVars.length > 0) parts.push(`#nd-docs-layout {\n ${rootVars.join("\n ")}\n}`);
172
174
  if (desktopVars.length > 0)
173
175
  parts.push(
174
- `@media (min-width: 1024px) {\n :root {\n ${desktopVars.join("\n ")}\n }\n}`,
176
+ `@media (min-width: 1024px) {\n #nd-docs-layout {\n ${desktopVars.join("\n ")}\n }\n}`,
175
177
  );
176
178
  return parts.join("\n");
177
179
  }
@@ -269,7 +271,7 @@ const showFloatingAI = computed(
269
271
 
270
272
  <template>
271
273
  <div class="fd-layout-root">
272
- <div class="fd-layout" @keydown="handleKeydown">
274
+ <div id="nd-docs-layout" data-fd-framework="nuxt" class="fd-layout" @keydown="handleKeydown">
273
275
  <header class="fd-header">
274
276
  <button
275
277
  class="fd-menu-btn"
@@ -402,7 +402,7 @@ watch(
402
402
  :to="localizedPreviousPage.url"
403
403
  class="fd-page-nav-card fd-page-nav-prev"
404
404
  >
405
- <span class="fd-page-nav-label">
405
+ <span class="fd-page-nav-title fd-page-nav-title-prev">
406
406
  <svg
407
407
  width="14"
408
408
  height="14"
@@ -415,14 +415,14 @@ watch(
415
415
  >
416
416
  <polyline points="15 18 9 12 15 6" />
417
417
  </svg>
418
- Previous
418
+ {{ localizedPreviousPage.name }}
419
419
  </span>
420
- <span class="fd-page-nav-title">{{ localizedPreviousPage.name }}</span>
420
+ <span class="fd-page-nav-description">Previous Page</span>
421
421
  </NuxtLink>
422
422
  <div v-else></div>
423
423
  <NuxtLink v-if="localizedNextPage" :to="localizedNextPage.url" class="fd-page-nav-card fd-page-nav-next">
424
- <span class="fd-page-nav-label">
425
- Next
424
+ <span class="fd-page-nav-title fd-page-nav-title-next">
425
+ {{ localizedNextPage.name }}
426
426
  <svg
427
427
  width="14"
428
428
  height="14"
@@ -436,7 +436,7 @@ watch(
436
436
  <polyline points="9 18 15 12 9 6" />
437
437
  </svg>
438
438
  </span>
439
- <span class="fd-page-nav-title">{{ localizedNextPage.name }}</span>
439
+ <span class="fd-page-nav-description">Next Page</span>
440
440
  </NuxtLink>
441
441
  <div v-else></div>
442
442
  </nav>
@@ -24,7 +24,7 @@ const ColorfulUIDefaults = {
24
24
  layout: {
25
25
  contentWidth: 768,
26
26
  sidebarWidth: 260,
27
- toc: { enabled: true, depth: 3, style: "default" },
27
+ toc: { enabled: true, depth: 3, style: "directional" },
28
28
  header: { height: 56, sticky: true },
29
29
  },
30
30
  components: {
@@ -24,7 +24,7 @@ const DefaultUIDefaults = {
24
24
  layout: {
25
25
  contentWidth: 768,
26
26
  sidebarWidth: 280,
27
- toc: { enabled: true, depth: 3, style: "default" },
27
+ toc: { enabled: true, depth: 3 },
28
28
  header: { height: 72, sticky: true },
29
29
  },
30
30
  components: {
@@ -10,8 +10,8 @@ const PixelBorderUIDefaults = {
10
10
  typography: {
11
11
  font: {
12
12
  style: {
13
- sans: "system-ui, -apple-system, sans-serif",
14
- mono: "ui-monospace, monospace",
13
+ sans: "var(--font-sans, system-ui, -apple-system, sans-serif)",
14
+ mono: "var(--font-mono, ui-monospace, monospace)",
15
15
  },
16
16
  h1: { size: "2.25rem", weight: 700, lineHeight: "1.2", letterSpacing: "-0.02em" },
17
17
  h2: { size: "1.5rem", weight: 600, lineHeight: "1.3", letterSpacing: "-0.01em" },
@@ -221,7 +221,7 @@
221
221
 
222
222
  /* ─── Tables (rounded) ─────────────────────────────────────────────── */
223
223
 
224
- .fd-docs-content table {
224
+ :is(.fd-docs-content, #nd-docs-layout .prose) table {
225
225
  border-collapse: separate;
226
226
  border-spacing: 0;
227
227
  background: var(--color-fd-card);
@@ -230,18 +230,18 @@
230
230
  overflow: hidden;
231
231
  }
232
232
 
233
- .fd-docs-content th {
233
+ :is(.fd-docs-content, #nd-docs-layout .prose) th {
234
234
  background: var(--color-fd-muted);
235
235
  font-weight: 600;
236
236
  }
237
237
 
238
- .fd-docs-content th,
239
- .fd-docs-content td {
238
+ :is(.fd-docs-content, #nd-docs-layout .prose) th,
239
+ :is(.fd-docs-content, #nd-docs-layout .prose) td {
240
240
  padding: 0.625rem;
241
241
  border-bottom: 1px solid var(--color-fd-border);
242
242
  }
243
243
 
244
- .fd-docs-content tr:last-child td {
244
+ :is(.fd-docs-content, #nd-docs-layout .prose) tr:last-child td {
245
245
  border-bottom: none;
246
246
  }
247
247
 
@@ -266,7 +266,7 @@ aside div.overflow-hidden.relative[data-state] a[data-active="true"]::before {
266
266
  .fd-page-description,
267
267
  .fd-docs-content p,
268
268
  .fd-docs-content li,
269
- .fd-docs-content td,
269
+ :is(.fd-docs-content, .prose) td,
270
270
  .fd-docs-content blockquote {
271
271
  font-family: var(--fd-font-mono, ui-monospace, monospace);
272
272
  }
@@ -282,7 +282,7 @@ aside div.overflow-hidden.relative[data-state] a[data-active="true"]::before {
282
282
 
283
283
  .fd-card,
284
284
  [data-card],
285
- [class*="fd-callout"],
285
+ .fd-callout,
286
286
  .fd-page-action-menu,
287
287
  .fd-page-action-btn,
288
288
  .fd-docs-content pre,
@@ -293,7 +293,7 @@ aside div.overflow-hidden.relative[data-state] a[data-active="true"]::before {
293
293
  [class*="page-nav"] a,
294
294
  .fd-hover-link-card,
295
295
  .fd-page-body .fd-table-wrapper,
296
- .fd-docs-content table,
296
+ :is(.fd-docs-content, .prose) table,
297
297
  .fd-tabs,
298
298
  .fd-tabs-list,
299
299
  .fd-tabs-trigger,
@@ -318,7 +318,7 @@ aside div.overflow-hidden.relative[data-state] a[data-active="true"]::before {
318
318
 
319
319
  .fd-card,
320
320
  [data-card],
321
- [class*="fd-callout"],
321
+ .fd-callout,
322
322
  .fd-page-action-menu,
323
323
  .fd-page-action-btn,
324
324
  .fd-page-nav,
@@ -556,8 +556,7 @@ figure.shiki:has(figcaption) > div:first-child,
556
556
  font-family: var(--fd-font-mono, ui-monospace, monospace);
557
557
  }
558
558
 
559
- .fd-callout,
560
- [class*="fd-callout"] {
559
+ .fd-callout {
561
560
  border: 2px solid var(--color-fd-border) !important;
562
561
  background: color-mix(
563
562
  in srgb,
@@ -266,7 +266,7 @@ aside div.overflow-hidden.relative[data-state] a[data-active="true"]::before {
266
266
  .fd-page-description,
267
267
  .fd-docs-content p,
268
268
  .fd-docs-content li,
269
- .fd-docs-content td,
269
+ :is(.fd-docs-content, .prose) td,
270
270
  .fd-docs-content blockquote {
271
271
  font-family: var(--fd-font-mono, ui-monospace, monospace);
272
272
  }
@@ -282,7 +282,7 @@ aside div.overflow-hidden.relative[data-state] a[data-active="true"]::before {
282
282
 
283
283
  .fd-card,
284
284
  [data-card],
285
- [class*="fd-callout"],
285
+ .fd-callout,
286
286
  .fd-page-action-menu,
287
287
  .fd-page-action-btn,
288
288
  .fd-docs-content pre,
@@ -293,7 +293,7 @@ aside div.overflow-hidden.relative[data-state] a[data-active="true"]::before {
293
293
  [class*="page-nav"] a,
294
294
  .fd-hover-link-card,
295
295
  .fd-page-body .fd-table-wrapper,
296
- .fd-docs-content table,
296
+ :is(.fd-docs-content, .prose) table,
297
297
  .fd-tabs,
298
298
  .fd-tabs-list,
299
299
  .fd-tabs-trigger,
@@ -318,7 +318,7 @@ aside div.overflow-hidden.relative[data-state] a[data-active="true"]::before {
318
318
 
319
319
  .fd-card,
320
320
  [data-card],
321
- [class*="fd-callout"],
321
+ .fd-callout,
322
322
  .fd-page-action-menu,
323
323
  .fd-page-action-btn,
324
324
  .fd-page-nav,
@@ -556,8 +556,7 @@ figure.shiki:has(figcaption) > div:first-child,
556
556
  font-family: var(--fd-font-mono, ui-monospace, monospace);
557
557
  }
558
558
 
559
- .fd-callout,
560
- [class*="fd-callout"] {
559
+ .fd-callout {
561
560
  border: 2px solid var(--color-fd-border) !important;
562
561
  background: color-mix(
563
562
  in srgb,
@@ -95,7 +95,7 @@ aside a[data-active="true"],
95
95
 
96
96
  .fd-card,
97
97
  [data-card],
98
- [class*="fd-callout"],
98
+ .fd-callout,
99
99
  .fd-page-action-menu,
100
100
  .fd-page-action-btn,
101
101
  .fd-docs-content pre,
@@ -110,7 +110,7 @@ aside a[data-active="true"],
110
110
 
111
111
  .dark .fd-card,
112
112
  .dark [data-card],
113
- .dark [class*="fd-callout"],
113
+ .dark .fd-callout,
114
114
  .dark .fd-page-action-menu,
115
115
  .dark .fd-page-action-btn,
116
116
  .dark .fd-docs-content pre,
@@ -123,19 +123,21 @@ aside a[data-active="true"],
123
123
  box-shadow: 6px 6px 0 color-mix(in srgb, var(--color-fd-primary) 42%, transparent);
124
124
  }
125
125
 
126
+ :is(.fd-docs-content, #nd-docs-layout .prose) table,
126
127
  .fd-page-body .fd-table-wrapper,
127
- .fd-docs-content table {
128
+ .fd-page-body table {
128
129
  border: 3px solid var(--color-fd-border);
129
130
  box-shadow: 6px 6px 0 var(--color-fd-border);
130
131
  background: var(--color-fd-card);
131
132
  }
132
133
 
134
+ .dark :is(.fd-docs-content, #nd-docs-layout .prose) table,
133
135
  .dark .fd-page-body .fd-table-wrapper,
134
- .dark .fd-docs-content table {
136
+ .dark .fd-page-body table {
135
137
  box-shadow: 6px 6px 0 color-mix(in srgb, var(--color-fd-primary) 42%, transparent);
136
138
  }
137
139
 
138
- .fd-docs-content th,
140
+ :is(.fd-docs-content, #nd-docs-layout .prose) th,
139
141
  .fd-page-body th {
140
142
  background: var(--color-fd-foreground);
141
143
  color: var(--color-fd-background);
@@ -145,22 +147,22 @@ aside a[data-active="true"],
145
147
  font-size: 0.74rem;
146
148
  }
147
149
 
148
- .fd-docs-content td,
150
+ :is(.fd-docs-content, #nd-docs-layout .prose) td,
149
151
  .fd-page-body td {
150
152
  font-weight: 550;
151
153
  }
152
154
 
153
- .fd-docs-content tbody tr:nth-child(odd) td,
155
+ :is(.fd-docs-content, #nd-docs-layout .prose) tbody tr:nth-child(odd) td,
154
156
  .fd-page-body tbody tr:nth-child(odd) td {
155
157
  background: color-mix(in srgb, var(--color-fd-secondary) 72%, white 28%);
156
158
  }
157
159
 
158
- .dark .fd-docs-content tbody tr:nth-child(odd) td,
160
+ .dark :is(.fd-docs-content, #nd-docs-layout .prose) tbody tr:nth-child(odd) td,
159
161
  .dark .fd-page-body tbody tr:nth-child(odd) td {
160
162
  background: color-mix(in srgb, var(--color-fd-secondary) 92%, black 8%);
161
163
  }
162
164
 
163
- .fd-docs-content tbody tr:hover td,
165
+ :is(.fd-docs-content, #nd-docs-layout .prose) tbody tr:hover td,
164
166
  .fd-page-body tbody tr:hover td {
165
167
  background: color-mix(in srgb, var(--color-fd-primary) 16%, var(--color-fd-card));
166
168
  }
@@ -253,15 +255,13 @@ aside a[data-active="true"],
253
255
  box-shadow: inset -3px 0 0 var(--color-fd-border);
254
256
  }
255
257
 
256
- .fd-callout,
257
- [class*="fd-callout"] {
258
+ .fd-callout {
258
259
  border-width: 3px !important;
259
260
  box-shadow: 6px 6px 0 var(--color-fd-border);
260
261
  background: color-mix(in srgb, var(--color-fd-secondary) 82%, white 18%);
261
262
  }
262
263
 
263
- .dark .fd-callout,
264
- .dark [class*="fd-callout"] {
264
+ .dark .fd-callout {
265
265
  box-shadow: 6px 6px 0 color-mix(in srgb, var(--color-fd-primary) 42%, transparent);
266
266
  background: color-mix(in srgb, var(--color-fd-secondary) 92%, black 8%);
267
267
  }
@@ -1,6 +1,6 @@
1
1
  /* @farming-labs/svelte-theme — darksharp theme (bundled)
2
2
  * Single import: includes base docs.css + darksharp overrides.
3
- * Usage: @import "@farming-labs/svelte-theme/darksharp/css";
3
+ * Usage: @import "@farming-labs/theme/darksharp/css";
4
4
  */
5
5
  @import "./docs.css";
6
6
  @import "./darksharp.css";
package/styles/docs.css CHANGED
@@ -1805,45 +1805,55 @@ html.dark pre.shiki {
1805
1805
  }
1806
1806
 
1807
1807
  .fd-page-body .fd-table-wrapper {
1808
- margin: 16px 0;
1808
+ margin: 0 0 24px;
1809
1809
  overflow-x: auto;
1810
- border: 1px solid var(--color-fd-border);
1811
- border-radius: 8px;
1810
+ border: 0;
1811
+ border-radius: 0;
1812
1812
  }
1813
1813
 
1814
1814
  .fd-page-body table {
1815
1815
  width: 100%;
1816
- border-collapse: collapse;
1817
- font-size: 13px;
1818
- }
1819
-
1820
- .fd-page-body thead {
1821
- background: var(--color-fd-muted);
1816
+ table-layout: auto;
1817
+ border-collapse: separate;
1818
+ border-spacing: 0;
1819
+ overflow: hidden;
1820
+ border: 1px solid var(--color-fd-border);
1821
+ border-radius: var(--radius-lg, 8px);
1822
+ background: var(--color-fd-card);
1823
+ font-size: 0.875em;
1824
+ line-height: 1.7142857;
1822
1825
  }
1823
1826
 
1824
1827
  .fd-page-body th {
1825
- padding: 10px 16px;
1828
+ padding: 10px;
1826
1829
  text-align: left;
1827
1830
  font-weight: 600;
1828
- font-size: 13px;
1829
- color: var(--color-fd-muted-foreground);
1831
+ font-size: 0.875rem;
1832
+ color: var(--color-fd-foreground);
1833
+ background: var(--color-fd-muted);
1834
+ border-inline-start: 1px solid var(--color-fd-border);
1830
1835
  border-bottom: 1px solid var(--color-fd-border);
1831
1836
  white-space: nowrap;
1832
1837
  }
1833
1838
 
1839
+ .fd-page-body th:first-child {
1840
+ border-inline-start: none;
1841
+ }
1842
+
1834
1843
  .fd-page-body td {
1835
- padding: 10px 16px;
1844
+ padding: 10px;
1836
1845
  text-align: left;
1846
+ border-inline-start: 1px solid var(--color-fd-border);
1837
1847
  border-bottom: 1px solid var(--color-fd-border);
1838
1848
  color: var(--color-fd-foreground);
1839
1849
  }
1840
1850
 
1841
- .fd-page-body tbody tr:last-child td {
1842
- border-bottom: none;
1851
+ .fd-page-body td:first-child {
1852
+ border-inline-start: none;
1843
1853
  }
1844
1854
 
1845
- .fd-page-body tbody tr:hover {
1846
- background: var(--color-fd-accent);
1855
+ .fd-page-body tbody tr:last-child td {
1856
+ border-bottom: none;
1847
1857
  }
1848
1858
 
1849
1859
  .fd-page-body td code {
@@ -345,7 +345,7 @@ nav[class*="header"] {
345
345
  font-weight: 400;
346
346
  }
347
347
 
348
- .fd-docs-content table {
348
+ :is(.fd-docs-content, .prose) table {
349
349
  border-collapse: separate;
350
350
  border-spacing: 0;
351
351
  background: var(--color-fd-card);
@@ -355,7 +355,7 @@ nav[class*="header"] {
355
355
  width: 100%;
356
356
  }
357
357
 
358
- .fd-docs-content th {
358
+ :is(.fd-docs-content, .prose) th {
359
359
  background: var(--color-fd-muted);
360
360
  font-weight: 500;
361
361
  font-size: 0.8125rem;
@@ -364,14 +364,14 @@ nav[class*="header"] {
364
364
  letter-spacing: normal;
365
365
  }
366
366
 
367
- .fd-docs-content th,
368
- .fd-docs-content td {
367
+ :is(.fd-docs-content, .prose) th,
368
+ :is(.fd-docs-content, .prose) td {
369
369
  padding: 0.75rem 1rem;
370
370
  border-bottom: 1px solid var(--color-fd-border);
371
371
  font-size: 0.875rem;
372
372
  }
373
373
 
374
- .fd-docs-content tr:last-child td {
374
+ :is(.fd-docs-content, .prose) tr:last-child td {
375
375
  border-bottom: none;
376
376
  }
377
377
 
@@ -284,7 +284,7 @@ aside button[class*="bg-fd-secondary"] {
284
284
  /* Cards, callouts, tabs, and generic surfaces */
285
285
  .fd-card,
286
286
  [data-card],
287
- [class*="fd-callout"],
287
+ .fd-callout,
288
288
  .fd-page-action-menu,
289
289
  .fd-page-action-btn {
290
290
  border: 2px solid var(--color-fd-border) !important;
@@ -294,7 +294,7 @@ aside button[class*="bg-fd-secondary"] {
294
294
 
295
295
  .dark .fd-card,
296
296
  .dark [data-card],
297
- .dark [class*="fd-callout"],
297
+ .dark .fd-callout,
298
298
  .dark .fd-page-action-menu,
299
299
  .dark .fd-page-action-btn {
300
300
  box-shadow: 4px 4px 0 color-mix(in srgb, var(--color-fd-primary) 40%, transparent);
@@ -365,33 +365,40 @@ aside button[class*="bg-fd-secondary"] {
365
365
  background: #121214 !important;
366
366
  }
367
367
 
368
- .fd-docs-content table {
369
- border-collapse: collapse;
370
- border: 2px solid var(--color-fd-border);
368
+ .fd-table-wrapper {
369
+ border: 0 !important;
370
+ border-radius: 0 !important;
371
+ background: transparent !important;
372
+ }
373
+
374
+ :is(.fd-docs-content, .prose) table {
375
+ border-collapse: collapse !important;
376
+ border: 2px solid var(--color-fd-border) !important;
377
+ border-radius: 0 !important;
371
378
  width: 100%;
372
- background: var(--color-fd-card);
379
+ background: var(--color-fd-card) !important;
373
380
  }
374
381
 
375
- .fd-docs-content th,
376
- .fd-docs-content td {
377
- border: 2px solid var(--color-fd-border);
378
- padding: 0.7rem 0.85rem;
382
+ :is(.fd-docs-content, .prose) th,
383
+ :is(.fd-docs-content, .prose) td {
384
+ border: 2px solid var(--color-fd-border) !important;
385
+ padding: 0.7rem 0.85rem !important;
379
386
  }
380
387
 
381
- .fd-docs-content th {
388
+ :is(.fd-docs-content, .prose) th {
382
389
  text-transform: uppercase;
383
390
  letter-spacing: 0.05em;
384
391
  font-size: 0.78rem;
385
- background: var(--color-fd-primary);
386
- color: var(--color-fd-primary-foreground);
392
+ background: var(--color-fd-primary) !important;
393
+ color: var(--color-fd-primary-foreground) !important;
387
394
  }
388
395
 
389
- .fd-docs-content tbody tr:nth-child(even) td {
390
- background: color-mix(in srgb, var(--color-fd-secondary) 85%, transparent);
396
+ :is(.fd-docs-content, .prose) tbody tr:nth-child(even) td {
397
+ background: color-mix(in srgb, var(--color-fd-secondary) 85%, transparent) !important;
391
398
  }
392
399
 
393
- .dark .fd-docs-content tbody tr:nth-child(even) td {
394
- background: #1a1a1d;
400
+ .dark :is(.fd-docs-content, .prose) tbody tr:nth-child(even) td {
401
+ background: #1a1a1d !important;
395
402
  }
396
403
 
397
404
  /* Prev/next cards */
package/styles/ledger.css CHANGED
@@ -197,7 +197,7 @@ body,
197
197
  .fd-page-description,
198
198
  .fd-docs-content p,
199
199
  .fd-docs-content li,
200
- .fd-docs-content td {
200
+ :is(.fd-docs-content, .prose) td {
201
201
  color: var(--color-fd-muted-foreground);
202
202
  line-height: 1.7;
203
203
  }
@@ -381,7 +381,7 @@ figure.shiki:has(figcaption) > div:first-child > div:last-child {
381
381
  }
382
382
 
383
383
  .fd-table-wrapper,
384
- .fd-docs-content table {
384
+ :is(.fd-docs-content, .prose) table {
385
385
  border: 1px solid var(--fd-ledger-soft-border);
386
386
  border-radius: 0.5rem;
387
387
  background: var(--color-fd-card);
@@ -1,6 +1,6 @@
1
1
  /* @farming-labs/nuxt-theme — pixel-border theme (bundled)
2
2
  * Single import: includes base docs.css + pixel-border overrides.
3
- * Usage: @import "@farming-labs/nuxt-theme/pixel-border/css";
3
+ * Usage: @import "@farming-labs/theme/pixel-border/css";
4
4
  */
5
5
  @import "./docs.css";
6
6
  @import "./pixel-border.css";