@farming-labs/svelte-theme 0.0.2-beta.21 → 0.0.2-beta.22
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 +32 -32
- package/src/lib/renderMarkdown.js +21 -11
- package/src/themes/colorful.d.ts +3 -1
- package/styles/colorful.css +3 -1
- package/styles/docs.css +239 -69
- package/styles/pixel-border.css +3 -4
package/package.json
CHANGED
|
@@ -1,8 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farming-labs/svelte-theme",
|
|
3
|
-
"version": "0.0.2-beta.
|
|
3
|
+
"version": "0.0.2-beta.22",
|
|
4
4
|
"description": "Svelte UI components for @farming-labs/docs — layout, sidebar, TOC, search, and theme toggle",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"docs",
|
|
7
|
+
"documentation",
|
|
8
|
+
"svelte",
|
|
9
|
+
"sveltekit",
|
|
10
|
+
"theme"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"author": "Farming Labs",
|
|
14
|
+
"files": [
|
|
15
|
+
"src",
|
|
16
|
+
"styles"
|
|
17
|
+
],
|
|
5
18
|
"type": "module",
|
|
19
|
+
"typesVersions": {
|
|
20
|
+
"*": {
|
|
21
|
+
"pixel-border": [
|
|
22
|
+
"./src/themes/pixel-border.d.ts"
|
|
23
|
+
],
|
|
24
|
+
"darksharp": [
|
|
25
|
+
"./src/themes/darksharp.d.ts"
|
|
26
|
+
],
|
|
27
|
+
"fumadocs": [
|
|
28
|
+
"./src/themes/default.d.ts"
|
|
29
|
+
],
|
|
30
|
+
".": [
|
|
31
|
+
"./src/index.d.ts"
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
6
35
|
"svelte": "./src/index.js",
|
|
7
36
|
"exports": {
|
|
8
37
|
".": {
|
|
@@ -40,40 +69,11 @@
|
|
|
40
69
|
"./styles/colorful.css": "./styles/colorful.css",
|
|
41
70
|
"./colorful/css": "./styles/colorful-bundle.css"
|
|
42
71
|
},
|
|
43
|
-
"typesVersions": {
|
|
44
|
-
"*": {
|
|
45
|
-
"pixel-border": [
|
|
46
|
-
"./src/themes/pixel-border.d.ts"
|
|
47
|
-
],
|
|
48
|
-
"darksharp": [
|
|
49
|
-
"./src/themes/darksharp.d.ts"
|
|
50
|
-
],
|
|
51
|
-
"fumadocs": [
|
|
52
|
-
"./src/themes/default.d.ts"
|
|
53
|
-
],
|
|
54
|
-
".": [
|
|
55
|
-
"./src/index.d.ts"
|
|
56
|
-
]
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
"files": [
|
|
60
|
-
"src",
|
|
61
|
-
"styles"
|
|
62
|
-
],
|
|
63
|
-
"keywords": [
|
|
64
|
-
"docs",
|
|
65
|
-
"svelte",
|
|
66
|
-
"sveltekit",
|
|
67
|
-
"theme",
|
|
68
|
-
"documentation"
|
|
69
|
-
],
|
|
70
|
-
"author": "Farming Labs",
|
|
71
|
-
"license": "MIT",
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"gray-matter": "^4.0.3",
|
|
74
74
|
"sugar-high": "^0.9.5",
|
|
75
|
-
"@farming-labs/docs": "0.0.2-beta.
|
|
76
|
-
"@farming-labs/svelte": "0.0.2-beta.
|
|
75
|
+
"@farming-labs/docs": "0.0.2-beta.22",
|
|
76
|
+
"@farming-labs/svelte": "0.0.2-beta.22"
|
|
77
77
|
},
|
|
78
78
|
"peerDependencies": {
|
|
79
79
|
"svelte": ">=5.0.0"
|
|
@@ -16,10 +16,12 @@ function buildCodeBlock(lang, code) {
|
|
|
16
16
|
const highlighted = highlight(trimmed).replace(/<\/span>\n<span/g, "</span><span");
|
|
17
17
|
const langLabel = lang ? `<div class="fd-ai-code-lang">${escapeHtml(lang)}</div>` : "";
|
|
18
18
|
const copyBtn = `<button class="fd-ai-code-copy" onclick="(function(btn){var code=btn.closest('.fd-ai-code-block').querySelector('code').textContent;navigator.clipboard.writeText(code).then(function(){btn.textContent='Copied!';setTimeout(function(){btn.textContent='Copy'},1500)})})(this)">Copy</button>`;
|
|
19
|
-
return
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
+
|
|
19
|
+
return (
|
|
20
|
+
`<div class="fd-ai-code-block">` +
|
|
21
|
+
`<div class="fd-ai-code-header">${langLabel}${copyBtn}</div>` +
|
|
22
|
+
`<pre><code>${highlighted}</code></pre>` +
|
|
23
|
+
`</div>`
|
|
24
|
+
);
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
function isTableRow(line) {
|
|
@@ -33,15 +35,23 @@ function isTableSeparator(line) {
|
|
|
33
35
|
|
|
34
36
|
function renderTable(rows) {
|
|
35
37
|
const parseRow = (row) =>
|
|
36
|
-
row
|
|
38
|
+
row
|
|
39
|
+
.trim()
|
|
40
|
+
.replace(/^\|/, "")
|
|
41
|
+
.replace(/\|$/, "")
|
|
42
|
+
.split("|")
|
|
43
|
+
.map((c) => c.trim());
|
|
37
44
|
|
|
38
45
|
const headerCells = parseRow(rows[0]);
|
|
39
|
-
const thead = `<thead><tr>${headerCells.map(c => `<th>${c}</th>`).join("")}</tr></thead>`;
|
|
40
|
-
|
|
41
|
-
const bodyRows = rows
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
const thead = `<thead><tr>${headerCells.map((c) => `<th>${c}</th>`).join("")}</tr></thead>`;
|
|
47
|
+
|
|
48
|
+
const bodyRows = rows
|
|
49
|
+
.slice(1)
|
|
50
|
+
.map((row) => {
|
|
51
|
+
const cells = parseRow(row);
|
|
52
|
+
return `<tr>${cells.map((c) => `<td>${c}</td>`).join("")}</tr>`;
|
|
53
|
+
})
|
|
54
|
+
.join("");
|
|
45
55
|
|
|
46
56
|
return `<table>${thead}<tbody>${bodyRows}</tbody></table>`;
|
|
47
57
|
}
|
package/src/themes/colorful.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const colorful: (overrides?: {
|
|
1
|
+
export declare const colorful: (overrides?: {
|
|
2
|
+
ui?: Record<string, unknown>;
|
|
3
|
+
}) => import("@farming-labs/docs").DocsTheme;
|
|
2
4
|
export declare const ColorfulUIDefaults: Record<string, unknown>;
|
package/styles/colorful.css
CHANGED
|
@@ -45,7 +45,9 @@
|
|
|
45
45
|
font-size: 0.875rem;
|
|
46
46
|
color: var(--color-fd-card-foreground);
|
|
47
47
|
box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
|
|
48
|
-
transition:
|
|
48
|
+
transition:
|
|
49
|
+
background-color 150ms,
|
|
50
|
+
border-color 150ms;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
.fd-card:hover {
|
package/styles/docs.css
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
/* ─── CSS Reset ──────────────────────────────────────────────────────── */
|
|
10
10
|
|
|
11
|
-
*,
|
|
11
|
+
*,
|
|
12
|
+
*::before,
|
|
13
|
+
*::after {
|
|
12
14
|
box-sizing: border-box;
|
|
13
15
|
margin: 0;
|
|
14
16
|
}
|
|
@@ -76,8 +78,18 @@ body {
|
|
|
76
78
|
-moz-osx-font-smoothing: grayscale;
|
|
77
79
|
}
|
|
78
80
|
|
|
79
|
-
code,
|
|
80
|
-
|
|
81
|
+
code,
|
|
82
|
+
kbd,
|
|
83
|
+
pre,
|
|
84
|
+
samp {
|
|
85
|
+
font-family: var(
|
|
86
|
+
--fd-font-mono,
|
|
87
|
+
ui-monospace,
|
|
88
|
+
"Cascadia Code",
|
|
89
|
+
"Source Code Pro",
|
|
90
|
+
Menlo,
|
|
91
|
+
monospace
|
|
92
|
+
);
|
|
81
93
|
}
|
|
82
94
|
|
|
83
95
|
/* ─── Layout (sidebar + content, TOC lives inside content area) ──────── */
|
|
@@ -123,7 +135,9 @@ code, kbd, pre, samp {
|
|
|
123
135
|
border-radius: 8px;
|
|
124
136
|
color: var(--color-fd-muted-foreground);
|
|
125
137
|
cursor: pointer;
|
|
126
|
-
transition:
|
|
138
|
+
transition:
|
|
139
|
+
background 0.15s,
|
|
140
|
+
color 0.15s;
|
|
127
141
|
}
|
|
128
142
|
|
|
129
143
|
.fd-menu-btn:hover,
|
|
@@ -196,7 +210,9 @@ code, kbd, pre, samp {
|
|
|
196
210
|
border-radius: 6px;
|
|
197
211
|
color: var(--color-fd-muted-foreground);
|
|
198
212
|
cursor: pointer;
|
|
199
|
-
transition:
|
|
213
|
+
transition:
|
|
214
|
+
background 0.15s,
|
|
215
|
+
color 0.15s;
|
|
200
216
|
flex-shrink: 0;
|
|
201
217
|
}
|
|
202
218
|
|
|
@@ -224,7 +240,9 @@ code, kbd, pre, samp {
|
|
|
224
240
|
border: 1px solid var(--color-fd-border);
|
|
225
241
|
border-radius: 8px;
|
|
226
242
|
cursor: pointer;
|
|
227
|
-
transition:
|
|
243
|
+
transition:
|
|
244
|
+
border-color 0.15s,
|
|
245
|
+
background 0.15s;
|
|
228
246
|
}
|
|
229
247
|
|
|
230
248
|
.fd-sidebar-search-btn:hover {
|
|
@@ -270,7 +288,9 @@ code, kbd, pre, samp {
|
|
|
270
288
|
text-decoration: none;
|
|
271
289
|
border-radius: 8px;
|
|
272
290
|
position: relative;
|
|
273
|
-
transition:
|
|
291
|
+
transition:
|
|
292
|
+
color 0.15s,
|
|
293
|
+
background 0.15s;
|
|
274
294
|
}
|
|
275
295
|
|
|
276
296
|
.fd-sidebar-link:hover {
|
|
@@ -287,7 +307,7 @@ code, kbd, pre, samp {
|
|
|
287
307
|
}
|
|
288
308
|
|
|
289
309
|
.fd-sidebar-folder-content .fd-sidebar-link-active::before {
|
|
290
|
-
content:
|
|
310
|
+
content: "";
|
|
291
311
|
position: absolute;
|
|
292
312
|
left: -9px;
|
|
293
313
|
top: 25%;
|
|
@@ -346,7 +366,7 @@ code, kbd, pre, samp {
|
|
|
346
366
|
}
|
|
347
367
|
|
|
348
368
|
.fd-sidebar-folder-content::before {
|
|
349
|
-
content:
|
|
369
|
+
content: "";
|
|
350
370
|
position: absolute;
|
|
351
371
|
left: 4px;
|
|
352
372
|
top: 4px;
|
|
@@ -464,7 +484,9 @@ code, kbd, pre, samp {
|
|
|
464
484
|
text-decoration: none;
|
|
465
485
|
border-left: 2px solid transparent;
|
|
466
486
|
margin-left: -1px;
|
|
467
|
-
transition:
|
|
487
|
+
transition:
|
|
488
|
+
color 0.15s,
|
|
489
|
+
border-color 0.15s;
|
|
468
490
|
}
|
|
469
491
|
|
|
470
492
|
.fd-toc-link:hover {
|
|
@@ -568,7 +590,9 @@ code, kbd, pre, samp {
|
|
|
568
590
|
color: inherit;
|
|
569
591
|
text-decoration: none;
|
|
570
592
|
cursor: pointer;
|
|
571
|
-
transition:
|
|
593
|
+
transition:
|
|
594
|
+
opacity 0.15s,
|
|
595
|
+
color 0.15s;
|
|
572
596
|
}
|
|
573
597
|
|
|
574
598
|
.fd-breadcrumb-link:hover {
|
|
@@ -595,7 +619,9 @@ code, kbd, pre, samp {
|
|
|
595
619
|
border-radius: 8px;
|
|
596
620
|
color: var(--color-fd-muted-foreground);
|
|
597
621
|
cursor: pointer;
|
|
598
|
-
transition:
|
|
622
|
+
transition:
|
|
623
|
+
color 0.15s,
|
|
624
|
+
background 0.15s;
|
|
599
625
|
}
|
|
600
626
|
|
|
601
627
|
.fd-theme-toggle:hover {
|
|
@@ -771,7 +797,8 @@ code, kbd, pre, samp {
|
|
|
771
797
|
margin: 0 0 16px;
|
|
772
798
|
}
|
|
773
799
|
|
|
774
|
-
.fd-page-body ul,
|
|
800
|
+
.fd-page-body ul,
|
|
801
|
+
.fd-page-body ol {
|
|
775
802
|
margin: 0 0 16px;
|
|
776
803
|
padding-left: 24px;
|
|
777
804
|
}
|
|
@@ -904,7 +931,10 @@ html.dark pre.shiki {
|
|
|
904
931
|
color: var(--color-fd-muted-foreground);
|
|
905
932
|
cursor: pointer;
|
|
906
933
|
opacity: 0;
|
|
907
|
-
transition:
|
|
934
|
+
transition:
|
|
935
|
+
opacity 0.15s,
|
|
936
|
+
color 0.15s,
|
|
937
|
+
background 0.15s;
|
|
908
938
|
}
|
|
909
939
|
|
|
910
940
|
.fd-codeblock:hover .fd-copy-btn {
|
|
@@ -949,7 +979,9 @@ html.dark pre.shiki {
|
|
|
949
979
|
border: none;
|
|
950
980
|
border-bottom: 2px solid transparent;
|
|
951
981
|
cursor: pointer;
|
|
952
|
-
transition:
|
|
982
|
+
transition:
|
|
983
|
+
color 0.15s,
|
|
984
|
+
border-color 0.15s;
|
|
953
985
|
white-space: nowrap;
|
|
954
986
|
}
|
|
955
987
|
|
|
@@ -1059,13 +1091,23 @@ html.dark pre.shiki {
|
|
|
1059
1091
|
}
|
|
1060
1092
|
|
|
1061
1093
|
@keyframes fd-fade-in {
|
|
1062
|
-
from {
|
|
1063
|
-
|
|
1094
|
+
from {
|
|
1095
|
+
opacity: 0;
|
|
1096
|
+
}
|
|
1097
|
+
to {
|
|
1098
|
+
opacity: 1;
|
|
1099
|
+
}
|
|
1064
1100
|
}
|
|
1065
1101
|
|
|
1066
1102
|
@keyframes fd-slide-up {
|
|
1067
|
-
from {
|
|
1068
|
-
|
|
1103
|
+
from {
|
|
1104
|
+
opacity: 0;
|
|
1105
|
+
transform: translateY(8px) scale(0.98);
|
|
1106
|
+
}
|
|
1107
|
+
to {
|
|
1108
|
+
opacity: 1;
|
|
1109
|
+
transform: translateY(0) scale(1);
|
|
1110
|
+
}
|
|
1069
1111
|
}
|
|
1070
1112
|
|
|
1071
1113
|
/* ─── Callout / Admonition ──────────────────────────────────────────── */
|
|
@@ -1093,22 +1135,42 @@ html.dark pre.shiki {
|
|
|
1093
1135
|
border-radius: 8px 0 0 8px;
|
|
1094
1136
|
}
|
|
1095
1137
|
|
|
1096
|
-
.fd-callout-note .fd-callout-indicator {
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
.fd-callout-
|
|
1100
|
-
|
|
1138
|
+
.fd-callout-note .fd-callout-indicator {
|
|
1139
|
+
background: hsl(221, 83%, 53%);
|
|
1140
|
+
}
|
|
1141
|
+
.fd-callout-warning .fd-callout-indicator {
|
|
1142
|
+
background: hsl(38, 92%, 50%);
|
|
1143
|
+
}
|
|
1144
|
+
.fd-callout-tip .fd-callout-indicator {
|
|
1145
|
+
background: hsl(142, 71%, 45%);
|
|
1146
|
+
}
|
|
1147
|
+
.fd-callout-important .fd-callout-indicator {
|
|
1148
|
+
background: hsl(262, 83%, 58%);
|
|
1149
|
+
}
|
|
1150
|
+
.fd-callout-caution .fd-callout-indicator {
|
|
1151
|
+
background: hsl(0, 72%, 51%);
|
|
1152
|
+
}
|
|
1101
1153
|
|
|
1102
1154
|
.fd-callout-icon {
|
|
1103
1155
|
flex-shrink: 0;
|
|
1104
1156
|
margin-top: 2px;
|
|
1105
1157
|
}
|
|
1106
1158
|
|
|
1107
|
-
.fd-callout-note .fd-callout-icon {
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
.fd-callout-
|
|
1111
|
-
|
|
1159
|
+
.fd-callout-note .fd-callout-icon {
|
|
1160
|
+
color: hsl(221, 83%, 53%);
|
|
1161
|
+
}
|
|
1162
|
+
.fd-callout-warning .fd-callout-icon {
|
|
1163
|
+
color: hsl(38, 92%, 50%);
|
|
1164
|
+
}
|
|
1165
|
+
.fd-callout-tip .fd-callout-icon {
|
|
1166
|
+
color: hsl(142, 71%, 45%);
|
|
1167
|
+
}
|
|
1168
|
+
.fd-callout-important .fd-callout-icon {
|
|
1169
|
+
color: hsl(262, 83%, 58%);
|
|
1170
|
+
}
|
|
1171
|
+
.fd-callout-caution .fd-callout-icon {
|
|
1172
|
+
color: hsl(0, 72%, 51%);
|
|
1173
|
+
}
|
|
1112
1174
|
|
|
1113
1175
|
.fd-callout-content {
|
|
1114
1176
|
flex: 1;
|
|
@@ -1120,11 +1182,21 @@ html.dark pre.shiki {
|
|
|
1120
1182
|
font-size: 13px;
|
|
1121
1183
|
}
|
|
1122
1184
|
|
|
1123
|
-
.fd-callout-note .fd-callout-title {
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
.fd-callout-
|
|
1127
|
-
|
|
1185
|
+
.fd-callout-note .fd-callout-title {
|
|
1186
|
+
color: hsl(221, 83%, 53%);
|
|
1187
|
+
}
|
|
1188
|
+
.fd-callout-warning .fd-callout-title {
|
|
1189
|
+
color: hsl(38, 92%, 50%);
|
|
1190
|
+
}
|
|
1191
|
+
.fd-callout-tip .fd-callout-title {
|
|
1192
|
+
color: hsl(142, 71%, 45%);
|
|
1193
|
+
}
|
|
1194
|
+
.fd-callout-important .fd-callout-title {
|
|
1195
|
+
color: hsl(262, 83%, 58%);
|
|
1196
|
+
}
|
|
1197
|
+
.fd-callout-caution .fd-callout-title {
|
|
1198
|
+
color: hsl(0, 72%, 51%);
|
|
1199
|
+
}
|
|
1128
1200
|
|
|
1129
1201
|
.fd-callout-content p:last-child {
|
|
1130
1202
|
margin-bottom: 0;
|
|
@@ -1185,7 +1257,9 @@ html.dark pre.shiki {
|
|
|
1185
1257
|
border-radius: 8px;
|
|
1186
1258
|
text-decoration: none;
|
|
1187
1259
|
color: var(--color-fd-foreground);
|
|
1188
|
-
transition:
|
|
1260
|
+
transition:
|
|
1261
|
+
background-color 0.15s,
|
|
1262
|
+
border-color 0.15s;
|
|
1189
1263
|
}
|
|
1190
1264
|
|
|
1191
1265
|
.fd-page-nav-card:hover {
|
|
@@ -1233,28 +1307,58 @@ html.dark pre.shiki {
|
|
|
1233
1307
|
* ═══════════════════════════════════════════════════════════════════════ */
|
|
1234
1308
|
|
|
1235
1309
|
@keyframes fd-ai-dot {
|
|
1236
|
-
0%,
|
|
1237
|
-
|
|
1310
|
+
0%,
|
|
1311
|
+
80%,
|
|
1312
|
+
100% {
|
|
1313
|
+
transform: scale(0);
|
|
1314
|
+
opacity: 0.5;
|
|
1315
|
+
}
|
|
1316
|
+
40% {
|
|
1317
|
+
transform: scale(1);
|
|
1318
|
+
opacity: 1;
|
|
1319
|
+
}
|
|
1238
1320
|
}
|
|
1239
1321
|
|
|
1240
1322
|
@keyframes fd-ai-fade-in {
|
|
1241
|
-
from {
|
|
1242
|
-
|
|
1323
|
+
from {
|
|
1324
|
+
opacity: 0;
|
|
1325
|
+
}
|
|
1326
|
+
to {
|
|
1327
|
+
opacity: 1;
|
|
1328
|
+
}
|
|
1243
1329
|
}
|
|
1244
1330
|
|
|
1245
1331
|
@keyframes fd-ai-slide-up {
|
|
1246
|
-
from {
|
|
1247
|
-
|
|
1332
|
+
from {
|
|
1333
|
+
opacity: 0;
|
|
1334
|
+
transform: translate(-50%, -48%) scale(0.96);
|
|
1335
|
+
}
|
|
1336
|
+
to {
|
|
1337
|
+
opacity: 1;
|
|
1338
|
+
transform: translate(-50%, -50%) scale(1);
|
|
1339
|
+
}
|
|
1248
1340
|
}
|
|
1249
1341
|
|
|
1250
1342
|
@keyframes fd-ai-float-in {
|
|
1251
|
-
from {
|
|
1252
|
-
|
|
1343
|
+
from {
|
|
1344
|
+
opacity: 0;
|
|
1345
|
+
transform: translateY(12px) scale(0.95);
|
|
1346
|
+
}
|
|
1347
|
+
to {
|
|
1348
|
+
opacity: 1;
|
|
1349
|
+
transform: translateY(0) scale(1);
|
|
1350
|
+
}
|
|
1253
1351
|
}
|
|
1254
1352
|
|
|
1255
1353
|
@keyframes fd-ai-float-center-in {
|
|
1256
|
-
from {
|
|
1257
|
-
|
|
1354
|
+
from {
|
|
1355
|
+
opacity: 0;
|
|
1356
|
+
transform: translate(-50%, -48%) scale(0.96);
|
|
1357
|
+
}
|
|
1358
|
+
to {
|
|
1359
|
+
opacity: 1;
|
|
1360
|
+
transform: translate(-50%, -50%) scale(1);
|
|
1361
|
+
}
|
|
1258
1362
|
}
|
|
1259
1363
|
|
|
1260
1364
|
.fd-ai-overlay {
|
|
@@ -1303,7 +1407,10 @@ html.dark pre.shiki {
|
|
|
1303
1407
|
border: none;
|
|
1304
1408
|
border-bottom: 2px solid transparent;
|
|
1305
1409
|
cursor: pointer;
|
|
1306
|
-
transition:
|
|
1410
|
+
transition:
|
|
1411
|
+
color 150ms,
|
|
1412
|
+
border-color 150ms,
|
|
1413
|
+
background-color 150ms;
|
|
1307
1414
|
background: transparent;
|
|
1308
1415
|
color: var(--color-fd-muted-foreground);
|
|
1309
1416
|
font-family: inherit;
|
|
@@ -1425,7 +1532,9 @@ html.dark pre.shiki {
|
|
|
1425
1532
|
text-align: left;
|
|
1426
1533
|
font-size: 14px;
|
|
1427
1534
|
font-family: inherit;
|
|
1428
|
-
transition:
|
|
1535
|
+
transition:
|
|
1536
|
+
background 100ms,
|
|
1537
|
+
color 100ms;
|
|
1429
1538
|
color: var(--color-fd-foreground);
|
|
1430
1539
|
background: transparent;
|
|
1431
1540
|
color: var(--color-fd-foreground);
|
|
@@ -1638,8 +1747,12 @@ html.dark pre.shiki {
|
|
|
1638
1747
|
animation: fd-ai-dot 1.4s infinite ease-in-out both;
|
|
1639
1748
|
}
|
|
1640
1749
|
|
|
1641
|
-
.fd-ai-loading-dot:nth-child(2) {
|
|
1642
|
-
|
|
1750
|
+
.fd-ai-loading-dot:nth-child(2) {
|
|
1751
|
+
animation-delay: 0.16s;
|
|
1752
|
+
}
|
|
1753
|
+
.fd-ai-loading-dot:nth-child(3) {
|
|
1754
|
+
animation-delay: 0.32s;
|
|
1755
|
+
}
|
|
1643
1756
|
|
|
1644
1757
|
/* ─── Markdown in AI responses ───────────────────────────────── */
|
|
1645
1758
|
|
|
@@ -1738,7 +1851,11 @@ html.dark pre.shiki {
|
|
|
1738
1851
|
|
|
1739
1852
|
.fd-ai-code-copy:hover {
|
|
1740
1853
|
color: var(--color-fd-foreground, #e4e4e7);
|
|
1741
|
-
background: color-mix(
|
|
1854
|
+
background: color-mix(
|
|
1855
|
+
in srgb,
|
|
1856
|
+
var(--color-fd-accent, rgba(255, 255, 255, 0.05)) 60%,
|
|
1857
|
+
transparent
|
|
1858
|
+
);
|
|
1742
1859
|
}
|
|
1743
1860
|
|
|
1744
1861
|
.fd-ai-code-block pre {
|
|
@@ -1759,7 +1876,10 @@ html.dark pre.shiki {
|
|
|
1759
1876
|
border-radius: 0;
|
|
1760
1877
|
}
|
|
1761
1878
|
|
|
1762
|
-
.fd-ai-code-block .sh__line {
|
|
1879
|
+
.fd-ai-code-block .sh__line {
|
|
1880
|
+
display: block;
|
|
1881
|
+
min-height: 1.2em;
|
|
1882
|
+
}
|
|
1763
1883
|
|
|
1764
1884
|
/* ═══════════════════════════════════════════════════════════════
|
|
1765
1885
|
Default theme AI overrides — rounded, soft, indigo
|
|
@@ -1768,7 +1888,9 @@ html.dark pre.shiki {
|
|
|
1768
1888
|
|
|
1769
1889
|
.fd-ai-dialog {
|
|
1770
1890
|
border-radius: 12px;
|
|
1771
|
-
box-shadow:
|
|
1891
|
+
box-shadow:
|
|
1892
|
+
0 20px 60px rgba(99, 102, 241, 0.08),
|
|
1893
|
+
0 8px 24px rgba(0, 0, 0, 0.12);
|
|
1772
1894
|
}
|
|
1773
1895
|
|
|
1774
1896
|
.fd-ai-bubble-user {
|
|
@@ -1851,7 +1973,10 @@ html.dark pre.shiki {
|
|
|
1851
1973
|
cursor: pointer;
|
|
1852
1974
|
font-size: 14px;
|
|
1853
1975
|
box-shadow: 0 1px 3px color-mix(in srgb, var(--color-fd-background, #000) 20%, transparent);
|
|
1854
|
-
transition:
|
|
1976
|
+
transition:
|
|
1977
|
+
transform 150ms,
|
|
1978
|
+
background 150ms,
|
|
1979
|
+
color 150ms;
|
|
1855
1980
|
animation: fd-ai-fade-in 300ms ease-out;
|
|
1856
1981
|
}
|
|
1857
1982
|
|
|
@@ -1927,8 +2052,20 @@ html.dark pre.shiki {
|
|
|
1927
2052
|
overflow-y: auto;
|
|
1928
2053
|
width: min(800px, 100%);
|
|
1929
2054
|
padding: 24px 0 120px;
|
|
1930
|
-
mask-image: linear-gradient(
|
|
1931
|
-
|
|
2055
|
+
mask-image: linear-gradient(
|
|
2056
|
+
to bottom,
|
|
2057
|
+
transparent,
|
|
2058
|
+
white 3rem,
|
|
2059
|
+
white calc(100% - 8rem),
|
|
2060
|
+
transparent 100%
|
|
2061
|
+
);
|
|
2062
|
+
-webkit-mask-image: linear-gradient(
|
|
2063
|
+
to bottom,
|
|
2064
|
+
transparent,
|
|
2065
|
+
white 3rem,
|
|
2066
|
+
white calc(100% - 8rem),
|
|
2067
|
+
transparent 100%
|
|
2068
|
+
);
|
|
1932
2069
|
}
|
|
1933
2070
|
|
|
1934
2071
|
.fd-ai-fm-messages-inner {
|
|
@@ -2017,12 +2154,24 @@ html.dark pre.shiki {
|
|
|
2017
2154
|
animation: fd-ai-fm-bounce 1s infinite ease-in-out;
|
|
2018
2155
|
}
|
|
2019
2156
|
|
|
2020
|
-
.fd-ai-fm-thinking-dot:nth-child(2) {
|
|
2021
|
-
|
|
2157
|
+
.fd-ai-fm-thinking-dot:nth-child(2) {
|
|
2158
|
+
animation-delay: 150ms;
|
|
2159
|
+
}
|
|
2160
|
+
.fd-ai-fm-thinking-dot:nth-child(3) {
|
|
2161
|
+
animation-delay: 300ms;
|
|
2162
|
+
}
|
|
2022
2163
|
|
|
2023
2164
|
@keyframes fd-ai-fm-bounce {
|
|
2024
|
-
0%,
|
|
2025
|
-
|
|
2165
|
+
0%,
|
|
2166
|
+
80%,
|
|
2167
|
+
100% {
|
|
2168
|
+
transform: scale(0.6);
|
|
2169
|
+
opacity: 0.4;
|
|
2170
|
+
}
|
|
2171
|
+
40% {
|
|
2172
|
+
transform: scale(1);
|
|
2173
|
+
opacity: 1;
|
|
2174
|
+
}
|
|
2026
2175
|
}
|
|
2027
2176
|
|
|
2028
2177
|
/* ─── Bottom input bar ───────────────────────────────────────── */
|
|
@@ -2030,9 +2179,10 @@ html.dark pre.shiki {
|
|
|
2030
2179
|
.fd-ai-fm-input-bar {
|
|
2031
2180
|
position: fixed;
|
|
2032
2181
|
z-index: 9999;
|
|
2033
|
-
transition:
|
|
2034
|
-
|
|
2035
|
-
|
|
2182
|
+
transition:
|
|
2183
|
+
width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
2184
|
+
height 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
2185
|
+
transform 200ms ease-out;
|
|
2036
2186
|
}
|
|
2037
2187
|
|
|
2038
2188
|
.fd-ai-fm-input-bar--closed {
|
|
@@ -2120,8 +2270,20 @@ html.dark pre.shiki {
|
|
|
2120
2270
|
gap: 8px;
|
|
2121
2271
|
overflow-x: auto;
|
|
2122
2272
|
padding-bottom: 4px;
|
|
2123
|
-
mask-image: linear-gradient(
|
|
2124
|
-
|
|
2273
|
+
mask-image: linear-gradient(
|
|
2274
|
+
to right,
|
|
2275
|
+
transparent 0%,
|
|
2276
|
+
black 1rem,
|
|
2277
|
+
black calc(100% - 1rem),
|
|
2278
|
+
transparent 100%
|
|
2279
|
+
);
|
|
2280
|
+
-webkit-mask-image: linear-gradient(
|
|
2281
|
+
to right,
|
|
2282
|
+
transparent 0%,
|
|
2283
|
+
black 1rem,
|
|
2284
|
+
black calc(100% - 1rem),
|
|
2285
|
+
transparent 100%
|
|
2286
|
+
);
|
|
2125
2287
|
}
|
|
2126
2288
|
|
|
2127
2289
|
.fd-ai-fm-suggestion {
|
|
@@ -2131,15 +2293,16 @@ html.dark pre.shiki {
|
|
|
2131
2293
|
font-size: 12px;
|
|
2132
2294
|
font-family: inherit;
|
|
2133
2295
|
border-radius: 9999px;
|
|
2134
|
-
border: 1px solid
|
|
2135
|
-
|
|
2296
|
+
border: 1px solid
|
|
2297
|
+
color-mix(in srgb, var(--color-fd-border, rgba(255, 255, 255, 0.1)) 50%, transparent);
|
|
2298
|
+
background: color-mix(in srgb, var(--color-fd-muted, rgba(255, 255, 255, 0.04)) 30%, transparent);
|
|
2136
2299
|
color: var(--color-fd-muted-foreground, #71717a);
|
|
2137
2300
|
cursor: pointer;
|
|
2138
2301
|
transition: all 200ms;
|
|
2139
2302
|
}
|
|
2140
2303
|
|
|
2141
2304
|
.fd-ai-fm-suggestion:hover {
|
|
2142
|
-
background: color-mix(in srgb, var(--color-fd-muted, rgba(255,255,255,0.04)) 50%, transparent);
|
|
2305
|
+
background: color-mix(in srgb, var(--color-fd-muted, rgba(255, 255, 255, 0.04)) 50%, transparent);
|
|
2143
2306
|
color: var(--color-fd-foreground, #e4e4e7);
|
|
2144
2307
|
border-color: var(--color-fd-border, rgba(255, 255, 255, 0.1));
|
|
2145
2308
|
}
|
|
@@ -2152,7 +2315,11 @@ html.dark pre.shiki {
|
|
|
2152
2315
|
gap: 4px;
|
|
2153
2316
|
padding: 8px 16px;
|
|
2154
2317
|
border-top: 1px solid var(--color-fd-border, rgba(255, 255, 255, 0.06));
|
|
2155
|
-
background: color-mix(
|
|
2318
|
+
background: color-mix(
|
|
2319
|
+
in srgb,
|
|
2320
|
+
var(--color-fd-accent, rgba(255, 255, 255, 0.03)) 40%,
|
|
2321
|
+
transparent
|
|
2322
|
+
);
|
|
2156
2323
|
font-size: 12px;
|
|
2157
2324
|
color: var(--color-fd-muted-foreground, #71717a);
|
|
2158
2325
|
}
|
|
@@ -2202,7 +2369,10 @@ html.dark pre.shiki {
|
|
|
2202
2369
|
font-size: 14px;
|
|
2203
2370
|
cursor: pointer;
|
|
2204
2371
|
box-shadow: 0 1px 3px color-mix(in srgb, var(--color-fd-background, #000) 20%, transparent);
|
|
2205
|
-
transition:
|
|
2372
|
+
transition:
|
|
2373
|
+
transform 150ms,
|
|
2374
|
+
background 150ms,
|
|
2375
|
+
color 150ms;
|
|
2206
2376
|
animation: fd-ai-fade-in 300ms ease-out;
|
|
2207
2377
|
white-space: nowrap;
|
|
2208
2378
|
}
|
package/styles/pixel-border.css
CHANGED
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
.fd-sidebar-folder-content::before {
|
|
84
|
-
content:
|
|
84
|
+
content: "";
|
|
85
85
|
position: absolute;
|
|
86
86
|
left: 4px;
|
|
87
87
|
top: 4px;
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
border-bottom: 1px solid var(--color-fd-border);
|
|
101
101
|
}
|
|
102
102
|
.fd-sidebar-folder-content::before {
|
|
103
|
-
content:
|
|
103
|
+
content: "";
|
|
104
104
|
position: absolute;
|
|
105
105
|
left: -4px;
|
|
106
106
|
top: 3px;
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
|
|
214
214
|
/* Active indicator bar for child links */
|
|
215
215
|
.fd-sidebar-folder-content .fd-sidebar-link-active::before {
|
|
216
|
-
content:
|
|
216
|
+
content: "";
|
|
217
217
|
position: absolute;
|
|
218
218
|
left: -16px;
|
|
219
219
|
top: 25%;
|
|
@@ -246,7 +246,6 @@
|
|
|
246
246
|
border-top: 1px solid var(--color-fd-border) !important;
|
|
247
247
|
border-bottom: 1px solid var(--color-fd-border) !important;
|
|
248
248
|
border-radius: 0 !important;
|
|
249
|
-
|
|
250
249
|
}
|
|
251
250
|
|
|
252
251
|
.fd-sidebar-search {
|