@farming-labs/astro-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 +31 -31
- 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,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farming-labs/astro-theme",
|
|
3
|
-
"version": "0.0.2-beta.
|
|
3
|
+
"version": "0.0.2-beta.22",
|
|
4
4
|
"description": "Astro UI components for @farming-labs/docs — layout, sidebar, TOC, search, and theme toggle",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"astro",
|
|
7
|
+
"docs",
|
|
8
|
+
"documentation",
|
|
9
|
+
"theme"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"author": "Farming Labs",
|
|
13
|
+
"files": [
|
|
14
|
+
"src",
|
|
15
|
+
"styles"
|
|
16
|
+
],
|
|
5
17
|
"type": "module",
|
|
18
|
+
"typesVersions": {
|
|
19
|
+
"*": {
|
|
20
|
+
"pixel-border": [
|
|
21
|
+
"./src/themes/pixel-border.d.ts"
|
|
22
|
+
],
|
|
23
|
+
"darksharp": [
|
|
24
|
+
"./src/themes/darksharp.d.ts"
|
|
25
|
+
],
|
|
26
|
+
"fumadocs": [
|
|
27
|
+
"./src/themes/default.d.ts"
|
|
28
|
+
],
|
|
29
|
+
".": [
|
|
30
|
+
"./src/index.d.ts"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
6
34
|
"exports": {
|
|
7
35
|
".": {
|
|
8
36
|
"types": "./src/index.d.ts",
|
|
@@ -39,38 +67,10 @@
|
|
|
39
67
|
"./styles/colorful.css": "./styles/colorful.css",
|
|
40
68
|
"./colorful/css": "./styles/colorful-bundle.css"
|
|
41
69
|
},
|
|
42
|
-
"typesVersions": {
|
|
43
|
-
"*": {
|
|
44
|
-
"pixel-border": [
|
|
45
|
-
"./src/themes/pixel-border.d.ts"
|
|
46
|
-
],
|
|
47
|
-
"darksharp": [
|
|
48
|
-
"./src/themes/darksharp.d.ts"
|
|
49
|
-
],
|
|
50
|
-
"fumadocs": [
|
|
51
|
-
"./src/themes/default.d.ts"
|
|
52
|
-
],
|
|
53
|
-
".": [
|
|
54
|
-
"./src/index.d.ts"
|
|
55
|
-
]
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"files": [
|
|
59
|
-
"src",
|
|
60
|
-
"styles"
|
|
61
|
-
],
|
|
62
|
-
"keywords": [
|
|
63
|
-
"docs",
|
|
64
|
-
"astro",
|
|
65
|
-
"theme",
|
|
66
|
-
"documentation"
|
|
67
|
-
],
|
|
68
|
-
"author": "Farming Labs",
|
|
69
|
-
"license": "MIT",
|
|
70
70
|
"dependencies": {
|
|
71
71
|
"sugar-high": "^0.9.5",
|
|
72
|
-
"@farming-labs/docs": "0.0.2-beta.
|
|
73
|
-
"@farming-labs/astro": "0.0.2-beta.
|
|
72
|
+
"@farming-labs/docs": "0.0.2-beta.22",
|
|
73
|
+
"@farming-labs/astro": "0.0.2-beta.22"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"astro": ">=4.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 {
|
|
@@ -2022,12 +2159,24 @@ html.dark pre.shiki {
|
|
|
2022
2159
|
animation: fd-ai-fm-bounce 1s infinite ease-in-out;
|
|
2023
2160
|
}
|
|
2024
2161
|
|
|
2025
|
-
.fd-ai-fm-thinking-dot:nth-child(2) {
|
|
2026
|
-
|
|
2162
|
+
.fd-ai-fm-thinking-dot:nth-child(2) {
|
|
2163
|
+
animation-delay: 150ms;
|
|
2164
|
+
}
|
|
2165
|
+
.fd-ai-fm-thinking-dot:nth-child(3) {
|
|
2166
|
+
animation-delay: 300ms;
|
|
2167
|
+
}
|
|
2027
2168
|
|
|
2028
2169
|
@keyframes fd-ai-fm-bounce {
|
|
2029
|
-
0%,
|
|
2030
|
-
|
|
2170
|
+
0%,
|
|
2171
|
+
80%,
|
|
2172
|
+
100% {
|
|
2173
|
+
transform: scale(0.6);
|
|
2174
|
+
opacity: 0.4;
|
|
2175
|
+
}
|
|
2176
|
+
40% {
|
|
2177
|
+
transform: scale(1);
|
|
2178
|
+
opacity: 1;
|
|
2179
|
+
}
|
|
2031
2180
|
}
|
|
2032
2181
|
|
|
2033
2182
|
/* ─── Bottom input bar ───────────────────────────────────────── */
|
|
@@ -2035,9 +2184,10 @@ html.dark pre.shiki {
|
|
|
2035
2184
|
.fd-ai-fm-input-bar {
|
|
2036
2185
|
position: fixed;
|
|
2037
2186
|
z-index: 9999;
|
|
2038
|
-
transition:
|
|
2039
|
-
|
|
2040
|
-
|
|
2187
|
+
transition:
|
|
2188
|
+
width 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
2189
|
+
height 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
2190
|
+
transform 200ms ease-out;
|
|
2041
2191
|
}
|
|
2042
2192
|
|
|
2043
2193
|
.fd-ai-fm-input-bar--closed {
|
|
@@ -2125,8 +2275,20 @@ html.dark pre.shiki {
|
|
|
2125
2275
|
gap: 8px;
|
|
2126
2276
|
overflow-x: auto;
|
|
2127
2277
|
padding-bottom: 4px;
|
|
2128
|
-
mask-image: linear-gradient(
|
|
2129
|
-
|
|
2278
|
+
mask-image: linear-gradient(
|
|
2279
|
+
to right,
|
|
2280
|
+
transparent 0%,
|
|
2281
|
+
black 1rem,
|
|
2282
|
+
black calc(100% - 1rem),
|
|
2283
|
+
transparent 100%
|
|
2284
|
+
);
|
|
2285
|
+
-webkit-mask-image: linear-gradient(
|
|
2286
|
+
to right,
|
|
2287
|
+
transparent 0%,
|
|
2288
|
+
black 1rem,
|
|
2289
|
+
black calc(100% - 1rem),
|
|
2290
|
+
transparent 100%
|
|
2291
|
+
);
|
|
2130
2292
|
}
|
|
2131
2293
|
|
|
2132
2294
|
.fd-ai-fm-suggestion {
|
|
@@ -2136,15 +2298,16 @@ html.dark pre.shiki {
|
|
|
2136
2298
|
font-size: 12px;
|
|
2137
2299
|
font-family: inherit;
|
|
2138
2300
|
border-radius: 9999px;
|
|
2139
|
-
border: 1px solid
|
|
2140
|
-
|
|
2301
|
+
border: 1px solid
|
|
2302
|
+
color-mix(in srgb, var(--color-fd-border, rgba(255, 255, 255, 0.1)) 50%, transparent);
|
|
2303
|
+
background: color-mix(in srgb, var(--color-fd-muted, rgba(255, 255, 255, 0.04)) 30%, transparent);
|
|
2141
2304
|
color: var(--color-fd-muted-foreground, #71717a);
|
|
2142
2305
|
cursor: pointer;
|
|
2143
2306
|
transition: all 200ms;
|
|
2144
2307
|
}
|
|
2145
2308
|
|
|
2146
2309
|
.fd-ai-fm-suggestion:hover {
|
|
2147
|
-
background: color-mix(in srgb, var(--color-fd-muted, rgba(255,255,255,0.04)) 50%, transparent);
|
|
2310
|
+
background: color-mix(in srgb, var(--color-fd-muted, rgba(255, 255, 255, 0.04)) 50%, transparent);
|
|
2148
2311
|
color: var(--color-fd-foreground, #e4e4e7);
|
|
2149
2312
|
border-color: var(--color-fd-border, rgba(255, 255, 255, 0.1));
|
|
2150
2313
|
}
|
|
@@ -2157,7 +2320,11 @@ html.dark pre.shiki {
|
|
|
2157
2320
|
gap: 4px;
|
|
2158
2321
|
padding: 8px 16px;
|
|
2159
2322
|
border-top: 1px solid var(--color-fd-border, rgba(255, 255, 255, 0.06));
|
|
2160
|
-
background: color-mix(
|
|
2323
|
+
background: color-mix(
|
|
2324
|
+
in srgb,
|
|
2325
|
+
var(--color-fd-accent, rgba(255, 255, 255, 0.03)) 40%,
|
|
2326
|
+
transparent
|
|
2327
|
+
);
|
|
2161
2328
|
font-size: 12px;
|
|
2162
2329
|
color: var(--color-fd-muted-foreground, #71717a);
|
|
2163
2330
|
}
|
|
@@ -2207,7 +2374,10 @@ html.dark pre.shiki {
|
|
|
2207
2374
|
font-size: 14px;
|
|
2208
2375
|
cursor: pointer;
|
|
2209
2376
|
box-shadow: 0 1px 3px color-mix(in srgb, var(--color-fd-background, #000) 20%, transparent);
|
|
2210
|
-
transition:
|
|
2377
|
+
transition:
|
|
2378
|
+
transform 150ms,
|
|
2379
|
+
background 150ms,
|
|
2380
|
+
color 150ms;
|
|
2211
2381
|
animation: fd-ai-fade-in 300ms ease-out;
|
|
2212
2382
|
white-space: nowrap;
|
|
2213
2383
|
}
|
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 {
|