astro 5.1.1 → 5.1.3
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/dist/content/content-layer.js +27 -6
- package/dist/content/loaders/glob.js +23 -10
- package/dist/content/runtime.js +20 -9
- package/dist/content/utils.d.ts +3 -2
- package/dist/content/utils.js +9 -1
- package/dist/content/vite-plugin-content-virtual-mod.js +5 -1
- package/dist/core/app/index.js +2 -2
- package/dist/core/build/generate.js +9 -7
- package/dist/core/build/index.js +3 -2
- package/dist/core/build/static-build.js +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/create-vite.js +1 -1
- package/dist/core/dev/dev.js +20 -18
- package/dist/core/logger/core.d.ts +1 -1
- package/dist/core/messages.js +2 -2
- package/dist/core/render/params-and-props.js +0 -1
- package/dist/core/routing/manifest/create.js +1 -1
- package/dist/core/server-islands/endpoint.js +1 -0
- package/dist/core/server-islands/vite-plugin-server-islands.d.ts +2 -4
- package/dist/core/server-islands/vite-plugin-server-islands.js +20 -2
- package/dist/core/session.js +31 -24
- package/dist/core/sync/index.js +4 -3
- package/dist/core/util.js +2 -1
- package/dist/runtime/client/dev-toolbar/apps/audit/index.d.ts +1 -1
- package/dist/runtime/client/dev-toolbar/apps/audit/index.js +1 -1
- package/dist/runtime/client/dev-toolbar/apps/xray.d.ts +1 -1
- package/dist/runtime/client/dev-toolbar/apps/xray.js +1 -1
- package/dist/runtime/client/dev-toolbar/ui-library/icons.d.ts +4 -4
- package/dist/runtime/client/dev-toolbar/ui-library/icons.js +4 -4
- package/dist/runtime/server/render/server-islands.js +4 -1
- package/dist/types/astro.d.ts +1 -1
- package/package.json +3 -3
- package/types/content.d.ts +13 -11
|
@@ -99,10 +99,31 @@ class ContentLayer {
|
|
|
99
99
|
return this.#queue.add(() => this.#doSync(options));
|
|
100
100
|
}
|
|
101
101
|
async #doSync(options) {
|
|
102
|
-
|
|
102
|
+
let contentConfig = globalContentConfigObserver.get();
|
|
103
103
|
const logger = this.#logger.forkIntegrationLogger("content");
|
|
104
|
+
if (contentConfig?.status === "loading") {
|
|
105
|
+
contentConfig = await Promise.race([
|
|
106
|
+
new Promise((resolve) => {
|
|
107
|
+
const unsub = globalContentConfigObserver.subscribe((ctx) => {
|
|
108
|
+
unsub();
|
|
109
|
+
resolve(ctx);
|
|
110
|
+
});
|
|
111
|
+
}),
|
|
112
|
+
new Promise(
|
|
113
|
+
(resolve) => setTimeout(
|
|
114
|
+
() => resolve({ status: "error", error: new Error("Content config loading timed out") }),
|
|
115
|
+
5e3
|
|
116
|
+
)
|
|
117
|
+
)
|
|
118
|
+
]);
|
|
119
|
+
}
|
|
120
|
+
if (contentConfig?.status === "error") {
|
|
121
|
+
logger.error(`Error loading content config. Skipping sync.
|
|
122
|
+
${contentConfig.error.message}`);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
104
125
|
if (contentConfig?.status !== "loaded") {
|
|
105
|
-
logger.
|
|
126
|
+
logger.error(`Content config not loaded, skipping sync. Status was ${contentConfig?.status}`);
|
|
106
127
|
return;
|
|
107
128
|
}
|
|
108
129
|
logger.info("Syncing content");
|
|
@@ -123,11 +144,11 @@ class ContentLayer {
|
|
|
123
144
|
logger.info("Astro config changed");
|
|
124
145
|
shouldClear = true;
|
|
125
146
|
}
|
|
126
|
-
if (
|
|
147
|
+
if (previousConfigDigest && previousConfigDigest !== currentConfigDigest) {
|
|
127
148
|
logger.info("Content config changed");
|
|
128
149
|
shouldClear = true;
|
|
129
150
|
}
|
|
130
|
-
if (previousAstroVersion !== "5.1.
|
|
151
|
+
if (previousAstroVersion && previousAstroVersion !== "5.1.3") {
|
|
131
152
|
logger.info("Astro version changed");
|
|
132
153
|
shouldClear = true;
|
|
133
154
|
}
|
|
@@ -135,8 +156,8 @@ class ContentLayer {
|
|
|
135
156
|
logger.info("Clearing content store");
|
|
136
157
|
this.#store.clearAll();
|
|
137
158
|
}
|
|
138
|
-
if ("5.1.
|
|
139
|
-
await this.#store.metaStore().set("astro-version", "5.1.
|
|
159
|
+
if ("5.1.3") {
|
|
160
|
+
await this.#store.metaStore().set("astro-version", "5.1.3");
|
|
140
161
|
}
|
|
141
162
|
if (currentConfigDigest) {
|
|
142
163
|
await this.#store.metaStore().set("content-config-digest", currentConfigDigest);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { promises as fs } from "node:fs";
|
|
1
|
+
import { promises as fs, existsSync } from "node:fs";
|
|
2
|
+
import { relative } from "node:path";
|
|
2
3
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
3
4
|
import fastGlob from "fast-glob";
|
|
4
5
|
import { bold, green } from "kleur/colors";
|
|
@@ -75,7 +76,7 @@ function glob(globOptions) {
|
|
|
75
76
|
untouchedEntries.delete(id);
|
|
76
77
|
const existingEntry = store.get(id);
|
|
77
78
|
const digest = generateDigest(contents);
|
|
78
|
-
const
|
|
79
|
+
const filePath2 = fileURLToPath(fileUrl);
|
|
79
80
|
if (existingEntry && existingEntry.digest === digest && existingEntry.filePath) {
|
|
80
81
|
if (existingEntry.deferredRender) {
|
|
81
82
|
store.addModuleImport(existingEntry.filePath);
|
|
@@ -83,14 +84,14 @@ function glob(globOptions) {
|
|
|
83
84
|
if (existingEntry.assetImports?.length) {
|
|
84
85
|
store.addAssetImports(existingEntry.assetImports, existingEntry.filePath);
|
|
85
86
|
}
|
|
86
|
-
fileToIdMap.set(
|
|
87
|
+
fileToIdMap.set(filePath2, id);
|
|
87
88
|
return;
|
|
88
89
|
}
|
|
89
|
-
const
|
|
90
|
+
const relativePath2 = posixRelative(fileURLToPath(config.root), filePath2);
|
|
90
91
|
const parsedData = await parseData({
|
|
91
92
|
id,
|
|
92
93
|
data,
|
|
93
|
-
filePath
|
|
94
|
+
filePath: filePath2
|
|
94
95
|
});
|
|
95
96
|
if (entryType.getRenderFunction) {
|
|
96
97
|
if (isLegacy && data.layout) {
|
|
@@ -109,7 +110,7 @@ function glob(globOptions) {
|
|
|
109
110
|
id,
|
|
110
111
|
data,
|
|
111
112
|
body,
|
|
112
|
-
filePath,
|
|
113
|
+
filePath: filePath2,
|
|
113
114
|
digest
|
|
114
115
|
});
|
|
115
116
|
} catch (error) {
|
|
@@ -119,7 +120,7 @@ function glob(globOptions) {
|
|
|
119
120
|
id,
|
|
120
121
|
data: parsedData,
|
|
121
122
|
body,
|
|
122
|
-
filePath:
|
|
123
|
+
filePath: relativePath2,
|
|
123
124
|
digest,
|
|
124
125
|
rendered,
|
|
125
126
|
assetImports: rendered?.metadata?.imagePaths,
|
|
@@ -130,23 +131,35 @@ function glob(globOptions) {
|
|
|
130
131
|
id,
|
|
131
132
|
data: parsedData,
|
|
132
133
|
body,
|
|
133
|
-
filePath:
|
|
134
|
+
filePath: relativePath2,
|
|
134
135
|
digest,
|
|
135
136
|
deferredRender: true,
|
|
136
137
|
legacyId
|
|
137
138
|
});
|
|
138
139
|
} else {
|
|
139
|
-
store.set({ id, data: parsedData, body, filePath:
|
|
140
|
+
store.set({ id, data: parsedData, body, filePath: relativePath2, digest, legacyId });
|
|
140
141
|
}
|
|
141
|
-
fileToIdMap.set(
|
|
142
|
+
fileToIdMap.set(filePath2, id);
|
|
142
143
|
}
|
|
143
144
|
const baseDir = globOptions.base ? new URL(globOptions.base, config.root) : config.root;
|
|
144
145
|
if (!baseDir.pathname.endsWith("/")) {
|
|
145
146
|
baseDir.pathname = `${baseDir.pathname}/`;
|
|
146
147
|
}
|
|
148
|
+
const filePath = fileURLToPath(baseDir);
|
|
149
|
+
const relativePath = relative(fileURLToPath(config.root), filePath);
|
|
150
|
+
const exists = existsSync(baseDir);
|
|
151
|
+
if (!exists) {
|
|
152
|
+
logger.warn(`The base directory "${fileURLToPath(baseDir)}" does not exist.`);
|
|
153
|
+
}
|
|
147
154
|
const files = await fastGlob(globOptions.pattern, {
|
|
148
155
|
cwd: fileURLToPath(baseDir)
|
|
149
156
|
});
|
|
157
|
+
if (exists && files.length === 0) {
|
|
158
|
+
logger.warn(
|
|
159
|
+
`No files found matching "${globOptions.pattern}" in directory "${relativePath}"`
|
|
160
|
+
);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
150
163
|
function configForFile(file) {
|
|
151
164
|
const ext = file.split(".").at(-1);
|
|
152
165
|
if (!ext) {
|
package/dist/content/runtime.js
CHANGED
|
@@ -70,22 +70,25 @@ function createGetCollection({
|
|
|
70
70
|
const result = [];
|
|
71
71
|
for (const rawEntry of store.values(collection)) {
|
|
72
72
|
const data = updateImageReferencesInData(rawEntry.data, rawEntry.filePath, imageAssetMap);
|
|
73
|
-
|
|
73
|
+
let entry = {
|
|
74
74
|
...rawEntry,
|
|
75
75
|
data,
|
|
76
76
|
collection
|
|
77
77
|
};
|
|
78
|
+
if (entry.legacyId) {
|
|
79
|
+
entry = emulateLegacyEntry(entry);
|
|
80
|
+
}
|
|
78
81
|
if (hasFilter && !filter(entry)) {
|
|
79
82
|
continue;
|
|
80
83
|
}
|
|
81
|
-
result.push(entry
|
|
84
|
+
result.push(entry);
|
|
82
85
|
}
|
|
83
86
|
return result;
|
|
84
87
|
} else {
|
|
85
88
|
console.warn(
|
|
86
89
|
`The collection ${JSON.stringify(
|
|
87
90
|
collection
|
|
88
|
-
)} does not exist or is empty.
|
|
91
|
+
)} does not exist or is empty. Please check your content config file for errors.`
|
|
89
92
|
);
|
|
90
93
|
return [];
|
|
91
94
|
}
|
|
@@ -200,13 +203,12 @@ function createGetDataEntryById({
|
|
|
200
203
|
};
|
|
201
204
|
};
|
|
202
205
|
}
|
|
203
|
-
function emulateLegacyEntry(entry) {
|
|
206
|
+
function emulateLegacyEntry({ legacyId, ...entry }) {
|
|
204
207
|
const legacyEntry = {
|
|
205
208
|
...entry,
|
|
206
|
-
id:
|
|
209
|
+
id: legacyId,
|
|
207
210
|
slug: entry.id
|
|
208
211
|
};
|
|
209
|
-
delete legacyEntry.legacyId;
|
|
210
212
|
return {
|
|
211
213
|
...legacyEntry,
|
|
212
214
|
// Define separately so the render function isn't included in the object passed to `renderEntry()`
|
|
@@ -242,7 +244,7 @@ function createGetEntry({
|
|
|
242
244
|
const { default: imageAssetMap } = await import("astro:asset-imports");
|
|
243
245
|
entry2.data = updateImageReferencesInData(entry2.data, entry2.filePath, imageAssetMap);
|
|
244
246
|
if (entry2.legacyId) {
|
|
245
|
-
return { ...
|
|
247
|
+
return emulateLegacyEntry({ ...entry2, collection });
|
|
246
248
|
}
|
|
247
249
|
return {
|
|
248
250
|
...entry2,
|
|
@@ -442,6 +444,8 @@ async function render({
|
|
|
442
444
|
}
|
|
443
445
|
}
|
|
444
446
|
function createReference({ lookupMap }) {
|
|
447
|
+
let store = null;
|
|
448
|
+
globalDataStore.get().then((s) => store = s);
|
|
445
449
|
return function reference(collection) {
|
|
446
450
|
return z.union([
|
|
447
451
|
z.string(),
|
|
@@ -454,9 +458,16 @@ function createReference({ lookupMap }) {
|
|
|
454
458
|
collection: z.string()
|
|
455
459
|
})
|
|
456
460
|
]).transform(
|
|
457
|
-
|
|
461
|
+
(lookup, ctx) => {
|
|
462
|
+
if (!store) {
|
|
463
|
+
ctx.addIssue({
|
|
464
|
+
code: ZodIssueCode.custom,
|
|
465
|
+
message: `**${ctx.path.join(".")}:** Reference to ${collection} could not be resolved: store not available.
|
|
466
|
+
This is an Astro bug, so please file an issue at https://github.com/withastro/astro/issues.`
|
|
467
|
+
});
|
|
468
|
+
return;
|
|
469
|
+
}
|
|
458
470
|
const flattenedErrorPath = ctx.path.join(".");
|
|
459
|
-
const store = await globalDataStore.get();
|
|
460
471
|
const collectionIsInStore = store.hasCollection(collection);
|
|
461
472
|
if (typeof lookup === "object") {
|
|
462
473
|
if (lookup.collection !== collection) {
|
package/dist/content/utils.d.ts
CHANGED
|
@@ -506,7 +506,7 @@ export declare function getContentEntryIdAndSlug({ entry, contentDir, collection
|
|
|
506
506
|
id: string;
|
|
507
507
|
slug: string;
|
|
508
508
|
};
|
|
509
|
-
export declare function getEntryType(entryPath: string, paths: Pick<ContentPaths, 'config' | 'contentDir'>, contentFileExts: string[], dataFileExts: string[]): 'content' | 'data' | 'config' | 'ignored';
|
|
509
|
+
export declare function getEntryType(entryPath: string, paths: Pick<ContentPaths, 'config' | 'contentDir' | 'root'>, contentFileExts: string[], dataFileExts: string[]): 'content' | 'data' | 'config' | 'ignored';
|
|
510
510
|
export declare function safeParseFrontmatter(source: string, id?: string): import("@astrojs/markdown-remark").ParseFrontmatterResult;
|
|
511
511
|
/**
|
|
512
512
|
* The content config is loaded separately from other `src/` files.
|
|
@@ -549,6 +549,7 @@ type Observable<C> = {
|
|
|
549
549
|
export type ContentObservable = Observable<ContentCtx>;
|
|
550
550
|
export declare function contentObservable(initialCtx: ContentCtx): ContentObservable;
|
|
551
551
|
export type ContentPaths = {
|
|
552
|
+
root: URL;
|
|
552
553
|
contentDir: URL;
|
|
553
554
|
assetsDir: URL;
|
|
554
555
|
typesTemplate: URL;
|
|
@@ -558,7 +559,7 @@ export type ContentPaths = {
|
|
|
558
559
|
url: URL;
|
|
559
560
|
};
|
|
560
561
|
};
|
|
561
|
-
export declare function getContentPaths({ srcDir, legacy }: Pick<AstroConfig, 'root' | 'srcDir' | 'legacy'>, fs?: typeof fsMod): ContentPaths;
|
|
562
|
+
export declare function getContentPaths({ srcDir, legacy, root }: Pick<AstroConfig, 'root' | 'srcDir' | 'legacy'>, fs?: typeof fsMod): ContentPaths;
|
|
562
563
|
/**
|
|
563
564
|
* Check for slug in content entry frontmatter and validate the type,
|
|
564
565
|
* falling back to the `generatedSlug` if none is found.
|
package/dist/content/utils.js
CHANGED
|
@@ -295,13 +295,20 @@ function getRelativeEntryPath(entry, collection, contentDir) {
|
|
|
295
295
|
const relativeToCollection = path.relative(collection, relativeToContent);
|
|
296
296
|
return relativeToCollection;
|
|
297
297
|
}
|
|
298
|
+
function isParentDirectory(parent, child) {
|
|
299
|
+
const relative = path.relative(fileURLToPath(parent), fileURLToPath(child));
|
|
300
|
+
return !relative.startsWith("..") && !path.isAbsolute(relative);
|
|
301
|
+
}
|
|
298
302
|
function getEntryType(entryPath, paths, contentFileExts, dataFileExts) {
|
|
299
303
|
const { ext } = path.parse(entryPath);
|
|
300
304
|
const fileUrl = pathToFileURL(entryPath);
|
|
305
|
+
const dotAstroDir = new URL("./.astro/", paths.root);
|
|
301
306
|
if (fileUrl.href === paths.config.url.href) {
|
|
302
307
|
return "config";
|
|
303
308
|
} else if (hasUnderscoreBelowContentDirectoryPath(fileUrl, paths.contentDir)) {
|
|
304
309
|
return "ignored";
|
|
310
|
+
} else if (isParentDirectory(dotAstroDir, fileUrl)) {
|
|
311
|
+
return "ignored";
|
|
305
312
|
} else if (contentFileExts.includes(ext)) {
|
|
306
313
|
return "content";
|
|
307
314
|
} else if (dataFileExts.includes(ext)) {
|
|
@@ -509,10 +516,11 @@ function contentObservable(initialCtx) {
|
|
|
509
516
|
subscribe
|
|
510
517
|
};
|
|
511
518
|
}
|
|
512
|
-
function getContentPaths({ srcDir, legacy }, fs = fsMod) {
|
|
519
|
+
function getContentPaths({ srcDir, legacy, root }, fs = fsMod) {
|
|
513
520
|
const configStats = search(fs, srcDir, legacy?.collections);
|
|
514
521
|
const pkgBase = new URL("../../", import.meta.url);
|
|
515
522
|
return {
|
|
523
|
+
root: new URL("./", root),
|
|
516
524
|
contentDir: new URL("./content/", srcDir),
|
|
517
525
|
assetsDir: new URL("./assets/", srcDir),
|
|
518
526
|
typesTemplate: new URL("templates/content/types.d.ts", pkgBase),
|
|
@@ -41,12 +41,16 @@ function astroContentVirtualModPlugin({
|
|
|
41
41
|
fs
|
|
42
42
|
}) {
|
|
43
43
|
let dataStoreFile;
|
|
44
|
+
let devServer;
|
|
44
45
|
return {
|
|
45
46
|
name: "astro-content-virtual-mod-plugin",
|
|
46
47
|
enforce: "pre",
|
|
47
48
|
config(_, env) {
|
|
48
49
|
dataStoreFile = getDataStoreFile(settings, env.command === "serve");
|
|
49
50
|
},
|
|
51
|
+
buildStart() {
|
|
52
|
+
devServer?.watcher.add(fileURLToPath(dataStoreFile));
|
|
53
|
+
},
|
|
50
54
|
async resolveId(id) {
|
|
51
55
|
if (id === VIRTUAL_MODULE_ID) {
|
|
52
56
|
return RESOLVED_VIRTUAL_MODULE_ID;
|
|
@@ -137,8 +141,8 @@ function astroContentVirtualModPlugin({
|
|
|
137
141
|
}
|
|
138
142
|
},
|
|
139
143
|
configureServer(server) {
|
|
144
|
+
devServer = server;
|
|
140
145
|
const dataStorePath = fileURLToPath(dataStoreFile);
|
|
141
|
-
server.watcher.add(dataStorePath);
|
|
142
146
|
function invalidateDataStore() {
|
|
143
147
|
const module = server.moduleGraph.getModuleById(RESOLVED_DATA_STORE_VIRTUAL_ID);
|
|
144
148
|
if (module) {
|
package/dist/core/app/index.js
CHANGED
|
@@ -207,7 +207,7 @@ class App {
|
|
|
207
207
|
this.#logger.error(null, err.stack || err.message || String(err));
|
|
208
208
|
return this.#renderError(request, { locals, status: 500, error: err, clientAddress });
|
|
209
209
|
} finally {
|
|
210
|
-
session?.[PERSIST_SYMBOL]();
|
|
210
|
+
await session?.[PERSIST_SYMBOL]();
|
|
211
211
|
}
|
|
212
212
|
if (REROUTABLE_STATUS_CODES.includes(response.status) && response.headers.get(REROUTE_DIRECTIVE_HEADER) !== "no") {
|
|
213
213
|
return this.#renderError(request, {
|
|
@@ -302,7 +302,7 @@ class App {
|
|
|
302
302
|
});
|
|
303
303
|
}
|
|
304
304
|
} finally {
|
|
305
|
-
session?.[PERSIST_SYMBOL]();
|
|
305
|
+
await session?.[PERSIST_SYMBOL]();
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
const response = this.#mergeResponses(new Response(null, { status }), originalResponse);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import os from "node:os";
|
|
3
|
-
import { bgGreen, black, blue, bold, dim, green, magenta, red } from "kleur/colors";
|
|
3
|
+
import { bgGreen, black, blue, bold, dim, green, magenta, red, yellow } from "kleur/colors";
|
|
4
4
|
import PLimit from "p-limit";
|
|
5
5
|
import PQueue from "p-queue";
|
|
6
6
|
import {
|
|
@@ -133,14 +133,15 @@ async function generatePage(pageData, ssrEntry, builtPaths, pipeline) {
|
|
|
133
133
|
if (!isConcurrent) {
|
|
134
134
|
logger.info(null, ` ${blue(lineIcon)} ${dim(filePath)}`, false);
|
|
135
135
|
}
|
|
136
|
-
await generatePath(path, pipeline, generationOptions, route);
|
|
136
|
+
const created = await generatePath(path, pipeline, generationOptions, route);
|
|
137
137
|
const timeEnd = performance.now();
|
|
138
138
|
const isSlow = timeEnd - timeStart > THRESHOLD_SLOW_RENDER_TIME_MS;
|
|
139
139
|
const timeIncrease = (isSlow ? red : dim)(`(+${getTimeStat(timeStart, timeEnd)})`);
|
|
140
|
+
const notCreated = created === false ? yellow("(file not created, response body was empty)") : "";
|
|
140
141
|
if (isConcurrent) {
|
|
141
|
-
logger.info(null, ` ${blue(lineIcon)} ${dim(filePath)} ${timeIncrease}`);
|
|
142
|
+
logger.info(null, ` ${blue(lineIcon)} ${dim(filePath)} ${timeIncrease} ${notCreated}`);
|
|
142
143
|
} else {
|
|
143
|
-
logger.info("SKIP_FORMAT", ` ${timeIncrease}`);
|
|
144
|
+
logger.info("SKIP_FORMAT", ` ${timeIncrease} ${notCreated}`);
|
|
144
145
|
}
|
|
145
146
|
}
|
|
146
147
|
for (const route of eachRouteInRouteData(pageData)) {
|
|
@@ -281,7 +282,7 @@ async function generatePath(pathname, pipeline, gopts, route) {
|
|
|
281
282
|
// always be rendered
|
|
282
283
|
route.pathname !== "/" && // Check if there is a translated page with the same path
|
|
283
284
|
Object.values(options.allPages).some((val) => val.route.pattern.test(pathname))) {
|
|
284
|
-
return;
|
|
285
|
+
return void 0;
|
|
285
286
|
}
|
|
286
287
|
const url = getUrlForPath(
|
|
287
288
|
pathname,
|
|
@@ -317,7 +318,7 @@ async function generatePath(pathname, pipeline, gopts, route) {
|
|
|
317
318
|
}
|
|
318
319
|
if (response.status >= 300 && response.status < 400) {
|
|
319
320
|
if (routeIsRedirect(route) && !config.build.redirects) {
|
|
320
|
-
return;
|
|
321
|
+
return void 0;
|
|
321
322
|
}
|
|
322
323
|
const locationSite = getRedirectLocationOrThrow(response.headers);
|
|
323
324
|
const siteURL = config.site;
|
|
@@ -331,7 +332,7 @@ async function generatePath(pathname, pipeline, gopts, route) {
|
|
|
331
332
|
route.redirect = location.toString();
|
|
332
333
|
}
|
|
333
334
|
} else {
|
|
334
|
-
if (!response.body) return;
|
|
335
|
+
if (!response.body) return false;
|
|
335
336
|
body = Buffer.from(await response.arrayBuffer());
|
|
336
337
|
}
|
|
337
338
|
const encodedPath = encodeURI(pathname);
|
|
@@ -344,6 +345,7 @@ async function generatePath(pathname, pipeline, gopts, route) {
|
|
|
344
345
|
}
|
|
345
346
|
await fs.promises.mkdir(outFolder, { recursive: true });
|
|
346
347
|
await fs.promises.writeFile(outFile, body);
|
|
348
|
+
return true;
|
|
347
349
|
}
|
|
348
350
|
function getPrettyRouteName(route) {
|
|
349
351
|
if (isRelativePath(route.component)) {
|
package/dist/core/build/index.js
CHANGED
|
@@ -19,6 +19,7 @@ import { AstroError, AstroErrorData } from "../errors/index.js";
|
|
|
19
19
|
import { levels, timerMessage } from "../logger/core.js";
|
|
20
20
|
import { apply as applyPolyfill } from "../polyfill.js";
|
|
21
21
|
import { createRouteManifest } from "../routing/index.js";
|
|
22
|
+
import { getServerIslandRouteData } from "../server-islands/endpoint.js";
|
|
22
23
|
import { clearContentLayerCache } from "../sync/index.js";
|
|
23
24
|
import { ensureProcessNodeEnv } from "../util.js";
|
|
24
25
|
import { collectPagesData } from "./page-data.js";
|
|
@@ -106,7 +107,7 @@ class AstroBuilder {
|
|
|
106
107
|
async build({ viteConfig }) {
|
|
107
108
|
await runHookBuildStart({ config: this.settings.config, logging: this.logger });
|
|
108
109
|
this.validateConfig();
|
|
109
|
-
this.logger.info("build", `output: ${blue('"' + this.settings.
|
|
110
|
+
this.logger.info("build", `output: ${blue('"' + this.settings.buildOutput + '"')}`);
|
|
110
111
|
this.logger.info("build", `directory: ${blue(fileURLToPath(this.settings.config.outDir))}`);
|
|
111
112
|
if (this.settings.adapter) {
|
|
112
113
|
this.logger.info("build", `adapter: ${green(this.settings.adapter.name)}`);
|
|
@@ -157,7 +158,7 @@ class AstroBuilder {
|
|
|
157
158
|
await runHookBuildDone({
|
|
158
159
|
settings: this.settings,
|
|
159
160
|
pages: pageNames,
|
|
160
|
-
routes: Object.values(allPages).flat().map((pageData) => pageData.route),
|
|
161
|
+
routes: Object.values(allPages).flat().map((pageData) => pageData.route).concat(hasServerIslands ? getServerIslandRouteData(this.settings.config) : []),
|
|
161
162
|
logging: this.logger
|
|
162
163
|
});
|
|
163
164
|
if (this.logger.level && levels[this.logger.level()] <= levels["info"]) {
|
|
@@ -43,7 +43,7 @@ async function viteBuild(opts) {
|
|
|
43
43
|
const container = createPluginContainer(opts, internals);
|
|
44
44
|
registerAllPlugins(container);
|
|
45
45
|
const ssrTime = performance.now();
|
|
46
|
-
opts.logger.info("build", `Building ${settings.
|
|
46
|
+
opts.logger.info("build", `Building ${settings.buildOutput} entrypoints...`);
|
|
47
47
|
const ssrOutput = await ssrBuild(opts, internals, pageInput, container);
|
|
48
48
|
opts.logger.info("build", green(`\u2713 Completed in ${getTimeStat(ssrTime, performance.now())}.`));
|
|
49
49
|
settings.timer.end("SSR build");
|
package/dist/core/constants.js
CHANGED
package/dist/core/create-vite.js
CHANGED
|
@@ -131,7 +131,7 @@ async function createVite(commandConfig, { settings, logger, mode, command, fs =
|
|
|
131
131
|
astroInternationalization({ settings }),
|
|
132
132
|
vitePluginActions({ fs, settings }),
|
|
133
133
|
vitePluginUserActions({ settings }),
|
|
134
|
-
vitePluginServerIslands({ settings }),
|
|
134
|
+
vitePluginServerIslands({ settings, logger }),
|
|
135
135
|
astroContainer(),
|
|
136
136
|
astroHmrReloadPlugin()
|
|
137
137
|
],
|
package/dist/core/dev/dev.js
CHANGED
|
@@ -22,7 +22,7 @@ async function dev(inlineConfig) {
|
|
|
22
22
|
await telemetry.record([]);
|
|
23
23
|
const restart = await createContainerWithAutomaticRestart({ inlineConfig, fs });
|
|
24
24
|
const logger = restart.container.logger;
|
|
25
|
-
const currentVersion = "5.1.
|
|
25
|
+
const currentVersion = "5.1.3";
|
|
26
26
|
const isPrerelease = currentVersion.includes("-");
|
|
27
27
|
if (!isPrerelease) {
|
|
28
28
|
try {
|
|
@@ -50,23 +50,6 @@ async function dev(inlineConfig) {
|
|
|
50
50
|
} catch {
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
const devServerAddressInfo = await startContainer(restart.container);
|
|
54
|
-
logger.info(
|
|
55
|
-
"SKIP_FORMAT",
|
|
56
|
-
msg.serverStart({
|
|
57
|
-
startupTime: performance.now() - devStart,
|
|
58
|
-
resolvedUrls: restart.container.viteServer.resolvedUrls || { local: [], network: [] },
|
|
59
|
-
host: restart.container.settings.config.server.host,
|
|
60
|
-
base: restart.container.settings.config.base
|
|
61
|
-
})
|
|
62
|
-
);
|
|
63
|
-
if (isPrerelease) {
|
|
64
|
-
logger.warn("SKIP_FORMAT", msg.prerelease({ currentVersion }));
|
|
65
|
-
}
|
|
66
|
-
if (restart.container.viteServer.config.server?.fs?.strict === false) {
|
|
67
|
-
logger.warn("SKIP_FORMAT", msg.fsStrictWarning());
|
|
68
|
-
}
|
|
69
|
-
await attachContentServerListeners(restart.container);
|
|
70
53
|
let store;
|
|
71
54
|
try {
|
|
72
55
|
const dataStoreFile = getDataStoreFile(restart.container.settings, true);
|
|
@@ -79,6 +62,7 @@ async function dev(inlineConfig) {
|
|
|
79
62
|
if (!store) {
|
|
80
63
|
store = new MutableDataStore();
|
|
81
64
|
}
|
|
65
|
+
await attachContentServerListeners(restart.container);
|
|
82
66
|
const config = globalContentConfigObserver.get();
|
|
83
67
|
if (config.status === "error") {
|
|
84
68
|
logger.error("content", config.error.message);
|
|
@@ -92,6 +76,24 @@ async function dev(inlineConfig) {
|
|
|
92
76
|
});
|
|
93
77
|
contentLayer.watchContentConfig();
|
|
94
78
|
await contentLayer.sync();
|
|
79
|
+
} else {
|
|
80
|
+
logger.warn("content", "Content config not loaded");
|
|
81
|
+
}
|
|
82
|
+
const devServerAddressInfo = await startContainer(restart.container);
|
|
83
|
+
logger.info(
|
|
84
|
+
"SKIP_FORMAT",
|
|
85
|
+
msg.serverStart({
|
|
86
|
+
startupTime: performance.now() - devStart,
|
|
87
|
+
resolvedUrls: restart.container.viteServer.resolvedUrls || { local: [], network: [] },
|
|
88
|
+
host: restart.container.settings.config.server.host,
|
|
89
|
+
base: restart.container.settings.config.base
|
|
90
|
+
})
|
|
91
|
+
);
|
|
92
|
+
if (isPrerelease) {
|
|
93
|
+
logger.warn("SKIP_FORMAT", msg.prerelease({ currentVersion }));
|
|
94
|
+
}
|
|
95
|
+
if (restart.container.viteServer.config.server?.fs?.strict === false) {
|
|
96
|
+
logger.warn("SKIP_FORMAT", msg.fsStrictWarning());
|
|
95
97
|
}
|
|
96
98
|
logger.info(null, green("watching for file changes..."));
|
|
97
99
|
return {
|
|
@@ -7,7 +7,7 @@ export type LoggerLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
|
7
7
|
* rather than specific to a single command, function, use, etc. The label will be
|
|
8
8
|
* shown in the log message to the user, so it should be relevant.
|
|
9
9
|
*/
|
|
10
|
-
export type LoggerLabel = 'add' | 'build' | 'check' | 'config' | 'content' | 'crypto' | 'deprecated' | 'markdown' | 'router' | 'types' | 'vite' | 'watch' | 'middleware' | 'preferences' | 'redirects' | 'sync' | 'toolbar' | 'assets' | 'env' | 'update' | 'adapter' | 'SKIP_FORMAT';
|
|
10
|
+
export type LoggerLabel = 'add' | 'build' | 'check' | 'config' | 'content' | 'crypto' | 'deprecated' | 'markdown' | 'router' | 'types' | 'vite' | 'watch' | 'middleware' | 'preferences' | 'redirects' | 'sync' | 'toolbar' | 'assets' | 'env' | 'update' | 'adapter' | 'islands' | 'SKIP_FORMAT';
|
|
11
11
|
export interface LogOptions {
|
|
12
12
|
dest: LogWritable<LogMessage>;
|
|
13
13
|
level: LoggerLevel;
|
package/dist/core/messages.js
CHANGED
|
@@ -38,7 +38,7 @@ function serverStart({
|
|
|
38
38
|
host,
|
|
39
39
|
base
|
|
40
40
|
}) {
|
|
41
|
-
const version = "5.1.
|
|
41
|
+
const version = "5.1.3";
|
|
42
42
|
const localPrefix = `${dim("\u2503")} Local `;
|
|
43
43
|
const networkPrefix = `${dim("\u2503")} Network `;
|
|
44
44
|
const emptyPrefix = " ".repeat(11);
|
|
@@ -276,7 +276,7 @@ function printHelp({
|
|
|
276
276
|
message.push(
|
|
277
277
|
linebreak(),
|
|
278
278
|
` ${bgGreen(black(` ${commandName} `))} ${green(
|
|
279
|
-
`v${"5.1.
|
|
279
|
+
`v${"5.1.3"}`
|
|
280
280
|
)} ${headline}`
|
|
281
281
|
);
|
|
282
282
|
}
|
|
@@ -19,7 +19,6 @@ async function getProps(opts) {
|
|
|
19
19
|
ssr: serverLike,
|
|
20
20
|
base
|
|
21
21
|
});
|
|
22
|
-
if (!staticPaths.length) return {};
|
|
23
22
|
const params = getParams(route, decodeURI(pathname));
|
|
24
23
|
const matchedStaticPath = findPathItemByKey(staticPaths, params, route, logger);
|
|
25
24
|
if (!matchedStaticPath && (serverLike ? route.prerender : true)) {
|
|
@@ -111,7 +111,7 @@ function createFileBasedRoutes({ settings, cwd, fsMod }, logger) {
|
|
|
111
111
|
const segment = isDir ? basename : name;
|
|
112
112
|
validateSegment(segment, file);
|
|
113
113
|
const parts = getParts(segment, file);
|
|
114
|
-
const isIndex = isDir ? false : basename.
|
|
114
|
+
const isIndex = isDir ? false : basename.substring(0, basename.lastIndexOf(".")) === "index";
|
|
115
115
|
const routeSuffix = basename.slice(basename.indexOf("."), -ext.length);
|
|
116
116
|
const isPage = validPageExtensions.has(ext);
|
|
117
117
|
items.push({
|
|
@@ -101,6 +101,7 @@ function createEndpoint(manifest) {
|
|
|
101
101
|
for (const prop in data.slots) {
|
|
102
102
|
slots[prop] = createSlotValueFromString(data.slots[prop]);
|
|
103
103
|
}
|
|
104
|
+
result.response.headers.set("X-Robots-Tag", "noindex");
|
|
104
105
|
if (isAstroComponentFactory(Component)) {
|
|
105
106
|
const ServerIsland = Component;
|
|
106
107
|
Component = function(...args) {
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { Plugin as VitePlugin } from 'vite';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AstroPluginOptions } from '../../types/astro.js';
|
|
3
3
|
export declare const VIRTUAL_ISLAND_MAP_ID = "@astro-server-islands";
|
|
4
4
|
export declare const RESOLVED_VIRTUAL_ISLAND_MAP_ID: string;
|
|
5
|
-
export declare function vitePluginServerIslands({ settings }:
|
|
6
|
-
settings: AstroSettings;
|
|
7
|
-
}): VitePlugin;
|
|
5
|
+
export declare function vitePluginServerIslands({ settings, logger }: AstroPluginOptions): VitePlugin;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import MagicString from "magic-string";
|
|
1
2
|
const VIRTUAL_ISLAND_MAP_ID = "@astro-server-islands";
|
|
2
3
|
const RESOLVED_VIRTUAL_ISLAND_MAP_ID = "\0" + VIRTUAL_ISLAND_MAP_ID;
|
|
3
4
|
const serverIslandPlaceholder = "'$$server-islands$$'";
|
|
4
|
-
function vitePluginServerIslands({ settings }) {
|
|
5
|
+
function vitePluginServerIslands({ settings, logger }) {
|
|
5
6
|
let command = "serve";
|
|
6
7
|
let viteServer = null;
|
|
7
8
|
const referenceIdMap = /* @__PURE__ */ new Map();
|
|
@@ -32,6 +33,12 @@ function vitePluginServerIslands({ settings }) {
|
|
|
32
33
|
if (astro?.serverComponents.length) {
|
|
33
34
|
for (const comp of astro.serverComponents) {
|
|
34
35
|
if (!settings.serverIslandNameMap.has(comp.resolvedPath)) {
|
|
36
|
+
if (!settings.adapter) {
|
|
37
|
+
logger.error(
|
|
38
|
+
"islands",
|
|
39
|
+
"You tried to render a server island without an adapter added to your project. An adapter is required to use the `server:defer` attribute on any component. Your project will fail to build unless you add an adapter or remove the attribute."
|
|
40
|
+
);
|
|
41
|
+
}
|
|
35
42
|
let name = comp.localName;
|
|
36
43
|
let idx = 1;
|
|
37
44
|
while (true) {
|
|
@@ -61,6 +68,12 @@ function vitePluginServerIslands({ settings }) {
|
|
|
61
68
|
},
|
|
62
69
|
renderChunk(code) {
|
|
63
70
|
if (code.includes(serverIslandPlaceholder)) {
|
|
71
|
+
if (referenceIdMap.size === 0) {
|
|
72
|
+
return {
|
|
73
|
+
code: code.replace(serverIslandPlaceholder, "new Map();"),
|
|
74
|
+
map: null
|
|
75
|
+
};
|
|
76
|
+
}
|
|
64
77
|
let mapSource = "new Map([";
|
|
65
78
|
for (let [resolvedPath, referenceId] of referenceIdMap) {
|
|
66
79
|
const fileName = this.getFileName(referenceId);
|
|
@@ -70,7 +83,12 @@ function vitePluginServerIslands({ settings }) {
|
|
|
70
83
|
}
|
|
71
84
|
mapSource += "\n]);";
|
|
72
85
|
referenceIdMap.clear();
|
|
73
|
-
|
|
86
|
+
const ms = new MagicString(code);
|
|
87
|
+
ms.replace(serverIslandPlaceholder, mapSource);
|
|
88
|
+
return {
|
|
89
|
+
code: ms.toString(),
|
|
90
|
+
map: ms.generateMap({ hires: "boundary" })
|
|
91
|
+
};
|
|
74
92
|
}
|
|
75
93
|
}
|
|
76
94
|
};
|
package/dist/core/session.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { stringify, unflatten } from "devalue";
|
|
1
|
+
import { stringify as rawStringify, unflatten as rawUnflatten } from "devalue";
|
|
2
2
|
import {
|
|
3
3
|
builtinDrivers,
|
|
4
4
|
createStorage
|
|
@@ -8,6 +8,17 @@ import { AstroError } from "./errors/index.js";
|
|
|
8
8
|
const PERSIST_SYMBOL = Symbol();
|
|
9
9
|
const DEFAULT_COOKIE_NAME = "astro-session";
|
|
10
10
|
const VALID_COOKIE_REGEX = /^[\w-]+$/;
|
|
11
|
+
const unflatten = (parsed, _) => {
|
|
12
|
+
return rawUnflatten(parsed, {
|
|
13
|
+
URL: (href) => new URL(href)
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
const stringify = (data, _) => {
|
|
17
|
+
return rawStringify(data, {
|
|
18
|
+
// Support URL objects
|
|
19
|
+
URL: (val) => val instanceof URL && val.href
|
|
20
|
+
});
|
|
21
|
+
};
|
|
11
22
|
class AstroSession {
|
|
12
23
|
// The cookies object.
|
|
13
24
|
#cookies;
|
|
@@ -41,12 +52,21 @@ class AstroSession {
|
|
|
41
52
|
...config
|
|
42
53
|
}) {
|
|
43
54
|
this.#cookies = cookies;
|
|
55
|
+
let cookieConfigObject;
|
|
44
56
|
if (typeof cookieConfig === "object") {
|
|
45
|
-
|
|
46
|
-
this.#cookieName =
|
|
57
|
+
const { name = DEFAULT_COOKIE_NAME, ...rest } = cookieConfig;
|
|
58
|
+
this.#cookieName = name;
|
|
59
|
+
cookieConfigObject = rest;
|
|
47
60
|
} else {
|
|
48
61
|
this.#cookieName = cookieConfig || DEFAULT_COOKIE_NAME;
|
|
49
62
|
}
|
|
63
|
+
this.#cookieConfig = {
|
|
64
|
+
sameSite: "lax",
|
|
65
|
+
secure: true,
|
|
66
|
+
path: "/",
|
|
67
|
+
...cookieConfigObject,
|
|
68
|
+
httpOnly: true
|
|
69
|
+
};
|
|
50
70
|
this.#config = config;
|
|
51
71
|
}
|
|
52
72
|
/**
|
|
@@ -99,8 +119,9 @@ class AstroSession {
|
|
|
99
119
|
message: "The session key was not provided."
|
|
100
120
|
});
|
|
101
121
|
}
|
|
122
|
+
let cloned;
|
|
102
123
|
try {
|
|
103
|
-
stringify(value);
|
|
124
|
+
cloned = unflatten(JSON.parse(stringify(value)));
|
|
104
125
|
} catch (err) {
|
|
105
126
|
throw new AstroError(
|
|
106
127
|
{
|
|
@@ -119,7 +140,7 @@ class AstroSession {
|
|
|
119
140
|
const lifetime = ttl ?? this.#config.ttl;
|
|
120
141
|
const expires = typeof lifetime === "number" ? Date.now() + lifetime * 1e3 : lifetime;
|
|
121
142
|
this.#data.set(key, {
|
|
122
|
-
data:
|
|
143
|
+
data: cloned,
|
|
123
144
|
expires
|
|
124
145
|
});
|
|
125
146
|
this.#dirty = true;
|
|
@@ -141,9 +162,8 @@ class AstroSession {
|
|
|
141
162
|
console.error("Failed to load session data during regeneration:", err);
|
|
142
163
|
}
|
|
143
164
|
const oldSessionId = this.#sessionID;
|
|
144
|
-
this.#sessionID =
|
|
165
|
+
this.#sessionID = crypto.randomUUID();
|
|
145
166
|
this.#data = data;
|
|
146
|
-
this.#ensureSessionID();
|
|
147
167
|
await this.#setCookie();
|
|
148
168
|
if (oldSessionId && this.#storage) {
|
|
149
169
|
this.#storage.removeItem(oldSessionId).catch((err) => {
|
|
@@ -165,10 +185,7 @@ class AstroSession {
|
|
|
165
185
|
const key = this.#ensureSessionID();
|
|
166
186
|
let serialized;
|
|
167
187
|
try {
|
|
168
|
-
serialized = stringify(data
|
|
169
|
-
// Support URL objects
|
|
170
|
-
URL: (val) => val instanceof URL && val.href
|
|
171
|
-
});
|
|
188
|
+
serialized = stringify(data);
|
|
172
189
|
} catch (err) {
|
|
173
190
|
throw new AstroError(
|
|
174
191
|
{
|
|
@@ -207,15 +224,8 @@ class AstroSession {
|
|
|
207
224
|
message: "Invalid cookie name. Cookie names can only contain letters, numbers, and dashes."
|
|
208
225
|
});
|
|
209
226
|
}
|
|
210
|
-
const cookieOptions = {
|
|
211
|
-
sameSite: "lax",
|
|
212
|
-
secure: true,
|
|
213
|
-
path: "/",
|
|
214
|
-
...this.#cookieConfig,
|
|
215
|
-
httpOnly: true
|
|
216
|
-
};
|
|
217
227
|
const value = this.#ensureSessionID();
|
|
218
|
-
this.#cookies.set(this.#cookieName, value,
|
|
228
|
+
this.#cookies.set(this.#cookieName, value, this.#cookieConfig);
|
|
219
229
|
}
|
|
220
230
|
/**
|
|
221
231
|
* Attempts to load the session data from storage, or creates a new data object if none exists.
|
|
@@ -232,10 +242,7 @@ class AstroSession {
|
|
|
232
242
|
return this.#data;
|
|
233
243
|
}
|
|
234
244
|
try {
|
|
235
|
-
const storedMap = unflatten(raw
|
|
236
|
-
// Revive URL objects
|
|
237
|
-
URL: (href) => new URL(href)
|
|
238
|
-
});
|
|
245
|
+
const storedMap = unflatten(raw);
|
|
239
246
|
if (!(storedMap instanceof Map)) {
|
|
240
247
|
await this.#destroySafe();
|
|
241
248
|
throw new AstroError({
|
|
@@ -280,7 +287,7 @@ class AstroSession {
|
|
|
280
287
|
this.#toDestroy.add(this.#sessionID);
|
|
281
288
|
}
|
|
282
289
|
if (this.#cookieName) {
|
|
283
|
-
this.#cookies.delete(this.#cookieName);
|
|
290
|
+
this.#cookies.delete(this.#cookieName, this.#cookieConfig);
|
|
284
291
|
}
|
|
285
292
|
this.#sessionID = void 0;
|
|
286
293
|
this.#data = void 0;
|
package/dist/core/sync/index.js
CHANGED
|
@@ -107,8 +107,7 @@ async function syncInternal({
|
|
|
107
107
|
if (paths.config.exists || // Legacy collections don't require a config file
|
|
108
108
|
settings.config.legacy?.collections && fs.existsSync(paths.contentDir)) {
|
|
109
109
|
settings.injectedTypes.push({
|
|
110
|
-
filename: CONTENT_TYPES_FILE
|
|
111
|
-
content: ""
|
|
110
|
+
filename: CONTENT_TYPES_FILE
|
|
112
111
|
});
|
|
113
112
|
}
|
|
114
113
|
}
|
|
@@ -125,7 +124,9 @@ function writeInjectedTypes(settings, fs) {
|
|
|
125
124
|
for (const { filename, content } of settings.injectedTypes) {
|
|
126
125
|
const filepath = fileURLToPath(new URL(filename, settings.dotAstroDir));
|
|
127
126
|
fs.mkdirSync(dirname(filepath), { recursive: true });
|
|
128
|
-
|
|
127
|
+
if (content) {
|
|
128
|
+
fs.writeFileSync(filepath, content, "utf-8");
|
|
129
|
+
}
|
|
129
130
|
references.push(normalizePath(relative(fileURLToPath(settings.dotAstroDir), filepath)));
|
|
130
131
|
}
|
|
131
132
|
const astroDtsContent = `${CLIENT_TYPES_REFERENCE}
|
package/dist/core/util.js
CHANGED
|
@@ -73,7 +73,8 @@ function isInPagesDir(file, config) {
|
|
|
73
73
|
function isInjectedRoute(file, settings) {
|
|
74
74
|
let fileURL = file.toString();
|
|
75
75
|
for (const route of settings.resolvedInjectedRoutes) {
|
|
76
|
-
if (route.resolvedEntryPoint && fileURL === route.resolvedEntryPoint.toString())
|
|
76
|
+
if (route.resolvedEntryPoint && removeQueryString(fileURL) === removeQueryString(route.resolvedEntryPoint.toString()))
|
|
77
|
+
return true;
|
|
77
78
|
}
|
|
78
79
|
return false;
|
|
79
80
|
}
|
|
@@ -9,7 +9,7 @@ export type Audit = {
|
|
|
9
9
|
declare const _default: {
|
|
10
10
|
id: string;
|
|
11
11
|
name: string;
|
|
12
|
-
icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 1 20 16\"><path fill=\"#fff\" d=\"M.6 2A1.1 1.1 0 0 1 1.7.9h16.6a1.1 1.1 0 1 1 0 2.2H1.6A1.1 1.1 0 0 1 .8 2Zm1.1 7.1h6a1.1 1.1 0 0 0 0-2.2h-6a1.1 1.1 0 0 0 0 2.2ZM9.3 13H1.8a1.1 1.1 0 1 0 0 2.2h7.5a1.1 1.1 0 1 0 0-2.2Zm11.3 1.9a1.1 1.1 0 0 1-1.5 0l-1.7-1.7a4.1 4.1 0 1 1 1.6-1.6l1.6 1.7a1.1 1.1 0 0 1 0 1.6Zm-5.3-3.4a1.9 1.9 0 1 0 0-3.8 1.9 1.9 0 0 0 0 3.8Z\"/></svg>";
|
|
12
|
+
icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 1 20 16\" aria-hidden=\"true\"><path fill=\"#fff\" d=\"M.6 2A1.1 1.1 0 0 1 1.7.9h16.6a1.1 1.1 0 1 1 0 2.2H1.6A1.1 1.1 0 0 1 .8 2Zm1.1 7.1h6a1.1 1.1 0 0 0 0-2.2h-6a1.1 1.1 0 0 0 0 2.2ZM9.3 13H1.8a1.1 1.1 0 1 0 0 2.2h7.5a1.1 1.1 0 1 0 0-2.2Zm11.3 1.9a1.1 1.1 0 0 1-1.5 0l-1.7-1.7a4.1 4.1 0 1 1 1.6-1.6l1.6 1.7a1.1 1.1 0 0 1 0 1.6Zm-5.3-3.4a1.9 1.9 0 1 0 0-3.8 1.9 1.9 0 0 0 0 3.8Z\"/></svg>";
|
|
13
13
|
init(canvas: ShadowRoot, eventTarget: import("../../helpers.js").ToolbarAppEventTarget): Promise<void>;
|
|
14
14
|
};
|
|
15
15
|
export default _default;
|
|
@@ -5,7 +5,7 @@ import { rulesCategories } from "./rules/index.js";
|
|
|
5
5
|
import { DevToolbarAuditListItem } from "./ui/audit-list-item.js";
|
|
6
6
|
import { DevToolbarAuditListWindow } from "./ui/audit-list-window.js";
|
|
7
7
|
import { createAuditUI } from "./ui/audit-ui.js";
|
|
8
|
-
const icon = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 1 20 16"><path fill="#fff" d="M.6 2A1.1 1.1 0 0 1 1.7.9h16.6a1.1 1.1 0 1 1 0 2.2H1.6A1.1 1.1 0 0 1 .8 2Zm1.1 7.1h6a1.1 1.1 0 0 0 0-2.2h-6a1.1 1.1 0 0 0 0 2.2ZM9.3 13H1.8a1.1 1.1 0 1 0 0 2.2h7.5a1.1 1.1 0 1 0 0-2.2Zm11.3 1.9a1.1 1.1 0 0 1-1.5 0l-1.7-1.7a4.1 4.1 0 1 1 1.6-1.6l1.6 1.7a1.1 1.1 0 0 1 0 1.6Zm-5.3-3.4a1.9 1.9 0 1 0 0-3.8 1.9 1.9 0 0 0 0 3.8Z"/></svg>';
|
|
8
|
+
const icon = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 1 20 16" aria-hidden="true"><path fill="#fff" d="M.6 2A1.1 1.1 0 0 1 1.7.9h16.6a1.1 1.1 0 1 1 0 2.2H1.6A1.1 1.1 0 0 1 .8 2Zm1.1 7.1h6a1.1 1.1 0 0 0 0-2.2h-6a1.1 1.1 0 0 0 0 2.2ZM9.3 13H1.8a1.1 1.1 0 1 0 0 2.2h7.5a1.1 1.1 0 1 0 0-2.2Zm11.3 1.9a1.1 1.1 0 0 1-1.5 0l-1.7-1.7a4.1 4.1 0 1 1 1.6-1.6l1.6 1.7a1.1 1.1 0 0 1 0 1.6Zm-5.3-3.4a1.9 1.9 0 1 0 0-3.8 1.9 1.9 0 0 0 0 3.8Z"/></svg>';
|
|
9
9
|
try {
|
|
10
10
|
customElements.define("astro-dev-toolbar-audit-window", DevToolbarAuditListWindow);
|
|
11
11
|
customElements.define("astro-dev-toolbar-audit-list-item", DevToolbarAuditListItem);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
2
|
id: string;
|
|
3
3
|
name: string;
|
|
4
|
-
icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"#fff\" d=\"M7.9 1.5v-.4a1.1 1.1 0 0 1 2.2 0v.4a1.1 1.1 0 1 1-2.2 0Zm-6.4 8.6a1.1 1.1 0 1 0 0-2.2h-.4a1.1 1.1 0 0 0 0 2.2h.4ZM12 3.7a1.1 1.1 0 0 0 1.4-.7l.4-1.1a1.1 1.1 0 0 0-2.1-.8l-.4 1.2a1.1 1.1 0 0 0 .7 1.4Zm-9.7 7.6-1.2.4a1.1 1.1 0 1 0 .8 2.1l1-.4a1.1 1.1 0 1 0-.6-2ZM20.8 17a1.9 1.9 0 0 1 0 2.6l-1.2 1.2a1.9 1.9 0 0 1-2.6 0l-4.3-4.2-1.6 3.6a1.9 1.9 0 0 1-1.7 1.2A1.9 1.9 0 0 1 7.5 20L2.7 5a1.9 1.9 0 0 1 2.4-2.4l15 5a1.9 1.9 0 0 1 .2 3.4l-3.7 1.6 4.2 4.3ZM19 18.3 14.6 14a1.9 1.9 0 0 1 .6-3l3.2-1.5L5.1 5.1l4.3 13.3 1.5-3.2a1.9 1.9 0 0 1 3-.6l4.4 4.4.7-.7Z\"/></svg>";
|
|
4
|
+
icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#fff\" d=\"M7.9 1.5v-.4a1.1 1.1 0 0 1 2.2 0v.4a1.1 1.1 0 1 1-2.2 0Zm-6.4 8.6a1.1 1.1 0 1 0 0-2.2h-.4a1.1 1.1 0 0 0 0 2.2h.4ZM12 3.7a1.1 1.1 0 0 0 1.4-.7l.4-1.1a1.1 1.1 0 0 0-2.1-.8l-.4 1.2a1.1 1.1 0 0 0 .7 1.4Zm-9.7 7.6-1.2.4a1.1 1.1 0 1 0 .8 2.1l1-.4a1.1 1.1 0 1 0-.6-2ZM20.8 17a1.9 1.9 0 0 1 0 2.6l-1.2 1.2a1.9 1.9 0 0 1-2.6 0l-4.3-4.2-1.6 3.6a1.9 1.9 0 0 1-1.7 1.2A1.9 1.9 0 0 1 7.5 20L2.7 5a1.9 1.9 0 0 1 2.4-2.4l15 5a1.9 1.9 0 0 1 .2 3.4l-3.7 1.6 4.2 4.3ZM19 18.3 14.6 14a1.9 1.9 0 0 1 .6-3l3.2-1.5L5.1 5.1l4.3 13.3 1.5-3.2a1.9 1.9 0 0 1 3-.6l4.4 4.4.7-.7Z\"/></svg>";
|
|
5
5
|
init(canvas: ShadowRoot, eventTarget: import("../helpers.js").ToolbarAppEventTarget): void;
|
|
6
6
|
};
|
|
7
7
|
export default _default;
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
createWindowElement,
|
|
11
11
|
synchronizePlacementOnUpdate
|
|
12
12
|
} from "./utils/window.js";
|
|
13
|
-
const icon = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#fff" d="M7.9 1.5v-.4a1.1 1.1 0 0 1 2.2 0v.4a1.1 1.1 0 1 1-2.2 0Zm-6.4 8.6a1.1 1.1 0 1 0 0-2.2h-.4a1.1 1.1 0 0 0 0 2.2h.4ZM12 3.7a1.1 1.1 0 0 0 1.4-.7l.4-1.1a1.1 1.1 0 0 0-2.1-.8l-.4 1.2a1.1 1.1 0 0 0 .7 1.4Zm-9.7 7.6-1.2.4a1.1 1.1 0 1 0 .8 2.1l1-.4a1.1 1.1 0 1 0-.6-2ZM20.8 17a1.9 1.9 0 0 1 0 2.6l-1.2 1.2a1.9 1.9 0 0 1-2.6 0l-4.3-4.2-1.6 3.6a1.9 1.9 0 0 1-1.7 1.2A1.9 1.9 0 0 1 7.5 20L2.7 5a1.9 1.9 0 0 1 2.4-2.4l15 5a1.9 1.9 0 0 1 .2 3.4l-3.7 1.6 4.2 4.3ZM19 18.3 14.6 14a1.9 1.9 0 0 1 .6-3l3.2-1.5L5.1 5.1l4.3 13.3 1.5-3.2a1.9 1.9 0 0 1 3-.6l4.4 4.4.7-.7Z"/></svg>';
|
|
13
|
+
const icon = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path fill="#fff" d="M7.9 1.5v-.4a1.1 1.1 0 0 1 2.2 0v.4a1.1 1.1 0 1 1-2.2 0Zm-6.4 8.6a1.1 1.1 0 1 0 0-2.2h-.4a1.1 1.1 0 0 0 0 2.2h.4ZM12 3.7a1.1 1.1 0 0 0 1.4-.7l.4-1.1a1.1 1.1 0 0 0-2.1-.8l-.4 1.2a1.1 1.1 0 0 0 .7 1.4Zm-9.7 7.6-1.2.4a1.1 1.1 0 1 0 .8 2.1l1-.4a1.1 1.1 0 1 0-.6-2ZM20.8 17a1.9 1.9 0 0 1 0 2.6l-1.2 1.2a1.9 1.9 0 0 1-2.6 0l-4.3-4.2-1.6 3.6a1.9 1.9 0 0 1-1.7 1.2A1.9 1.9 0 0 1 7.5 20L2.7 5a1.9 1.9 0 0 1 2.4-2.4l15 5a1.9 1.9 0 0 1 .2 3.4l-3.7 1.6 4.2 4.3ZM19 18.3 14.6 14a1.9 1.9 0 0 1 .6-3l3.2-1.5L5.1 5.1l4.3 13.3 1.5-3.2a1.9 1.9 0 0 1 3-.6l4.4 4.4.7-.7Z"/></svg>';
|
|
14
14
|
var xray_default = {
|
|
15
15
|
id: "astro:xray",
|
|
16
16
|
name: "Inspect",
|
|
@@ -4,13 +4,13 @@ export declare function isDefinedIcon(icon: Icon): icon is DefinedIcon;
|
|
|
4
4
|
export declare function getIconElement(name: DefinedIcon): SVGElement;
|
|
5
5
|
export declare function getIconElement(name: string & NonNullable<unknown>): undefined;
|
|
6
6
|
declare const icons: {
|
|
7
|
-
readonly 'astro:logo': "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 85 107\"><path fill=\"#fff\" d=\"M27.6 91.1c-4.8-4.4-6.3-13.7-4.2-20.4 3.5 4.2 8.3 5.6 13.3 6.3 7.7 1.2 15.3.8 22.5-2.8l2.5-1.4c.7 2 .9 3.9.6 5.9-.6 4.9-3 8.7-6.9 11.5-1.5 1.2-3.2 2.2-4.8 3.3-4.9 3.3-6.2 7.2-4.4 12.9l.2.6a13 13 0 0 1-5.7-5 13.8 13.8 0 0 1-2.2-7.4c0-1.3 0-2.7-.2-4-.5-3.1-2-4.6-4.8-4.7a5.5 5.5 0 0 0-5.7 4.6l-.2.6Z\"/><path fill=\"url(#a)\" d=\"M27.6 91.1c-4.8-4.4-6.3-13.7-4.2-20.4 3.5 4.2 8.3 5.6 13.3 6.3 7.7 1.2 15.3.8 22.5-2.8l2.5-1.4c.7 2 .9 3.9.6 5.9-.6 4.9-3 8.7-6.9 11.5-1.5 1.2-3.2 2.2-4.8 3.3-4.9 3.3-6.2 7.2-4.4 12.9l.2.6a13 13 0 0 1-5.7-5 13.8 13.8 0 0 1-2.2-7.4c0-1.3 0-2.7-.2-4-.5-3.1-2-4.6-4.8-4.7a5.5 5.5 0 0 0-5.7 4.6l-.2.6Z\"/><path fill=\"#fff\" d=\"M0 69.6s14.3-7 28.7-7l10.8-33.5c.4-1.6 1.6-2.7 3-2.7 1.2 0 2.4 1.1 2.8 2.7l10.9 33.5c17 0 28.6 7 28.6 7L60.5 3.2c-.7-2-2-3.2-3.5-3.2H27.8c-1.6 0-2.7 1.3-3.4 3.2L0 69.6Z\"/><defs><linearGradient id=\"a\" x1=\"22.5\" x2=\"69.1\" y1=\"107\" y2=\"84.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#D83333\"/><stop offset=\"1\" stop-color=\"#F041FF\"/></linearGradient></defs></svg>";
|
|
7
|
+
readonly 'astro:logo': "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 85 107\" aria-hidden=\"true\"><path fill=\"#fff\" d=\"M27.6 91.1c-4.8-4.4-6.3-13.7-4.2-20.4 3.5 4.2 8.3 5.6 13.3 6.3 7.7 1.2 15.3.8 22.5-2.8l2.5-1.4c.7 2 .9 3.9.6 5.9-.6 4.9-3 8.7-6.9 11.5-1.5 1.2-3.2 2.2-4.8 3.3-4.9 3.3-6.2 7.2-4.4 12.9l.2.6a13 13 0 0 1-5.7-5 13.8 13.8 0 0 1-2.2-7.4c0-1.3 0-2.7-.2-4-.5-3.1-2-4.6-4.8-4.7a5.5 5.5 0 0 0-5.7 4.6l-.2.6Z\"/><path fill=\"url(#a)\" d=\"M27.6 91.1c-4.8-4.4-6.3-13.7-4.2-20.4 3.5 4.2 8.3 5.6 13.3 6.3 7.7 1.2 15.3.8 22.5-2.8l2.5-1.4c.7 2 .9 3.9.6 5.9-.6 4.9-3 8.7-6.9 11.5-1.5 1.2-3.2 2.2-4.8 3.3-4.9 3.3-6.2 7.2-4.4 12.9l.2.6a13 13 0 0 1-5.7-5 13.8 13.8 0 0 1-2.2-7.4c0-1.3 0-2.7-.2-4-.5-3.1-2-4.6-4.8-4.7a5.5 5.5 0 0 0-5.7 4.6l-.2.6Z\"/><path fill=\"#fff\" d=\"M0 69.6s14.3-7 28.7-7l10.8-33.5c.4-1.6 1.6-2.7 3-2.7 1.2 0 2.4 1.1 2.8 2.7l10.9 33.5c17 0 28.6 7 28.6 7L60.5 3.2c-.7-2-2-3.2-3.5-3.2H27.8c-1.6 0-2.7 1.3-3.4 3.2L0 69.6Z\"/><defs><linearGradient id=\"a\" x1=\"22.5\" x2=\"69.1\" y1=\"107\" y2=\"84.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#D83333\"/><stop offset=\"1\" stop-color=\"#F041FF\"/></linearGradient></defs></svg>";
|
|
8
8
|
readonly warning: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" d=\"M8 .40625c-1.5019 0-2.97007.445366-4.21886 1.27978C2.53236 2.52044 1.55905 3.70642.984293 5.094.40954 6.48157.259159 8.00842.552165 9.48147.845172 10.9545 1.56841 12.3076 2.63041 13.3696c1.06201 1.062 2.41508 1.7852 3.88813 2.0782 1.47304.293 2.99989.1427 4.38746-.4321 1.3876-.5747 2.5736-1.5481 3.408-2.7968.8344-1.2488 1.2798-2.717 1.2798-4.2189-.0023-2.0133-.8031-3.9435-2.2267-5.36713C11.9435 1.20925 10.0133.408483 8 .40625ZM8 13.9062c-1.16814 0-2.31006-.3463-3.28133-.9953-.97128-.649-1.7283-1.5715-2.17533-2.6507-.44703-1.0792-.56399-2.26675-.3361-3.41245.22789-1.1457.79041-2.1981 1.61641-3.0241.82601-.826 1.8784-1.38852 3.0241-1.61641 1.1457-.2279 2.33325-.11093 3.41245.3361 1.0793.44703 2.0017 1.20405 2.6507 2.17532.649.97128.9954 2.11319.9954 3.28134-.0017 1.56592-.6245 3.0672-1.7318 4.1745S9.56592 13.9046 8 13.9062Zm-.84375-5.62495V4.625c0-.22378.0889-.43839.24713-.59662.15824-.15824.37285-.24713.59662-.24713.22378 0 .43839.08889.59662.24713.15824.15823.24713.37284.24713.59662v3.65625c0 .22378-.08889.43839-.24713.59662C8.43839 9.03611 8.22378 9.125 8 9.125c-.22377 0-.43838-.08889-.59662-.24713-.15823-.15823-.24713-.37284-.24713-.59662ZM9.125 11.0938c0 .2225-.06598.44-.18959.625-.12362.185-.29932.3292-.50489.4143-.20556.0852-.43176.1074-.64999.064-.21823-.0434-.41869-.1505-.57602-.3079-.15734-.1573-.26448-.3577-.30789-.576-.04341-.2182-.02113-.4444.06402-.65.08515-.2055.22934-.3812.41435-.5049.185-.1236.40251-.18955.62501-.18955.29837 0 .58452.11855.7955.32955.21098.2109.3295.4971.3295.7955Z\"/></svg>";
|
|
9
|
-
readonly 'arrow-down': "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 12 14\"><path fill=\"currentColor\" d=\"m11.0306 8.53063-4.5 4.49997c-.06968.0699-.15247.1254-.24364.1633-.09116.0378-.1889.0573-.28761.0573-.09871 0-.19645-.0195-.28762-.0573-.09116-.0379-.17395-.0934-.24363-.1633L.968098 8.53063c-.140896-.1409-.220051-.332-.220051-.53125 0-.19926.079155-.39036.220051-.53125.140892-.1409.331992-.22006.531252-.22006.19926 0 .39035.07916.53125.22006l3.21937 3.21937V1.5c0-.19891.07902-.38968.21967-.53033C5.61029.829018 5.80106.75 5.99997.75c.19891 0 .38968.079018.53033.21967.14065.14065.21967.33142.21967.53033v9.1875l3.21938-3.22c.14085-.1409.33195-.22005.53125-.22005.1993 0 .3904.07915.5312.22005.1409.1409.2201.33199.2201.53125s-.0792.39035-.2201.53125l-.0012.00063Z\"/></svg>";
|
|
10
|
-
readonly bug: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 25 24\"><path fill=\"currentColor\" d=\"M13.7916 8.25006c0-.29667.088-.58668.2528-.83335.1648-.24668.3991-.43893.6732-.55247.2741-.11353.5757-.14323.8667-.08536.2909.05788.5582.20074.768.41052s.3526.47706.4105.76803c.0579.29097.0282.59257-.0854.86666-.1135.27409-.3057.50836-.5524.67318-.2467.16482-.5367.25279-.8334.25279-.3978 0-.7793-.15803-1.0606-.43934-.2813-.2813-.4394-.66283-.4394-1.06066Zm-3.75-1.5c-.29665 0-.58666.08798-.83333.2528-.24667.16482-.43893.39909-.55246.67318-.11354.27409-.14324.57569-.08536.86666.05788.29097.20074.55824.41052.76802.20977.20978.47705.35264.76802.41052.29101.05788.59261.02817.86671-.08536.274-.11353.5083-.30579.6731-.55246.1649-.24668.2528-.53668.2528-.83336 0-.39782-.158-.77935-.4393-1.06066-.2813-.2813-.6628-.43934-1.0607-.43934Zm11.25 6.75004c.0003.6512-.0733 1.3003-.2193 1.935l1.7953.7837c.1354.0592.2578.1445.3603.2511.1024.1065.1829.2322.2368.3698.0539.1377.0801.2846.0772.4323-.0028.1478-.0348.2936-.094.429-.0592.1354-.1446.2579-.2511.3603-.1065.1025-.2322.1829-.3698.2368-.1377.0539-.2846.0802-.4323.0773-.1478-.0029-.2936-.0349-.429-.0941l-1.6875-.7359c-.7348 1.3818-1.8317 2.5377-3.1732 3.3437s-2.8771 1.2319-4.4421 1.2319c-1.5651 0-3.10061-.4259-4.44213-1.2319-1.34151-.806-2.43843-1.9619-3.17321-3.3437l-1.6875.7359c-.13542.0592-.28119.0912-.42896.0941-.14778.0029-.29468-.0234-.43232-.0773-.13763-.0539-.2633-.1343-.36984-.2368-.10653-.1024-.19185-.2249-.25106-.3603-.05922-.1354-.09119-.2812-.09407-.429-.00289-.1477.02336-.2946.07725-.4323.05389-.1376.13436-.2633.23681-.3698.10246-.1066.22489-.1919.36032-.2511l1.79531-.7837c-.14354-.635-.21462-1.2841-.21187-1.935v-.375h-1.875c-.29837 0-.58452-.1186-.7955-.3295-.21098-.211-.3295-.4972-.3295-.7955 0-.2984.11852-.5846.3295-.7955.21098-.211.49713-.3295.7955-.3295h1.875v-.375c-.00029-.65126.0733-1.30041.21937-1.93504l-1.79531-.78375c-.27351-.11959-.4883-.34294-.59713-.6209-.10883-.27797-.10278-.58778.01682-.86128.11959-.27351.34294-.4883.6209-.59713.27797-.10883.58778-.10278.86128.01681l1.6875.73594c.73478-1.38183 1.8317-2.53769 3.17321-3.34373 1.34152-.80604 2.87703-1.23187 4.44213-1.23187 1.565 0 3.1006.42583 4.4421 1.23187 1.3415.80604 2.4384 1.9619 3.1732 3.34373l1.6875-.73594c.1354-.05921.2812-.09118.429-.09406.1477-.00289.2946.02336.4323.07725.1376.05389.2633.13435.3698.23681.1065.10245.1919.22489.2511.36032.0592.13542.0912.28118.094.42896.0029.14778-.0233.29468-.0772.43232-.0539.13763-.1344.2633-.2368.36984-.1025.10653-.2249.19185-.3603.25106l-1.7953.78375c.1435.63492.2146 1.28407.2118 1.93504v.375h1.875c.2984 0 .5845.1185.7955.3295.211.2109.3295.4971.3295.7955 0 .2983-.1185.5845-.3295.7955-.211.2109-.4971.3295-.7955.3295h-1.875v.375Zm-14.99997-2.625H19.0416v-.375c0-1.69079-.6716-3.3123-1.8672-4.50784-1.1955-1.19555-2.817-1.8672-4.5078-1.8672-1.6907 0-3.31224.67165-4.50778 1.8672C6.96328 7.1878 6.29163 8.80931 6.29163 10.5001v.375Zm5.24997 8.8987v-6.6487H6.29163v.375c.00211 1.4949.52876 2.9417 1.48816 4.0882.95939 1.1464 2.29071 1.9199 3.76181 2.1855Zm7.5-6.2737v-.375h-5.25v6.6487c1.4712-.2656 2.8025-1.0391 3.7619-2.1855.9594-1.1465 1.486-2.5933 1.4881-4.0882Z\"/></svg>";
|
|
9
|
+
readonly 'arrow-down': "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 12 14\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"m11.0306 8.53063-4.5 4.49997c-.06968.0699-.15247.1254-.24364.1633-.09116.0378-.1889.0573-.28761.0573-.09871 0-.19645-.0195-.28762-.0573-.09116-.0379-.17395-.0934-.24363-.1633L.968098 8.53063c-.140896-.1409-.220051-.332-.220051-.53125 0-.19926.079155-.39036.220051-.53125.140892-.1409.331992-.22006.531252-.22006.19926 0 .39035.07916.53125.22006l3.21937 3.21937V1.5c0-.19891.07902-.38968.21967-.53033C5.61029.829018 5.80106.75 5.99997.75c.19891 0 .38968.079018.53033.21967.14065.14065.21967.33142.21967.53033v9.1875l3.21938-3.22c.14085-.1409.33195-.22005.53125-.22005.1993 0 .3904.07915.5312.22005.1409.1409.2201.33199.2201.53125s-.0792.39035-.2201.53125l-.0012.00063Z\"/></svg>";
|
|
10
|
+
readonly bug: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 25 24\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M13.7916 8.25006c0-.29667.088-.58668.2528-.83335.1648-.24668.3991-.43893.6732-.55247.2741-.11353.5757-.14323.8667-.08536.2909.05788.5582.20074.768.41052s.3526.47706.4105.76803c.0579.29097.0282.59257-.0854.86666-.1135.27409-.3057.50836-.5524.67318-.2467.16482-.5367.25279-.8334.25279-.3978 0-.7793-.15803-1.0606-.43934-.2813-.2813-.4394-.66283-.4394-1.06066Zm-3.75-1.5c-.29665 0-.58666.08798-.83333.2528-.24667.16482-.43893.39909-.55246.67318-.11354.27409-.14324.57569-.08536.86666.05788.29097.20074.55824.41052.76802.20977.20978.47705.35264.76802.41052.29101.05788.59261.02817.86671-.08536.274-.11353.5083-.30579.6731-.55246.1649-.24668.2528-.53668.2528-.83336 0-.39782-.158-.77935-.4393-1.06066-.2813-.2813-.6628-.43934-1.0607-.43934Zm11.25 6.75004c.0003.6512-.0733 1.3003-.2193 1.935l1.7953.7837c.1354.0592.2578.1445.3603.2511.1024.1065.1829.2322.2368.3698.0539.1377.0801.2846.0772.4323-.0028.1478-.0348.2936-.094.429-.0592.1354-.1446.2579-.2511.3603-.1065.1025-.2322.1829-.3698.2368-.1377.0539-.2846.0802-.4323.0773-.1478-.0029-.2936-.0349-.429-.0941l-1.6875-.7359c-.7348 1.3818-1.8317 2.5377-3.1732 3.3437s-2.8771 1.2319-4.4421 1.2319c-1.5651 0-3.10061-.4259-4.44213-1.2319-1.34151-.806-2.43843-1.9619-3.17321-3.3437l-1.6875.7359c-.13542.0592-.28119.0912-.42896.0941-.14778.0029-.29468-.0234-.43232-.0773-.13763-.0539-.2633-.1343-.36984-.2368-.10653-.1024-.19185-.2249-.25106-.3603-.05922-.1354-.09119-.2812-.09407-.429-.00289-.1477.02336-.2946.07725-.4323.05389-.1376.13436-.2633.23681-.3698.10246-.1066.22489-.1919.36032-.2511l1.79531-.7837c-.14354-.635-.21462-1.2841-.21187-1.935v-.375h-1.875c-.29837 0-.58452-.1186-.7955-.3295-.21098-.211-.3295-.4972-.3295-.7955 0-.2984.11852-.5846.3295-.7955.21098-.211.49713-.3295.7955-.3295h1.875v-.375c-.00029-.65126.0733-1.30041.21937-1.93504l-1.79531-.78375c-.27351-.11959-.4883-.34294-.59713-.6209-.10883-.27797-.10278-.58778.01682-.86128.11959-.27351.34294-.4883.6209-.59713.27797-.10883.58778-.10278.86128.01681l1.6875.73594c.73478-1.38183 1.8317-2.53769 3.17321-3.34373 1.34152-.80604 2.87703-1.23187 4.44213-1.23187 1.565 0 3.1006.42583 4.4421 1.23187 1.3415.80604 2.4384 1.9619 3.1732 3.34373l1.6875-.73594c.1354-.05921.2812-.09118.429-.09406.1477-.00289.2946.02336.4323.07725.1376.05389.2633.13435.3698.23681.1065.10245.1919.22489.2511.36032.0592.13542.0912.28118.094.42896.0029.14778-.0233.29468-.0772.43232-.0539.13763-.1344.2633-.2368.36984-.1025.10653-.2249.19185-.3603.25106l-1.7953.78375c.1435.63492.2146 1.28407.2118 1.93504v.375h1.875c.2984 0 .5845.1185.7955.3295.211.2109.3295.4971.3295.7955 0 .2983-.1185.5845-.3295.7955-.211.2109-.4971.3295-.7955.3295h-1.875v.375Zm-14.99997-2.625H19.0416v-.375c0-1.69079-.6716-3.3123-1.8672-4.50784-1.1955-1.19555-2.817-1.8672-4.5078-1.8672-1.6907 0-3.31224.67165-4.50778 1.8672C6.96328 7.1878 6.29163 8.80931 6.29163 10.5001v.375Zm5.24997 8.8987v-6.6487H6.29163v.375c.00211 1.4949.52876 2.9417 1.48816 4.0882.95939 1.1464 2.29071 1.9199 3.76181 2.1855Zm7.5-6.2737v-.375h-5.25v6.6487c1.4712-.2656 2.8025-1.0391 3.7619-2.1855.9594-1.1465 1.486-2.5933 1.4881-4.0882Z\"/></svg>";
|
|
11
11
|
readonly '': "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 25 24\"><path fill=\"currentColor\" d=\"m20.6293 7.455-5.25-5.25c-.1045-.10461-.2285-.1876-.3651-.24422-.1366-.05662-.283-.08577-.4308-.08578H5.58337c-.49728 0-.97419.19754-1.32582.54917-.35163.35164-.54918.82855-.54918 1.32583v16.5c0 .4973.19755.9742.54918 1.3258.35163.3517.82854.5492 1.32582.5492H19.0834c.4973 0 .9742-.1975 1.3258-.5492.3516-.3516.5492-.8285.5492-1.3258v-12c0-.29813-.1184-.58407-.3291-.795Zm-3.1397.045h-2.1562V5.34375L17.4896 7.5ZM5.95837 19.875V4.125h7.12503v4.5c0 .29837.1185.58452.3295.7955.211.21097.4971.3295.7955.3295h4.5v10.125H5.95837Zm9.04503-4.5459c.3426-.7185.4202-1.5349.2192-2.3051-.2011-.7702-.6679-1.4445-1.3179-1.9038-.65-.4594-1.4415-.6742-2.2346-.6066-.7931.0677-1.5368.4135-2.0996.9763-.56283.5629-.90863 1.3065-.9763 2.0996-.06766.7931.14716 1.5846.60651 2.2346.45936.6501 1.13369 1.1169 1.90389 1.3179.7701.201 1.5866.1234 2.305-.2192l1.125 1.125c.2114.2114.498.3301.7969.3301.2989 0 .5855-.1187.7969-.3301.2113-.2113.3301-.498.3301-.7969 0-.2988-.1188-.5855-.3301-.7968l-1.125-1.125Zm-4.17-1.4541c0-.2225.066-.44.1896-.625.1236-.185.2993-.3292.5049-.4144.2055-.0851.4317-.1074.65-.064.2182.0434.4186.1506.576.3079.1573.1573.2644.3578.3079.576.0434.2183.0211.4445-.0641.65-.0851.2056-.2293.3813-.4143.5049-.185.1236-.4025.1896-.625.1896-.2984 0-.5845-.1185-.7955-.3295-.211-.211-.3295-.4971-.3295-.7955Z\"/></svg>";
|
|
12
12
|
readonly 'check-circle': "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\"><path fill=\"currentColor\" d=\"M10.0306 4.96938c.0699.06967.1254.15247.1633.24363.0378.09116.0573.1889.0573.28762 0 .09871-.0195.19645-.0573.28761-.0379.09116-.0934.17396-.1633.24364L6.53063 9.53187c-.06968.06992-.15247.1254-.24364.16326-.09116.03785-.1889.05734-.28761.05734-.09871 0-.19645-.01949-.28762-.05734-.09116-.03786-.17395-.09334-.24363-.16326l-1.5-1.5c-.06977-.06976-.12511-.15258-.16286-.24373-.03776-.09116-.05719-.18885-.05719-.28752 0-.09866.01943-.19635.05719-.28751.03775-.09115.09309-.17397.16286-.24373.06976-.06977.15259-.12511.24374-.16287.09115-.03775.18885-.05719.28751-.05719s.19636.01944.28751.05719c.09115.03776.17397.0931.24374.16287L6 7.9375l2.96938-2.97c.06978-.06961.15259-.12478.24371-.16237.09111-.03758.18874-.05683.2873-.05666.09856.00018.19612.01978.28711.05768.09098.0379.1736.09337.2431.16323ZM13.75 7c0 1.33502-.3959 2.64007-1.1376 3.7501-.7417 1.11-1.7959 1.9752-3.02928 2.4861-1.23341.5109-2.5906.6446-3.89998.3841-1.30937-.2605-2.5121-.9033-3.45611-1.8473-.944-.944-1.586877-2.14677-1.847328-3.45614-.26045-1.30937-.126777-2.66657.384114-3.89997C1.27471 3.18349 2.13987 2.12928 3.2499 1.38758 4.35994.645881 5.66498.25 7 .25c1.78961.001985 3.5053.713781 4.7708 1.97922C13.0362 3.49466 13.748 5.2104 13.75 7Zm-1.5 0c0-1.03835-.3079-2.05339-.8848-2.91674-.5769-.86336-1.3968-1.53627-2.35611-1.93363-.95931-.39736-2.01491-.50133-3.03331-.29875-1.0184.20257-1.95386.70258-2.68809 1.43681-.73422.73422-1.23424 1.66969-1.43681 2.68809-.20257 1.0184-.0986 2.074.29876 3.03331.39736.95931 1.07026 1.77921 1.93362 2.35611.86336.5769 1.87839.8848 2.91674.8848 1.39193-.0015 2.72643-.5551 3.7107-1.5393C11.6949 9.72642 12.2485 8.39193 12.25 7Z\"/></svg>";
|
|
13
|
-
readonly gear: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 22 22\"><path fill=\"currentColor\" d=\"M11 6.12507c-.9642 0-1.90671.28592-2.7084.82159-.80169.53567-1.42653 1.29704-1.79551 2.18783-.36898.89081-.46552 1.87101-.27742 2.81661.18811.9457.6524 1.8143 1.33419 2.4961.68178.6818 1.55042 1.1461 2.49604 1.3342.9457.1881 1.9259.0916 2.8167-.2774s1.6521-.9938 2.1878-1.7955c.5357-.8017.8216-1.7442.8216-2.7084-.0015-1.2925-.5156-2.53161-1.4295-3.44553-.9139-.91392-2.153-1.42801-3.4455-1.4295Zm0 7.50003c-.5192 0-1.02669-.154-1.45837-.4424-.43168-.2885-.76813-.6984-.96681-1.1781-.19868-.4796-.25067-1.0074-.14938-1.5166.10129-.50924.35129-.97697.71841-1.34408.36711-.36712.83484-.61712 1.34405-.71841.5092-.10129 1.037-.0493 1.5166.14938.4797.19868.8897.53513 1.1781.96681.2884.43168.4424.9392.4424 1.4584 0 .6962-.2766 1.3638-.7688 1.8561-.4923.4923-1.16.7689-1.8562.7689Zm8.625-2.551v-.1481l1.3125-1.64155c.1102-.13755.1865-.29905.2228-.4715s.0316-.35102-.0137-.52131c-.2369-.89334-.5909-1.75142-1.0528-2.55188-.089-.15264-.2127-.28218-.3611-.37811-.1484-.09594-.3173-.15557-.493-.17408l-2.0888-.23437-.104-.10406-.2344-2.08969c-.0186-.17556-.0783-.34426-.1743-.49247-.0959-.1482-.2254-.27175-.3779-.36066-.8005-.46341-1.6589-.81869-2.5528-1.056559-.1704-.044683-.349-.048704-.5213-.01174-.1723.036965-.3335.113881-.4706.224549l-1.6415 1.3125h-.1482l-1.64152-1.3125C9.14683.9524 8.98532.87608 8.81288.839767c-.17245-.036314-.35102-.031606-.52132.013744-.89357.238319-1.75165.593909-2.55187 1.057499-.15205.08854-.28121.2115-.37712.35901-.0959.14752-.15586.31547-.17507.49037l-.23437 2.08875-.10407.10406-2.08968.23437c-.17556.01865-.34426.07835-.49247.17428-.14821.09593-.27176.22539-.36066.37791-.46211.80072-.81613 1.65912-1.052812 2.55281-.045195.17016-.049823.34855-.013512.52082.03631.17227.112546.33362.222574.47106L2.375 10.926v.1481l-1.3125 1.6416c-.110173.1375-.186492.299-.222806.4715-.036313.1724-.031605.351.013744.5213.238622.8936.594522 1.7517 1.058442 2.5519.08844.1519.21126.281.3586.3769.14734.0959.3151.1559.48983.1753l2.08875.2325.10407.104.23437 2.0916c.01865.1756.07835.3443.17428.4925.09592.1482.22538.2717.37791.3606.80052.4634 1.65893.8187 2.55281 1.0566.17045.0447.349.0487.52129.0117.17228-.0369.33347-.1139.47059-.2245l1.64152-1.3125h.1482l1.6415 1.3125c.1376.1101.2991.1865.4715.2228.1725.0363.351.0316.5213-.0138.8934-.2368 1.7514-.5908 2.5519-1.0528.1524-.0883.2819-.2112.3782-.3587.0962-.1475.1565-.3156.1759-.4907l.2325-2.0887.104-.1041 2.0897-.239c.1751-.0194.3432-.0797.4907-.1759.1475-.0963.2704-.2258.3587-.3782.4634-.8005.8187-1.6589 1.0566-2.5528.0448-.1699.0493-.3479.013-.5198-.0363-.172-.1124-.333-.2221-.4702l-1.3125-1.6416Zm-2.2612-.4584c.015.256.015.5127 0 .7687-.0168.2784.0704.553.2446.7707l1.2038 1.5047c-.1136.3363-.2492.6648-.406.9834l-1.9153.2128c-.2773.0317-.5329.1654-.7171.375-.1704.1919-.3519.3735-.5438.5438-.2096.1842-.3433.4398-.375.7171l-.2119 1.9144c-.3185.1574-.647.2936-.9834.4078l-1.5047-1.2047c-.1997-.1593-.4477-.2459-.7031-.2456h-.0675c-.2561.015-.5127.015-.7688 0-.2781-.0165-.5525.0703-.7706.2438l-1.50469 1.2047c-.33634-.1137-.66486-.2493-.98343-.406l-.21282-1.9153c-.0317-.2773-.16536-.5329-.375-.7172-.19187-.1703-.37344-.3519-.54375-.5437-.18426-.2097-.43988-.3433-.71718-.375l-1.91438-.2119c-.15734-.3185-.29357-.647-.40781-.9834l1.20375-1.5047c.17424-.2177.26144-.4923.24469-.7707-.01501-.256-.01501-.5127 0-.7687.01675-.2783-.07045-.553-.24469-.77063L3.18781 8.34038c.11364-.33634.24924-.66486.40594-.98343l1.91531-.21281c.27731-.03171.53292-.16537.71719-.375.17031-.19188.35188-.37345.54375-.54375.20964-.18427.3433-.43989.375-.71719l.21188-1.91438c.31852-.15734.64704-.29357.98343-.40781L9.845 4.3907c.2181.17343.4925.26023.7706.24375.2561-.015.5127-.015.7688 0 .2782.01701.5528-.06985.7706-.24375l1.5047-1.20469c.3364.11424.6649.25047.9834.40781l.2128 1.91532c.0317.2773.1654.53292.375.71718.1919.17031.3735.35188.5438.54375.1843.20964.4399.3433.7172.375l1.9143.21188c.1574.31852.2936.64704.4079.98343l-1.2038 1.50469c-.1749.21743-.2628.49203-.2465.77063Z\"/></svg>";
|
|
13
|
+
readonly gear: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 22 22\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M11 6.12507c-.9642 0-1.90671.28592-2.7084.82159-.80169.53567-1.42653 1.29704-1.79551 2.18783-.36898.89081-.46552 1.87101-.27742 2.81661.18811.9457.6524 1.8143 1.33419 2.4961.68178.6818 1.55042 1.1461 2.49604 1.3342.9457.1881 1.9259.0916 2.8167-.2774s1.6521-.9938 2.1878-1.7955c.5357-.8017.8216-1.7442.8216-2.7084-.0015-1.2925-.5156-2.53161-1.4295-3.44553-.9139-.91392-2.153-1.42801-3.4455-1.4295Zm0 7.50003c-.5192 0-1.02669-.154-1.45837-.4424-.43168-.2885-.76813-.6984-.96681-1.1781-.19868-.4796-.25067-1.0074-.14938-1.5166.10129-.50924.35129-.97697.71841-1.34408.36711-.36712.83484-.61712 1.34405-.71841.5092-.10129 1.037-.0493 1.5166.14938.4797.19868.8897.53513 1.1781.96681.2884.43168.4424.9392.4424 1.4584 0 .6962-.2766 1.3638-.7688 1.8561-.4923.4923-1.16.7689-1.8562.7689Zm8.625-2.551v-.1481l1.3125-1.64155c.1102-.13755.1865-.29905.2228-.4715s.0316-.35102-.0137-.52131c-.2369-.89334-.5909-1.75142-1.0528-2.55188-.089-.15264-.2127-.28218-.3611-.37811-.1484-.09594-.3173-.15557-.493-.17408l-2.0888-.23437-.104-.10406-.2344-2.08969c-.0186-.17556-.0783-.34426-.1743-.49247-.0959-.1482-.2254-.27175-.3779-.36066-.8005-.46341-1.6589-.81869-2.5528-1.056559-.1704-.044683-.349-.048704-.5213-.01174-.1723.036965-.3335.113881-.4706.224549l-1.6415 1.3125h-.1482l-1.64152-1.3125C9.14683.9524 8.98532.87608 8.81288.839767c-.17245-.036314-.35102-.031606-.52132.013744-.89357.238319-1.75165.593909-2.55187 1.057499-.15205.08854-.28121.2115-.37712.35901-.0959.14752-.15586.31547-.17507.49037l-.23437 2.08875-.10407.10406-2.08968.23437c-.17556.01865-.34426.07835-.49247.17428-.14821.09593-.27176.22539-.36066.37791-.46211.80072-.81613 1.65912-1.052812 2.55281-.045195.17016-.049823.34855-.013512.52082.03631.17227.112546.33362.222574.47106L2.375 10.926v.1481l-1.3125 1.6416c-.110173.1375-.186492.299-.222806.4715-.036313.1724-.031605.351.013744.5213.238622.8936.594522 1.7517 1.058442 2.5519.08844.1519.21126.281.3586.3769.14734.0959.3151.1559.48983.1753l2.08875.2325.10407.104.23437 2.0916c.01865.1756.07835.3443.17428.4925.09592.1482.22538.2717.37791.3606.80052.4634 1.65893.8187 2.55281 1.0566.17045.0447.349.0487.52129.0117.17228-.0369.33347-.1139.47059-.2245l1.64152-1.3125h.1482l1.6415 1.3125c.1376.1101.2991.1865.4715.2228.1725.0363.351.0316.5213-.0138.8934-.2368 1.7514-.5908 2.5519-1.0528.1524-.0883.2819-.2112.3782-.3587.0962-.1475.1565-.3156.1759-.4907l.2325-2.0887.104-.1041 2.0897-.239c.1751-.0194.3432-.0797.4907-.1759.1475-.0963.2704-.2258.3587-.3782.4634-.8005.8187-1.6589 1.0566-2.5528.0448-.1699.0493-.3479.013-.5198-.0363-.172-.1124-.333-.2221-.4702l-1.3125-1.6416Zm-2.2612-.4584c.015.256.015.5127 0 .7687-.0168.2784.0704.553.2446.7707l1.2038 1.5047c-.1136.3363-.2492.6648-.406.9834l-1.9153.2128c-.2773.0317-.5329.1654-.7171.375-.1704.1919-.3519.3735-.5438.5438-.2096.1842-.3433.4398-.375.7171l-.2119 1.9144c-.3185.1574-.647.2936-.9834.4078l-1.5047-1.2047c-.1997-.1593-.4477-.2459-.7031-.2456h-.0675c-.2561.015-.5127.015-.7688 0-.2781-.0165-.5525.0703-.7706.2438l-1.50469 1.2047c-.33634-.1137-.66486-.2493-.98343-.406l-.21282-1.9153c-.0317-.2773-.16536-.5329-.375-.7172-.19187-.1703-.37344-.3519-.54375-.5437-.18426-.2097-.43988-.3433-.71718-.375l-1.91438-.2119c-.15734-.3185-.29357-.647-.40781-.9834l1.20375-1.5047c.17424-.2177.26144-.4923.24469-.7707-.01501-.256-.01501-.5127 0-.7687.01675-.2783-.07045-.553-.24469-.77063L3.18781 8.34038c.11364-.33634.24924-.66486.40594-.98343l1.91531-.21281c.27731-.03171.53292-.16537.71719-.375.17031-.19188.35188-.37345.54375-.54375.20964-.18427.3433-.43989.375-.71719l.21188-1.91438c.31852-.15734.64704-.29357.98343-.40781L9.845 4.3907c.2181.17343.4925.26023.7706.24375.2561-.015.5127-.015.7688 0 .2782.01701.5528-.06985.7706-.24375l1.5047-1.20469c.3364.11424.6649.25047.9834.40781l.2128 1.91532c.0317.2773.1654.53292.375.71718.1919.17031.3735.35188.5438.54375.1843.20964.4399.3433.7172.375l1.9143.21188c.1574.31852.2936.64704.4079.98343l-1.2038 1.50469c-.1749.21743-.2628.49203-.2465.77063Z\"/></svg>";
|
|
14
14
|
readonly lightbulb: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 13 16\"><path fill=\"currentColor\" d=\"M9.84994 14.5002c0 .1989-.07902.3897-.21967.5303-.14066.1407-.33142.2197-.53033.2197h-5c-.19891 0-.38968-.079-.53033-.2197-.14065-.1406-.21967-.3314-.21967-.5303 0-.1989.07902-.3897.21967-.5303.14065-.1407.33142-.2197.53033-.2197h5c.19891 0 .38967.079.53033.2197.14065.1406.21967.3314.21967.5303Zm2.49996-8.00001c.0023.87138-.1945 1.73175-.5755 2.51544-.381.78368-.9359 1.46997-1.6226 2.00647-.093.0708-.16853.162-.22085.2665-.05233.1046-.08004.2197-.08101.3366v.125c0 .3315-.1317.6495-.36612.8839-.23442.2344-.55236.3661-.88388.3661h-4c-.33152 0-.64947-.1317-.88389-.3661-.23442-.2344-.36611-.5524-.36611-.8839v-.125c-.00014-.115-.0267-.2284-.07763-.3314-.05094-.1031-.12488-.193-.21612-.263-.68477-.5334-1.23925-1.2155-1.62148-1.9948-.38223-.77929-.582201-1.63532-.584772-2.50331C.833063 3.41832 3.34994.825195 6.46181.750195c.76665-.018422 1.52923.116696 2.24287.397405.71365.2807 1.36392.70132 1.91262 1.23711.5486.53578.9846 1.1759 1.2821 1.88268.2976.70678.4508 1.46594.4505 2.2328Zm-1.5 0c.0002-.5669-.113-1.12811-.3331-1.65058-.22-.52247-.54226-.99565-.9479-1.39168-.40563-.39602-.8864-.70689-1.414-.91431-.52759-.20741-1.09135-.30718-1.65809-.29343-2.29937.055-4.15937 1.97188-4.14687 4.27375.00214.64152.15011 1.27416.43271 1.85009.2826.57592.69244 1.08006 1.19854 1.47429.25496.19678.46453.44618.61444.73128.14992.285.23665.599.25431.9206h3.50625c.018-.3222.10486-.6368.25472-.9226.14986-.2859.35924-.5362.61403-.73428.50754-.39672.91776-.90412 1.19936-1.4835.2817-.57938.4272-1.21543.4256-1.85963Zm-1.25434-.3325c-.06636-.56119-.28826-1.09265-.64067-1.53441-.35241-.44175-.82128-.7762-1.3537-.96559-.1861-.0608-.38859-.04643-.56423.04006-.17565.08648-.31051.23821-.37579.42278-.06527.18458-.05579.38736.02642.56504.08222.17767.23065.31616.4136.38587.26755.09379.50353.26056.68124.48146.17771.2209.29008.48712.32438.76854.02188.19776.12142.37872.27673.50308.0769.06157.16517.1074.25978.13486.09461.02747.1937.03602.29162.02519.09791-.01083.19274-.04085.27905-.08833.08632-.04748.16244-.1115.22402-.1884.06158-.07689.1074-.16517.13487-.25978.02746-.09461.03602-.1937.02518-.29162l-.0025.00125Z\"/></svg>";
|
|
15
15
|
readonly 'file-search': "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 12 14\"><path fill=\"currentColor\" d=\"M11.5306 3.97 8.03063.47C7.96097.400261 7.87826.344936 7.78721.307186 7.69616.269437 7.59856.250005 7.5.25h-6C1.16848.25.850537.381696.616117.616117.381696.850537.25 1.16848.25 1.5v11c0 .3315.131696.6495.366117.8839.23442.2344.552363.3661.883883.3661h9c.3315 0 .6495-.1317.8839-.3661.2344-.2344.3661-.5524.3661-.8839v-8c0-.19876-.0789-.38938-.2194-.53ZM9.4375 4H8V2.5625L9.4375 4ZM1.75 12.25V1.75H6.5v3c0 .19891.07902.38968.21967.53033.14065.14065.33142.21967.53033.21967h3v6.75h-8.5Zm6.03-3.03063c.2284-.47897.28015-1.02326.14613-1.53671-.13403-.51344-.44521-.96299-.87858-1.26923-.43337-.30623-.96102-.44945-1.48975-.40433-.52872.04511-1.02449.27564-1.39971.65086-.37523.37522-.60576.87099-.65087 1.39972-.04511.52872.0981 1.05638.40434 1.48975.30624.43336.75579.74457 1.26923.87857.51344.134 1.05773.0823 1.53671-.1461l.75.75c.1409.1409.33199.22.53125.22s.39035-.0791.53125-.22c.1409-.1409.22005-.332.22005-.5313 0-.1992-.07915-.3903-.22005-.53123l-.75-.75ZM5 8.25c0-.14834.04399-.29334.1264-.41668.08241-.12333.19954-.21946.33659-.27623.13704-.05676.28784-.07162.43333-.04268.14548.02894.27912.10037.38401.20526.10489.10489.17632.23853.20526.38401.02894.14549.01408.29629-.04268.43333-.05677.13705-.1529.25418-.27623.33659C6.04334 8.95601 5.89834 9 5.75 9c-.19891 0-.38968-.07902-.53033-.21967C5.07902 8.63968 5 8.44891 5 8.25Z\"/></svg>";
|
|
16
16
|
readonly star: "<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 15 15\"><path fill=\"currentColor\" d=\"M14.5873 6.00333c-.0759-.23292-.2187-.43838-.4105-.59083-.1918-.15245-.4241-.24519-.6682-.26667L9.9461 4.8377 8.55235 1.51645c-.09588-.22586-.25611-.4185-.46072-.553929-.2046-.135425-.44454-.207638-.68991-.207638-.24537 0-.48531.072213-.68991.207638-.20461.135429-.36484.328069-.46071.553929L4.85547 4.8377l-3.5625.30813c-.24538.02032-.479299.11265-.6724.26542-.193101.15276-.336784.35916-.413023.59328-.076238.23412-.081634.48554-.015512.72272s.200817.44954.387185.61045l2.7075 2.3625-.8125 3.515c-.05572.2394-.03965.4898.04619.7201.08585.2303.23767.4301.43648.5746.19881.1444.4358.2271.68132.2376.24553.0105.48871-.0516.69914-.1785l3.0625-1.86 3.06245 1.86c.2105.1267.4536.1886.699.178.2454-.0106.4822-.0933.6809-.2377.1987-.1444.3505-.3442.4363-.5743.0858-.2302.102-.4805.0463-.7198l-.8125-3.515 2.7075-2.3625c.1859-.16149.32-.37429.3853-.61168.0654-.23739.0592-.4888-.0178-.72269Zm-4.1718 2.66375c-.1714.14913-.299.34215-.3689.55831-.0699.21617-.07959.44731-.028.66857l.7119 3.08254-2.68378-1.63c-.1949-.1187-.41869-.1815-.64687-.1815-.22819 0-.45198.0628-.64688.1815l-2.68375 1.63.71188-3.08254c.05158-.22126.04189-.4524-.02803-.66857-.06993-.21616-.19745-.40918-.36885-.55831L2.00359 6.5902l3.13376-.27125c.22692-.01943.44417-.10073.62809-.23507.18393-.13433.32748-.31654.41503-.5268l1.21938-2.90563 1.21937 2.90563c.08755.21026.2311.39247.41503.5268.18392.13434.40117.21564.62809.23507l3.13376.27125-2.3806 2.07688Z\"/></svg>";
|
|
@@ -11,13 +11,13 @@ function getIconElement(name) {
|
|
|
11
11
|
return svgFragment.firstElementChild;
|
|
12
12
|
}
|
|
13
13
|
const icons = {
|
|
14
|
-
"astro:logo": `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 85 107"><path fill="#fff" d="M27.6 91.1c-4.8-4.4-6.3-13.7-4.2-20.4 3.5 4.2 8.3 5.6 13.3 6.3 7.7 1.2 15.3.8 22.5-2.8l2.5-1.4c.7 2 .9 3.9.6 5.9-.6 4.9-3 8.7-6.9 11.5-1.5 1.2-3.2 2.2-4.8 3.3-4.9 3.3-6.2 7.2-4.4 12.9l.2.6a13 13 0 0 1-5.7-5 13.8 13.8 0 0 1-2.2-7.4c0-1.3 0-2.7-.2-4-.5-3.1-2-4.6-4.8-4.7a5.5 5.5 0 0 0-5.7 4.6l-.2.6Z"/><path fill="url(#a)" d="M27.6 91.1c-4.8-4.4-6.3-13.7-4.2-20.4 3.5 4.2 8.3 5.6 13.3 6.3 7.7 1.2 15.3.8 22.5-2.8l2.5-1.4c.7 2 .9 3.9.6 5.9-.6 4.9-3 8.7-6.9 11.5-1.5 1.2-3.2 2.2-4.8 3.3-4.9 3.3-6.2 7.2-4.4 12.9l.2.6a13 13 0 0 1-5.7-5 13.8 13.8 0 0 1-2.2-7.4c0-1.3 0-2.7-.2-4-.5-3.1-2-4.6-4.8-4.7a5.5 5.5 0 0 0-5.7 4.6l-.2.6Z"/><path fill="#fff" d="M0 69.6s14.3-7 28.7-7l10.8-33.5c.4-1.6 1.6-2.7 3-2.7 1.2 0 2.4 1.1 2.8 2.7l10.9 33.5c17 0 28.6 7 28.6 7L60.5 3.2c-.7-2-2-3.2-3.5-3.2H27.8c-1.6 0-2.7 1.3-3.4 3.2L0 69.6Z"/><defs><linearGradient id="a" x1="22.5" x2="69.1" y1="107" y2="84.9" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient></defs></svg>`,
|
|
14
|
+
"astro:logo": `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 85 107" aria-hidden="true"><path fill="#fff" d="M27.6 91.1c-4.8-4.4-6.3-13.7-4.2-20.4 3.5 4.2 8.3 5.6 13.3 6.3 7.7 1.2 15.3.8 22.5-2.8l2.5-1.4c.7 2 .9 3.9.6 5.9-.6 4.9-3 8.7-6.9 11.5-1.5 1.2-3.2 2.2-4.8 3.3-4.9 3.3-6.2 7.2-4.4 12.9l.2.6a13 13 0 0 1-5.7-5 13.8 13.8 0 0 1-2.2-7.4c0-1.3 0-2.7-.2-4-.5-3.1-2-4.6-4.8-4.7a5.5 5.5 0 0 0-5.7 4.6l-.2.6Z"/><path fill="url(#a)" d="M27.6 91.1c-4.8-4.4-6.3-13.7-4.2-20.4 3.5 4.2 8.3 5.6 13.3 6.3 7.7 1.2 15.3.8 22.5-2.8l2.5-1.4c.7 2 .9 3.9.6 5.9-.6 4.9-3 8.7-6.9 11.5-1.5 1.2-3.2 2.2-4.8 3.3-4.9 3.3-6.2 7.2-4.4 12.9l.2.6a13 13 0 0 1-5.7-5 13.8 13.8 0 0 1-2.2-7.4c0-1.3 0-2.7-.2-4-.5-3.1-2-4.6-4.8-4.7a5.5 5.5 0 0 0-5.7 4.6l-.2.6Z"/><path fill="#fff" d="M0 69.6s14.3-7 28.7-7l10.8-33.5c.4-1.6 1.6-2.7 3-2.7 1.2 0 2.4 1.1 2.8 2.7l10.9 33.5c17 0 28.6 7 28.6 7L60.5 3.2c-.7-2-2-3.2-3.5-3.2H27.8c-1.6 0-2.7 1.3-3.4 3.2L0 69.6Z"/><defs><linearGradient id="a" x1="22.5" x2="69.1" y1="107" y2="84.9" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient></defs></svg>`,
|
|
15
15
|
warning: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="currentColor" d="M8 .40625c-1.5019 0-2.97007.445366-4.21886 1.27978C2.53236 2.52044 1.55905 3.70642.984293 5.094.40954 6.48157.259159 8.00842.552165 9.48147.845172 10.9545 1.56841 12.3076 2.63041 13.3696c1.06201 1.062 2.41508 1.7852 3.88813 2.0782 1.47304.293 2.99989.1427 4.38746-.4321 1.3876-.5747 2.5736-1.5481 3.408-2.7968.8344-1.2488 1.2798-2.717 1.2798-4.2189-.0023-2.0133-.8031-3.9435-2.2267-5.36713C11.9435 1.20925 10.0133.408483 8 .40625ZM8 13.9062c-1.16814 0-2.31006-.3463-3.28133-.9953-.97128-.649-1.7283-1.5715-2.17533-2.6507-.44703-1.0792-.56399-2.26675-.3361-3.41245.22789-1.1457.79041-2.1981 1.61641-3.0241.82601-.826 1.8784-1.38852 3.0241-1.61641 1.1457-.2279 2.33325-.11093 3.41245.3361 1.0793.44703 2.0017 1.20405 2.6507 2.17532.649.97128.9954 2.11319.9954 3.28134-.0017 1.56592-.6245 3.0672-1.7318 4.1745S9.56592 13.9046 8 13.9062Zm-.84375-5.62495V4.625c0-.22378.0889-.43839.24713-.59662.15824-.15824.37285-.24713.59662-.24713.22378 0 .43839.08889.59662.24713.15824.15823.24713.37284.24713.59662v3.65625c0 .22378-.08889.43839-.24713.59662C8.43839 9.03611 8.22378 9.125 8 9.125c-.22377 0-.43838-.08889-.59662-.24713-.15823-.15823-.24713-.37284-.24713-.59662ZM9.125 11.0938c0 .2225-.06598.44-.18959.625-.12362.185-.29932.3292-.50489.4143-.20556.0852-.43176.1074-.64999.064-.21823-.0434-.41869-.1505-.57602-.3079-.15734-.1573-.26448-.3577-.30789-.576-.04341-.2182-.02113-.4444.06402-.65.08515-.2055.22934-.3812.41435-.5049.185-.1236.40251-.18955.62501-.18955.29837 0 .58452.11855.7955.32955.21098.2109.3295.4971.3295.7955Z"/></svg>`,
|
|
16
|
-
"arrow-down": '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 14"><path fill="currentColor" d="m11.0306 8.53063-4.5 4.49997c-.06968.0699-.15247.1254-.24364.1633-.09116.0378-.1889.0573-.28761.0573-.09871 0-.19645-.0195-.28762-.0573-.09116-.0379-.17395-.0934-.24363-.1633L.968098 8.53063c-.140896-.1409-.220051-.332-.220051-.53125 0-.19926.079155-.39036.220051-.53125.140892-.1409.331992-.22006.531252-.22006.19926 0 .39035.07916.53125.22006l3.21937 3.21937V1.5c0-.19891.07902-.38968.21967-.53033C5.61029.829018 5.80106.75 5.99997.75c.19891 0 .38968.079018.53033.21967.14065.14065.21967.33142.21967.53033v9.1875l3.21938-3.22c.14085-.1409.33195-.22005.53125-.22005.1993 0 .3904.07915.5312.22005.1409.1409.2201.33199.2201.53125s-.0792.39035-.2201.53125l-.0012.00063Z"/></svg>',
|
|
17
|
-
bug: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path fill="currentColor" d="M13.7916 8.25006c0-.29667.088-.58668.2528-.83335.1648-.24668.3991-.43893.6732-.55247.2741-.11353.5757-.14323.8667-.08536.2909.05788.5582.20074.768.41052s.3526.47706.4105.76803c.0579.29097.0282.59257-.0854.86666-.1135.27409-.3057.50836-.5524.67318-.2467.16482-.5367.25279-.8334.25279-.3978 0-.7793-.15803-1.0606-.43934-.2813-.2813-.4394-.66283-.4394-1.06066Zm-3.75-1.5c-.29665 0-.58666.08798-.83333.2528-.24667.16482-.43893.39909-.55246.67318-.11354.27409-.14324.57569-.08536.86666.05788.29097.20074.55824.41052.76802.20977.20978.47705.35264.76802.41052.29101.05788.59261.02817.86671-.08536.274-.11353.5083-.30579.6731-.55246.1649-.24668.2528-.53668.2528-.83336 0-.39782-.158-.77935-.4393-1.06066-.2813-.2813-.6628-.43934-1.0607-.43934Zm11.25 6.75004c.0003.6512-.0733 1.3003-.2193 1.935l1.7953.7837c.1354.0592.2578.1445.3603.2511.1024.1065.1829.2322.2368.3698.0539.1377.0801.2846.0772.4323-.0028.1478-.0348.2936-.094.429-.0592.1354-.1446.2579-.2511.3603-.1065.1025-.2322.1829-.3698.2368-.1377.0539-.2846.0802-.4323.0773-.1478-.0029-.2936-.0349-.429-.0941l-1.6875-.7359c-.7348 1.3818-1.8317 2.5377-3.1732 3.3437s-2.8771 1.2319-4.4421 1.2319c-1.5651 0-3.10061-.4259-4.44213-1.2319-1.34151-.806-2.43843-1.9619-3.17321-3.3437l-1.6875.7359c-.13542.0592-.28119.0912-.42896.0941-.14778.0029-.29468-.0234-.43232-.0773-.13763-.0539-.2633-.1343-.36984-.2368-.10653-.1024-.19185-.2249-.25106-.3603-.05922-.1354-.09119-.2812-.09407-.429-.00289-.1477.02336-.2946.07725-.4323.05389-.1376.13436-.2633.23681-.3698.10246-.1066.22489-.1919.36032-.2511l1.79531-.7837c-.14354-.635-.21462-1.2841-.21187-1.935v-.375h-1.875c-.29837 0-.58452-.1186-.7955-.3295-.21098-.211-.3295-.4972-.3295-.7955 0-.2984.11852-.5846.3295-.7955.21098-.211.49713-.3295.7955-.3295h1.875v-.375c-.00029-.65126.0733-1.30041.21937-1.93504l-1.79531-.78375c-.27351-.11959-.4883-.34294-.59713-.6209-.10883-.27797-.10278-.58778.01682-.86128.11959-.27351.34294-.4883.6209-.59713.27797-.10883.58778-.10278.86128.01681l1.6875.73594c.73478-1.38183 1.8317-2.53769 3.17321-3.34373 1.34152-.80604 2.87703-1.23187 4.44213-1.23187 1.565 0 3.1006.42583 4.4421 1.23187 1.3415.80604 2.4384 1.9619 3.1732 3.34373l1.6875-.73594c.1354-.05921.2812-.09118.429-.09406.1477-.00289.2946.02336.4323.07725.1376.05389.2633.13435.3698.23681.1065.10245.1919.22489.2511.36032.0592.13542.0912.28118.094.42896.0029.14778-.0233.29468-.0772.43232-.0539.13763-.1344.2633-.2368.36984-.1025.10653-.2249.19185-.3603.25106l-1.7953.78375c.1435.63492.2146 1.28407.2118 1.93504v.375h1.875c.2984 0 .5845.1185.7955.3295.211.2109.3295.4971.3295.7955 0 .2983-.1185.5845-.3295.7955-.211.2109-.4971.3295-.7955.3295h-1.875v.375Zm-14.99997-2.625H19.0416v-.375c0-1.69079-.6716-3.3123-1.8672-4.50784-1.1955-1.19555-2.817-1.8672-4.5078-1.8672-1.6907 0-3.31224.67165-4.50778 1.8672C6.96328 7.1878 6.29163 8.80931 6.29163 10.5001v.375Zm5.24997 8.8987v-6.6487H6.29163v.375c.00211 1.4949.52876 2.9417 1.48816 4.0882.95939 1.1464 2.29071 1.9199 3.76181 2.1855Zm7.5-6.2737v-.375h-5.25v6.6487c1.4712-.2656 2.8025-1.0391 3.7619-2.1855.9594-1.1465 1.486-2.5933 1.4881-4.0882Z"/></svg>',
|
|
16
|
+
"arrow-down": '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 14" aria-hidden="true"><path fill="currentColor" d="m11.0306 8.53063-4.5 4.49997c-.06968.0699-.15247.1254-.24364.1633-.09116.0378-.1889.0573-.28761.0573-.09871 0-.19645-.0195-.28762-.0573-.09116-.0379-.17395-.0934-.24363-.1633L.968098 8.53063c-.140896-.1409-.220051-.332-.220051-.53125 0-.19926.079155-.39036.220051-.53125.140892-.1409.331992-.22006.531252-.22006.19926 0 .39035.07916.53125.22006l3.21937 3.21937V1.5c0-.19891.07902-.38968.21967-.53033C5.61029.829018 5.80106.75 5.99997.75c.19891 0 .38968.079018.53033.21967.14065.14065.21967.33142.21967.53033v9.1875l3.21938-3.22c.14085-.1409.33195-.22005.53125-.22005.1993 0 .3904.07915.5312.22005.1409.1409.2201.33199.2201.53125s-.0792.39035-.2201.53125l-.0012.00063Z"/></svg>',
|
|
17
|
+
bug: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24" aria-hidden="true"><path fill="currentColor" d="M13.7916 8.25006c0-.29667.088-.58668.2528-.83335.1648-.24668.3991-.43893.6732-.55247.2741-.11353.5757-.14323.8667-.08536.2909.05788.5582.20074.768.41052s.3526.47706.4105.76803c.0579.29097.0282.59257-.0854.86666-.1135.27409-.3057.50836-.5524.67318-.2467.16482-.5367.25279-.8334.25279-.3978 0-.7793-.15803-1.0606-.43934-.2813-.2813-.4394-.66283-.4394-1.06066Zm-3.75-1.5c-.29665 0-.58666.08798-.83333.2528-.24667.16482-.43893.39909-.55246.67318-.11354.27409-.14324.57569-.08536.86666.05788.29097.20074.55824.41052.76802.20977.20978.47705.35264.76802.41052.29101.05788.59261.02817.86671-.08536.274-.11353.5083-.30579.6731-.55246.1649-.24668.2528-.53668.2528-.83336 0-.39782-.158-.77935-.4393-1.06066-.2813-.2813-.6628-.43934-1.0607-.43934Zm11.25 6.75004c.0003.6512-.0733 1.3003-.2193 1.935l1.7953.7837c.1354.0592.2578.1445.3603.2511.1024.1065.1829.2322.2368.3698.0539.1377.0801.2846.0772.4323-.0028.1478-.0348.2936-.094.429-.0592.1354-.1446.2579-.2511.3603-.1065.1025-.2322.1829-.3698.2368-.1377.0539-.2846.0802-.4323.0773-.1478-.0029-.2936-.0349-.429-.0941l-1.6875-.7359c-.7348 1.3818-1.8317 2.5377-3.1732 3.3437s-2.8771 1.2319-4.4421 1.2319c-1.5651 0-3.10061-.4259-4.44213-1.2319-1.34151-.806-2.43843-1.9619-3.17321-3.3437l-1.6875.7359c-.13542.0592-.28119.0912-.42896.0941-.14778.0029-.29468-.0234-.43232-.0773-.13763-.0539-.2633-.1343-.36984-.2368-.10653-.1024-.19185-.2249-.25106-.3603-.05922-.1354-.09119-.2812-.09407-.429-.00289-.1477.02336-.2946.07725-.4323.05389-.1376.13436-.2633.23681-.3698.10246-.1066.22489-.1919.36032-.2511l1.79531-.7837c-.14354-.635-.21462-1.2841-.21187-1.935v-.375h-1.875c-.29837 0-.58452-.1186-.7955-.3295-.21098-.211-.3295-.4972-.3295-.7955 0-.2984.11852-.5846.3295-.7955.21098-.211.49713-.3295.7955-.3295h1.875v-.375c-.00029-.65126.0733-1.30041.21937-1.93504l-1.79531-.78375c-.27351-.11959-.4883-.34294-.59713-.6209-.10883-.27797-.10278-.58778.01682-.86128.11959-.27351.34294-.4883.6209-.59713.27797-.10883.58778-.10278.86128.01681l1.6875.73594c.73478-1.38183 1.8317-2.53769 3.17321-3.34373 1.34152-.80604 2.87703-1.23187 4.44213-1.23187 1.565 0 3.1006.42583 4.4421 1.23187 1.3415.80604 2.4384 1.9619 3.1732 3.34373l1.6875-.73594c.1354-.05921.2812-.09118.429-.09406.1477-.00289.2946.02336.4323.07725.1376.05389.2633.13435.3698.23681.1065.10245.1919.22489.2511.36032.0592.13542.0912.28118.094.42896.0029.14778-.0233.29468-.0772.43232-.0539.13763-.1344.2633-.2368.36984-.1025.10653-.2249.19185-.3603.25106l-1.7953.78375c.1435.63492.2146 1.28407.2118 1.93504v.375h1.875c.2984 0 .5845.1185.7955.3295.211.2109.3295.4971.3295.7955 0 .2983-.1185.5845-.3295.7955-.211.2109-.4971.3295-.7955.3295h-1.875v.375Zm-14.99997-2.625H19.0416v-.375c0-1.69079-.6716-3.3123-1.8672-4.50784-1.1955-1.19555-2.817-1.8672-4.5078-1.8672-1.6907 0-3.31224.67165-4.50778 1.8672C6.96328 7.1878 6.29163 8.80931 6.29163 10.5001v.375Zm5.24997 8.8987v-6.6487H6.29163v.375c.00211 1.4949.52876 2.9417 1.48816 4.0882.95939 1.1464 2.29071 1.9199 3.76181 2.1855Zm7.5-6.2737v-.375h-5.25v6.6487c1.4712-.2656 2.8025-1.0391 3.7619-2.1855.9594-1.1465 1.486-2.5933 1.4881-4.0882Z"/></svg>',
|
|
18
18
|
"": '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path fill="currentColor" d="m20.6293 7.455-5.25-5.25c-.1045-.10461-.2285-.1876-.3651-.24422-.1366-.05662-.283-.08577-.4308-.08578H5.58337c-.49728 0-.97419.19754-1.32582.54917-.35163.35164-.54918.82855-.54918 1.32583v16.5c0 .4973.19755.9742.54918 1.3258.35163.3517.82854.5492 1.32582.5492H19.0834c.4973 0 .9742-.1975 1.3258-.5492.3516-.3516.5492-.8285.5492-1.3258v-12c0-.29813-.1184-.58407-.3291-.795Zm-3.1397.045h-2.1562V5.34375L17.4896 7.5ZM5.95837 19.875V4.125h7.12503v4.5c0 .29837.1185.58452.3295.7955.211.21097.4971.3295.7955.3295h4.5v10.125H5.95837Zm9.04503-4.5459c.3426-.7185.4202-1.5349.2192-2.3051-.2011-.7702-.6679-1.4445-1.3179-1.9038-.65-.4594-1.4415-.6742-2.2346-.6066-.7931.0677-1.5368.4135-2.0996.9763-.56283.5629-.90863 1.3065-.9763 2.0996-.06766.7931.14716 1.5846.60651 2.2346.45936.6501 1.13369 1.1169 1.90389 1.3179.7701.201 1.5866.1234 2.305-.2192l1.125 1.125c.2114.2114.498.3301.7969.3301.2989 0 .5855-.1187.7969-.3301.2113-.2113.3301-.498.3301-.7969 0-.2988-.1188-.5855-.3301-.7968l-1.125-1.125Zm-4.17-1.4541c0-.2225.066-.44.1896-.625.1236-.185.2993-.3292.5049-.4144.2055-.0851.4317-.1074.65-.064.2182.0434.4186.1506.576.3079.1573.1573.2644.3578.3079.576.0434.2183.0211.4445-.0641.65-.0851.2056-.2293.3813-.4143.5049-.185.1236-.4025.1896-.625.1896-.2984 0-.5845-.1185-.7955-.3295-.211-.211-.3295-.4971-.3295-.7955Z"/></svg>',
|
|
19
19
|
"check-circle": '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14"><path fill="currentColor" d="M10.0306 4.96938c.0699.06967.1254.15247.1633.24363.0378.09116.0573.1889.0573.28762 0 .09871-.0195.19645-.0573.28761-.0379.09116-.0934.17396-.1633.24364L6.53063 9.53187c-.06968.06992-.15247.1254-.24364.16326-.09116.03785-.1889.05734-.28761.05734-.09871 0-.19645-.01949-.28762-.05734-.09116-.03786-.17395-.09334-.24363-.16326l-1.5-1.5c-.06977-.06976-.12511-.15258-.16286-.24373-.03776-.09116-.05719-.18885-.05719-.28752 0-.09866.01943-.19635.05719-.28751.03775-.09115.09309-.17397.16286-.24373.06976-.06977.15259-.12511.24374-.16287.09115-.03775.18885-.05719.28751-.05719s.19636.01944.28751.05719c.09115.03776.17397.0931.24374.16287L6 7.9375l2.96938-2.97c.06978-.06961.15259-.12478.24371-.16237.09111-.03758.18874-.05683.2873-.05666.09856.00018.19612.01978.28711.05768.09098.0379.1736.09337.2431.16323ZM13.75 7c0 1.33502-.3959 2.64007-1.1376 3.7501-.7417 1.11-1.7959 1.9752-3.02928 2.4861-1.23341.5109-2.5906.6446-3.89998.3841-1.30937-.2605-2.5121-.9033-3.45611-1.8473-.944-.944-1.586877-2.14677-1.847328-3.45614-.26045-1.30937-.126777-2.66657.384114-3.89997C1.27471 3.18349 2.13987 2.12928 3.2499 1.38758 4.35994.645881 5.66498.25 7 .25c1.78961.001985 3.5053.713781 4.7708 1.97922C13.0362 3.49466 13.748 5.2104 13.75 7Zm-1.5 0c0-1.03835-.3079-2.05339-.8848-2.91674-.5769-.86336-1.3968-1.53627-2.35611-1.93363-.95931-.39736-2.01491-.50133-3.03331-.29875-1.0184.20257-1.95386.70258-2.68809 1.43681-.73422.73422-1.23424 1.66969-1.43681 2.68809-.20257 1.0184-.0986 2.074.29876 3.03331.39736.95931 1.07026 1.77921 1.93362 2.35611.86336.5769 1.87839.8848 2.91674.8848 1.39193-.0015 2.72643-.5551 3.7107-1.5393C11.6949 9.72642 12.2485 8.39193 12.25 7Z"/></svg>',
|
|
20
|
-
gear: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22"><path fill="currentColor" d="M11 6.12507c-.9642 0-1.90671.28592-2.7084.82159-.80169.53567-1.42653 1.29704-1.79551 2.18783-.36898.89081-.46552 1.87101-.27742 2.81661.18811.9457.6524 1.8143 1.33419 2.4961.68178.6818 1.55042 1.1461 2.49604 1.3342.9457.1881 1.9259.0916 2.8167-.2774s1.6521-.9938 2.1878-1.7955c.5357-.8017.8216-1.7442.8216-2.7084-.0015-1.2925-.5156-2.53161-1.4295-3.44553-.9139-.91392-2.153-1.42801-3.4455-1.4295Zm0 7.50003c-.5192 0-1.02669-.154-1.45837-.4424-.43168-.2885-.76813-.6984-.96681-1.1781-.19868-.4796-.25067-1.0074-.14938-1.5166.10129-.50924.35129-.97697.71841-1.34408.36711-.36712.83484-.61712 1.34405-.71841.5092-.10129 1.037-.0493 1.5166.14938.4797.19868.8897.53513 1.1781.96681.2884.43168.4424.9392.4424 1.4584 0 .6962-.2766 1.3638-.7688 1.8561-.4923.4923-1.16.7689-1.8562.7689Zm8.625-2.551v-.1481l1.3125-1.64155c.1102-.13755.1865-.29905.2228-.4715s.0316-.35102-.0137-.52131c-.2369-.89334-.5909-1.75142-1.0528-2.55188-.089-.15264-.2127-.28218-.3611-.37811-.1484-.09594-.3173-.15557-.493-.17408l-2.0888-.23437-.104-.10406-.2344-2.08969c-.0186-.17556-.0783-.34426-.1743-.49247-.0959-.1482-.2254-.27175-.3779-.36066-.8005-.46341-1.6589-.81869-2.5528-1.056559-.1704-.044683-.349-.048704-.5213-.01174-.1723.036965-.3335.113881-.4706.224549l-1.6415 1.3125h-.1482l-1.64152-1.3125C9.14683.9524 8.98532.87608 8.81288.839767c-.17245-.036314-.35102-.031606-.52132.013744-.89357.238319-1.75165.593909-2.55187 1.057499-.15205.08854-.28121.2115-.37712.35901-.0959.14752-.15586.31547-.17507.49037l-.23437 2.08875-.10407.10406-2.08968.23437c-.17556.01865-.34426.07835-.49247.17428-.14821.09593-.27176.22539-.36066.37791-.46211.80072-.81613 1.65912-1.052812 2.55281-.045195.17016-.049823.34855-.013512.52082.03631.17227.112546.33362.222574.47106L2.375 10.926v.1481l-1.3125 1.6416c-.110173.1375-.186492.299-.222806.4715-.036313.1724-.031605.351.013744.5213.238622.8936.594522 1.7517 1.058442 2.5519.08844.1519.21126.281.3586.3769.14734.0959.3151.1559.48983.1753l2.08875.2325.10407.104.23437 2.0916c.01865.1756.07835.3443.17428.4925.09592.1482.22538.2717.37791.3606.80052.4634 1.65893.8187 2.55281 1.0566.17045.0447.349.0487.52129.0117.17228-.0369.33347-.1139.47059-.2245l1.64152-1.3125h.1482l1.6415 1.3125c.1376.1101.2991.1865.4715.2228.1725.0363.351.0316.5213-.0138.8934-.2368 1.7514-.5908 2.5519-1.0528.1524-.0883.2819-.2112.3782-.3587.0962-.1475.1565-.3156.1759-.4907l.2325-2.0887.104-.1041 2.0897-.239c.1751-.0194.3432-.0797.4907-.1759.1475-.0963.2704-.2258.3587-.3782.4634-.8005.8187-1.6589 1.0566-2.5528.0448-.1699.0493-.3479.013-.5198-.0363-.172-.1124-.333-.2221-.4702l-1.3125-1.6416Zm-2.2612-.4584c.015.256.015.5127 0 .7687-.0168.2784.0704.553.2446.7707l1.2038 1.5047c-.1136.3363-.2492.6648-.406.9834l-1.9153.2128c-.2773.0317-.5329.1654-.7171.375-.1704.1919-.3519.3735-.5438.5438-.2096.1842-.3433.4398-.375.7171l-.2119 1.9144c-.3185.1574-.647.2936-.9834.4078l-1.5047-1.2047c-.1997-.1593-.4477-.2459-.7031-.2456h-.0675c-.2561.015-.5127.015-.7688 0-.2781-.0165-.5525.0703-.7706.2438l-1.50469 1.2047c-.33634-.1137-.66486-.2493-.98343-.406l-.21282-1.9153c-.0317-.2773-.16536-.5329-.375-.7172-.19187-.1703-.37344-.3519-.54375-.5437-.18426-.2097-.43988-.3433-.71718-.375l-1.91438-.2119c-.15734-.3185-.29357-.647-.40781-.9834l1.20375-1.5047c.17424-.2177.26144-.4923.24469-.7707-.01501-.256-.01501-.5127 0-.7687.01675-.2783-.07045-.553-.24469-.77063L3.18781 8.34038c.11364-.33634.24924-.66486.40594-.98343l1.91531-.21281c.27731-.03171.53292-.16537.71719-.375.17031-.19188.35188-.37345.54375-.54375.20964-.18427.3433-.43989.375-.71719l.21188-1.91438c.31852-.15734.64704-.29357.98343-.40781L9.845 4.3907c.2181.17343.4925.26023.7706.24375.2561-.015.5127-.015.7688 0 .2782.01701.5528-.06985.7706-.24375l1.5047-1.20469c.3364.11424.6649.25047.9834.40781l.2128 1.91532c.0317.2773.1654.53292.375.71718.1919.17031.3735.35188.5438.54375.1843.20964.4399.3433.7172.375l1.9143.21188c.1574.31852.2936.64704.4079.98343l-1.2038 1.50469c-.1749.21743-.2628.49203-.2465.77063Z"/></svg>',
|
|
20
|
+
gear: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" aria-hidden="true"><path fill="currentColor" d="M11 6.12507c-.9642 0-1.90671.28592-2.7084.82159-.80169.53567-1.42653 1.29704-1.79551 2.18783-.36898.89081-.46552 1.87101-.27742 2.81661.18811.9457.6524 1.8143 1.33419 2.4961.68178.6818 1.55042 1.1461 2.49604 1.3342.9457.1881 1.9259.0916 2.8167-.2774s1.6521-.9938 2.1878-1.7955c.5357-.8017.8216-1.7442.8216-2.7084-.0015-1.2925-.5156-2.53161-1.4295-3.44553-.9139-.91392-2.153-1.42801-3.4455-1.4295Zm0 7.50003c-.5192 0-1.02669-.154-1.45837-.4424-.43168-.2885-.76813-.6984-.96681-1.1781-.19868-.4796-.25067-1.0074-.14938-1.5166.10129-.50924.35129-.97697.71841-1.34408.36711-.36712.83484-.61712 1.34405-.71841.5092-.10129 1.037-.0493 1.5166.14938.4797.19868.8897.53513 1.1781.96681.2884.43168.4424.9392.4424 1.4584 0 .6962-.2766 1.3638-.7688 1.8561-.4923.4923-1.16.7689-1.8562.7689Zm8.625-2.551v-.1481l1.3125-1.64155c.1102-.13755.1865-.29905.2228-.4715s.0316-.35102-.0137-.52131c-.2369-.89334-.5909-1.75142-1.0528-2.55188-.089-.15264-.2127-.28218-.3611-.37811-.1484-.09594-.3173-.15557-.493-.17408l-2.0888-.23437-.104-.10406-.2344-2.08969c-.0186-.17556-.0783-.34426-.1743-.49247-.0959-.1482-.2254-.27175-.3779-.36066-.8005-.46341-1.6589-.81869-2.5528-1.056559-.1704-.044683-.349-.048704-.5213-.01174-.1723.036965-.3335.113881-.4706.224549l-1.6415 1.3125h-.1482l-1.64152-1.3125C9.14683.9524 8.98532.87608 8.81288.839767c-.17245-.036314-.35102-.031606-.52132.013744-.89357.238319-1.75165.593909-2.55187 1.057499-.15205.08854-.28121.2115-.37712.35901-.0959.14752-.15586.31547-.17507.49037l-.23437 2.08875-.10407.10406-2.08968.23437c-.17556.01865-.34426.07835-.49247.17428-.14821.09593-.27176.22539-.36066.37791-.46211.80072-.81613 1.65912-1.052812 2.55281-.045195.17016-.049823.34855-.013512.52082.03631.17227.112546.33362.222574.47106L2.375 10.926v.1481l-1.3125 1.6416c-.110173.1375-.186492.299-.222806.4715-.036313.1724-.031605.351.013744.5213.238622.8936.594522 1.7517 1.058442 2.5519.08844.1519.21126.281.3586.3769.14734.0959.3151.1559.48983.1753l2.08875.2325.10407.104.23437 2.0916c.01865.1756.07835.3443.17428.4925.09592.1482.22538.2717.37791.3606.80052.4634 1.65893.8187 2.55281 1.0566.17045.0447.349.0487.52129.0117.17228-.0369.33347-.1139.47059-.2245l1.64152-1.3125h.1482l1.6415 1.3125c.1376.1101.2991.1865.4715.2228.1725.0363.351.0316.5213-.0138.8934-.2368 1.7514-.5908 2.5519-1.0528.1524-.0883.2819-.2112.3782-.3587.0962-.1475.1565-.3156.1759-.4907l.2325-2.0887.104-.1041 2.0897-.239c.1751-.0194.3432-.0797.4907-.1759.1475-.0963.2704-.2258.3587-.3782.4634-.8005.8187-1.6589 1.0566-2.5528.0448-.1699.0493-.3479.013-.5198-.0363-.172-.1124-.333-.2221-.4702l-1.3125-1.6416Zm-2.2612-.4584c.015.256.015.5127 0 .7687-.0168.2784.0704.553.2446.7707l1.2038 1.5047c-.1136.3363-.2492.6648-.406.9834l-1.9153.2128c-.2773.0317-.5329.1654-.7171.375-.1704.1919-.3519.3735-.5438.5438-.2096.1842-.3433.4398-.375.7171l-.2119 1.9144c-.3185.1574-.647.2936-.9834.4078l-1.5047-1.2047c-.1997-.1593-.4477-.2459-.7031-.2456h-.0675c-.2561.015-.5127.015-.7688 0-.2781-.0165-.5525.0703-.7706.2438l-1.50469 1.2047c-.33634-.1137-.66486-.2493-.98343-.406l-.21282-1.9153c-.0317-.2773-.16536-.5329-.375-.7172-.19187-.1703-.37344-.3519-.54375-.5437-.18426-.2097-.43988-.3433-.71718-.375l-1.91438-.2119c-.15734-.3185-.29357-.647-.40781-.9834l1.20375-1.5047c.17424-.2177.26144-.4923.24469-.7707-.01501-.256-.01501-.5127 0-.7687.01675-.2783-.07045-.553-.24469-.77063L3.18781 8.34038c.11364-.33634.24924-.66486.40594-.98343l1.91531-.21281c.27731-.03171.53292-.16537.71719-.375.17031-.19188.35188-.37345.54375-.54375.20964-.18427.3433-.43989.375-.71719l.21188-1.91438c.31852-.15734.64704-.29357.98343-.40781L9.845 4.3907c.2181.17343.4925.26023.7706.24375.2561-.015.5127-.015.7688 0 .2782.01701.5528-.06985.7706-.24375l1.5047-1.20469c.3364.11424.6649.25047.9834.40781l.2128 1.91532c.0317.2773.1654.53292.375.71718.1919.17031.3735.35188.5438.54375.1843.20964.4399.3433.7172.375l1.9143.21188c.1574.31852.2936.64704.4079.98343l-1.2038 1.50469c-.1749.21743-.2628.49203-.2465.77063Z"/></svg>',
|
|
21
21
|
lightbulb: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 13 16"><path fill="currentColor" d="M9.84994 14.5002c0 .1989-.07902.3897-.21967.5303-.14066.1407-.33142.2197-.53033.2197h-5c-.19891 0-.38968-.079-.53033-.2197-.14065-.1406-.21967-.3314-.21967-.5303 0-.1989.07902-.3897.21967-.5303.14065-.1407.33142-.2197.53033-.2197h5c.19891 0 .38967.079.53033.2197.14065.1406.21967.3314.21967.5303Zm2.49996-8.00001c.0023.87138-.1945 1.73175-.5755 2.51544-.381.78368-.9359 1.46997-1.6226 2.00647-.093.0708-.16853.162-.22085.2665-.05233.1046-.08004.2197-.08101.3366v.125c0 .3315-.1317.6495-.36612.8839-.23442.2344-.55236.3661-.88388.3661h-4c-.33152 0-.64947-.1317-.88389-.3661-.23442-.2344-.36611-.5524-.36611-.8839v-.125c-.00014-.115-.0267-.2284-.07763-.3314-.05094-.1031-.12488-.193-.21612-.263-.68477-.5334-1.23925-1.2155-1.62148-1.9948-.38223-.77929-.582201-1.63532-.584772-2.50331C.833063 3.41832 3.34994.825195 6.46181.750195c.76665-.018422 1.52923.116696 2.24287.397405.71365.2807 1.36392.70132 1.91262 1.23711.5486.53578.9846 1.1759 1.2821 1.88268.2976.70678.4508 1.46594.4505 2.2328Zm-1.5 0c.0002-.5669-.113-1.12811-.3331-1.65058-.22-.52247-.54226-.99565-.9479-1.39168-.40563-.39602-.8864-.70689-1.414-.91431-.52759-.20741-1.09135-.30718-1.65809-.29343-2.29937.055-4.15937 1.97188-4.14687 4.27375.00214.64152.15011 1.27416.43271 1.85009.2826.57592.69244 1.08006 1.19854 1.47429.25496.19678.46453.44618.61444.73128.14992.285.23665.599.25431.9206h3.50625c.018-.3222.10486-.6368.25472-.9226.14986-.2859.35924-.5362.61403-.73428.50754-.39672.91776-.90412 1.19936-1.4835.2817-.57938.4272-1.21543.4256-1.85963Zm-1.25434-.3325c-.06636-.56119-.28826-1.09265-.64067-1.53441-.35241-.44175-.82128-.7762-1.3537-.96559-.1861-.0608-.38859-.04643-.56423.04006-.17565.08648-.31051.23821-.37579.42278-.06527.18458-.05579.38736.02642.56504.08222.17767.23065.31616.4136.38587.26755.09379.50353.26056.68124.48146.17771.2209.29008.48712.32438.76854.02188.19776.12142.37872.27673.50308.0769.06157.16517.1074.25978.13486.09461.02747.1937.03602.29162.02519.09791-.01083.19274-.04085.27905-.08833.08632-.04748.16244-.1115.22402-.1884.06158-.07689.1074-.16517.13487-.25978.02746-.09461.03602-.1937.02518-.29162l-.0025.00125Z"/></svg>',
|
|
22
22
|
"file-search": '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 14"><path fill="currentColor" d="M11.5306 3.97 8.03063.47C7.96097.400261 7.87826.344936 7.78721.307186 7.69616.269437 7.59856.250005 7.5.25h-6C1.16848.25.850537.381696.616117.616117.381696.850537.25 1.16848.25 1.5v11c0 .3315.131696.6495.366117.8839.23442.2344.552363.3661.883883.3661h9c.3315 0 .6495-.1317.8839-.3661.2344-.2344.3661-.5524.3661-.8839v-8c0-.19876-.0789-.38938-.2194-.53ZM9.4375 4H8V2.5625L9.4375 4ZM1.75 12.25V1.75H6.5v3c0 .19891.07902.38968.21967.53033.14065.14065.33142.21967.53033.21967h3v6.75h-8.5Zm6.03-3.03063c.2284-.47897.28015-1.02326.14613-1.53671-.13403-.51344-.44521-.96299-.87858-1.26923-.43337-.30623-.96102-.44945-1.48975-.40433-.52872.04511-1.02449.27564-1.39971.65086-.37523.37522-.60576.87099-.65087 1.39972-.04511.52872.0981 1.05638.40434 1.48975.30624.43336.75579.74457 1.26923.87857.51344.134 1.05773.0823 1.53671-.1461l.75.75c.1409.1409.33199.22.53125.22s.39035-.0791.53125-.22c.1409-.1409.22005-.332.22005-.5313 0-.1992-.07915-.3903-.22005-.53123l-.75-.75ZM5 8.25c0-.14834.04399-.29334.1264-.41668.08241-.12333.19954-.21946.33659-.27623.13704-.05676.28784-.07162.43333-.04268.14548.02894.27912.10037.38401.20526.10489.10489.17632.23853.20526.38401.02894.14549.01408.29629-.04268.43333-.05677.13705-.1529.25418-.27623.33659C6.04334 8.95601 5.89834 9 5.75 9c-.19891 0-.38968-.07902-.53033-.21967C5.07902 8.63968 5 8.44891 5 8.25Z"/></svg>',
|
|
23
23
|
star: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 15 15"><path fill="currentColor" d="M14.5873 6.00333c-.0759-.23292-.2187-.43838-.4105-.59083-.1918-.15245-.4241-.24519-.6682-.26667L9.9461 4.8377 8.55235 1.51645c-.09588-.22586-.25611-.4185-.46072-.553929-.2046-.135425-.44454-.207638-.68991-.207638-.24537 0-.48531.072213-.68991.207638-.20461.135429-.36484.328069-.46071.553929L4.85547 4.8377l-3.5625.30813c-.24538.02032-.479299.11265-.6724.26542-.193101.15276-.336784.35916-.413023.59328-.076238.23412-.081634.48554-.015512.72272s.200817.44954.387185.61045l2.7075 2.3625-.8125 3.515c-.05572.2394-.03965.4898.04619.7201.08585.2303.23767.4301.43648.5746.19881.1444.4358.2271.68132.2376.24553.0105.48871-.0516.69914-.1785l3.0625-1.86 3.06245 1.86c.2105.1267.4536.1886.699.178.2454-.0106.4822-.0933.6809-.2377.1987-.1444.3505-.3442.4363-.5743.0858-.2302.102-.4805.0463-.7198l-.8125-3.515 2.7075-2.3625c.1859-.16149.32-.37429.3853-.61168.0654-.23739.0592-.4888-.0178-.72269Zm-4.1718 2.66375c-.1714.14913-.299.34215-.3689.55831-.0699.21617-.07959.44731-.028.66857l.7119 3.08254-2.68378-1.63c-.1949-.1187-.41869-.1815-.64687-.1815-.22819 0-.45198.0628-.64688.1815l-2.68375 1.63.71188-3.08254c.05158-.22126.04189-.4524-.02803-.66857-.06993-.21616-.19745-.40918-.36885-.55831L2.00359 6.5902l3.13376-.27125c.22692-.01943.44417-.10073.62809-.23507.18393-.13433.32748-.31654.41503-.5268l1.21938-2.90563 1.21937 2.90563c.08755.21026.2311.39247.41503.5268.18392.13434.40117.21564.62809.23507l3.13376.27125-2.3806 2.07688Z"/></svg>',
|
|
@@ -88,7 +88,10 @@ let response = await fetch('${serverIslandUrl}', {
|
|
|
88
88
|
`
|
|
89
89
|
)}
|
|
90
90
|
if (script) {
|
|
91
|
-
if(
|
|
91
|
+
if(
|
|
92
|
+
response.status === 200
|
|
93
|
+
&& response.headers.has('content-type')
|
|
94
|
+
&& response.headers.get('content-type').split(";")[0].trim() === 'text/html') {
|
|
92
95
|
let html = await response.text();
|
|
93
96
|
|
|
94
97
|
// Swap!
|
package/dist/types/astro.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ export interface AstroSettings {
|
|
|
57
57
|
latestAstroVersion: string | undefined;
|
|
58
58
|
serverIslandMap: NonNullable<SSRManifest['serverIslandMap']>;
|
|
59
59
|
serverIslandNameMap: NonNullable<SSRManifest['serverIslandNameMap']>;
|
|
60
|
-
injectedTypes: Array<InjectedType
|
|
60
|
+
injectedTypes: Array<Omit<InjectedType, 'content'> & Partial<Pick<InjectedType, 'content'>>>;
|
|
61
61
|
/**
|
|
62
62
|
* Determine if the build output should be a static, dist folder or a adapter-based server output
|
|
63
63
|
* undefined when unknown
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "astro",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.3",
|
|
4
4
|
"description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "withastro",
|
|
@@ -198,9 +198,9 @@
|
|
|
198
198
|
"remark-code-titles": "^0.1.2",
|
|
199
199
|
"rollup": "^4.27.4",
|
|
200
200
|
"sass": "^1.81.0",
|
|
201
|
-
"undici": "^
|
|
201
|
+
"undici": "^7.2.0",
|
|
202
202
|
"unified": "^11.0.5",
|
|
203
|
-
"vitest": "^
|
|
203
|
+
"vitest": "^3.0.0-beta.3",
|
|
204
204
|
"astro-scripts": "0.0.14"
|
|
205
205
|
},
|
|
206
206
|
"engines": {
|
package/types/content.d.ts
CHANGED
|
@@ -89,27 +89,29 @@ declare module 'astro:content' {
|
|
|
89
89
|
input: CollectionConfig<S>,
|
|
90
90
|
): CollectionConfig<S>;
|
|
91
91
|
|
|
92
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
92
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
93
93
|
export const getEntryBySlug: (...args: any[]) => any;
|
|
94
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
94
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
95
95
|
export const getDataEntryById: (...args: any[]) => any;
|
|
96
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
96
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
97
97
|
export const getCollection: (...args: any[]) => any;
|
|
98
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
98
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
99
99
|
export const getEntry: (...args: any[]) => any;
|
|
100
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
100
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
101
101
|
export const getEntries: (...args: any[]) => any;
|
|
102
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
102
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
103
103
|
export const reference: (...args: any[]) => any;
|
|
104
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
104
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
105
105
|
export type CollectionKey = any;
|
|
106
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
106
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
107
107
|
// biome-ignore lint/correctness/noUnusedVariables: stub generic type to match generated type
|
|
108
108
|
export type CollectionEntry<C> = any;
|
|
109
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
109
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
110
110
|
export type ContentCollectionKey = any;
|
|
111
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
111
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
112
112
|
export type DataCollectionKey = any;
|
|
113
|
-
/** Run `astro sync` to generate high fidelity types */
|
|
113
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
114
114
|
export type ContentConfig = any;
|
|
115
|
+
/** Run `astro dev` or `astro sync` to generate high fidelity types */
|
|
116
|
+
export const render: (entry: any) => any;
|
|
115
117
|
}
|