= {
+ Accept: "application/json",
+ "Content-Type": "application/json",
+ };
+ if (token) headers["Authorization"] = `Bearer ${token}`;
+
+ const res = await axios.get(url, {
+ headers,
+ httpsAgent: allowInsecureCerts ? new https.Agent({ rejectUnauthorized: false }) : undefined,
+ });
+
+ const body = res.data;
+ if (!body) return [];
+
+ // normalize to an array of raw bookmark objects
+ let rawArray: any[] = [];
+ if (Array.isArray(body)) rawArray = body;
+ else if (Array.isArray(body.items)) rawArray = body.items;
+ else if (Array.isArray(body.bookmarks)) rawArray = body.bookmarks;
+ else if (Array.isArray(body.data)) rawArray = body.data;
+ else if (typeof body === "object" && body !== null && 'id' in body) rawArray = [body];
+ else rawArray = [];
+
+ // keep only link-type content and map to base bookmark objects
+ const baseBookmarks: KarakeepBookmark[] = rawArray
+ .filter(raw => raw && raw.content && raw.content.type === "link")
+ .map(raw => {
+ const title = raw.content?.title ?? raw.title ?? "Untitled";
+ const urlStr = raw.content?.url ?? raw.url;
+ return {
+ id: raw.id,
+ title,
+ icon: raw.content?.favicon ?? raw.icon,
+ collection: raw.collection ?? raw.collectionName,
+ url: urlStr,
+ content: raw.content,
+ // lists will be filled below
+ } as KarakeepBookmark;
+ })
+ .filter(b => !!b.url); // drop entries without a usable url
+
+ if (baseBookmarks.length === 0) return [];
+
+ // fetch lists for each bookmark in parallel and attach them
+ await Promise.all(
+ baseBookmarks.map(async (b) => {
+ try {
+ const listsRes = await axios.get(`${apiBase}/bookmarks/${b.id}/lists`, {
+ headers,
+ httpsAgent: allowInsecureCerts ? new https.Agent({ rejectUnauthorized: false }) : undefined,
+ });
+
+ const data = listsRes.data;
+ const lists = Array.isArray(data?.lists) ? data.lists : [];
+
+ // use only the first list name if present
+ if (lists.length > 0) {
+ const first = lists[0];
+ b.collection = first.name ?? first.id;
+ }
+ } catch {
+ // ignore network or 404 errors silently
}
- } catch {
- // ignore network or 404 errors silently
- }
- })
- );
+ })
+ );
+
+
+ return baseBookmarks;
+ } catch (err) {
+ if (axios.isAxiosError(err)) {
+ console.error(`[Karakeep] Failed to fetch bookmarks from ${serverUrl}`, {
+ status: err.response?.status,
+ statusText: err.response?.statusText,
+ data: err.response?.data,
+ message: err.message,
+ });
+ } else {
+ console.error(`[Karakeep] Unexpected error fetching bookmarks:`, err);
+ }
+ return [];
+ }
-
- return baseBookmarks;
}
diff --git a/lib/config.ts b/lib/config.ts
index 76979e75..e67ad7f2 100644
--- a/lib/config.ts
+++ b/lib/config.ts
@@ -1,4 +1,5 @@
interface Config{
+ app_base_url: string;
pb_url: string;
default_bg_url: string;
version: string;
@@ -8,16 +9,19 @@ interface Config{
pbAdminPassword: string;
}
const allowInsecureCertsForIntegrationUrls =
- process.env.INTEGRATIONS_ENABLE_SSL === 'true' ||
- process.env.INTEGRATIONS_ENABLE_SSL === '1';
+ process.env.NEXT_PUBLIC_INTEGRATIONS_ENABLE_SSL === 'true' ||
+ process.env.NEXT_PUBLIC_INTEGRATIONS_ENABLE_SSL === '1';
+const enableSSOLogin =
+ process.env.NEXT_PUBLIC_ENABLE_SSO === 'true' || process.env.NEXT_PUBLIC_ENABLE_SSO === '1' || false;
const config: Config = {
+ app_base_url: process.env.NEXT_PUBLIC_APP_URL || 'http://dashwise:3000',
pb_url: process.env.NEXT_PUBLIC_PB_URL || 'http://127.0.0.1:8090',
- default_bg_url: process.env.DEFAULT_BG_URL || '/dashboard-wallpaper.png',
- version: 'maybenotthatwiseyet',
+ default_bg_url: process.env.NEXT_PUBLIC_DEFAULT_BG_URL || '/dashboard-wallpaper.png',
+ version: '0.1.3',
allowInsecureCertsForIntegrationUrls: allowInsecureCertsForIntegrationUrls || false,
- enableSSO: process.env.ENABLE_SSO === 'true' || false,
+ enableSSO: enableSSOLogin,
pbAdminEmail: process.env.PB_ADMIN_EMAIL || "",
pbAdminPassword: process.env.PB_ADMIN_PASSWORD || ""
};
diff --git a/lib/jobs.ts b/lib/jobs.ts
index 391f8de3..9fd63366 100644
--- a/lib/jobs.ts
+++ b/lib/jobs.ts
@@ -80,10 +80,11 @@ export default async function runBackgroundJobs() {
const token = Buffer.from(karakeepConfig.api_token, "base64").toString("utf-8");
const serverUrl = Buffer.from(karakeepConfig.server_location, "base64").toString("utf-8");
+ console.log("karakeep", token, serverUrl)
if (!token || !serverUrl) return;
const bookmarks = await KarakeepSearchItems({serverUrl, token, allowInsecureCerts: config.allowInsecureCertsForIntegrationUrls});
-
+ searchItems.push(...bookmarks);
}
const desiredJson = mapSearchItemsToJSON(searchItems);
diff --git a/lib/pb.ts b/lib/pb.ts
index 03331608..6f2498ba 100644
--- a/lib/pb.ts
+++ b/lib/pb.ts
@@ -15,8 +15,6 @@ export function getServerPB(cookieHeader?: string) {
export async function getSuperuserPB() {
const pb = new PocketBase(config.pb_url);
- console.log("test")
- console.log("Auth", config.pbAdminEmail, config.pbAdminPassword)
await pb.collection('_superusers').authWithPassword(config.pbAdminEmail, config.pbAdminPassword);
return pb;
}
diff --git a/pocketbase/Dockerfile b/pocketbase/Dockerfile
new file mode 100644
index 00000000..30af818c
--- /dev/null
+++ b/pocketbase/Dockerfile
@@ -0,0 +1,26 @@
+FROM alpine:latest
+
+ARG PB_VERSION=0.30.4
+ARG TARGETARCH
+
+# Install required tools
+RUN apk add --no-cache curl wget unzip
+
+RUN echo "Downloading PocketBase v${PB_VERSION} for ${TARGETARCH}" && \
+ case "${TARGETARCH}" in \
+ "arm64") ARCH="arm64";; \
+ "amd64") ARCH="amd64";; \
+ *) echo "Unsupported architecture: ${TARGETARCH}" && exit 1;; \
+ esac && \
+ wget -O /pocketbase.zip https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_${ARCH}.zip && \
+ unzip /pocketbase.zip -d /app && \
+ rm /pocketbase.zip
+
+WORKDIR /app
+
+COPY ./pb_migrations /app/pb_migrations
+
+COPY ./init_pb.sh /init_pb.sh
+RUN chmod +x /init_pb.sh
+
+ENTRYPOINT ["/init_pb.sh"]
diff --git a/pocketbase/init_pb.sh b/pocketbase/init_pb.sh
new file mode 100755
index 00000000..0bbea440
--- /dev/null
+++ b/pocketbase/init_pb.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+set -e
+
+PB_BINARY="/app/pocketbase"
+PB_PORT="0.0.0.0:8090"
+
+PB_DATA_DIR="/app/pb_data"
+PB_MIGRATIONS_DIR="/app/pb_migrations"
+
+ADMIN_EMAIL="${PB_ADMIN_EMAIL:-default@dashwise.local}"
+ADMIN_PASSWORD="${PB_ADMIN_PASSWORD:-dashwiseIsAwesome}"
+
+# Ensure data and migrations directories exist
+mkdir -p "$PB_DATA_DIR" "$PB_MIGRATIONS_DIR"
+
+# run migrations
+$PB_BINARY migrate \
+ --dir "$PB_DATA_DIR" \
+ --migrationsDir "$PB_MIGRATIONS_DIR" &
+
+# Start PocketBase as background service
+$PB_BINARY serve \
+ --http "$PB_PORT" \
+ --dir "$PB_DATA_DIR" \
+ --migrationsDir "$PB_MIGRATIONS_DIR" &
+PB_PID=$!
+
+sleep 5
+
+if $PB_BINARY superuser upsert "$ADMIN_EMAIL" "$ADMIN_PASSWORD" --dir "$PB_DATA_DIR"; then
+ echo "✅ PocketBase superuser successfully created: ${ADMIN_EMAIL}"
+else
+ echo "❌ Error: Failed to create PocketBase superuser account"
+ kill $PB_PID
+ exit 1
+fi
+
+wait $PB_PID
\ No newline at end of file
diff --git a/pocketbase/pb_migrations/1760792500_collections_snapshot.js b/pocketbase/pb_migrations/1760792500_collections_snapshot.js
new file mode 100644
index 00000000..5b36db60
--- /dev/null
+++ b/pocketbase/pb_migrations/1760792500_collections_snapshot.js
@@ -0,0 +1,1205 @@
+///
+migrate((app) => {
+ const snapshot = [
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text455797646",
+ "max": 0,
+ "min": 0,
+ "name": "collectionRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text127846527",
+ "max": 0,
+ "min": 0,
+ "name": "recordRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1582905952",
+ "max": 0,
+ "min": 0,
+ "name": "method",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_2279338944",
+ "indexes": [
+ "CREATE INDEX `idx_mfas_collectionRef_recordRef` ON `_mfas` (collectionRef,recordRef)"
+ ],
+ "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "name": "_mfas",
+ "system": true,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
+ },
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text455797646",
+ "max": 0,
+ "min": 0,
+ "name": "collectionRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text127846527",
+ "max": 0,
+ "min": 0,
+ "name": "recordRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cost": 8,
+ "hidden": true,
+ "id": "password901924565",
+ "max": 0,
+ "min": 0,
+ "name": "password",
+ "pattern": "",
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "password"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": true,
+ "id": "text3866985172",
+ "max": 0,
+ "min": 0,
+ "name": "sentTo",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_1638494021",
+ "indexes": [
+ "CREATE INDEX `idx_otps_collectionRef_recordRef` ON `_otps` (collectionRef, recordRef)"
+ ],
+ "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "name": "_otps",
+ "system": true,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
+ },
+ {
+ "createRule": null,
+ "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text455797646",
+ "max": 0,
+ "min": 0,
+ "name": "collectionRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text127846527",
+ "max": 0,
+ "min": 0,
+ "name": "recordRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text2462348188",
+ "max": 0,
+ "min": 0,
+ "name": "provider",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1044722854",
+ "max": 0,
+ "min": 0,
+ "name": "providerId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_2281828961",
+ "indexes": [
+ "CREATE UNIQUE INDEX `idx_externalAuths_record_provider` ON `_externalAuths` (collectionRef, recordRef, provider)",
+ "CREATE UNIQUE INDEX `idx_externalAuths_collection_provider` ON `_externalAuths` (collectionRef, provider, providerId)"
+ ],
+ "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "name": "_externalAuths",
+ "system": true,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
+ },
+ {
+ "createRule": null,
+ "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text455797646",
+ "max": 0,
+ "min": 0,
+ "name": "collectionRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text127846527",
+ "max": 0,
+ "min": 0,
+ "name": "recordRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text4228609354",
+ "max": 0,
+ "min": 0,
+ "name": "fingerprint",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_4275539003",
+ "indexes": [
+ "CREATE UNIQUE INDEX `idx_authOrigins_unique_pairs` ON `_authOrigins` (collectionRef, recordRef, fingerprint)"
+ ],
+ "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "name": "_authOrigins",
+ "system": true,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
+ },
+ {
+ "authAlert": {
+ "emailTemplate": {
+ "body": "Hello,
\nWe noticed a login to your {APP_NAME} account from a new location.
\nIf this was you, you may disregard this email.
\nIf this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Login from a new location"
+ },
+ "enabled": true
+ },
+ "authRule": "",
+ "authToken": {
+ "duration": 86400
+ },
+ "confirmEmailChangeTemplate": {
+ "body": "Hello,
\nClick on the button below to confirm your new email address.
\n\n Confirm new email \n
\nIf you didn't ask to change your email address, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Confirm your {APP_NAME} new email address"
+ },
+ "createRule": null,
+ "deleteRule": null,
+ "emailChangeToken": {
+ "duration": 1800
+ },
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cost": 0,
+ "hidden": true,
+ "id": "password901924565",
+ "max": 0,
+ "min": 8,
+ "name": "password",
+ "pattern": "",
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "password"
+ },
+ {
+ "autogeneratePattern": "[a-zA-Z0-9]{50}",
+ "hidden": true,
+ "id": "text2504183744",
+ "max": 60,
+ "min": 30,
+ "name": "tokenKey",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "exceptDomains": null,
+ "hidden": false,
+ "id": "email3885137012",
+ "name": "email",
+ "onlyDomains": null,
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "email"
+ },
+ {
+ "hidden": false,
+ "id": "bool1547992806",
+ "name": "emailVisibility",
+ "presentable": false,
+ "required": false,
+ "system": true,
+ "type": "bool"
+ },
+ {
+ "hidden": false,
+ "id": "bool256245529",
+ "name": "verified",
+ "presentable": false,
+ "required": false,
+ "system": true,
+ "type": "bool"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "fileToken": {
+ "duration": 180
+ },
+ "id": "pbc_3142635823",
+ "indexes": [
+ "CREATE UNIQUE INDEX `idx_tokenKey_pbc_3142635823` ON `_superusers` (`tokenKey`)",
+ "CREATE UNIQUE INDEX `idx_email_pbc_3142635823` ON `_superusers` (`email`) WHERE `email` != ''"
+ ],
+ "listRule": null,
+ "manageRule": null,
+ "mfa": {
+ "duration": 1800,
+ "enabled": false,
+ "rule": ""
+ },
+ "name": "_superusers",
+ "oauth2": {
+ "enabled": false,
+ "mappedFields": {
+ "avatarURL": "",
+ "id": "",
+ "name": "",
+ "username": ""
+ }
+ },
+ "otp": {
+ "duration": 180,
+ "emailTemplate": {
+ "body": "Hello,
\nYour one-time password is: {OTP}
\nIf you didn't ask for the one-time password, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "OTP for {APP_NAME}"
+ },
+ "enabled": false,
+ "length": 8
+ },
+ "passwordAuth": {
+ "enabled": true,
+ "identityFields": [
+ "email"
+ ]
+ },
+ "passwordResetToken": {
+ "duration": 1800
+ },
+ "resetPasswordTemplate": {
+ "body": "Hello,
\nClick on the button below to reset your password.
\n\n Reset password \n
\nIf you didn't ask to reset your password, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Reset your {APP_NAME} password"
+ },
+ "system": true,
+ "type": "auth",
+ "updateRule": null,
+ "verificationTemplate": {
+ "body": "Hello,
\nThank you for joining us at {APP_NAME}.
\nClick on the button below to verify your email address.
\n\n Verify \n
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Verify your {APP_NAME} email"
+ },
+ "verificationToken": {
+ "duration": 259200
+ },
+ "viewRule": null
+ },
+ {
+ "authAlert": {
+ "emailTemplate": {
+ "body": "Hello,
\nWe noticed a login to your {APP_NAME} account from a new location.
\nIf this was you, you may disregard this email.
\nIf this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Login from a new location"
+ },
+ "enabled": true
+ },
+ "authRule": "",
+ "authToken": {
+ "duration": 604800
+ },
+ "confirmEmailChangeTemplate": {
+ "body": "Hello,
\nClick on the button below to confirm your new email address.
\n\n Confirm new email \n
\nIf you didn't ask to change your email address, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Confirm your {APP_NAME} new email address"
+ },
+ "createRule": "",
+ "deleteRule": "id = @request.auth.id",
+ "emailChangeToken": {
+ "duration": 1800
+ },
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cost": 0,
+ "hidden": true,
+ "id": "password901924565",
+ "max": 0,
+ "min": 8,
+ "name": "password",
+ "pattern": "",
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "password"
+ },
+ {
+ "autogeneratePattern": "[a-zA-Z0-9]{50}",
+ "hidden": true,
+ "id": "text2504183744",
+ "max": 60,
+ "min": 30,
+ "name": "tokenKey",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "exceptDomains": null,
+ "hidden": false,
+ "id": "email3885137012",
+ "name": "email",
+ "onlyDomains": null,
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "email"
+ },
+ {
+ "hidden": false,
+ "id": "bool1547992806",
+ "name": "emailVisibility",
+ "presentable": false,
+ "required": false,
+ "system": true,
+ "type": "bool"
+ },
+ {
+ "hidden": false,
+ "id": "bool256245529",
+ "name": "verified",
+ "presentable": false,
+ "required": false,
+ "system": true,
+ "type": "bool"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1579384326",
+ "max": 255,
+ "min": 0,
+ "name": "name",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "file376926767",
+ "maxSelect": 1,
+ "maxSize": 0,
+ "mimeTypes": [
+ "image/jpeg",
+ "image/png",
+ "image/svg+xml",
+ "image/gif",
+ "image/webp"
+ ],
+ "name": "avatar",
+ "presentable": false,
+ "protected": false,
+ "required": false,
+ "system": false,
+ "thumbs": null,
+ "type": "file"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "fileToken": {
+ "duration": 180
+ },
+ "id": "_pb_users_auth_",
+ "indexes": [
+ "CREATE UNIQUE INDEX `idx_tokenKey__pb_users_auth_` ON `users` (`tokenKey`)",
+ "CREATE UNIQUE INDEX `idx_email__pb_users_auth_` ON `users` (`email`) WHERE `email` != ''"
+ ],
+ "listRule": "id = @request.auth.id",
+ "manageRule": null,
+ "mfa": {
+ "duration": 1800,
+ "enabled": false,
+ "rule": ""
+ },
+ "name": "users",
+ "oauth2": {
+ "enabled": false,
+ "mappedFields": {
+ "avatarURL": "avatar",
+ "id": "",
+ "name": "name",
+ "username": ""
+ }
+ },
+ "otp": {
+ "duration": 180,
+ "emailTemplate": {
+ "body": "Hello,
\nYour one-time password is: {OTP}
\nIf you didn't ask for the one-time password, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "OTP for {APP_NAME}"
+ },
+ "enabled": false,
+ "length": 8
+ },
+ "passwordAuth": {
+ "enabled": true,
+ "identityFields": [
+ "email"
+ ]
+ },
+ "passwordResetToken": {
+ "duration": 1800
+ },
+ "resetPasswordTemplate": {
+ "body": "Hello,
\nClick on the button below to reset your password.
\n\n Reset password \n
\nIf you didn't ask to reset your password, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Reset your {APP_NAME} password"
+ },
+ "system": false,
+ "type": "auth",
+ "updateRule": "id = @request.auth.id",
+ "verificationTemplate": {
+ "body": "Hello,
\nThank you for joining us at {APP_NAME}.
\nClick on the button below to verify your email address.
\n\n Verify \n
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Verify your {APP_NAME} email"
+ },
+ "verificationToken": {
+ "duration": 259200
+ },
+ "viewRule": "id = @request.auth.id"
+ },
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text3806391035",
+ "max": 0,
+ "min": 0,
+ "name": "topicId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "json4274335913",
+ "maxSize": 0,
+ "name": "content",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "json"
+ },
+ {
+ "hidden": false,
+ "id": "number1655102503",
+ "max": null,
+ "min": null,
+ "name": "priority",
+ "onlyInt": false,
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "number"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text2063623452",
+ "max": 0,
+ "min": 0,
+ "name": "status",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1602912115",
+ "max": 0,
+ "min": 0,
+ "name": "source",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_1477109113",
+ "indexes": [],
+ "listRule": null,
+ "name": "notificationItems",
+ "system": false,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": null
+ },
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1689669068",
+ "max": 0,
+ "min": 0,
+ "name": "userId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text724990059",
+ "max": 0,
+ "min": 0,
+ "name": "title",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_2969282176",
+ "indexes": [],
+ "listRule": null,
+ "name": "notificationTopics",
+ "system": false,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": null
+ },
+ {
+ "createRule": "",
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "json3565825916",
+ "maxSize": 0,
+ "name": "config",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "json"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text19643073",
+ "max": 0,
+ "min": 0,
+ "name": "associatedUserId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_3779370597",
+ "indexes": [],
+ "listRule": "associatedUserId = @request.auth.id",
+ "name": "userConfig",
+ "system": false,
+ "type": "base",
+ "updateRule": "associatedUserId = @request.auth.id",
+ "viewRule": "associatedUserId = @request.auth.id"
+ },
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1689669068",
+ "max": 0,
+ "min": 0,
+ "name": "associatedUserId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "json652256059",
+ "maxSize": 0,
+ "name": "searchItems",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "json"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_169670634",
+ "indexes": [],
+ "listRule": null,
+ "name": "userSearchItems",
+ "system": false,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": null
+ },
+ {
+ "createRule": "@request.auth.id = @request.body.userId",
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "file3309110367",
+ "maxSelect": 1,
+ "maxSize": 0,
+ "mimeTypes": [],
+ "name": "image",
+ "presentable": false,
+ "protected": false,
+ "required": false,
+ "system": false,
+ "thumbs": [],
+ "type": "file"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text2620999259",
+ "max": 0,
+ "min": 0,
+ "name": "fileName",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1689669068",
+ "max": 0,
+ "min": 0,
+ "name": "userId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_2882600305",
+ "indexes": [],
+ "listRule": "@request.auth.id = userId",
+ "name": "wallpaperStore",
+ "system": false,
+ "type": "base",
+ "updateRule": "",
+ "viewRule": "@request.auth.id = userId"
+ }
+ ];
+
+ return app.importCollections(snapshot, false);
+}, (app) => {
+ return null;
+})
diff --git a/pocketbase/pb_migrations/1760794909_collections_snapshot.js b/pocketbase/pb_migrations/1760794909_collections_snapshot.js
new file mode 100644
index 00000000..b5c038c2
--- /dev/null
+++ b/pocketbase/pb_migrations/1760794909_collections_snapshot.js
@@ -0,0 +1,1205 @@
+///
+migrate((app) => {
+ const snapshot = [
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text455797646",
+ "max": 0,
+ "min": 0,
+ "name": "collectionRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text127846527",
+ "max": 0,
+ "min": 0,
+ "name": "recordRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1582905952",
+ "max": 0,
+ "min": 0,
+ "name": "method",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_2279338944",
+ "indexes": [
+ "CREATE INDEX `idx_mfas_collectionRef_recordRef` ON `_mfas` (collectionRef,recordRef)"
+ ],
+ "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "name": "_mfas",
+ "system": true,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
+ },
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text455797646",
+ "max": 0,
+ "min": 0,
+ "name": "collectionRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text127846527",
+ "max": 0,
+ "min": 0,
+ "name": "recordRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cost": 8,
+ "hidden": true,
+ "id": "password901924565",
+ "max": 0,
+ "min": 0,
+ "name": "password",
+ "pattern": "",
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "password"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": true,
+ "id": "text3866985172",
+ "max": 0,
+ "min": 0,
+ "name": "sentTo",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_1638494021",
+ "indexes": [
+ "CREATE INDEX `idx_otps_collectionRef_recordRef` ON `_otps` (collectionRef, recordRef)"
+ ],
+ "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "name": "_otps",
+ "system": true,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
+ },
+ {
+ "createRule": null,
+ "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text455797646",
+ "max": 0,
+ "min": 0,
+ "name": "collectionRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text127846527",
+ "max": 0,
+ "min": 0,
+ "name": "recordRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text2462348188",
+ "max": 0,
+ "min": 0,
+ "name": "provider",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1044722854",
+ "max": 0,
+ "min": 0,
+ "name": "providerId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_2281828961",
+ "indexes": [
+ "CREATE UNIQUE INDEX `idx_externalAuths_record_provider` ON `_externalAuths` (collectionRef, recordRef, provider)",
+ "CREATE UNIQUE INDEX `idx_externalAuths_collection_provider` ON `_externalAuths` (collectionRef, provider, providerId)"
+ ],
+ "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "name": "_externalAuths",
+ "system": true,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
+ },
+ {
+ "createRule": null,
+ "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text455797646",
+ "max": 0,
+ "min": 0,
+ "name": "collectionRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text127846527",
+ "max": 0,
+ "min": 0,
+ "name": "recordRef",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text4228609354",
+ "max": 0,
+ "min": 0,
+ "name": "fingerprint",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_4275539003",
+ "indexes": [
+ "CREATE UNIQUE INDEX `idx_authOrigins_unique_pairs` ON `_authOrigins` (collectionRef, recordRef, fingerprint)"
+ ],
+ "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId",
+ "name": "_authOrigins",
+ "system": true,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId"
+ },
+ {
+ "authAlert": {
+ "emailTemplate": {
+ "body": "Hello,
\nWe noticed a login to your {APP_NAME} account from a new location.
\nIf this was you, you may disregard this email.
\nIf this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Login from a new location"
+ },
+ "enabled": true
+ },
+ "authRule": "",
+ "authToken": {
+ "duration": 86400
+ },
+ "confirmEmailChangeTemplate": {
+ "body": "Hello,
\nClick on the button below to confirm your new email address.
\n\n Confirm new email \n
\nIf you didn't ask to change your email address, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Confirm your {APP_NAME} new email address"
+ },
+ "createRule": null,
+ "deleteRule": null,
+ "emailChangeToken": {
+ "duration": 1800
+ },
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cost": 0,
+ "hidden": true,
+ "id": "password901924565",
+ "max": 0,
+ "min": 8,
+ "name": "password",
+ "pattern": "",
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "password"
+ },
+ {
+ "autogeneratePattern": "[a-zA-Z0-9]{50}",
+ "hidden": true,
+ "id": "text2504183744",
+ "max": 60,
+ "min": 30,
+ "name": "tokenKey",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "exceptDomains": null,
+ "hidden": false,
+ "id": "email3885137012",
+ "name": "email",
+ "onlyDomains": null,
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "email"
+ },
+ {
+ "hidden": false,
+ "id": "bool1547992806",
+ "name": "emailVisibility",
+ "presentable": false,
+ "required": false,
+ "system": true,
+ "type": "bool"
+ },
+ {
+ "hidden": false,
+ "id": "bool256245529",
+ "name": "verified",
+ "presentable": false,
+ "required": false,
+ "system": true,
+ "type": "bool"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": true,
+ "type": "autodate"
+ }
+ ],
+ "fileToken": {
+ "duration": 180
+ },
+ "id": "pbc_3142635823",
+ "indexes": [
+ "CREATE UNIQUE INDEX `idx_tokenKey_pbc_3142635823` ON `_superusers` (`tokenKey`)",
+ "CREATE UNIQUE INDEX `idx_email_pbc_3142635823` ON `_superusers` (`email`) WHERE `email` != ''"
+ ],
+ "listRule": null,
+ "manageRule": null,
+ "mfa": {
+ "duration": 1800,
+ "enabled": false,
+ "rule": ""
+ },
+ "name": "_superusers",
+ "oauth2": {
+ "enabled": false,
+ "mappedFields": {
+ "avatarURL": "",
+ "id": "",
+ "name": "",
+ "username": ""
+ }
+ },
+ "otp": {
+ "duration": 180,
+ "emailTemplate": {
+ "body": "Hello,
\nYour one-time password is: {OTP}
\nIf you didn't ask for the one-time password, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "OTP for {APP_NAME}"
+ },
+ "enabled": false,
+ "length": 8
+ },
+ "passwordAuth": {
+ "enabled": true,
+ "identityFields": [
+ "email"
+ ]
+ },
+ "passwordResetToken": {
+ "duration": 1800
+ },
+ "resetPasswordTemplate": {
+ "body": "Hello,
\nClick on the button below to reset your password.
\n\n Reset password \n
\nIf you didn't ask to reset your password, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Reset your {APP_NAME} password"
+ },
+ "system": true,
+ "type": "auth",
+ "updateRule": null,
+ "verificationTemplate": {
+ "body": "Hello,
\nThank you for joining us at {APP_NAME}.
\nClick on the button below to verify your email address.
\n\n Verify \n
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Verify your {APP_NAME} email"
+ },
+ "verificationToken": {
+ "duration": 259200
+ },
+ "viewRule": null
+ },
+ {
+ "authAlert": {
+ "emailTemplate": {
+ "body": "Hello,
\nWe noticed a login to your {APP_NAME} account from a new location.
\nIf this was you, you may disregard this email.
\nIf this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Login from a new location"
+ },
+ "enabled": true
+ },
+ "authRule": "",
+ "authToken": {
+ "duration": 604800
+ },
+ "confirmEmailChangeTemplate": {
+ "body": "Hello,
\nClick on the button below to confirm your new email address.
\n\n Confirm new email \n
\nIf you didn't ask to change your email address, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Confirm your {APP_NAME} new email address"
+ },
+ "createRule": "",
+ "deleteRule": "id = @request.auth.id",
+ "emailChangeToken": {
+ "duration": 1800
+ },
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "cost": 0,
+ "hidden": true,
+ "id": "password901924565",
+ "max": 0,
+ "min": 8,
+ "name": "password",
+ "pattern": "",
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "password"
+ },
+ {
+ "autogeneratePattern": "[a-zA-Z0-9]{50}",
+ "hidden": true,
+ "id": "text2504183744",
+ "max": 60,
+ "min": 30,
+ "name": "tokenKey",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "exceptDomains": null,
+ "hidden": false,
+ "id": "email3885137012",
+ "name": "email",
+ "onlyDomains": null,
+ "presentable": false,
+ "required": true,
+ "system": true,
+ "type": "email"
+ },
+ {
+ "hidden": false,
+ "id": "bool1547992806",
+ "name": "emailVisibility",
+ "presentable": false,
+ "required": false,
+ "system": true,
+ "type": "bool"
+ },
+ {
+ "hidden": false,
+ "id": "bool256245529",
+ "name": "verified",
+ "presentable": false,
+ "required": false,
+ "system": true,
+ "type": "bool"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1579384326",
+ "max": 255,
+ "min": 0,
+ "name": "name",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "file376926767",
+ "maxSelect": 1,
+ "maxSize": 0,
+ "mimeTypes": [
+ "image/jpeg",
+ "image/png",
+ "image/svg+xml",
+ "image/gif",
+ "image/webp"
+ ],
+ "name": "avatar",
+ "presentable": false,
+ "protected": false,
+ "required": false,
+ "system": false,
+ "thumbs": null,
+ "type": "file"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "fileToken": {
+ "duration": 180
+ },
+ "id": "_pb_users_auth_",
+ "indexes": [
+ "CREATE UNIQUE INDEX `idx_tokenKey__pb_users_auth_` ON `users` (`tokenKey`)",
+ "CREATE UNIQUE INDEX `idx_email__pb_users_auth_` ON `users` (`email`) WHERE `email` != ''"
+ ],
+ "listRule": "id = @request.auth.id",
+ "manageRule": null,
+ "mfa": {
+ "duration": 1800,
+ "enabled": false,
+ "rule": ""
+ },
+ "name": "users",
+ "oauth2": {
+ "enabled": false,
+ "mappedFields": {
+ "avatarURL": "avatar",
+ "id": "",
+ "name": "name",
+ "username": ""
+ }
+ },
+ "otp": {
+ "duration": 180,
+ "emailTemplate": {
+ "body": "Hello,
\nYour one-time password is: {OTP}
\nIf you didn't ask for the one-time password, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "OTP for {APP_NAME}"
+ },
+ "enabled": false,
+ "length": 8
+ },
+ "passwordAuth": {
+ "enabled": true,
+ "identityFields": [
+ "email"
+ ]
+ },
+ "passwordResetToken": {
+ "duration": 1800
+ },
+ "resetPasswordTemplate": {
+ "body": "Hello,
\nClick on the button below to reset your password.
\n\n Reset password \n
\nIf you didn't ask to reset your password, you can ignore this email.
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Reset your {APP_NAME} password"
+ },
+ "system": false,
+ "type": "auth",
+ "updateRule": "id = @request.auth.id",
+ "verificationTemplate": {
+ "body": "Hello,
\nThank you for joining us at {APP_NAME}.
\nClick on the button below to verify your email address.
\n\n Verify \n
\n\n Thanks, \n {APP_NAME} team\n
",
+ "subject": "Verify your {APP_NAME} email"
+ },
+ "verificationToken": {
+ "duration": 259200
+ },
+ "viewRule": "id = @request.auth.id"
+ },
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text3806391035",
+ "max": 0,
+ "min": 0,
+ "name": "topicId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "json4274335913",
+ "maxSize": 0,
+ "name": "content",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "json"
+ },
+ {
+ "hidden": false,
+ "id": "number1655102503",
+ "max": null,
+ "min": null,
+ "name": "priority",
+ "onlyInt": false,
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "number"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text2063623452",
+ "max": 0,
+ "min": 0,
+ "name": "status",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1602912115",
+ "max": 0,
+ "min": 0,
+ "name": "source",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_1477109113",
+ "indexes": [],
+ "listRule": null,
+ "name": "notificationItems",
+ "system": false,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": null
+ },
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1689669068",
+ "max": 0,
+ "min": 0,
+ "name": "userId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text724990059",
+ "max": 0,
+ "min": 0,
+ "name": "title",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": true,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_2969282176",
+ "indexes": [],
+ "listRule": null,
+ "name": "notificationTopics",
+ "system": false,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": null
+ },
+ {
+ "createRule": "",
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "json3565825916",
+ "maxSize": 0,
+ "name": "config",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "json"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text19643073",
+ "max": 0,
+ "min": 0,
+ "name": "associatedUserId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_3779370597",
+ "indexes": [],
+ "listRule": "associatedUserId = @request.auth.id",
+ "name": "userConfig",
+ "system": false,
+ "type": "base",
+ "updateRule": "associatedUserId = @request.auth.id",
+ "viewRule": "associatedUserId = @request.auth.id"
+ },
+ {
+ "createRule": null,
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1689669068",
+ "max": 0,
+ "min": 0,
+ "name": "associatedUserId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "json652256059",
+ "maxSize": 0,
+ "name": "searchItems",
+ "presentable": false,
+ "required": false,
+ "system": false,
+ "type": "json"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_169670634",
+ "indexes": [],
+ "listRule": "@request.auth.id = associatedUserId",
+ "name": "userSearchItems",
+ "system": false,
+ "type": "base",
+ "updateRule": null,
+ "viewRule": "@request.auth.id = associatedUserId"
+ },
+ {
+ "createRule": "@request.auth.id = @request.body.userId",
+ "deleteRule": null,
+ "fields": [
+ {
+ "autogeneratePattern": "[a-z0-9]{15}",
+ "hidden": false,
+ "id": "text3208210256",
+ "max": 15,
+ "min": 15,
+ "name": "id",
+ "pattern": "^[a-z0-9]+$",
+ "presentable": false,
+ "primaryKey": true,
+ "required": true,
+ "system": true,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "file3309110367",
+ "maxSelect": 1,
+ "maxSize": 0,
+ "mimeTypes": [],
+ "name": "image",
+ "presentable": false,
+ "protected": false,
+ "required": false,
+ "system": false,
+ "thumbs": [],
+ "type": "file"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text2620999259",
+ "max": 0,
+ "min": 0,
+ "name": "fileName",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "autogeneratePattern": "",
+ "hidden": false,
+ "id": "text1689669068",
+ "max": 0,
+ "min": 0,
+ "name": "userId",
+ "pattern": "",
+ "presentable": false,
+ "primaryKey": false,
+ "required": false,
+ "system": false,
+ "type": "text"
+ },
+ {
+ "hidden": false,
+ "id": "autodate2990389176",
+ "name": "created",
+ "onCreate": true,
+ "onUpdate": false,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ },
+ {
+ "hidden": false,
+ "id": "autodate3332085495",
+ "name": "updated",
+ "onCreate": true,
+ "onUpdate": true,
+ "presentable": false,
+ "system": false,
+ "type": "autodate"
+ }
+ ],
+ "id": "pbc_2882600305",
+ "indexes": [],
+ "listRule": "@request.auth.id = userId",
+ "name": "wallpaperStore",
+ "system": false,
+ "type": "base",
+ "updateRule": "",
+ "viewRule": "@request.auth.id = userId"
+ }
+ ];
+
+ return app.importCollections(snapshot, false);
+}, (app) => {
+ return null;
+})
diff --git a/pocketbase/pb_migrations/1761055740_updated_wallpaperStore.js b/pocketbase/pb_migrations/1761055740_updated_wallpaperStore.js
new file mode 100644
index 00000000..84003cac
--- /dev/null
+++ b/pocketbase/pb_migrations/1761055740_updated_wallpaperStore.js
@@ -0,0 +1,20 @@
+///
+migrate((app) => {
+ const collection = app.findCollectionByNameOrId("pbc_2882600305")
+
+ // update collection data
+ unmarshal({
+ "deleteRule": "@request.auth.id = userId"
+ }, collection)
+
+ return app.save(collection)
+}, (app) => {
+ const collection = app.findCollectionByNameOrId("pbc_2882600305")
+
+ // update collection data
+ unmarshal({
+ "deleteRule": null
+ }, collection)
+
+ return app.save(collection)
+})
diff --git a/public/dashwise-icon.svg b/public/dashwise-icon.svg
new file mode 100644
index 00000000..1b3965ce
--- /dev/null
+++ b/public/dashwise-icon.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/public/dashwise-light.png b/public/dashwise-light.png
new file mode 100644
index 00000000..3aee98c9
Binary files /dev/null and b/public/dashwise-light.png differ
diff --git a/public/dashwise-light.svg b/public/dashwise-light.svg
new file mode 100644
index 00000000..3623b80c
--- /dev/null
+++ b/public/dashwise-light.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/public/default-config.json b/public/default-config.json
index cc49a100..5b8c5308 100644
--- a/public/default-config.json
+++ b/public/default-config.json
@@ -27,36 +27,30 @@
{
"name": "Google",
"url": "https://google.com",
- "icon": "/icons/svg/google.svg",
+ "icon": "/icons/svg/google-light.svg",
"linkGroup": "internet"
},
{
"name": "GitHub",
"url": "https://github.com",
- "icon": "/icons/svg/github.svg",
+ "icon": "/icons/svg/github-light.svg",
"linkGroup": "internet"
},
{
"name": "Twitter",
"url": "https://twitter.com",
- "icon": "/icons/svg/twitter.svg",
+ "icon": "/icons/svg/twitter-light.svg",
"linkGroup": "internet"
},
{
"name": "Reddit",
"url": "https://reddit.com",
- "icon": "/icons/svg/reddit.svg",
+ "icon": "/icons/svg/reddit-light.svg",
"linkGroup": "internet"
},
{
"name": "Dashwise",
- "url": "https://dashwise.com",
- "icon": "/icons/svg/",
- "linkGroup": "dashwise"
- },
- {
- "name": "Documentation",
- "url": "https://docs.dashwise.com",
+ "url": "https://github.com/andreasmolnardev/dashwise-next",
"icon": "/icons/svg/",
"linkGroup": "dashwise"
}
@@ -64,5 +58,7 @@
"linkGroups": [
"internet",
"dashwise"
- ]
+ ],
+ "searchEngines": [],
+ "integrations": {}
}
\ No newline at end of file
diff --git a/public/icons/index.json b/public/icons/index.json
index 1df3854a..12a8e5c4 100644
--- a/public/icons/index.json
+++ b/public/icons/index.json
@@ -5222,11 +5222,11 @@
{
"Name": "Tiny Tiny RSS",
"Reference": "tiny-tiny-rss",
- "SVG": "No",
+ "SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
- "Light": "No",
- "Dark": "No",
+ "Light": "Yes",
+ "Dark": "Yes",
"Category": "Self-Hosted",
"Tags": "",
"CreatedAt": "2024-09-06 15:30:34+00:00"
@@ -6288,8 +6288,8 @@
"CreatedAt": "2024-09-10 09:37:09+00:00"
},
{
- "Name": "Microsoft Teams",
- "Reference": "microsoft-teams",
+ "Name": "Microsoft Teams (2018)",
+ "Reference": "microsoft-teams-2018",
"SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
@@ -6492,8 +6492,8 @@
"CreatedAt": "2024-09-10 09:48:54+00:00"
},
{
- "Name": "Microsoft Outlook",
- "Reference": "microsoft-outlook",
+ "Name": "Microsoft Outlook (2018)",
+ "Reference": "microsoft-outlook-2018",
"SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
@@ -6912,8 +6912,8 @@
"CreatedAt": "2024-09-10 11:17:54+00:00"
},
{
- "Name": "Microsoft Excel",
- "Reference": "microsoft-excel",
+ "Name": "Microsoft Excel (2018)",
+ "Reference": "microsoft-excel-2018",
"SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
@@ -6924,8 +6924,8 @@
"CreatedAt": "2024-09-10 11:18:27+00:00"
},
{
- "Name": "Microsoft OneDrive",
- "Reference": "microsoft-onedrive",
+ "Name": "Microsoft OneDrive (2018)",
+ "Reference": "microsoft-onedrive-2018",
"SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
@@ -6936,8 +6936,8 @@
"CreatedAt": "2024-09-10 11:18:58+00:00"
},
{
- "Name": "Microsoft OneNote",
- "Reference": "microsoft-onenote",
+ "Name": "Microsoft OneNote (2018)",
+ "Reference": "microsoft-onenote-2018",
"SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
@@ -6948,8 +6948,8 @@
"CreatedAt": "2024-09-10 11:19:28+00:00"
},
{
- "Name": "Microsoft PowerPoint",
- "Reference": "microsoft-powerpoint",
+ "Name": "Microsoft PowerPoint (2018)",
+ "Reference": "microsoft-powerpoint-2018",
"SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
@@ -6972,8 +6972,8 @@
"CreatedAt": "2024-09-10 11:20:30+00:00"
},
{
- "Name": "Microsoft Word",
- "Reference": "microsoft-word",
+ "Name": "Microsoft Word (2018)",
+ "Reference": "microsoft-word-2018",
"SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
@@ -7464,8 +7464,8 @@
"CreatedAt": "2024-09-10 13:30:05+00:00"
},
{
- "Name": "Apple TV+",
- "Reference": "apple-tv-plus",
+ "Name": "Apple TV",
+ "Reference": "apple-tv",
"SVG": "Yes",
"PNG": "Yes",
"WebP": "Yes",
@@ -23531,18 +23531,6 @@
"Tags": "Cryptocurrency",
"CreatedAt": "2025-08-18 10:11:09+00:00"
},
- {
- "Name": "AIOStreams",
- "Reference": "aiostreams",
- "SVG": "No",
- "PNG": "Yes",
- "WebP": "Yes",
- "Light": "No",
- "Dark": "No",
- "Category": "Self-Hosted",
- "Tags": "",
- "CreatedAt": "2025-08-18 10:12:59+00:00"
- },
{
"Name": "GoCron",
"Reference": "gocron",
@@ -25186,5 +25174,761 @@
"Category": "Other",
"Tags": "Operating System",
"CreatedAt": "2025-09-19 13:00:06+00:00"
+ },
+ {
+ "Name": "Secluso",
+ "Reference": "secluso",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-22 09:44:54+00:00"
+ },
+ {
+ "Name": "GDMS",
+ "Reference": "gdms",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "",
+ "CreatedAt": "2025-09-22 10:15:25+00:00"
+ },
+ {
+ "Name": "Toodoom",
+ "Reference": "toodoom",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-22 12:23:38+00:00"
+ },
+ {
+ "Name": "File Wizard",
+ "Reference": "file-wizard",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-23 09:07:16+00:00"
+ },
+ {
+ "Name": "PigeonPod",
+ "Reference": "pigeonpod",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-23 09:51:41+00:00"
+ },
+ {
+ "Name": "CrossWatch",
+ "Reference": "crosswatch",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-23 10:50:45+00:00"
+ },
+ {
+ "Name": "HabitSync",
+ "Reference": "habitsync",
+ "SVG": "No",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "No",
+ "Dark": "No",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-25 09:35:28+00:00"
+ },
+ {
+ "Name": "QuickBars",
+ "Reference": "quickbars",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-25 09:42:17+00:00"
+ },
+ {
+ "Name": "AIOStreams",
+ "Reference": "aiostreams",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-26 09:09:00+00:00"
+ },
+ {
+ "Name": "Home Information",
+ "Reference": "home-information",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-26 11:39:07+00:00"
+ },
+ {
+ "Name": "TaskTrove",
+ "Reference": "tasktrove",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-29 09:59:19+00:00"
+ },
+ {
+ "Name": "MyIP",
+ "Reference": "myip",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-09-29 10:01:34+00:00"
+ },
+ {
+ "Name": "ComicOPDS",
+ "Reference": "comicopds",
+ "SVG": "No",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "No",
+ "Dark": "No",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-01 10:04:15+00:00"
+ },
+ {
+ "Name": "CookCLI",
+ "Reference": "cookcli",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-01 10:26:51+00:00"
+ },
+ {
+ "Name": "Microsoft Access (2000)",
+ "Reference": "microsoft-access-2000",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 17:59:09+00:00"
+ },
+ {
+ "Name": "Microsoft Access (2013)",
+ "Reference": "microsoft-access-2013",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:02:31+00:00"
+ },
+ {
+ "Name": "Microsoft Excel (2000)",
+ "Reference": "microsoft-excel-2000",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:10:49+00:00"
+ },
+ {
+ "Name": "Microsoft Excel (2013)",
+ "Reference": "microsoft-excel-2013",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:12:45+00:00"
+ },
+ {
+ "Name": "Microsoft OneNote (2013)",
+ "Reference": "microsoft-onenote-2013",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:14:35+00:00"
+ },
+ {
+ "Name": "Microsoft Outlook (2000)",
+ "Reference": "microsoft-outlook-2000",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:16:01+00:00"
+ },
+ {
+ "Name": "Microsoft Outlook (2013)",
+ "Reference": "microsoft-outlook-2013",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:17:35+00:00"
+ },
+ {
+ "Name": "Microsoft PowerPoint (2000)",
+ "Reference": "microsoft-powerpoint-2000",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:19:26+00:00"
+ },
+ {
+ "Name": "Microsoft PowerPoint (2013)",
+ "Reference": "microsoft-powerpoint-2013",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:22:40+00:00"
+ },
+ {
+ "Name": "Microsoft SharePoint (2013)",
+ "Reference": "microsoft-sharepoint-2013",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:24:50+00:00"
+ },
+ {
+ "Name": "Microsoft Teams (2016)",
+ "Reference": "microsoft-teams-2016",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:26:26+00:00"
+ },
+ {
+ "Name": "Microsoft Word (2000)",
+ "Reference": "microsoft-word-2000",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:28:18+00:00"
+ },
+ {
+ "Name": "Microsoft Word (2013)",
+ "Reference": "microsoft-word-2013",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-01 18:30:04+00:00"
+ },
+ {
+ "Name": "DockMon",
+ "Reference": "dockmon",
+ "SVG": "No",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "No",
+ "Dark": "No",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-02 09:14:39+00:00"
+ },
+ {
+ "Name": "Quetre",
+ "Reference": "quetre",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-02 14:54:19+00:00"
+ },
+ {
+ "Name": "Microsoft OneDrive",
+ "Reference": "microsoft-onedrive",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-02 15:30:51+00:00"
+ },
+ {
+ "Name": "Microsoft OneNote",
+ "Reference": "microsoft-onenote",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-02 15:55:29+00:00"
+ },
+ {
+ "Name": "Microsoft Outlook",
+ "Reference": "microsoft-outlook",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-02 16:03:20+00:00"
+ },
+ {
+ "Name": "Microsoft PowerPoint",
+ "Reference": "microsoft-powerpoint",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-02 16:06:23+00:00"
+ },
+ {
+ "Name": "Microsoft Excel",
+ "Reference": "microsoft-excel",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-02 16:10:59+00:00"
+ },
+ {
+ "Name": "Microsoft Word",
+ "Reference": "microsoft-word",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-02 16:15:18+00:00"
+ },
+ {
+ "Name": "Microsoft Teams",
+ "Reference": "microsoft-teams",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Microsoft,Office",
+ "CreatedAt": "2025-10-02 16:18:50+00:00"
+ },
+ {
+ "Name": "Velld",
+ "Reference": "velld",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-05 11:53:52+00:00"
+ },
+ {
+ "Name": "Dispatcharr",
+ "Reference": "dispatcharr",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-06 09:47:32+00:00"
+ },
+ {
+ "Name": "WhaleDeck",
+ "Reference": "whaledeck",
+ "SVG": "No",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "No",
+ "Dark": "No",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-06 11:20:01+00:00"
+ },
+ {
+ "Name": "Sonobarr",
+ "Reference": "sonobarr",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-07 09:47:46+00:00"
+ },
+ {
+ "Name": "TubeTimeout",
+ "Reference": "tubetimeout",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-07 09:52:37+00:00"
+ },
+ {
+ "Name": "Private Captcha",
+ "Reference": "private-captcha",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-07 10:02:03+00:00"
+ },
+ {
+ "Name": "Stoat",
+ "Reference": "stoat",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-08 09:26:18+00:00"
+ },
+ {
+ "Name": "AudioDeck",
+ "Reference": "audiodeck",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-08 09:28:01+00:00"
+ },
+ {
+ "Name": "Ontime",
+ "Reference": "ontime",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-09 13:09:26+00:00"
+ },
+ {
+ "Name": "BentoPDF",
+ "Reference": "bentopdf",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-13 10:10:08+00:00"
+ },
+ {
+ "Name": "SMARTFOX",
+ "Reference": "smartfox",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "",
+ "CreatedAt": "2025-10-13 10:20:05+00:00"
+ },
+ {
+ "Name": "Boxarr",
+ "Reference": "boxarr",
+ "SVG": "No",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "No",
+ "Dark": "No",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-13 10:23:04+00:00"
+ },
+ {
+ "Name": "Miles & More",
+ "Reference": "miles-and-more",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Airlines",
+ "CreatedAt": "2025-10-13 10:27:14+00:00"
+ },
+ {
+ "Name": "Lufthansa",
+ "Reference": "lufthansa",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Airlines",
+ "CreatedAt": "2025-10-13 10:28:25+00:00"
+ },
+ {
+ "Name": "VMware ESX",
+ "Reference": "vmware-esx",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-13 10:32:57+00:00"
+ },
+ {
+ "Name": "nextExplorer",
+ "Reference": "nextexplorer",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-13 10:38:58+00:00"
+ },
+ {
+ "Name": "PequeRoku",
+ "Reference": "pequeroku",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-15 09:52:53+00:00"
+ },
+ {
+ "Name": "Poznote",
+ "Reference": "poznote",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-16 11:41:51+00:00"
+ },
+ {
+ "Name": "Shopware",
+ "Reference": "shopware",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-16 11:43:50+00:00"
+ },
+ {
+ "Name": "File Portal",
+ "Reference": "file-portal",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-16 17:01:22+00:00"
+ },
+ {
+ "Name": "Vertigo (Comics)",
+ "Reference": "vertigo-comics",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-17 09:21:39+00:00"
+ },
+ {
+ "Name": "Kite (Kubernetes)",
+ "Reference": "kite-kubernetes",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-17 09:21:51+00:00"
+ },
+ {
+ "Name": "jfa-go",
+ "Reference": "jfa-go",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-20 22:57:05+00:00"
+ },
+ {
+ "Name": "Seagate",
+ "Reference": "seagate",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "",
+ "CreatedAt": "2025-10-20 22:58:23+00:00"
+ },
+ {
+ "Name": "Zorin OS",
+ "Reference": "zorin-os",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "Operating System",
+ "CreatedAt": "2025-10-20 23:00:08+00:00"
+ },
+ {
+ "Name": "Folding@home",
+ "Reference": "folding-home",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Other",
+ "Tags": "",
+ "CreatedAt": "2025-10-21 09:23:21+00:00"
+ },
+ {
+ "Name": "IronCalc",
+ "Reference": "ironcalc",
+ "SVG": "Yes",
+ "PNG": "Yes",
+ "WebP": "Yes",
+ "Light": "Yes",
+ "Dark": "Yes",
+ "Category": "Self-Hosted",
+ "Tags": "",
+ "CreatedAt": "2025-10-21 10:07:05+00:00"
}
]
\ No newline at end of file
diff --git a/public/icons/png/aiostreams-dark.png b/public/icons/png/aiostreams-dark.png
new file mode 100755
index 00000000..5153cbab
Binary files /dev/null and b/public/icons/png/aiostreams-dark.png differ
diff --git a/public/icons/png/aiostreams-light.png b/public/icons/png/aiostreams-light.png
new file mode 100755
index 00000000..0d2eb85a
Binary files /dev/null and b/public/icons/png/aiostreams-light.png differ
diff --git a/public/icons/png/aiostreams.png b/public/icons/png/aiostreams.png
index 0da8b34d..5153cbab 100755
Binary files a/public/icons/png/aiostreams.png and b/public/icons/png/aiostreams.png differ
diff --git a/public/icons/png/apple-tv-dark.png b/public/icons/png/apple-tv-dark.png
new file mode 100755
index 00000000..632560da
Binary files /dev/null and b/public/icons/png/apple-tv-dark.png differ
diff --git a/public/icons/png/apple-tv-light.png b/public/icons/png/apple-tv-light.png
new file mode 100755
index 00000000..982aa45d
Binary files /dev/null and b/public/icons/png/apple-tv-light.png differ
diff --git a/public/icons/png/apple-tv-plus-dark.png b/public/icons/png/apple-tv-plus-dark.png
deleted file mode 100755
index 808ac08a..00000000
Binary files a/public/icons/png/apple-tv-plus-dark.png and /dev/null differ
diff --git a/public/icons/png/apple-tv-plus-light.png b/public/icons/png/apple-tv-plus-light.png
deleted file mode 100755
index 08d6504b..00000000
Binary files a/public/icons/png/apple-tv-plus-light.png and /dev/null differ
diff --git a/public/icons/png/apple-tv-plus.png b/public/icons/png/apple-tv-plus.png
deleted file mode 100755
index 721a3ce8..00000000
Binary files a/public/icons/png/apple-tv-plus.png and /dev/null differ
diff --git a/public/icons/png/apple-tv.png b/public/icons/png/apple-tv.png
new file mode 100755
index 00000000..632560da
Binary files /dev/null and b/public/icons/png/apple-tv.png differ
diff --git a/public/icons/png/audiodeck-dark.png b/public/icons/png/audiodeck-dark.png
new file mode 100755
index 00000000..2cbadd7e
Binary files /dev/null and b/public/icons/png/audiodeck-dark.png differ
diff --git a/public/icons/png/audiodeck-light.png b/public/icons/png/audiodeck-light.png
new file mode 100755
index 00000000..2cbadd7e
Binary files /dev/null and b/public/icons/png/audiodeck-light.png differ
diff --git a/public/icons/png/audiodeck.png b/public/icons/png/audiodeck.png
new file mode 100755
index 00000000..2cbadd7e
Binary files /dev/null and b/public/icons/png/audiodeck.png differ
diff --git a/public/icons/png/bentopdf-dark.png b/public/icons/png/bentopdf-dark.png
new file mode 100755
index 00000000..1ffa5b37
Binary files /dev/null and b/public/icons/png/bentopdf-dark.png differ
diff --git a/public/icons/png/bentopdf-light.png b/public/icons/png/bentopdf-light.png
new file mode 100755
index 00000000..b51f4205
Binary files /dev/null and b/public/icons/png/bentopdf-light.png differ
diff --git a/public/icons/png/bentopdf.png b/public/icons/png/bentopdf.png
new file mode 100755
index 00000000..db8672c5
Binary files /dev/null and b/public/icons/png/bentopdf.png differ
diff --git a/public/icons/png/boxarr.png b/public/icons/png/boxarr.png
new file mode 100755
index 00000000..ac78e711
Binary files /dev/null and b/public/icons/png/boxarr.png differ
diff --git a/public/icons/png/comicopds.png b/public/icons/png/comicopds.png
new file mode 100755
index 00000000..de773407
Binary files /dev/null and b/public/icons/png/comicopds.png differ
diff --git a/public/icons/png/cookcli-dark.png b/public/icons/png/cookcli-dark.png
new file mode 100755
index 00000000..bb7599ba
Binary files /dev/null and b/public/icons/png/cookcli-dark.png differ
diff --git a/public/icons/png/cookcli-light.png b/public/icons/png/cookcli-light.png
new file mode 100755
index 00000000..c60e5e8c
Binary files /dev/null and b/public/icons/png/cookcli-light.png differ
diff --git a/public/icons/png/cookcli.png b/public/icons/png/cookcli.png
new file mode 100755
index 00000000..cc6e5a88
Binary files /dev/null and b/public/icons/png/cookcli.png differ
diff --git a/public/icons/png/crosswatch-dark.png b/public/icons/png/crosswatch-dark.png
new file mode 100755
index 00000000..7d34f15b
Binary files /dev/null and b/public/icons/png/crosswatch-dark.png differ
diff --git a/public/icons/png/crosswatch-light.png b/public/icons/png/crosswatch-light.png
new file mode 100755
index 00000000..08b49cfa
Binary files /dev/null and b/public/icons/png/crosswatch-light.png differ
diff --git a/public/icons/png/crosswatch.png b/public/icons/png/crosswatch.png
new file mode 100755
index 00000000..86e879b5
Binary files /dev/null and b/public/icons/png/crosswatch.png differ
diff --git a/public/icons/png/dispatcharr-dark.png b/public/icons/png/dispatcharr-dark.png
new file mode 100755
index 00000000..432372df
Binary files /dev/null and b/public/icons/png/dispatcharr-dark.png differ
diff --git a/public/icons/png/dispatcharr-light.png b/public/icons/png/dispatcharr-light.png
new file mode 100755
index 00000000..4991f916
Binary files /dev/null and b/public/icons/png/dispatcharr-light.png differ
diff --git a/public/icons/png/dispatcharr.png b/public/icons/png/dispatcharr.png
new file mode 100755
index 00000000..53f2314b
Binary files /dev/null and b/public/icons/png/dispatcharr.png differ
diff --git a/public/icons/png/dockmon.png b/public/icons/png/dockmon.png
new file mode 100755
index 00000000..f0e013bc
Binary files /dev/null and b/public/icons/png/dockmon.png differ
diff --git a/public/icons/png/file-portal-dark.png b/public/icons/png/file-portal-dark.png
new file mode 100755
index 00000000..24173ce8
Binary files /dev/null and b/public/icons/png/file-portal-dark.png differ
diff --git a/public/icons/png/file-portal-light.png b/public/icons/png/file-portal-light.png
new file mode 100755
index 00000000..42350887
Binary files /dev/null and b/public/icons/png/file-portal-light.png differ
diff --git a/public/icons/png/file-portal.png b/public/icons/png/file-portal.png
new file mode 100755
index 00000000..5b9abfca
Binary files /dev/null and b/public/icons/png/file-portal.png differ
diff --git a/public/icons/png/file-wizard-dark.png b/public/icons/png/file-wizard-dark.png
new file mode 100755
index 00000000..df2ade42
Binary files /dev/null and b/public/icons/png/file-wizard-dark.png differ
diff --git a/public/icons/png/file-wizard-light.png b/public/icons/png/file-wizard-light.png
new file mode 100755
index 00000000..3e5706cf
Binary files /dev/null and b/public/icons/png/file-wizard-light.png differ
diff --git a/public/icons/png/file-wizard.png b/public/icons/png/file-wizard.png
new file mode 100755
index 00000000..df2ade42
Binary files /dev/null and b/public/icons/png/file-wizard.png differ
diff --git a/public/icons/png/folding-home-dark.png b/public/icons/png/folding-home-dark.png
new file mode 100755
index 00000000..41dd79d4
Binary files /dev/null and b/public/icons/png/folding-home-dark.png differ
diff --git a/public/icons/png/folding-home-light.png b/public/icons/png/folding-home-light.png
new file mode 100755
index 00000000..48f812ab
Binary files /dev/null and b/public/icons/png/folding-home-light.png differ
diff --git a/public/icons/png/folding-home.png b/public/icons/png/folding-home.png
new file mode 100755
index 00000000..71da985a
Binary files /dev/null and b/public/icons/png/folding-home.png differ
diff --git a/public/icons/png/gdms-dark.png b/public/icons/png/gdms-dark.png
new file mode 100755
index 00000000..35a03e15
Binary files /dev/null and b/public/icons/png/gdms-dark.png differ
diff --git a/public/icons/png/gdms-light.png b/public/icons/png/gdms-light.png
new file mode 100755
index 00000000..75d6b610
Binary files /dev/null and b/public/icons/png/gdms-light.png differ
diff --git a/public/icons/png/gdms.png b/public/icons/png/gdms.png
new file mode 100755
index 00000000..83567502
Binary files /dev/null and b/public/icons/png/gdms.png differ
diff --git a/public/icons/png/habitsync.png b/public/icons/png/habitsync.png
new file mode 100755
index 00000000..7c4926e8
Binary files /dev/null and b/public/icons/png/habitsync.png differ
diff --git a/public/icons/png/home-information-dark.png b/public/icons/png/home-information-dark.png
new file mode 100755
index 00000000..eed7b5b6
Binary files /dev/null and b/public/icons/png/home-information-dark.png differ
diff --git a/public/icons/png/home-information-light.png b/public/icons/png/home-information-light.png
new file mode 100755
index 00000000..10a2bef9
Binary files /dev/null and b/public/icons/png/home-information-light.png differ
diff --git a/public/icons/png/home-information.png b/public/icons/png/home-information.png
new file mode 100755
index 00000000..c19bf35e
Binary files /dev/null and b/public/icons/png/home-information.png differ
diff --git a/public/icons/png/ironcalc-dark.png b/public/icons/png/ironcalc-dark.png
new file mode 100755
index 00000000..5b9f181e
Binary files /dev/null and b/public/icons/png/ironcalc-dark.png differ
diff --git a/public/icons/png/ironcalc-light.png b/public/icons/png/ironcalc-light.png
new file mode 100755
index 00000000..3ecfbcb0
Binary files /dev/null and b/public/icons/png/ironcalc-light.png differ
diff --git a/public/icons/png/ironcalc.png b/public/icons/png/ironcalc.png
new file mode 100755
index 00000000..eefa61f1
Binary files /dev/null and b/public/icons/png/ironcalc.png differ
diff --git a/public/icons/png/jfa-go-dark.png b/public/icons/png/jfa-go-dark.png
new file mode 100755
index 00000000..f5e92dda
Binary files /dev/null and b/public/icons/png/jfa-go-dark.png differ
diff --git a/public/icons/png/jfa-go-light.png b/public/icons/png/jfa-go-light.png
new file mode 100755
index 00000000..d9e7c1c9
Binary files /dev/null and b/public/icons/png/jfa-go-light.png differ
diff --git a/public/icons/png/jfa-go.png b/public/icons/png/jfa-go.png
new file mode 100755
index 00000000..621e679d
Binary files /dev/null and b/public/icons/png/jfa-go.png differ
diff --git a/public/icons/png/kite-kubernetes-dark.png b/public/icons/png/kite-kubernetes-dark.png
new file mode 100755
index 00000000..86a13099
Binary files /dev/null and b/public/icons/png/kite-kubernetes-dark.png differ
diff --git a/public/icons/png/kite-kubernetes-light.png b/public/icons/png/kite-kubernetes-light.png
new file mode 100755
index 00000000..cdee6011
Binary files /dev/null and b/public/icons/png/kite-kubernetes-light.png differ
diff --git a/public/icons/png/kite-kubernetes.png b/public/icons/png/kite-kubernetes.png
new file mode 100755
index 00000000..e4ec007c
Binary files /dev/null and b/public/icons/png/kite-kubernetes.png differ
diff --git a/public/icons/png/lufthansa-dark.png b/public/icons/png/lufthansa-dark.png
new file mode 100755
index 00000000..469a60cf
Binary files /dev/null and b/public/icons/png/lufthansa-dark.png differ
diff --git a/public/icons/png/lufthansa-light.png b/public/icons/png/lufthansa-light.png
new file mode 100755
index 00000000..dc74a69d
Binary files /dev/null and b/public/icons/png/lufthansa-light.png differ
diff --git a/public/icons/png/lufthansa.png b/public/icons/png/lufthansa.png
new file mode 100755
index 00000000..ed99a083
Binary files /dev/null and b/public/icons/png/lufthansa.png differ
diff --git a/public/icons/png/microsoft-access-2000-dark.png b/public/icons/png/microsoft-access-2000-dark.png
new file mode 100755
index 00000000..4b77fd2e
Binary files /dev/null and b/public/icons/png/microsoft-access-2000-dark.png differ
diff --git a/public/icons/png/microsoft-access-2000-light.png b/public/icons/png/microsoft-access-2000-light.png
new file mode 100755
index 00000000..d4bf2f51
Binary files /dev/null and b/public/icons/png/microsoft-access-2000-light.png differ
diff --git a/public/icons/png/microsoft-access-2000.png b/public/icons/png/microsoft-access-2000.png
new file mode 100755
index 00000000..41982b74
Binary files /dev/null and b/public/icons/png/microsoft-access-2000.png differ
diff --git a/public/icons/png/microsoft-access-2013-dark.png b/public/icons/png/microsoft-access-2013-dark.png
new file mode 100755
index 00000000..f5b482af
Binary files /dev/null and b/public/icons/png/microsoft-access-2013-dark.png differ
diff --git a/public/icons/png/microsoft-access-2013-light.png b/public/icons/png/microsoft-access-2013-light.png
new file mode 100755
index 00000000..f54ef76c
Binary files /dev/null and b/public/icons/png/microsoft-access-2013-light.png differ
diff --git a/public/icons/png/microsoft-access-2013.png b/public/icons/png/microsoft-access-2013.png
new file mode 100755
index 00000000..f17ffdad
Binary files /dev/null and b/public/icons/png/microsoft-access-2013.png differ
diff --git a/public/icons/png/microsoft-dark.png b/public/icons/png/microsoft-dark.png
index c732ad74..0392f953 100755
Binary files a/public/icons/png/microsoft-dark.png and b/public/icons/png/microsoft-dark.png differ
diff --git a/public/icons/png/microsoft-excel-2000-dark.png b/public/icons/png/microsoft-excel-2000-dark.png
new file mode 100755
index 00000000..b08e1716
Binary files /dev/null and b/public/icons/png/microsoft-excel-2000-dark.png differ
diff --git a/public/icons/png/microsoft-excel-2000-light.png b/public/icons/png/microsoft-excel-2000-light.png
new file mode 100755
index 00000000..0935961f
Binary files /dev/null and b/public/icons/png/microsoft-excel-2000-light.png differ
diff --git a/public/icons/png/microsoft-excel-2000.png b/public/icons/png/microsoft-excel-2000.png
new file mode 100755
index 00000000..447b3ea7
Binary files /dev/null and b/public/icons/png/microsoft-excel-2000.png differ
diff --git a/public/icons/png/microsoft-excel-2013-dark.png b/public/icons/png/microsoft-excel-2013-dark.png
new file mode 100755
index 00000000..0a0b3fb9
Binary files /dev/null and b/public/icons/png/microsoft-excel-2013-dark.png differ
diff --git a/public/icons/png/microsoft-excel-2013-light.png b/public/icons/png/microsoft-excel-2013-light.png
new file mode 100755
index 00000000..d6323bb5
Binary files /dev/null and b/public/icons/png/microsoft-excel-2013-light.png differ
diff --git a/public/icons/png/microsoft-excel-2013.png b/public/icons/png/microsoft-excel-2013.png
new file mode 100755
index 00000000..852598c1
Binary files /dev/null and b/public/icons/png/microsoft-excel-2013.png differ
diff --git a/public/icons/png/microsoft-excel-2018-dark.png b/public/icons/png/microsoft-excel-2018-dark.png
new file mode 100755
index 00000000..5367fbab
Binary files /dev/null and b/public/icons/png/microsoft-excel-2018-dark.png differ
diff --git a/public/icons/png/microsoft-excel-2018-light.png b/public/icons/png/microsoft-excel-2018-light.png
new file mode 100755
index 00000000..e8924ee2
Binary files /dev/null and b/public/icons/png/microsoft-excel-2018-light.png differ
diff --git a/public/icons/png/microsoft-excel-2018.png b/public/icons/png/microsoft-excel-2018.png
new file mode 100755
index 00000000..74933e46
Binary files /dev/null and b/public/icons/png/microsoft-excel-2018.png differ
diff --git a/public/icons/png/microsoft-excel-dark.png b/public/icons/png/microsoft-excel-dark.png
index 5367fbab..5c200a28 100755
Binary files a/public/icons/png/microsoft-excel-dark.png and b/public/icons/png/microsoft-excel-dark.png differ
diff --git a/public/icons/png/microsoft-excel-light.png b/public/icons/png/microsoft-excel-light.png
index e8924ee2..ee90781f 100755
Binary files a/public/icons/png/microsoft-excel-light.png and b/public/icons/png/microsoft-excel-light.png differ
diff --git a/public/icons/png/microsoft-excel.png b/public/icons/png/microsoft-excel.png
index 74933e46..066c3066 100755
Binary files a/public/icons/png/microsoft-excel.png and b/public/icons/png/microsoft-excel.png differ
diff --git a/public/icons/png/microsoft-light.png b/public/icons/png/microsoft-light.png
index cbb29c3c..6d3fe2d6 100755
Binary files a/public/icons/png/microsoft-light.png and b/public/icons/png/microsoft-light.png differ
diff --git a/public/icons/png/microsoft-onedrive-2018-dark.png b/public/icons/png/microsoft-onedrive-2018-dark.png
new file mode 100755
index 00000000..8481ed2b
Binary files /dev/null and b/public/icons/png/microsoft-onedrive-2018-dark.png differ
diff --git a/public/icons/png/microsoft-onedrive-2018-light.png b/public/icons/png/microsoft-onedrive-2018-light.png
new file mode 100755
index 00000000..7a6e1f5a
Binary files /dev/null and b/public/icons/png/microsoft-onedrive-2018-light.png differ
diff --git a/public/icons/png/microsoft-onedrive-2018.png b/public/icons/png/microsoft-onedrive-2018.png
new file mode 100755
index 00000000..43c22d45
Binary files /dev/null and b/public/icons/png/microsoft-onedrive-2018.png differ
diff --git a/public/icons/png/microsoft-onedrive-dark.png b/public/icons/png/microsoft-onedrive-dark.png
index 8481ed2b..d39f2a4b 100755
Binary files a/public/icons/png/microsoft-onedrive-dark.png and b/public/icons/png/microsoft-onedrive-dark.png differ
diff --git a/public/icons/png/microsoft-onedrive-light.png b/public/icons/png/microsoft-onedrive-light.png
index 7a6e1f5a..e2ef6f79 100755
Binary files a/public/icons/png/microsoft-onedrive-light.png and b/public/icons/png/microsoft-onedrive-light.png differ
diff --git a/public/icons/png/microsoft-onedrive.png b/public/icons/png/microsoft-onedrive.png
index 43c22d45..67c318bd 100755
Binary files a/public/icons/png/microsoft-onedrive.png and b/public/icons/png/microsoft-onedrive.png differ
diff --git a/public/icons/png/microsoft-onenote-2013-dark.png b/public/icons/png/microsoft-onenote-2013-dark.png
new file mode 100755
index 00000000..369a312b
Binary files /dev/null and b/public/icons/png/microsoft-onenote-2013-dark.png differ
diff --git a/public/icons/png/microsoft-onenote-2013-light.png b/public/icons/png/microsoft-onenote-2013-light.png
new file mode 100755
index 00000000..efb6a00c
Binary files /dev/null and b/public/icons/png/microsoft-onenote-2013-light.png differ
diff --git a/public/icons/png/microsoft-onenote-2013.png b/public/icons/png/microsoft-onenote-2013.png
new file mode 100755
index 00000000..d5064144
Binary files /dev/null and b/public/icons/png/microsoft-onenote-2013.png differ
diff --git a/public/icons/png/microsoft-onenote-2018-dark.png b/public/icons/png/microsoft-onenote-2018-dark.png
new file mode 100755
index 00000000..b657e572
Binary files /dev/null and b/public/icons/png/microsoft-onenote-2018-dark.png differ
diff --git a/public/icons/png/microsoft-onenote-2018-light.png b/public/icons/png/microsoft-onenote-2018-light.png
new file mode 100755
index 00000000..1ec1d5ae
Binary files /dev/null and b/public/icons/png/microsoft-onenote-2018-light.png differ
diff --git a/public/icons/png/microsoft-onenote-2018.png b/public/icons/png/microsoft-onenote-2018.png
new file mode 100755
index 00000000..394ea550
Binary files /dev/null and b/public/icons/png/microsoft-onenote-2018.png differ
diff --git a/public/icons/png/microsoft-onenote-dark.png b/public/icons/png/microsoft-onenote-dark.png
index b657e572..9f84d1d2 100755
Binary files a/public/icons/png/microsoft-onenote-dark.png and b/public/icons/png/microsoft-onenote-dark.png differ
diff --git a/public/icons/png/microsoft-onenote-light.png b/public/icons/png/microsoft-onenote-light.png
index 1ec1d5ae..11cd2293 100755
Binary files a/public/icons/png/microsoft-onenote-light.png and b/public/icons/png/microsoft-onenote-light.png differ
diff --git a/public/icons/png/microsoft-onenote.png b/public/icons/png/microsoft-onenote.png
index 394ea550..41340452 100755
Binary files a/public/icons/png/microsoft-onenote.png and b/public/icons/png/microsoft-onenote.png differ
diff --git a/public/icons/png/microsoft-outlook-2000-dark.png b/public/icons/png/microsoft-outlook-2000-dark.png
new file mode 100755
index 00000000..03993628
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2000-dark.png differ
diff --git a/public/icons/png/microsoft-outlook-2000-light.png b/public/icons/png/microsoft-outlook-2000-light.png
new file mode 100755
index 00000000..b20c0c03
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2000-light.png differ
diff --git a/public/icons/png/microsoft-outlook-2000.png b/public/icons/png/microsoft-outlook-2000.png
new file mode 100755
index 00000000..0f12e212
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2000.png differ
diff --git a/public/icons/png/microsoft-outlook-2013-dark.png b/public/icons/png/microsoft-outlook-2013-dark.png
new file mode 100755
index 00000000..01bb10f9
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2013-dark.png differ
diff --git a/public/icons/png/microsoft-outlook-2013-light.png b/public/icons/png/microsoft-outlook-2013-light.png
new file mode 100755
index 00000000..372349b3
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2013-light.png differ
diff --git a/public/icons/png/microsoft-outlook-2013.png b/public/icons/png/microsoft-outlook-2013.png
new file mode 100755
index 00000000..5b1eb868
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2013.png differ
diff --git a/public/icons/png/microsoft-outlook-2018-dark.png b/public/icons/png/microsoft-outlook-2018-dark.png
new file mode 100755
index 00000000..d02430c8
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2018-dark.png differ
diff --git a/public/icons/png/microsoft-outlook-2018-light.png b/public/icons/png/microsoft-outlook-2018-light.png
new file mode 100755
index 00000000..c093c9db
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2018-light.png differ
diff --git a/public/icons/png/microsoft-outlook-2018.png b/public/icons/png/microsoft-outlook-2018.png
new file mode 100755
index 00000000..207f82ee
Binary files /dev/null and b/public/icons/png/microsoft-outlook-2018.png differ
diff --git a/public/icons/png/microsoft-outlook-dark.png b/public/icons/png/microsoft-outlook-dark.png
index d02430c8..285b6d98 100755
Binary files a/public/icons/png/microsoft-outlook-dark.png and b/public/icons/png/microsoft-outlook-dark.png differ
diff --git a/public/icons/png/microsoft-outlook-light.png b/public/icons/png/microsoft-outlook-light.png
index c093c9db..f6a8ff22 100755
Binary files a/public/icons/png/microsoft-outlook-light.png and b/public/icons/png/microsoft-outlook-light.png differ
diff --git a/public/icons/png/microsoft-outlook.png b/public/icons/png/microsoft-outlook.png
index 207f82ee..268513c9 100755
Binary files a/public/icons/png/microsoft-outlook.png and b/public/icons/png/microsoft-outlook.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2000-dark.png b/public/icons/png/microsoft-powerpoint-2000-dark.png
new file mode 100755
index 00000000..68fbb721
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2000-dark.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2000-light.png b/public/icons/png/microsoft-powerpoint-2000-light.png
new file mode 100755
index 00000000..d452caa5
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2000-light.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2000.png b/public/icons/png/microsoft-powerpoint-2000.png
new file mode 100755
index 00000000..d02ac79a
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2000.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2013-dark.png b/public/icons/png/microsoft-powerpoint-2013-dark.png
new file mode 100755
index 00000000..029a2c35
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2013-dark.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2013-light.png b/public/icons/png/microsoft-powerpoint-2013-light.png
new file mode 100755
index 00000000..6bf209e0
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2013-light.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2013.png b/public/icons/png/microsoft-powerpoint-2013.png
new file mode 100755
index 00000000..28a794c4
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2013.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2018-dark.png b/public/icons/png/microsoft-powerpoint-2018-dark.png
new file mode 100755
index 00000000..cbf50cd0
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2018-dark.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2018-light.png b/public/icons/png/microsoft-powerpoint-2018-light.png
new file mode 100755
index 00000000..394e514d
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2018-light.png differ
diff --git a/public/icons/png/microsoft-powerpoint-2018.png b/public/icons/png/microsoft-powerpoint-2018.png
new file mode 100755
index 00000000..31bc387b
Binary files /dev/null and b/public/icons/png/microsoft-powerpoint-2018.png differ
diff --git a/public/icons/png/microsoft-powerpoint-dark.png b/public/icons/png/microsoft-powerpoint-dark.png
index cbf50cd0..0da4a6ad 100755
Binary files a/public/icons/png/microsoft-powerpoint-dark.png and b/public/icons/png/microsoft-powerpoint-dark.png differ
diff --git a/public/icons/png/microsoft-powerpoint-light.png b/public/icons/png/microsoft-powerpoint-light.png
index 394e514d..cbeda141 100755
Binary files a/public/icons/png/microsoft-powerpoint-light.png and b/public/icons/png/microsoft-powerpoint-light.png differ
diff --git a/public/icons/png/microsoft-powerpoint.png b/public/icons/png/microsoft-powerpoint.png
index 31bc387b..240bb8a6 100755
Binary files a/public/icons/png/microsoft-powerpoint.png and b/public/icons/png/microsoft-powerpoint.png differ
diff --git a/public/icons/png/microsoft-sharepoint-2013-dark.png b/public/icons/png/microsoft-sharepoint-2013-dark.png
new file mode 100755
index 00000000..2f7aacc0
Binary files /dev/null and b/public/icons/png/microsoft-sharepoint-2013-dark.png differ
diff --git a/public/icons/png/microsoft-sharepoint-2013-light.png b/public/icons/png/microsoft-sharepoint-2013-light.png
new file mode 100755
index 00000000..d2280cad
Binary files /dev/null and b/public/icons/png/microsoft-sharepoint-2013-light.png differ
diff --git a/public/icons/png/microsoft-sharepoint-2013.png b/public/icons/png/microsoft-sharepoint-2013.png
new file mode 100755
index 00000000..d9fda3f2
Binary files /dev/null and b/public/icons/png/microsoft-sharepoint-2013.png differ
diff --git a/public/icons/png/microsoft-teams-2016-dark.png b/public/icons/png/microsoft-teams-2016-dark.png
new file mode 100755
index 00000000..c523f6d3
Binary files /dev/null and b/public/icons/png/microsoft-teams-2016-dark.png differ
diff --git a/public/icons/png/microsoft-teams-2016-light.png b/public/icons/png/microsoft-teams-2016-light.png
new file mode 100755
index 00000000..d026b147
Binary files /dev/null and b/public/icons/png/microsoft-teams-2016-light.png differ
diff --git a/public/icons/png/microsoft-teams-2016.png b/public/icons/png/microsoft-teams-2016.png
new file mode 100755
index 00000000..7d4c5f9b
Binary files /dev/null and b/public/icons/png/microsoft-teams-2016.png differ
diff --git a/public/icons/png/microsoft-teams-2018-dark.png b/public/icons/png/microsoft-teams-2018-dark.png
new file mode 100755
index 00000000..71c22e52
Binary files /dev/null and b/public/icons/png/microsoft-teams-2018-dark.png differ
diff --git a/public/icons/png/microsoft-teams-2018-light.png b/public/icons/png/microsoft-teams-2018-light.png
new file mode 100755
index 00000000..c4348d5e
Binary files /dev/null and b/public/icons/png/microsoft-teams-2018-light.png differ
diff --git a/public/icons/png/microsoft-teams-2018.png b/public/icons/png/microsoft-teams-2018.png
new file mode 100755
index 00000000..323f5e9e
Binary files /dev/null and b/public/icons/png/microsoft-teams-2018.png differ
diff --git a/public/icons/png/microsoft-teams-dark.png b/public/icons/png/microsoft-teams-dark.png
index 71c22e52..f7cd5581 100755
Binary files a/public/icons/png/microsoft-teams-dark.png and b/public/icons/png/microsoft-teams-dark.png differ
diff --git a/public/icons/png/microsoft-teams-light.png b/public/icons/png/microsoft-teams-light.png
index c4348d5e..4a009894 100755
Binary files a/public/icons/png/microsoft-teams-light.png and b/public/icons/png/microsoft-teams-light.png differ
diff --git a/public/icons/png/microsoft-teams.png b/public/icons/png/microsoft-teams.png
index 323f5e9e..768b75b5 100755
Binary files a/public/icons/png/microsoft-teams.png and b/public/icons/png/microsoft-teams.png differ
diff --git a/public/icons/png/microsoft-word-2000-dark.png b/public/icons/png/microsoft-word-2000-dark.png
new file mode 100755
index 00000000..9bcb8346
Binary files /dev/null and b/public/icons/png/microsoft-word-2000-dark.png differ
diff --git a/public/icons/png/microsoft-word-2000-light.png b/public/icons/png/microsoft-word-2000-light.png
new file mode 100755
index 00000000..81052a72
Binary files /dev/null and b/public/icons/png/microsoft-word-2000-light.png differ
diff --git a/public/icons/png/microsoft-word-2000.png b/public/icons/png/microsoft-word-2000.png
new file mode 100755
index 00000000..3c3e979c
Binary files /dev/null and b/public/icons/png/microsoft-word-2000.png differ
diff --git a/public/icons/png/microsoft-word-2013-dark.png b/public/icons/png/microsoft-word-2013-dark.png
new file mode 100755
index 00000000..f60daffb
Binary files /dev/null and b/public/icons/png/microsoft-word-2013-dark.png differ
diff --git a/public/icons/png/microsoft-word-2013-light.png b/public/icons/png/microsoft-word-2013-light.png
new file mode 100755
index 00000000..265ff585
Binary files /dev/null and b/public/icons/png/microsoft-word-2013-light.png differ
diff --git a/public/icons/png/microsoft-word-2013.png b/public/icons/png/microsoft-word-2013.png
new file mode 100755
index 00000000..558a704a
Binary files /dev/null and b/public/icons/png/microsoft-word-2013.png differ
diff --git a/public/icons/png/microsoft-word-2018-dark.png b/public/icons/png/microsoft-word-2018-dark.png
new file mode 100755
index 00000000..0cab4294
Binary files /dev/null and b/public/icons/png/microsoft-word-2018-dark.png differ
diff --git a/public/icons/png/microsoft-word-2018-light.png b/public/icons/png/microsoft-word-2018-light.png
new file mode 100755
index 00000000..e5f8315c
Binary files /dev/null and b/public/icons/png/microsoft-word-2018-light.png differ
diff --git a/public/icons/png/microsoft-word-2018.png b/public/icons/png/microsoft-word-2018.png
new file mode 100755
index 00000000..f5004e79
Binary files /dev/null and b/public/icons/png/microsoft-word-2018.png differ
diff --git a/public/icons/png/microsoft-word-dark.png b/public/icons/png/microsoft-word-dark.png
index 0cab4294..fd758bfc 100755
Binary files a/public/icons/png/microsoft-word-dark.png and b/public/icons/png/microsoft-word-dark.png differ
diff --git a/public/icons/png/microsoft-word-light.png b/public/icons/png/microsoft-word-light.png
index e5f8315c..3432c9da 100755
Binary files a/public/icons/png/microsoft-word-light.png and b/public/icons/png/microsoft-word-light.png differ
diff --git a/public/icons/png/microsoft-word.png b/public/icons/png/microsoft-word.png
index f5004e79..08f6cc4a 100755
Binary files a/public/icons/png/microsoft-word.png and b/public/icons/png/microsoft-word.png differ
diff --git a/public/icons/png/miles-and-more-dark.png b/public/icons/png/miles-and-more-dark.png
new file mode 100755
index 00000000..d5da7a2d
Binary files /dev/null and b/public/icons/png/miles-and-more-dark.png differ
diff --git a/public/icons/png/miles-and-more-light.png b/public/icons/png/miles-and-more-light.png
new file mode 100755
index 00000000..cb1c1375
Binary files /dev/null and b/public/icons/png/miles-and-more-light.png differ
diff --git a/public/icons/png/miles-and-more.png b/public/icons/png/miles-and-more.png
new file mode 100755
index 00000000..c92300bf
Binary files /dev/null and b/public/icons/png/miles-and-more.png differ
diff --git a/public/icons/png/myip-dark.png b/public/icons/png/myip-dark.png
new file mode 100755
index 00000000..8b0d6da6
Binary files /dev/null and b/public/icons/png/myip-dark.png differ
diff --git a/public/icons/png/myip-light.png b/public/icons/png/myip-light.png
new file mode 100755
index 00000000..a303b856
Binary files /dev/null and b/public/icons/png/myip-light.png differ
diff --git a/public/icons/png/myip.png b/public/icons/png/myip.png
new file mode 100755
index 00000000..8b0d6da6
Binary files /dev/null and b/public/icons/png/myip.png differ
diff --git a/public/icons/png/nextexplorer-dark.png b/public/icons/png/nextexplorer-dark.png
new file mode 100755
index 00000000..f9f36144
Binary files /dev/null and b/public/icons/png/nextexplorer-dark.png differ
diff --git a/public/icons/png/nextexplorer-light.png b/public/icons/png/nextexplorer-light.png
new file mode 100755
index 00000000..b567a8ba
Binary files /dev/null and b/public/icons/png/nextexplorer-light.png differ
diff --git a/public/icons/png/nextexplorer.png b/public/icons/png/nextexplorer.png
new file mode 100755
index 00000000..cdc99dd8
Binary files /dev/null and b/public/icons/png/nextexplorer.png differ
diff --git a/public/icons/png/ontime-dark.png b/public/icons/png/ontime-dark.png
new file mode 100755
index 00000000..4e431b54
Binary files /dev/null and b/public/icons/png/ontime-dark.png differ
diff --git a/public/icons/png/ontime-light.png b/public/icons/png/ontime-light.png
new file mode 100755
index 00000000..da2aa535
Binary files /dev/null and b/public/icons/png/ontime-light.png differ
diff --git a/public/icons/png/ontime.png b/public/icons/png/ontime.png
new file mode 100755
index 00000000..436a6165
Binary files /dev/null and b/public/icons/png/ontime.png differ
diff --git a/public/icons/png/pequeroku-dark.png b/public/icons/png/pequeroku-dark.png
new file mode 100755
index 00000000..b4864b0b
Binary files /dev/null and b/public/icons/png/pequeroku-dark.png differ
diff --git a/public/icons/png/pequeroku-light.png b/public/icons/png/pequeroku-light.png
new file mode 100755
index 00000000..5753021e
Binary files /dev/null and b/public/icons/png/pequeroku-light.png differ
diff --git a/public/icons/png/pequeroku.png b/public/icons/png/pequeroku.png
new file mode 100755
index 00000000..f567c478
Binary files /dev/null and b/public/icons/png/pequeroku.png differ
diff --git a/public/icons/png/pigeonpod-dark.png b/public/icons/png/pigeonpod-dark.png
new file mode 100755
index 00000000..45e709f3
Binary files /dev/null and b/public/icons/png/pigeonpod-dark.png differ
diff --git a/public/icons/png/pigeonpod-light.png b/public/icons/png/pigeonpod-light.png
new file mode 100755
index 00000000..bc7bb098
Binary files /dev/null and b/public/icons/png/pigeonpod-light.png differ
diff --git a/public/icons/png/pigeonpod.png b/public/icons/png/pigeonpod.png
new file mode 100755
index 00000000..0014d287
Binary files /dev/null and b/public/icons/png/pigeonpod.png differ
diff --git a/public/icons/png/poznote-dark.png b/public/icons/png/poznote-dark.png
new file mode 100755
index 00000000..2d18f4b4
Binary files /dev/null and b/public/icons/png/poznote-dark.png differ
diff --git a/public/icons/png/poznote-light.png b/public/icons/png/poznote-light.png
new file mode 100755
index 00000000..e91505be
Binary files /dev/null and b/public/icons/png/poznote-light.png differ
diff --git a/public/icons/png/poznote.png b/public/icons/png/poznote.png
new file mode 100755
index 00000000..cb623e1c
Binary files /dev/null and b/public/icons/png/poznote.png differ
diff --git a/public/icons/png/private-captcha-dark.png b/public/icons/png/private-captcha-dark.png
new file mode 100755
index 00000000..c1ae7239
Binary files /dev/null and b/public/icons/png/private-captcha-dark.png differ
diff --git a/public/icons/png/private-captcha-light.png b/public/icons/png/private-captcha-light.png
new file mode 100755
index 00000000..ce8a770f
Binary files /dev/null and b/public/icons/png/private-captcha-light.png differ
diff --git a/public/icons/png/private-captcha.png b/public/icons/png/private-captcha.png
new file mode 100755
index 00000000..840c58a5
Binary files /dev/null and b/public/icons/png/private-captcha.png differ
diff --git a/public/icons/png/quetre-dark.png b/public/icons/png/quetre-dark.png
new file mode 100755
index 00000000..12b49a4e
Binary files /dev/null and b/public/icons/png/quetre-dark.png differ
diff --git a/public/icons/png/quetre-light.png b/public/icons/png/quetre-light.png
new file mode 100755
index 00000000..f17f0ac4
Binary files /dev/null and b/public/icons/png/quetre-light.png differ
diff --git a/public/icons/png/quetre.png b/public/icons/png/quetre.png
new file mode 100755
index 00000000..80c82a9e
Binary files /dev/null and b/public/icons/png/quetre.png differ
diff --git a/public/icons/png/quickbars-dark.png b/public/icons/png/quickbars-dark.png
new file mode 100755
index 00000000..4cd219e2
Binary files /dev/null and b/public/icons/png/quickbars-dark.png differ
diff --git a/public/icons/png/quickbars-light.png b/public/icons/png/quickbars-light.png
new file mode 100755
index 00000000..dc6904e6
Binary files /dev/null and b/public/icons/png/quickbars-light.png differ
diff --git a/public/icons/png/quickbars.png b/public/icons/png/quickbars.png
new file mode 100755
index 00000000..bfc3cbec
Binary files /dev/null and b/public/icons/png/quickbars.png differ
diff --git a/public/icons/png/seagate-dark.png b/public/icons/png/seagate-dark.png
new file mode 100755
index 00000000..4e43f951
Binary files /dev/null and b/public/icons/png/seagate-dark.png differ
diff --git a/public/icons/png/seagate-light.png b/public/icons/png/seagate-light.png
new file mode 100755
index 00000000..91b32a6c
Binary files /dev/null and b/public/icons/png/seagate-light.png differ
diff --git a/public/icons/png/seagate.png b/public/icons/png/seagate.png
new file mode 100755
index 00000000..ca937c45
Binary files /dev/null and b/public/icons/png/seagate.png differ
diff --git a/public/icons/png/secluso-dark.png b/public/icons/png/secluso-dark.png
new file mode 100755
index 00000000..0e45aa56
Binary files /dev/null and b/public/icons/png/secluso-dark.png differ
diff --git a/public/icons/png/secluso-light.png b/public/icons/png/secluso-light.png
new file mode 100755
index 00000000..e46c99f3
Binary files /dev/null and b/public/icons/png/secluso-light.png differ
diff --git a/public/icons/png/secluso.png b/public/icons/png/secluso.png
new file mode 100755
index 00000000..288682c2
Binary files /dev/null and b/public/icons/png/secluso.png differ
diff --git a/public/icons/png/shopware-dark.png b/public/icons/png/shopware-dark.png
new file mode 100755
index 00000000..5f4a3ad3
Binary files /dev/null and b/public/icons/png/shopware-dark.png differ
diff --git a/public/icons/png/shopware-light.png b/public/icons/png/shopware-light.png
new file mode 100755
index 00000000..5c193262
Binary files /dev/null and b/public/icons/png/shopware-light.png differ
diff --git a/public/icons/png/shopware.png b/public/icons/png/shopware.png
new file mode 100755
index 00000000..bbb65726
Binary files /dev/null and b/public/icons/png/shopware.png differ
diff --git a/public/icons/png/smartfox-dark.png b/public/icons/png/smartfox-dark.png
new file mode 100755
index 00000000..97d0ba9d
Binary files /dev/null and b/public/icons/png/smartfox-dark.png differ
diff --git a/public/icons/png/smartfox-light.png b/public/icons/png/smartfox-light.png
new file mode 100755
index 00000000..0514b7d5
Binary files /dev/null and b/public/icons/png/smartfox-light.png differ
diff --git a/public/icons/png/smartfox.png b/public/icons/png/smartfox.png
new file mode 100755
index 00000000..8633fd38
Binary files /dev/null and b/public/icons/png/smartfox.png differ
diff --git a/public/icons/png/sonobarr-dark.png b/public/icons/png/sonobarr-dark.png
new file mode 100755
index 00000000..01bf1a69
Binary files /dev/null and b/public/icons/png/sonobarr-dark.png differ
diff --git a/public/icons/png/sonobarr-light.png b/public/icons/png/sonobarr-light.png
new file mode 100755
index 00000000..f9db95c1
Binary files /dev/null and b/public/icons/png/sonobarr-light.png differ
diff --git a/public/icons/png/sonobarr.png b/public/icons/png/sonobarr.png
new file mode 100755
index 00000000..7f2e841f
Binary files /dev/null and b/public/icons/png/sonobarr.png differ
diff --git a/public/icons/png/stoat-dark.png b/public/icons/png/stoat-dark.png
new file mode 100755
index 00000000..8f325405
Binary files /dev/null and b/public/icons/png/stoat-dark.png differ
diff --git a/public/icons/png/stoat-light.png b/public/icons/png/stoat-light.png
new file mode 100755
index 00000000..473da117
Binary files /dev/null and b/public/icons/png/stoat-light.png differ
diff --git a/public/icons/png/stoat.png b/public/icons/png/stoat.png
new file mode 100755
index 00000000..5bcd4661
Binary files /dev/null and b/public/icons/png/stoat.png differ
diff --git a/public/icons/png/tasktrove-dark.png b/public/icons/png/tasktrove-dark.png
new file mode 100755
index 00000000..36d9003f
Binary files /dev/null and b/public/icons/png/tasktrove-dark.png differ
diff --git a/public/icons/png/tasktrove-light.png b/public/icons/png/tasktrove-light.png
new file mode 100755
index 00000000..fc83a2b6
Binary files /dev/null and b/public/icons/png/tasktrove-light.png differ
diff --git a/public/icons/png/tasktrove.png b/public/icons/png/tasktrove.png
new file mode 100755
index 00000000..cd5fcebc
Binary files /dev/null and b/public/icons/png/tasktrove.png differ
diff --git a/public/icons/png/termix-dark.png b/public/icons/png/termix-dark.png
index 49b3659e..34387e38 100755
Binary files a/public/icons/png/termix-dark.png and b/public/icons/png/termix-dark.png differ
diff --git a/public/icons/png/termix-light.png b/public/icons/png/termix-light.png
index 391b818d..96701e4d 100755
Binary files a/public/icons/png/termix-light.png and b/public/icons/png/termix-light.png differ
diff --git a/public/icons/png/termix.png b/public/icons/png/termix.png
index b5dd7d38..ab0698e9 100755
Binary files a/public/icons/png/termix.png and b/public/icons/png/termix.png differ
diff --git a/public/icons/png/tiny-tiny-rss-dark.png b/public/icons/png/tiny-tiny-rss-dark.png
new file mode 100755
index 00000000..929656fd
Binary files /dev/null and b/public/icons/png/tiny-tiny-rss-dark.png differ
diff --git a/public/icons/png/tiny-tiny-rss-light.png b/public/icons/png/tiny-tiny-rss-light.png
new file mode 100755
index 00000000..5525fc23
Binary files /dev/null and b/public/icons/png/tiny-tiny-rss-light.png differ
diff --git a/public/icons/png/tiny-tiny-rss.png b/public/icons/png/tiny-tiny-rss.png
index ac1146be..69005902 100755
Binary files a/public/icons/png/tiny-tiny-rss.png and b/public/icons/png/tiny-tiny-rss.png differ
diff --git a/public/icons/png/toodoom-dark.png b/public/icons/png/toodoom-dark.png
new file mode 100755
index 00000000..c2c533ce
Binary files /dev/null and b/public/icons/png/toodoom-dark.png differ
diff --git a/public/icons/png/toodoom-light.png b/public/icons/png/toodoom-light.png
new file mode 100755
index 00000000..cf4eefee
Binary files /dev/null and b/public/icons/png/toodoom-light.png differ
diff --git a/public/icons/png/toodoom.png b/public/icons/png/toodoom.png
new file mode 100755
index 00000000..6da80684
Binary files /dev/null and b/public/icons/png/toodoom.png differ
diff --git a/public/icons/png/tubetimeout-dark.png b/public/icons/png/tubetimeout-dark.png
new file mode 100755
index 00000000..2024180d
Binary files /dev/null and b/public/icons/png/tubetimeout-dark.png differ
diff --git a/public/icons/png/tubetimeout-light.png b/public/icons/png/tubetimeout-light.png
new file mode 100755
index 00000000..25f1c52f
Binary files /dev/null and b/public/icons/png/tubetimeout-light.png differ
diff --git a/public/icons/png/tubetimeout.png b/public/icons/png/tubetimeout.png
new file mode 100755
index 00000000..3f7704d0
Binary files /dev/null and b/public/icons/png/tubetimeout.png differ
diff --git a/public/icons/png/velld-dark.png b/public/icons/png/velld-dark.png
new file mode 100755
index 00000000..3baf0c35
Binary files /dev/null and b/public/icons/png/velld-dark.png differ
diff --git a/public/icons/png/velld-light.png b/public/icons/png/velld-light.png
new file mode 100755
index 00000000..0cb2beba
Binary files /dev/null and b/public/icons/png/velld-light.png differ
diff --git a/public/icons/png/velld.png b/public/icons/png/velld.png
new file mode 100755
index 00000000..8f629c1f
Binary files /dev/null and b/public/icons/png/velld.png differ
diff --git a/public/icons/png/vertigo-comics-dark.png b/public/icons/png/vertigo-comics-dark.png
new file mode 100755
index 00000000..53d8b5f2
Binary files /dev/null and b/public/icons/png/vertigo-comics-dark.png differ
diff --git a/public/icons/png/vertigo-comics-light.png b/public/icons/png/vertigo-comics-light.png
new file mode 100755
index 00000000..a4950acd
Binary files /dev/null and b/public/icons/png/vertigo-comics-light.png differ
diff --git a/public/icons/png/vertigo-comics.png b/public/icons/png/vertigo-comics.png
new file mode 100755
index 00000000..36abddf1
Binary files /dev/null and b/public/icons/png/vertigo-comics.png differ
diff --git a/public/icons/png/vmware-esx-dark.png b/public/icons/png/vmware-esx-dark.png
new file mode 100755
index 00000000..e4834990
Binary files /dev/null and b/public/icons/png/vmware-esx-dark.png differ
diff --git a/public/icons/png/vmware-esx-light.png b/public/icons/png/vmware-esx-light.png
new file mode 100755
index 00000000..a39c1dbc
Binary files /dev/null and b/public/icons/png/vmware-esx-light.png differ
diff --git a/public/icons/png/vmware-esx.png b/public/icons/png/vmware-esx.png
new file mode 100755
index 00000000..6802518a
Binary files /dev/null and b/public/icons/png/vmware-esx.png differ
diff --git a/public/icons/png/whaledeck.png b/public/icons/png/whaledeck.png
new file mode 100755
index 00000000..21f2634c
Binary files /dev/null and b/public/icons/png/whaledeck.png differ
diff --git a/public/icons/png/zorin-os-dark.png b/public/icons/png/zorin-os-dark.png
new file mode 100755
index 00000000..04a3a5da
Binary files /dev/null and b/public/icons/png/zorin-os-dark.png differ
diff --git a/public/icons/png/zorin-os-light.png b/public/icons/png/zorin-os-light.png
new file mode 100755
index 00000000..a3d4a2f4
Binary files /dev/null and b/public/icons/png/zorin-os-light.png differ
diff --git a/public/icons/png/zorin-os.png b/public/icons/png/zorin-os.png
new file mode 100755
index 00000000..62ab32af
Binary files /dev/null and b/public/icons/png/zorin-os.png differ
diff --git a/public/icons/svg/aiostreams-dark.svg b/public/icons/svg/aiostreams-dark.svg
new file mode 100755
index 00000000..6486ab56
--- /dev/null
+++ b/public/icons/svg/aiostreams-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/aiostreams-light.svg b/public/icons/svg/aiostreams-light.svg
new file mode 100755
index 00000000..ae0e21e3
--- /dev/null
+++ b/public/icons/svg/aiostreams-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/aiostreams.svg b/public/icons/svg/aiostreams.svg
new file mode 100755
index 00000000..6486ab56
--- /dev/null
+++ b/public/icons/svg/aiostreams.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/apple-tv-dark.svg b/public/icons/svg/apple-tv-dark.svg
new file mode 100755
index 00000000..f330eef7
--- /dev/null
+++ b/public/icons/svg/apple-tv-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/apple-tv-light.svg b/public/icons/svg/apple-tv-light.svg
new file mode 100755
index 00000000..3ff27c76
--- /dev/null
+++ b/public/icons/svg/apple-tv-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/apple-tv-plus-dark.svg b/public/icons/svg/apple-tv-plus-dark.svg
deleted file mode 100755
index 925ce477..00000000
--- a/public/icons/svg/apple-tv-plus-dark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/icons/svg/apple-tv-plus-light.svg b/public/icons/svg/apple-tv-plus-light.svg
deleted file mode 100755
index a08015b9..00000000
--- a/public/icons/svg/apple-tv-plus-light.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/icons/svg/apple-tv-plus.svg b/public/icons/svg/apple-tv-plus.svg
deleted file mode 100755
index 925ce477..00000000
--- a/public/icons/svg/apple-tv-plus.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/icons/svg/apple-tv.svg b/public/icons/svg/apple-tv.svg
new file mode 100755
index 00000000..f330eef7
--- /dev/null
+++ b/public/icons/svg/apple-tv.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/audiodeck-dark.svg b/public/icons/svg/audiodeck-dark.svg
new file mode 100755
index 00000000..7c29616d
--- /dev/null
+++ b/public/icons/svg/audiodeck-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/audiodeck-light.svg b/public/icons/svg/audiodeck-light.svg
new file mode 100755
index 00000000..5b802e77
--- /dev/null
+++ b/public/icons/svg/audiodeck-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/audiodeck.svg b/public/icons/svg/audiodeck.svg
new file mode 100755
index 00000000..f61a6327
--- /dev/null
+++ b/public/icons/svg/audiodeck.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/bentopdf-dark.svg b/public/icons/svg/bentopdf-dark.svg
new file mode 100755
index 00000000..432d3808
--- /dev/null
+++ b/public/icons/svg/bentopdf-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/bentopdf-light.svg b/public/icons/svg/bentopdf-light.svg
new file mode 100755
index 00000000..8f8bc907
--- /dev/null
+++ b/public/icons/svg/bentopdf-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/bentopdf.svg b/public/icons/svg/bentopdf.svg
new file mode 100755
index 00000000..ed693e37
--- /dev/null
+++ b/public/icons/svg/bentopdf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/cookcli-dark.svg b/public/icons/svg/cookcli-dark.svg
new file mode 100755
index 00000000..4df21238
--- /dev/null
+++ b/public/icons/svg/cookcli-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/cookcli-light.svg b/public/icons/svg/cookcli-light.svg
new file mode 100755
index 00000000..26e78d14
--- /dev/null
+++ b/public/icons/svg/cookcli-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/cookcli.svg b/public/icons/svg/cookcli.svg
new file mode 100755
index 00000000..0f13c9a8
--- /dev/null
+++ b/public/icons/svg/cookcli.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/crosswatch-dark.svg b/public/icons/svg/crosswatch-dark.svg
new file mode 100755
index 00000000..5954e4a2
--- /dev/null
+++ b/public/icons/svg/crosswatch-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/crosswatch-light.svg b/public/icons/svg/crosswatch-light.svg
new file mode 100755
index 00000000..db950d84
--- /dev/null
+++ b/public/icons/svg/crosswatch-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/crosswatch.svg b/public/icons/svg/crosswatch.svg
new file mode 100755
index 00000000..84f7ed00
--- /dev/null
+++ b/public/icons/svg/crosswatch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/dispatcharr-dark.svg b/public/icons/svg/dispatcharr-dark.svg
new file mode 100755
index 00000000..91357d73
--- /dev/null
+++ b/public/icons/svg/dispatcharr-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/dispatcharr-light.svg b/public/icons/svg/dispatcharr-light.svg
new file mode 100755
index 00000000..44af49bd
--- /dev/null
+++ b/public/icons/svg/dispatcharr-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/dispatcharr.svg b/public/icons/svg/dispatcharr.svg
new file mode 100755
index 00000000..16b45622
--- /dev/null
+++ b/public/icons/svg/dispatcharr.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/file-portal-dark.svg b/public/icons/svg/file-portal-dark.svg
new file mode 100755
index 00000000..ba18846a
--- /dev/null
+++ b/public/icons/svg/file-portal-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/file-portal-light.svg b/public/icons/svg/file-portal-light.svg
new file mode 100755
index 00000000..6488a3ac
--- /dev/null
+++ b/public/icons/svg/file-portal-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/file-portal.svg b/public/icons/svg/file-portal.svg
new file mode 100755
index 00000000..e07dd74c
--- /dev/null
+++ b/public/icons/svg/file-portal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/file-wizard-dark.svg b/public/icons/svg/file-wizard-dark.svg
new file mode 100755
index 00000000..559825f6
--- /dev/null
+++ b/public/icons/svg/file-wizard-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/file-wizard-light.svg b/public/icons/svg/file-wizard-light.svg
new file mode 100755
index 00000000..97df4bb6
--- /dev/null
+++ b/public/icons/svg/file-wizard-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/file-wizard.svg b/public/icons/svg/file-wizard.svg
new file mode 100755
index 00000000..559825f6
--- /dev/null
+++ b/public/icons/svg/file-wizard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/folding-home-dark.svg b/public/icons/svg/folding-home-dark.svg
new file mode 100755
index 00000000..f695c1c6
--- /dev/null
+++ b/public/icons/svg/folding-home-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/folding-home-light.svg b/public/icons/svg/folding-home-light.svg
new file mode 100755
index 00000000..e1ab2d6d
--- /dev/null
+++ b/public/icons/svg/folding-home-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/folding-home.svg b/public/icons/svg/folding-home.svg
new file mode 100755
index 00000000..168b9d8d
--- /dev/null
+++ b/public/icons/svg/folding-home.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/gdms-dark.svg b/public/icons/svg/gdms-dark.svg
new file mode 100755
index 00000000..4c116915
--- /dev/null
+++ b/public/icons/svg/gdms-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/gdms-light.svg b/public/icons/svg/gdms-light.svg
new file mode 100755
index 00000000..86d22de7
--- /dev/null
+++ b/public/icons/svg/gdms-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/gdms.svg b/public/icons/svg/gdms.svg
new file mode 100755
index 00000000..7e43ff6d
--- /dev/null
+++ b/public/icons/svg/gdms.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/home-information-dark.svg b/public/icons/svg/home-information-dark.svg
new file mode 100755
index 00000000..5dc99bfd
--- /dev/null
+++ b/public/icons/svg/home-information-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/home-information-light.svg b/public/icons/svg/home-information-light.svg
new file mode 100755
index 00000000..5561c708
--- /dev/null
+++ b/public/icons/svg/home-information-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/home-information.svg b/public/icons/svg/home-information.svg
new file mode 100755
index 00000000..0d13263b
--- /dev/null
+++ b/public/icons/svg/home-information.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/ironcalc-dark.svg b/public/icons/svg/ironcalc-dark.svg
new file mode 100755
index 00000000..0331eb78
--- /dev/null
+++ b/public/icons/svg/ironcalc-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/ironcalc-light.svg b/public/icons/svg/ironcalc-light.svg
new file mode 100755
index 00000000..9fa4628f
--- /dev/null
+++ b/public/icons/svg/ironcalc-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/ironcalc.svg b/public/icons/svg/ironcalc.svg
new file mode 100755
index 00000000..442ab458
--- /dev/null
+++ b/public/icons/svg/ironcalc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/jfa-go-dark.svg b/public/icons/svg/jfa-go-dark.svg
new file mode 100755
index 00000000..d88baa7f
--- /dev/null
+++ b/public/icons/svg/jfa-go-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/jfa-go-light.svg b/public/icons/svg/jfa-go-light.svg
new file mode 100755
index 00000000..fa5995d2
--- /dev/null
+++ b/public/icons/svg/jfa-go-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/jfa-go.svg b/public/icons/svg/jfa-go.svg
new file mode 100755
index 00000000..5bccf1cc
--- /dev/null
+++ b/public/icons/svg/jfa-go.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/kite-kubernetes-dark.svg b/public/icons/svg/kite-kubernetes-dark.svg
new file mode 100755
index 00000000..d5a89826
--- /dev/null
+++ b/public/icons/svg/kite-kubernetes-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/kite-kubernetes-light.svg b/public/icons/svg/kite-kubernetes-light.svg
new file mode 100755
index 00000000..58e33374
--- /dev/null
+++ b/public/icons/svg/kite-kubernetes-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/kite-kubernetes.svg b/public/icons/svg/kite-kubernetes.svg
new file mode 100755
index 00000000..2ae101e6
--- /dev/null
+++ b/public/icons/svg/kite-kubernetes.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/lufthansa-dark.svg b/public/icons/svg/lufthansa-dark.svg
new file mode 100755
index 00000000..ee513ae6
--- /dev/null
+++ b/public/icons/svg/lufthansa-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/lufthansa-light.svg b/public/icons/svg/lufthansa-light.svg
new file mode 100755
index 00000000..a6c89488
--- /dev/null
+++ b/public/icons/svg/lufthansa-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/lufthansa.svg b/public/icons/svg/lufthansa.svg
new file mode 100755
index 00000000..b01e31ee
--- /dev/null
+++ b/public/icons/svg/lufthansa.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-access-2000-dark.svg b/public/icons/svg/microsoft-access-2000-dark.svg
new file mode 100755
index 00000000..01f4f7e4
--- /dev/null
+++ b/public/icons/svg/microsoft-access-2000-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-access-2000-light.svg b/public/icons/svg/microsoft-access-2000-light.svg
new file mode 100755
index 00000000..4db22130
--- /dev/null
+++ b/public/icons/svg/microsoft-access-2000-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-access-2000.svg b/public/icons/svg/microsoft-access-2000.svg
new file mode 100755
index 00000000..8fac3c9f
--- /dev/null
+++ b/public/icons/svg/microsoft-access-2000.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-access-2013-dark.svg b/public/icons/svg/microsoft-access-2013-dark.svg
new file mode 100755
index 00000000..73f3fb8e
--- /dev/null
+++ b/public/icons/svg/microsoft-access-2013-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-access-2013-light.svg b/public/icons/svg/microsoft-access-2013-light.svg
new file mode 100755
index 00000000..3f5577a4
--- /dev/null
+++ b/public/icons/svg/microsoft-access-2013-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-access-2013.svg b/public/icons/svg/microsoft-access-2013.svg
new file mode 100755
index 00000000..1f239565
--- /dev/null
+++ b/public/icons/svg/microsoft-access-2013.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-dark.svg b/public/icons/svg/microsoft-dark.svg
index 599b4b46..c680d4ec 100755
--- a/public/icons/svg/microsoft-dark.svg
+++ b/public/icons/svg/microsoft-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2000-dark.svg b/public/icons/svg/microsoft-excel-2000-dark.svg
new file mode 100755
index 00000000..1b3c871a
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2000-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2000-light.svg b/public/icons/svg/microsoft-excel-2000-light.svg
new file mode 100755
index 00000000..cc38ec9b
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2000-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2000.svg b/public/icons/svg/microsoft-excel-2000.svg
new file mode 100755
index 00000000..8f88e2a0
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2000.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2013-dark.svg b/public/icons/svg/microsoft-excel-2013-dark.svg
new file mode 100755
index 00000000..fd9b08ab
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2013-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2013-light.svg b/public/icons/svg/microsoft-excel-2013-light.svg
new file mode 100755
index 00000000..1009159b
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2013-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2013.svg b/public/icons/svg/microsoft-excel-2013.svg
new file mode 100755
index 00000000..41b6c8d3
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2013.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2018-dark.svg b/public/icons/svg/microsoft-excel-2018-dark.svg
new file mode 100755
index 00000000..c44ee960
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2018-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2018-light.svg b/public/icons/svg/microsoft-excel-2018-light.svg
new file mode 100755
index 00000000..fa232052
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2018-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-2018.svg b/public/icons/svg/microsoft-excel-2018.svg
new file mode 100755
index 00000000..c2a813f0
--- /dev/null
+++ b/public/icons/svg/microsoft-excel-2018.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-dark.svg b/public/icons/svg/microsoft-excel-dark.svg
index c44ee960..8363e5b7 100755
--- a/public/icons/svg/microsoft-excel-dark.svg
+++ b/public/icons/svg/microsoft-excel-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel-light.svg b/public/icons/svg/microsoft-excel-light.svg
index fa232052..ee0b2d3b 100755
--- a/public/icons/svg/microsoft-excel-light.svg
+++ b/public/icons/svg/microsoft-excel-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-excel.svg b/public/icons/svg/microsoft-excel.svg
index c2a813f0..1c77f80a 100755
--- a/public/icons/svg/microsoft-excel.svg
+++ b/public/icons/svg/microsoft-excel.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-light.svg b/public/icons/svg/microsoft-light.svg
index ff58eb93..66ad76fa 100755
--- a/public/icons/svg/microsoft-light.svg
+++ b/public/icons/svg/microsoft-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onedrive-2018-dark.svg b/public/icons/svg/microsoft-onedrive-2018-dark.svg
new file mode 100755
index 00000000..236b3c4f
--- /dev/null
+++ b/public/icons/svg/microsoft-onedrive-2018-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onedrive-2018-light.svg b/public/icons/svg/microsoft-onedrive-2018-light.svg
new file mode 100755
index 00000000..c36d9efc
--- /dev/null
+++ b/public/icons/svg/microsoft-onedrive-2018-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onedrive-2018.svg b/public/icons/svg/microsoft-onedrive-2018.svg
new file mode 100755
index 00000000..91ba51bc
--- /dev/null
+++ b/public/icons/svg/microsoft-onedrive-2018.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onedrive-dark.svg b/public/icons/svg/microsoft-onedrive-dark.svg
index 236b3c4f..519abdd1 100755
--- a/public/icons/svg/microsoft-onedrive-dark.svg
+++ b/public/icons/svg/microsoft-onedrive-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onedrive-light.svg b/public/icons/svg/microsoft-onedrive-light.svg
index c36d9efc..621e851d 100755
--- a/public/icons/svg/microsoft-onedrive-light.svg
+++ b/public/icons/svg/microsoft-onedrive-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onedrive.svg b/public/icons/svg/microsoft-onedrive.svg
index 91ba51bc..174334f4 100755
--- a/public/icons/svg/microsoft-onedrive.svg
+++ b/public/icons/svg/microsoft-onedrive.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote-2013-dark.svg b/public/icons/svg/microsoft-onenote-2013-dark.svg
new file mode 100755
index 00000000..ca58c047
--- /dev/null
+++ b/public/icons/svg/microsoft-onenote-2013-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote-2013-light.svg b/public/icons/svg/microsoft-onenote-2013-light.svg
new file mode 100755
index 00000000..8d3c015e
--- /dev/null
+++ b/public/icons/svg/microsoft-onenote-2013-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote-2013.svg b/public/icons/svg/microsoft-onenote-2013.svg
new file mode 100755
index 00000000..f700384b
--- /dev/null
+++ b/public/icons/svg/microsoft-onenote-2013.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote-2018-dark.svg b/public/icons/svg/microsoft-onenote-2018-dark.svg
new file mode 100755
index 00000000..acf964a9
--- /dev/null
+++ b/public/icons/svg/microsoft-onenote-2018-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote-2018-light.svg b/public/icons/svg/microsoft-onenote-2018-light.svg
new file mode 100755
index 00000000..95301063
--- /dev/null
+++ b/public/icons/svg/microsoft-onenote-2018-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote-2018.svg b/public/icons/svg/microsoft-onenote-2018.svg
new file mode 100755
index 00000000..59a100ff
--- /dev/null
+++ b/public/icons/svg/microsoft-onenote-2018.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote-dark.svg b/public/icons/svg/microsoft-onenote-dark.svg
index acf964a9..531611d2 100755
--- a/public/icons/svg/microsoft-onenote-dark.svg
+++ b/public/icons/svg/microsoft-onenote-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote-light.svg b/public/icons/svg/microsoft-onenote-light.svg
index 95301063..678bfda6 100755
--- a/public/icons/svg/microsoft-onenote-light.svg
+++ b/public/icons/svg/microsoft-onenote-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-onenote.svg b/public/icons/svg/microsoft-onenote.svg
index 59a100ff..a59715e2 100755
--- a/public/icons/svg/microsoft-onenote.svg
+++ b/public/icons/svg/microsoft-onenote.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2000-dark.svg b/public/icons/svg/microsoft-outlook-2000-dark.svg
new file mode 100755
index 00000000..aad8ecb7
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2000-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2000-light.svg b/public/icons/svg/microsoft-outlook-2000-light.svg
new file mode 100755
index 00000000..4ce9866a
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2000-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2000.svg b/public/icons/svg/microsoft-outlook-2000.svg
new file mode 100755
index 00000000..85e65c99
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2000.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2013-dark.svg b/public/icons/svg/microsoft-outlook-2013-dark.svg
new file mode 100755
index 00000000..37395b2f
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2013-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2013-light.svg b/public/icons/svg/microsoft-outlook-2013-light.svg
new file mode 100755
index 00000000..284a3a83
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2013-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2013.svg b/public/icons/svg/microsoft-outlook-2013.svg
new file mode 100755
index 00000000..da65701a
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2013.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2018-dark.svg b/public/icons/svg/microsoft-outlook-2018-dark.svg
new file mode 100755
index 00000000..bc8cb33f
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2018-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2018-light.svg b/public/icons/svg/microsoft-outlook-2018-light.svg
new file mode 100755
index 00000000..e4971f42
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2018-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-2018.svg b/public/icons/svg/microsoft-outlook-2018.svg
new file mode 100755
index 00000000..654f8abc
--- /dev/null
+++ b/public/icons/svg/microsoft-outlook-2018.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-dark.svg b/public/icons/svg/microsoft-outlook-dark.svg
index bc8cb33f..35a65254 100755
--- a/public/icons/svg/microsoft-outlook-dark.svg
+++ b/public/icons/svg/microsoft-outlook-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook-light.svg b/public/icons/svg/microsoft-outlook-light.svg
index e4971f42..7a08a001 100755
--- a/public/icons/svg/microsoft-outlook-light.svg
+++ b/public/icons/svg/microsoft-outlook-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-outlook.svg b/public/icons/svg/microsoft-outlook.svg
index 654f8abc..0116de66 100755
--- a/public/icons/svg/microsoft-outlook.svg
+++ b/public/icons/svg/microsoft-outlook.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2000-dark.svg b/public/icons/svg/microsoft-powerpoint-2000-dark.svg
new file mode 100755
index 00000000..52047417
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2000-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2000-light.svg b/public/icons/svg/microsoft-powerpoint-2000-light.svg
new file mode 100755
index 00000000..87fc4c4c
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2000-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2000.svg b/public/icons/svg/microsoft-powerpoint-2000.svg
new file mode 100755
index 00000000..5195cd04
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2000.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2013-dark.svg b/public/icons/svg/microsoft-powerpoint-2013-dark.svg
new file mode 100755
index 00000000..a9868271
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2013-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2013-light.svg b/public/icons/svg/microsoft-powerpoint-2013-light.svg
new file mode 100755
index 00000000..6f16b295
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2013-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2013.svg b/public/icons/svg/microsoft-powerpoint-2013.svg
new file mode 100755
index 00000000..368ac8d1
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2013.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2018-dark.svg b/public/icons/svg/microsoft-powerpoint-2018-dark.svg
new file mode 100755
index 00000000..e96f7e2c
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2018-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2018-light.svg b/public/icons/svg/microsoft-powerpoint-2018-light.svg
new file mode 100755
index 00000000..c21aa697
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2018-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-2018.svg b/public/icons/svg/microsoft-powerpoint-2018.svg
new file mode 100755
index 00000000..1ace4a0f
--- /dev/null
+++ b/public/icons/svg/microsoft-powerpoint-2018.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-dark.svg b/public/icons/svg/microsoft-powerpoint-dark.svg
index e96f7e2c..06458894 100755
--- a/public/icons/svg/microsoft-powerpoint-dark.svg
+++ b/public/icons/svg/microsoft-powerpoint-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint-light.svg b/public/icons/svg/microsoft-powerpoint-light.svg
index c21aa697..48efdda1 100755
--- a/public/icons/svg/microsoft-powerpoint-light.svg
+++ b/public/icons/svg/microsoft-powerpoint-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-powerpoint.svg b/public/icons/svg/microsoft-powerpoint.svg
index 1ace4a0f..511296c0 100755
--- a/public/icons/svg/microsoft-powerpoint.svg
+++ b/public/icons/svg/microsoft-powerpoint.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-sharepoint-2013-dark.svg b/public/icons/svg/microsoft-sharepoint-2013-dark.svg
new file mode 100755
index 00000000..e2b7ae9f
--- /dev/null
+++ b/public/icons/svg/microsoft-sharepoint-2013-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-sharepoint-2013-light.svg b/public/icons/svg/microsoft-sharepoint-2013-light.svg
new file mode 100755
index 00000000..d6789885
--- /dev/null
+++ b/public/icons/svg/microsoft-sharepoint-2013-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-sharepoint-2013.svg b/public/icons/svg/microsoft-sharepoint-2013.svg
new file mode 100755
index 00000000..15c0443d
--- /dev/null
+++ b/public/icons/svg/microsoft-sharepoint-2013.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams-2016-dark.svg b/public/icons/svg/microsoft-teams-2016-dark.svg
new file mode 100755
index 00000000..e8fadafe
--- /dev/null
+++ b/public/icons/svg/microsoft-teams-2016-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams-2016-light.svg b/public/icons/svg/microsoft-teams-2016-light.svg
new file mode 100755
index 00000000..26d8f7ad
--- /dev/null
+++ b/public/icons/svg/microsoft-teams-2016-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams-2016.svg b/public/icons/svg/microsoft-teams-2016.svg
new file mode 100755
index 00000000..7ad867a4
--- /dev/null
+++ b/public/icons/svg/microsoft-teams-2016.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams-2018-dark.svg b/public/icons/svg/microsoft-teams-2018-dark.svg
new file mode 100755
index 00000000..d694f66a
--- /dev/null
+++ b/public/icons/svg/microsoft-teams-2018-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams-2018-light.svg b/public/icons/svg/microsoft-teams-2018-light.svg
new file mode 100755
index 00000000..5a8562bd
--- /dev/null
+++ b/public/icons/svg/microsoft-teams-2018-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams-2018.svg b/public/icons/svg/microsoft-teams-2018.svg
new file mode 100755
index 00000000..ef0fa7d7
--- /dev/null
+++ b/public/icons/svg/microsoft-teams-2018.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams-dark.svg b/public/icons/svg/microsoft-teams-dark.svg
index d694f66a..a933c8c9 100755
--- a/public/icons/svg/microsoft-teams-dark.svg
+++ b/public/icons/svg/microsoft-teams-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams-light.svg b/public/icons/svg/microsoft-teams-light.svg
index 5a8562bd..d130829b 100755
--- a/public/icons/svg/microsoft-teams-light.svg
+++ b/public/icons/svg/microsoft-teams-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-teams.svg b/public/icons/svg/microsoft-teams.svg
index ef0fa7d7..41665e83 100755
--- a/public/icons/svg/microsoft-teams.svg
+++ b/public/icons/svg/microsoft-teams.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2000-dark.svg b/public/icons/svg/microsoft-word-2000-dark.svg
new file mode 100755
index 00000000..45ebb8c0
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2000-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2000-light.svg b/public/icons/svg/microsoft-word-2000-light.svg
new file mode 100755
index 00000000..ad0fcdc4
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2000-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2000.svg b/public/icons/svg/microsoft-word-2000.svg
new file mode 100755
index 00000000..56176b5c
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2000.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2013-dark.svg b/public/icons/svg/microsoft-word-2013-dark.svg
new file mode 100755
index 00000000..64a18712
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2013-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2013-light.svg b/public/icons/svg/microsoft-word-2013-light.svg
new file mode 100755
index 00000000..43120150
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2013-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2013.svg b/public/icons/svg/microsoft-word-2013.svg
new file mode 100755
index 00000000..da38f44c
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2013.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2018-dark.svg b/public/icons/svg/microsoft-word-2018-dark.svg
new file mode 100755
index 00000000..d9c07dd6
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2018-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2018-light.svg b/public/icons/svg/microsoft-word-2018-light.svg
new file mode 100755
index 00000000..464a85bf
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2018-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-2018.svg b/public/icons/svg/microsoft-word-2018.svg
new file mode 100755
index 00000000..5d0a2b62
--- /dev/null
+++ b/public/icons/svg/microsoft-word-2018.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-dark.svg b/public/icons/svg/microsoft-word-dark.svg
index d9c07dd6..3b68014c 100755
--- a/public/icons/svg/microsoft-word-dark.svg
+++ b/public/icons/svg/microsoft-word-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word-light.svg b/public/icons/svg/microsoft-word-light.svg
index 464a85bf..cd16e4e4 100755
--- a/public/icons/svg/microsoft-word-light.svg
+++ b/public/icons/svg/microsoft-word-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/microsoft-word.svg b/public/icons/svg/microsoft-word.svg
index 5d0a2b62..787cb68a 100755
--- a/public/icons/svg/microsoft-word.svg
+++ b/public/icons/svg/microsoft-word.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/miles-and-more-dark.svg b/public/icons/svg/miles-and-more-dark.svg
new file mode 100755
index 00000000..384ed49a
--- /dev/null
+++ b/public/icons/svg/miles-and-more-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/miles-and-more-light.svg b/public/icons/svg/miles-and-more-light.svg
new file mode 100755
index 00000000..9dc074e4
--- /dev/null
+++ b/public/icons/svg/miles-and-more-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/miles-and-more.svg b/public/icons/svg/miles-and-more.svg
new file mode 100755
index 00000000..ea57b915
--- /dev/null
+++ b/public/icons/svg/miles-and-more.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/myip-dark.svg b/public/icons/svg/myip-dark.svg
new file mode 100755
index 00000000..ad289667
--- /dev/null
+++ b/public/icons/svg/myip-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/myip-light.svg b/public/icons/svg/myip-light.svg
new file mode 100755
index 00000000..45c42ba2
--- /dev/null
+++ b/public/icons/svg/myip-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/myip.svg b/public/icons/svg/myip.svg
new file mode 100755
index 00000000..ad289667
--- /dev/null
+++ b/public/icons/svg/myip.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/nextexplorer-dark.svg b/public/icons/svg/nextexplorer-dark.svg
new file mode 100755
index 00000000..266f3c19
--- /dev/null
+++ b/public/icons/svg/nextexplorer-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/nextexplorer-light.svg b/public/icons/svg/nextexplorer-light.svg
new file mode 100755
index 00000000..1f776dbd
--- /dev/null
+++ b/public/icons/svg/nextexplorer-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/nextexplorer.svg b/public/icons/svg/nextexplorer.svg
new file mode 100755
index 00000000..f54286d9
--- /dev/null
+++ b/public/icons/svg/nextexplorer.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/ontime-dark.svg b/public/icons/svg/ontime-dark.svg
new file mode 100755
index 00000000..5611db68
--- /dev/null
+++ b/public/icons/svg/ontime-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/ontime-light.svg b/public/icons/svg/ontime-light.svg
new file mode 100755
index 00000000..bc15ea28
--- /dev/null
+++ b/public/icons/svg/ontime-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/ontime.svg b/public/icons/svg/ontime.svg
new file mode 100755
index 00000000..c15f2b15
--- /dev/null
+++ b/public/icons/svg/ontime.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/pequeroku-dark.svg b/public/icons/svg/pequeroku-dark.svg
new file mode 100755
index 00000000..a8452e8e
--- /dev/null
+++ b/public/icons/svg/pequeroku-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/pequeroku-light.svg b/public/icons/svg/pequeroku-light.svg
new file mode 100755
index 00000000..6672ee93
--- /dev/null
+++ b/public/icons/svg/pequeroku-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/pequeroku.svg b/public/icons/svg/pequeroku.svg
new file mode 100755
index 00000000..71fc6110
--- /dev/null
+++ b/public/icons/svg/pequeroku.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/pigeonpod-dark.svg b/public/icons/svg/pigeonpod-dark.svg
new file mode 100755
index 00000000..156dd617
--- /dev/null
+++ b/public/icons/svg/pigeonpod-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/pigeonpod-light.svg b/public/icons/svg/pigeonpod-light.svg
new file mode 100755
index 00000000..ebb9cd3d
--- /dev/null
+++ b/public/icons/svg/pigeonpod-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/pigeonpod.svg b/public/icons/svg/pigeonpod.svg
new file mode 100755
index 00000000..ddd0d565
--- /dev/null
+++ b/public/icons/svg/pigeonpod.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/poznote-dark.svg b/public/icons/svg/poznote-dark.svg
new file mode 100755
index 00000000..bebc00bd
--- /dev/null
+++ b/public/icons/svg/poznote-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/poznote-light.svg b/public/icons/svg/poznote-light.svg
new file mode 100755
index 00000000..955323a7
--- /dev/null
+++ b/public/icons/svg/poznote-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/poznote.svg b/public/icons/svg/poznote.svg
new file mode 100755
index 00000000..18f961d3
--- /dev/null
+++ b/public/icons/svg/poznote.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/private-captcha-dark.svg b/public/icons/svg/private-captcha-dark.svg
new file mode 100755
index 00000000..3622c5ec
--- /dev/null
+++ b/public/icons/svg/private-captcha-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/private-captcha-light.svg b/public/icons/svg/private-captcha-light.svg
new file mode 100755
index 00000000..3ffaa129
--- /dev/null
+++ b/public/icons/svg/private-captcha-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/private-captcha.svg b/public/icons/svg/private-captcha.svg
new file mode 100755
index 00000000..8d635f0d
--- /dev/null
+++ b/public/icons/svg/private-captcha.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/quetre-dark.svg b/public/icons/svg/quetre-dark.svg
new file mode 100755
index 00000000..a1d3d377
--- /dev/null
+++ b/public/icons/svg/quetre-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/quetre-light.svg b/public/icons/svg/quetre-light.svg
new file mode 100755
index 00000000..2208eef6
--- /dev/null
+++ b/public/icons/svg/quetre-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/quetre.svg b/public/icons/svg/quetre.svg
new file mode 100755
index 00000000..9a787e2e
--- /dev/null
+++ b/public/icons/svg/quetre.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/quickbars-dark.svg b/public/icons/svg/quickbars-dark.svg
new file mode 100755
index 00000000..1a544c74
--- /dev/null
+++ b/public/icons/svg/quickbars-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/quickbars-light.svg b/public/icons/svg/quickbars-light.svg
new file mode 100755
index 00000000..18fc05b8
--- /dev/null
+++ b/public/icons/svg/quickbars-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/quickbars.svg b/public/icons/svg/quickbars.svg
new file mode 100755
index 00000000..fc2623bf
--- /dev/null
+++ b/public/icons/svg/quickbars.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/seagate-dark.svg b/public/icons/svg/seagate-dark.svg
new file mode 100755
index 00000000..909d2561
--- /dev/null
+++ b/public/icons/svg/seagate-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/seagate-light.svg b/public/icons/svg/seagate-light.svg
new file mode 100755
index 00000000..3d80e1fa
--- /dev/null
+++ b/public/icons/svg/seagate-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/seagate.svg b/public/icons/svg/seagate.svg
new file mode 100755
index 00000000..55359080
--- /dev/null
+++ b/public/icons/svg/seagate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/secluso-dark.svg b/public/icons/svg/secluso-dark.svg
new file mode 100755
index 00000000..8b7fdfd4
--- /dev/null
+++ b/public/icons/svg/secluso-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/secluso-light.svg b/public/icons/svg/secluso-light.svg
new file mode 100755
index 00000000..4e389528
--- /dev/null
+++ b/public/icons/svg/secluso-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/secluso.svg b/public/icons/svg/secluso.svg
new file mode 100755
index 00000000..35465d73
--- /dev/null
+++ b/public/icons/svg/secluso.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/shopware-dark.svg b/public/icons/svg/shopware-dark.svg
new file mode 100755
index 00000000..a689390b
--- /dev/null
+++ b/public/icons/svg/shopware-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/shopware-light.svg b/public/icons/svg/shopware-light.svg
new file mode 100755
index 00000000..362e669c
--- /dev/null
+++ b/public/icons/svg/shopware-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/shopware.svg b/public/icons/svg/shopware.svg
new file mode 100755
index 00000000..e3d21aa8
--- /dev/null
+++ b/public/icons/svg/shopware.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/smartfox-dark.svg b/public/icons/svg/smartfox-dark.svg
new file mode 100755
index 00000000..781c1e7e
--- /dev/null
+++ b/public/icons/svg/smartfox-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/smartfox-light.svg b/public/icons/svg/smartfox-light.svg
new file mode 100755
index 00000000..ddcc63f4
--- /dev/null
+++ b/public/icons/svg/smartfox-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/smartfox.svg b/public/icons/svg/smartfox.svg
new file mode 100755
index 00000000..e0dcaa07
--- /dev/null
+++ b/public/icons/svg/smartfox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/sonobarr-dark.svg b/public/icons/svg/sonobarr-dark.svg
new file mode 100755
index 00000000..ba4a5635
--- /dev/null
+++ b/public/icons/svg/sonobarr-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/sonobarr-light.svg b/public/icons/svg/sonobarr-light.svg
new file mode 100755
index 00000000..44168f00
--- /dev/null
+++ b/public/icons/svg/sonobarr-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/sonobarr.svg b/public/icons/svg/sonobarr.svg
new file mode 100755
index 00000000..439c953d
--- /dev/null
+++ b/public/icons/svg/sonobarr.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/stoat-dark.svg b/public/icons/svg/stoat-dark.svg
new file mode 100755
index 00000000..791f4c40
--- /dev/null
+++ b/public/icons/svg/stoat-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/stoat-light.svg b/public/icons/svg/stoat-light.svg
new file mode 100755
index 00000000..0e09a8f1
--- /dev/null
+++ b/public/icons/svg/stoat-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/stoat.svg b/public/icons/svg/stoat.svg
new file mode 100755
index 00000000..a1e664e3
--- /dev/null
+++ b/public/icons/svg/stoat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/tasktrove-dark.svg b/public/icons/svg/tasktrove-dark.svg
new file mode 100755
index 00000000..9510c5cc
--- /dev/null
+++ b/public/icons/svg/tasktrove-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/tasktrove-light.svg b/public/icons/svg/tasktrove-light.svg
new file mode 100755
index 00000000..d82f394f
--- /dev/null
+++ b/public/icons/svg/tasktrove-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/tasktrove.svg b/public/icons/svg/tasktrove.svg
new file mode 100755
index 00000000..89a8f5ac
--- /dev/null
+++ b/public/icons/svg/tasktrove.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/termix-dark.svg b/public/icons/svg/termix-dark.svg
index 461dea00..a48238a2 100755
--- a/public/icons/svg/termix-dark.svg
+++ b/public/icons/svg/termix-dark.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/termix-light.svg b/public/icons/svg/termix-light.svg
index cea0a4bf..f7b0836a 100755
--- a/public/icons/svg/termix-light.svg
+++ b/public/icons/svg/termix-light.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/termix.svg b/public/icons/svg/termix.svg
index de622521..33afac78 100755
--- a/public/icons/svg/termix.svg
+++ b/public/icons/svg/termix.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/icons/svg/tiny-tiny-rss-dark.svg b/public/icons/svg/tiny-tiny-rss-dark.svg
new file mode 100755
index 00000000..c993af74
--- /dev/null
+++ b/public/icons/svg/tiny-tiny-rss-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/tiny-tiny-rss-light.svg b/public/icons/svg/tiny-tiny-rss-light.svg
new file mode 100755
index 00000000..a54e4fd5
--- /dev/null
+++ b/public/icons/svg/tiny-tiny-rss-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/tiny-tiny-rss.svg b/public/icons/svg/tiny-tiny-rss.svg
new file mode 100755
index 00000000..6dbabe89
--- /dev/null
+++ b/public/icons/svg/tiny-tiny-rss.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/toodoom-dark.svg b/public/icons/svg/toodoom-dark.svg
new file mode 100755
index 00000000..8a63722a
--- /dev/null
+++ b/public/icons/svg/toodoom-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/toodoom-light.svg b/public/icons/svg/toodoom-light.svg
new file mode 100755
index 00000000..e2184a8c
--- /dev/null
+++ b/public/icons/svg/toodoom-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/toodoom.svg b/public/icons/svg/toodoom.svg
new file mode 100755
index 00000000..45c7fd81
--- /dev/null
+++ b/public/icons/svg/toodoom.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/tubetimeout-dark.svg b/public/icons/svg/tubetimeout-dark.svg
new file mode 100755
index 00000000..1966b362
--- /dev/null
+++ b/public/icons/svg/tubetimeout-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/tubetimeout-light.svg b/public/icons/svg/tubetimeout-light.svg
new file mode 100755
index 00000000..cbb7f379
--- /dev/null
+++ b/public/icons/svg/tubetimeout-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/tubetimeout.svg b/public/icons/svg/tubetimeout.svg
new file mode 100755
index 00000000..96d98797
--- /dev/null
+++ b/public/icons/svg/tubetimeout.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/velld-dark.svg b/public/icons/svg/velld-dark.svg
new file mode 100755
index 00000000..d9e57c92
--- /dev/null
+++ b/public/icons/svg/velld-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/velld-light.svg b/public/icons/svg/velld-light.svg
new file mode 100755
index 00000000..cbf8bcde
--- /dev/null
+++ b/public/icons/svg/velld-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/velld.svg b/public/icons/svg/velld.svg
new file mode 100755
index 00000000..abb9053d
--- /dev/null
+++ b/public/icons/svg/velld.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/vertigo-comics-dark.svg b/public/icons/svg/vertigo-comics-dark.svg
new file mode 100755
index 00000000..d971bd12
--- /dev/null
+++ b/public/icons/svg/vertigo-comics-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/vertigo-comics-light.svg b/public/icons/svg/vertigo-comics-light.svg
new file mode 100755
index 00000000..184969de
--- /dev/null
+++ b/public/icons/svg/vertigo-comics-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/vertigo-comics.svg b/public/icons/svg/vertigo-comics.svg
new file mode 100755
index 00000000..89a710bf
--- /dev/null
+++ b/public/icons/svg/vertigo-comics.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/vmware-esx-dark.svg b/public/icons/svg/vmware-esx-dark.svg
new file mode 100755
index 00000000..2281265e
--- /dev/null
+++ b/public/icons/svg/vmware-esx-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/vmware-esx-light.svg b/public/icons/svg/vmware-esx-light.svg
new file mode 100755
index 00000000..2aaceeef
--- /dev/null
+++ b/public/icons/svg/vmware-esx-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/vmware-esx.svg b/public/icons/svg/vmware-esx.svg
new file mode 100755
index 00000000..114d2475
--- /dev/null
+++ b/public/icons/svg/vmware-esx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/zorin-os-dark.svg b/public/icons/svg/zorin-os-dark.svg
new file mode 100755
index 00000000..f56b42ce
--- /dev/null
+++ b/public/icons/svg/zorin-os-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/zorin-os-light.svg b/public/icons/svg/zorin-os-light.svg
new file mode 100755
index 00000000..bc21a529
--- /dev/null
+++ b/public/icons/svg/zorin-os-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/svg/zorin-os.svg b/public/icons/svg/zorin-os.svg
new file mode 100755
index 00000000..50ea20f8
--- /dev/null
+++ b/public/icons/svg/zorin-os.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/icons/webp/aiostreams-dark.webp b/public/icons/webp/aiostreams-dark.webp
new file mode 100755
index 00000000..c6435ec1
Binary files /dev/null and b/public/icons/webp/aiostreams-dark.webp differ
diff --git a/public/icons/webp/aiostreams-light.webp b/public/icons/webp/aiostreams-light.webp
new file mode 100755
index 00000000..3b5bcbe0
Binary files /dev/null and b/public/icons/webp/aiostreams-light.webp differ
diff --git a/public/icons/webp/aiostreams.webp b/public/icons/webp/aiostreams.webp
index b38861f2..c6435ec1 100755
Binary files a/public/icons/webp/aiostreams.webp and b/public/icons/webp/aiostreams.webp differ
diff --git a/public/icons/webp/apple-tv-dark.webp b/public/icons/webp/apple-tv-dark.webp
new file mode 100755
index 00000000..9c948f06
Binary files /dev/null and b/public/icons/webp/apple-tv-dark.webp differ
diff --git a/public/icons/webp/apple-tv-light.webp b/public/icons/webp/apple-tv-light.webp
new file mode 100755
index 00000000..a8d77bbb
Binary files /dev/null and b/public/icons/webp/apple-tv-light.webp differ
diff --git a/public/icons/webp/apple-tv-plus-dark.webp b/public/icons/webp/apple-tv-plus-dark.webp
deleted file mode 100755
index 920aeed5..00000000
Binary files a/public/icons/webp/apple-tv-plus-dark.webp and /dev/null differ
diff --git a/public/icons/webp/apple-tv-plus-light.webp b/public/icons/webp/apple-tv-plus-light.webp
deleted file mode 100755
index 6c9c5436..00000000
Binary files a/public/icons/webp/apple-tv-plus-light.webp and /dev/null differ
diff --git a/public/icons/webp/apple-tv-plus.webp b/public/icons/webp/apple-tv-plus.webp
deleted file mode 100755
index 8a0e55e1..00000000
Binary files a/public/icons/webp/apple-tv-plus.webp and /dev/null differ
diff --git a/public/icons/webp/apple-tv.webp b/public/icons/webp/apple-tv.webp
new file mode 100755
index 00000000..9c948f06
Binary files /dev/null and b/public/icons/webp/apple-tv.webp differ
diff --git a/public/icons/webp/audiodeck-dark.webp b/public/icons/webp/audiodeck-dark.webp
new file mode 100755
index 00000000..b6013c5c
Binary files /dev/null and b/public/icons/webp/audiodeck-dark.webp differ
diff --git a/public/icons/webp/audiodeck-light.webp b/public/icons/webp/audiodeck-light.webp
new file mode 100755
index 00000000..b6013c5c
Binary files /dev/null and b/public/icons/webp/audiodeck-light.webp differ
diff --git a/public/icons/webp/audiodeck.webp b/public/icons/webp/audiodeck.webp
new file mode 100755
index 00000000..b6013c5c
Binary files /dev/null and b/public/icons/webp/audiodeck.webp differ
diff --git a/public/icons/webp/bentopdf-dark.webp b/public/icons/webp/bentopdf-dark.webp
new file mode 100755
index 00000000..fc2c4229
Binary files /dev/null and b/public/icons/webp/bentopdf-dark.webp differ
diff --git a/public/icons/webp/bentopdf-light.webp b/public/icons/webp/bentopdf-light.webp
new file mode 100755
index 00000000..a9281781
Binary files /dev/null and b/public/icons/webp/bentopdf-light.webp differ
diff --git a/public/icons/webp/bentopdf.webp b/public/icons/webp/bentopdf.webp
new file mode 100755
index 00000000..8b5e19ec
Binary files /dev/null and b/public/icons/webp/bentopdf.webp differ
diff --git a/public/icons/webp/boxarr.webp b/public/icons/webp/boxarr.webp
new file mode 100755
index 00000000..7edb2084
Binary files /dev/null and b/public/icons/webp/boxarr.webp differ
diff --git a/public/icons/webp/comicopds.webp b/public/icons/webp/comicopds.webp
new file mode 100755
index 00000000..776eb8c0
Binary files /dev/null and b/public/icons/webp/comicopds.webp differ
diff --git a/public/icons/webp/cookcli-dark.webp b/public/icons/webp/cookcli-dark.webp
new file mode 100755
index 00000000..3f095fa3
Binary files /dev/null and b/public/icons/webp/cookcli-dark.webp differ
diff --git a/public/icons/webp/cookcli-light.webp b/public/icons/webp/cookcli-light.webp
new file mode 100755
index 00000000..8d5ac8e9
Binary files /dev/null and b/public/icons/webp/cookcli-light.webp differ
diff --git a/public/icons/webp/cookcli.webp b/public/icons/webp/cookcli.webp
new file mode 100755
index 00000000..b44cbb5b
Binary files /dev/null and b/public/icons/webp/cookcli.webp differ
diff --git a/public/icons/webp/crosswatch-dark.webp b/public/icons/webp/crosswatch-dark.webp
new file mode 100755
index 00000000..15d9157f
Binary files /dev/null and b/public/icons/webp/crosswatch-dark.webp differ
diff --git a/public/icons/webp/crosswatch-light.webp b/public/icons/webp/crosswatch-light.webp
new file mode 100755
index 00000000..68fa8263
Binary files /dev/null and b/public/icons/webp/crosswatch-light.webp differ
diff --git a/public/icons/webp/crosswatch.webp b/public/icons/webp/crosswatch.webp
new file mode 100755
index 00000000..1827fe28
Binary files /dev/null and b/public/icons/webp/crosswatch.webp differ
diff --git a/public/icons/webp/dispatcharr-dark.webp b/public/icons/webp/dispatcharr-dark.webp
new file mode 100755
index 00000000..6f0c33e7
Binary files /dev/null and b/public/icons/webp/dispatcharr-dark.webp differ
diff --git a/public/icons/webp/dispatcharr-light.webp b/public/icons/webp/dispatcharr-light.webp
new file mode 100755
index 00000000..1103e439
Binary files /dev/null and b/public/icons/webp/dispatcharr-light.webp differ
diff --git a/public/icons/webp/dispatcharr.webp b/public/icons/webp/dispatcharr.webp
new file mode 100755
index 00000000..00e622e3
Binary files /dev/null and b/public/icons/webp/dispatcharr.webp differ
diff --git a/public/icons/webp/dockmon.webp b/public/icons/webp/dockmon.webp
new file mode 100755
index 00000000..f03ca3cc
Binary files /dev/null and b/public/icons/webp/dockmon.webp differ
diff --git a/public/icons/webp/file-portal-dark.webp b/public/icons/webp/file-portal-dark.webp
new file mode 100755
index 00000000..abba2647
Binary files /dev/null and b/public/icons/webp/file-portal-dark.webp differ
diff --git a/public/icons/webp/file-portal-light.webp b/public/icons/webp/file-portal-light.webp
new file mode 100755
index 00000000..1f48b388
Binary files /dev/null and b/public/icons/webp/file-portal-light.webp differ
diff --git a/public/icons/webp/file-portal.webp b/public/icons/webp/file-portal.webp
new file mode 100755
index 00000000..3692373b
Binary files /dev/null and b/public/icons/webp/file-portal.webp differ
diff --git a/public/icons/webp/file-wizard-dark.webp b/public/icons/webp/file-wizard-dark.webp
new file mode 100755
index 00000000..a3eae180
Binary files /dev/null and b/public/icons/webp/file-wizard-dark.webp differ
diff --git a/public/icons/webp/file-wizard-light.webp b/public/icons/webp/file-wizard-light.webp
new file mode 100755
index 00000000..805b1a37
Binary files /dev/null and b/public/icons/webp/file-wizard-light.webp differ
diff --git a/public/icons/webp/file-wizard.webp b/public/icons/webp/file-wizard.webp
new file mode 100755
index 00000000..a3eae180
Binary files /dev/null and b/public/icons/webp/file-wizard.webp differ
diff --git a/public/icons/webp/folding-home-dark.webp b/public/icons/webp/folding-home-dark.webp
new file mode 100755
index 00000000..cdbdc44f
Binary files /dev/null and b/public/icons/webp/folding-home-dark.webp differ
diff --git a/public/icons/webp/folding-home-light.webp b/public/icons/webp/folding-home-light.webp
new file mode 100755
index 00000000..a966db17
Binary files /dev/null and b/public/icons/webp/folding-home-light.webp differ
diff --git a/public/icons/webp/folding-home.webp b/public/icons/webp/folding-home.webp
new file mode 100755
index 00000000..ab1c0860
Binary files /dev/null and b/public/icons/webp/folding-home.webp differ
diff --git a/public/icons/webp/gdms-dark.webp b/public/icons/webp/gdms-dark.webp
new file mode 100755
index 00000000..d25b9098
Binary files /dev/null and b/public/icons/webp/gdms-dark.webp differ
diff --git a/public/icons/webp/gdms-light.webp b/public/icons/webp/gdms-light.webp
new file mode 100755
index 00000000..f441ae45
Binary files /dev/null and b/public/icons/webp/gdms-light.webp differ
diff --git a/public/icons/webp/gdms.webp b/public/icons/webp/gdms.webp
new file mode 100755
index 00000000..fb8e503d
Binary files /dev/null and b/public/icons/webp/gdms.webp differ
diff --git a/public/icons/webp/habitsync.webp b/public/icons/webp/habitsync.webp
new file mode 100755
index 00000000..a3547f68
Binary files /dev/null and b/public/icons/webp/habitsync.webp differ
diff --git a/public/icons/webp/home-information-dark.webp b/public/icons/webp/home-information-dark.webp
new file mode 100755
index 00000000..b1e29c52
Binary files /dev/null and b/public/icons/webp/home-information-dark.webp differ
diff --git a/public/icons/webp/home-information-light.webp b/public/icons/webp/home-information-light.webp
new file mode 100755
index 00000000..090f247f
Binary files /dev/null and b/public/icons/webp/home-information-light.webp differ
diff --git a/public/icons/webp/home-information.webp b/public/icons/webp/home-information.webp
new file mode 100755
index 00000000..9b30fe00
Binary files /dev/null and b/public/icons/webp/home-information.webp differ
diff --git a/public/icons/webp/ironcalc-dark.webp b/public/icons/webp/ironcalc-dark.webp
new file mode 100755
index 00000000..3cdea7cf
Binary files /dev/null and b/public/icons/webp/ironcalc-dark.webp differ
diff --git a/public/icons/webp/ironcalc-light.webp b/public/icons/webp/ironcalc-light.webp
new file mode 100755
index 00000000..83344827
Binary files /dev/null and b/public/icons/webp/ironcalc-light.webp differ
diff --git a/public/icons/webp/ironcalc.webp b/public/icons/webp/ironcalc.webp
new file mode 100755
index 00000000..7d321aa1
Binary files /dev/null and b/public/icons/webp/ironcalc.webp differ
diff --git a/public/icons/webp/jfa-go-dark.webp b/public/icons/webp/jfa-go-dark.webp
new file mode 100755
index 00000000..a6464829
Binary files /dev/null and b/public/icons/webp/jfa-go-dark.webp differ
diff --git a/public/icons/webp/jfa-go-light.webp b/public/icons/webp/jfa-go-light.webp
new file mode 100755
index 00000000..0562c6cd
Binary files /dev/null and b/public/icons/webp/jfa-go-light.webp differ
diff --git a/public/icons/webp/jfa-go.webp b/public/icons/webp/jfa-go.webp
new file mode 100755
index 00000000..9438b18f
Binary files /dev/null and b/public/icons/webp/jfa-go.webp differ
diff --git a/public/icons/webp/kite-kubernetes-dark.webp b/public/icons/webp/kite-kubernetes-dark.webp
new file mode 100755
index 00000000..5d752e09
Binary files /dev/null and b/public/icons/webp/kite-kubernetes-dark.webp differ
diff --git a/public/icons/webp/kite-kubernetes-light.webp b/public/icons/webp/kite-kubernetes-light.webp
new file mode 100755
index 00000000..7a4807da
Binary files /dev/null and b/public/icons/webp/kite-kubernetes-light.webp differ
diff --git a/public/icons/webp/kite-kubernetes.webp b/public/icons/webp/kite-kubernetes.webp
new file mode 100755
index 00000000..874d1e52
Binary files /dev/null and b/public/icons/webp/kite-kubernetes.webp differ
diff --git a/public/icons/webp/lufthansa-dark.webp b/public/icons/webp/lufthansa-dark.webp
new file mode 100755
index 00000000..ec3a3eb9
Binary files /dev/null and b/public/icons/webp/lufthansa-dark.webp differ
diff --git a/public/icons/webp/lufthansa-light.webp b/public/icons/webp/lufthansa-light.webp
new file mode 100755
index 00000000..133a20cc
Binary files /dev/null and b/public/icons/webp/lufthansa-light.webp differ
diff --git a/public/icons/webp/lufthansa.webp b/public/icons/webp/lufthansa.webp
new file mode 100755
index 00000000..9747ebfc
Binary files /dev/null and b/public/icons/webp/lufthansa.webp differ
diff --git a/public/icons/webp/microsoft-access-2000-dark.webp b/public/icons/webp/microsoft-access-2000-dark.webp
new file mode 100755
index 00000000..d277c48b
Binary files /dev/null and b/public/icons/webp/microsoft-access-2000-dark.webp differ
diff --git a/public/icons/webp/microsoft-access-2000-light.webp b/public/icons/webp/microsoft-access-2000-light.webp
new file mode 100755
index 00000000..9399541d
Binary files /dev/null and b/public/icons/webp/microsoft-access-2000-light.webp differ
diff --git a/public/icons/webp/microsoft-access-2000.webp b/public/icons/webp/microsoft-access-2000.webp
new file mode 100755
index 00000000..ed56a996
Binary files /dev/null and b/public/icons/webp/microsoft-access-2000.webp differ
diff --git a/public/icons/webp/microsoft-access-2013-dark.webp b/public/icons/webp/microsoft-access-2013-dark.webp
new file mode 100755
index 00000000..d9369e2f
Binary files /dev/null and b/public/icons/webp/microsoft-access-2013-dark.webp differ
diff --git a/public/icons/webp/microsoft-access-2013-light.webp b/public/icons/webp/microsoft-access-2013-light.webp
new file mode 100755
index 00000000..e1f069a5
Binary files /dev/null and b/public/icons/webp/microsoft-access-2013-light.webp differ
diff --git a/public/icons/webp/microsoft-access-2013.webp b/public/icons/webp/microsoft-access-2013.webp
new file mode 100755
index 00000000..d10c3398
Binary files /dev/null and b/public/icons/webp/microsoft-access-2013.webp differ
diff --git a/public/icons/webp/microsoft-dark.webp b/public/icons/webp/microsoft-dark.webp
index a9099893..582157e3 100755
Binary files a/public/icons/webp/microsoft-dark.webp and b/public/icons/webp/microsoft-dark.webp differ
diff --git a/public/icons/webp/microsoft-excel-2000-dark.webp b/public/icons/webp/microsoft-excel-2000-dark.webp
new file mode 100755
index 00000000..9a6bf74f
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2000-dark.webp differ
diff --git a/public/icons/webp/microsoft-excel-2000-light.webp b/public/icons/webp/microsoft-excel-2000-light.webp
new file mode 100755
index 00000000..83bf5841
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2000-light.webp differ
diff --git a/public/icons/webp/microsoft-excel-2000.webp b/public/icons/webp/microsoft-excel-2000.webp
new file mode 100755
index 00000000..2a12977d
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2000.webp differ
diff --git a/public/icons/webp/microsoft-excel-2013-dark.webp b/public/icons/webp/microsoft-excel-2013-dark.webp
new file mode 100755
index 00000000..6a91e318
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2013-dark.webp differ
diff --git a/public/icons/webp/microsoft-excel-2013-light.webp b/public/icons/webp/microsoft-excel-2013-light.webp
new file mode 100755
index 00000000..0b8ad8eb
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2013-light.webp differ
diff --git a/public/icons/webp/microsoft-excel-2013.webp b/public/icons/webp/microsoft-excel-2013.webp
new file mode 100755
index 00000000..27b3cde8
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2013.webp differ
diff --git a/public/icons/webp/microsoft-excel-2018-dark.webp b/public/icons/webp/microsoft-excel-2018-dark.webp
new file mode 100755
index 00000000..907de716
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2018-dark.webp differ
diff --git a/public/icons/webp/microsoft-excel-2018-light.webp b/public/icons/webp/microsoft-excel-2018-light.webp
new file mode 100755
index 00000000..e2f2ed17
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2018-light.webp differ
diff --git a/public/icons/webp/microsoft-excel-2018.webp b/public/icons/webp/microsoft-excel-2018.webp
new file mode 100755
index 00000000..b333b77c
Binary files /dev/null and b/public/icons/webp/microsoft-excel-2018.webp differ
diff --git a/public/icons/webp/microsoft-excel-dark.webp b/public/icons/webp/microsoft-excel-dark.webp
index 907de716..f5097e4e 100755
Binary files a/public/icons/webp/microsoft-excel-dark.webp and b/public/icons/webp/microsoft-excel-dark.webp differ
diff --git a/public/icons/webp/microsoft-excel-light.webp b/public/icons/webp/microsoft-excel-light.webp
index e2f2ed17..bbcef31c 100755
Binary files a/public/icons/webp/microsoft-excel-light.webp and b/public/icons/webp/microsoft-excel-light.webp differ
diff --git a/public/icons/webp/microsoft-excel.webp b/public/icons/webp/microsoft-excel.webp
index b333b77c..2718267c 100755
Binary files a/public/icons/webp/microsoft-excel.webp and b/public/icons/webp/microsoft-excel.webp differ
diff --git a/public/icons/webp/microsoft-light.webp b/public/icons/webp/microsoft-light.webp
index 341eaecb..98db5e61 100755
Binary files a/public/icons/webp/microsoft-light.webp and b/public/icons/webp/microsoft-light.webp differ
diff --git a/public/icons/webp/microsoft-onedrive-2018-dark.webp b/public/icons/webp/microsoft-onedrive-2018-dark.webp
new file mode 100755
index 00000000..f31ab2ea
Binary files /dev/null and b/public/icons/webp/microsoft-onedrive-2018-dark.webp differ
diff --git a/public/icons/webp/microsoft-onedrive-2018-light.webp b/public/icons/webp/microsoft-onedrive-2018-light.webp
new file mode 100755
index 00000000..d154e595
Binary files /dev/null and b/public/icons/webp/microsoft-onedrive-2018-light.webp differ
diff --git a/public/icons/webp/microsoft-onedrive-2018.webp b/public/icons/webp/microsoft-onedrive-2018.webp
new file mode 100755
index 00000000..c2d2bdd0
Binary files /dev/null and b/public/icons/webp/microsoft-onedrive-2018.webp differ
diff --git a/public/icons/webp/microsoft-onedrive-dark.webp b/public/icons/webp/microsoft-onedrive-dark.webp
index f31ab2ea..8937478d 100755
Binary files a/public/icons/webp/microsoft-onedrive-dark.webp and b/public/icons/webp/microsoft-onedrive-dark.webp differ
diff --git a/public/icons/webp/microsoft-onedrive-light.webp b/public/icons/webp/microsoft-onedrive-light.webp
index d154e595..c66c297b 100755
Binary files a/public/icons/webp/microsoft-onedrive-light.webp and b/public/icons/webp/microsoft-onedrive-light.webp differ
diff --git a/public/icons/webp/microsoft-onedrive.webp b/public/icons/webp/microsoft-onedrive.webp
index c2d2bdd0..7256a517 100755
Binary files a/public/icons/webp/microsoft-onedrive.webp and b/public/icons/webp/microsoft-onedrive.webp differ
diff --git a/public/icons/webp/microsoft-onenote-2013-dark.webp b/public/icons/webp/microsoft-onenote-2013-dark.webp
new file mode 100755
index 00000000..ae8a47a7
Binary files /dev/null and b/public/icons/webp/microsoft-onenote-2013-dark.webp differ
diff --git a/public/icons/webp/microsoft-onenote-2013-light.webp b/public/icons/webp/microsoft-onenote-2013-light.webp
new file mode 100755
index 00000000..b411c591
Binary files /dev/null and b/public/icons/webp/microsoft-onenote-2013-light.webp differ
diff --git a/public/icons/webp/microsoft-onenote-2013.webp b/public/icons/webp/microsoft-onenote-2013.webp
new file mode 100755
index 00000000..ca244b55
Binary files /dev/null and b/public/icons/webp/microsoft-onenote-2013.webp differ
diff --git a/public/icons/webp/microsoft-onenote-2018-dark.webp b/public/icons/webp/microsoft-onenote-2018-dark.webp
new file mode 100755
index 00000000..0c6345cd
Binary files /dev/null and b/public/icons/webp/microsoft-onenote-2018-dark.webp differ
diff --git a/public/icons/webp/microsoft-onenote-2018-light.webp b/public/icons/webp/microsoft-onenote-2018-light.webp
new file mode 100755
index 00000000..4a8184fa
Binary files /dev/null and b/public/icons/webp/microsoft-onenote-2018-light.webp differ
diff --git a/public/icons/webp/microsoft-onenote-2018.webp b/public/icons/webp/microsoft-onenote-2018.webp
new file mode 100755
index 00000000..c222384d
Binary files /dev/null and b/public/icons/webp/microsoft-onenote-2018.webp differ
diff --git a/public/icons/webp/microsoft-onenote-dark.webp b/public/icons/webp/microsoft-onenote-dark.webp
index 0c6345cd..6be48670 100755
Binary files a/public/icons/webp/microsoft-onenote-dark.webp and b/public/icons/webp/microsoft-onenote-dark.webp differ
diff --git a/public/icons/webp/microsoft-onenote-light.webp b/public/icons/webp/microsoft-onenote-light.webp
index 4a8184fa..114e1178 100755
Binary files a/public/icons/webp/microsoft-onenote-light.webp and b/public/icons/webp/microsoft-onenote-light.webp differ
diff --git a/public/icons/webp/microsoft-onenote.webp b/public/icons/webp/microsoft-onenote.webp
index c222384d..82e69abd 100755
Binary files a/public/icons/webp/microsoft-onenote.webp and b/public/icons/webp/microsoft-onenote.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2000-dark.webp b/public/icons/webp/microsoft-outlook-2000-dark.webp
new file mode 100755
index 00000000..0061deba
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2000-dark.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2000-light.webp b/public/icons/webp/microsoft-outlook-2000-light.webp
new file mode 100755
index 00000000..8021d7c6
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2000-light.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2000.webp b/public/icons/webp/microsoft-outlook-2000.webp
new file mode 100755
index 00000000..3c177980
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2000.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2013-dark.webp b/public/icons/webp/microsoft-outlook-2013-dark.webp
new file mode 100755
index 00000000..280d2931
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2013-dark.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2013-light.webp b/public/icons/webp/microsoft-outlook-2013-light.webp
new file mode 100755
index 00000000..09ec02b4
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2013-light.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2013.webp b/public/icons/webp/microsoft-outlook-2013.webp
new file mode 100755
index 00000000..30f7ed87
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2013.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2018-dark.webp b/public/icons/webp/microsoft-outlook-2018-dark.webp
new file mode 100755
index 00000000..7ca789d2
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2018-dark.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2018-light.webp b/public/icons/webp/microsoft-outlook-2018-light.webp
new file mode 100755
index 00000000..094163af
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2018-light.webp differ
diff --git a/public/icons/webp/microsoft-outlook-2018.webp b/public/icons/webp/microsoft-outlook-2018.webp
new file mode 100755
index 00000000..09516d56
Binary files /dev/null and b/public/icons/webp/microsoft-outlook-2018.webp differ
diff --git a/public/icons/webp/microsoft-outlook-dark.webp b/public/icons/webp/microsoft-outlook-dark.webp
index 7ca789d2..4081d281 100755
Binary files a/public/icons/webp/microsoft-outlook-dark.webp and b/public/icons/webp/microsoft-outlook-dark.webp differ
diff --git a/public/icons/webp/microsoft-outlook-light.webp b/public/icons/webp/microsoft-outlook-light.webp
index 094163af..b8f6706a 100755
Binary files a/public/icons/webp/microsoft-outlook-light.webp and b/public/icons/webp/microsoft-outlook-light.webp differ
diff --git a/public/icons/webp/microsoft-outlook.webp b/public/icons/webp/microsoft-outlook.webp
index 09516d56..78727f06 100755
Binary files a/public/icons/webp/microsoft-outlook.webp and b/public/icons/webp/microsoft-outlook.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2000-dark.webp b/public/icons/webp/microsoft-powerpoint-2000-dark.webp
new file mode 100755
index 00000000..f910fc49
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2000-dark.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2000-light.webp b/public/icons/webp/microsoft-powerpoint-2000-light.webp
new file mode 100755
index 00000000..034776fe
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2000-light.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2000.webp b/public/icons/webp/microsoft-powerpoint-2000.webp
new file mode 100755
index 00000000..a61b00c8
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2000.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2013-dark.webp b/public/icons/webp/microsoft-powerpoint-2013-dark.webp
new file mode 100755
index 00000000..e7aa1a4a
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2013-dark.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2013-light.webp b/public/icons/webp/microsoft-powerpoint-2013-light.webp
new file mode 100755
index 00000000..6498c867
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2013-light.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2013.webp b/public/icons/webp/microsoft-powerpoint-2013.webp
new file mode 100755
index 00000000..34cca7fa
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2013.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2018-dark.webp b/public/icons/webp/microsoft-powerpoint-2018-dark.webp
new file mode 100755
index 00000000..b5b49ac3
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2018-dark.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2018-light.webp b/public/icons/webp/microsoft-powerpoint-2018-light.webp
new file mode 100755
index 00000000..23046787
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2018-light.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-2018.webp b/public/icons/webp/microsoft-powerpoint-2018.webp
new file mode 100755
index 00000000..82d812cc
Binary files /dev/null and b/public/icons/webp/microsoft-powerpoint-2018.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-dark.webp b/public/icons/webp/microsoft-powerpoint-dark.webp
index b5b49ac3..3282daef 100755
Binary files a/public/icons/webp/microsoft-powerpoint-dark.webp and b/public/icons/webp/microsoft-powerpoint-dark.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint-light.webp b/public/icons/webp/microsoft-powerpoint-light.webp
index 23046787..2e19078b 100755
Binary files a/public/icons/webp/microsoft-powerpoint-light.webp and b/public/icons/webp/microsoft-powerpoint-light.webp differ
diff --git a/public/icons/webp/microsoft-powerpoint.webp b/public/icons/webp/microsoft-powerpoint.webp
index 82d812cc..cbacd21c 100755
Binary files a/public/icons/webp/microsoft-powerpoint.webp and b/public/icons/webp/microsoft-powerpoint.webp differ
diff --git a/public/icons/webp/microsoft-sharepoint-2013-dark.webp b/public/icons/webp/microsoft-sharepoint-2013-dark.webp
new file mode 100755
index 00000000..8fc113bd
Binary files /dev/null and b/public/icons/webp/microsoft-sharepoint-2013-dark.webp differ
diff --git a/public/icons/webp/microsoft-sharepoint-2013-light.webp b/public/icons/webp/microsoft-sharepoint-2013-light.webp
new file mode 100755
index 00000000..9330c018
Binary files /dev/null and b/public/icons/webp/microsoft-sharepoint-2013-light.webp differ
diff --git a/public/icons/webp/microsoft-sharepoint-2013.webp b/public/icons/webp/microsoft-sharepoint-2013.webp
new file mode 100755
index 00000000..d4bd1926
Binary files /dev/null and b/public/icons/webp/microsoft-sharepoint-2013.webp differ
diff --git a/public/icons/webp/microsoft-teams-2016-dark.webp b/public/icons/webp/microsoft-teams-2016-dark.webp
new file mode 100755
index 00000000..aa3a2bee
Binary files /dev/null and b/public/icons/webp/microsoft-teams-2016-dark.webp differ
diff --git a/public/icons/webp/microsoft-teams-2016-light.webp b/public/icons/webp/microsoft-teams-2016-light.webp
new file mode 100755
index 00000000..cdc734ba
Binary files /dev/null and b/public/icons/webp/microsoft-teams-2016-light.webp differ
diff --git a/public/icons/webp/microsoft-teams-2016.webp b/public/icons/webp/microsoft-teams-2016.webp
new file mode 100755
index 00000000..640a25ec
Binary files /dev/null and b/public/icons/webp/microsoft-teams-2016.webp differ
diff --git a/public/icons/webp/microsoft-teams-2018-dark.webp b/public/icons/webp/microsoft-teams-2018-dark.webp
new file mode 100755
index 00000000..f685479a
Binary files /dev/null and b/public/icons/webp/microsoft-teams-2018-dark.webp differ
diff --git a/public/icons/webp/microsoft-teams-2018-light.webp b/public/icons/webp/microsoft-teams-2018-light.webp
new file mode 100755
index 00000000..ba8ea173
Binary files /dev/null and b/public/icons/webp/microsoft-teams-2018-light.webp differ
diff --git a/public/icons/webp/microsoft-teams-2018.webp b/public/icons/webp/microsoft-teams-2018.webp
new file mode 100755
index 00000000..0bd6fd7d
Binary files /dev/null and b/public/icons/webp/microsoft-teams-2018.webp differ
diff --git a/public/icons/webp/microsoft-teams-dark.webp b/public/icons/webp/microsoft-teams-dark.webp
index f685479a..6ca65bce 100755
Binary files a/public/icons/webp/microsoft-teams-dark.webp and b/public/icons/webp/microsoft-teams-dark.webp differ
diff --git a/public/icons/webp/microsoft-teams-light.webp b/public/icons/webp/microsoft-teams-light.webp
index ba8ea173..1f7c57da 100755
Binary files a/public/icons/webp/microsoft-teams-light.webp and b/public/icons/webp/microsoft-teams-light.webp differ
diff --git a/public/icons/webp/microsoft-teams.webp b/public/icons/webp/microsoft-teams.webp
index 0bd6fd7d..0fd9c001 100755
Binary files a/public/icons/webp/microsoft-teams.webp and b/public/icons/webp/microsoft-teams.webp differ
diff --git a/public/icons/webp/microsoft-word-2000-dark.webp b/public/icons/webp/microsoft-word-2000-dark.webp
new file mode 100755
index 00000000..20f16d6b
Binary files /dev/null and b/public/icons/webp/microsoft-word-2000-dark.webp differ
diff --git a/public/icons/webp/microsoft-word-2000-light.webp b/public/icons/webp/microsoft-word-2000-light.webp
new file mode 100755
index 00000000..252b6885
Binary files /dev/null and b/public/icons/webp/microsoft-word-2000-light.webp differ
diff --git a/public/icons/webp/microsoft-word-2000.webp b/public/icons/webp/microsoft-word-2000.webp
new file mode 100755
index 00000000..850eb53a
Binary files /dev/null and b/public/icons/webp/microsoft-word-2000.webp differ
diff --git a/public/icons/webp/microsoft-word-2013-dark.webp b/public/icons/webp/microsoft-word-2013-dark.webp
new file mode 100755
index 00000000..5feea1de
Binary files /dev/null and b/public/icons/webp/microsoft-word-2013-dark.webp differ
diff --git a/public/icons/webp/microsoft-word-2013-light.webp b/public/icons/webp/microsoft-word-2013-light.webp
new file mode 100755
index 00000000..b422eb6f
Binary files /dev/null and b/public/icons/webp/microsoft-word-2013-light.webp differ
diff --git a/public/icons/webp/microsoft-word-2013.webp b/public/icons/webp/microsoft-word-2013.webp
new file mode 100755
index 00000000..2761ae19
Binary files /dev/null and b/public/icons/webp/microsoft-word-2013.webp differ
diff --git a/public/icons/webp/microsoft-word-2018-dark.webp b/public/icons/webp/microsoft-word-2018-dark.webp
new file mode 100755
index 00000000..5114ca56
Binary files /dev/null and b/public/icons/webp/microsoft-word-2018-dark.webp differ
diff --git a/public/icons/webp/microsoft-word-2018-light.webp b/public/icons/webp/microsoft-word-2018-light.webp
new file mode 100755
index 00000000..de0cbfb5
Binary files /dev/null and b/public/icons/webp/microsoft-word-2018-light.webp differ
diff --git a/public/icons/webp/microsoft-word-2018.webp b/public/icons/webp/microsoft-word-2018.webp
new file mode 100755
index 00000000..fe3a67be
Binary files /dev/null and b/public/icons/webp/microsoft-word-2018.webp differ
diff --git a/public/icons/webp/microsoft-word-dark.webp b/public/icons/webp/microsoft-word-dark.webp
index 5114ca56..deb4a4c0 100755
Binary files a/public/icons/webp/microsoft-word-dark.webp and b/public/icons/webp/microsoft-word-dark.webp differ
diff --git a/public/icons/webp/microsoft-word-light.webp b/public/icons/webp/microsoft-word-light.webp
index de0cbfb5..9683f5bd 100755
Binary files a/public/icons/webp/microsoft-word-light.webp and b/public/icons/webp/microsoft-word-light.webp differ
diff --git a/public/icons/webp/microsoft-word.webp b/public/icons/webp/microsoft-word.webp
index fe3a67be..b835682a 100755
Binary files a/public/icons/webp/microsoft-word.webp and b/public/icons/webp/microsoft-word.webp differ
diff --git a/public/icons/webp/miles-and-more-dark.webp b/public/icons/webp/miles-and-more-dark.webp
new file mode 100755
index 00000000..63fe086b
Binary files /dev/null and b/public/icons/webp/miles-and-more-dark.webp differ
diff --git a/public/icons/webp/miles-and-more-light.webp b/public/icons/webp/miles-and-more-light.webp
new file mode 100755
index 00000000..3c54e48a
Binary files /dev/null and b/public/icons/webp/miles-and-more-light.webp differ
diff --git a/public/icons/webp/miles-and-more.webp b/public/icons/webp/miles-and-more.webp
new file mode 100755
index 00000000..3d960a33
Binary files /dev/null and b/public/icons/webp/miles-and-more.webp differ
diff --git a/public/icons/webp/myip-dark.webp b/public/icons/webp/myip-dark.webp
new file mode 100755
index 00000000..93605e41
Binary files /dev/null and b/public/icons/webp/myip-dark.webp differ
diff --git a/public/icons/webp/myip-light.webp b/public/icons/webp/myip-light.webp
new file mode 100755
index 00000000..15831578
Binary files /dev/null and b/public/icons/webp/myip-light.webp differ
diff --git a/public/icons/webp/myip.webp b/public/icons/webp/myip.webp
new file mode 100755
index 00000000..93605e41
Binary files /dev/null and b/public/icons/webp/myip.webp differ
diff --git a/public/icons/webp/nextexplorer-dark.webp b/public/icons/webp/nextexplorer-dark.webp
new file mode 100755
index 00000000..348fcd44
Binary files /dev/null and b/public/icons/webp/nextexplorer-dark.webp differ
diff --git a/public/icons/webp/nextexplorer-light.webp b/public/icons/webp/nextexplorer-light.webp
new file mode 100755
index 00000000..2261a4c8
Binary files /dev/null and b/public/icons/webp/nextexplorer-light.webp differ
diff --git a/public/icons/webp/nextexplorer.webp b/public/icons/webp/nextexplorer.webp
new file mode 100755
index 00000000..52867260
Binary files /dev/null and b/public/icons/webp/nextexplorer.webp differ
diff --git a/public/icons/webp/ontime-dark.webp b/public/icons/webp/ontime-dark.webp
new file mode 100755
index 00000000..c1412364
Binary files /dev/null and b/public/icons/webp/ontime-dark.webp differ
diff --git a/public/icons/webp/ontime-light.webp b/public/icons/webp/ontime-light.webp
new file mode 100755
index 00000000..9ee805f3
Binary files /dev/null and b/public/icons/webp/ontime-light.webp differ
diff --git a/public/icons/webp/ontime.webp b/public/icons/webp/ontime.webp
new file mode 100755
index 00000000..25584fcd
Binary files /dev/null and b/public/icons/webp/ontime.webp differ
diff --git a/public/icons/webp/pequeroku-dark.webp b/public/icons/webp/pequeroku-dark.webp
new file mode 100755
index 00000000..2254f780
Binary files /dev/null and b/public/icons/webp/pequeroku-dark.webp differ
diff --git a/public/icons/webp/pequeroku-light.webp b/public/icons/webp/pequeroku-light.webp
new file mode 100755
index 00000000..8333bc8a
Binary files /dev/null and b/public/icons/webp/pequeroku-light.webp differ
diff --git a/public/icons/webp/pequeroku.webp b/public/icons/webp/pequeroku.webp
new file mode 100755
index 00000000..69db81df
Binary files /dev/null and b/public/icons/webp/pequeroku.webp differ
diff --git a/public/icons/webp/pigeonpod-dark.webp b/public/icons/webp/pigeonpod-dark.webp
new file mode 100755
index 00000000..41ad32d5
Binary files /dev/null and b/public/icons/webp/pigeonpod-dark.webp differ
diff --git a/public/icons/webp/pigeonpod-light.webp b/public/icons/webp/pigeonpod-light.webp
new file mode 100755
index 00000000..116c35c7
Binary files /dev/null and b/public/icons/webp/pigeonpod-light.webp differ
diff --git a/public/icons/webp/pigeonpod.webp b/public/icons/webp/pigeonpod.webp
new file mode 100755
index 00000000..b2739551
Binary files /dev/null and b/public/icons/webp/pigeonpod.webp differ
diff --git a/public/icons/webp/poznote-dark.webp b/public/icons/webp/poznote-dark.webp
new file mode 100755
index 00000000..885790ad
Binary files /dev/null and b/public/icons/webp/poznote-dark.webp differ
diff --git a/public/icons/webp/poznote-light.webp b/public/icons/webp/poznote-light.webp
new file mode 100755
index 00000000..4c7dd3af
Binary files /dev/null and b/public/icons/webp/poznote-light.webp differ
diff --git a/public/icons/webp/poznote.webp b/public/icons/webp/poznote.webp
new file mode 100755
index 00000000..5fa261ea
Binary files /dev/null and b/public/icons/webp/poznote.webp differ
diff --git a/public/icons/webp/private-captcha-dark.webp b/public/icons/webp/private-captcha-dark.webp
new file mode 100755
index 00000000..68b9687d
Binary files /dev/null and b/public/icons/webp/private-captcha-dark.webp differ
diff --git a/public/icons/webp/private-captcha-light.webp b/public/icons/webp/private-captcha-light.webp
new file mode 100755
index 00000000..d3aba182
Binary files /dev/null and b/public/icons/webp/private-captcha-light.webp differ
diff --git a/public/icons/webp/private-captcha.webp b/public/icons/webp/private-captcha.webp
new file mode 100755
index 00000000..d107bf1e
Binary files /dev/null and b/public/icons/webp/private-captcha.webp differ
diff --git a/public/icons/webp/quetre-dark.webp b/public/icons/webp/quetre-dark.webp
new file mode 100755
index 00000000..1d46c187
Binary files /dev/null and b/public/icons/webp/quetre-dark.webp differ
diff --git a/public/icons/webp/quetre-light.webp b/public/icons/webp/quetre-light.webp
new file mode 100755
index 00000000..a7418d8e
Binary files /dev/null and b/public/icons/webp/quetre-light.webp differ
diff --git a/public/icons/webp/quetre.webp b/public/icons/webp/quetre.webp
new file mode 100755
index 00000000..9c9eb28b
Binary files /dev/null and b/public/icons/webp/quetre.webp differ
diff --git a/public/icons/webp/quickbars-dark.webp b/public/icons/webp/quickbars-dark.webp
new file mode 100755
index 00000000..eaee8e69
Binary files /dev/null and b/public/icons/webp/quickbars-dark.webp differ
diff --git a/public/icons/webp/quickbars-light.webp b/public/icons/webp/quickbars-light.webp
new file mode 100755
index 00000000..082ad0bf
Binary files /dev/null and b/public/icons/webp/quickbars-light.webp differ
diff --git a/public/icons/webp/quickbars.webp b/public/icons/webp/quickbars.webp
new file mode 100755
index 00000000..c2e7504e
Binary files /dev/null and b/public/icons/webp/quickbars.webp differ
diff --git a/public/icons/webp/seagate-dark.webp b/public/icons/webp/seagate-dark.webp
new file mode 100755
index 00000000..ced53b2a
Binary files /dev/null and b/public/icons/webp/seagate-dark.webp differ
diff --git a/public/icons/webp/seagate-light.webp b/public/icons/webp/seagate-light.webp
new file mode 100755
index 00000000..4f6fbc40
Binary files /dev/null and b/public/icons/webp/seagate-light.webp differ
diff --git a/public/icons/webp/seagate.webp b/public/icons/webp/seagate.webp
new file mode 100755
index 00000000..bc5634bb
Binary files /dev/null and b/public/icons/webp/seagate.webp differ
diff --git a/public/icons/webp/secluso-dark.webp b/public/icons/webp/secluso-dark.webp
new file mode 100755
index 00000000..be2a55e4
Binary files /dev/null and b/public/icons/webp/secluso-dark.webp differ
diff --git a/public/icons/webp/secluso-light.webp b/public/icons/webp/secluso-light.webp
new file mode 100755
index 00000000..210a2ff7
Binary files /dev/null and b/public/icons/webp/secluso-light.webp differ
diff --git a/public/icons/webp/secluso.webp b/public/icons/webp/secluso.webp
new file mode 100755
index 00000000..2583f656
Binary files /dev/null and b/public/icons/webp/secluso.webp differ
diff --git a/public/icons/webp/shopware-dark.webp b/public/icons/webp/shopware-dark.webp
new file mode 100755
index 00000000..7a849048
Binary files /dev/null and b/public/icons/webp/shopware-dark.webp differ
diff --git a/public/icons/webp/shopware-light.webp b/public/icons/webp/shopware-light.webp
new file mode 100755
index 00000000..46d3cb90
Binary files /dev/null and b/public/icons/webp/shopware-light.webp differ
diff --git a/public/icons/webp/shopware.webp b/public/icons/webp/shopware.webp
new file mode 100755
index 00000000..e3e85d04
Binary files /dev/null and b/public/icons/webp/shopware.webp differ
diff --git a/public/icons/webp/smartfox-dark.webp b/public/icons/webp/smartfox-dark.webp
new file mode 100755
index 00000000..3e91569e
Binary files /dev/null and b/public/icons/webp/smartfox-dark.webp differ
diff --git a/public/icons/webp/smartfox-light.webp b/public/icons/webp/smartfox-light.webp
new file mode 100755
index 00000000..6f6cc18a
Binary files /dev/null and b/public/icons/webp/smartfox-light.webp differ
diff --git a/public/icons/webp/smartfox.webp b/public/icons/webp/smartfox.webp
new file mode 100755
index 00000000..3d18df88
Binary files /dev/null and b/public/icons/webp/smartfox.webp differ
diff --git a/public/icons/webp/sonobarr-dark.webp b/public/icons/webp/sonobarr-dark.webp
new file mode 100755
index 00000000..7aec7ee5
Binary files /dev/null and b/public/icons/webp/sonobarr-dark.webp differ
diff --git a/public/icons/webp/sonobarr-light.webp b/public/icons/webp/sonobarr-light.webp
new file mode 100755
index 00000000..f6f33810
Binary files /dev/null and b/public/icons/webp/sonobarr-light.webp differ
diff --git a/public/icons/webp/sonobarr.webp b/public/icons/webp/sonobarr.webp
new file mode 100755
index 00000000..0e89f150
Binary files /dev/null and b/public/icons/webp/sonobarr.webp differ
diff --git a/public/icons/webp/stoat-dark.webp b/public/icons/webp/stoat-dark.webp
new file mode 100755
index 00000000..8b835429
Binary files /dev/null and b/public/icons/webp/stoat-dark.webp differ
diff --git a/public/icons/webp/stoat-light.webp b/public/icons/webp/stoat-light.webp
new file mode 100755
index 00000000..838304cb
Binary files /dev/null and b/public/icons/webp/stoat-light.webp differ
diff --git a/public/icons/webp/stoat.webp b/public/icons/webp/stoat.webp
new file mode 100755
index 00000000..8af4db1e
Binary files /dev/null and b/public/icons/webp/stoat.webp differ
diff --git a/public/icons/webp/tasktrove-dark.webp b/public/icons/webp/tasktrove-dark.webp
new file mode 100755
index 00000000..7177ed0c
Binary files /dev/null and b/public/icons/webp/tasktrove-dark.webp differ
diff --git a/public/icons/webp/tasktrove-light.webp b/public/icons/webp/tasktrove-light.webp
new file mode 100755
index 00000000..18ffc326
Binary files /dev/null and b/public/icons/webp/tasktrove-light.webp differ
diff --git a/public/icons/webp/tasktrove.webp b/public/icons/webp/tasktrove.webp
new file mode 100755
index 00000000..1f85ff60
Binary files /dev/null and b/public/icons/webp/tasktrove.webp differ
diff --git a/public/icons/webp/termix-dark.webp b/public/icons/webp/termix-dark.webp
index 273ccc56..c3ad3dc2 100755
Binary files a/public/icons/webp/termix-dark.webp and b/public/icons/webp/termix-dark.webp differ
diff --git a/public/icons/webp/termix-light.webp b/public/icons/webp/termix-light.webp
index 1dfa8e27..e94e45e8 100755
Binary files a/public/icons/webp/termix-light.webp and b/public/icons/webp/termix-light.webp differ
diff --git a/public/icons/webp/termix.webp b/public/icons/webp/termix.webp
index 4d4daa01..46422e8c 100755
Binary files a/public/icons/webp/termix.webp and b/public/icons/webp/termix.webp differ
diff --git a/public/icons/webp/tiny-tiny-rss-dark.webp b/public/icons/webp/tiny-tiny-rss-dark.webp
new file mode 100755
index 00000000..bca111e1
Binary files /dev/null and b/public/icons/webp/tiny-tiny-rss-dark.webp differ
diff --git a/public/icons/webp/tiny-tiny-rss-light.webp b/public/icons/webp/tiny-tiny-rss-light.webp
new file mode 100755
index 00000000..833b95a2
Binary files /dev/null and b/public/icons/webp/tiny-tiny-rss-light.webp differ
diff --git a/public/icons/webp/tiny-tiny-rss.webp b/public/icons/webp/tiny-tiny-rss.webp
index 539edd83..21464c54 100755
Binary files a/public/icons/webp/tiny-tiny-rss.webp and b/public/icons/webp/tiny-tiny-rss.webp differ
diff --git a/public/icons/webp/toodoom-dark.webp b/public/icons/webp/toodoom-dark.webp
new file mode 100755
index 00000000..9bad7c1e
Binary files /dev/null and b/public/icons/webp/toodoom-dark.webp differ
diff --git a/public/icons/webp/toodoom-light.webp b/public/icons/webp/toodoom-light.webp
new file mode 100755
index 00000000..b049b838
Binary files /dev/null and b/public/icons/webp/toodoom-light.webp differ
diff --git a/public/icons/webp/toodoom.webp b/public/icons/webp/toodoom.webp
new file mode 100755
index 00000000..cd2774fb
Binary files /dev/null and b/public/icons/webp/toodoom.webp differ
diff --git a/public/icons/webp/tubetimeout-dark.webp b/public/icons/webp/tubetimeout-dark.webp
new file mode 100755
index 00000000..90639984
Binary files /dev/null and b/public/icons/webp/tubetimeout-dark.webp differ
diff --git a/public/icons/webp/tubetimeout-light.webp b/public/icons/webp/tubetimeout-light.webp
new file mode 100755
index 00000000..5d1f4563
Binary files /dev/null and b/public/icons/webp/tubetimeout-light.webp differ
diff --git a/public/icons/webp/tubetimeout.webp b/public/icons/webp/tubetimeout.webp
new file mode 100755
index 00000000..b6739bfb
Binary files /dev/null and b/public/icons/webp/tubetimeout.webp differ
diff --git a/public/icons/webp/velld-dark.webp b/public/icons/webp/velld-dark.webp
new file mode 100755
index 00000000..9301481b
Binary files /dev/null and b/public/icons/webp/velld-dark.webp differ
diff --git a/public/icons/webp/velld-light.webp b/public/icons/webp/velld-light.webp
new file mode 100755
index 00000000..f55263c0
Binary files /dev/null and b/public/icons/webp/velld-light.webp differ
diff --git a/public/icons/webp/velld.webp b/public/icons/webp/velld.webp
new file mode 100755
index 00000000..3d6c62d2
Binary files /dev/null and b/public/icons/webp/velld.webp differ
diff --git a/public/icons/webp/vertigo-comics-dark.webp b/public/icons/webp/vertigo-comics-dark.webp
new file mode 100755
index 00000000..d78aeaee
Binary files /dev/null and b/public/icons/webp/vertigo-comics-dark.webp differ
diff --git a/public/icons/webp/vertigo-comics-light.webp b/public/icons/webp/vertigo-comics-light.webp
new file mode 100755
index 00000000..1b5032f5
Binary files /dev/null and b/public/icons/webp/vertigo-comics-light.webp differ
diff --git a/public/icons/webp/vertigo-comics.webp b/public/icons/webp/vertigo-comics.webp
new file mode 100755
index 00000000..3443f6dd
Binary files /dev/null and b/public/icons/webp/vertigo-comics.webp differ
diff --git a/public/icons/webp/vmware-esx-dark.webp b/public/icons/webp/vmware-esx-dark.webp
new file mode 100755
index 00000000..e2111760
Binary files /dev/null and b/public/icons/webp/vmware-esx-dark.webp differ
diff --git a/public/icons/webp/vmware-esx-light.webp b/public/icons/webp/vmware-esx-light.webp
new file mode 100755
index 00000000..918a5d3c
Binary files /dev/null and b/public/icons/webp/vmware-esx-light.webp differ
diff --git a/public/icons/webp/vmware-esx.webp b/public/icons/webp/vmware-esx.webp
new file mode 100755
index 00000000..d47da357
Binary files /dev/null and b/public/icons/webp/vmware-esx.webp differ
diff --git a/public/icons/webp/whaledeck.webp b/public/icons/webp/whaledeck.webp
new file mode 100755
index 00000000..f24e599a
Binary files /dev/null and b/public/icons/webp/whaledeck.webp differ
diff --git a/public/icons/webp/zorin-os-dark.webp b/public/icons/webp/zorin-os-dark.webp
new file mode 100755
index 00000000..99e10037
Binary files /dev/null and b/public/icons/webp/zorin-os-dark.webp differ
diff --git a/public/icons/webp/zorin-os-light.webp b/public/icons/webp/zorin-os-light.webp
new file mode 100755
index 00000000..cb499a60
Binary files /dev/null and b/public/icons/webp/zorin-os-light.webp differ
diff --git a/public/icons/webp/zorin-os.webp b/public/icons/webp/zorin-os.webp
new file mode 100755
index 00000000..daeba8a9
Binary files /dev/null and b/public/icons/webp/zorin-os.webp differ