fix(web): icons related issues
4
.gitignore
vendored
@ -3,7 +3,9 @@ dist/
|
|||||||
memos.egg-info/
|
memos.egg-info/
|
||||||
build/
|
build/
|
||||||
*.pyc
|
*.pyc
|
||||||
|
.eggs/
|
||||||
|
.vscode/
|
||||||
typesense-data/
|
typesense-data/
|
||||||
test-data/
|
test-data/
|
||||||
static/
|
memos/static/
|
||||||
db/
|
db/
|
||||||
|
615
web/package-lock.json
generated
@ -16,6 +16,7 @@
|
|||||||
"lucide-svelte": "^0.417.0",
|
"lucide-svelte": "^0.417.0",
|
||||||
"marked": "^13.0.2",
|
"marked": "^13.0.2",
|
||||||
"mode-watcher": "^0.4.1",
|
"mode-watcher": "^0.4.1",
|
||||||
|
"sharp": "^0.33.5",
|
||||||
"svelte-sonner": "^0.3.27",
|
"svelte-sonner": "^0.3.27",
|
||||||
"tailwind-merge": "^2.4.0",
|
"tailwind-merge": "^2.4.0",
|
||||||
"tailwind-variants": "^0.2.1",
|
"tailwind-variants": "^0.2.1",
|
||||||
@ -79,6 +80,39 @@
|
|||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@cspotcode/source-map-support": {
|
||||||
|
"version": "0.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
|
||||||
|
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@jridgewell/trace-mapping": "0.3.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
|
||||||
|
"version": "0.3.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
|
||||||
|
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@jridgewell/resolve-uri": "^3.0.3",
|
||||||
|
"@jridgewell/sourcemap-codec": "^1.4.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@emnapi/runtime": {
|
||||||
|
"version": "1.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz",
|
||||||
|
"integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==",
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@esbuild/android-arm": {
|
"node_modules/@esbuild/android-arm": {
|
||||||
"version": "0.18.20",
|
"version": "0.18.20",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
|
||||||
@ -597,6 +631,348 @@
|
|||||||
"deprecated": "Use @eslint/object-schema instead",
|
"deprecated": "Use @eslint/object-schema instead",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@img/sharp-darwin-arm64": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-libvips-darwin-arm64": "1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-darwin-x64": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-libvips-darwin-x64": "1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-libvips-darwin-arm64": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-libvips-darwin-x64": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-libvips-linux-arm": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==",
|
||||||
|
"cpu": [
|
||||||
|
"arm"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-libvips-linux-arm64": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-libvips-linux-s390x": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==",
|
||||||
|
"cpu": [
|
||||||
|
"s390x"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-libvips-linux-x64": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-libvips-linuxmusl-arm64": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-libvips-linuxmusl-x64": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-linux-arm": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==",
|
||||||
|
"cpu": [
|
||||||
|
"arm"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-libvips-linux-arm": "1.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-linux-arm64": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-libvips-linux-arm64": "1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-linux-s390x": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==",
|
||||||
|
"cpu": [
|
||||||
|
"s390x"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-libvips-linux-s390x": "1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-linux-x64": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-libvips-linux-x64": "1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-linuxmusl-arm64": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-libvips-linuxmusl-arm64": "1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-linuxmusl-x64": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-libvips-linuxmusl-x64": "1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-wasm32": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==",
|
||||||
|
"cpu": [
|
||||||
|
"wasm32"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@emnapi/runtime": "^1.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-win32-ia32": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==",
|
||||||
|
"cpu": [
|
||||||
|
"ia32"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@img/sharp-win32-x64": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@internationalized/date": {
|
"node_modules/@internationalized/date": {
|
||||||
"version": "3.5.5",
|
"version": "3.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz",
|
"resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz",
|
||||||
@ -895,6 +1271,34 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@tsconfig/node10": {
|
||||||
|
"version": "1.0.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
|
||||||
|
"integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@tsconfig/node12": {
|
||||||
|
"version": "1.0.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
|
||||||
|
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@tsconfig/node14": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@tsconfig/node16": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/@types/cookie": {
|
"node_modules/@types/cookie": {
|
||||||
"version": "0.5.4",
|
"version": "0.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.4.tgz",
|
||||||
@ -912,6 +1316,16 @@
|
|||||||
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
|
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/node": {
|
||||||
|
"version": "22.7.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz",
|
||||||
|
"integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"undici-types": "~6.19.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/pug": {
|
"node_modules/@types/pug": {
|
||||||
"version": "2.0.10",
|
"version": "2.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
|
||||||
@ -1140,6 +1554,19 @@
|
|||||||
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/acorn-walk": {
|
||||||
|
"version": "8.3.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
|
||||||
|
"integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"acorn": "^8.11.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ajv": {
|
"node_modules/ajv": {
|
||||||
"version": "6.12.6",
|
"version": "6.12.6",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||||
@ -1499,6 +1926,18 @@
|
|||||||
"periscopic": "^3.1.0"
|
"periscopic": "^3.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/color": {
|
||||||
|
"version": "4.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
|
||||||
|
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
|
||||||
|
"dependencies": {
|
||||||
|
"color-convert": "^2.0.1",
|
||||||
|
"color-string": "^1.9.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/color-convert": {
|
"node_modules/color-convert": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||||
@ -1515,6 +1954,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/color-string": {
|
||||||
|
"version": "1.9.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
|
||||||
|
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
|
||||||
|
"dependencies": {
|
||||||
|
"color-name": "^1.0.0",
|
||||||
|
"simple-swizzle": "^0.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/combined-stream": {
|
"node_modules/combined-stream": {
|
||||||
"version": "1.0.8",
|
"version": "1.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||||
@ -1549,6 +1997,13 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/create-require": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/cross-env": {
|
"node_modules/cross-env": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
|
||||||
@ -1708,6 +2163,14 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/detect-libc": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
|
||||||
|
"integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/devalue": {
|
"node_modules/devalue": {
|
||||||
"version": "4.3.3",
|
"version": "4.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz",
|
||||||
@ -1719,6 +2182,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
||||||
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
|
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/diff": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.3.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/dir-glob": {
|
"node_modules/dir-glob": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
|
||||||
@ -2473,6 +2946,11 @@
|
|||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/is-arrayish": {
|
||||||
|
"version": "0.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
|
||||||
|
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
|
||||||
|
},
|
||||||
"node_modules/is-binary-path": {
|
"node_modules/is-binary-path": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||||
@ -2731,6 +3209,13 @@
|
|||||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/make-error": {
|
||||||
|
"version": "1.3.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
|
||||||
|
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/marked": {
|
"node_modules/marked": {
|
||||||
"version": "13.0.2",
|
"version": "13.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/marked/-/marked-13.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/marked/-/marked-13.0.2.tgz",
|
||||||
@ -3498,10 +3983,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/semver": {
|
"node_modules/semver": {
|
||||||
"version": "7.6.2",
|
"version": "7.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
|
||||||
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
|
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
|
||||||
"dev": true,
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
},
|
},
|
||||||
@ -3515,6 +3999,44 @@
|
|||||||
"integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
|
"integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/sharp": {
|
||||||
|
"version": "0.33.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
|
||||||
|
"integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"color": "^4.2.3",
|
||||||
|
"detect-libc": "^2.0.3",
|
||||||
|
"semver": "^7.6.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@img/sharp-darwin-arm64": "0.33.5",
|
||||||
|
"@img/sharp-darwin-x64": "0.33.5",
|
||||||
|
"@img/sharp-libvips-darwin-arm64": "1.0.4",
|
||||||
|
"@img/sharp-libvips-darwin-x64": "1.0.4",
|
||||||
|
"@img/sharp-libvips-linux-arm": "1.0.5",
|
||||||
|
"@img/sharp-libvips-linux-arm64": "1.0.4",
|
||||||
|
"@img/sharp-libvips-linux-s390x": "1.0.4",
|
||||||
|
"@img/sharp-libvips-linux-x64": "1.0.4",
|
||||||
|
"@img/sharp-libvips-linuxmusl-arm64": "1.0.4",
|
||||||
|
"@img/sharp-libvips-linuxmusl-x64": "1.0.4",
|
||||||
|
"@img/sharp-linux-arm": "0.33.5",
|
||||||
|
"@img/sharp-linux-arm64": "0.33.5",
|
||||||
|
"@img/sharp-linux-s390x": "0.33.5",
|
||||||
|
"@img/sharp-linux-x64": "0.33.5",
|
||||||
|
"@img/sharp-linuxmusl-arm64": "0.33.5",
|
||||||
|
"@img/sharp-linuxmusl-x64": "0.33.5",
|
||||||
|
"@img/sharp-wasm32": "0.33.5",
|
||||||
|
"@img/sharp-win32-ia32": "0.33.5",
|
||||||
|
"@img/sharp-win32-x64": "0.33.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/shebang-command": {
|
"node_modules/shebang-command": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||||
@ -3545,6 +4067,14 @@
|
|||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/simple-swizzle": {
|
||||||
|
"version": "0.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
||||||
|
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
|
||||||
|
"dependencies": {
|
||||||
|
"is-arrayish": "^0.3.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/sirv": {
|
"node_modules/sirv": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
|
||||||
@ -4133,6 +4663,57 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
||||||
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
|
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/ts-node": {
|
||||||
|
"version": "10.9.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
|
||||||
|
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@cspotcode/source-map-support": "^0.8.0",
|
||||||
|
"@tsconfig/node10": "^1.0.7",
|
||||||
|
"@tsconfig/node12": "^1.0.7",
|
||||||
|
"@tsconfig/node14": "^1.0.0",
|
||||||
|
"@tsconfig/node16": "^1.0.2",
|
||||||
|
"acorn": "^8.4.1",
|
||||||
|
"acorn-walk": "^8.1.1",
|
||||||
|
"arg": "^4.1.0",
|
||||||
|
"create-require": "^1.1.0",
|
||||||
|
"diff": "^4.0.1",
|
||||||
|
"make-error": "^1.1.1",
|
||||||
|
"v8-compile-cache-lib": "^3.0.1",
|
||||||
|
"yn": "3.1.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"ts-node": "dist/bin.js",
|
||||||
|
"ts-node-cwd": "dist/bin-cwd.js",
|
||||||
|
"ts-node-esm": "dist/bin-esm.js",
|
||||||
|
"ts-node-script": "dist/bin-script.js",
|
||||||
|
"ts-node-transpile-only": "dist/bin-transpile.js",
|
||||||
|
"ts-script": "dist/bin-script-deprecated.js"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@swc/core": ">=1.2.50",
|
||||||
|
"@swc/wasm": ">=1.2.50",
|
||||||
|
"@types/node": "*",
|
||||||
|
"typescript": ">=2.7"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@swc/core": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@swc/wasm": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ts-node/node_modules/arg": {
|
||||||
|
"version": "4.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
|
||||||
|
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/tslib": {
|
"node_modules/tslib": {
|
||||||
"version": "2.6.3",
|
"version": "2.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
|
||||||
@ -4166,7 +4747,7 @@
|
|||||||
"version": "5.5.2",
|
"version": "5.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz",
|
||||||
"integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==",
|
"integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==",
|
||||||
"dev": true,
|
"devOptional": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
"tsserver": "bin/tsserver"
|
"tsserver": "bin/tsserver"
|
||||||
@ -4202,6 +4783,13 @@
|
|||||||
"node": ">=14.0"
|
"node": ">=14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/undici-types": {
|
||||||
|
"version": "6.19.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
|
||||||
|
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/update-browserslist-db": {
|
"node_modules/update-browserslist-db": {
|
||||||
"version": "1.0.16",
|
"version": "1.0.16",
|
||||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
|
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
|
||||||
@ -4246,6 +4834,13 @@
|
|||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/v8-compile-cache-lib": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "4.5.3",
|
"version": "4.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
|
||||||
@ -4440,6 +5035,16 @@
|
|||||||
"node": ">= 6"
|
"node": ">= 6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/yn": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||||
|
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/yocto-queue": {
|
"node_modules/yocto-queue": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||||
"lint": "prettier --plugin-search-dir . --check . && eslint .",
|
"lint": "prettier --plugin-search-dir . --check . && eslint .",
|
||||||
"format": "prettier --plugin-search-dir . --write ."
|
"format": "prettier --plugin-search-dir . --write .",
|
||||||
|
"generate-logos": "node scripts/generateStaticLogos.js"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-auto": "^2.1.1",
|
"@sveltejs/adapter-auto": "^2.1.1",
|
||||||
@ -43,6 +44,7 @@
|
|||||||
"lucide-svelte": "^0.417.0",
|
"lucide-svelte": "^0.417.0",
|
||||||
"marked": "^13.0.2",
|
"marked": "^13.0.2",
|
||||||
"mode-watcher": "^0.4.1",
|
"mode-watcher": "^0.4.1",
|
||||||
|
"sharp": "^0.33.5",
|
||||||
"svelte-sonner": "^0.3.27",
|
"svelte-sonner": "^0.3.27",
|
||||||
"tailwind-merge": "^2.4.0",
|
"tailwind-merge": "^2.4.0",
|
||||||
"tailwind-variants": "^0.2.1",
|
"tailwind-variants": "^0.2.1",
|
||||||
|
55
web/scripts/generateStaticLogos.js
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import sharp from 'sharp';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
import { generateMemosLogo } from './logoGenerator.js';
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = path.dirname(__filename);
|
||||||
|
|
||||||
|
|
||||||
|
async function generatePNGLogo(size, outputFileName) {
|
||||||
|
let svgContent;
|
||||||
|
if (size <= 256) {
|
||||||
|
svgContent = generateMemosLogo(size, false, false);
|
||||||
|
} else {
|
||||||
|
svgContent = generateMemosLogo(size, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保 logos 目录存在
|
||||||
|
const logosDir = path.join(__dirname, '..', 'static', 'logos');
|
||||||
|
if (!fs.existsSync(logosDir)) {
|
||||||
|
fs.mkdirSync(logosDir, { recursive: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
const outputPath = path.join(logosDir, outputFileName);
|
||||||
|
|
||||||
|
await sharp(Buffer.from(svgContent))
|
||||||
|
.png()
|
||||||
|
.toFile(outputPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mac app icon sizes
|
||||||
|
const iconSizes = [16, 32, 64, 128, 256, 512, 1024];
|
||||||
|
|
||||||
|
// Generate logos for each size
|
||||||
|
(async () => {
|
||||||
|
for (const size of iconSizes) {
|
||||||
|
await generatePNGLogo(size, `memos_logo_${size}.png`);
|
||||||
|
// Generate @2x version for Retina displays
|
||||||
|
await generatePNGLogo(size * 2, `memos_logo_${size}@2x.png`);
|
||||||
|
}
|
||||||
|
console.log('PNG logos generated successfully in the static/logos directory!');
|
||||||
|
|
||||||
|
// Copy 128x128 logo to static/favicon.png
|
||||||
|
const sourceFile = path.join(__dirname, '..', 'static', 'logos', 'memos_logo_128.png');
|
||||||
|
const destinationFile = path.join(__dirname, '..', 'static', 'favicon.png');
|
||||||
|
|
||||||
|
fs.copyFile(sourceFile, destinationFile, (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('Error copying favicon:', err);
|
||||||
|
} else {
|
||||||
|
console.log('Favicon copied successfully to static/favicon.png');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
139
web/scripts/logoGenerator.js
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
function seededRandom(seed) {
|
||||||
|
let x = Math.sin(seed++) * 10000;
|
||||||
|
return x - Math.floor(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepareMatrixFromFixedIndexAndLittleRadom(withBorder) {
|
||||||
|
const bgColors = ['#f2f2f2', '#e9e9e9', '#d8d8d8']
|
||||||
|
// const colors = ['#d0e8ff', '#F2295F', '#E0A0F2', '#F2B705'];
|
||||||
|
const colors = ['#d0e8ff', '#BF244E', '#8C2685', '#21A650'];
|
||||||
|
const mShape = withBorder
|
||||||
|
? [
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 2, 0, 0, 0, 2, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 2, 2, 0, 2, 2, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 2, 2, 2, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
: [
|
||||||
|
[1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 2, 0, 0, 0, 2, 3, 3, 3],
|
||||||
|
[1, 1, 1, 2, 2, 0, 2, 2, 3, 3, 3],
|
||||||
|
[1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 2, 2, 2, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3]
|
||||||
|
];
|
||||||
|
|
||||||
|
const gridSize = withBorder ? 13 : 11;
|
||||||
|
let seed = 42;
|
||||||
|
const matrix = [];
|
||||||
|
|
||||||
|
for (let row = 0; row < gridSize; row++) {
|
||||||
|
const rowColors = [];
|
||||||
|
const bgSize = bgColors.length;
|
||||||
|
for (let col = 0; col < gridSize; col++) {
|
||||||
|
if (mShape[row][col] === 0) {
|
||||||
|
rowColors.push(bgColors[Math.floor(seededRandom(seed++) * bgSize)]);
|
||||||
|
} else {
|
||||||
|
rowColors.push(colors[mShape[row][col]]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
matrix.push(rowColors);
|
||||||
|
}
|
||||||
|
|
||||||
|
return matrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepareMatrixFromRandomColors(withBorder) {
|
||||||
|
const colors = ['#d0e8ff', '#a1d2ff', '#64b5f6', '#1565c0', '#0d47a1'];
|
||||||
|
const mShape = withBorder
|
||||||
|
? [
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
: [
|
||||||
|
[1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
|
||||||
|
[1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
|
||||||
|
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1]
|
||||||
|
];
|
||||||
|
|
||||||
|
const gridSize = withBorder ? 13 : 11;
|
||||||
|
let seed = 42;
|
||||||
|
const matrix = [];
|
||||||
|
|
||||||
|
for (let row = 0; row < gridSize; row++) {
|
||||||
|
const rowColors = [];
|
||||||
|
for (let col = 0; col < gridSize; col++) {
|
||||||
|
let colorIndex;
|
||||||
|
if (mShape[row][col] === 1) {
|
||||||
|
colorIndex = Math.floor(seededRandom(seed++) * 2) + 3;
|
||||||
|
} else {
|
||||||
|
colorIndex = Math.floor(seededRandom(seed++) * 2);
|
||||||
|
}
|
||||||
|
rowColors.push(colors[colorIndex]);
|
||||||
|
}
|
||||||
|
matrix.push(rowColors);
|
||||||
|
}
|
||||||
|
|
||||||
|
return matrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateSvg(matrix, size, hasGap) {
|
||||||
|
const gridSize = matrix.length;
|
||||||
|
const cellSize = 1;
|
||||||
|
const rectSize = hasGap ? 0.85 : 1;
|
||||||
|
const offset = hasGap ? 0.075 : 0;
|
||||||
|
|
||||||
|
let svgContent = `<svg width="${size}" height="${size}" viewBox="0 0 ${gridSize} ${gridSize}" xmlns="http://www.w3.org/2000/svg" opacity="1">
|
||||||
|
`;
|
||||||
|
|
||||||
|
for (let row = 0; row < gridSize; row++) {
|
||||||
|
for (let col = 0; col < gridSize; col++) {
|
||||||
|
svgContent += ` <rect x="${col * cellSize + offset}" y="${
|
||||||
|
row * cellSize + offset
|
||||||
|
}" width="${rectSize}" height="${rectSize}" rx="${hasGap ? 0.15 : 0}" ry="${hasGap ? 0.15 : 0}" fill="${matrix[row][col]}" />
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
svgContent += `</svg>`;
|
||||||
|
return svgContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function generateMemosLogo(size, withBorder, hasGap) {
|
||||||
|
const matrix = prepareMatrixFromRandomColors(withBorder);
|
||||||
|
return generateSvg(matrix, size, hasGap);
|
||||||
|
}
|
||||||
|
|
@ -1,147 +1,12 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
function seededRandom(seed: number): number {
|
import { generateMemosLogo } from '$lib/logoGenerator';
|
||||||
let x = Math.sin(seed++) * 10000;
|
|
||||||
return x - Math.floor(x);
|
|
||||||
}
|
|
||||||
|
|
||||||
export let size = 32;
|
export let size = 32;
|
||||||
export let class_ = '';
|
export let class_ = '';
|
||||||
export let withBorder = true;
|
export let withBorder = true;
|
||||||
|
export let hasGap = true;
|
||||||
|
|
||||||
function prepareMatrixFromFixedIndexAndLittleRadom(withBorder: boolean): string[][] {
|
$: logoSvg = generateMemosLogo(size, withBorder, hasGap);
|
||||||
const bgColors = ['#f2f2f2', '#e9e9e9', '#d8d8d8']
|
|
||||||
// const colors = ['#d0e8ff', '#F2295F', '#E0A0F2', '#F2B705'];
|
|
||||||
const colors = ['#d0e8ff', '#BF244E', '#8C2685', '#21A650'];
|
|
||||||
const mShape = withBorder
|
|
||||||
? [
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 2, 0, 0, 0, 2, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 2, 2, 0, 2, 2, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 0, 2, 2, 2, 0, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
||||||
]
|
|
||||||
: [
|
|
||||||
[1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 3],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
|
||||||
[1, 1, 1, 2, 0, 0, 0, 2, 3, 3, 3],
|
|
||||||
[1, 1, 1, 2, 2, 0, 2, 2, 3, 3, 3],
|
|
||||||
[1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3],
|
|
||||||
[1, 1, 1, 0, 2, 2, 2, 0, 3, 3, 3],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3]
|
|
||||||
];
|
|
||||||
|
|
||||||
const gridSize = withBorder ? 13 : 11;
|
|
||||||
let seed = 42;
|
|
||||||
const matrix: string[][] = [];
|
|
||||||
|
|
||||||
for (let row = 0; row < gridSize; row++) {
|
|
||||||
const rowColors: string[] = [];
|
|
||||||
const bgSize = bgColors.length;
|
|
||||||
for (let col = 0; col < gridSize; col++) {
|
|
||||||
if (mShape[row][col] === 0) {
|
|
||||||
rowColors.push(bgColors[Math.floor(seededRandom(seed++) * bgSize)]);
|
|
||||||
} else {
|
|
||||||
rowColors.push(colors[mShape[row][col]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
matrix.push(rowColors);
|
|
||||||
}
|
|
||||||
|
|
||||||
return matrix;
|
|
||||||
}
|
|
||||||
|
|
||||||
function prepareMatrixFromRandomColors(withBorder: boolean): string[][] {
|
|
||||||
const colors = ['#d0e8ff', '#a1d2ff', '#64b5f6', '#1565c0', '#0d47a1'];
|
|
||||||
const mShape = withBorder
|
|
||||||
? [
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
||||||
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
|
||||||
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
||||||
]
|
|
||||||
: [
|
|
||||||
[1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
|
||||||
[1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
|
|
||||||
[1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
|
|
||||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
||||||
[1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
|
||||||
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1]
|
|
||||||
];
|
|
||||||
|
|
||||||
const gridSize = withBorder ? 13 : 11;
|
|
||||||
let seed = 42;
|
|
||||||
const matrix: string[][] = [];
|
|
||||||
|
|
||||||
for (let row = 0; row < gridSize; row++) {
|
|
||||||
const rowColors: string[] = [];
|
|
||||||
for (let col = 0; col < gridSize; col++) {
|
|
||||||
let colorIndex;
|
|
||||||
if (mShape[row][col] === 1) {
|
|
||||||
colorIndex = Math.floor(seededRandom(seed++) * 2) + 3;
|
|
||||||
} else {
|
|
||||||
colorIndex = Math.floor(seededRandom(seed++) * 3);
|
|
||||||
}
|
|
||||||
rowColors.push(colors[colorIndex]);
|
|
||||||
}
|
|
||||||
matrix.push(rowColors);
|
|
||||||
}
|
|
||||||
|
|
||||||
return matrix;
|
|
||||||
}
|
|
||||||
|
|
||||||
function generateSvg(matrix: string[][], size: number): string {
|
|
||||||
const gridSize = matrix.length;
|
|
||||||
const cellSize = 1;
|
|
||||||
const rectSize = 0.85;
|
|
||||||
|
|
||||||
let svgContent = `<svg width="${size}" height="${size}" viewBox="0 0 ${gridSize} ${gridSize}" xmlns="http://www.w3.org/2000/svg" opacity="1">
|
|
||||||
`;
|
|
||||||
|
|
||||||
for (let row = 0; row < gridSize; row++) {
|
|
||||||
for (let col = 0; col < gridSize; col++) {
|
|
||||||
svgContent += ` <rect x="${col * cellSize + 0.075}" y="${
|
|
||||||
row * cellSize + 0.075
|
|
||||||
}" width="${rectSize}" height="${rectSize}" rx="0.15" ry="0.15" fill="${matrix[row][col]}" />
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
svgContent += `</svg>`;
|
|
||||||
return svgContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
function generateMemosLogo(size: number, withBorder: boolean): string {
|
|
||||||
const matrix = prepareMatrixFromFixedIndexAndLittleRadom(withBorder);
|
|
||||||
return generateSvg(matrix, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
$: logoSvg = generateMemosLogo(size, withBorder);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class={`${class_}`}>
|
<div class={`${class_}`}>
|
||||||
|
@ -1,6 +1,63 @@
|
|||||||
<script>
|
<script lang="ts">
|
||||||
import * as icons from 'lucide-svelte';
|
import {
|
||||||
export let name;
|
Chrome,
|
||||||
</script>
|
Globe,
|
||||||
|
Code,
|
||||||
<svelte:component this="{icons[name]}" {...$$props} />
|
LayoutGrid,
|
||||||
|
MessageSquareCode,
|
||||||
|
Eye,
|
||||||
|
SquareTerminal,
|
||||||
|
Phone,
|
||||||
|
Folder,
|
||||||
|
Mail,
|
||||||
|
NotebookTabs,
|
||||||
|
CalendarFold,
|
||||||
|
Bell,
|
||||||
|
Atom,
|
||||||
|
Compass,
|
||||||
|
Settings,
|
||||||
|
CircleDollarSign,
|
||||||
|
Activity,
|
||||||
|
Search,
|
||||||
|
Lock,
|
||||||
|
CloudDownload,
|
||||||
|
Bot,
|
||||||
|
Github,
|
||||||
|
Youtube,
|
||||||
|
Hexagon,
|
||||||
|
Image
|
||||||
|
} from 'lucide-svelte';
|
||||||
|
|
||||||
|
const iconMap = {
|
||||||
|
Chrome,
|
||||||
|
Globe,
|
||||||
|
Code,
|
||||||
|
LayoutGrid,
|
||||||
|
MessageSquareCode,
|
||||||
|
Eye,
|
||||||
|
SquareTerminal,
|
||||||
|
Phone,
|
||||||
|
Folder,
|
||||||
|
Mail,
|
||||||
|
NotebookTabs,
|
||||||
|
CalendarFold,
|
||||||
|
Bell,
|
||||||
|
Atom,
|
||||||
|
Compass,
|
||||||
|
Settings,
|
||||||
|
CircleDollarSign,
|
||||||
|
Activity,
|
||||||
|
Search,
|
||||||
|
Lock,
|
||||||
|
CloudDownload,
|
||||||
|
Bot,
|
||||||
|
Github,
|
||||||
|
Youtube,
|
||||||
|
Hexagon,
|
||||||
|
Image
|
||||||
|
};
|
||||||
|
|
||||||
|
export let name: keyof typeof iconMap;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svelte:component this={iconMap[name] || Hexagon} {...$$props} />
|
139
web/src/lib/logoGenerator.ts
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
function seededRandom(seed: number): number {
|
||||||
|
let x = Math.sin(seed++) * 10000;
|
||||||
|
return x - Math.floor(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepareMatrixFromFixedIndexAndLittleRadom(withBorder: boolean): string[][] {
|
||||||
|
const bgColors = ['#f2f2f2', '#e9e9e9', '#d8d8d8']
|
||||||
|
// const colors = ['#d0e8ff', '#F2295F', '#E0A0F2', '#F2B705'];
|
||||||
|
const colors = ['#d0e8ff', '#BF244E', '#8C2685', '#21A650'];
|
||||||
|
const mShape = withBorder
|
||||||
|
? [
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 2, 0, 0, 0, 2, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 2, 2, 0, 2, 2, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 2, 2, 2, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
: [
|
||||||
|
[1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 2, 0, 0, 0, 2, 3, 3, 3],
|
||||||
|
[1, 1, 1, 2, 2, 0, 2, 2, 3, 3, 3],
|
||||||
|
[1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 2, 2, 2, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 3]
|
||||||
|
];
|
||||||
|
|
||||||
|
const gridSize = withBorder ? 13 : 11;
|
||||||
|
let seed = 42;
|
||||||
|
const matrix: string[][] = [];
|
||||||
|
|
||||||
|
for (let row = 0; row < gridSize; row++) {
|
||||||
|
const rowColors: string[] = [];
|
||||||
|
const bgSize = bgColors.length;
|
||||||
|
for (let col = 0; col < gridSize; col++) {
|
||||||
|
if (mShape[row][col] === 0) {
|
||||||
|
rowColors.push(bgColors[Math.floor(seededRandom(seed++) * bgSize)]);
|
||||||
|
} else {
|
||||||
|
rowColors.push(colors[mShape[row][col]]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
matrix.push(rowColors);
|
||||||
|
}
|
||||||
|
|
||||||
|
return matrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepareMatrixFromRandomColors(withBorder: boolean): string[][] {
|
||||||
|
const colors = ['#d0e8ff', '#a1d2ff', '#64b5f6', '#1565c0', '#0d47a1'];
|
||||||
|
const mShape = withBorder
|
||||||
|
? [
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
: [
|
||||||
|
[1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1],
|
||||||
|
[1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
|
||||||
|
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||||
|
[1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1]
|
||||||
|
];
|
||||||
|
|
||||||
|
const gridSize = withBorder ? 13 : 11;
|
||||||
|
let seed = 42;
|
||||||
|
const matrix: string[][] = [];
|
||||||
|
|
||||||
|
for (let row = 0; row < gridSize; row++) {
|
||||||
|
const rowColors: string[] = [];
|
||||||
|
for (let col = 0; col < gridSize; col++) {
|
||||||
|
let colorIndex;
|
||||||
|
if (mShape[row][col] === 1) {
|
||||||
|
colorIndex = Math.floor(seededRandom(seed++) * 2) + 3;
|
||||||
|
} else {
|
||||||
|
colorIndex = Math.floor(seededRandom(seed++) * 2);
|
||||||
|
}
|
||||||
|
rowColors.push(colors[colorIndex]);
|
||||||
|
}
|
||||||
|
matrix.push(rowColors);
|
||||||
|
}
|
||||||
|
|
||||||
|
return matrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateSvg(matrix: string[][], size: number, hasGap: boolean): string {
|
||||||
|
const gridSize = matrix.length;
|
||||||
|
const cellSize = 1;
|
||||||
|
const rectSize = hasGap ? 0.85 : 1;
|
||||||
|
const offset = hasGap ? 0.075 : 0;
|
||||||
|
|
||||||
|
let svgContent = `<svg width="${size}" height="${size}" viewBox="0 0 ${gridSize} ${gridSize}" xmlns="http://www.w3.org/2000/svg" opacity="1">
|
||||||
|
`;
|
||||||
|
|
||||||
|
for (let row = 0; row < gridSize; row++) {
|
||||||
|
for (let col = 0; col < gridSize; col++) {
|
||||||
|
svgContent += ` <rect x="${col * cellSize + offset}" y="${
|
||||||
|
row * cellSize + offset
|
||||||
|
}" width="${rectSize}" height="${rectSize}" rx="${hasGap ? 0.15 : 0}" ry="${hasGap ? 0.15 : 0}" fill="${matrix[row][col]}" />
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
svgContent += `</svg>`;
|
||||||
|
return svgContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function generateMemosLogo(size: number, withBorder: boolean, hasGap: boolean): string {
|
||||||
|
const matrix = prepareMatrixFromRandomColors(withBorder);
|
||||||
|
return generateSvg(matrix, size, hasGap);
|
||||||
|
}
|
||||||
|
|
@ -291,7 +291,7 @@
|
|||||||
class:flex-col={!isScrolled}
|
class:flex-col={!isScrolled}
|
||||||
class:flex-row={isScrolled}
|
class:flex-row={isScrolled}
|
||||||
>
|
>
|
||||||
<Logo size={isScrolled ? 32 : 128} withBorder={!isScrolled} class_="transition-transform duration-300 ease-in-out mr-4" />
|
<Logo size={isScrolled ? 32 : 128} withBorder={!isScrolled} hasGap={!isScrolled} class_="transition-transform duration-300 ease-in-out mr-4" />
|
||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
class={inputClasses}
|
class={inputClasses}
|
||||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 1.7 KiB |
BIN
web/static/logos/memos_logo_1024.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
web/static/logos/memos_logo_1024@2x.png
Normal file
After Width: | Height: | Size: 210 KiB |
BIN
web/static/logos/memos_logo_128.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
web/static/logos/memos_logo_128@2x.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
web/static/logos/memos_logo_16.png
Normal file
After Width: | Height: | Size: 877 B |
BIN
web/static/logos/memos_logo_16@2x.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
web/static/logos/memos_logo_256.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
web/static/logos/memos_logo_256@2x.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
web/static/logos/memos_logo_32.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
web/static/logos/memos_logo_32@2x.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
web/static/logos/memos_logo_512.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
web/static/logos/memos_logo_512@2x.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
web/static/logos/memos_logo_64.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
web/static/logos/memos_logo_64@2x.png
Normal file
After Width: | Height: | Size: 1.7 KiB |