Update GeoIntel project files
|
After Width: | Height: | Size: 98 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-labelledby="title">
|
||||
<title id="title">DockDeck</title>
|
||||
<defs>
|
||||
<linearGradient id="shell" x1="64" y1="42" x2="448" y2="470" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#243732"/>
|
||||
<stop offset="1" stop-color="#111b19"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="deck" x1="142" y1="134" x2="370" y2="372" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#ff8b6e"/>
|
||||
<stop offset="1" stop-color="#d9563d"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="20" y="20" width="472" height="472" rx="122" fill="url(#shell)"/>
|
||||
<rect x="42" y="42" width="428" height="428" rx="103" fill="none" stroke="#fff" stroke-opacity=".08" stroke-width="4"/>
|
||||
<path d="M126 151c0-20 16-36 36-36h103c80 0 145 65 145 145v3c0 74-60 134-134 134H162c-20 0-36-16-36-36V151Z" fill="#f5f4ed"/>
|
||||
<path d="M187 181h78c44 0 80 36 80 80s-36 80-80 80h-78V181Z" fill="url(#deck)"/>
|
||||
<rect x="213" y="214" width="82" height="14" rx="7" fill="#fff" fill-opacity=".9"/>
|
||||
<rect x="213" y="249" width="59" height="14" rx="7" fill="#fff" fill-opacity=".72"/>
|
||||
<rect x="213" y="284" width="71" height="14" rx="7" fill="#fff" fill-opacity=".55"/>
|
||||
<circle cx="378" cy="135" r="26" fill="#8bd5b5" stroke="#17221f" stroke-width="10"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-labelledby="title">
|
||||
<title id="title">DockDeck beeldmerk voor donkere achtergrond</title>
|
||||
<path d="M9 7h13.5C33 7 41 15 41 25.5S33 44 22.5 44H9V7Z" fill="none" stroke="#818cf8" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M7.5 27.5h33M11 27.5l9-11 18 11M20 17v17" fill="none" stroke="#818cf8" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M8 36c4-2.5 8-2.5 12 0s8 2.5 12 0 6-2.5 9-1" fill="none" stroke="#818cf8" stroke-width="3" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 584 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-labelledby="title">
|
||||
<title id="title">DockDeck beeldmerk voor lichte achtergrond</title>
|
||||
<path d="M9 7h13.5C33 7 41 15 41 25.5S33 44 22.5 44H9V7Z" fill="none" stroke="#4f56cf" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M7.5 27.5h33M11 27.5l9-11 18 11M20 17v17" fill="none" stroke="#4f56cf" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M8 36c4-2.5 8-2.5 12 0s8 2.5 12 0 6-2.5 9-1" fill="none" stroke="#4f56cf" stroke-width="3" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 583 B |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-labelledby="title">
|
||||
<title id="title">DockDeck monochroom beeldmerk</title>
|
||||
<path d="M9 7h13.5C33 7 41 15 41 25.5S33 44 22.5 44H9V7Z" fill="none" stroke="currentColor" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M7.5 27.5h33M11 27.5l9-11 18 11M20 17v17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M8 36c4-2.5 8-2.5 12 0s8 2.5 12 0 6-2.5 9-1" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 585 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-labelledby="title">
|
||||
<title id="title">DockDeck</title>
|
||||
<rect width="48" height="48" rx="12" fill="#818cf8"/>
|
||||
<path d="M13 13h9.5C30 13 36 19 36 26.5S30 40 22.5 40H13V13Z" fill="none" stroke="#0b1326" stroke-width="3.4" stroke-linejoin="round"/>
|
||||
<path d="M11.5 28.5h25M15 28.5l7-8 13 8M21 21v13" fill="none" stroke="#0b1326" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M12 35c3-2 6-2 9 0s6 2 9 0 5-2 7-.8" fill="none" stroke="#0b1326" stroke-width="2.8" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 602 B |
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 236 48" role="img" aria-labelledby="title">
|
||||
<title id="title">DockDeck woordmerk</title>
|
||||
<g transform="translate(0)">
|
||||
<path d="M9 7h13.5C33 7 41 15 41 25.5S33 44 22.5 44H9V7Z" fill="none" stroke="#818cf8" stroke-width="3.5" stroke-linejoin="round"/>
|
||||
<path d="M7.5 27.5h33M11 27.5l9-11 18 11M20 17v17" fill="none" stroke="#818cf8" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M8 36c4-2.5 8-2.5 12 0s8 2.5 12 0 6-2.5 9-1" fill="none" stroke="#818cf8" stroke-width="3" stroke-linecap="round"/>
|
||||
</g>
|
||||
<text x="57" y="32" fill="#eef0ff" font-family="Geist, Inter, system-ui, sans-serif" font-size="26" font-weight="650" letter-spacing="-1">DockDeck</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 760 B |
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "DockDeck",
|
||||
"short_name": "DockDeck",
|
||||
"description": "Je persoonlijke startpunt voor apps en favorieten.",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"background_color": "#0b1326",
|
||||
"theme_color": "#818cf8",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/dockdeck-mark.svg",
|
||||
"sizes": "any",
|
||||
"type": "image/svg+xml",
|
||||
"purpose": "any maskable"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/* global self, caches, fetch, URL */
|
||||
|
||||
const CACHE = "dockdeck-shell-v1";
|
||||
const SHELL = ["/", "/manifest.webmanifest", "/dockdeck-icon.svg"];
|
||||
|
||||
self.addEventListener("install", (event) => {
|
||||
event.waitUntil(caches.open(CACHE).then((cache) => cache.addAll(SHELL)));
|
||||
self.skipWaiting();
|
||||
});
|
||||
|
||||
self.addEventListener("activate", (event) => {
|
||||
event.waitUntil(
|
||||
caches
|
||||
.keys()
|
||||
.then((keys) =>
|
||||
Promise.all(
|
||||
keys.filter((key) => key !== CACHE).map((key) => caches.delete(key)),
|
||||
),
|
||||
),
|
||||
);
|
||||
self.clients.claim();
|
||||
});
|
||||
|
||||
self.addEventListener("fetch", (event) => {
|
||||
const request = event.request;
|
||||
const url = new URL(request.url);
|
||||
if (
|
||||
request.method !== "GET" ||
|
||||
url.origin !== self.location.origin ||
|
||||
url.pathname.startsWith("/api/")
|
||||
)
|
||||
return;
|
||||
if (request.mode === "navigate") {
|
||||
event.respondWith(
|
||||
fetch(request)
|
||||
.then((response) => {
|
||||
const copy = response.clone();
|
||||
caches.open(CACHE).then((cache) => cache.put("/", copy));
|
||||
return response;
|
||||
})
|
||||
.catch(() => caches.match("/")),
|
||||
);
|
||||
return;
|
||||
}
|
||||
event.respondWith(
|
||||
caches.match(request).then(
|
||||
(cached) =>
|
||||
cached ||
|
||||
fetch(request).then((response) => {
|
||||
if (response.ok)
|
||||
caches
|
||||
.open(CACHE)
|
||||
.then((cache) => cache.put(request, response.clone()));
|
||||
return response;
|
||||
}),
|
||||
),
|
||||
);
|
||||
});
|
||||