import gallery from '$icons/gallery.json';
import { parseIconListDocument } from '$lib/components/data/icon-list';
const sourceModules = import.meta.glob<string>(
['$icons/*.svg', '$icons/skills/color/*.svg'],
{
eager: true,
import: 'default',
query: '?url'
}
);
const sourcesByRelativePath = new Map(
Object.entries(sourceModules).map(([path, source]) => {
const relativePath = path.match(
/(?:^|\/)(skills\/color\/[^/]+|[^/]+)$/u
)?.[1];
return [relativePath, source];
})
);
export const iconGalleryDocument = parseIconListDocument(
gallery,
(source) => {
const relativePath = source.replace(/^\.\//u, '');
const resolved = sourcesByRelativePath.get(relativePath);
if (!resolved)
throw new Error(
`Icon source is not available: ${source}.`
);
return resolved;
}
);
Browse the implementation files for tool.io icons.