your personal website on atproto - mirror blento.app
26
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #177 from flo-bit/switch-map

switch map

authored by

Florian and committed by
GitHub
b21e8004 fe0a7c43

+145 -250
+1 -1
docs/Selfhosting.md
··· 35 35 6. some cards need their own additional env keys, if you have these cards in your profile, create your keys and add them to your cloudflare worker 36 36 37 37 - github profile: GITHUB_TOKEN (token with public_repo access) 38 - - map: PUBLIC_MAPBOX_TOKEN 38 + - map: no token needed (uses OpenFreeMap)
+2 -1
package.json
··· 33 33 "prettier-plugin-tailwindcss": "^0.7.2", 34 34 "svelte": "^5.48.0", 35 35 "svelte-check": "^4.3.5", 36 + "svelte-maplibre-gl": "^1.0.3", 36 37 "tailwindcss": "^4.1.18", 37 38 "typescript": "^5.9.3", 38 39 "typescript-eslint": "^8.53.1", ··· 76 77 "hls.js": "^1.6.15", 77 78 "leaflet": "^1.9.4", 78 79 "link-preview-js": "^4.0.0", 79 - "mapbox-gl": "^3.18.1", 80 + "maplibre-gl": "^5.17.0", 80 81 "marked": "^17.0.1", 81 82 "perfect-freehand": "^1.2.2", 82 83 "plyr": "^3.8.4",
+112 -93
pnpm-lock.yaml
··· 119 119 link-preview-js: 120 120 specifier: ^4.0.0 121 121 version: 4.0.0 122 - mapbox-gl: 123 - specifier: ^3.18.1 124 - version: 3.18.1 122 + maplibre-gl: 123 + specifier: ^5.17.0 124 + version: 5.17.0 125 125 marked: 126 126 specifier: ^17.0.1 127 127 version: 17.0.1 ··· 213 213 svelte-check: 214 214 specifier: ^4.3.5 215 215 version: 4.3.5(picomatch@4.0.3)(svelte@5.48.0)(typescript@5.9.3) 216 + svelte-maplibre-gl: 217 + specifier: ^1.0.3 218 + version: 1.0.3(maplibre-gl@5.17.0)(svelte@5.48.0) 216 219 tailwindcss: 217 220 specifier: ^4.1.18 218 221 version: 4.1.18 ··· 947 950 '@jridgewell/trace-mapping@0.3.9': 948 951 resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 949 952 953 + '@mapbox/geojson-rewind@0.5.2': 954 + resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==, tarball: https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz} 955 + hasBin: true 956 + 950 957 '@mapbox/jsonlint-lines-primitives@2.0.2': 951 - resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==} 958 + resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==, tarball: https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz} 952 959 engines: {node: '>= 0.6'} 953 960 954 - '@mapbox/mapbox-gl-supported@3.0.0': 955 - resolution: {integrity: sha512-2XghOwu16ZwPJLOFVuIOaLbN0iKMn867evzXFyf0P22dqugezfJwLmdanAgU25ITvz1TvOfVP4jsDImlDJzcWg==} 956 - 957 961 '@mapbox/point-geometry@1.1.0': 958 - resolution: {integrity: sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==} 962 + resolution: {integrity: sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==, tarball: https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-1.1.0.tgz} 959 963 960 964 '@mapbox/tiny-sdf@2.0.7': 961 - resolution: {integrity: sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==} 965 + resolution: {integrity: sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==, tarball: https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.7.tgz} 962 966 963 967 '@mapbox/unitbezier@0.0.1': 964 - resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==} 968 + resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==, tarball: https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz} 965 969 966 970 '@mapbox/vector-tile@2.0.4': 967 - resolution: {integrity: sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==} 971 + resolution: {integrity: sha512-AkOLcbgGTdXScosBWwmmD7cDlvOjkg/DetGva26pIRiZPdeJYjYKarIlb4uxVzi6bwHO6EWH82eZ5Nuv4T5DUg==, tarball: https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-2.0.4.tgz} 968 972 969 973 '@mapbox/whoots-js@3.1.0': 970 - resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==} 974 + resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==, tarball: https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz} 971 975 engines: {node: '>=6.0.0'} 976 + 977 + '@maplibre/geojson-vt@5.0.4': 978 + resolution: {integrity: sha512-KGg9sma45S+stfH9vPCJk1J0lSDLWZgCT9Y8u8qWZJyjFlP8MNP1WGTxIMYJZjDvVT3PDn05kN1C95Sut1HpgQ==, tarball: https://registry.npmjs.org/@maplibre/geojson-vt/-/geojson-vt-5.0.4.tgz} 979 + 980 + '@maplibre/maplibre-gl-style-spec@24.4.1': 981 + resolution: {integrity: sha512-UKhA4qv1h30XT768ccSv5NjNCX+dgfoq2qlLVmKejspPcSQTYD4SrVucgqegmYcKcmwf06wcNAa/kRd0NHWbUg==, tarball: https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-24.4.1.tgz} 982 + hasBin: true 983 + 984 + '@maplibre/mlt@1.1.5': 985 + resolution: {integrity: sha512-HjoAIOYAfZo2El/tHBnvWpCRlodWgWLZ/tyO4Wrw0LVY2bkQz1+pwAwDvmgSRvfkSkSzWnqJJd1JwgCrq/60HQ==, tarball: https://registry.npmjs.org/@maplibre/mlt/-/mlt-1.1.5.tgz} 986 + 987 + '@maplibre/vt-pbf@4.2.1': 988 + resolution: {integrity: sha512-IxZBGq/+9cqf2qdWlFuQ+ZfoMhWpxDUGQZ/poPHOJBvwMUT1GuxLo6HgYTou+xxtsOsjfbcjI8PZaPCtmt97rA==, tarball: https://registry.npmjs.org/@maplibre/vt-pbf/-/vt-pbf-4.2.1.tgz} 972 989 973 990 '@mixmark-io/domino@2.2.0': 974 991 resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} ··· 1511 1528 '@types/estree@1.0.8': 1512 1529 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 1513 1530 1514 - '@types/geojson-vt@3.2.5': 1515 - resolution: {integrity: sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==} 1516 - 1517 1531 '@types/geojson@7946.0.16': 1518 - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} 1532 + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==, tarball: https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz} 1519 1533 1520 1534 '@types/json-schema@7.0.15': 1521 1535 resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} ··· 1523 1537 '@types/linkify-it@5.0.0': 1524 1538 resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} 1525 1539 1526 - '@types/mapbox__point-geometry@0.1.4': 1527 - resolution: {integrity: sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==} 1528 - 1529 1540 '@types/markdown-it@14.1.2': 1530 1541 resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} 1531 1542 ··· 1534 1545 1535 1546 '@types/node@25.0.10': 1536 1547 resolution: {integrity: sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==} 1537 - 1538 - '@types/pbf@3.0.5': 1539 - resolution: {integrity: sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==} 1540 1548 1541 1549 '@types/stats.js@0.17.4': 1542 1550 resolution: {integrity: sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==} 1543 1551 1544 1552 '@types/supercluster@7.1.3': 1545 - resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==} 1553 + resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==, tarball: https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz} 1546 1554 1547 1555 '@types/three@0.176.0': 1548 1556 resolution: {integrity: sha512-FwfPXxCqOtP7EdYMagCFePNKoG1AGBDUEVKtluv2BTVRpSt7b+X27xNsirPCTCqY1pGYsPUzaM3jgWP7dXSxlw==} ··· 1713 1721 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1714 1722 engines: {node: '>=10'} 1715 1723 1716 - cheap-ruler@4.0.0: 1717 - resolution: {integrity: sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==} 1718 - 1719 1724 cheerio-select@2.1.0: 1720 1725 resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} 1721 1726 ··· 1792 1797 css.escape@1.5.1: 1793 1798 resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} 1794 1799 1795 - csscolorparser@1.0.3: 1796 - resolution: {integrity: sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==} 1797 - 1798 1800 cssesc@3.0.0: 1799 1801 resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1800 1802 engines: {node: '>=4'} ··· 1853 1855 resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==} 1854 1856 1855 1857 earcut@3.0.2: 1856 - resolution: {integrity: sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==} 1858 + resolution: {integrity: sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==, tarball: https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz} 1857 1859 1858 1860 emoji-picker-element@1.28.1: 1859 1861 resolution: {integrity: sha512-8c64IPish2PWoV9oYCo2pvuPHwIv+uK9bO0dfpPyMupDAvaWL9ZvYhWNTAR+2sx7BhfRjciImqP6CIUgNX+DMg==} ··· 2014 2016 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2015 2017 os: [darwin] 2016 2018 2017 - geojson-vt@4.0.2: 2018 - resolution: {integrity: sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==} 2019 + get-stream@6.0.1: 2020 + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, tarball: https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz} 2021 + engines: {node: '>=10'} 2019 2022 2020 2023 gl-matrix@3.4.4: 2021 - resolution: {integrity: sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==} 2024 + resolution: {integrity: sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==, tarball: https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz} 2022 2025 2023 2026 glob-parent@6.0.2: 2024 2027 resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} ··· 2038 2041 2039 2042 graceful-fs@4.2.11: 2040 2043 resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 2041 - 2042 - grid-index@1.1.0: 2043 - resolution: {integrity: sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==} 2044 2044 2045 2045 gsap@3.14.2: 2046 2046 resolution: {integrity: sha512-P8/mMxVLU7o4+55+1TCnQrPmgjPKnwkzkXOK1asnR9Jg2lna4tEY5qBJjMmAaOBDDZWtlRjBXjLa0w53G/uBLA==} ··· 2125 2125 json-stable-stringify-without-jsonify@1.0.1: 2126 2126 resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2127 2127 2128 + json-stringify-pretty-compact@4.0.0: 2129 + resolution: {integrity: sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==, tarball: https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz} 2130 + 2128 2131 kdbush@4.0.2: 2129 - resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} 2132 + resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==, tarball: https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz} 2130 2133 2131 2134 keyv@4.5.4: 2132 2135 resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} ··· 2265 2268 magic-string@0.30.21: 2266 2269 resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 2267 2270 2268 - mapbox-gl@3.18.1: 2269 - resolution: {integrity: sha512-Izc8dee2zkmb6Pn9hXFbVioPRLXJz1OFUcrvri69MhFACPU4bhLyVmhEsD9AyW1qOAP0Yvhzm60v63xdMIHPPw==} 2271 + maplibre-gl@5.17.0: 2272 + resolution: {integrity: sha512-gwS6NpXBfWD406dtT5YfEpl2hmpMm+wcPqf04UAez/TxY1OBjiMdK2ZoMGcNIlGHelKc4+Uet6zhDdDEnlJVHA==, tarball: https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.17.0.tgz} 2273 + engines: {node: '>=16.14.0', npm: '>=8.1.0'} 2270 2274 2271 2275 markdown-it@14.1.0: 2272 2276 resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} ··· 2277 2281 engines: {node: '>= 20'} 2278 2282 hasBin: true 2279 2283 2280 - martinez-polygon-clipping@0.8.1: 2281 - resolution: {integrity: sha512-9PLLMzMPI6ihHox4Ns6LpVBLpRc7sbhULybZ/wyaY8sY3ECNe2+hxm1hA2/9bEEpRrdpjoeduBuZLg2aq1cSIQ==} 2282 - 2283 2284 mdurl@2.0.0: 2284 2285 resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} 2285 2286 ··· 2301 2302 minimatch@9.0.5: 2302 2303 resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 2303 2304 engines: {node: '>=16 || 14 >=14.17'} 2305 + 2306 + minimist@1.2.8: 2307 + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz} 2304 2308 2305 2309 mitt@3.0.1: 2306 2310 resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} ··· 2328 2332 resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} 2329 2333 2330 2334 murmurhash-js@1.0.0: 2331 - resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} 2335 + resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==, tarball: https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz} 2332 2336 2333 2337 nanoid@3.3.11: 2334 2338 resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} ··· 2409 2413 resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 2410 2414 2411 2415 pbf@4.0.1: 2412 - resolution: {integrity: sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==} 2416 + resolution: {integrity: sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==, tarball: https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz} 2413 2417 hasBin: true 2414 2418 2415 2419 perfect-freehand@1.2.2: ··· 2471 2475 engines: {node: ^10 || ^12 || >=14} 2472 2476 2473 2477 potpack@2.1.0: 2474 - resolution: {integrity: sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==} 2478 + resolution: {integrity: sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==, tarball: https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz} 2475 2479 2476 2480 prelude-ls@1.2.1: 2477 2481 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} ··· 2605 2609 resolution: {integrity: sha512-UDQbIPnDrjE8tqUBbPmCOZgtd75htE6W3r0JCmY9bL6W1iemDM37MZEKC49d+tdQ0v/CKx4gjxLoLsfkD2NiZA==} 2606 2610 2607 2611 protocol-buffers-schema@3.6.0: 2608 - resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} 2612 + resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==, tarball: https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz} 2609 2613 2610 2614 punycode.js@2.3.1: 2611 2615 resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} ··· 2623 2627 resolution: {integrity: sha512-pItrW0Z9HnDBnFmgiNrY1uxRdri32Uh9EjNYLPVC2zZ3ZRIIEqBoDgm4DkvDwNNDHTK7FNkmr8zAa77BYc9xNw==} 2624 2628 2625 2629 quickselect@3.0.0: 2626 - resolution: {integrity: sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==} 2630 + resolution: {integrity: sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==, tarball: https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz} 2627 2631 2628 2632 rangetouch@2.0.1: 2629 2633 resolution: {integrity: sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA==} ··· 2678 2682 engines: {node: '>=4'} 2679 2683 2680 2684 resolve-protobuf-schema@2.1.0: 2681 - resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} 2682 - 2683 - robust-predicates@2.0.4: 2684 - resolution: {integrity: sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==} 2685 + resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==, tarball: https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz} 2685 2686 2686 2687 rollup@4.56.0: 2687 2688 resolution: {integrity: sha512-9FwVqlgUHzbXtDg9RCMgodF3Ua4Na6Gau+Sdt9vyCN4RhHfVKX2DCHy3BjMLTDd47ITDhYAnTwGulWTblJSDLg==} ··· 2715 2716 '@sveltejs/kit': 2716 2717 optional: true 2717 2718 2719 + rw@1.3.3: 2720 + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==, tarball: https://registry.npmjs.org/rw/-/rw-1.3.3.tgz} 2721 + 2718 2722 sade@1.8.1: 2719 2723 resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 2720 2724 engines: {node: '>=6'} ··· 2764 2768 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 2765 2769 engines: {node: '>=0.10.0'} 2766 2770 2767 - splaytree@0.1.4: 2768 - resolution: {integrity: sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==} 2769 - 2770 2771 std-env@3.10.0: 2771 2772 resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} 2772 2773 ··· 2781 2782 resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} 2782 2783 2783 2784 supercluster@8.0.1: 2784 - resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} 2785 + resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==, tarball: https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz} 2785 2786 2786 2787 supports-color@10.2.2: 2787 2788 resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} ··· 2808 2809 svelte: 2809 2810 optional: true 2810 2811 2812 + svelte-maplibre-gl@1.0.3: 2813 + resolution: {integrity: sha512-pGZMLN5EcJoe6lREyaY2lsbkvrnKjIGHJRM2ijN+TUDeJbV9oecjBxbDXQZd8b5X4JJztSG915L731dFdhhSwA==, tarball: https://registry.npmjs.org/svelte-maplibre-gl/-/svelte-maplibre-gl-1.0.3.tgz} 2814 + peerDependencies: 2815 + maplibre-gl: ^5.0.0 || ^4.0.0 2816 + svelte: '>=5.0.0' 2817 + 2811 2818 svelte-sonner@0.3.28: 2812 2819 resolution: {integrity: sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==} 2813 2820 peerDependencies: ··· 2902 2909 engines: {node: '>=12.0.0'} 2903 2910 2904 2911 tinyqueue@3.0.0: 2905 - resolution: {integrity: sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==} 2912 + resolution: {integrity: sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==, tarball: https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz} 2906 2913 2907 2914 tlds@1.261.0: 2908 2915 resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==} ··· 3724 3731 '@jridgewell/resolve-uri': 3.1.2 3725 3732 '@jridgewell/sourcemap-codec': 1.5.5 3726 3733 3727 - '@mapbox/jsonlint-lines-primitives@2.0.2': {} 3734 + '@mapbox/geojson-rewind@0.5.2': 3735 + dependencies: 3736 + get-stream: 6.0.1 3737 + minimist: 1.2.8 3728 3738 3729 - '@mapbox/mapbox-gl-supported@3.0.0': {} 3739 + '@mapbox/jsonlint-lines-primitives@2.0.2': {} 3730 3740 3731 3741 '@mapbox/point-geometry@1.1.0': {} 3732 3742 ··· 3741 3751 pbf: 4.0.1 3742 3752 3743 3753 '@mapbox/whoots-js@3.1.0': {} 3754 + 3755 + '@maplibre/geojson-vt@5.0.4': {} 3756 + 3757 + '@maplibre/maplibre-gl-style-spec@24.4.1': 3758 + dependencies: 3759 + '@mapbox/jsonlint-lines-primitives': 2.0.2 3760 + '@mapbox/unitbezier': 0.0.1 3761 + json-stringify-pretty-compact: 4.0.0 3762 + minimist: 1.2.8 3763 + quickselect: 3.0.0 3764 + rw: 1.3.3 3765 + tinyqueue: 3.0.0 3766 + 3767 + '@maplibre/mlt@1.1.5': 3768 + dependencies: 3769 + '@mapbox/point-geometry': 1.1.0 3770 + 3771 + '@maplibre/vt-pbf@4.2.1': 3772 + dependencies: 3773 + '@mapbox/point-geometry': 1.1.0 3774 + '@mapbox/vector-tile': 2.0.4 3775 + '@maplibre/geojson-vt': 5.0.4 3776 + '@types/geojson': 7946.0.16 3777 + '@types/supercluster': 7.1.3 3778 + pbf: 4.0.1 3779 + supercluster: 8.0.1 3744 3780 3745 3781 '@mixmark-io/domino@2.2.0': {} 3746 3782 ··· 4226 4262 4227 4263 '@types/estree@1.0.8': {} 4228 4264 4229 - '@types/geojson-vt@3.2.5': 4230 - dependencies: 4231 - '@types/geojson': 7946.0.16 4232 - 4233 4265 '@types/geojson@7946.0.16': {} 4234 4266 4235 4267 '@types/json-schema@7.0.15': {} 4236 4268 4237 4269 '@types/linkify-it@5.0.0': {} 4238 - 4239 - '@types/mapbox__point-geometry@0.1.4': {} 4240 4270 4241 4271 '@types/markdown-it@14.1.2': 4242 4272 dependencies: ··· 4248 4278 '@types/node@25.0.10': 4249 4279 dependencies: 4250 4280 undici-types: 7.16.0 4251 - 4252 - '@types/pbf@3.0.5': {} 4253 4281 4254 4282 '@types/stats.js@0.17.4': {} 4255 4283 ··· 4463 4491 ansi-styles: 4.3.0 4464 4492 supports-color: 7.2.0 4465 4493 4466 - cheap-ruler@4.0.0: {} 4467 - 4468 4494 cheerio-select@2.1.0: 4469 4495 dependencies: 4470 4496 boolbase: 1.0.0 ··· 4554 4580 css-what@6.2.2: {} 4555 4581 4556 4582 css.escape@1.5.1: {} 4557 - 4558 - csscolorparser@1.0.3: {} 4559 4583 4560 4584 cssesc@3.0.0: {} 4561 4585 ··· 4820 4844 fsevents@2.3.3: 4821 4845 optional: true 4822 4846 4823 - geojson-vt@4.0.2: {} 4847 + get-stream@6.0.1: {} 4824 4848 4825 4849 gl-matrix@3.4.4: {} 4826 4850 ··· 4836 4860 4837 4861 graceful-fs@4.2.11: {} 4838 4862 4839 - grid-index@1.1.0: {} 4840 - 4841 4863 gsap@3.14.2: {} 4842 4864 4843 4865 has-flag@4.0.0: {} ··· 4906 4928 json-schema-traverse@0.4.1: {} 4907 4929 4908 4930 json-stable-stringify-without-jsonify@1.0.1: {} 4931 + 4932 + json-stringify-pretty-compact@4.0.0: {} 4909 4933 4910 4934 kdbush@4.0.2: {} 4911 4935 ··· 5017 5041 dependencies: 5018 5042 '@jridgewell/sourcemap-codec': 1.5.5 5019 5043 5020 - mapbox-gl@3.18.1: 5044 + maplibre-gl@5.17.0: 5021 5045 dependencies: 5046 + '@mapbox/geojson-rewind': 0.5.2 5022 5047 '@mapbox/jsonlint-lines-primitives': 2.0.2 5023 - '@mapbox/mapbox-gl-supported': 3.0.0 5024 5048 '@mapbox/point-geometry': 1.1.0 5025 5049 '@mapbox/tiny-sdf': 2.0.7 5026 5050 '@mapbox/unitbezier': 0.0.1 5027 5051 '@mapbox/vector-tile': 2.0.4 5028 5052 '@mapbox/whoots-js': 3.1.0 5053 + '@maplibre/geojson-vt': 5.0.4 5054 + '@maplibre/maplibre-gl-style-spec': 24.4.1 5055 + '@maplibre/mlt': 1.1.5 5056 + '@maplibre/vt-pbf': 4.2.1 5029 5057 '@types/geojson': 7946.0.16 5030 - '@types/geojson-vt': 3.2.5 5031 - '@types/mapbox__point-geometry': 0.1.4 5032 - '@types/pbf': 3.0.5 5033 5058 '@types/supercluster': 7.1.3 5034 - cheap-ruler: 4.0.0 5035 - csscolorparser: 1.0.3 5036 5059 earcut: 3.0.2 5037 - geojson-vt: 4.0.2 5038 5060 gl-matrix: 3.4.4 5039 - grid-index: 1.1.0 5040 5061 kdbush: 4.0.2 5041 - martinez-polygon-clipping: 0.8.1 5042 5062 murmurhash-js: 1.0.0 5043 5063 pbf: 4.0.1 5044 5064 potpack: 2.1.0 ··· 5057 5077 5058 5078 marked@17.0.1: {} 5059 5079 5060 - martinez-polygon-clipping@0.8.1: 5061 - dependencies: 5062 - robust-predicates: 2.0.4 5063 - splaytree: 0.1.4 5064 - tinyqueue: 3.0.0 5065 - 5066 5080 mdurl@2.0.0: {} 5067 5081 5068 5082 meshoptimizer@0.18.1: {} ··· 5089 5103 minimatch@9.0.5: 5090 5104 dependencies: 5091 5105 brace-expansion: 2.0.2 5106 + 5107 + minimist@1.2.8: {} 5092 5108 5093 5109 mitt@3.0.1: {} 5094 5110 ··· 5439 5455 dependencies: 5440 5456 protocol-buffers-schema: 3.6.0 5441 5457 5442 - robust-predicates@2.0.4: {} 5443 - 5444 5458 rollup@4.56.0: 5445 5459 dependencies: 5446 5460 '@types/estree': 1.0.8 ··· 5497 5511 svelte: 5.48.0 5498 5512 optionalDependencies: 5499 5513 '@sveltejs/kit': 2.50.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.48.0)(vite@7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.48.0)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)) 5514 + 5515 + rw@1.3.3: {} 5500 5516 5501 5517 sade@1.8.1: 5502 5518 dependencies: ··· 5573 5589 totalist: 3.0.1 5574 5590 5575 5591 source-map-js@1.2.1: {} 5576 - 5577 - splaytree@0.1.4: {} 5578 5592 5579 5593 std-env@3.10.0: {} 5580 5594 ··· 5617 5631 postcss-scss: 4.0.9(postcss@8.5.6) 5618 5632 postcss-selector-parser: 7.1.1 5619 5633 optionalDependencies: 5634 + svelte: 5.48.0 5635 + 5636 + svelte-maplibre-gl@1.0.3(maplibre-gl@5.17.0)(svelte@5.48.0): 5637 + dependencies: 5638 + maplibre-gl: 5.17.0 5620 5639 svelte: 5.48.0 5621 5640 5622 5641 svelte-sonner@0.3.28(svelte@5.48.0):
+29 -154
src/lib/cards/core/MapCard/Map.svelte
··· 1 1 <script lang="ts"> 2 - import { onMount } from 'svelte'; 3 - import 'mapbox-gl/dist/mapbox-gl.css'; 4 - import mapboxgl from 'mapbox-gl'; 5 - import { env } from '$env/dynamic/public'; 6 2 import type { Item } from '$lib/types'; 7 - import { getHexOfCardColor } from '../../helper'; 3 + import { MapLibre, Projection, Marker } from 'svelte-maplibre-gl'; 8 4 9 5 let { item = $bindable() }: { item: Item } = $props(); 10 6 11 - // $inspect(item); 12 - 13 - let mapContainer: HTMLElement | undefined = $state(); 14 - let map: mapboxgl.Map | undefined = $state(); 15 - 16 - onMount(() => { 17 - if (!mapContainer || !env.PUBLIC_MAPBOX_TOKEN) { 18 - console.error('no map container or no mapbox token'); 19 - return; 20 - } 21 - 22 - try { 23 - mapboxgl.accessToken = env.PUBLIC_MAPBOX_TOKEN; 24 - 25 - const lat = parseFloat(item.cardData.lat); 26 - const lon = parseFloat(item.cardData.lon); 27 - const zoom = item.cardData.zoom ? parseFloat(item.cardData.zoom) : 0; 28 - const lightPreset = item.cardData.lightPreset || 'day'; 29 - 30 - map = new mapboxgl.Map({ 31 - container: mapContainer, 32 - style: 'mapbox://styles/mapbox/standard', 33 - center: [lon, lat], 34 - config: { 35 - basemap: { 36 - lightPreset: lightPreset, 37 - showPointOfInterestLabels: false 38 - } 39 - }, 40 - zoom: zoom, 41 - attributionControl: false, 42 - dragPan: false, 43 - dragRotate: false, 44 - keyboard: false, 45 - doubleClickZoom: true, 46 - touchZoomRotate: true, 47 - scrollZoom: true, 48 - boxZoom: false, 49 - pitchWithRotate: false, 50 - touchPitch: false 51 - }); 7 + let center = $state({ lng: parseFloat(item.cardData.lon), lat: parseFloat(item.cardData.lat) }); 8 + </script> 52 9 53 - // Keep location centered during zoom and save zoom level 54 - map.on('zoom', () => { 55 - if (map) { 56 - map.setCenter([lon, lat]); 57 - } 58 - }); 59 - 60 - map.on('zoomend', () => { 61 - if (map) { 62 - item.cardData.zoom = map.getZoom().toString(); 63 - } 64 - }); 65 - 66 - map.on('load', () => { 67 - if (!map) return; 10 + <div class="absolute inset-0 isolate h-full w-full"> 11 + <MapLibre 12 + class="h-full w-full" 13 + style="https://tiles.openfreemap.org/styles/liberty" 14 + zoom={item.cardData.zoom} 15 + {center} 16 + attributionControl={{ compact: true }} 17 + dragPan={false} 18 + dragRotate={false} 19 + keyboard={false} 20 + touchZoomRotate={true} 21 + scrollZoom={true} 22 + boxZoom={false} 23 + pitchWithRotate={false} 24 + touchPitch={false} 25 + > 26 + <Projection type={'globe'} /> 68 27 69 - map.resize(); 70 - map.setCenter([lon, lat]); 71 - 72 - const accentColor = getHexOfCardColor(item); 73 - 74 - // Add location point source 75 - map.addSource('location-point', { 76 - type: 'geojson', 77 - data: { 78 - type: 'Feature', 79 - geometry: { 80 - type: 'Point', 81 - coordinates: [lon, lat] 82 - }, 83 - properties: { 84 - name: item.cardData.name || '' 85 - } 86 - } 87 - }); 88 - 89 - // Outer glow 90 - map.addLayer({ 91 - id: 'location-glow-outer', 92 - type: 'circle', 93 - source: 'location-point', 94 - paint: { 95 - 'circle-radius': 20, 96 - 'circle-color': accentColor, 97 - 'circle-opacity': 0.15, 98 - 'circle-blur': 1 99 - } 100 - }); 101 - 102 - // Middle glow 103 - map.addLayer({ 104 - id: 'location-glow-middle', 105 - type: 'circle', 106 - source: 'location-point', 107 - paint: { 108 - 'circle-radius': 12, 109 - 'circle-color': accentColor, 110 - 'circle-opacity': 0.3, 111 - 'circle-blur': 0.5 112 - } 113 - }); 114 - 115 - // White border 116 - map.addLayer({ 117 - id: 'location-dot-border', 118 - type: 'circle', 119 - source: 'location-point', 120 - paint: { 121 - 'circle-radius': 8, 122 - 'circle-color': '#ffffff', 123 - 'circle-opacity': 1 124 - } 125 - }); 126 - 127 - // Accent color center dot 128 - map.addLayer({ 129 - id: 'location-dot', 130 - type: 'circle', 131 - source: 'location-point', 132 - paint: { 133 - 'circle-radius': 6, 134 - 'circle-color': accentColor, 135 - 'circle-opacity': 1 136 - } 137 - }); 138 - }); 139 - 140 - // Handle container resize 141 - const resizeObserver = new ResizeObserver(() => { 142 - if (map) { 143 - map.resize(); 144 - map.setCenter([lon, lat]); 145 - } 146 - }); 147 - if (mapContainer) resizeObserver.observe(mapContainer); 148 - 149 - return () => { 150 - resizeObserver.disconnect(); 151 - if (map) { 152 - map.remove(); 153 - } 154 - }; 155 - } catch (err) { 156 - console.error(`Something went wrong trying to initialize the map`, err); 157 - } 158 - }); 159 - </script> 160 - 161 - <div bind:this={mapContainer} class="absolute inset-0 isolate h-full w-full"></div> 28 + <Marker bind:lnglat={center}> 29 + {#snippet content()} 30 + <div class="from-accent-400 size-10 rounded-full bg-radial via-transparent p-3"> 31 + <div class="bg-accent-500 size-4 rounded-full ring-2 ring-white"></div> 32 + </div> 33 + {/snippet} 34 + </Marker> 35 + </MapLibre> 36 + </div>
+1 -1
src/lib/cards/core/MapCard/index.ts
··· 14 14 }, 15 15 16 16 creationModalComponent: CreateMapCardModal, 17 - allowSetColor: false, 17 + allowSetColor: true, 18 18 canHaveLabel: true, 19 19 settingsComponent: MapCardSettings, 20 20