feat(header): icon nav redesign + migrate icons mdi→lucide
- Header desktop nav: social icons grouped in a wald-tinted pill with labels, active-state (aria-current + bold), opacity hover (no per-item bg) - Mobile overlay: social links as icon+label rows with active-state - Search button: lucide:search, icon-only - Migrate all icons mdi→lucide app-wide (234 refs); brand/language logos (google, whatsapp, mastodon, telegram, language-*) stay on mdi - generate-icons: emit mdi + lucide subsets; add @iconify-json/lucide - iconify-offline: register lucide collection - scripts/icon-map|validate|apply: reusable migration tooling Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Generated
+11
@@ -26,6 +26,7 @@
|
||||
"sharp": "^0.34.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/lucide": "^1.2.114",
|
||||
"@iconify-json/mdi": "^1.2.3",
|
||||
"@sveltejs/adapter-node": "^5.2.12",
|
||||
"@sveltejs/kit": "^2.65.0",
|
||||
@@ -610,6 +611,16 @@
|
||||
"url": "https://github.com/sponsors/ayuhito"
|
||||
}
|
||||
},
|
||||
"node_modules/@iconify-json/lucide": {
|
||||
"version": "1.2.114",
|
||||
"resolved": "https://registry.npmjs.org/@iconify-json/lucide/-/lucide-1.2.114.tgz",
|
||||
"integrity": "sha512-NbvH3B1BYo6wBtS7joLi7f2UVQOqK2dtZodMFf3kkBs+Tnh9TkRuy8oVHr1RM8UK6bUtvAXxfNlGAah0CuvPCw==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@iconify/types": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@iconify-json/mdi": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.2.3.tgz",
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"prepare": "svelte-kit sync || true"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/lucide": "^1.2.114",
|
||||
"@iconify-json/mdi": "^1.2.3",
|
||||
"@sveltejs/adapter-node": "^5.2.12",
|
||||
"@sveltejs/kit": "^2.65.0",
|
||||
|
||||
+82
-64
@@ -19,8 +19,6 @@ import { fileURLToPath } from 'node:url';
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const ROOT = path.resolve(__dirname, '..');
|
||||
const SRC_DIR = path.join(ROOT, 'src');
|
||||
const ICONS_JSON = path.join(ROOT, 'node_modules', '@iconify-json', 'mdi', 'icons.json');
|
||||
const OUT_FILE = path.join(ROOT, 'src', 'lib', 'iconify-mdi-subset.generated.json');
|
||||
|
||||
/**
|
||||
* Icons that appear via dynamic bindings (CMS data, conditional expressions)
|
||||
@@ -28,59 +26,70 @@ const OUT_FILE = path.join(ROOT, 'src', 'lib', 'iconify-mdi-subset.generated.jso
|
||||
* pick icons that appear blank — better than shipping the full collection.
|
||||
*/
|
||||
const EXTRA_ICONS = [
|
||||
// PostActions: dynamic share/copy state
|
||||
'share-variant-outline',
|
||||
'link-variant',
|
||||
// Search: file-type fallback
|
||||
'file-outline',
|
||||
// Common social icons editors pick (Header.svelte: social.icon)
|
||||
// Brand/Logo-Icons ohne Lucide-Pendant (Editors picken sie als social.icon)
|
||||
'google',
|
||||
'whatsapp',
|
||||
'mastodon',
|
||||
'telegram',
|
||||
// Sprach-Logos (CodeBlock: dynamische language->icon-Map, kein literal icon="")
|
||||
'language-javascript',
|
||||
'language-python',
|
||||
'language-rust',
|
||||
];
|
||||
|
||||
/**
|
||||
* Lucide-Icons aus CMS-Daten (Header social.icon, FilesBlock file types, …) +
|
||||
* dynamische Bindings, die der statische Scan nicht findet.
|
||||
*/
|
||||
const EXTRA_LUCIDE = [
|
||||
// Nav / Header social.icon (CMS)
|
||||
'calendar-1',
|
||||
'contact-round',
|
||||
'search',
|
||||
'x',
|
||||
'cloud',
|
||||
'mail',
|
||||
'facebook',
|
||||
'youtube',
|
||||
'map',
|
||||
'video',
|
||||
'instagram',
|
||||
'twitter',
|
||||
'youtube',
|
||||
'linkedin',
|
||||
'mastodon',
|
||||
'github',
|
||||
'email',
|
||||
'email-outline',
|
||||
'phone',
|
||||
'whatsapp',
|
||||
'telegram',
|
||||
'import-contacts',
|
||||
'arrow-top-right',
|
||||
'open-in-new',
|
||||
'card-account-details-outline',
|
||||
'qrcode',
|
||||
'sort-alphabetical-ascending',
|
||||
'account-group-outline',
|
||||
// Common file-type icons (FilesBlock: f.iconName)
|
||||
'file-pdf-box',
|
||||
'file-word-box',
|
||||
'file-excel-box',
|
||||
// PostActions / Links
|
||||
'share-2',
|
||||
'link',
|
||||
'external-link',
|
||||
'arrow-up-right',
|
||||
// Kontakt/Verzeichnis
|
||||
'id-card',
|
||||
'qr-code',
|
||||
'arrow-down-a-z',
|
||||
'users',
|
||||
// File-type icons (FilesBlock: dynamic f.iconName)
|
||||
'file',
|
||||
'file-text',
|
||||
'file-spreadsheet',
|
||||
'file-image',
|
||||
'file-video',
|
||||
'file-music',
|
||||
// Tag/link/banner fallbacks (LinkListBlock, Tags, DeadlineBannerBlock)
|
||||
'link',
|
||||
'tag-outline',
|
||||
'flag-outline',
|
||||
'information-outline',
|
||||
// Windkarte: dynamic wind-turbine used in panel
|
||||
'wind-turbine',
|
||||
// OrganisationsMapBlock: activate-overlay
|
||||
'cursor-default-click-outline',
|
||||
// CalendarBlock: social-image modal button
|
||||
'image-outline',
|
||||
// StellingnahmeGenerator: KI-Regeln-Accordion + Detail-Anpassen
|
||||
'tune-variant',
|
||||
'tune',
|
||||
'check-decagram',
|
||||
// CMS-Content (Social-Link o.ä.): tauchte als Runtime-Fetch in Lighthouse auf
|
||||
'cloud',
|
||||
'file-down',
|
||||
'presentation',
|
||||
// Tag/flag/info/format fallbacks
|
||||
'tag',
|
||||
'flag',
|
||||
'info',
|
||||
'type',
|
||||
'image',
|
||||
// Windkarte / Map / Generator
|
||||
'fan',
|
||||
'mouse-pointer-click',
|
||||
'sliders-horizontal',
|
||||
'badge-check',
|
||||
];
|
||||
|
||||
const STATIC_PATTERN = /icon="mdi:([a-z0-9-]+)"/g;
|
||||
|
||||
function walk(dir) {
|
||||
const out = [];
|
||||
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
||||
@@ -95,27 +104,28 @@ function walk(dir) {
|
||||
return out;
|
||||
}
|
||||
|
||||
function scanStatic() {
|
||||
function scanStatic(prefix) {
|
||||
const pattern = new RegExp(`icon="${prefix}:([a-z0-9-]+)"`, 'g');
|
||||
const found = new Set();
|
||||
for (const file of walk(SRC_DIR)) {
|
||||
const content = fs.readFileSync(file, 'utf8');
|
||||
let m;
|
||||
while ((m = STATIC_PATTERN.exec(content)) !== null) {
|
||||
while ((m = pattern.exec(content)) !== null) {
|
||||
found.add(m[1]);
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
function main() {
|
||||
if (!fs.existsSync(ICONS_JSON)) {
|
||||
console.error(
|
||||
`[generate-icons] missing ${ICONS_JSON} — run \`npm install\` first.`,
|
||||
);
|
||||
/** Build a tree-shaken subset for one Iconify collection. */
|
||||
function buildSubset({ prefix, pkg, outFile, extra }) {
|
||||
const iconsJson = path.join(ROOT, 'node_modules', '@iconify-json', pkg, 'icons.json');
|
||||
if (!fs.existsSync(iconsJson)) {
|
||||
console.error(`[generate-icons] missing ${iconsJson} — run \`npm install\` first.`);
|
||||
process.exit(1);
|
||||
}
|
||||
const collection = JSON.parse(fs.readFileSync(ICONS_JSON, 'utf8'));
|
||||
const wanted = new Set([...scanStatic(), ...EXTRA_ICONS]);
|
||||
const collection = JSON.parse(fs.readFileSync(iconsJson, 'utf8'));
|
||||
const wanted = new Set([...scanStatic(prefix), ...extra]);
|
||||
|
||||
const icons = {};
|
||||
const aliases = {};
|
||||
@@ -142,22 +152,30 @@ function main() {
|
||||
icons,
|
||||
...(Object.keys(aliases).length ? { aliases } : {}),
|
||||
};
|
||||
fs.writeFileSync(outFile, JSON.stringify(subset, null, 2) + '\n');
|
||||
|
||||
fs.writeFileSync(OUT_FILE, JSON.stringify(subset, null, 2) + '\n');
|
||||
|
||||
const sizeBefore = fs.statSync(ICONS_JSON).size;
|
||||
const sizeAfter = fs.statSync(OUT_FILE).size;
|
||||
const sizeAfter = fs.statSync(outFile).size;
|
||||
console.log(
|
||||
`[generate-icons] ${Object.keys(icons).length} icons + ${Object.keys(aliases).length} aliases → ${path.relative(ROOT, OUT_FILE)}`,
|
||||
);
|
||||
console.log(
|
||||
`[generate-icons] ${(sizeBefore / 1024 / 1024).toFixed(2)} MB → ${(sizeAfter / 1024).toFixed(1)} KB (${((1 - sizeAfter / sizeBefore) * 100).toFixed(1)}% smaller)`,
|
||||
`[generate-icons] ${prefix}: ${Object.keys(icons).length} icons + ${Object.keys(aliases).length} aliases → ${path.relative(ROOT, outFile)} (${(sizeAfter / 1024).toFixed(1)} KB)`,
|
||||
);
|
||||
if (missing.length) {
|
||||
console.warn(
|
||||
`[generate-icons] ${missing.length} icon(s) not found in MDI: ${missing.join(', ')}`,
|
||||
);
|
||||
console.warn(`[generate-icons] ${prefix}: ${missing.length} not found: ${missing.join(', ')}`);
|
||||
}
|
||||
}
|
||||
|
||||
function main() {
|
||||
buildSubset({
|
||||
prefix: 'mdi',
|
||||
pkg: 'mdi',
|
||||
outFile: path.join(ROOT, 'src', 'lib', 'iconify-mdi-subset.generated.json'),
|
||||
extra: EXTRA_ICONS,
|
||||
});
|
||||
buildSubset({
|
||||
prefix: 'lucide',
|
||||
pkg: 'lucide',
|
||||
outFile: path.join(ROOT, 'src', 'lib', 'iconify-lucide-subset.generated.json'),
|
||||
extra: EXTRA_LUCIDE,
|
||||
});
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
// Rewrite `mdi:NAME` -> `lucide:MAPPED` across frontend src + CMS content.
|
||||
// KEEP_MDI names are left untouched (brand/language logos with no lucide pendant).
|
||||
import { MAP, KEEP_MDI } from './icon-map.mjs';
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||
const WEB_ROOT = path.resolve(ROOT, '..');
|
||||
|
||||
const TARGETS = [
|
||||
{ dir: path.join(ROOT, 'src'), exts: /\.(svelte|ts|tsx|js|mjs)$/ },
|
||||
{ dir: path.join(WEB_ROOT, 'cms_content', 'windwiderstand'), exts: /\.json5$/ },
|
||||
];
|
||||
const SKIP_DIR = /(node_modules|\.history|\.search|_legacy|\.svelte-kit)/;
|
||||
|
||||
const stats = { files: 0, repl: 0, kept: {} };
|
||||
|
||||
function walk(dir, exts, acc) {
|
||||
for (const e of fs.readdirSync(dir, { withFileTypes: true })) {
|
||||
if (e.name.startsWith('.') && e.name !== '.') continue;
|
||||
const full = path.join(dir, e.name);
|
||||
if (SKIP_DIR.test(full)) continue;
|
||||
if (e.isDirectory()) walk(full, exts, acc);
|
||||
else if (exts.test(e.name)) acc.push(full);
|
||||
}
|
||||
return acc;
|
||||
}
|
||||
|
||||
const RE = /mdi:([a-z0-9-]+)/g;
|
||||
for (const { dir, exts } of TARGETS) {
|
||||
if (!fs.existsSync(dir)) continue;
|
||||
for (const file of walk(dir, exts, [])) {
|
||||
const src = fs.readFileSync(file, 'utf8');
|
||||
let n = 0;
|
||||
const out = src.replace(RE, (m, name) => {
|
||||
if (KEEP_MDI.has(name)) {
|
||||
stats.kept[name] = (stats.kept[name] || 0) + 1;
|
||||
return m;
|
||||
}
|
||||
const l = MAP[name];
|
||||
if (!l) return m; // unknown -> leave, validator should have caught
|
||||
n++;
|
||||
return `lucide:${l}`;
|
||||
});
|
||||
if (n > 0) {
|
||||
fs.writeFileSync(file, out);
|
||||
stats.files++;
|
||||
stats.repl += n;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`rewrote ${stats.repl} refs in ${stats.files} files`);
|
||||
console.log('kept on mdi:', JSON.stringify(stats.kept));
|
||||
@@ -0,0 +1,104 @@
|
||||
// mdi -> lucide migration map. Names without a sensible lucide pendant
|
||||
// (brand/language logos) intentionally stay on mdi — listed in KEEP_MDI.
|
||||
export const KEEP_MDI = new Set([
|
||||
'google', 'whatsapp', 'mastodon', // brands missing in lucide
|
||||
'language-javascript', 'language-python', 'language-rust', // language logos
|
||||
]);
|
||||
|
||||
export const MAP = {
|
||||
'account-group-outline': 'users',
|
||||
'alert-circle': 'circle-alert',
|
||||
'alert-circle-outline': 'circle-alert',
|
||||
'arrow-right': 'arrow-right',
|
||||
'arrow-top-right': 'arrow-up-right',
|
||||
'calendar': 'calendar',
|
||||
'calendar-blank': 'calendar',
|
||||
'calendar-clock': 'calendar-clock',
|
||||
'calendar-export': 'calendar-arrow-up',
|
||||
'calendar-month-outline': 'calendar',
|
||||
'calendar-plus': 'calendar-plus',
|
||||
'calendar-search': 'calendar-search',
|
||||
'card-account-details-outline': 'id-card',
|
||||
'check': 'check',
|
||||
'check-circle': 'circle-check',
|
||||
'check-decagram': 'badge-check',
|
||||
'chevron-down': 'chevron-down',
|
||||
'chevron-left': 'chevron-left',
|
||||
'chevron-right': 'chevron-right',
|
||||
'chevron-up': 'chevron-up',
|
||||
'clock-alert-outline': 'alarm-clock',
|
||||
'clock-outline': 'clock',
|
||||
'clock-remove-outline': 'clock-fading',
|
||||
'close': 'x',
|
||||
'cloud': 'cloud',
|
||||
'cloud-off-outline': 'cloud-off',
|
||||
'code-json': 'braces',
|
||||
'comment-outline': 'message-circle',
|
||||
'comment-text-outline': 'message-square-text',
|
||||
'console': 'terminal',
|
||||
'content-copy': 'copy',
|
||||
'content-save-outline': 'save',
|
||||
'cursor-default-click': 'mouse-pointer-click',
|
||||
'cursor-default-click-outline': 'mouse-pointer-click',
|
||||
'database-outline': 'database',
|
||||
'domain': 'building-2',
|
||||
'download': 'download',
|
||||
'download-outline': 'download',
|
||||
'drag-vertical': 'grip-vertical',
|
||||
'email': 'mail',
|
||||
'email-outline': 'mail',
|
||||
'facebook': 'facebook',
|
||||
'file-document-edit-outline': 'file-pen',
|
||||
'file-document-outline': 'file-text',
|
||||
'file-download': 'file-down',
|
||||
'file-excel-box': 'file-spreadsheet',
|
||||
'file-image': 'file-image',
|
||||
'file-outline': 'file',
|
||||
'file-pdf-box': 'file-text',
|
||||
'file-powerpoint-box': 'presentation',
|
||||
'file-word-box': 'file-text',
|
||||
'flag-outline': 'flag',
|
||||
'folder-zip': 'folder-archive',
|
||||
'format-text-variant-outline': 'type',
|
||||
'home': 'house',
|
||||
'home-group': 'house',
|
||||
'home-outline': 'house',
|
||||
'image-outline': 'image',
|
||||
'information-outline': 'info',
|
||||
'link': 'link',
|
||||
'link-variant': 'link',
|
||||
'loading': 'loader-circle',
|
||||
'magnify': 'search',
|
||||
'magnify-plus': 'zoom-in',
|
||||
'map': 'map',
|
||||
'map-marker': 'map-pin',
|
||||
'map-marker-outline': 'map-pin',
|
||||
'map-outline': 'map',
|
||||
'menu': 'menu',
|
||||
'open-in-new': 'external-link',
|
||||
'pencil-outline': 'pencil',
|
||||
'phone': 'phone',
|
||||
'phone-outline': 'phone',
|
||||
'play': 'play',
|
||||
'printer': 'printer',
|
||||
'printer-outline': 'printer',
|
||||
'qrcode': 'qr-code',
|
||||
'refresh': 'refresh-cw',
|
||||
'reply': 'reply',
|
||||
'robot-outline': 'bot',
|
||||
'rss': 'rss',
|
||||
'ruler-square': 'ruler',
|
||||
'share-variant': 'share-2',
|
||||
'share-variant-outline': 'share-2',
|
||||
'shield-check-outline': 'shield-check',
|
||||
'sort-alphabetical-ascending': 'arrow-down-a-z',
|
||||
'transmission-tower': 'radio-tower',
|
||||
'trash-can-outline': 'trash-2',
|
||||
'tune': 'sliders-horizontal',
|
||||
'tune-variant': 'sliders-horizontal',
|
||||
'vector-square': 'square-dashed',
|
||||
'video': 'video',
|
||||
'wind-turbine': 'fan',
|
||||
'xml': 'code',
|
||||
'youtube': 'youtube',
|
||||
};
|
||||
@@ -0,0 +1,33 @@
|
||||
import { MAP, KEEP_MDI } from './icon-map.mjs';
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||
const lucide = JSON.parse(
|
||||
fs.readFileSync(path.join(ROOT, 'node_modules/@iconify-json/lucide/icons.json'), 'utf8'),
|
||||
);
|
||||
const has = (n) => Boolean(lucide.icons[n] || (lucide.aliases && lucide.aliases[n]));
|
||||
|
||||
const all = fs
|
||||
.readFileSync(process.env.TMPDIR + '/mdi_all.txt', 'utf8')
|
||||
.trim()
|
||||
.split('\n')
|
||||
.map((s) => s.replace('mdi:', ''));
|
||||
const cms = ['cloud', 'email', 'facebook', 'map', 'video', 'whatsapp', 'youtube'];
|
||||
const set = [...new Set([...all, ...cms])].sort();
|
||||
|
||||
const bad = [];
|
||||
const unmapped = [];
|
||||
for (const m of set) {
|
||||
if (KEEP_MDI.has(m)) continue;
|
||||
const l = MAP[m];
|
||||
if (l === undefined) {
|
||||
unmapped.push(m);
|
||||
continue;
|
||||
}
|
||||
if (has(l) === false) bad.push(`${m} -> lucide:${l}`);
|
||||
}
|
||||
console.log('total mdi:', set.length, '| keep-mdi:', [...KEEP_MDI].filter((k) => set.includes(k)).length);
|
||||
console.log('UNMAPPED:', unmapped.length ? unmapped.join(', ') : 'none');
|
||||
console.log('INVALID lucide names:', bad.length ? '\n ' + bad.join('\n ') : 'none');
|
||||
@@ -4024,7 +4024,7 @@ export interface components {
|
||||
* @default false
|
||||
*/
|
||||
external: boolean;
|
||||
/** @description Icon identifier (e.g. Iconify). Used for social links; fallback 'mdi:link'. */
|
||||
/** @description Icon identifier (e.g. Iconify). Used for social links; fallback 'lucide:link'. */
|
||||
icon?: string;
|
||||
/** @description Internal key. Not used in app. */
|
||||
internal?: string;
|
||||
@@ -4065,7 +4065,7 @@ export interface components {
|
||||
* @default false
|
||||
*/
|
||||
external: boolean;
|
||||
/** @description Icon identifier (e.g. Iconify). Used for social links; fallback 'mdi:link'. */
|
||||
/** @description Icon identifier (e.g. Iconify). Used for social links; fallback 'lucide:link'. */
|
||||
icon?: string;
|
||||
/** @description Internal key. Not used in app. */
|
||||
internal?: string;
|
||||
@@ -5400,7 +5400,7 @@ export interface components {
|
||||
readonly _slug?: string;
|
||||
/** @description Optional pill color (CSS, e.g. #2d5a27 or rgb()). Admin: color picker + text field. */
|
||||
color?: string;
|
||||
/** @description Optional Iconify icon id (e.g. mdi:map-marker, same as link.icon). */
|
||||
/** @description Optional Iconify icon id (e.g. lucide:map-pin, same as link.icon). */
|
||||
icon?: string;
|
||||
/** @description Tag name (e.g. politik, termin). Must be unique. */
|
||||
name: string;
|
||||
@@ -5410,7 +5410,7 @@ export interface components {
|
||||
_slug: string;
|
||||
/** @description Optional pill color (CSS, e.g. #2d5a27 or rgb()). Admin: color picker + text field. */
|
||||
color?: string;
|
||||
/** @description Optional Iconify icon id (e.g. mdi:map-marker, same as link.icon). */
|
||||
/** @description Optional Iconify icon id (e.g. lucide:map-pin, same as link.icon). */
|
||||
icon?: string;
|
||||
/** @description Tag name (e.g. politik, termin). Must be unique. */
|
||||
name: string;
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
<details {id} {open} ontoggle={onToggle} class="pt-4 border-t border-stein-200 group {cls}">
|
||||
<summary class="flex cursor-pointer list-none items-center gap-2 text-sm font-medium select-none">
|
||||
<Icon icon="mdi:chevron-right" class="size-4 shrink-0 transition-transform group-open:rotate-90" />
|
||||
<Icon icon="lucide:chevron-right" class="size-4 shrink-0 transition-transform group-open:rotate-90" />
|
||||
{label}
|
||||
</summary>
|
||||
<div class="mt-4">
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
<span
|
||||
class="pointer-events-none absolute top-1/2 left-2 -translate-y-1/2 text-stein-500"
|
||||
>
|
||||
<Icon icon="mdi:magnify" class="h-4 w-4" />
|
||||
<Icon icon="lucide:search" class="h-4 w-4" />
|
||||
</span>
|
||||
<input
|
||||
type="search"
|
||||
@@ -148,7 +148,7 @@
|
||||
class="absolute top-1/2 right-1.5 -translate-y-1/2 rounded-xs p-1 text-stein-500 hover:bg-stein-100 hover:text-stein-900"
|
||||
aria-label={t(T.blog_search_clear)}
|
||||
>
|
||||
<Icon icon="mdi:close" class="h-4 w-4" />
|
||||
<Icon icon="lucide:x" class="h-4 w-4" />
|
||||
</button>
|
||||
{/if}
|
||||
</label>
|
||||
@@ -158,7 +158,7 @@
|
||||
<span
|
||||
class="pointer-events-none absolute top-1/2 left-2 -translate-y-1/2 text-stein-500"
|
||||
>
|
||||
<Icon icon="mdi:calendar" class="h-4 w-4" />
|
||||
<Icon icon="lucide:calendar" class="h-4 w-4" />
|
||||
</span>
|
||||
<select
|
||||
bind:value={year}
|
||||
@@ -172,7 +172,7 @@
|
||||
<span
|
||||
class="pointer-events-none absolute top-1/2 right-1.5 -translate-y-1/2 text-stein-500"
|
||||
>
|
||||
<Icon icon="mdi:chevron-down" class="h-4 w-4" />
|
||||
<Icon icon="lucide:chevron-down" class="h-4 w-4" />
|
||||
</span>
|
||||
</label>
|
||||
{/if}
|
||||
@@ -186,7 +186,7 @@
|
||||
<h2
|
||||
class="mb-3 flex items-center gap-2 text-sm font-semibold tracking-wide text-stein-700"
|
||||
>
|
||||
<Icon icon="mdi:calendar-clock" class="size-7 shrink-0" />
|
||||
<Icon icon="lucide:calendar-clock" class="size-7 shrink-0" />
|
||||
{t(T.blog_upcoming_events)}
|
||||
</h2>
|
||||
<ul class="not-prose list-none space-y-2 pl-0">
|
||||
@@ -343,7 +343,7 @@
|
||||
href="/posts/rss.xml"
|
||||
class="inline-flex items-center gap-1 hover:underline"
|
||||
>
|
||||
<Icon icon="mdi:rss" class="h-3.5 w-3.5" />
|
||||
<Icon icon="lucide:rss" class="h-3.5 w-3.5" />
|
||||
{t(T.blog_rss_subscribe)}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
aria-label="Vorheriger Eintrag"
|
||||
class="shrink-0 inline-flex items-center justify-center size-7 rounded-full bg-white/90 border border-stein-200 shadow-sm hover:bg-white hover:border-wald-700 transition"
|
||||
>
|
||||
<Icon icon="mdi:chevron-left" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="size-4" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
aria-label="Nächster Eintrag"
|
||||
class="shrink-0 inline-flex items-center justify-center size-7 rounded-full bg-white/90 border border-stein-200 shadow-sm hover:bg-white hover:border-wald-700 transition"
|
||||
>
|
||||
<Icon icon="mdi:chevron-right" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="size-4" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -332,7 +332,7 @@
|
||||
onclick={() => startEdit(c)}
|
||||
class="text-xs text-stein-600 hover:text-stein-900 inline-flex items-center gap-1"
|
||||
>
|
||||
<Icon icon="mdi:pencil-outline" class="size-3" />
|
||||
<Icon icon="lucide:pencil" class="size-3" />
|
||||
{t(T.comments_edit)}
|
||||
</button>
|
||||
<button
|
||||
@@ -340,7 +340,7 @@
|
||||
onclick={() => deleteComment(c.id)}
|
||||
class="text-xs text-stein-600 hover:text-fire-700 inline-flex items-center gap-1"
|
||||
>
|
||||
<Icon icon="mdi:trash-can-outline" class="size-3" />
|
||||
<Icon icon="lucide:trash-2" class="size-3" />
|
||||
{t(T.comments_delete)}
|
||||
</button>
|
||||
</div>
|
||||
@@ -364,7 +364,7 @@
|
||||
{/if}
|
||||
{#if c.status === "pending"}
|
||||
<span class="ml-auto inline-flex items-center gap-1 rounded-full bg-erde-100 px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide text-erde-800">
|
||||
<Icon icon="mdi:clock-outline" class="size-3" />
|
||||
<Icon icon="lucide:clock" class="size-3" />
|
||||
{t(T.comments_pending_short)}
|
||||
</span>
|
||||
{/if}
|
||||
@@ -387,7 +387,7 @@
|
||||
</ul>
|
||||
{:else if loadError}
|
||||
<div class="flex items-start gap-2 rounded-xs border border-fire-200 bg-fire-50 p-3 text-sm text-fire-800">
|
||||
<Icon icon="mdi:alert-circle-outline" class="size-5 shrink-0 mt-0.5" />
|
||||
<Icon icon="lucide:circle-alert" class="size-5 shrink-0 mt-0.5" />
|
||||
<div class="flex-1">
|
||||
<p class="font-medium">{t(T.comments_load_error_title)}</p>
|
||||
<p class="mt-1 text-xs text-fire-700">{loadError}</p>
|
||||
@@ -401,7 +401,7 @@
|
||||
{:else}
|
||||
{#if topLevel.length === 0}
|
||||
<div class="flex flex-col items-center gap-1 py-8 text-center sm:flex-row sm:items-center sm:text-left sm:py-4 sm:gap-1.5">
|
||||
<Icon icon="mdi:comment-text-outline" class="size-5 text-stein-300 shrink-0" />
|
||||
<Icon icon="lucide:message-square-text" class="size-5 text-stein-300 shrink-0" />
|
||||
<p class="text-sm font-semibold text-stein-300">{t(T.comments_empty)}</p>
|
||||
</div>
|
||||
{:else}
|
||||
@@ -424,7 +424,7 @@
|
||||
onclick={() => (replyTo = replyTo === c.id ? null : c.id)}
|
||||
class="text-xs text-stein-600 hover:text-stein-900 inline-flex items-center gap-1"
|
||||
>
|
||||
<Icon icon="mdi:reply" class="size-3" />
|
||||
<Icon icon="lucide:reply" class="size-3" />
|
||||
{replyTo === c.id
|
||||
? t(T.comments_cancel)
|
||||
: replies.length === 0
|
||||
@@ -531,7 +531,7 @@
|
||||
</button>
|
||||
{#if requireApproval}
|
||||
<span class="text-stein-500 inline-flex items-center gap-1">
|
||||
<Icon icon="mdi:shield-check-outline" class="size-3.5" />
|
||||
<Icon icon="lucide:shield-check" class="size-3.5" />
|
||||
{t(T.comments_approval_hint)}
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
@@ -43,20 +43,20 @@
|
||||
onclick={() => downloadVCard(contact)}
|
||||
class="absolute top-3 right-3 text-stein-300 transition-colors hover:text-wald-600"
|
||||
>
|
||||
<Icon icon="mdi:card-account-details-outline" class="size-4" />
|
||||
<Icon icon="lucide:id-card" class="size-4" />
|
||||
</button>
|
||||
|
||||
{#if contact.phone || contact.email}
|
||||
<div class="flex flex-col gap-1">
|
||||
{#if contact.phone}
|
||||
<a href="tel:{contact.phone.replace(/\s/g, '')}" class="inline-flex items-center gap-1.5 text-xs text-stein-600 no-underline hover:text-wald-700">
|
||||
<Icon icon="mdi:phone-outline" class="size-3.5 shrink-0 text-stein-400" />
|
||||
<Icon icon="lucide:phone" class="size-3.5 shrink-0 text-stein-400" />
|
||||
<span class="truncate">{contact.phone}</span>
|
||||
</a>
|
||||
{/if}
|
||||
{#if contact.email}
|
||||
<a href="mailto:{contact.email}" class="inline-flex items-center gap-1.5 text-xs text-stein-600 no-underline hover:text-wald-700">
|
||||
<Icon icon="mdi:email-outline" class="size-3.5 shrink-0 text-stein-400" />
|
||||
<Icon icon="lucide:mail" class="size-3.5 shrink-0 text-stein-400" />
|
||||
<span class="truncate">{contact.email}</span>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
@@ -28,19 +28,19 @@
|
||||
<div class="flex flex-wrap gap-2">
|
||||
{#if dateLabel}
|
||||
<span class="inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-full bg-wald-500 px-3 py-1 text-[.65rem] font-semibold text-white shadow-sm no-underline! [text-decoration:none]">
|
||||
<Icon icon="mdi:calendar" class="size-3.5 shrink-0 opacity-90" aria-hidden="true" />
|
||||
<Icon icon="lucide:calendar" class="size-3.5 shrink-0 opacity-90" aria-hidden="true" />
|
||||
{dateLabel}
|
||||
</span>
|
||||
{/if}
|
||||
{#if locationText}
|
||||
{#if locationHref}
|
||||
<a href={locationHref} target={locationHref.startsWith('#') ? undefined : '_blank'} rel={locationHref.startsWith('#') ? undefined : 'noopener noreferrer'} title={locationText} class="inline-flex min-w-0 items-center gap-1.5 rounded-full bg-stein-800 text-stein-50! px-3 py-1 text-[.65rem] shadow-sm hover:bg-stein-700 transition-colors no-underline!">
|
||||
<Icon icon="mdi:map-marker" class="size-3.5 shrink-0 opacity-90" aria-hidden="true" />
|
||||
<Icon icon="lucide:map-pin" class="size-3.5 shrink-0 opacity-90" aria-hidden="true" />
|
||||
<span class="truncate max-w-[16rem]">{locationText}</span>
|
||||
</a>
|
||||
{:else}
|
||||
<span title={locationText} class="inline-flex min-w-0 items-center gap-1.5 rounded-full bg-stein-800 text-stein-50 px-3 py-1 text-[.65rem] font-medium shadow-sm no-underline! [text-decoration:none]">
|
||||
<Icon icon="mdi:map-marker" class="size-3.5 shrink-0 opacity-90" aria-hidden="true" />
|
||||
<Icon icon="lucide:map-pin" class="size-3.5 shrink-0 opacity-90" aria-hidden="true" />
|
||||
<span class="truncate max-w-[16rem]">{locationText}</span>
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
onkeydown={(e) => { if (e.key === 'Enter' || e.key === ' ') overlayVisible = false; }}
|
||||
>
|
||||
<div class="flex items-center gap-2 rounded-full bg-white/90 px-4 py-2 text-xs font-medium text-stein-700 shadow">
|
||||
<Icon icon="mdi:cursor-default-click" class="size-4 shrink-0" aria-hidden="true" />
|
||||
<Icon icon="lucide:mouse-pointer-click" class="size-4 shrink-0" aria-hidden="true" />
|
||||
{t(translations, T.post_map_activate)}
|
||||
</div>
|
||||
</div>
|
||||
@@ -58,7 +58,7 @@
|
||||
rel="noopener noreferrer"
|
||||
class="flex items-center gap-1.5 px-3 py-1.5 bg-wald-50 text-wald-700 text-[.65rem] font-medium hover:bg-wald-100 transition-colors border-t border-wald-200"
|
||||
>
|
||||
<Icon icon="mdi:open-in-new" class="size-3.5 shrink-0" aria-hidden="true" />
|
||||
<Icon icon="lucide:external-link" class="size-3.5 shrink-0" aria-hidden="true" />
|
||||
{t(translations, T.post_map_open_osm)}
|
||||
</a>
|
||||
{/if}
|
||||
@@ -70,7 +70,7 @@
|
||||
rel="noopener noreferrer"
|
||||
class="flex items-center gap-2 px-3 py-2 bg-wald-50 text-wald-700 text-xs font-medium hover:bg-wald-100 transition-colors"
|
||||
>
|
||||
<Icon icon="mdi:map-marker" class="size-4 shrink-0" aria-hidden="true" />
|
||||
<Icon icon="lucide:map-pin" class="size-4 shrink-0" aria-hidden="true" />
|
||||
{locationText ?? t(translations, T.post_map_open_osm)}
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
aria-expanded="false"
|
||||
>
|
||||
{link.label}
|
||||
<Icon icon="mdi:chevron-down" class="size-3" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-down" class="size-3" aria-hidden="true" />
|
||||
</a>
|
||||
{:else}
|
||||
<button
|
||||
@@ -159,7 +159,7 @@
|
||||
aria-expanded="false"
|
||||
>
|
||||
{link.label}
|
||||
<Icon icon="mdi:chevron-down" class="size-3" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-down" class="size-3" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
<div
|
||||
@@ -193,43 +193,51 @@
|
||||
</a>
|
||||
{/if}
|
||||
{/each}
|
||||
<div class="w-1 h-4"></div>
|
||||
{#each socialLinks as social}
|
||||
{@const isInternal = social.href.startsWith("/")}
|
||||
<a
|
||||
href={social.href}
|
||||
target={isInternal ? undefined : "_blank"}
|
||||
rel={isInternal ? undefined : "noopener noreferrer"}
|
||||
class="p-1.5 -m-1.5 rounded-xs transition-colors flex items-center justify-center"
|
||||
aria-label={social.label || t(T.header_social_aria)}
|
||||
title={social.label || t(T.header_social_aria)}
|
||||
>
|
||||
<Icon icon={social.icon} aria-hidden="true" />
|
||||
</a>
|
||||
{/each}
|
||||
<button
|
||||
type="button"
|
||||
class="p-2 -mr-2 rounded-xs transition-colors flex items-center justify-center"
|
||||
aria-label={searchOpen
|
||||
? t(T.header_search_close)
|
||||
: t(T.header_search_open)}
|
||||
title={searchOpen
|
||||
? t(T.header_search_close)
|
||||
: t(T.header_search_open)}
|
||||
aria-expanded={searchOpen}
|
||||
aria-controls="search-panel"
|
||||
onclick={() => (searchOpen = !searchOpen)}
|
||||
<div
|
||||
class="ml-2 flex items-center gap-0.5 rounded-full border border-wald-700/15 bg-wald-700/8 px-2 py-1"
|
||||
>
|
||||
{#if searchOpen}
|
||||
<Icon
|
||||
icon="mdi:close"
|
||||
class="text-error!"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
{:else}
|
||||
<Icon icon="mdi:magnify" aria-hidden="true" />
|
||||
{/if}
|
||||
</button>
|
||||
{#each socialLinks as social}
|
||||
{@const isInternal = social.href.startsWith("/")}
|
||||
{@const sActive = isInternal && isActiveLink(social.href, $page.url.pathname)}
|
||||
<a
|
||||
href={social.href}
|
||||
target={isInternal ? undefined : "_blank"}
|
||||
rel={isInternal ? undefined : "noopener noreferrer"}
|
||||
class="px-1.5 py-0.5 rounded-full transition-opacity hover:opacity-70 inline-flex items-center gap-1.5 {sActive ? 'font-bold' : ''}"
|
||||
aria-current={sActive ? "page" : undefined}
|
||||
aria-label={social.label || t(T.header_social_aria)}
|
||||
title={social.label || t(T.header_social_aria)}
|
||||
>
|
||||
<Icon icon={social.icon} class="text-sm" aria-hidden="true" />
|
||||
{#if social.label}
|
||||
<span class="text-[.7rem] leading-none">{social.label}</span>
|
||||
{/if}
|
||||
</a>
|
||||
{/each}
|
||||
<button
|
||||
type="button"
|
||||
class="px-1.5 py-0.5 rounded-full transition-opacity hover:opacity-70 inline-flex items-center justify-center"
|
||||
aria-label={searchOpen
|
||||
? t(T.header_search_close)
|
||||
: t(T.header_search_open)}
|
||||
title={searchOpen
|
||||
? t(T.header_search_close)
|
||||
: t(T.header_search_open)}
|
||||
aria-expanded={searchOpen}
|
||||
aria-controls="search-panel"
|
||||
onclick={() => (searchOpen = !searchOpen)}
|
||||
>
|
||||
{#if searchOpen}
|
||||
<Icon
|
||||
icon="lucide:x"
|
||||
class="text-sm text-error!"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
{:else}
|
||||
<Icon icon="lucide:search" class="text-sm" aria-hidden="true" />
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Mobile: Such- und Burger-Buttons (unter lg) -->
|
||||
@@ -246,13 +254,13 @@
|
||||
>
|
||||
{#if searchOpen}
|
||||
<Icon
|
||||
icon="mdi:close"
|
||||
icon="lucide:x"
|
||||
class="text-2xl text-error!"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
{:else}
|
||||
<Icon
|
||||
icon="mdi:magnify"
|
||||
icon="lucide:search"
|
||||
class="text-2xl"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -275,12 +283,12 @@
|
||||
>
|
||||
{#if menuOpen}
|
||||
<Icon
|
||||
icon="mdi:close"
|
||||
icon="lucide:x"
|
||||
class="text-2xl"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
{:else}
|
||||
<Icon icon="mdi:menu" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:menu" class="text-2xl" aria-hidden="true" />
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
@@ -314,7 +322,7 @@
|
||||
onclick={() => toggleSubmenu(link.label)}
|
||||
>
|
||||
<span>{link.label}</span>
|
||||
<Icon icon={expanded ? "mdi:chevron-up" : "mdi:chevron-down"} class="size-4" aria-hidden="true" />
|
||||
<Icon icon={expanded ? "lucide:chevron-up" : "lucide:chevron-down"} class="size-4" aria-hidden="true" />
|
||||
</button>
|
||||
{#if expanded}
|
||||
<div class="ml-6 border-l border-stein-0/10" in:slide={{ duration: 150 }} out:slide={{ duration: 100 }}>
|
||||
@@ -357,27 +365,34 @@
|
||||
{/if}
|
||||
{/each}
|
||||
{#if socialLinks.length > 0}
|
||||
<div
|
||||
class="flex flex-wrap gap-2 pt-2 mt-2 border-t border-stein-0/10"
|
||||
>
|
||||
<div class="flex flex-col gap-1 pt-2 mt-2 border-t border-stein-0/10">
|
||||
{#each socialLinks as social}
|
||||
{@const isInternal = social.href.startsWith("/")}
|
||||
{@const sActive =
|
||||
isInternal &&
|
||||
isActiveLink(social.href, $page.url.pathname)}
|
||||
<a
|
||||
href={social.href}
|
||||
target={isInternal ? undefined : "_blank"}
|
||||
rel={isInternal
|
||||
? undefined
|
||||
: "noopener noreferrer"}
|
||||
class="inline-flex p-2 text-stein-100 hover:text-stein-0 hover:bg-stein-0/10 rounded-xs transition-colors"
|
||||
class="flex items-center gap-3 py-4 px-3 rounded-xs transition-colors text-base border-l-4 {sActive
|
||||
? 'font-bold text-wald-300 bg-wald-700/20 border-wald-400'
|
||||
: 'text-stein-100 hover:text-stein-0 hover:bg-stein-0/10 border-transparent'}"
|
||||
aria-current={sActive ? "page" : undefined}
|
||||
aria-label={social.label ||
|
||||
t(T.header_social_aria)}
|
||||
onclick={closeMenu}
|
||||
>
|
||||
<Icon
|
||||
icon={social.icon}
|
||||
class="text-[1.5rem]"
|
||||
class="text-base"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
{#if social.label}
|
||||
<span>{social.label}</span>
|
||||
{/if}
|
||||
</a>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
@@ -39,6 +39,6 @@
|
||||
class="absolute top-4 right-4 p-2 rounded-full bg-black/50 text-white hover:bg-black/70 transition-colors"
|
||||
aria-label="Schließen"
|
||||
>
|
||||
<Icon icon="mdi:close" class="size-5" aria-hidden="true" />
|
||||
<Icon icon="lucide:x" class="size-5" aria-hidden="true" />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
body = "",
|
||||
variant = "stein",
|
||||
open = false,
|
||||
iconName = "mdi:information-outline",
|
||||
iconName = "lucide:info",
|
||||
}: {
|
||||
title: string;
|
||||
body?: string;
|
||||
@@ -48,7 +48,7 @@
|
||||
<summary class="flex cursor-pointer items-center gap-1.5 px-3 py-1.5 font-medium leading-snug list-none {p.summary}">
|
||||
<Icon icon={iconName} class="size-3.5 shrink-0 {p.icon}" />
|
||||
<span class="flex-1">{title}</span>
|
||||
<Icon icon="mdi:chevron-down" class="info-accordion-chevron size-3.5 shrink-0 transition-transform {p.icon}" />
|
||||
<Icon icon="lucide:chevron-down" class="info-accordion-chevron size-3.5 shrink-0 transition-transform {p.icon}" />
|
||||
</summary>
|
||||
<div class="markdown prose prose-sm prose-zinc max-w-none border-t px-3 py-2 leading-relaxed {p.body}">{@html body}</div>
|
||||
</details>
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
<div class="flex items-center">
|
||||
{#if hasPrev}
|
||||
<a href={pageHref(prevPage)} class="{baseShape} {navShape} {inactiveColors}" aria-label={t(T.pagination_prev)}>
|
||||
<Icon icon="mdi:chevron-left" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="size-4" aria-hidden="true" />
|
||||
<span class="hidden sm:inline">{t(T.pagination_prev)}</span>
|
||||
</a>
|
||||
{/if}
|
||||
@@ -76,7 +76,7 @@
|
||||
{#if hasNext}
|
||||
<a href={pageHref(nextPage)} class="{baseShape} {navShape} {inactiveColors}" aria-label={t(T.pagination_next)}>
|
||||
<span class="hidden sm:inline">{t(T.pagination_next)}</span>
|
||||
<Icon icon="mdi:chevron-right" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="size-4" aria-hidden="true" />
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
title={t(T.comments_jump_to)}
|
||||
class="no-underline! inline-flex items-center gap-1 rounded-full border border-stein-200 bg-white px-2.5 py-1 text-xs font-medium text-stein-700! hover:bg-stein-50 hover:border-stein-300 transition-colors"
|
||||
>
|
||||
<Icon icon="mdi:comment-outline" class="size-3.5" />
|
||||
<Icon icon="lucide:message-circle" class="size-3.5" />
|
||||
<span class="tabular-nums">{commentCount ?? "…"}</span>
|
||||
</a>
|
||||
{/if}
|
||||
@@ -189,7 +189,7 @@
|
||||
title={t(T.post_action_share)}
|
||||
>
|
||||
<Icon
|
||||
icon={shared ? "mdi:check" : "mdi:share-variant-outline"}
|
||||
icon={shared ? "lucide:check" : "lucide:share-2"}
|
||||
class="size-3.5"
|
||||
/>
|
||||
</button>
|
||||
@@ -201,7 +201,7 @@
|
||||
aria-label={copied ? t(T.post_action_copied) : t(T.post_action_copy)}
|
||||
title={copied ? t(T.post_action_copied) : t(T.post_action_copy)}
|
||||
>
|
||||
<Icon icon={copied ? "mdi:check" : "mdi:link-variant"} class="size-3.5" />
|
||||
<Icon icon={copied ? "lucide:check" : "lucide:link"} class="size-3.5" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
@@ -210,7 +210,7 @@
|
||||
aria-label={t(T.post_action_print)}
|
||||
title={t(T.post_action_print)}
|
||||
>
|
||||
<Icon icon="mdi:printer-outline" class="size-3.5" />
|
||||
<Icon icon="lucide:printer" class="size-3.5" />
|
||||
</button>
|
||||
{#if socialSlug}
|
||||
<button
|
||||
@@ -220,7 +220,7 @@
|
||||
aria-label="Social-Bild Vorschau"
|
||||
title="Social-Bild Vorschau (für Instagram, Facebook, WhatsApp)"
|
||||
>
|
||||
<Icon icon="mdi:image-outline" class="size-3.5" />
|
||||
<Icon icon="lucide:image" class="size-3.5" />
|
||||
</button>
|
||||
{/if}
|
||||
<QrButton
|
||||
@@ -247,7 +247,7 @@
|
||||
class="inline-flex items-center gap-1 rounded-full border border-stein-200 bg-white px-2.5 py-1 text-xs text-stein-500"
|
||||
title={t(T.post_action_reading_time, { minutes: readingTimeMinutes })}
|
||||
>
|
||||
<Icon icon="mdi:clock-outline" class="size-3.5" />
|
||||
<Icon icon="lucide:clock" class="size-3.5" />
|
||||
<span class="tabular-nums"
|
||||
>{t(T.post_action_reading_time, { minutes: readingTimeMinutes })}</span
|
||||
>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
aria-label={t(T.comments_count_aria, { count: commentCount })}
|
||||
title={t(T.comments_count_aria, { count: commentCount })}
|
||||
>
|
||||
<Icon icon="mdi:comment-outline" class="size-3" />
|
||||
<Icon icon="lucide:message-circle" class="size-3" />
|
||||
{commentCount}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
onclick={() => (open = true)}
|
||||
class={cls}
|
||||
>
|
||||
<Icon icon="mdi:qrcode" class="size-[1em]" />
|
||||
<Icon icon="lucide:qr-code" class="size-[1em]" />
|
||||
</button>
|
||||
|
||||
<QrModal value={open ? value : null} {label} {sublabel} onclose={() => (open = false)} />
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
class="absolute right-3 top-3 text-stein-400 hover:text-stein-700"
|
||||
aria-label="Schließen"
|
||||
>
|
||||
<Icon icon="mdi:close" class="size-5" />
|
||||
<Icon icon="lucide:x" class="size-5" />
|
||||
</button>
|
||||
{#if label}
|
||||
<p class="mb-1 text-sm font-medium text-stein-900">{label}</p>
|
||||
@@ -93,7 +93,7 @@
|
||||
disabled={!qrPngUrl}
|
||||
class="btn-outline btn-sm mt-3 w-full justify-center"
|
||||
>
|
||||
<Icon icon="mdi:download" class="size-3.5" />
|
||||
<Icon icon="lucide:download" class="size-3.5" />
|
||||
Als PNG herunterladen
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
<label class="relative block max-w-xl mx-auto">
|
||||
<span class="sr-only">Suche</span>
|
||||
<span class="pointer-events-none absolute top-1/2 left-3 -translate-y-1/2 text-stein-500">
|
||||
<Icon icon="mdi:magnify" class="h-5 w-5" />
|
||||
<Icon icon="lucide:search" class="h-5 w-5" />
|
||||
</span>
|
||||
<input
|
||||
bind:this={inputEl}
|
||||
@@ -106,7 +106,7 @@
|
||||
aria-label="Eingabe leeren"
|
||||
class="absolute top-1/2 right-2 -translate-y-1/2 rounded-xs p-1 text-stein-500 hover:bg-stein-100 hover:text-stein-900"
|
||||
>
|
||||
<Icon icon="mdi:close" class="h-4 w-4" />
|
||||
<Icon icon="lucide:x" class="h-4 w-4" />
|
||||
</button>
|
||||
{/if}
|
||||
</label>
|
||||
@@ -138,7 +138,7 @@
|
||||
/>
|
||||
{:else}
|
||||
<span class="w-20 h-12 shrink-0 bg-stein-100 rounded-xs border border-stein-200 flex items-center justify-center text-stein-400">
|
||||
<Icon icon={hit.type === "post" ? "mdi:file-document-outline" : "mdi:file-outline"} class="h-5 w-5" />
|
||||
<Icon icon={hit.type === "post" ? "lucide:file-text" : "lucide:file"} class="h-5 w-5" />
|
||||
</span>
|
||||
{/if}
|
||||
<div class="min-w-0 flex-1">
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
title="Direktlink zu dieser Vorschau kopieren"
|
||||
aria-label="Direktlink kopieren"
|
||||
>
|
||||
<Icon icon={linkCopied ? "mdi:check" : "mdi:link-variant"} class="size-3.5" />
|
||||
<Icon icon={linkCopied ? "lucide:check" : "lucide:link"} class="size-3.5" />
|
||||
{linkCopied ? "Kopiert" : "Direktlink"}
|
||||
</button>
|
||||
<button
|
||||
@@ -109,7 +109,7 @@
|
||||
class="text-stein-400 hover:text-stein-700"
|
||||
aria-label="Schließen"
|
||||
>
|
||||
<Icon icon="mdi:close" class="size-5" />
|
||||
<Icon icon="lucide:x" class="size-5" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -170,7 +170,7 @@
|
||||
/>
|
||||
</div>
|
||||
<a href={ogUrl} download={`${downloadPrefix}-${slug}-og-${theme}.png`} class="btn-outline btn-sm justify-center no-underline!">
|
||||
<Icon icon="mdi:download" class="size-3.5" />
|
||||
<Icon icon="lucide:download" class="size-3.5" />
|
||||
Quer herunterladen
|
||||
</a>
|
||||
</div>
|
||||
@@ -189,7 +189,7 @@
|
||||
/>
|
||||
</div>
|
||||
<a href={sqUrl} download={`${downloadPrefix}-${slug}-square-${theme}.png`} class="btn-outline btn-sm justify-center no-underline!">
|
||||
<Icon icon="mdi:download" class="size-3.5" />
|
||||
<Icon icon="lucide:download" class="size-3.5" />
|
||||
Quadrat herunterladen
|
||||
</a>
|
||||
</div>
|
||||
@@ -208,7 +208,7 @@
|
||||
/>
|
||||
</div>
|
||||
<a href={storyUrl} download={`${downloadPrefix}-${slug}-story-${theme}.png`} class="btn-outline btn-sm justify-center no-underline!">
|
||||
<Icon icon="mdi:download" class="size-3.5" />
|
||||
<Icon icon="lucide:download" class="size-3.5" />
|
||||
Story herunterladen
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
class="shrink-0 rounded-md p-1.5 text-stein-400 hover:bg-stein-100 hover:text-stein-700 transition-colors"
|
||||
aria-label={t(T.windkarte_panel_close)}
|
||||
>
|
||||
<Icon icon="mdi:close" class="size-5" />
|
||||
<Icon icon="lucide:x" class="size-5" />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
{#if area.flaeche_ha != null}
|
||||
<div class="flex items-center justify-between px-3 py-1.5">
|
||||
<span class="flex items-center gap-1.5 text-xs text-stein-500">
|
||||
<Icon icon="mdi:ruler-square" class="size-3.5 text-stein-400" />
|
||||
<Icon icon="lucide:ruler" class="size-3.5 text-stein-400" />
|
||||
{t(T.windkarte_label_flaeche)}
|
||||
</span>
|
||||
<span class="font-semibold text-stein-800">{area.flaeche_ha.toFixed(1)} ha</span>
|
||||
@@ -130,13 +130,13 @@
|
||||
{#if area.anlagen_geplant != null}
|
||||
<div class="flex items-center justify-between px-3 py-1.5">
|
||||
<span class="flex items-center gap-1.5 text-xs text-stein-500">
|
||||
<Icon icon="mdi:wind-turbine" class="size-3.5 text-stein-400" />
|
||||
<Icon icon="lucide:fan" class="size-3.5 text-stein-400" />
|
||||
{t(T.windkarte_label_anlagen_geplant)}
|
||||
</span>
|
||||
<span class="flex items-center gap-1.5 font-semibold text-stein-800">
|
||||
{area.anlagen_geplant}
|
||||
{#if area.anlagen_geplant_hinweis}
|
||||
<Icon icon="mdi:information-outline" class="size-3.5 text-amber-700" />
|
||||
<Icon icon="lucide:info" class="size-3.5 text-amber-700" />
|
||||
{/if}
|
||||
</span>
|
||||
</div>
|
||||
@@ -144,7 +144,7 @@
|
||||
{#if area.investor}
|
||||
<div class="flex items-center justify-between px-3 py-1.5">
|
||||
<span class="flex items-center gap-1.5 text-xs text-stein-500">
|
||||
<Icon icon="mdi:domain" class="size-3.5 text-stein-400" />
|
||||
<Icon icon="lucide:building-2" class="size-3.5 text-stein-400" />
|
||||
{t(T.windkarte_label_investor)}
|
||||
</span>
|
||||
<span class="font-semibold text-stein-800">{area.investor}</span>
|
||||
@@ -164,7 +164,7 @@
|
||||
{#if area.gemeinden && area.gemeinden.length > 0}
|
||||
<div>
|
||||
<p class="mb-2 flex items-center gap-1.5 text-xs font-medium uppercase tracking-wide text-stein-500">
|
||||
<Icon icon="mdi:map-marker" class="size-3.5 text-stein-400" />
|
||||
<Icon icon="lucide:map-pin" class="size-3.5 text-stein-400" />
|
||||
{t(T.windkarte_label_gemeinden)}
|
||||
</p>
|
||||
<div class="flex flex-wrap gap-1.5">
|
||||
@@ -186,7 +186,7 @@
|
||||
<!-- Stellungnahme-Kriterien -->
|
||||
{#if loadingKriterien}
|
||||
<div class="flex items-center gap-2 text-xs text-stein-400">
|
||||
<Icon icon="mdi:loading" class="size-3.5 animate-spin" />
|
||||
<Icon icon="lucide:loader-circle" class="size-3.5 animate-spin" />
|
||||
<span>{t(T.windkarte_kriterien_loading)}</span>
|
||||
</div>
|
||||
{:else if kriterien.length > 0}
|
||||
@@ -201,7 +201,7 @@
|
||||
>
|
||||
<span class="min-w-0 line-clamp-2">{k.title ?? k._slug}</span>
|
||||
<Icon
|
||||
icon={expandedSlug === k._slug ? "mdi:chevron-up" : "mdi:chevron-down"}
|
||||
icon={expandedSlug === k._slug ? "lucide:chevron-up" : "lucide:chevron-down"}
|
||||
class="size-3.5 shrink-0 mt-0.5 text-stein-400"
|
||||
/>
|
||||
</button>
|
||||
@@ -222,7 +222,7 @@
|
||||
href={area.stellungnahmeUrl}
|
||||
class="flex items-center gap-2 rounded-lg bg-wald-700 px-4 py-3 text-sm font-semibold text-white no-underline hover:bg-wald-800 transition-colors"
|
||||
>
|
||||
<Icon icon="mdi:file-document-edit-outline" class="size-4 shrink-0" />
|
||||
<Icon icon="lucide:file-pen" class="size-4 shrink-0" />
|
||||
Einwendung erstellen
|
||||
</a>
|
||||
{/if}
|
||||
@@ -233,7 +233,7 @@
|
||||
href={stellungnahmeHref(area.stellungnahme)}
|
||||
class="flex items-center gap-2 rounded-lg border border-wald-300 bg-wald-50 px-4 py-3 text-sm font-medium text-wald-700 hover:bg-wald-100 transition-colors"
|
||||
>
|
||||
<Icon icon="mdi:file-document-edit-outline" class="size-4 shrink-0" />
|
||||
<Icon icon="lucide:file-pen" class="size-4 shrink-0" />
|
||||
{t(T.windkarte_stellungnahme_link)}
|
||||
</a>
|
||||
{/if}
|
||||
@@ -244,7 +244,7 @@
|
||||
onclick={copyLink}
|
||||
class="flex flex-1 items-center justify-center gap-1.5 rounded-lg border border-stein-200 px-2 py-2 text-xs font-medium text-stein-600 hover:bg-stein-50 transition-colors whitespace-nowrap"
|
||||
>
|
||||
<Icon icon={copied ? "mdi:check" : "mdi:link-variant"} class="size-3.5 shrink-0" />
|
||||
<Icon icon={copied ? "lucide:check" : "lucide:link"} class="size-3.5 shrink-0" />
|
||||
{copied ? t(T.windkarte_action_copied) : t(T.windkarte_action_copy_link)}
|
||||
</button>
|
||||
{#if osmHref(center)}
|
||||
@@ -254,7 +254,7 @@
|
||||
rel="noopener noreferrer"
|
||||
class="flex flex-1 items-center justify-center gap-1.5 rounded-lg border border-stein-200 px-2 py-2 text-xs font-medium text-stein-600 hover:bg-stein-50 transition-colors whitespace-nowrap"
|
||||
>
|
||||
<Icon icon="mdi:map-outline" class="size-3.5 shrink-0" />
|
||||
<Icon icon="lucide:map" class="size-3.5 shrink-0" />
|
||||
{t(T.windkarte_action_osm)}
|
||||
</a>
|
||||
{/if}
|
||||
@@ -270,7 +270,7 @@
|
||||
title={`${t(T.windkarte_action_download_geojson)}\n${exportInfo}`}
|
||||
class="flex flex-1 items-center justify-center gap-1.5 rounded-lg border border-stein-200 px-2 py-2 text-xs font-medium text-stein-600 no-underline hover:bg-stein-50 transition-colors whitespace-nowrap"
|
||||
>
|
||||
<Icon icon="mdi:download" class="size-3.5 shrink-0" />
|
||||
<Icon icon="lucide:download" class="size-3.5 shrink-0" />
|
||||
GeoJSON
|
||||
</a>
|
||||
<a
|
||||
@@ -279,7 +279,7 @@
|
||||
title={`${t(T.windkarte_action_download_kml)}\n${exportInfo}`}
|
||||
class="flex flex-1 items-center justify-center gap-1.5 rounded-lg border border-stein-200 px-2 py-2 text-xs font-medium text-stein-600 no-underline hover:bg-stein-50 transition-colors whitespace-nowrap"
|
||||
>
|
||||
<Icon icon="mdi:download" class="size-3.5 shrink-0" />
|
||||
<Icon icon="lucide:download" class="size-3.5 shrink-0" />
|
||||
KML
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
<div class="no-print mb-4 flex flex-col gap-2">
|
||||
<div class="flex gap-2">
|
||||
<div class="relative max-w-sm flex-1">
|
||||
<Icon icon="mdi:magnify" class="absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-stein-400" />
|
||||
<Icon icon="lucide:search" class="absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-stein-400" />
|
||||
<input
|
||||
type="search"
|
||||
placeholder="Suchen…"
|
||||
@@ -138,7 +138,7 @@
|
||||
class="px-2 py-1 transition-colors {viewMode === 'alpha' ? 'bg-wald-500 text-white' : 'bg-white text-stein-600 hover:bg-stein-50'}"
|
||||
title="Alphabetisch"
|
||||
>
|
||||
<Icon icon="mdi:sort-alphabetical-ascending" class="size-4" />
|
||||
<Icon icon="lucide:arrow-down-a-z" class="size-4" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
@@ -146,7 +146,7 @@
|
||||
class="px-2 py-1 transition-colors {viewMode === 'org' ? 'bg-wald-500 text-white' : 'bg-white text-stein-600 hover:bg-stein-50'}"
|
||||
title="Nach Organisation"
|
||||
>
|
||||
<Icon icon="mdi:account-group-outline" class="size-4" />
|
||||
<Icon icon="lucide:users" class="size-4" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -224,7 +224,7 @@
|
||||
onclick={() => downloadVCardAll(filtered())}
|
||||
class="no-print btn-outline btn-sm"
|
||||
>
|
||||
<Icon icon="mdi:download" class="size-3.5" />
|
||||
<Icon icon="lucide:download" class="size-3.5" />
|
||||
Alle exportieren (.vcf)
|
||||
</button>
|
||||
<p class="text-xs text-stein-400">{filtered().length} Kontakt{filtered().length !== 1 ? "e" : ""}</p>
|
||||
@@ -266,13 +266,13 @@
|
||||
onclick={() => downloadVCard(contact)}
|
||||
class="text-stein-300 transition-colors hover:text-wald-600"
|
||||
>
|
||||
<Icon icon="mdi:card-account-details-outline" class="size-4" />
|
||||
<Icon icon="lucide:id-card" class="size-4" />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{#if contact.note}
|
||||
<div class="flex items-center gap-1.5 text-xs text-stein-400">
|
||||
<Icon icon="mdi:map-marker-outline" class="size-3.5 shrink-0" />
|
||||
<Icon icon="lucide:map-pin" class="size-3.5 shrink-0" />
|
||||
<span class="min-w-0 truncate">{contact.note}</span>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -281,7 +281,7 @@
|
||||
<div class="flex flex-col gap-1">
|
||||
{#if contact.phone}
|
||||
<div class="flex items-center gap-1.5">
|
||||
<Icon icon="mdi:phone-outline" class="size-3.5 shrink-0 text-stein-400" />
|
||||
<Icon icon="lucide:phone" class="size-3.5 shrink-0 text-stein-400" />
|
||||
<span class="min-w-0 truncate text-xs text-stein-600">{contact.phone}</span>
|
||||
<button
|
||||
type="button"
|
||||
@@ -289,20 +289,20 @@
|
||||
onclick={() => navigator.clipboard.writeText(contact.phone ?? "")}
|
||||
class="no-print shrink-0 text-stein-300 transition-colors hover:text-wald-600"
|
||||
>
|
||||
<Icon icon="mdi:content-copy" class="size-3.5" />
|
||||
<Icon icon="lucide:copy" class="size-3.5" />
|
||||
</button>
|
||||
<a
|
||||
href="tel:{contact.phone.replace(/\s/g, '')}"
|
||||
title="Anrufen"
|
||||
class="no-print shrink-0 text-stein-300 no-underline transition-colors hover:text-wald-600"
|
||||
>
|
||||
<Icon icon="mdi:arrow-top-right" class="size-3.5" />
|
||||
<Icon icon="lucide:arrow-up-right" class="size-3.5" />
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
{#if contact.email}
|
||||
<div class="flex items-center gap-1.5">
|
||||
<Icon icon="mdi:email-outline" class="size-3.5 shrink-0 text-stein-400" />
|
||||
<Icon icon="lucide:mail" class="size-3.5 shrink-0 text-stein-400" />
|
||||
<span class="min-w-0 truncate text-xs text-stein-600">{contact.email}</span>
|
||||
<button
|
||||
type="button"
|
||||
@@ -310,14 +310,14 @@
|
||||
onclick={() => navigator.clipboard.writeText(contact.email ?? "")}
|
||||
class="no-print shrink-0 text-stein-300 transition-colors hover:text-wald-600"
|
||||
>
|
||||
<Icon icon="mdi:content-copy" class="size-3.5" />
|
||||
<Icon icon="lucide:copy" class="size-3.5" />
|
||||
</button>
|
||||
<a
|
||||
href="mailto:{contact.email}"
|
||||
title="E-Mail schreiben"
|
||||
class="no-print shrink-0 text-stein-300 no-underline transition-colors hover:text-wald-600"
|
||||
>
|
||||
<Icon icon="mdi:arrow-top-right" class="size-3.5" />
|
||||
<Icon icon="lucide:arrow-up-right" class="size-3.5" />
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
@@ -635,7 +635,7 @@
|
||||
class="inline-flex items-center gap-1 tabular-nums"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:clock-outline"
|
||||
icon="lucide:clock"
|
||||
class="size-3"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -647,7 +647,7 @@
|
||||
class="inline-flex items-center gap-1 min-w-0"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:map-marker-outline"
|
||||
icon="lucide:map-pin"
|
||||
class="size-3 shrink-0"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -671,7 +671,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<Icon
|
||||
icon="mdi:chevron-down"
|
||||
icon="lucide:chevron-down"
|
||||
class="size-4 text-stein-400 shrink-0 mt-1 transition-transform group-open/event:rotate-180"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -738,7 +738,7 @@
|
||||
class="absolute inset-0 flex items-center justify-center bg-black/0 group-hover:bg-black/20 transition-colors"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:magnify-plus"
|
||||
icon="lucide:zoom-in"
|
||||
class="size-5 text-white opacity-0 group-hover:opacity-100 transition-opacity drop-shadow"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -758,7 +758,7 @@
|
||||
>
|
||||
Details
|
||||
<Icon
|
||||
icon="mdi:arrow-right"
|
||||
icon="lucide:arrow-right"
|
||||
class="size-3.5"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -773,7 +773,7 @@
|
||||
>
|
||||
{t(T.calendar_more_info)}
|
||||
<Icon
|
||||
icon="mdi:open-in-new"
|
||||
icon="lucide:external-link"
|
||||
class="size-3.5"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -788,7 +788,7 @@
|
||||
aria-label={t(T.calendar_open_maps)}
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:map-marker"
|
||||
icon="lucide:map-pin"
|
||||
class="size-3.5 shrink-0"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -803,7 +803,7 @@
|
||||
aria-label={item.attachment.label || "Anhang herunterladen"}
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:file-download"
|
||||
icon="lucide:file-down"
|
||||
class="size-3.5 shrink-0"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -827,7 +827,7 @@
|
||||
title={t(T.calendar_download_ics)}
|
||||
aria-label={t(T.calendar_download_ics)}
|
||||
>
|
||||
<Icon icon="mdi:download" class="size-3.5" />
|
||||
<Icon icon="lucide:download" class="size-3.5" />
|
||||
ICS
|
||||
</button>
|
||||
<a
|
||||
@@ -858,7 +858,7 @@
|
||||
title={t(T.post_action_copy)}
|
||||
aria-label={t(T.post_action_copy)}
|
||||
>
|
||||
<Icon icon={copied ? "mdi:check" : "mdi:link-variant"} class="size-3.5" />
|
||||
<Icon icon={copied ? "lucide:check" : "lucide:link"} class="size-3.5" />
|
||||
{copied ? t(T.post_action_copied) : "Link"}
|
||||
</button>
|
||||
<button
|
||||
@@ -868,7 +868,7 @@
|
||||
title={t(T.calendar_share_aria)}
|
||||
aria-label={t(T.calendar_share_aria)}
|
||||
>
|
||||
<Icon icon={shared ? "mdi:check" : "mdi:share-variant"} class="size-3.5" />
|
||||
<Icon icon={shared ? "lucide:check" : "lucide:share-2"} class="size-3.5" />
|
||||
{shared ? t(T.calendar_share_copied) : t(T.calendar_share)}
|
||||
</button>
|
||||
{#if item._slug}
|
||||
@@ -879,7 +879,7 @@
|
||||
title="Social-Bild Vorschau"
|
||||
aria-label="Social-Bild Vorschau"
|
||||
>
|
||||
<Icon icon="mdi:image-outline" class="size-3.5" />
|
||||
<Icon icon="lucide:image" class="size-3.5" />
|
||||
Bild
|
||||
</button>
|
||||
{/if}
|
||||
@@ -890,7 +890,7 @@
|
||||
title="QR-Code anzeigen & herunterladen"
|
||||
aria-label="QR-Code anzeigen & herunterladen"
|
||||
>
|
||||
<Icon icon="mdi:qrcode" class="size-3.5" />
|
||||
<Icon icon="lucide:qr-code" class="size-3.5" />
|
||||
QR
|
||||
</button>
|
||||
</div>
|
||||
@@ -905,7 +905,7 @@
|
||||
title={t(T.calendar_jump_to_month)}
|
||||
aria-label={t(T.calendar_jump_to_month)}
|
||||
>
|
||||
<Icon icon="mdi:calendar-search" class="size-3.5" />
|
||||
<Icon icon="lucide:calendar-search" class="size-3.5" />
|
||||
Im Grid
|
||||
</button>
|
||||
</div>
|
||||
@@ -970,7 +970,7 @@
|
||||
class="btn-primary btn-sm inline-flex items-center gap-1.5 min-h-[36px]"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:calendar-plus"
|
||||
icon="lucide:calendar-plus"
|
||||
class="size-3.5 shrink-0"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -984,7 +984,7 @@
|
||||
class="btn-primary btn-sm inline-flex items-center gap-1.5 min-h-[36px]"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:calendar-plus"
|
||||
icon="lucide:calendar-plus"
|
||||
class="size-3.5 shrink-0"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -998,7 +998,7 @@
|
||||
class="btn-outline btn-sm inline-flex items-center gap-1.5 min-h-[36px]"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:download"
|
||||
icon="lucide:download"
|
||||
class="size-3.5 shrink-0"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -1029,7 +1029,7 @@
|
||||
onclick={prevMonth}
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:chevron-left"
|
||||
icon="lucide:chevron-left"
|
||||
class="size-5"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -1041,7 +1041,7 @@
|
||||
onclick={nextMonth}
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:chevron-right"
|
||||
icon="lucide:chevron-right"
|
||||
class="size-5"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -1191,7 +1191,7 @@
|
||||
class="inline-flex items-center gap-1 text-[11px] text-himmel-700 hover:text-himmel-900 hover:underline shrink-0"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:close"
|
||||
icon="lucide:x"
|
||||
class="size-3.5"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -1246,7 +1246,7 @@
|
||||
class="cursor-pointer list-none px-3 py-2 text-xs text-stein-600 hover:bg-stein-100 inline-flex items-center gap-1.5"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:chevron-right"
|
||||
icon="lucide:chevron-right"
|
||||
class="size-3.5 transition-transform group-open/past:rotate-90"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -1272,7 +1272,7 @@
|
||||
class="cursor-pointer list-none px-3 py-2 text-xs text-stein-600 hover:bg-stein-100 inline-flex items-center gap-1.5 border-b border-stein-200"
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:chevron-right"
|
||||
icon="lucide:chevron-right"
|
||||
class="size-3.5 transition-transform group-open/past:rotate-90"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
data-block-slug={block._slug}
|
||||
>
|
||||
<header class="flex items-center gap-2 border-b border-stein-100 px-3 py-2">
|
||||
<Icon icon="mdi:calendar-month-outline" class="size-8 shrink-0 text-stein-900" aria-hidden="true" />
|
||||
<Icon icon="lucide:calendar" class="size-8 shrink-0 text-stein-900" aria-hidden="true" />
|
||||
<h2 class="text-sm font-semibold leading-none text-stein-800">
|
||||
{block.title ?? t(T.calendar_next_events)}
|
||||
</h2>
|
||||
@@ -120,7 +120,7 @@
|
||||
class="flex items-center justify-center gap-1 border-t border-stein-100 bg-stein-50 px-3 py-1.5 text-xs font-medium text-wald-700 hover:bg-wald-50"
|
||||
>
|
||||
{t(T.calendar_all_upcoming)}
|
||||
<Icon icon="mdi:arrow-right" class="size-3.5" aria-hidden="true" />
|
||||
<Icon icon="lucide:arrow-right" class="size-3.5" aria-hidden="true" />
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
class="font-semibold whitespace-nowrap text-gray-900 hover:text-gray-700"
|
||||
>
|
||||
{ctaLabel} <Icon
|
||||
icon="mdi:arrow-right"
|
||||
icon="lucide:arrow-right"
|
||||
class="inline-block size-4 align-[-0.15em]"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -145,7 +145,7 @@
|
||||
>
|
||||
<span class="sr-only">Schließen</span>
|
||||
<Icon
|
||||
icon="mdi:close"
|
||||
icon="lucide:x"
|
||||
class="size-5 text-gray-900"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
|
||||
@@ -28,42 +28,42 @@
|
||||
function iconForExt(ext: string | null): string {
|
||||
switch (ext) {
|
||||
case "pdf":
|
||||
return "mdi:file-pdf-box";
|
||||
return "lucide:file-text";
|
||||
case "doc":
|
||||
case "docx":
|
||||
case "rtf":
|
||||
case "odt":
|
||||
return "mdi:file-word-box";
|
||||
return "lucide:file-text";
|
||||
case "xls":
|
||||
case "xlsx":
|
||||
case "ods":
|
||||
case "csv":
|
||||
case "tsv":
|
||||
return "mdi:file-excel-box";
|
||||
return "lucide:file-spreadsheet";
|
||||
case "ppt":
|
||||
case "pptx":
|
||||
return "mdi:file-powerpoint-box";
|
||||
return "lucide:presentation";
|
||||
case "zip":
|
||||
case "tar":
|
||||
case "gz":
|
||||
case "7z":
|
||||
return "mdi:folder-zip";
|
||||
return "lucide:folder-archive";
|
||||
case "jpg":
|
||||
case "jpeg":
|
||||
case "png":
|
||||
case "webp":
|
||||
case "gif":
|
||||
case "svg":
|
||||
return "mdi:file-image";
|
||||
return "lucide:file-image";
|
||||
case "txt":
|
||||
case "md":
|
||||
return "mdi:file-document-outline";
|
||||
return "lucide:file-text";
|
||||
case "json":
|
||||
return "mdi:code-json";
|
||||
return "lucide:braces";
|
||||
case "xml":
|
||||
case "html":
|
||||
case "htm":
|
||||
return "mdi:xml";
|
||||
return "lucide:code";
|
||||
case "py":
|
||||
return "mdi:language-python";
|
||||
case "js":
|
||||
@@ -75,9 +75,9 @@
|
||||
return "mdi:language-rust";
|
||||
case "sh":
|
||||
case "bash":
|
||||
return "mdi:console";
|
||||
return "lucide:terminal";
|
||||
default:
|
||||
return "mdi:file-outline";
|
||||
return "lucide:file";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
onkeydown={(e) => e.key === "Enter" && activateMap()}
|
||||
>
|
||||
<Icon
|
||||
icon="mdi:cursor-default-click"
|
||||
icon="lucide:mouse-pointer-click"
|
||||
width="2rem"
|
||||
height="2rem"
|
||||
class="block text-white"
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
title={t(T.image_gallery_download)}
|
||||
aria-label={t(T.image_gallery_download)}
|
||||
>
|
||||
<Icon icon="mdi:download-outline" class="text-xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:download" class="text-xl" aria-hidden="true" />
|
||||
</a>
|
||||
</div>
|
||||
{#if withUrl.length > 1}
|
||||
@@ -249,7 +249,7 @@
|
||||
onclick={modalPrev}
|
||||
aria-label={t(T.image_gallery_prev_aria)}
|
||||
>
|
||||
<Icon icon="mdi:chevron-left" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="text-2xl" aria-hidden="true" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
@@ -257,7 +257,7 @@
|
||||
onclick={modalNext}
|
||||
aria-label={t(T.image_gallery_next_aria)}
|
||||
>
|
||||
<Icon icon="mdi:chevron-right" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="text-2xl" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
<button
|
||||
@@ -266,7 +266,7 @@
|
||||
onclick={closeModal}
|
||||
aria-label={t(T.image_gallery_close)}
|
||||
>
|
||||
<Icon icon="mdi:close" class="text-lg" aria-hidden="true" />
|
||||
<Icon icon="lucide:x" class="text-lg" aria-hidden="true" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -337,7 +337,7 @@
|
||||
aria-label={t(T.image_gallery_prev_aria)}
|
||||
onclick={prev}
|
||||
>
|
||||
<Icon icon="mdi:chevron-left" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="text-2xl" aria-hidden="true" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
@@ -345,7 +345,7 @@
|
||||
aria-label={t(T.image_gallery_next_aria)}
|
||||
onclick={next}
|
||||
>
|
||||
<Icon icon="mdi:chevron-right" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="text-2xl" aria-hidden="true" />
|
||||
</button>
|
||||
|
||||
<div class="flex justify-center gap-1.5 mt-2" role="tablist" aria-label={t(T.image_gallery_position_aria)}>
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
onclick={(e) => e.stopPropagation()}
|
||||
class="inline-flex items-center gap-1 rounded-sm border border-stein-200 bg-stein-50 px-2 py-0.5 text-[0.6rem] text-stein-600 no-underline transition-colors hover:border-red-300 hover:bg-red-50 hover:text-red-700"
|
||||
>
|
||||
<Icon icon="mdi:youtube" class="size-3 shrink-0" />
|
||||
<Icon icon="lucide:youtube" class="size-3 shrink-0" />
|
||||
<span>YouTube</span>
|
||||
</a>
|
||||
{/if}
|
||||
@@ -198,7 +198,7 @@
|
||||
aria-label="Vorherige Organisationen"
|
||||
class="hidden md:flex absolute -left-3 top-1/2 -translate-y-1/2 -translate-x-1/2 size-7 items-center justify-center rounded-full bg-white border border-stein-200 shadow-md hover:bg-stein-50 transition"
|
||||
>
|
||||
<Icon icon="mdi:chevron-left" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="size-4" aria-hidden="true" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
@@ -206,7 +206,7 @@
|
||||
aria-label="Weitere Organisationen"
|
||||
class="hidden md:flex absolute -right-3 top-1/2 -translate-y-1/2 translate-x-1/2 size-7 items-center justify-center rounded-full bg-white border border-stein-200 shadow-md hover:bg-stein-50 transition"
|
||||
>
|
||||
<Icon icon="mdi:chevron-right" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="size-4" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
aria-label="Karte aktivieren"
|
||||
>
|
||||
<span class="flex items-center gap-2 rounded-md bg-white/95 px-3 py-1.5 text-sm font-medium text-stein-800 shadow-md">
|
||||
<Icon icon="mdi:cursor-default-click-outline" class="size-4" />
|
||||
<Icon icon="lucide:mouse-pointer-click" class="size-4" />
|
||||
Karte aktivieren
|
||||
</span>
|
||||
</button>
|
||||
@@ -167,13 +167,13 @@
|
||||
class="shrink-0 text-stein-400 transition-colors hover:text-stein-700"
|
||||
aria-label="Schließen"
|
||||
>
|
||||
<Icon icon="mdi:close" class="size-4" />
|
||||
<Icon icon="lucide:x" class="size-4" />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{#if selectedOrg.location?.text}
|
||||
<p class="mb-3 flex items-center gap-1 text-xs text-stein-500">
|
||||
<Icon icon="mdi:map-marker-outline" class="size-3.5 shrink-0" />
|
||||
<Icon icon="lucide:map-pin" class="size-3.5 shrink-0" />
|
||||
{selectedOrg.location.text}
|
||||
</p>
|
||||
{/if}
|
||||
@@ -203,13 +203,13 @@
|
||||
{/if}
|
||||
{#if c.email}
|
||||
<a href="mailto:{c.email}" class="mt-0.5 flex items-center gap-1 text-wald-700 hover:underline">
|
||||
<Icon icon="mdi:email-outline" class="size-3 shrink-0" />
|
||||
<Icon icon="lucide:mail" class="size-3 shrink-0" />
|
||||
<span class="truncate">{c.email}</span>
|
||||
</a>
|
||||
{/if}
|
||||
{#if c.phone}
|
||||
<a href="tel:{c.phone.replace(/\s+/g, '')}" class="mt-0.5 flex items-center gap-1 text-wald-700 hover:underline">
|
||||
<Icon icon="mdi:phone" class="size-3 shrink-0" />
|
||||
<Icon icon="lucide:phone" class="size-3 shrink-0" />
|
||||
{c.phone}
|
||||
</a>
|
||||
{/if}
|
||||
@@ -228,7 +228,7 @@
|
||||
rel="noopener noreferrer"
|
||||
class="btn-outline btn-sm w-full justify-center no-underline!"
|
||||
>
|
||||
<Icon icon="mdi:open-in-new" class="size-3.5" />
|
||||
<Icon icon="lucide:external-link" class="size-3.5" />
|
||||
{getLinkLabel(selectedOrg)}
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
aria-label="Zurück"
|
||||
class="hidden md:flex absolute -left-3 top-1/2 -translate-y-1/2 -translate-x-1/2 size-7 items-center justify-center rounded-full bg-white/90 border border-stein-200 shadow-sm hover:bg-white hover:border-wald-700 transition"
|
||||
>
|
||||
<Icon icon="mdi:chevron-left" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="size-4" aria-hidden="true" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
@@ -114,7 +114,7 @@
|
||||
aria-label="Weiter"
|
||||
class="hidden md:flex absolute -right-3 top-1/2 -translate-y-1/2 translate-x-1/2 size-7 items-center justify-center rounded-full bg-white/90 border border-stein-200 shadow-sm hover:bg-white hover:border-wald-700 transition"
|
||||
>
|
||||
<Icon icon="mdi:chevron-right" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="size-4" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
>
|
||||
<div class="flex flex-col gap-2">
|
||||
<div class="relative max-w-sm flex-1">
|
||||
<Icon icon="mdi:magnify" class="absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-stein-400 pointer-events-none" aria-hidden="true" />
|
||||
<Icon icon="lucide:search" class="absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-stein-400 pointer-events-none" aria-hidden="true" />
|
||||
<input
|
||||
type="search"
|
||||
placeholder={t(T.searchable_text_placeholder)}
|
||||
@@ -226,7 +226,7 @@
|
||||
onclick={() => (searchQuery = "")}
|
||||
aria-label={t(T.searchable_text_clear_search)}
|
||||
>
|
||||
<Icon icon="mdi:close" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:x" class="size-4" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -269,7 +269,7 @@
|
||||
{#if visibleFragments.length === 0}
|
||||
<div class="flex flex-col items-center justify-center gap-3 py-12 px-6 text-center">
|
||||
<div class="size-12 rounded-full bg-stein-100 flex items-center justify-center">
|
||||
<Icon icon="mdi:magnify" class="size-6 text-stein-400" aria-hidden="true" />
|
||||
<Icon icon="lucide:search" class="size-6 text-stein-400" aria-hidden="true" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-sm font-medium text-stein-600">{t(T.searchable_text_no_results)}</div>
|
||||
@@ -317,10 +317,10 @@
|
||||
}}
|
||||
aria-label={t(T.searchable_text_copy_aria)}
|
||||
>
|
||||
<Icon icon={copiedIndex === i ? "mdi:check" : "mdi:content-copy"} class="size-3.5 {copiedIndex === i ? 'text-wald-600' : ''}" aria-hidden="true" />
|
||||
<Icon icon={copiedIndex === i ? "lucide:check" : "lucide:copy"} class="size-3.5 {copiedIndex === i ? 'text-wald-600' : ''}" aria-hidden="true" />
|
||||
</button>
|
||||
<Icon
|
||||
icon="mdi:chevron-down"
|
||||
icon="lucide:chevron-down"
|
||||
class="text-stein-400 transition-transform size-5 {isOpen ? 'rotate-180' : ''}"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -349,7 +349,7 @@
|
||||
}}
|
||||
aria-label={t(T.searchable_text_copy_aria)}
|
||||
>
|
||||
<Icon icon={copiedIndex === i ? "mdi:check" : "mdi:content-copy"} class="size-4 {copiedIndex === i ? 'text-wald-600' : ''}" aria-hidden="true" />
|
||||
<Icon icon={copiedIndex === i ? "lucide:check" : "lucide:copy"} class="size-4 {copiedIndex === i ? 'text-wald-600' : ''}" aria-hidden="true" />
|
||||
</button>
|
||||
</div>
|
||||
{@html highlightInHtml(fragment.textHtml, searchQuery.trim())}
|
||||
|
||||
@@ -713,7 +713,7 @@ ${outputText}
|
||||
{@const soon = deadlineDays <= 7}
|
||||
<div class="mb-4 flex items-center gap-3 rounded-lg border px-4 py-3 text-sm font-medium
|
||||
{urgent ? 'border-red-300 bg-red-50 text-red-800' : soon ? 'border-orange-300 bg-orange-50 text-orange-800' : 'border-gelb-300 bg-gelb-50 text-gelb-800'}">
|
||||
<Icon icon="mdi:clock-alert-outline" class="size-5 shrink-0" />
|
||||
<Icon icon="lucide:alarm-clock" class="size-5 shrink-0" />
|
||||
<span>
|
||||
Einwendungsfrist: <strong>{deadlineFormatted}</strong>
|
||||
{#if deadlineDays === 0}, <strong>heute letzter Tag!</strong>
|
||||
@@ -724,7 +724,7 @@ ${outputText}
|
||||
</div>
|
||||
{:else if deadlineDays !== null && deadlineDays < 0}
|
||||
<div class="mb-4 flex items-center gap-3 rounded-lg border border-stein-300 bg-stein-100 px-4 py-3 text-sm font-medium text-stein-600">
|
||||
<Icon icon="mdi:clock-remove-outline" class="size-5 shrink-0" />
|
||||
<Icon icon="lucide:clock-fading" class="size-5 shrink-0" />
|
||||
<span>Einwendungsfrist abgelaufen ({deadlineFormatted}). Eine Einreichung ist möglicherweise nicht mehr möglich.</span>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -740,7 +740,7 @@ ${outputText}
|
||||
<!-- Fortsetzen-Banner -->
|
||||
{#if hadSavedState && step === 0}
|
||||
<div class="mb-6 flex flex-wrap items-center justify-between gap-3 rounded-lg border border-wald-300 bg-wald-50 px-4 py-3 text-sm">
|
||||
<span class="text-wald-800"><Icon icon="mdi:content-save-outline" class="mr-1 inline size-4" />Letzte Sitzung wiederhergestellt.</span>
|
||||
<span class="text-wald-800"><Icon icon="lucide:save" class="mr-1 inline size-4" />Letzte Sitzung wiederhergestellt.</span>
|
||||
<div class="flex gap-2">
|
||||
{#if outputHistory.length > 0}
|
||||
<button class="rounded-md bg-wald-700 px-3 py-1.5 text-xs font-semibold text-white hover:bg-wald-800" onclick={() => goTo(4)}>Zur Ausgabe →</button>
|
||||
@@ -778,7 +778,7 @@ ${outputText}
|
||||
title={STEP_LABELS[s]}
|
||||
>
|
||||
{#if s !== step && s <= maxStepReached && stepFilled[s]}
|
||||
<Icon icon="mdi:check" class="size-4" />
|
||||
<Icon icon="lucide:check" class="size-4" />
|
||||
{:else}
|
||||
{s + 1}
|
||||
{/if}
|
||||
@@ -792,7 +792,7 @@ ${outputText}
|
||||
<span class="font-semibold text-wald-800">Schritt {step + 1} / {TOTAL_STEPS}, {STEP_LABELS[step]}</span>
|
||||
{#if saveStatus === "saved"}
|
||||
<span class="flex items-center gap-1 text-wald-600" aria-live="polite">
|
||||
<Icon icon="mdi:check-circle" class="size-3.5" aria-hidden="true" />
|
||||
<Icon icon="lucide:circle-check" class="size-3.5" aria-hidden="true" />
|
||||
Gespeichert
|
||||
</span>
|
||||
{/if}
|
||||
@@ -814,28 +814,28 @@ ${outputText}
|
||||
<dl class="mt-4 grid grid-cols-2 gap-3 text-sm sm:grid-cols-3">
|
||||
{#if windArea.gemeinden?.length}
|
||||
<div class="col-span-full rounded-lg border border-wald-200 bg-white/70 p-3 shadow-sm">
|
||||
<Icon icon="mdi:home-group" class="mb-1 size-5 text-wald-600" aria-hidden="true" />
|
||||
<Icon icon="lucide:house" class="mb-1 size-5 text-wald-600" aria-hidden="true" />
|
||||
<dt class="whitespace-nowrap text-sm font-semibold text-wald-800 sm:text-base">Gemeinden</dt>
|
||||
<dd class="mt-1 text-stein-600">{windArea.gemeinden.join(", ")}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{#if windArea.flaeche_ha}
|
||||
<div class="rounded-lg border border-wald-200 bg-white/70 p-3 shadow-sm">
|
||||
<Icon icon="mdi:vector-square" class="mb-1 size-5 text-wald-600" aria-hidden="true" />
|
||||
<Icon icon="lucide:square-dashed" class="mb-1 size-5 text-wald-600" aria-hidden="true" />
|
||||
<dt class="whitespace-nowrap text-sm font-semibold text-wald-800 sm:text-base">Fläche</dt>
|
||||
<dd class="mt-1 text-stein-600">{windArea.flaeche_ha.toLocaleString("de-DE")} ha</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{#if windArea.investor}
|
||||
<div class="rounded-lg border border-wald-200 bg-white/70 p-3 shadow-sm">
|
||||
<Icon icon="mdi:domain" class="mb-1 size-5 text-wald-600" aria-hidden="true" />
|
||||
<Icon icon="lucide:building-2" class="mb-1 size-5 text-wald-600" aria-hidden="true" />
|
||||
<dt class="whitespace-nowrap text-sm font-semibold text-wald-800 sm:text-base">Investor</dt>
|
||||
<dd class="mt-1 text-stein-600">{windArea.investor}</dd>
|
||||
</div>
|
||||
{/if}
|
||||
{#if windArea.status}
|
||||
<div class="rounded-lg border border-wald-200 bg-white/70 p-3 shadow-sm">
|
||||
<Icon icon="mdi:flag-outline" class="mb-1 size-5 text-wald-600" aria-hidden="true" />
|
||||
<Icon icon="lucide:flag" class="mb-1 size-5 text-wald-600" aria-hidden="true" />
|
||||
<dt class="whitespace-nowrap text-sm font-semibold text-wald-800 sm:text-base">Status</dt>
|
||||
<dd class="mt-1 text-stein-600 capitalize">{windArea.status.replace(/_/g, " ")}</dd>
|
||||
</div>
|
||||
@@ -844,7 +844,7 @@ ${outputText}
|
||||
{#if windArea.notizen}
|
||||
<details class="mt-4 border-t border-wald-200 pt-3" open>
|
||||
<summary class="flex cursor-pointer items-center gap-1 text-sm font-medium text-wald-700 list-none">
|
||||
<Icon icon="mdi:chevron-down" class="det-chevron size-4" />
|
||||
<Icon icon="lucide:chevron-down" class="det-chevron size-4" />
|
||||
Steckbrief des Gebiets
|
||||
</summary>
|
||||
<div class="prose prose-sm prose-stein mt-2 max-h-72 max-w-none overflow-y-auto rounded-lg bg-white/60 p-3 text-sm text-stein-700">{@html md(windArea.notizen.replace(/\n/g, " \n"))}</div>
|
||||
@@ -939,7 +939,7 @@ ${outputText}
|
||||
class="shrink-0 text-wald-500 hover:text-wald-800"
|
||||
onclick={() => toggleItem(k._slug)}
|
||||
aria-label={expandedItems.has(k._slug) ? "Einklappen" : "Ausklappen"}
|
||||
><Icon icon={expandedItems.has(k._slug) ? "mdi:chevron-up" : "mdi:chevron-down"} class="size-4" /></button>
|
||||
><Icon icon={expandedItems.has(k._slug) ? "lucide:chevron-up" : "lucide:chevron-down"} class="size-4" /></button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
@@ -996,7 +996,7 @@ ${outputText}
|
||||
|
||||
{#if allgemeineGruppen.length > 0}
|
||||
<div class="relative mb-3">
|
||||
<Icon icon="mdi:magnify" class="pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-stein-400" />
|
||||
<Icon icon="lucide:search" class="pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-stein-400" />
|
||||
<input
|
||||
type="search"
|
||||
class="w-full rounded-lg border border-stein-300 py-2 pl-9 pr-3 text-sm text-stein-800 focus:border-wald-500 focus:outline-none focus:ring-2 focus:ring-wald-200"
|
||||
@@ -1076,7 +1076,7 @@ ${outputText}
|
||||
class="shrink-0 text-wald-500 hover:text-wald-800"
|
||||
onclick={() => toggleItem(f._slug)}
|
||||
aria-label={expandedItems.has(f._slug) ? "Einklappen" : "Ausklappen"}
|
||||
><Icon icon={expandedItems.has(f._slug) ? "mdi:chevron-up" : "mdi:chevron-down"} class="size-4" /></button>
|
||||
><Icon icon={expandedItems.has(f._slug) ? "lucide:chevron-up" : "lucide:chevron-down"} class="size-4" /></button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
@@ -1166,7 +1166,7 @@ ${outputText}
|
||||
}}
|
||||
title="Felder mit Platzhaltern füllen, später im fertigen Text in eckigen Klammern suchen und ersetzen."
|
||||
>
|
||||
<Icon icon="mdi:format-text-variant-outline" class="size-3.5 text-stein-500" />
|
||||
<Icon icon="lucide:type" class="size-3.5 text-stein-500" />
|
||||
Mit Platzhaltern füllen
|
||||
</button>
|
||||
<span class="text-[11px] text-stein-400">Erzeugt z.B. <code class="rounded bg-stein-100 px-1">[Vor- und Nachname]</code>, später ersetzen.</span>
|
||||
@@ -1203,7 +1203,7 @@ ${outputText}
|
||||
<div class="my-6 flex items-center gap-3">
|
||||
<div class="h-px flex-1 bg-wald-200"></div>
|
||||
<span class="flex items-center gap-1.5 rounded-full bg-wald-100 px-3 py-1 text-[11px] font-semibold uppercase tracking-wider text-wald-800">
|
||||
<Icon icon="mdi:check-decagram" class="size-3.5" />
|
||||
<Icon icon="lucide:badge-check" class="size-3.5" />
|
||||
Ergebnis
|
||||
</span>
|
||||
<div class="h-px flex-1 bg-wald-200"></div>
|
||||
@@ -1212,7 +1212,7 @@ ${outputText}
|
||||
<!-- Block 1: Schreibvorlage -->
|
||||
<div class="mb-4 rounded-xl border border-wald-200 bg-white p-4 shadow-sm">
|
||||
<div class="mb-2 flex items-start gap-2">
|
||||
<Icon icon="mdi:file-document-edit-outline" class="mt-0.5 size-5 shrink-0 text-wald-700" />
|
||||
<Icon icon="lucide:file-pen" class="mt-0.5 size-5 shrink-0 text-wald-700" />
|
||||
<div class="flex-1">
|
||||
<h4 class="text-sm font-semibold text-wald-800">Schreibvorlage verwenden</h4>
|
||||
<p class="mt-0.5 text-xs text-stein-500">Text direkt übernehmen, kopieren, herunterladen oder drucken.</p>
|
||||
@@ -1223,21 +1223,21 @@ ${outputText}
|
||||
class="inline-flex items-center gap-1.5 rounded-md border border-wald-300 bg-wald-50 px-3 py-1.5 text-xs font-medium text-wald-800 hover:bg-wald-100"
|
||||
onclick={copyText}
|
||||
>
|
||||
<Icon icon="mdi:content-copy" class="size-3.5" />
|
||||
<Icon icon="lucide:copy" class="size-3.5" />
|
||||
{copyFeedback || "Kopieren"}
|
||||
</button>
|
||||
<button
|
||||
class="inline-flex items-center gap-1.5 rounded-md border border-stein-300 bg-white px-3 py-1.5 text-xs font-medium text-stein-700 hover:bg-stein-50"
|
||||
onclick={downloadText}
|
||||
>
|
||||
<Icon icon="mdi:download" class="size-3.5" />
|
||||
<Icon icon="lucide:download" class="size-3.5" />
|
||||
Herunterladen
|
||||
</button>
|
||||
<button
|
||||
class="inline-flex items-center gap-1.5 rounded-md border border-stein-300 bg-white px-3 py-1.5 text-xs font-medium text-stein-700 hover:bg-stein-50"
|
||||
onclick={printText}
|
||||
>
|
||||
<Icon icon="mdi:printer" class="size-3.5" />
|
||||
<Icon icon="lucide:printer" class="size-3.5" />
|
||||
Drucken
|
||||
</button>
|
||||
{#if mailtoLink && !mailTooLong}
|
||||
@@ -1245,7 +1245,7 @@ ${outputText}
|
||||
href={mailtoLink}
|
||||
class="inline-flex items-center gap-1.5 rounded-md border border-wald-400 bg-wald-50 px-3 py-1.5 text-xs font-medium text-wald-700 no-underline hover:bg-wald-100"
|
||||
>
|
||||
<Icon icon="mdi:email-outline" class="size-3.5" />
|
||||
<Icon icon="lucide:mail" class="size-3.5" />
|
||||
{block.recipientEmail ? "Per E-Mail senden" : "Per E-Mail (an mich)"}
|
||||
</a>
|
||||
{/if}
|
||||
@@ -1255,7 +1255,7 @@ ${outputText}
|
||||
<!-- Block 2: KI-Variante -->
|
||||
<div class="mb-4 rounded-xl border border-himmel-200 bg-himmel-50/40 p-4 shadow-sm">
|
||||
<div class="mb-3 flex items-start gap-2">
|
||||
<Icon icon="mdi:robot-outline" class="mt-0.5 size-5 shrink-0 text-himmel-700" />
|
||||
<Icon icon="lucide:bot" class="mt-0.5 size-5 shrink-0 text-himmel-700" />
|
||||
<div class="flex-1">
|
||||
<h4 class="text-sm font-semibold text-himmel-800">Mit KI eine individuelle Version erstellen</h4>
|
||||
<p class="mt-0.5 text-xs text-stein-500">
|
||||
@@ -1305,13 +1305,13 @@ ${outputText}
|
||||
<details class="mb-3 rounded-lg border border-himmel-200 bg-white/70 overflow-hidden">
|
||||
<summary class="flex cursor-pointer items-center justify-between bg-himmel-50 px-3 py-2 text-[11px] font-medium text-himmel-800 hover:bg-himmel-100 list-none">
|
||||
<span class="flex items-center gap-1.5">
|
||||
<Icon icon="mdi:tune-variant" class="size-3.5" />
|
||||
<Icon icon="lucide:sliders-horizontal" class="size-3.5" />
|
||||
Inhaltliche Regeln für die KI feinjustieren
|
||||
{#if aiRules.trim() !== DEFAULT_AI_RULES.trim()}
|
||||
<span class="rounded-full bg-himmel-200 px-1.5 py-0.5 text-[9px] text-himmel-800">angepasst</span>
|
||||
{/if}
|
||||
</span>
|
||||
<Icon icon="mdi:chevron-down" class="det-chevron size-4 text-himmel-600" />
|
||||
<Icon icon="lucide:chevron-down" class="det-chevron size-4 text-himmel-600" />
|
||||
</summary>
|
||||
<div class="border-t border-himmel-100 p-3">
|
||||
<p class="mb-2 text-[10px] text-stein-500">
|
||||
@@ -1339,7 +1339,7 @@ ${outputText}
|
||||
class="inline-flex items-center gap-1.5 rounded-md border border-himmel-500 bg-himmel-600 px-3.5 py-2 text-xs font-semibold text-white shadow-sm hover:bg-himmel-700"
|
||||
onclick={copyAiPrompt}
|
||||
>
|
||||
<Icon icon="mdi:content-copy" class="size-3.5" />
|
||||
<Icon icon="lucide:copy" class="size-3.5" />
|
||||
{copyAiPromptFeedback || "In Zwischenablage kopieren"}
|
||||
</button>
|
||||
<button
|
||||
@@ -1347,7 +1347,7 @@ ${outputText}
|
||||
onclick={downloadAiPrompt}
|
||||
title="Prompt als Textdatei speichern, alternativ zur Zwischenablage."
|
||||
>
|
||||
<Icon icon="mdi:download" class="size-3.5" />
|
||||
<Icon icon="lucide:download" class="size-3.5" />
|
||||
Als .txt herunterladen
|
||||
</button>
|
||||
</div>
|
||||
@@ -1357,20 +1357,20 @@ ${outputText}
|
||||
<details class="mb-4 rounded-xl border border-stein-200 bg-white overflow-hidden">
|
||||
<summary class="flex cursor-pointer items-center justify-between bg-stein-50 px-4 py-3 text-sm font-medium text-stein-700 hover:bg-stein-100 list-none">
|
||||
<span class="flex items-center gap-2">
|
||||
<Icon icon="mdi:tune" class="size-4 text-stein-500" />
|
||||
<Icon icon="lucide:sliders-horizontal" class="size-4 text-stein-500" />
|
||||
Brief im Detail anpassen
|
||||
{#if tweakBadges.length > 0}
|
||||
<span class="text-[10px] text-stein-400">({tweakBadges.join(" · ")})</span>
|
||||
{/if}
|
||||
</span>
|
||||
<Icon icon="mdi:chevron-down" class="det-chevron size-4 text-stein-400" />
|
||||
<Icon icon="lucide:chevron-down" class="det-chevron size-4 text-stein-400" />
|
||||
</summary>
|
||||
|
||||
<div class="border-t border-stein-200 p-4 space-y-4">
|
||||
<!-- Vorschau -->
|
||||
<div>
|
||||
<p class="mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-stein-500">
|
||||
<Icon icon="mdi:file-document-outline" class="size-3.5" />
|
||||
<Icon icon="lucide:file-text" class="size-3.5" />
|
||||
Vorschau
|
||||
{#if hasManualEdit}
|
||||
<span class="rounded-full bg-himmel-100 px-2 py-0.5 text-[9px] font-normal text-himmel-700">bearbeitet</span>
|
||||
@@ -1400,7 +1400,7 @@ ${outputText}
|
||||
{#if selectedFragments.length > 1}
|
||||
<div>
|
||||
<p class="mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide text-stein-500">
|
||||
<Icon icon="mdi:drag-vertical" class="size-3.5" />
|
||||
<Icon icon="lucide:grip-vertical" class="size-3.5" />
|
||||
Reihenfolge der Argumente ({selectedFragments.length})
|
||||
</p>
|
||||
<div class="divide-y divide-stein-100 rounded-lg border border-stein-200">
|
||||
@@ -1414,7 +1414,7 @@ ${outputText}
|
||||
class="flex cursor-grab items-center gap-3 px-3 py-2 text-sm transition-colors active:cursor-grabbing
|
||||
{dragOverIdx === i && dragIdx !== i ? 'bg-wald-50 border-t-2 border-wald-400' : 'bg-white hover:bg-stein-50'}"
|
||||
>
|
||||
<Icon icon="mdi:drag-vertical" class="size-4 shrink-0 text-stein-400" />
|
||||
<Icon icon="lucide:grip-vertical" class="size-4 shrink-0 text-stein-400" />
|
||||
<span class="flex-1 truncate text-stein-700">{frag.title ?? frag._slug.replace(/_/g, " ")}</span>
|
||||
<span class="shrink-0 text-[10px] text-stein-400">{i + 1}</span>
|
||||
</div>
|
||||
@@ -1478,7 +1478,7 @@ ${outputText}
|
||||
onclick={() => (historyExpanded = !historyExpanded)}
|
||||
>
|
||||
<span>Frühere Versionen ({outputHistory.length})</span>
|
||||
<Icon icon={historyExpanded ? "mdi:chevron-up" : "mdi:chevron-down"} class="size-4" />
|
||||
<Icon icon={historyExpanded ? "lucide:chevron-up" : "lucide:chevron-down"} class="size-4" />
|
||||
</button>
|
||||
|
||||
{#if historyExpanded}
|
||||
|
||||
@@ -403,7 +403,7 @@
|
||||
</span>
|
||||
{#if explanationHref}
|
||||
<span class="text-xs text-stein-500 inline-flex items-center gap-1">
|
||||
<Icon icon="mdi:chevron-right" class="size-3.5" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="size-3.5" aria-hidden="true" />
|
||||
{t(T.strommix_compact_more)}
|
||||
</span>
|
||||
{/if}
|
||||
@@ -433,7 +433,7 @@
|
||||
>
|
||||
<span class="inline-flex items-center gap-1.5 uppercase tracking-wide">
|
||||
<Icon
|
||||
icon="mdi:transmission-tower"
|
||||
icon="lucide:radio-tower"
|
||||
class="size-4"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -443,12 +443,12 @@
|
||||
<span class="inline-flex items-center gap-2 normal-case font-normal">
|
||||
{#if isStale}
|
||||
<span class="inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] uppercase tracking-wide bg-fire-700 text-fire-50">
|
||||
<Icon icon="mdi:cloud-off-outline" class="size-3" aria-hidden="true" />
|
||||
<Icon icon="lucide:cloud-off" class="size-3" aria-hidden="true" />
|
||||
{t(T.strommix_stale_badge)}
|
||||
</span>
|
||||
{:else}
|
||||
<span class="inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] uppercase tracking-wide {accentClasses.badge}">
|
||||
<Icon icon="mdi:database-outline" class="size-3" aria-hidden="true" />
|
||||
<Icon icon="lucide:database" class="size-3" aria-hidden="true" />
|
||||
{#if live.dataSource === "smard"}
|
||||
SMARD
|
||||
{:else if live.dataSource === "smard+energy-charts"}
|
||||
@@ -473,7 +473,7 @@
|
||||
<!-- Main: percentage + status -->
|
||||
{#if loadError && !live}
|
||||
<div class="p-6 text-sm text-fire-700 flex flex-wrap items-center gap-3">
|
||||
<Icon icon="mdi:alert-circle-outline" class="size-5 shrink-0" aria-hidden="true" />
|
||||
<Icon icon="lucide:circle-alert" class="size-5 shrink-0" aria-hidden="true" />
|
||||
<span class="flex-1 min-w-0">
|
||||
{t(T.strommix_load_error, { error: loadError })}
|
||||
</span>
|
||||
@@ -483,7 +483,7 @@
|
||||
onclick={() => loadLive()}
|
||||
disabled={isLoading}
|
||||
>
|
||||
<Icon icon="mdi:refresh" class="size-3.5 {isLoading ? 'animate-spin' : ''}" aria-hidden="true" />
|
||||
<Icon icon="lucide:refresh-cw" class="size-3.5 {isLoading ? 'animate-spin' : ''}" aria-hidden="true" />
|
||||
{t(T.strommix_retry)}
|
||||
</button>
|
||||
</div>
|
||||
@@ -615,7 +615,7 @@
|
||||
derselbe Preis sonst zweimal genannt würde. -->
|
||||
<div class="mt-2 flex items-start gap-3 rounded-xs border-2 border-fire-500 bg-fire-50 px-4 py-2.5 text-sm shadow-sm">
|
||||
<Icon
|
||||
icon="mdi:alert-circle"
|
||||
icon="lucide:circle-alert"
|
||||
class="size-6 shrink-0 text-fire-700"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
@@ -679,7 +679,7 @@
|
||||
{#if live && hasHistoryPanels}
|
||||
<details class="strommix-history mt-3 group">
|
||||
<summary class="cursor-pointer rounded-xs border border-stein-200 bg-white px-4 py-2 text-sm font-semibold text-stein-700 shadow-sm hover:bg-stein-50 inline-flex items-center gap-2">
|
||||
<Icon icon="mdi:chevron-right" class="size-4 transition-transform group-open:rotate-90" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="size-4 transition-transform group-open:rotate-90" aria-hidden="true" />
|
||||
{t(T.strommix_history_summary)}
|
||||
</summary>
|
||||
|
||||
@@ -833,7 +833,7 @@
|
||||
{#if isStale}
|
||||
<span class="inline-flex items-center gap-1 text-fire-700">
|
||||
<Icon
|
||||
icon="mdi:cloud-off-outline"
|
||||
icon="lucide:cloud-off"
|
||||
class="size-3.5"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
|
||||
@@ -191,7 +191,7 @@
|
||||
<span
|
||||
class="inline-flex h-12 w-12 items-center justify-center rounded-full bg-white/90 text-stein-900 shadow-md group-hover:bg-white"
|
||||
>
|
||||
<Icon icon="mdi:play" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:play" class="text-2xl" aria-hidden="true" />
|
||||
</span>
|
||||
</span>
|
||||
{#if label}
|
||||
@@ -251,7 +251,7 @@
|
||||
onclick={modalPrev}
|
||||
aria-label={t(T.image_gallery_prev_aria)}
|
||||
>
|
||||
<Icon icon="mdi:chevron-left" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="text-2xl" aria-hidden="true" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
@@ -259,7 +259,7 @@
|
||||
onclick={modalNext}
|
||||
aria-label={t(T.image_gallery_next_aria)}
|
||||
>
|
||||
<Icon icon="mdi:chevron-right" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="text-2xl" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
<button
|
||||
@@ -268,7 +268,7 @@
|
||||
onclick={closeModal}
|
||||
aria-label={t(T.image_gallery_close)}
|
||||
>
|
||||
<Icon icon="mdi:close" class="text-lg" aria-hidden="true" />
|
||||
<Icon icon="lucide:x" class="text-lg" aria-hidden="true" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -312,7 +312,7 @@
|
||||
aria-label={t(T.image_gallery_prev_aria)}
|
||||
onclick={prev}
|
||||
>
|
||||
<Icon icon="mdi:chevron-left" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="text-2xl" aria-hidden="true" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
@@ -320,7 +320,7 @@
|
||||
aria-label={t(T.image_gallery_next_aria)}
|
||||
onclick={next}
|
||||
>
|
||||
<Icon icon="mdi:chevron-right" class="text-2xl" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-right" class="text-2xl" aria-hidden="true" />
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
{
|
||||
"prefix": "lucide",
|
||||
"width": 24,
|
||||
"height": 24,
|
||||
"icons": {
|
||||
"chevron-right": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"/>"
|
||||
},
|
||||
"search": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"m21 21l-4.34-4.34\"/><circle cx=\"11\" cy=\"11\" r=\"8\"/></g>"
|
||||
},
|
||||
"x": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M18 6L6 18M6 6l12 12\"/>"
|
||||
},
|
||||
"calendar": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M8 2v4m8-4v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/><path d=\"M3 10h18\"/></g>"
|
||||
},
|
||||
"chevron-down": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"/>"
|
||||
},
|
||||
"calendar-clock": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M16 14v2.2l1.6 1M16 2v4m5 1.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5M3 10h5m0-8v4\"/><circle cx=\"16\" cy=\"16\" r=\"6\"/></g>"
|
||||
},
|
||||
"rss": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16\"/><circle cx=\"5\" cy=\"19\" r=\"1\"/></g>"
|
||||
},
|
||||
"chevron-left": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m15 18l-6-6l6-6\"/>"
|
||||
},
|
||||
"pencil": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497zM15 5l4 4\"/>"
|
||||
},
|
||||
"trash-2": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 11v6m4-6v6m5-11v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/>"
|
||||
},
|
||||
"clock": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 6v6l4 2\"/></g>"
|
||||
},
|
||||
"circle-alert": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 8v4m0 4h.01\"/></g>"
|
||||
},
|
||||
"message-square-text": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2zM7 11h10M7 15h6M7 7h8\"/>"
|
||||
},
|
||||
"reply": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M20 18v-2a4 4 0 0 0-4-4H4\"/><path d=\"m9 17l-5-5l5-5\"/></g>"
|
||||
},
|
||||
"shield-check": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"/><path d=\"m9 12l2 2l4-4\"/></g>"
|
||||
},
|
||||
"id-card": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M16 10h2m-2 4h2M6.17 15a3 3 0 0 1 5.66 0\"/><circle cx=\"9\" cy=\"11\" r=\"2\"/><rect width=\"20\" height=\"14\" x=\"2\" y=\"5\" rx=\"2\"/></g>"
|
||||
},
|
||||
"phone": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233a14 14 0 0 0 6.392 6.384\"/>"
|
||||
},
|
||||
"mail": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"/><rect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"/></g>"
|
||||
},
|
||||
"map-pin": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\"/><circle cx=\"12\" cy=\"10\" r=\"3\"/></g>"
|
||||
},
|
||||
"mouse-pointer-click": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14 4.1L12 6M5.1 8l-2.9-.8M6 12l-1.9 2M7.2 2.2L8 5.1m1.037 4.59a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z\"/>"
|
||||
},
|
||||
"external-link": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 3h6v6m-11 5L21 3m-3 10v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/>"
|
||||
},
|
||||
"menu": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"/>"
|
||||
},
|
||||
"message-circle": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092a10 10 0 1 0-4.777-4.719\"/>"
|
||||
},
|
||||
"printer": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6\"/><rect width=\"12\" height=\"8\" x=\"6\" y=\"14\" rx=\"1\"/></g>"
|
||||
},
|
||||
"image": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"/><circle cx=\"9\" cy=\"9\" r=\"2\"/><path d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"/></g>"
|
||||
},
|
||||
"qr-code": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><rect width=\"5\" height=\"5\" x=\"3\" y=\"3\" rx=\"1\"/><rect width=\"5\" height=\"5\" x=\"16\" y=\"3\" rx=\"1\"/><rect width=\"5\" height=\"5\" x=\"3\" y=\"16\" rx=\"1\"/><path d=\"M21 16h-3a2 2 0 0 0-2 2v3m5 0v.01M12 7v3a2 2 0 0 1-2 2H7m-4 0h.01M12 3h.01M12 16v.01M16 12h1m4 0v.01M12 21v-1\"/></g>"
|
||||
},
|
||||
"download": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/><path d=\"m7 10l5 5l5-5\"/></g>"
|
||||
},
|
||||
"ruler": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Zm-6.8-2.8l2-2m-5-1l2-2m-5-1l2-2m7 11l2-2\"/>"
|
||||
},
|
||||
"fan": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618zM12 12v.01\"/>"
|
||||
},
|
||||
"info": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4m0-4h.01\"/></g>"
|
||||
},
|
||||
"building-2": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M10 12h4m-4-4h4m0 13v-3a2 2 0 0 0-4 0v3\"/><path d=\"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2\"/><path d=\"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16\"/></g>"
|
||||
},
|
||||
"loader-circle": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 12a9 9 0 1 1-6.219-8.56\"/>"
|
||||
},
|
||||
"file-pen": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5m-9.622 4.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z\"/></g>"
|
||||
},
|
||||
"map": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0zm.894.211v15M9 3.236v15\"/>"
|
||||
},
|
||||
"arrow-down-a-z": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m3 16l4 4l4-4m-4 4V4m13 4h-5m0 2V6.5a2.5 2.5 0 0 1 5 0V10m-5 4h5l-5 6h5\"/>"
|
||||
},
|
||||
"users": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M16 3.128a4 4 0 0 1 0 7.744M22 21v-2a4 4 0 0 0-3-3.87\"/><circle cx=\"9\" cy=\"7\" r=\"4\"/></g>"
|
||||
},
|
||||
"copy": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></g>"
|
||||
},
|
||||
"arrow-up-right": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"/>"
|
||||
},
|
||||
"zoom-in": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21l-4.35-4.35M11 8v6m-3-3h6\"/></g>"
|
||||
},
|
||||
"arrow-right": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"/>"
|
||||
},
|
||||
"file-down": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5m-8 10v-6m-3 3l3 3l3-3\"/></g>"
|
||||
},
|
||||
"calendar-search": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M16 2v4m5 5.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25M22 22l-1.875-1.875M3 10h18M8 2v4\"/><circle cx=\"18\" cy=\"18\" r=\"3\"/></g>"
|
||||
},
|
||||
"calendar-plus": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M16 19h6M16 2v4m3 10v6m2-9.402V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5M3 10h18M8 2v4\"/>"
|
||||
},
|
||||
"youtube": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M2.5 17a24.1 24.1 0 0 1 0-10a2 2 0 0 1 1.4-1.4a49.6 49.6 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.1 24.1 0 0 1 0 10a2 2 0 0 1-1.4 1.4a49.6 49.6 0 0 1-16.2 0A2 2 0 0 1 2.5 17\"/><path d=\"m10 15l5-3l-5-3z\"/></g>",
|
||||
"hidden": true
|
||||
},
|
||||
"alarm-clock": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"12\" cy=\"13\" r=\"8\"/><path d=\"M12 9v4l2 2M5 3L2 6m20 0l-3-3M6.38 18.7L4 21m13.64-2.33L20 21\"/></g>"
|
||||
},
|
||||
"clock-fading": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 2a10 10 0 0 1 7.38 16.75M12 6v6l4 2M2.5 8.875a10 10 0 0 0-.5 3M2.83 16a10 10 0 0 0 2.43 3.4M4.636 5.235a10 10 0 0 1 .891-.857M8.644 21.42a10 10 0 0 0 7.631-.38\"/>"
|
||||
},
|
||||
"save": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\"/><path d=\"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7M7 3v4a1 1 0 0 0 1 1h7\"/></g>"
|
||||
},
|
||||
"check": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20 6L9 17l-5-5\"/>"
|
||||
},
|
||||
"circle-check": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12l2 2l4-4\"/></g>"
|
||||
},
|
||||
"house": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"/><path d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/></g>"
|
||||
},
|
||||
"square-dashed": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 3a2 2 0 0 0-2 2m16-2a2 2 0 0 1 2 2m0 14a2 2 0 0 1-2 2M5 21a2 2 0 0 1-2-2M9 3h1M9 21h1m4-18h1m-1 18h1M3 9v1m18-1v1M3 14v1m18-1v1\"/>"
|
||||
},
|
||||
"flag": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528\"/>"
|
||||
},
|
||||
"type": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 4v16M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2M9 20h6\"/>"
|
||||
},
|
||||
"badge-check": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\"/><path d=\"m9 12l2 2l4-4\"/></g>"
|
||||
},
|
||||
"bot": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M12 8V4H8\"/><rect width=\"16\" height=\"12\" x=\"4\" y=\"8\" rx=\"2\"/><path d=\"M2 14h2m16 0h2m-7-1v2m-6-2v2\"/></g>"
|
||||
},
|
||||
"sliders-horizontal": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 5H3m9 14H3M14 3v4m2 10v4m5-9h-9m9 7h-5m5-14h-7m-6 5v4m0-2H3\"/>"
|
||||
},
|
||||
"file-text": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8\"/></g>"
|
||||
},
|
||||
"grip-vertical": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"9\" cy=\"12\" r=\"1\"/><circle cx=\"9\" cy=\"5\" r=\"1\"/><circle cx=\"9\" cy=\"19\" r=\"1\"/><circle cx=\"15\" cy=\"12\" r=\"1\"/><circle cx=\"15\" cy=\"5\" r=\"1\"/><circle cx=\"15\" cy=\"19\" r=\"1\"/></g>"
|
||||
},
|
||||
"radio-tower": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M4.9 16.1C1 12.2 1 5.8 4.9 1.9m2.9 2.8a6.14 6.14 0 0 0-.8 7.5\"/><circle cx=\"12\" cy=\"9\" r=\"2\"/><path d=\"M16.2 4.8c2 2 2.26 5.11.8 7.47M19.1 1.9a9.96 9.96 0 0 1 0 14.1m-9.6 2h5M8 22l4-11l4 11\"/></g>"
|
||||
},
|
||||
"cloud-off": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10.94 5.274A7 7 0 0 1 15.71 10h1.79a4.5 4.5 0 0 1 4.222 6.057m-2.926 2.753A4.5 4.5 0 0 1 17.5 19H9A7 7 0 0 1 5.79 5.78M2 2l20 20\"/>"
|
||||
},
|
||||
"database": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"/><path d=\"M3 5v14a9 3 0 0 0 18 0V5\"/><path d=\"M3 12a9 3 0 0 0 18 0\"/></g>"
|
||||
},
|
||||
"refresh-cw": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M3 12a9 9 0 0 1 9-9a9.75 9.75 0 0 1 6.74 2.74L21 8\"/><path d=\"M21 3v5h-5m5 4a9 9 0 0 1-9 9a9.75 9.75 0 0 1-6.74-2.74L3 16\"/><path d=\"M8 16H3v5\"/></g>"
|
||||
},
|
||||
"play": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\"/>"
|
||||
},
|
||||
"calendar-arrow-up": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"m14 18l4-4l4 4M16 2v4m2 16v-8\"/><path d=\"M21 11.343V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9M3 10h18M8 2v4\"/></g>"
|
||||
},
|
||||
"calendar-1": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M11 14h1v4m4-16v4M3 10h18M8 2v4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/></g>"
|
||||
},
|
||||
"contact-round": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M16 2v2m1.915 18a6 6 0 0 0-12 0M8 2v2\"/><circle cx=\"12\" cy=\"12\" r=\"4\"/><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"/></g>"
|
||||
},
|
||||
"cloud": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9\"/>"
|
||||
},
|
||||
"facebook": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"/>",
|
||||
"hidden": true
|
||||
},
|
||||
"video": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"m16 13l5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5\"/><rect width=\"14\" height=\"12\" x=\"2\" y=\"6\" rx=\"2\"/></g>"
|
||||
},
|
||||
"instagram": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><rect width=\"20\" height=\"20\" x=\"2\" y=\"2\" rx=\"5\" ry=\"5\"/><path d=\"M16 11.37A4 4 0 1 1 12.63 8A4 4 0 0 1 16 11.37m1.5-4.87h.01\"/></g>",
|
||||
"hidden": true
|
||||
},
|
||||
"twitter": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6c2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4c-.9-4.2 4-6.6 7-3.8c1.1 0 3-1.2 3-1.2\"/>",
|
||||
"hidden": true
|
||||
},
|
||||
"linkedin": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2a2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6M2 9h4v12H2z\"/><circle cx=\"4\" cy=\"4\" r=\"2\"/></g>",
|
||||
"hidden": true
|
||||
},
|
||||
"github": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5c.08-1.25-.27-2.48-1-3.5c.28-1.15.28-2.35 0-3.5c0 0-1 0-3 1.5c-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 9c0 3.5 3 5.5 6 5.5c-.39.49-.68 1.05-.85 1.65S8.93 17.38 9 18v4\"/><path d=\"M9 18c-4.51 2-5-2-7-2\"/></g>",
|
||||
"hidden": true
|
||||
},
|
||||
"share-2": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"18\" cy=\"5\" r=\"3\"/><circle cx=\"6\" cy=\"12\" r=\"3\"/><circle cx=\"18\" cy=\"19\" r=\"3\"/><path d=\"m8.59 13.51l6.83 3.98m-.01-10.98l-6.82 3.98\"/></g>"
|
||||
},
|
||||
"link": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"/><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"/></g>"
|
||||
},
|
||||
"file": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5\"/></g>"
|
||||
},
|
||||
"file-spreadsheet": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5M8 13h2m4 0h2m-8 4h2m4 0h2\"/></g>"
|
||||
},
|
||||
"file-image": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5\"/><circle cx=\"10\" cy=\"12\" r=\"2\"/><path d=\"m20 17l-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22\"/></g>"
|
||||
},
|
||||
"file-play": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5m-4.967 5.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z\"/></g>"
|
||||
},
|
||||
"file-music": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M11.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v10.35\"/><path d=\"M14 2v5a1 1 0 0 0 1 1h5M8 20v-7l3 1.474\"/><circle cx=\"6\" cy=\"20\" r=\"2\"/></g>"
|
||||
},
|
||||
"presentation": {
|
||||
"body": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M2 3h20m-1 0v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3m4 18l5-5l5 5\"/>"
|
||||
},
|
||||
"tag": {
|
||||
"body": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\"/><circle cx=\"7.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"/></g>"
|
||||
}
|
||||
},
|
||||
"aliases": {
|
||||
"file-video": {
|
||||
"parent": "file-play"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,305 +3,27 @@
|
||||
"width": 24,
|
||||
"height": 24,
|
||||
"icons": {
|
||||
"chevron-right": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6z\"/>"
|
||||
},
|
||||
"magnify": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5l-1.5 1.5l-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16A6.5 6.5 0 0 1 3 9.5A6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14S14 12 14 9.5S12 5 9.5 5\"/>"
|
||||
},
|
||||
"close": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z\"/>"
|
||||
},
|
||||
"calendar": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5z\"/>"
|
||||
},
|
||||
"chevron-down": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z\"/>"
|
||||
},
|
||||
"calendar-clock": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M15 13h1.5v2.82l2.44 1.41l-.75 1.3L15 16.69zm4-5H5v11h4.67c-.43-.91-.67-1.93-.67-3a7 7 0 0 1 7-7c1.07 0 2.09.24 3 .67zM5 21a2 2 0 0 1-2-2V5c0-1.11.89-2 2-2h1V1h2v2h8V1h2v2h1a2 2 0 0 1 2 2v6.1c1.24 1.26 2 2.99 2 4.9a7 7 0 0 1-7 7c-1.91 0-3.64-.76-4.9-2zm11-9.85A4.85 4.85 0 0 0 11.15 16c0 2.68 2.17 4.85 4.85 4.85A4.85 4.85 0 0 0 20.85 16c0-2.68-2.17-4.85-4.85-4.85\"/>"
|
||||
},
|
||||
"rss": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20C5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27zm0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93z\"/>"
|
||||
},
|
||||
"chevron-left": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6z\"/>"
|
||||
},
|
||||
"pencil-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m14.06 9l.94.94L5.92 19H5v-.92zm3.6-6c-.25 0-.51.1-.7.29l-1.83 1.83l3.75 3.75l1.83-1.83c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z\"/>"
|
||||
},
|
||||
"trash-can-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M9 3v1H4v2h1v13a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6h1V4h-5V3zM7 6h10v13H7zm2 2v9h2V8zm4 0v9h2V8z\"/>"
|
||||
},
|
||||
"clock-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 20a8 8 0 0 0 8-8a8 8 0 0 0-8-8a8 8 0 0 0-8 8a8 8 0 0 0 8 8m0-18a10 10 0 0 1 10 10a10 10 0 0 1-10 10C6.47 22 2 17.5 2 12A10 10 0 0 1 12 2m.5 5v5.25l4.5 2.67l-.75 1.23L11 13V7z\"/>"
|
||||
},
|
||||
"alert-circle-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M11 15h2v2h-2zm0-8h2v6h-2zm1-5C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18a8 8 0 0 1-8-8a8 8 0 0 1 8-8a8 8 0 0 1 8 8a8 8 0 0 1-8 8\"/>"
|
||||
},
|
||||
"comment-text-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M9 22a1 1 0 0 1-1-1v-3H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6.1l-3.7 3.71c-.2.19-.45.29-.7.29zm1-6v3.08L13.08 16H20V4H4v12zM6 7h12v2H6zm0 4h9v2H6z\"/>"
|
||||
},
|
||||
"reply": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M10 9V5l-7 7l7 7v-4.1c5 0 8.5 1.6 11 5.1c-1-5-4-10-11-11\"/>"
|
||||
},
|
||||
"shield-check-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M21 11c0 5.55-3.84 10.74-9 12c-5.16-1.26-9-6.45-9-12V5l9-4l9 4zm-9 10c3.75-1 7-5.46 7-9.78V6.3l-7-3.12L5 6.3v4.92C5 15.54 8.25 20 12 21m-2-4l-4-4l1.41-1.41L10 14.17l6.59-6.59L18 9\"/>"
|
||||
},
|
||||
"card-account-details-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M22 3H2c-1.09.04-1.96.91-2 2v14c.04 1.09.91 1.96 2 2h20c1.09-.04 1.96-.91 2-2V5a2.074 2.074 0 0 0-2-2m0 16H2V5h20zm-8-2v-1.25c0-1.66-3.34-2.5-5-2.5s-5 .84-5 2.5V17zM9 7a2.5 2.5 0 0 0-2.5 2.5A2.5 2.5 0 0 0 9 12a2.5 2.5 0 0 0 2.5-2.5A2.5 2.5 0 0 0 9 7m5 0v1h6V7zm0 2v1h6V9zm0 2v1h4v-1z\"/>"
|
||||
},
|
||||
"phone-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M20 15.5c-1.2 0-2.5-.2-3.6-.6h-.3c-.3 0-.5.1-.7.3l-2.2 2.2c-2.8-1.5-5.2-3.8-6.6-6.6l2.2-2.2c.3-.3.4-.7.2-1c-.3-1.1-.5-2.4-.5-3.6c0-.5-.5-1-1-1H4c-.5 0-1 .5-1 1c0 9.4 7.6 17 17 17c.5 0 1-.5 1-1v-3.5c0-.5-.5-1-1-1M5 5h1.5c.1.9.3 1.8.5 2.6L5.8 8.8C5.4 7.6 5.1 6.3 5 5m14 14c-1.3-.1-2.6-.4-3.8-.8l1.2-1.2c.8.2 1.7.4 2.6.4z\"/>"
|
||||
},
|
||||
"email-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2zm-2 0l-8 5l-8-5zm0 12H4V8l8 5l8-5z\"/>"
|
||||
},
|
||||
"map-marker": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 11.5A2.5 2.5 0 0 1 9.5 9A2.5 2.5 0 0 1 12 6.5A2.5 2.5 0 0 1 14.5 9a2.5 2.5 0 0 1-2.5 2.5M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7\"/>"
|
||||
},
|
||||
"cursor-default-click": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M10.76 8.69a.76.76 0 0 0-.76.76V20.9c0 .42.34.76.76.76c.19 0 .35-.06.48-.16l1.91-1.55l1.66 3.62c.13.27.4.43.69.43c.11 0 .22 0 .33-.08l2.76-1.28c.38-.18.56-.64.36-1.01L17.28 18l2.41-.45a.9.9 0 0 0 .43-.26c.27-.32.23-.79-.12-1.08l-8.74-7.35l-.01.01a.76.76 0 0 0-.49-.18M15 10V8h5v2zm-1.17-5.24l2.83-2.83l1.41 1.41l-2.83 2.83zM10 0h2v5h-2zM3.93 14.66l2.83-2.83l1.41 1.41l-2.83 2.83zm0-11.32l1.41-1.41l2.83 2.83l-1.41 1.41zM7 10H2V8h5z\"/>"
|
||||
},
|
||||
"open-in-new": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M14 3v2h3.59l-9.83 9.83l1.41 1.41L19 6.41V10h2V3m-2 16H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2z\"/>"
|
||||
},
|
||||
"menu": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z\"/>"
|
||||
},
|
||||
"comment-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M9 22a1 1 0 0 1-1-1v-3H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6.1l-3.7 3.71c-.2.19-.45.29-.7.29zm1-6v3.08L13.08 16H20V4H4v12z\"/>"
|
||||
},
|
||||
"printer-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 8c1.66 0 3 1.34 3 3v6h-4v4H6v-4H2v-6c0-1.66 1.34-3 3-3h1V3h12v5zM8 5v3h8V5zm8 14v-4H8v4zm2-4h2v-4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v4h2v-2h12zm1-3.5c0 .55-.45 1-1 1s-1-.45-1-1s.45-1 1-1s1 .45 1 1\"/>"
|
||||
},
|
||||
"image-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 19H5V5h14m0-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5.04 9.29l-2.75 3.54l-1.96-2.36L6.5 17h11z\"/>"
|
||||
},
|
||||
"qrcode": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M3 11h2v2H3zm8-6h2v4h-2zm-2 6h4v4h-2v-2H9zm6 0h2v2h2v-2h2v2h-2v2h2v4h-2v2h-2v-2h-4v2h-2v-4h4v-2h2v-2h-2zm4 8v-4h-2v4zM15 3h6v6h-6zm2 2v2h2V5zM3 3h6v6H3zm2 2v2h2V5zM3 15h6v6H3zm2 2v2h2v-2z\"/>"
|
||||
},
|
||||
"download": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M5 20h14v-2H5m14-9h-4V3H9v6H5l7 7z\"/>"
|
||||
},
|
||||
"ruler-square": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M3 5v16h6v-1.5H7V18h2v-1.5H5V15h4v-1.5H7V12h2v-1.5H5V9h4V5h1.5v4H12V7h1.5v2H15V5h1.5v4H18V7h1.5v2H21V3H5a2 2 0 0 0-2 2m3 2a1 1 0 0 1-1-1a1 1 0 0 1 1-1a1 1 0 0 1 1 1a1 1 0 0 1-1 1\"/>"
|
||||
},
|
||||
"wind-turbine": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m13.33 11.67l2.88 2.91c1.41-1.42 0-2.83 0-2.83l-1.49-1.51c.18-.38.28-.8.28-1.24c0-1.05-.54-1.97-1.36-2.5L15 2.11c-1.91-.58-2.5 1.33-2.5 1.33l-.81 2.59c-1.23.13-2.23.97-2.56 2.15L4.67 9.63c.64 1.9 2.53 1.27 2.53 1.27l2.07-.67c.34.74.96 1.31 1.73 1.59V19s-2 0-2 2v1h6v-1s0-2-2-2v-7.18c.12-.04.23-.1.33-.15M10.5 9A1.5 1.5 0 0 1 12 7.5A1.5 1.5 0 0 1 13.5 9a1.5 1.5 0 0 1-1.5 1.5A1.5 1.5 0 0 1 10.5 9\"/>"
|
||||
},
|
||||
"information-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z\"/>"
|
||||
},
|
||||
"domain": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M18 15h-2v2h2m0-6h-2v2h2m2 6h-8v-2h2v-2h-2v-2h2v-2h-2V9h8M10 7H8V5h2m0 6H8V9h2m0 6H8v-2h2m0 6H8v-2h2M6 7H4V5h2m0 6H4V9h2m0 6H4v-2h2m0 6H4v-2h2m6-10V3H2v18h20V7z\"/>"
|
||||
},
|
||||
"loading": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8\"/>"
|
||||
},
|
||||
"file-document-edit-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M8 12h8v2H8zm2 8H6V4h7v5h5v3.1l2-2V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4zm-2-2h4.1l.9-.9V16H8zm12.2-5c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1l-2.1-2.1l1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z\"/>"
|
||||
},
|
||||
"map-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m20.5 3l-.16.03L15 5.1L9 3L3.36 4.9c-.21.07-.36.25-.36.48V20.5a.5.5 0 0 0 .5.5l.16-.03L9 18.9l6 2.1l5.64-1.9c.21-.07.36-.25.36-.48V3.5a.5.5 0 0 0-.5-.5M10 5.47l4 1.4v11.66l-4-1.4zm-5 .99l3-1.01v11.7l-3 1.16zm14 11.08l-3 1.01V6.86l3-1.16z\"/>"
|
||||
},
|
||||
"sort-alphabetical-ascending": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 17h3l-4 4l-4-4h3V3h2m-8 10v2l-3.33 4H11v2H5v-2l3.33-4H5v-2M9 3H7c-1.1 0-2 .9-2 2v6h2V9h2v2h2V5a2 2 0 0 0-2-2m0 4H7V5h2Z\"/>"
|
||||
},
|
||||
"account-group-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 5a3.5 3.5 0 0 0-3.5 3.5A3.5 3.5 0 0 0 12 12a3.5 3.5 0 0 0 3.5-3.5A3.5 3.5 0 0 0 12 5m0 2a1.5 1.5 0 0 1 1.5 1.5A1.5 1.5 0 0 1 12 10a1.5 1.5 0 0 1-1.5-1.5A1.5 1.5 0 0 1 12 7M5.5 8A2.5 2.5 0 0 0 3 10.5c0 .94.53 1.75 1.29 2.18c.36.2.77.32 1.21.32s.85-.12 1.21-.32c.37-.21.68-.51.91-.87A5.42 5.42 0 0 1 6.5 8.5v-.28c-.3-.14-.64-.22-1-.22m13 0c-.36 0-.7.08-1 .22v.28c0 1.2-.39 2.36-1.12 3.31c.12.19.25.34.4.49a2.48 2.48 0 0 0 1.72.7c.44 0 .85-.12 1.21-.32c.76-.43 1.29-1.24 1.29-2.18A2.5 2.5 0 0 0 18.5 8M12 14c-2.34 0-7 1.17-7 3.5V19h14v-1.5c0-2.33-4.66-3.5-7-3.5m-7.29.55C2.78 14.78 0 15.76 0 17.5V19h3v-1.93c0-1.01.69-1.85 1.71-2.52m14.58 0c1.02.67 1.71 1.51 1.71 2.52V19h3v-1.5c0-1.74-2.78-2.72-4.71-2.95M12 16c1.53 0 3.24.5 4.23 1H7.77c.99-.5 2.7-1 4.23-1\"/>"
|
||||
},
|
||||
"map-marker-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 6.5A2.5 2.5 0 0 1 14.5 9a2.5 2.5 0 0 1-2.5 2.5A2.5 2.5 0 0 1 9.5 9A2.5 2.5 0 0 1 12 6.5M12 2a7 7 0 0 1 7 7c0 5.25-7 13-7 13S5 14.25 5 9a7 7 0 0 1 7-7m0 2a5 5 0 0 0-5 5c0 1 0 3 5 9.71C17 12 17 10 17 9a5 5 0 0 0-5-5\"/>"
|
||||
},
|
||||
"content-copy": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z\"/>"
|
||||
},
|
||||
"arrow-top-right": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M5 17.59L15.59 7H9V5h10v10h-2V8.41L6.41 19z\"/>"
|
||||
},
|
||||
"magnify-plus": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M9 2a7 7 0 0 1 7 7c0 1.57-.5 3-1.39 4.19l.8.81H16l6 6l-2 2l-6-6v-.59l-.81-.8A6.9 6.9 0 0 1 9 16a7 7 0 0 1-7-7a7 7 0 0 1 7-7M8 5v3H5v2h3v3h2v-3h3V8h-3V5z\"/>"
|
||||
},
|
||||
"arrow-right": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M4 11v2h12l-5.5 5.5l1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5L16 11z\"/>"
|
||||
},
|
||||
"file-download": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M14 2H6c-1.11 0-2 .89-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V8zm-2 17l-4-4h2.5v-3h3v3H16zm1-10V3.5L18.5 9z\"/>"
|
||||
},
|
||||
"google": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M21.35 11.1h-9.17v2.73h6.51c-.33 3.81-3.5 5.44-6.5 5.44C8.36 19.27 5 16.25 5 12c0-4.1 3.2-7.27 7.2-7.27c3.09 0 4.9 1.97 4.9 1.97L19 4.72S16.56 2 12.1 2C6.42 2 2.03 6.8 2.03 12c0 5.05 4.13 10 10.22 10c5.35 0 9.25-3.67 9.25-9.09c0-1.15-.15-1.81-.15-1.81\"/>"
|
||||
},
|
||||
"calendar-search": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M15.5 12c2.5 0 4.5 2 4.5 4.5c0 .88-.25 1.71-.69 2.4l3.08 3.1L21 23.39l-3.12-3.07c-.69.43-1.51.68-2.38.68c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5m0 2a2.5 2.5 0 0 0-2.5 2.5a2.5 2.5 0 0 0 2.5 2.5a2.5 2.5 0 0 0 2.5-2.5a2.5 2.5 0 0 0-2.5-2.5M19 8H5v11h4.5c.31.75.76 1.42 1.31 2H5a2 2 0 0 1-2-2V5c0-1.11.89-2 2-2h1V1h2v2h8V1h2v2h1a2 2 0 0 1 2 2v8.03c-.5-.81-1.2-1.49-2-2.03z\"/>"
|
||||
},
|
||||
"calendar-plus": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 19V8H5v11zM16 1h2v2h1a2 2 0 0 1 2 2v14c0 1.11-.89 2-2 2H5a2 2 0 0 1-2-2V5c0-1.11.89-2 2-2h1V1h2v2h8zm-5 8.5h2v3h3v2h-3v3h-2v-3H8v-2h3z\"/>"
|
||||
},
|
||||
"calendar-month-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M7 11h2v2H7zm14-6v14c0 1.11-.89 2-2 2H5a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h1V1h2v2h8V1h2v2h1a2 2 0 0 1 2 2M5 7h14V5H5zm14 12V9H5v10zm-4-6v-2h2v2zm-4 0v-2h2v2zm-4 2h2v2H7zm8 2v-2h2v2zm-4 0v-2h2v2z\"/>"
|
||||
},
|
||||
"download-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M13 5v6h1.17L12 13.17L9.83 11H11V5zm2-2H9v6H5l7 7l7-7h-4zm4 15H5v2h14z\"/>"
|
||||
},
|
||||
"whatsapp": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12.04 2c-5.46 0-9.91 4.45-9.91 9.91c0 1.75.46 3.45 1.32 4.95L2.05 22l5.25-1.38c1.45.79 3.08 1.21 4.74 1.21c5.46 0 9.91-4.45 9.91-9.91c0-2.65-1.03-5.14-2.9-7.01A9.82 9.82 0 0 0 12.04 2m.01 1.67c2.2 0 4.26.86 5.82 2.42a8.23 8.23 0 0 1 2.41 5.83c0 4.54-3.7 8.23-8.24 8.23c-1.48 0-2.93-.39-4.19-1.15l-.3-.17l-3.12.82l.83-3.04l-.2-.32a8.2 8.2 0 0 1-1.26-4.38c.01-4.54 3.7-8.24 8.25-8.24M8.53 7.33c-.16 0-.43.06-.66.31c-.22.25-.87.86-.87 2.07c0 1.22.89 2.39 1 2.56c.14.17 1.76 2.67 4.25 3.73c.59.27 1.05.42 1.41.53c.59.19 1.13.16 1.56.1c.48-.07 1.46-.6 1.67-1.18s.21-1.07.15-1.18c-.07-.1-.23-.16-.48-.27c-.25-.14-1.47-.74-1.69-.82c-.23-.08-.37-.12-.56.12c-.16.25-.64.81-.78.97c-.15.17-.29.19-.53.07c-.26-.13-1.06-.39-2-1.23c-.74-.66-1.23-1.47-1.38-1.72c-.12-.24-.01-.39.11-.5c.11-.11.27-.29.37-.44c.13-.14.17-.25.25-.41c.08-.17.04-.31-.02-.43c-.06-.11-.56-1.35-.77-1.84c-.2-.48-.4-.42-.56-.43c-.14 0-.3-.01-.47-.01\"/>"
|
||||
},
|
||||
"youtube": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m10 15l5.19-3L10 9zm11.56-7.83c.13.47.22 1.1.28 1.9c.07.8.1 1.49.1 2.09L22 12c0 2.19-.16 3.8-.44 4.83c-.25.9-.83 1.48-1.73 1.73c-.47.13-1.33.22-2.65.28c-1.3.07-2.49.1-3.59.1L12 19c-4.19 0-6.8-.16-7.83-.44c-.9-.25-1.48-.83-1.73-1.73c-.13-.47-.22-1.1-.28-1.9c-.07-.8-.1-1.49-.1-2.09L2 12c0-2.19.16-3.8.44-4.83c.25-.9.83-1.48 1.73-1.73c.47-.13 1.33-.22 2.65-.28c1.3-.07 2.49-.1 3.59-.1L12 5c4.19 0 6.8.16 7.83.44c.9.25 1.48.83 1.73 1.73\"/>"
|
||||
},
|
||||
"cursor-default-click-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m11.5 11l6.38 5.37l-.88.18l-.64.12c-.63.13-.99.83-.71 1.4l.27.58l1.36 2.94l-1.42.66l-1.36-2.93l-.26-.58a.985.985 0 0 0-1.52-.36l-.51.4l-.71.57zm-.74-2.31a.76.76 0 0 0-.76.76V20.9c0 .42.34.76.76.76c.19 0 .35-.06.48-.16l1.91-1.55l1.66 3.62c.13.27.4.43.69.43c.11 0 .22 0 .33-.08l2.76-1.28c.38-.18.56-.64.36-1.01L17.28 18l2.41-.45a.9.9 0 0 0 .43-.26c.27-.32.23-.79-.12-1.08l-8.74-7.35l-.01.01a.76.76 0 0 0-.49-.18M15 10V8h5v2zm-1.17-5.24l2.83-2.83l1.41 1.41l-2.83 2.83zM10 0h2v5h-2zM3.93 14.66l2.83-2.83l1.41 1.41l-2.83 2.83zm0-11.32l1.41-1.41l2.83 2.83l-1.41 1.41zM7 10H2V8h5z\"/>"
|
||||
},
|
||||
"phone": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M6.62 10.79c1.44 2.83 3.76 5.15 6.59 6.59l2.2-2.2c.28-.28.67-.36 1.02-.25c1.12.37 2.32.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57c.11.35.03.74-.25 1.02z\"/>"
|
||||
},
|
||||
"clock-alert-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M11 7v6l5.2 3.1l.8-1.2l-4.5-2.7V7zm9 5v6h2v-6zm0 8v2h2v-2zm-2 0c-1.7 1.3-3.7 2-6 2c-5.5 0-10-4.5-10-10S6.5 2 12 2c4.8 0 8.9 3.4 9.8 8h-2.1c-.9-3.4-4-6-7.7-6c-4.4 0-8 3.6-8 8s3.6 8 8 8c2.4 0 4.5-1.1 6-2.7z\"/>"
|
||||
},
|
||||
"clock-remove-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M14.47 15.08L11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08c-4.42 0-8-3.58-8-8s3.58-8 8-8s8 3.58 8 8c0 .37-.03.72-.08 1.08c.69.1 1.33.32 1.92.64c.1-.56.16-1.13.16-1.72c0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16c-.32-.59-.54-1.23-.64-1.92m8.04-4.46L19 17.59l-2.12-2.12l-1.41 1.41L17.59 19l-2.12 2.12l1.41 1.42L19 20.41l2.12 2.13l1.42-1.42L20.41 19l2.13-2.12z\"/>"
|
||||
},
|
||||
"content-save-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M17 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V7zm2 16H5V5h11.17L19 7.83zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3s3-1.34 3-3s-1.34-3-3-3M6 6h9v4H6z\"/>"
|
||||
},
|
||||
"check": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M21 7L9 19l-5.5-5.5l1.41-1.41L9 16.17L19.59 5.59z\"/>"
|
||||
},
|
||||
"check-circle": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10s10-4.5 10-10S17.5 2 12 2m-2 15l-5-5l1.41-1.41L10 14.17l7.59-7.59L19 8z\"/>"
|
||||
},
|
||||
"home-group": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M17 16h-2v6h-3v-5H8v5H5v-6H3l7-6zM6 2l4 4H9v3H7V6H5v3H3V6H2zm12 1l5 5h-1v4h-3V9h-2v3h-1.66L14 10.87V8h-1z\"/>"
|
||||
},
|
||||
"vector-square": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M2 2h6v2h8V2h6v6h-2v8h2v6h-6v-2H8v2H2v-6h2V8H2zm14 6V6H8v2H6v8h2v2h8v-2h2V8zM4 4v2h2V4zm14 0v2h2V4zM4 18v2h2v-2zm14 0v2h2v-2z\"/>"
|
||||
},
|
||||
"flag-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m12.36 6l.4 2H18v6h-3.36l-.4-2H7V6zM14 4H5v17h2v-7h5.6l.4 2h7V6h-5.6\"/>"
|
||||
},
|
||||
"format-text-variant-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M11 3c-.82 0-1.56.5-1.86 1.27l-5.5 14C3.12 19.58 4.09 21 5.5 21h2.25c.84 0 1.58-.5 1.87-1.3l.64-1.7h3.48l.64 1.7c.29.8 1.04 1.3 1.87 1.3h2.25c1.41 0 2.38-1.42 1.86-2.73l-5.5-14C14.56 3.5 13.82 3 13 3m-2 2h2l5.5 14h-2.25l-1.13-3H8.87l-1.12 3H5.5M12 7.67L9.62 14h4.75Z\"/>"
|
||||
},
|
||||
"check-decagram": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m23 12l-2.44-2.78l.34-3.68l-3.61-.82l-1.89-3.18L12 3L8.6 1.54L6.71 4.72l-3.61.81l.34 3.68L1 12l2.44 2.78l-.34 3.69l3.61.82l1.89 3.18L12 21l3.4 1.46l1.89-3.18l3.61-.82l-.34-3.68zm-13 5l-4-4l1.41-1.41L10 14.17l6.59-6.59L18 9z\"/>"
|
||||
},
|
||||
"printer": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M18 3H6v4h12m1 5a1 1 0 0 1-1-1a1 1 0 0 1 1-1a1 1 0 0 1 1 1a1 1 0 0 1-1 1m-3 7H8v-5h8m3-6H5a3 3 0 0 0-3 3v6h4v4h12v-4h4v-6a3 3 0 0 0-3-3\"/>"
|
||||
},
|
||||
"robot-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M17.5 15.5c0 1.11-.89 2-2 2s-2-.89-2-2s.9-2 2-2s2 .9 2 2m-9-2c-1.1 0-2 .9-2 2s.9 2 2 2s2-.89 2-2s-.89-2-2-2M23 15v3c0 .55-.45 1-1 1h-1v1c0 1.11-.89 2-2 2H5a2 2 0 0 1-2-2v-1H2c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1h1c0-3.87 3.13-7 7-7h1V5.73c-.6-.34-1-.99-1-1.73c0-1.1.9-2 2-2s2 .9 2 2c0 .74-.4 1.39-1 1.73V7h1c3.87 0 7 3.13 7 7h1c.55 0 1 .45 1 1m-2 1h-2v-2c0-2.76-2.24-5-5-5h-4c-2.76 0-5 2.24-5 5v2H3v1h2v3h14v-3h2z\"/>"
|
||||
},
|
||||
"tune-variant": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M8 13c-1.86 0-3.41 1.28-3.86 3H2v2h2.14c.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3H22v-2H11.86c-.45-1.72-2-3-3.86-3m0 6c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2M19.86 6c-.45-1.72-2-3-3.86-3s-3.41 1.28-3.86 3H2v2h10.14c.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3H22V6zM16 9c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2\"/>"
|
||||
},
|
||||
"tune": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z\"/>"
|
||||
},
|
||||
"file-document-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm0 2h7v5h5v11H6zm2 8v2h8v-2zm0 4v2h5v-2z\"/>"
|
||||
},
|
||||
"drag-vertical": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M9 3h2v2H9zm4 0h2v2h-2zM9 7h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2z\"/>"
|
||||
},
|
||||
"transmission-tower": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m8.28 5.45l-1.78-.9L7.76 2h8.47l1.27 2.55l-1.78.89L15 4H9zM18.62 8h-4.53l-.79-3h-2.6l-.79 3H5.38L4.1 10.55l1.79.89l.73-1.44h10.76l.72 1.45l1.79-.89zm-.85 14H15.7l-.24-.9L12 15.9l-3.47 5.2l-.23.9H6.23l2.89-11h2.07l-.36 1.35L12 14.1l1.16-1.75l-.35-1.35h2.07zm-6.37-7l-.9-1.35l-1.18 4.48zm3.28 3.12l-1.18-4.48l-.9 1.36z\"/>"
|
||||
},
|
||||
"cloud-off-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19.8 22.6L17.15 20H6.5q-2.3 0-3.9-1.6T1 14.5q0-1.92 1.19-3.42q1.19-1.51 3.06-1.93q.08-.2.15-.39q.1-.19.15-.41L1.4 4.2l1.4-1.4l18.4 18.4M6.5 18h8.65L7.1 9.95q-.05.28-.07.55q-.03.23-.03.5h-.5q-1.45 0-2.47 1.03Q3 13.05 3 14.5T4.03 17q1.02 1 2.47 1m15.1.75l-1.45-1.4q.43-.35.64-.81T21 15.5q0-1.05-.73-1.77q-.72-.73-1.77-.73H17v-2q0-2.07-1.46-3.54Q14.08 6 12 6q-.67 0-1.3.16q-.63.17-1.2.52L8.05 5.23q.88-.6 1.86-.92Q10.9 4 12 4q2.93 0 4.96 2.04Q19 8.07 19 11q1.73.2 2.86 1.5q1.14 1.28 1.14 3q0 1-.37 1.81q-.38.84-1.03 1.44m-6.77-6.72\"/>"
|
||||
},
|
||||
"database-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 3C7.58 3 4 4.79 4 7v10c0 2.21 3.59 4 8 4s8-1.79 8-4V7c0-2.21-3.58-4-8-4m6 14c0 .5-2.13 2-6 2s-6-1.5-6-2v-2.23c1.61.78 3.72 1.23 6 1.23s4.39-.45 6-1.23zm0-4.55c-1.3.95-3.58 1.55-6 1.55s-4.7-.6-6-1.55V9.64c1.47.83 3.61 1.36 6 1.36s4.53-.53 6-1.36zM12 9C8.13 9 6 7.5 6 7s2.13-2 6-2s6 1.5 6 2s-2.13 2-6 2\"/>"
|
||||
},
|
||||
"refresh": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M17.65 6.35A7.96 7.96 0 0 0 12 4a8 8 0 0 0-8 8a8 8 0 0 0 8 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18a6 6 0 0 1-6-6a6 6 0 0 1 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z\"/>"
|
||||
},
|
||||
"alert-circle": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M13 13h-2V7h2m0 10h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2\"/>"
|
||||
},
|
||||
"play": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M8 5.14v14l11-7z\"/>"
|
||||
},
|
||||
"home": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M10 20v-6h4v6h5v-8h3L12 3L2 12h3v8z\"/>"
|
||||
},
|
||||
"home-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m12 5.69l5 4.5V18h-2v-6H9v6H7v-7.81zM12 3L2 12h3v8h6v-6h2v6h6v-8h3\"/>"
|
||||
},
|
||||
"calendar-blank": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1\"/>"
|
||||
},
|
||||
"calendar-export": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m12 22l4-4h-3v-6h-2v6H8zm7-19h-1V1h-2v2H8V1H6v2H5c-1.1 0-2 .9-2 2v14a2 2 0 0 0 2 2h3l-2-2H5V8h14v11h-1l-2 2h3c1.11 0 2-.89 2-2V5a2 2 0 0 0-2-2\"/>"
|
||||
},
|
||||
"share-variant-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81c1.66 0 3-1.34 3-3s-1.34-3-3-3s-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66c0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91s-1.31-2.92-2.92-2.92M18 4c.55 0 1 .45 1 1s-.45 1-1 1s-1-.45-1-1s.45-1 1-1M6 13c-.55 0-1-.45-1-1s.45-1 1-1s1 .45 1 1s-.45 1-1 1m12 7c-.55 0-1-.45-1-1s.45-1 1-1s1 .45 1 1s-.45 1-1 1\"/>"
|
||||
},
|
||||
"link-variant": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"/>"
|
||||
},
|
||||
"file-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zm4 18H6V4h7v5h5z\"/>"
|
||||
},
|
||||
"facebook": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 2.04c-5.5 0-10 4.49-10 10.02c0 5 3.66 9.15 8.44 9.9v-7H7.9v-2.9h2.54V9.85c0-2.51 1.49-3.89 3.78-3.89c1.09 0 2.23.19 2.23.19v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.9h-2.33v7a10 10 0 0 0 8.44-9.9c0-5.53-4.5-10.02-10-10.02\"/>"
|
||||
},
|
||||
"instagram": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 0 1-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2m-.2 2A3.6 3.6 0 0 0 4 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 0 0 3.6-3.6V7.6C20 5.61 18.39 4 16.4 4zm9.65 1.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 17.25 8A1.25 1.25 0 0 1 16 6.75a1.25 1.25 0 0 1 1.25-1.25M12 7a5 5 0 0 1 5 5a5 5 0 0 1-5 5a5 5 0 0 1-5-5a5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3a3 3 0 0 0 3 3a3 3 0 0 0 3-3a3 3 0 0 0-3-3\"/>"
|
||||
},
|
||||
"twitter": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M22.46 6c-.77.35-1.6.58-2.46.69c.88-.53 1.56-1.37 1.88-2.38c-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29c0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15c0 1.49.75 2.81 1.91 3.56c-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.2 4.2 0 0 1-1.93.07a4.28 4.28 0 0 0 4 2.98a8.52 8.52 0 0 1-5.33 1.84q-.51 0-1.02-.06C3.44 20.29 5.7 21 8.12 21C16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56c.84-.6 1.56-1.36 2.14-2.23\"/>"
|
||||
},
|
||||
"linkedin": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93zM6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37z\"/>"
|
||||
},
|
||||
"mastodon": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M20.94 14c-.28 1.41-2.44 2.96-4.97 3.26c-1.31.15-2.6.3-3.97.24c-2.25-.11-4-.54-4-.54v.62c.32 2.22 2.22 2.35 4.03 2.42c1.82.05 3.44-.46 3.44-.46l.08 1.65s-1.28.68-3.55.81c-1.25.07-2.81-.03-4.62-.5c-3.92-1.05-4.6-5.24-4.7-9.5l-.01-3.43c0-4.34 2.83-5.61 2.83-5.61C6.95 2.3 9.41 2 11.97 2h.06c2.56 0 5.02.3 6.47.96c0 0 2.83 1.27 2.83 5.61c0 0 .04 3.21-.39 5.43M18 8.91c0-1.08-.3-1.91-.85-2.56c-.56-.63-1.3-.96-2.23-.96c-1.06 0-1.87.41-2.42 1.23l-.5.88l-.5-.88c-.56-.82-1.36-1.23-2.43-1.23c-.92 0-1.66.33-2.23.96C6.29 7 6 7.83 6 8.91v5.26h2.1V9.06c0-1.06.45-1.62 1.36-1.62c1 0 1.5.65 1.5 1.93v2.79h2.07V9.37c0-1.28.5-1.93 1.51-1.93c.9 0 1.35.56 1.35 1.62v5.11H18z\"/>"
|
||||
},
|
||||
"github": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2\"/>"
|
||||
},
|
||||
"email": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m20 8l-8 5l-8-5V6l8 5l8-5m0-2H4c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2\"/>"
|
||||
},
|
||||
"telegram": {
|
||||
"body": "<path d=\"M9.78 18.65l.28-4.23l7.68-6.92c.34-.31-.07-.46-.52-.19L7.74 13.3L3.64 12c-.88-.25-.89-.86.2-1.3l15.97-6.16c.73-.33 1.43.18 1.15 1.3l-2.72 12.81c-.19.91-.74 1.13-1.5.71L12.6 16.3l-1.99 1.93c-.23.23-.42.42-.83.42z\" fill=\"currentColor\"/>",
|
||||
"hidden": true
|
||||
},
|
||||
"book-open-blank-variant": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M6.5 20c1.7 0 4.15.65 5.5 1.5c1.35-.85 3.8-1.5 5.5-1.5c1.65 0 3.35.3 4.75 1.05c.1.05.15.05.25.05c.25 0 .5-.25.5-.5V6c-.6-.45-1.25-.75-2-1c-1.11-.35-2.33-.5-3.5-.5c-1.95 0-4.05.4-5.5 1.5c-1.45-1.1-3.55-1.5-5.5-1.5c-1.17 0-2.39.15-3.5.5c-.75.25-1.4.55-2 1v14.6c0 .25.25.5.5.5c.1 0 .15 0 .25-.05C3.15 20.3 4.85 20 6.5 20m5.5-.5V8c1.35-.85 3.8-1.5 5.5-1.5c1.2 0 2.4.15 3.5.5v11.5c-1.1-.35-2.3-.5-3.5-.5c-1.7 0-4.15.65-5.5 1.5\"/>"
|
||||
"language-javascript": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M3 3h18v18H3zm4.73 15.04c.4.85 1.19 1.55 2.54 1.55c1.5 0 2.53-.8 2.53-2.55v-5.78h-1.7V17c0 .86-.35 1.08-.9 1.08c-.58 0-.82-.4-1.09-.87zm5.98-.18c.5.98 1.51 1.73 3.09 1.73c1.6 0 2.8-.83 2.8-2.36c0-1.41-.81-2.04-2.25-2.66l-.42-.18c-.73-.31-1.04-.52-1.04-1.02c0-.41.31-.73.81-.73c.48 0 .8.21 1.09.73l1.31-.87c-.55-.96-1.33-1.33-2.4-1.33c-1.51 0-2.48.96-2.48 2.23c0 1.38.81 2.03 2.03 2.55l.42.18c.78.34 1.24.55 1.24 1.13c0 .48-.45.83-1.15.83c-.83 0-1.31-.43-1.67-1.03z\"/>"
|
||||
},
|
||||
"file-pdf-box": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-9.5 8.5c0 .8-.7 1.5-1.5 1.5H7v2H5.5V9H8c.8 0 1.5.7 1.5 1.5zm5 2c0 .8-.7 1.5-1.5 1.5h-2.5V9H13c.8 0 1.5.7 1.5 1.5zm4-3H17v1h1.5V13H17v2h-1.5V9h3zm-6.5 0h1v3h-1zm-5 0h1v1H7z\"/>"
|
||||
"language-python": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M19.14 7.5A2.86 2.86 0 0 1 22 10.36v3.78A2.86 2.86 0 0 1 19.14 17H12c0 .39.32.96.71.96H17v1.68a2.86 2.86 0 0 1-2.86 2.86H9.86A2.86 2.86 0 0 1 7 19.64v-3.75a2.85 2.85 0 0 1 2.86-2.85h5.25a2.85 2.85 0 0 0 2.85-2.86V7.5zm-4.28 11.79c-.4 0-.72.3-.72.89s.32.71.72.71a.71.71 0 0 0 .71-.71c0-.59-.32-.89-.71-.89m-10-1.79A2.86 2.86 0 0 1 2 14.64v-3.78A2.86 2.86 0 0 1 4.86 8H12c0-.39-.32-.96-.71-.96H7V5.36A2.86 2.86 0 0 1 9.86 2.5h4.28A2.86 2.86 0 0 1 17 5.36v3.75a2.85 2.85 0 0 1-2.86 2.85H8.89a2.85 2.85 0 0 0-2.85 2.86v2.68zM9.14 5.71c.4 0 .72-.3.72-.89s-.32-.71-.72-.71c-.39 0-.71.12-.71.71s.32.89.71.89\"/>"
|
||||
},
|
||||
"file-word-box": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M15.5 17H14l-2-7.5l-2 7.5H8.5L6.1 7h1.7l1.54 7.5L11.3 7h1.4l1.97 7.5L16.2 7h1.7M19 3H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2\"/>"
|
||||
},
|
||||
"file-excel-box": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M16.2 17h-2L12 13.2L9.8 17h-2l3.2-5l-3.2-5h2l2.2 3.8L14.2 7h2L13 12m6-9H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2\"/>"
|
||||
},
|
||||
"file-image": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M13 9h5.5L13 3.5zM6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.11.89-2 2-2m0 18h12v-8l-4 4l-2-2zM8 9a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2\"/>"
|
||||
},
|
||||
"file-video": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M13 9h5.5L13 3.5zM6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.11.89-2 2-2m11 17v-6l-3 2.2V13H7v6h7v-2.2z\"/>"
|
||||
},
|
||||
"file-music": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zm-1 11h-2v5a2 2 0 0 1-2 2a2 2 0 0 1-2-2a2 2 0 0 1 2-2c.4 0 .7.1 1 .3V11h3zm0-4V3.5L18.5 9z\"/>"
|
||||
},
|
||||
"link": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5a5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5a5 5 0 0 0-5-5\"/>"
|
||||
},
|
||||
"tag-outline": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m21.41 11.58l-9-9A2 2 0 0 0 11 2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 .59 1.42l9 9A2 2 0 0 0 13 22a2 2 0 0 0 1.41-.59l7-7A2 2 0 0 0 22 13a2 2 0 0 0-.59-1.42M13 20l-9-9V4h7l9 9M6.5 5A1.5 1.5 0 1 1 5 6.5A1.5 1.5 0 0 1 6.5 5\"/>"
|
||||
},
|
||||
"cloud": {
|
||||
"body": "<path fill=\"currentColor\" d=\"M6.5 20q-2.28 0-3.89-1.57Q1 16.85 1 14.58q0-1.95 1.17-3.48q1.18-1.53 3.08-1.95q.63-2.3 2.5-3.72Q9.63 4 12 4q2.93 0 4.96 2.04Q19 8.07 19 11q1.73.2 2.86 1.5q1.14 1.28 1.14 3q0 1.88-1.31 3.19T18.5 20Z\"/>"
|
||||
}
|
||||
},
|
||||
"aliases": {
|
||||
"import-contacts": {
|
||||
"parent": "book-open-blank-variant"
|
||||
"language-rust": {
|
||||
"body": "<path fill=\"currentColor\" d=\"m21.9 11.7l-.9-.5V11l.7-.7c.1-.1.1-.3 0-.4l-.1-.1l-.9-.3c0-.1 0-.2-.1-.2l.6-.8c.1-.1.1-.3-.1-.4c0 0-.1 0-.1-.1l-1-.2c0-.1-.1-.1-.1-.2l.4-.9v-.3c-.1-.1-.2-.1-.3-.1h-1s0-.1-.1-.1l.2-1c0-.2-.1-.3-.2-.3h-.1l-1 .2c0-.1-.1-.1-.2-.2v-1q0-.3-.3-.3h-.1l-.9.4h-.1L16 3c0-.2-.2-.3-.3-.2h-.1l-.8.6c-.1 0-.2 0-.2-.1l-.3-.9c-.1-.1-.2-.2-.4-.2c0 0-.1 0-.1.1L13 3h-.2l-.5-.8c-.1-.2-.3-.2-.5-.2l-.1.1l-.5.9H11l-.7-.7c-.1-.1-.3-.1-.4 0l-.1.1l-.3.9c-.1 0-.2 0-.2.1l-.8-.6c-.2-.1-.4-.1-.5.1V3l-.2 1s-.1 0-.2.1l-.9-.4c-.1-.1-.3 0-.4.1v1.1c0 .1-.1.1-.1.2l-1-.2c-.2-.1-.3 0-.3.2v.1l.2 1c-.1 0-.1.1-.2.1h-1q-.3 0-.3.3v.1l.4.9v.2L3 8c-.2 0-.3.2-.3.3v.1l.6.8c0 .1 0 .2-.1.2l-.8.4c-.1.1-.2.2-.2.4c0 0 0 .1.1.1l.7.7v.2l-.8.5c-.2.1-.2.3-.2.4l.1.1l.9.6v.2l-.7.7c-.1.1-.1.3 0 .4l.1.1l.9.3c0 .1 0 .2.1.2l-.6.8c-.1.1-.1.3.1.4c0 0 .1 0 .1.1l1 .2c0 .1.1.1.1.2l-.4.9c-.1.1 0 .3.1.4h1.1c.1 0 .1.1.2.1l-.2 1c0 .2.1.3.2.3h.1l1-.2c0 .1.1.1.2.2v1q0 .3.3.3h.1l.9-.4h.1l.2 1c0 .2.2.3.3.2h.1l.8-.6c.1 0 .2 0 .2.1l.3.9c.1.1.2.2.4.2c0 0 .1 0 .1-.1l.8-.7h.2l.5.8c.1.1.3.2.4.1l.1-.1l.5-.8h.2l.7.7c.1.1.3.1.4 0l.1-.1l.3-.9c.1 0 .2 0 .2-.1l.8.6c.1.1.3.1.4-.1c0 0 0-.1.1-.1l.2-1c.1 0 .1-.1.2-.1l.9.4c.1.1.3 0 .4-.1v-1.1l.2-.2l1 .2c.2 0 .3-.1.3-.2v-.1l-.2-1l.2-.2h1q.3 0 .3-.3v-.1l-.4-.9c0-.1.1-.1.1-.2l1-.2c.2 0 .3-.2.2-.3v-.1l-.6-.8l.1-.2l.9-.3c.1-.1.2-.2.2-.4c0 0 0-.1-.1-.1L21 13v-.2l.8-.5c.2-.1.2-.3.1-.6q0 .15 0 0m-5.7 7c-.3-.1-.5-.4-.5-.7c.1-.3.4-.5.7-.5c.3.1.5.4.5.7c0 .4-.3.6-.7.5m-.2-1.9c-.3-.1-.6.1-.6.4l-.4 1.4q-1.35.6-3 .6c-1.1 0-2.1-.2-3.1-.7l-.3-1.4c-.1-.3-.3-.5-.6-.4l-1.2.3c-.2-.2-.4-.5-.6-.7h6c.1 0 .1 0 .1-.1v-2.1c0-.1 0-.1-.1-.1h-1.7v-1.3h1.9c.2 0 .9 0 1.2 1c.1.3.2 1.3.4 1.6c.1.3.6 1 1.1 1h3.1c-.2.3-.4.5-.7.8zm-8.3 1.9c-.3.1-.6-.1-.7-.5c-.1-.3.1-.6.5-.7s.6.1.7.5c0 .3-.2.6-.5.7M5.4 9.5c.1.3 0 .7-.3.8s-.7 0-.8-.3s0-.7.3-.8c.4-.1.7 0 .8.3m-.7 1.6l1.3-.5c.3-.1.4-.4.3-.7L6 9.3h1V14H5c-.3-1-.4-1.9-.3-2.9m5.6-.4V9.3h2.5c.1 0 .9.1.9.7c0 .5-.6.7-1.1.7zm9 1.2v.5h-.8c-.1 0-.1 0-.1.1v.3c0 .8-.5 1-.9 1s-.8-.2-.9-.4c-.2-1.3-.6-1.5-1.2-2c.7-.5 1.5-1.2 1.5-2.1c0-1-.7-1.6-1.1-1.9c-.7-.4-1.4-.5-1.6-.5H6.6c1.1-1.2 2.5-2 4.1-2.3l.9 1c.2.2.5.2.8 0l1-1c2.1.4 3.9 1.7 5 3.6l-.7 1.6c-.1.3 0 .6.3.7l1.3.6zm-7.7-8c.2-.2.6-.2.8 0s.2.6 0 .8q-.45.45-.9 0c-.2-.2-.1-.5.1-.8m6.9 5.6c.1-.3.5-.4.8-.3s.4.5.3.8s-.5.4-.8.3s-.4-.5-.3-.8\"/>"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,5 +16,7 @@
|
||||
import { addCollection } from '@iconify/svelte';
|
||||
import type { IconifyJSON } from '@iconify/types';
|
||||
import mdiSubset from './iconify-mdi-subset.generated.json';
|
||||
import lucideSubset from './iconify-lucide-subset.generated.json';
|
||||
|
||||
addCollection(mdiSubset as IconifyJSON);
|
||||
addCollection(lucideSubset as IconifyJSON);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
aria-label={i === 0 ? item.label : undefined}
|
||||
>
|
||||
{#if i === 0}
|
||||
<Icon icon="mdi:home" class="size-4 shrink-0" aria-hidden="true" />
|
||||
<Icon icon="lucide:house" class="size-4 shrink-0" aria-hidden="true" />
|
||||
{:else}
|
||||
<span>{item.label}</span>
|
||||
{/if}
|
||||
@@ -32,7 +32,7 @@
|
||||
{/if}
|
||||
{#if i < items.length - 1}
|
||||
<span aria-hidden="true" class="shrink-0 text-stein-300">
|
||||
<Icon icon="mdi:chevron-right" class="size-3.5" />
|
||||
<Icon icon="lucide:chevron-right" class="size-3.5" />
|
||||
</span>
|
||||
{/if}
|
||||
</li>
|
||||
|
||||
@@ -32,14 +32,14 @@
|
||||
href="/"
|
||||
class="btn-primary inline-flex items-center gap-2 text-sm font-medium"
|
||||
>
|
||||
<Icon icon="mdi:home-outline" class="h-4 w-4" />
|
||||
<Icon icon="lucide:house" class="h-4 w-4" />
|
||||
{t('page_404_back')}
|
||||
</a>
|
||||
<a
|
||||
href="/posts/"
|
||||
class="btn-secondary inline-flex items-center gap-2 text-sm font-medium"
|
||||
>
|
||||
<Icon icon="mdi:file-document-outline" class="h-4 w-4" />
|
||||
<Icon icon="lucide:file-text" class="h-4 w-4" />
|
||||
Zu den Beiträgen
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -310,7 +310,7 @@ export const load: LayoutServerLoad = async ({ locals, route }) => {
|
||||
asObj.url.startsWith('/') || asObj.url.startsWith('http')
|
||||
? asObj.url
|
||||
: `/${asObj.url.replace(/^\//, '')}`;
|
||||
const icon = asObj.icon ?? 'mdi:link';
|
||||
const icon = asObj.icon ?? 'lucide:link';
|
||||
const label = asObj.linkName ?? asObj.name ?? '';
|
||||
socialLinks.push({ href, icon, label });
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
href={data.calendarUrl}
|
||||
class="mb-6 inline-flex items-center gap-1 text-sm text-stein-500 no-underline hover:text-wald-700"
|
||||
>
|
||||
<Icon icon="mdi:chevron-left" class="size-4" aria-hidden="true" />
|
||||
<Icon icon="lucide:chevron-left" class="size-4" aria-hidden="true" />
|
||||
Alle Termine
|
||||
</a>
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
<div class="mt-5 space-y-2 text-stein-700">
|
||||
{#if item.dateLabel}
|
||||
<p class="flex items-center gap-2.5">
|
||||
<Icon icon="mdi:calendar-blank" class="size-5 shrink-0 text-wald-700" aria-hidden="true" />
|
||||
<Icon icon="lucide:calendar" class="size-5 shrink-0 text-wald-700" aria-hidden="true" />
|
||||
<span class="font-medium">
|
||||
{item.weekdayLabel ? `${item.weekdayLabel}, ` : ""}{item.dateLabel}{item.endDateLabel
|
||||
? ` – ${item.endDateLabel}`
|
||||
@@ -157,13 +157,13 @@
|
||||
{/if}
|
||||
{#if item.timeLabel}
|
||||
<p class="flex items-center gap-2.5">
|
||||
<Icon icon="mdi:clock-outline" class="size-5 shrink-0 text-wald-700" aria-hidden="true" />
|
||||
<Icon icon="lucide:clock" class="size-5 shrink-0 text-wald-700" aria-hidden="true" />
|
||||
<span class="tabular-nums">{item.timeLabel}</span>
|
||||
</p>
|
||||
{/if}
|
||||
{#if item.locationText}
|
||||
<p class="flex items-center gap-2.5">
|
||||
<Icon icon="mdi:map-marker" class="size-5 shrink-0 text-wald-700" aria-hidden="true" />
|
||||
<Icon icon="lucide:map-pin" class="size-5 shrink-0 text-wald-700" aria-hidden="true" />
|
||||
<a
|
||||
href={mapsUrl(item.locationText)}
|
||||
target="_blank"
|
||||
@@ -200,7 +200,7 @@
|
||||
<span
|
||||
class="pointer-events-none absolute bottom-2 right-2 flex items-center gap-1 rounded-md bg-black/55 px-2 py-1 text-xs text-white opacity-0 transition-opacity group-hover:opacity-100"
|
||||
>
|
||||
<Icon icon="mdi:magnify-plus" class="size-3.5" aria-hidden="true" /> Vergrößern
|
||||
<Icon icon="lucide:zoom-in" class="size-3.5" aria-hidden="true" /> Vergrößern
|
||||
</span>
|
||||
</button>
|
||||
{/if}
|
||||
@@ -217,7 +217,7 @@
|
||||
href={`/cms-files?src=${encodeURIComponent(item.attachment.src)}&dl=1`}
|
||||
class="btn-outline btn-sm inline-flex group"
|
||||
>
|
||||
<Icon icon="mdi:file-download" class="size-4 shrink-0" aria-hidden="true" />
|
||||
<Icon icon="lucide:file-down" class="size-4 shrink-0" aria-hidden="true" />
|
||||
<span>{item.attachment.label}</span>
|
||||
</a>
|
||||
{/if}
|
||||
@@ -229,7 +229,7 @@
|
||||
class="btn-tertiary btn-sm inline-flex"
|
||||
>
|
||||
{t(T.calendar_more_info)}
|
||||
<Icon icon="mdi:open-in-new" class="size-3.5" aria-hidden="true" />
|
||||
<Icon icon="lucide:external-link" class="size-3.5" aria-hidden="true" />
|
||||
</a>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -247,7 +247,7 @@
|
||||
onclick={() => downloadICS(toICS(), fileSlug(item.title))}
|
||||
class="btn-outline btn-sm w-full justify-start"
|
||||
>
|
||||
<Icon icon="mdi:calendar-export" class="size-4 shrink-0" aria-hidden="true" />
|
||||
<Icon icon="lucide:calendar-arrow-up" class="size-4 shrink-0" aria-hidden="true" />
|
||||
.ics herunterladen
|
||||
</button>
|
||||
<a
|
||||
@@ -266,18 +266,18 @@
|
||||
<p class="mb-2 text-xs font-semibold uppercase tracking-wide text-stein-500">Teilen</p>
|
||||
<div class="flex flex-wrap gap-1.5">
|
||||
<button type="button" onclick={copyLink} class="action-btn" title={t(T.post_action_copy)}>
|
||||
<Icon icon={copied ? "mdi:check" : "mdi:link-variant"} class="size-4" />
|
||||
<Icon icon={copied ? "lucide:check" : "lucide:link"} class="size-4" />
|
||||
{copied ? t(T.post_action_copied) : "Link"}
|
||||
</button>
|
||||
<button type="button" onclick={share} class="action-btn" title={t(T.calendar_share_aria)}>
|
||||
<Icon icon={shared ? "mdi:check" : "mdi:share-variant"} class="size-4" />
|
||||
<Icon icon={shared ? "lucide:check" : "lucide:share-2"} class="size-4" />
|
||||
{shared ? t(T.calendar_share_copied) : t(T.calendar_share)}
|
||||
</button>
|
||||
<button type="button" onclick={() => (qrOpen = true)} class="action-btn" title="QR-Code">
|
||||
<Icon icon="mdi:qrcode" class="size-4" /> QR
|
||||
<Icon icon="lucide:qr-code" class="size-4" /> QR
|
||||
</button>
|
||||
<button type="button" onclick={() => (socialOpen = true)} class="action-btn" title="Social-Bild">
|
||||
<Icon icon="mdi:image-outline" class="size-4" /> Bild
|
||||
<Icon icon="lucide:image" class="size-4" /> Bild
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user