[READ-ONLY] Mirror of https://github.com/flo-bit/svelte-depth-3d-component. svelte component to show a fake 3d image with depth map flo-bit.dev/svelte-depth-3d-component/
0

Configure Feed

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

Merge pull request #4 from flo-bit/main

update images, dark mode

authored by

Florian and committed by
GitHub
(Sep 16, 2024, 1:47 AM +0200) 8948c750 8bb8ea3b

+132 -260
+3 -1
README.md
··· 5 5 [Try the demo here.](https://flo-bit.github.io/svelte-depth-3d-component/) 6 6 7 7 8 - https://github.com/flo-bit/svelte-depth-3d-component/assets/45694132/bea0d04f-487b-4119-ba1a-a5743728195a 8 + 9 + https://github.com/user-attachments/assets/74b05fd6-feef-49da-9b38-523b65bf5da8 10 + 9 11 10 12 11 13 ## How to use
+24 -116
package-lock.json
··· 9 9 "version": "0.0.1", 10 10 "dependencies": { 11 11 "@sveltejs/adapter-static": "^3.0.1", 12 + "@tailwindcss/aspect-ratio": "^0.4.2", 12 13 "@threlte/core": "^7.3.0", 13 14 "@threlte/extras": "^8.11.2", 14 15 "@types/three": "^0.164.0", ··· 41 42 "version": "5.2.0", 42 43 "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", 43 44 "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", 44 - "dev": true, 45 45 "engines": { 46 46 "node": ">=10" 47 47 }, ··· 983 983 "version": "8.0.2", 984 984 "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 985 985 "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 986 - "dev": true, 987 986 "dependencies": { 988 987 "string-width": "^5.1.2", 989 988 "string-width-cjs": "npm:string-width@^4.2.0", ··· 1000 999 "version": "6.0.1", 1001 1000 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 1002 1001 "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 1003 - "dev": true, 1004 1002 "engines": { 1005 1003 "node": ">=12" 1006 1004 }, ··· 1012 1010 "version": "7.1.0", 1013 1011 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 1014 1012 "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 1015 - "dev": true, 1016 1013 "dependencies": { 1017 1014 "ansi-regex": "^6.0.1" 1018 1015 }, ··· 1070 1067 "version": "2.1.5", 1071 1068 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1072 1069 "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1073 - "dev": true, 1074 1070 "dependencies": { 1075 1071 "@nodelib/fs.stat": "2.0.5", 1076 1072 "run-parallel": "^1.1.9" ··· 1083 1079 "version": "2.0.5", 1084 1080 "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1085 1081 "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1086 - "dev": true, 1087 1082 "engines": { 1088 1083 "node": ">= 8" 1089 1084 } ··· 1092 1087 "version": "1.2.8", 1093 1088 "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1094 1089 "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1095 - "dev": true, 1096 1090 "dependencies": { 1097 1091 "@nodelib/fs.scandir": "2.1.5", 1098 1092 "fastq": "^1.6.0" ··· 1105 1099 "version": "0.11.0", 1106 1100 "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 1107 1101 "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 1108 - "dev": true, 1109 1102 "optional": true, 1110 1103 "engines": { 1111 1104 "node": ">=14" ··· 1422 1415 "vite": "^5.0.0" 1423 1416 } 1424 1417 }, 1418 + "node_modules/@tailwindcss/aspect-ratio": { 1419 + "version": "0.4.2", 1420 + "resolved": "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz", 1421 + "integrity": "sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==", 1422 + "peerDependencies": { 1423 + "tailwindcss": ">=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1" 1424 + } 1425 + }, 1425 1426 "node_modules/@threejs-kit/instanced-sprite-mesh": { 1426 1427 "version": "2.4.7", 1427 1428 "resolved": "https://registry.npmjs.org/@threejs-kit/instanced-sprite-mesh/-/instanced-sprite-mesh-2.4.7.tgz", ··· 1754 1755 "version": "5.0.1", 1755 1756 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1756 1757 "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1757 - "dev": true, 1758 1758 "engines": { 1759 1759 "node": ">=8" 1760 1760 } ··· 1763 1763 "version": "4.3.0", 1764 1764 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1765 1765 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1766 - "dev": true, 1767 1766 "dependencies": { 1768 1767 "color-convert": "^2.0.1" 1769 1768 }, ··· 1777 1776 "node_modules/any-promise": { 1778 1777 "version": "1.3.0", 1779 1778 "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 1780 - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 1781 - "dev": true 1779 + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" 1782 1780 }, 1783 1781 "node_modules/anymatch": { 1784 1782 "version": "3.1.3", 1785 1783 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 1786 1784 "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 1787 - "dev": true, 1788 1785 "dependencies": { 1789 1786 "normalize-path": "^3.0.0", 1790 1787 "picomatch": "^2.0.4" ··· 1796 1793 "node_modules/arg": { 1797 1794 "version": "5.0.2", 1798 1795 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 1799 - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 1800 - "dev": true 1796 + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" 1801 1797 }, 1802 1798 "node_modules/argparse": { 1803 1799 "version": "2.0.1", ··· 1870 1866 "node_modules/balanced-match": { 1871 1867 "version": "1.0.2", 1872 1868 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1873 - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1874 - "dev": true 1869 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 1875 1870 }, 1876 1871 "node_modules/bidi-js": { 1877 1872 "version": "1.0.3", ··· 1885 1880 "version": "2.3.0", 1886 1881 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", 1887 1882 "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", 1888 - "dev": true, 1889 1883 "engines": { 1890 1884 "node": ">=8" 1891 1885 }, ··· 1897 1891 "version": "2.0.1", 1898 1892 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1899 1893 "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1900 - "dev": true, 1901 1894 "dependencies": { 1902 1895 "balanced-match": "^1.0.0" 1903 1896 } ··· 1906 1899 "version": "3.0.2", 1907 1900 "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1908 1901 "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1909 - "dev": true, 1910 1902 "dependencies": { 1911 1903 "fill-range": "^7.0.1" 1912 1904 }, ··· 1968 1960 "version": "2.0.1", 1969 1961 "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 1970 1962 "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 1971 - "dev": true, 1972 1963 "engines": { 1973 1964 "node": ">= 6" 1974 1965 } ··· 2013 2004 "version": "3.6.0", 2014 2005 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", 2015 2006 "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 2016 - "dev": true, 2017 2007 "dependencies": { 2018 2008 "anymatch": "~3.1.2", 2019 2009 "braces": "~3.0.2", ··· 2037 2027 "version": "5.1.2", 2038 2028 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2039 2029 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2040 - "dev": true, 2041 2030 "dependencies": { 2042 2031 "is-glob": "^4.0.1" 2043 2032 }, ··· 2098 2087 "version": "4.1.1", 2099 2088 "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 2100 2089 "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 2101 - "dev": true, 2102 2090 "engines": { 2103 2091 "node": ">= 6" 2104 2092 } ··· 2121 2109 "version": "7.0.3", 2122 2110 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2123 2111 "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2124 - "dev": true, 2125 2112 "dependencies": { 2126 2113 "path-key": "^3.1.0", 2127 2114 "shebang-command": "^2.0.0", ··· 2147 2134 "version": "3.0.0", 2148 2135 "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 2149 2136 "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 2150 - "dev": true, 2151 2137 "bin": { 2152 2138 "cssesc": "bin/cssesc" 2153 2139 }, ··· 2218 2204 "node_modules/didyoumean": { 2219 2205 "version": "1.2.2", 2220 2206 "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 2221 - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 2222 - "dev": true 2207 + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" 2223 2208 }, 2224 2209 "node_modules/diet-sprite": { 2225 2210 "version": "0.0.1", ··· 2241 2226 "node_modules/dlv": { 2242 2227 "version": "1.1.3", 2243 2228 "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 2244 - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 2245 - "dev": true 2229 + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" 2246 2230 }, 2247 2231 "node_modules/doctrine": { 2248 2232 "version": "3.0.0", ··· 2264 2248 "node_modules/eastasianwidth": { 2265 2249 "version": "0.2.0", 2266 2250 "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 2267 - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 2268 - "dev": true 2251 + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 2269 2252 }, 2270 2253 "node_modules/electron-to-chromium": { 2271 2254 "version": "1.4.774", ··· 2276 2259 "node_modules/emoji-regex": { 2277 2260 "version": "9.2.2", 2278 2261 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 2279 - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 2280 - "dev": true 2262 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 2281 2263 }, 2282 2264 "node_modules/es6-promise": { 2283 2265 "version": "3.3.1", ··· 2592 2574 "version": "3.3.2", 2593 2575 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", 2594 2576 "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", 2595 - "dev": true, 2596 2577 "dependencies": { 2597 2578 "@nodelib/fs.stat": "^2.0.2", 2598 2579 "@nodelib/fs.walk": "^1.2.3", ··· 2608 2589 "version": "5.1.2", 2609 2590 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2610 2591 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2611 - "dev": true, 2612 2592 "dependencies": { 2613 2593 "is-glob": "^4.0.1" 2614 2594 }, ··· 2632 2612 "version": "1.17.1", 2633 2613 "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", 2634 2614 "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", 2635 - "dev": true, 2636 2615 "dependencies": { 2637 2616 "reusify": "^1.0.4" 2638 2617 } ··· 2658 2637 "version": "7.0.1", 2659 2638 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 2660 2639 "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 2661 - "dev": true, 2662 2640 "dependencies": { 2663 2641 "to-regex-range": "^5.0.1" 2664 2642 }, ··· 2706 2684 "version": "3.1.1", 2707 2685 "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 2708 2686 "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 2709 - "dev": true, 2710 2687 "dependencies": { 2711 2688 "cross-spawn": "^7.0.0", 2712 2689 "signal-exit": "^4.0.1" ··· 2754 2731 "version": "1.1.2", 2755 2732 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 2756 2733 "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 2757 - "dev": true, 2758 2734 "funding": { 2759 2735 "url": "https://github.com/sponsors/ljharb" 2760 2736 } ··· 2783 2759 "version": "6.0.2", 2784 2760 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2785 2761 "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2786 - "dev": true, 2787 2762 "dependencies": { 2788 2763 "is-glob": "^4.0.3" 2789 2764 }, ··· 2883 2858 "version": "2.0.2", 2884 2859 "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 2885 2860 "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 2886 - "dev": true, 2887 2861 "dependencies": { 2888 2862 "function-bind": "^1.1.2" 2889 2863 }, ··· 2970 2944 "version": "2.1.0", 2971 2945 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 2972 2946 "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2973 - "dev": true, 2974 2947 "dependencies": { 2975 2948 "binary-extensions": "^2.0.0" 2976 2949 }, ··· 2982 2955 "version": "2.13.1", 2983 2956 "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", 2984 2957 "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", 2985 - "dev": true, 2986 2958 "dependencies": { 2987 2959 "hasown": "^2.0.0" 2988 2960 }, ··· 2994 2966 "version": "2.1.1", 2995 2967 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2996 2968 "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2997 - "dev": true, 2998 2969 "engines": { 2999 2970 "node": ">=0.10.0" 3000 2971 } ··· 3003 2974 "version": "3.0.0", 3004 2975 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 3005 2976 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 3006 - "dev": true, 3007 2977 "engines": { 3008 2978 "node": ">=8" 3009 2979 } ··· 3012 2982 "version": "4.0.3", 3013 2983 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3014 2984 "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3015 - "dev": true, 3016 2985 "dependencies": { 3017 2986 "is-extglob": "^2.1.1" 3018 2987 }, ··· 3024 2993 "version": "7.0.0", 3025 2994 "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3026 2995 "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3027 - "dev": true, 3028 2996 "engines": { 3029 2997 "node": ">=0.12.0" 3030 2998 } ··· 3049 3017 "node_modules/isexe": { 3050 3018 "version": "2.0.0", 3051 3019 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3052 - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 3053 - "dev": true 3020 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 3054 3021 }, 3055 3022 "node_modules/jackspeak": { 3056 3023 "version": "2.3.6", 3057 3024 "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", 3058 3025 "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", 3059 - "dev": true, 3060 3026 "dependencies": { 3061 3027 "@isaacs/cliui": "^8.0.2" 3062 3028 }, ··· 3074 3040 "version": "1.21.0", 3075 3041 "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", 3076 3042 "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", 3077 - "dev": true, 3078 3043 "bin": { 3079 3044 "jiti": "bin/jiti.js" 3080 3045 } ··· 3149 3114 "version": "2.1.0", 3150 3115 "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 3151 3116 "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 3152 - "dev": true, 3153 3117 "engines": { 3154 3118 "node": ">=10" 3155 3119 } ··· 3157 3121 "node_modules/lines-and-columns": { 3158 3122 "version": "1.2.4", 3159 3123 "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 3160 - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 3161 - "dev": true 3124 + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 3162 3125 }, 3163 3126 "node_modules/locate-character": { 3164 3127 "version": "3.0.0", ··· 3190 3153 "version": "10.2.2", 3191 3154 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", 3192 3155 "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", 3193 - "dev": true, 3194 3156 "engines": { 3195 3157 "node": "14 || >=16.14" 3196 3158 } ··· 3221 3183 "version": "1.4.1", 3222 3184 "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3223 3185 "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 3224 - "dev": true, 3225 3186 "engines": { 3226 3187 "node": ">= 8" 3227 3188 } ··· 3235 3196 "version": "4.0.5", 3236 3197 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 3237 3198 "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 3238 - "dev": true, 3239 3199 "dependencies": { 3240 3200 "braces": "^3.0.2", 3241 3201 "picomatch": "^2.3.1" ··· 3257 3217 "version": "9.0.4", 3258 3218 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", 3259 3219 "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", 3260 - "dev": true, 3261 3220 "dependencies": { 3262 3221 "brace-expansion": "^2.0.1" 3263 3222 }, ··· 3281 3240 "version": "7.1.1", 3282 3241 "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", 3283 3242 "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", 3284 - "dev": true, 3285 3243 "engines": { 3286 3244 "node": ">=16 || 14 >=14.17" 3287 3245 } ··· 3328 3286 "version": "2.7.0", 3329 3287 "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 3330 3288 "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 3331 - "dev": true, 3332 3289 "dependencies": { 3333 3290 "any-promise": "^1.0.0", 3334 3291 "object-assign": "^4.0.1", ··· 3368 3325 "version": "3.0.0", 3369 3326 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 3370 3327 "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 3371 - "dev": true, 3372 3328 "engines": { 3373 3329 "node": ">=0.10.0" 3374 3330 } ··· 3386 3342 "version": "4.1.1", 3387 3343 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3388 3344 "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 3389 - "dev": true, 3390 3345 "engines": { 3391 3346 "node": ">=0.10.0" 3392 3347 } ··· 3395 3350 "version": "3.0.0", 3396 3351 "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 3397 3352 "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 3398 - "dev": true, 3399 3353 "engines": { 3400 3354 "node": ">= 6" 3401 3355 } ··· 3490 3444 "version": "3.1.1", 3491 3445 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3492 3446 "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 3493 - "dev": true, 3494 3447 "engines": { 3495 3448 "node": ">=8" 3496 3449 } ··· 3498 3451 "node_modules/path-parse": { 3499 3452 "version": "1.0.7", 3500 3453 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 3501 - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 3502 - "dev": true 3454 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 3503 3455 }, 3504 3456 "node_modules/path-scurry": { 3505 3457 "version": "1.11.1", 3506 3458 "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", 3507 3459 "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", 3508 - "dev": true, 3509 3460 "dependencies": { 3510 3461 "lru-cache": "^10.2.0", 3511 3462 "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" ··· 3556 3507 "version": "2.3.0", 3557 3508 "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3558 3509 "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 3559 - "dev": true, 3560 3510 "engines": { 3561 3511 "node": ">=0.10.0" 3562 3512 } ··· 3565 3515 "version": "4.0.6", 3566 3516 "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", 3567 3517 "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", 3568 - "dev": true, 3569 3518 "engines": { 3570 3519 "node": ">= 6" 3571 3520 } ··· 3601 3550 "version": "15.1.0", 3602 3551 "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", 3603 3552 "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", 3604 - "dev": true, 3605 3553 "dependencies": { 3606 3554 "postcss-value-parser": "^4.0.0", 3607 3555 "read-cache": "^1.0.0", ··· 3618 3566 "version": "4.0.1", 3619 3567 "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", 3620 3568 "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", 3621 - "dev": true, 3622 3569 "dependencies": { 3623 3570 "camelcase-css": "^2.0.1" 3624 3571 }, ··· 3666 3613 "version": "6.0.1", 3667 3614 "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", 3668 3615 "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", 3669 - "dev": true, 3670 3616 "dependencies": { 3671 3617 "postcss-selector-parser": "^6.0.11" 3672 3618 }, ··· 3727 3673 "version": "6.0.16", 3728 3674 "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", 3729 3675 "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", 3730 - "dev": true, 3731 3676 "dependencies": { 3732 3677 "cssesc": "^3.0.0", 3733 3678 "util-deprecate": "^1.0.2" ··· 3739 3684 "node_modules/postcss-value-parser": { 3740 3685 "version": "4.2.0", 3741 3686 "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 3742 - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 3743 - "dev": true 3687 + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" 3744 3688 }, 3745 3689 "node_modules/prelude-ls": { 3746 3690 "version": "1.2.1", ··· 3789 3733 "version": "1.2.3", 3790 3734 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 3791 3735 "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 3792 - "dev": true, 3793 3736 "funding": [ 3794 3737 { 3795 3738 "type": "github", ··· 3809 3752 "version": "1.0.0", 3810 3753 "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 3811 3754 "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 3812 - "dev": true, 3813 3755 "dependencies": { 3814 3756 "pify": "^2.3.0" 3815 3757 } ··· 3818 3760 "version": "3.6.0", 3819 3761 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 3820 3762 "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 3821 - "dev": true, 3822 3763 "dependencies": { 3823 3764 "picomatch": "^2.2.1" 3824 3765 }, ··· 3838 3779 "version": "1.22.8", 3839 3780 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", 3840 3781 "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", 3841 - "dev": true, 3842 3782 "dependencies": { 3843 3783 "is-core-module": "^2.13.0", 3844 3784 "path-parse": "^1.0.7", ··· 3864 3804 "version": "1.0.4", 3865 3805 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 3866 3806 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 3867 - "dev": true, 3868 3807 "engines": { 3869 3808 "iojs": ">=1.0.0", 3870 3809 "node": ">=0.10.0" ··· 3923 3862 "version": "1.2.0", 3924 3863 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 3925 3864 "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 3926 - "dev": true, 3927 3865 "funding": [ 3928 3866 { 3929 3867 "type": "github", ··· 4036 3974 "version": "2.0.0", 4037 3975 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 4038 3976 "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 4039 - "dev": true, 4040 3977 "dependencies": { 4041 3978 "shebang-regex": "^3.0.0" 4042 3979 }, ··· 4048 3985 "version": "3.0.0", 4049 3986 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 4050 3987 "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 4051 - "dev": true, 4052 3988 "engines": { 4053 3989 "node": ">=8" 4054 3990 } ··· 4057 3993 "version": "4.1.0", 4058 3994 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 4059 3995 "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 4060 - "dev": true, 4061 3996 "engines": { 4062 3997 "node": ">=14" 4063 3998 }, ··· 4122 4057 "version": "5.1.2", 4123 4058 "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 4124 4059 "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 4125 - "dev": true, 4126 4060 "dependencies": { 4127 4061 "eastasianwidth": "^0.2.0", 4128 4062 "emoji-regex": "^9.2.2", ··· 4140 4074 "version": "4.2.3", 4141 4075 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 4142 4076 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 4143 - "dev": true, 4144 4077 "dependencies": { 4145 4078 "emoji-regex": "^8.0.0", 4146 4079 "is-fullwidth-code-point": "^3.0.0", ··· 4153 4086 "node_modules/string-width-cjs/node_modules/emoji-regex": { 4154 4087 "version": "8.0.0", 4155 4088 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 4156 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 4157 - "dev": true 4089 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 4158 4090 }, 4159 4091 "node_modules/string-width/node_modules/ansi-regex": { 4160 4092 "version": "6.0.1", 4161 4093 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 4162 4094 "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 4163 - "dev": true, 4164 4095 "engines": { 4165 4096 "node": ">=12" 4166 4097 }, ··· 4172 4103 "version": "7.1.0", 4173 4104 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 4174 4105 "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 4175 - "dev": true, 4176 4106 "dependencies": { 4177 4107 "ansi-regex": "^6.0.1" 4178 4108 }, ··· 4187 4117 "version": "6.0.1", 4188 4118 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4189 4119 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4190 - "dev": true, 4191 4120 "dependencies": { 4192 4121 "ansi-regex": "^5.0.1" 4193 4122 }, ··· 4200 4129 "version": "6.0.1", 4201 4130 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4202 4131 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4203 - "dev": true, 4204 4132 "dependencies": { 4205 4133 "ansi-regex": "^5.0.1" 4206 4134 }, ··· 4236 4164 "version": "3.35.0", 4237 4165 "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", 4238 4166 "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", 4239 - "dev": true, 4240 4167 "dependencies": { 4241 4168 "@jridgewell/gen-mapping": "^0.3.2", 4242 4169 "commander": "^4.0.0", ··· 4258 4185 "version": "10.3.15", 4259 4186 "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", 4260 4187 "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", 4261 - "dev": true, 4262 4188 "dependencies": { 4263 4189 "foreground-child": "^3.1.0", 4264 4190 "jackspeak": "^2.3.6", ··· 4292 4218 "version": "1.0.0", 4293 4219 "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 4294 4220 "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 4295 - "dev": true, 4296 4221 "engines": { 4297 4222 "node": ">= 0.4" 4298 4223 }, ··· 4450 4375 "version": "3.4.3", 4451 4376 "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", 4452 4377 "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", 4453 - "dev": true, 4454 4378 "dependencies": { 4455 4379 "@alloc/quick-lru": "^5.2.0", 4456 4380 "arg": "^5.0.2", ··· 4487 4411 "version": "4.0.2", 4488 4412 "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", 4489 4413 "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", 4490 - "dev": true, 4491 4414 "funding": [ 4492 4415 { 4493 4416 "type": "opencollective", ··· 4522 4445 "version": "3.1.1", 4523 4446 "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", 4524 4447 "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", 4525 - "dev": true, 4526 4448 "engines": { 4527 4449 "node": ">=14" 4528 4450 }, ··· 4534 4456 "version": "2.4.2", 4535 4457 "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", 4536 4458 "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", 4537 - "dev": true, 4538 4459 "bin": { 4539 4460 "yaml": "bin.mjs" 4540 4461 }, ··· 4552 4473 "version": "3.3.1", 4553 4474 "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 4554 4475 "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 4555 - "dev": true, 4556 4476 "dependencies": { 4557 4477 "any-promise": "^1.0.0" 4558 4478 } ··· 4561 4481 "version": "1.6.0", 4562 4482 "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 4563 4483 "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 4564 - "dev": true, 4565 4484 "dependencies": { 4566 4485 "thenify": ">= 3.1.0 < 4" 4567 4486 }, ··· 4645 4564 "version": "5.0.1", 4646 4565 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 4647 4566 "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 4648 - "dev": true, 4649 4567 "dependencies": { 4650 4568 "is-number": "^7.0.0" 4651 4569 }, ··· 4703 4621 "node_modules/ts-interface-checker": { 4704 4622 "version": "0.1.13", 4705 4623 "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 4706 - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 4707 - "dev": true 4624 + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" 4708 4625 }, 4709 4626 "node_modules/tslib": { 4710 4627 "version": "2.6.2", ··· 4799 4716 "node_modules/util-deprecate": { 4800 4717 "version": "1.0.2", 4801 4718 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4802 - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 4803 - "dev": true 4719 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 4804 4720 }, 4805 4721 "node_modules/vite": { 4806 4722 "version": "5.2.11", ··· 4890 4806 "version": "2.0.2", 4891 4807 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4892 4808 "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4893 - "dev": true, 4894 4809 "dependencies": { 4895 4810 "isexe": "^2.0.0" 4896 4811 }, ··· 4914 4829 "version": "8.1.0", 4915 4830 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 4916 4831 "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 4917 - "dev": true, 4918 4832 "dependencies": { 4919 4833 "ansi-styles": "^6.1.0", 4920 4834 "string-width": "^5.0.1", ··· 4932 4846 "version": "7.0.0", 4933 4847 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 4934 4848 "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 4935 - "dev": true, 4936 4849 "dependencies": { 4937 4850 "ansi-styles": "^4.0.0", 4938 4851 "string-width": "^4.1.0", ··· 4948 4861 "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 4949 4862 "version": "8.0.0", 4950 4863 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 4951 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 4952 - "dev": true 4864 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 4953 4865 }, 4954 4866 "node_modules/wrap-ansi-cjs/node_modules/string-width": { 4955 4867 "version": "4.2.3", 4956 4868 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 4957 4869 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 4958 - "dev": true, 4959 4870 "dependencies": { 4960 4871 "emoji-regex": "^8.0.0", 4961 4872 "is-fullwidth-code-point": "^3.0.0", ··· 4969 4880 "version": "6.0.1", 4970 4881 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 4971 4882 "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 4972 - "dev": true, 4973 4883 "engines": { 4974 4884 "node": ">=12" 4975 4885 }, ··· 4981 4891 "version": "6.2.1", 4982 4892 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 4983 4893 "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 4984 - "dev": true, 4985 4894 "engines": { 4986 4895 "node": ">=12" 4987 4896 }, ··· 4993 4902 "version": "7.1.0", 4994 4903 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 4995 4904 "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 4996 - "dev": true, 4997 4905 "dependencies": { 4998 4906 "ansi-regex": "^6.0.1" 4999 4907 },
+1
package.json
··· 35 35 "type": "module", 36 36 "dependencies": { 37 37 "@sveltejs/adapter-static": "^3.0.1", 38 + "@tailwindcss/aspect-ratio": "^0.4.2", 38 39 "@threlte/core": "^7.3.0", 39 40 "@threlte/extras": "^8.11.2", 40 41 "@types/three": "^0.164.0",
+1 -1
src/app.html
··· 5 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 6 %sveltekit.head% 7 7 </head> 8 - <body data-sveltekit-preload-data="hover"> 8 + <body data-sveltekit-preload-data="hover" class="bg-stone-950"> 9 9 <div style="display: contents">%sveltekit.body%</div> 10 10 </body> 11 11 </html>
+41 -39
src/lib/Demo/Demo.svelte
··· 1 1 <script> 2 + import Grid from './Grid.svelte'; 2 3 import Hero from './Hero.svelte'; 3 4 import Quote from './Quote.svelte'; 4 - import Team from './Team.svelte'; 5 5 6 6 let url = '/svelte-depth-3d-component'; 7 - 8 - let members = [ 9 - { 10 - name: 'Fiona Firestarter', 11 - role: 'Head of Desk Decoration', 12 - description: 13 - 'Brings the office to life with quirky decorations. Known for her seasonal desk themes and a collection of rubber ducks.', 14 - image: url + '/images/member1.png', 15 - depth: url + '/images/member1-depth.png' 16 - }, 17 - { 18 - name: 'Johnny Appletini', 19 - role: 'Chief Snack Officer (CSO)', 20 - description: 21 - 'Responsible for keeping the snack drawer stocked and the team fueled. Rumored to have a secret stash of gummy bears.', 22 - image: url + '/images/member2.png', 23 - depth: url + '/images/member2-depth.png' 24 - }, 25 - { 26 - name: 'Chuckles McGee', 27 - role: 'Director of Fun Times (DFT)', 28 - description: 29 - 'Ensures everyone is having a good time with spontaneous dance-offs and meme sharing. The unofficial morale booster.', 30 - image: url + '/images/member3.png', 31 - depth: url + '/images/member3-depth.png' 32 - } 33 - ]; 34 7 </script> 35 8 36 9 <a class="absolute top-4 right-4" href="https://github.com/flo-bit/svelte-depth-3d-component"> ··· 44 17 </a> 45 18 46 19 <Hero 47 - image={{ 48 - image: url + '/images/couple.jpg', 49 - depth: url + '/images/couple-depth.png' 50 - }} 20 + images={[ 21 + { 22 + image: url + '/images/girl.jpg', 23 + depth: url + '/images/girl-depth.png' 24 + }, 25 + { 26 + image: url + '/images/napoleon-crossing-the-alps.jpg', 27 + depth: url + '/images/napoleon-crossing-the-alps-depth.png' 28 + }, 29 + { 30 + image: url + '/images/van-gogh-self-portrait.webp', 31 + depth: url + '/images/van-gogh-self-portrait-depth.png' 32 + }, 33 + { 34 + image: url + '/images/mona-lisa.jpg', 35 + depth: url + '/images/mona-lisa-depth.png' 36 + } 37 + ]} 51 38 /> 52 - 53 - <div class="py-8 md:py-16"> 54 - <div class="mx-auto max-w-2xl lg:max-w-4xl px-6 lg:px-8"> 55 - <h2 class="text-4xl font-bold tracking-tight text-gray-900 sm:text-5xl">Examples</h2> 56 - </div> 57 - </div> 58 39 59 40 <Quote 60 41 image={{ ··· 63 44 }} 64 45 /> 65 46 66 - <Team {members} /> 47 + <Grid 48 + items={[ 49 + { 50 + name: 'Napoleon Crossing the Alps', 51 + image: url + '/images/napoleon-crossing-the-alps.jpg', 52 + depth: url + '/images/napoleon-crossing-the-alps-depth.png', 53 + href: '#' 54 + }, 55 + { 56 + name: 'Van Gogh Self Portrait', 57 + image: url + '/images/van-gogh-self-portrait.webp', 58 + depth: url + '/images/van-gogh-self-portrait-depth.png', 59 + href: '#' 60 + }, 61 + { 62 + name: 'Mona Lisa', 63 + image: url + '/images/mona-lisa.jpg', 64 + depth: url + '/images/mona-lisa-depth.png', 65 + href: '#' 66 + } 67 + ]} 68 + />
+28
src/lib/Demo/Grid.svelte
··· 1 + <script lang="ts"> 2 + import { Depth3D } from '$lib/Depth3D'; 3 + 4 + export let items: { name: string; image: string; depth: string; href: string }[]; 5 + </script> 6 + 7 + <div class="mx-auto max-w-2xl px-4 py-16 sm:px-6 sm:py-24 lg:max-w-7xl lg:px-8"> 8 + <h2 id="products-heading" class="sr-only">Products</h2> 9 + 10 + <div class="grid grid-cols-1 gap-x-6 gap-y-10 sm:grid-cols-2 lg:grid-cols-3 xl:gap-x-8"> 11 + {#each items as item} 12 + <a href={item.href} class="group"> 13 + <div class="w-full overflow-hidden rounded-lg aspect-h-3 aspect-w-2"> 14 + <div class="h-full w-full"> 15 + <Depth3D 16 + image={{ image: item.image, depth: item.depth }} 17 + detail={400} 18 + cameraPosition={[0, 0, 7]} 19 + /> 20 + </div> 21 + </div> 22 + <div class="mt-4 flex items-center justify-between text-base font-medium text-gray-100"> 23 + <h3>{item.name}</h3> 24 + </div> 25 + </a> 26 + {/each} 27 + </div> 28 + </div>
+29 -19
src/lib/Demo/Hero.svelte
··· 1 1 <script lang="ts"> 2 2 import Depth3D from '$lib/Depth3D'; 3 3 4 - export let image: { 4 + export let images: { 5 5 image: string; 6 6 depth: string; 7 - }; 7 + }[]; 8 + 9 + let currentImage = 0; 8 10 </script> 9 11 10 - <div class="relative isolate overflow-hidden pt-14"> 11 - <div class="mx-auto max-w-7xl px-6 py-32 sm:py-40 lg:px-8"> 12 + <div class="relative isolate overflow-hidden min-h-screen w-full"> 13 + <div class="mx-auto max-w-7xl px-6 lg:px-8"> 12 14 <div 13 15 class="mx-auto max-w-2xl lg:mx-0 lg:grid lg:max-w-none lg:grid-cols-2 lg:gap-x-16 lg:gap-y-6 xl:grid-cols-1 xl:grid-rows-1 xl:gap-x-8" 14 16 > 15 - <h1 16 - class="max-w-2xl text-4xl font-bold tracking-tight text-gray-900 sm:text-6xl lg:col-span-2 xl:col-auto" 17 - > 18 - Depth based 3D effect 19 - </h1> 20 - <div class="mt-6 max-w-xl lg:mt-0 xl:col-end-1 xl:row-start-1"> 21 - <p class="text-lg leading-8 text-gray-600"> 22 - For your svelte website, made with Threlte, Three.js and TailwindCSS 23 - </p> 17 + <div class="sm:max-w-xl xl:col-end-1 xl:row-start-1 flex flex-col justify-center"> 18 + <div class="mt-20 text-lg leading-8 text-stone-400"> 19 + <h1 class="max-w-2xl text-4xl font-bold tracking-tight text-stone-50 sm:text-6xl mb-8"> 20 + depth based 3d effect for svelte websites 21 + </h1> 22 + made with threlte, three.js and tailwind 23 + </div> 24 24 <div class="mt-10 flex items-center gap-x-6"> 25 - <a href='https://github.com/flo-bit/svelte-depth-3d-component' class="text-sm font-semibold leading-6 text-gray-900" 26 - >Get the code <span aria-hidden="true">→</span></a 25 + <a 26 + href="https://github.com/flo-bit/svelte-depth-3d-component" 27 + class="text-sm font-semibold leading-6 text-stone-100" 28 + >get the code <span aria-hidden="true">→</span></a 27 29 > 28 30 </div> 29 31 </div> 30 32 31 - <div 32 - class="mt-10 aspect-[6/5] w-full max-w-lg rounded-2xl overflow-hidden sm:mt-16 lg:mt-0 lg:max-w-none xl:row-span-2 xl:row-end-2 xl:mt-36" 33 - > 34 - <Depth3D {image} detail={1000} cameraPosition={[0, 0, 7]} /> 33 + <div class="w-full h-screen flex items-center justify-center"> 34 + {#key images[currentImage]} 35 + <button on:click={() => { 36 + currentImage = (currentImage + 1) % images.length; 37 + }} class="aspect-[2/3] h-full max-h-[80vh] rounded-xl overflow-hidden"> 38 + <Depth3D 39 + image={{ image: images[currentImage].image, depth: images[currentImage].depth }} 40 + detail={500} 41 + cameraPosition={[0, 0, 7]} 42 + /> 43 + </button> 44 + {/key} 35 45 </div> 36 46 </div> 37 47 </div>
+4 -5
src/lib/Demo/Quote.svelte
··· 11 11 <div class="relative mx-auto max-w-2xl py-24 sm:py-32 lg:max-w-4xl"> 12 12 <figure class="grid grid-cols-1 items-center gap-x-6 gap-y-8 lg:gap-x-10"> 13 13 <div class="relative col-span-2 lg:col-start-1 lg:row-start-2"> 14 - <blockquote class="text-xl font-semibold leading-8 text-gray-900 sm:text-2xl sm:leading-9"> 14 + <blockquote class="text-xl font-semibold leading-8 text-stone-50 sm:text-2xl sm:leading-9"> 15 15 <p> 16 - "Two things are infinite: the universe and the number of times people misattribute 17 - quotes to me; and I'm not sure about the universe." 16 + "I love this component, it's so easy to use and looks amazing on my website." 18 17 </p> 19 18 </blockquote> 20 19 </div> ··· 24 23 </div> 25 24 </div> 26 25 <figcaption class="text-base lg:col-start-1 lg:row-start-3"> 27 - <div class="font-semibold text-gray-900">Albert Einstein</div> 28 - <div class="mt-1 text-gray-500">Famous person</div> 26 + <div class="font-semibold text-stone-100">Albert Einstein</div> 27 + <div class="mt-1 text-stone-400">Famous person</div> 29 28 </figcaption> 30 29 </figure> 31 30 </div>
-78
src/lib/Demo/Team.svelte
··· 1 - <script lang="ts"> 2 - import Depth3D from '$lib/Depth3D'; 3 - 4 - export let title = 'The Team'; 5 - export let description = 'These are real people with totally not AI generated names and descriptions.'; 6 - 7 - export let members: { 8 - name: string; 9 - role: string; 10 - description: string; 11 - image: string; 12 - depth: string; 13 - }[]; 14 - </script> 15 - 16 - <div class="bg-white py-24 md:py-32"> 17 - <div 18 - class="mx-auto grid max-w-2xl lg:max-w-4xl grid-cols-1 gap-x-8 gap-y-20 px-6 lg:px-8 xl:grid-cols-5" 19 - > 20 - <div class="max-w-2xl xl:col-span-2"> 21 - <h2 class="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">{title}</h2> 22 - <p class="mt-6 text-lg leading-8 text-gray-600"> 23 - {description} 24 - </p> 25 - </div> 26 - <ul role="list" class="-mt-12 space-y-12 divide-y divide-gray-200 xl:col-span-3"> 27 - {#each members as member} 28 - <li class="flex flex-col gap-10 pt-12 sm:flex-row"> 29 - <div class="aspect-[4/5] w-52 flex-none rounded-2xl overflow-hidden"> 30 - <Depth3D 31 - image={{ 32 - image: member.image, 33 - depth: member.depth 34 - }} 35 - cameraPosition={[0, -0.5, 8]} 36 - /> 37 - </div> 38 - <div class="max-w-xl flex-auto"> 39 - <h3 class="text-lg font-semibold leading-8 tracking-tight text-gray-900"> 40 - {member.name} 41 - </h3> 42 - <p class="text-base leading-7 text-gray-600">{member.role}</p> 43 - <p class="mt-6 text-base leading-7 text-gray-600"> 44 - {member.description} 45 - </p> 46 - <ul role="list" class="mt-6 flex gap-x-6"> 47 - <li> 48 - <a href="https://twitter.com/flobit_dev" class="text-gray-400 hover:text-gray-500"> 49 - <span class="sr-only">X</span> 50 - <svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20" aria-hidden="true"> 51 - <path 52 - d="M11.4678 8.77491L17.2961 2H15.915L10.8543 7.88256L6.81232 2H2.15039L8.26263 10.8955L2.15039 18H3.53159L8.87581 11.7878L13.1444 18H17.8063L11.4675 8.77491H11.4678ZM9.57608 10.9738L8.95678 10.0881L4.02925 3.03974H6.15068L10.1273 8.72795L10.7466 9.61374L15.9156 17.0075H13.7942L9.57608 10.9742V10.9738Z" 53 - /> 54 - </svg> 55 - </a> 56 - </li> 57 - <li> 58 - <a 59 - href="https://linkedin.com/in/floriankillius" 60 - class="text-gray-400 hover:text-gray-500" 61 - > 62 - <span class="sr-only">LinkedIn</span> 63 - <svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20" aria-hidden="true"> 64 - <path 65 - fill-rule="evenodd" 66 - d="M16.338 16.338H13.67V12.16c0-.995-.017-2.277-1.387-2.277-1.39 0-1.601 1.086-1.601 2.207v4.248H8.014v-8.59h2.559v1.174h.037c.356-.675 1.227-1.387 2.526-1.387 2.703 0 3.203 1.778 3.203 4.092v4.711zM5.005 6.575a1.548 1.548 0 11-.003-3.096 1.548 1.548 0 01.003 3.096zm-1.337 9.763H6.34v-8.59H3.667v8.59zM17.668 1H2.328C1.595 1 1 1.581 1 2.298v15.403C1 18.418 1.595 19 2.328 19h15.34c.734 0 1.332-.582 1.332-1.299V2.298C19 1.581 18.402 1 17.668 1z" 67 - clip-rule="evenodd" 68 - /> 69 - </svg> 70 - </a> 71 - </li> 72 - </ul> 73 - </div> 74 - </li> 75 - {/each} 76 - </ul> 77 - </div> 78 - </div>
static/images/couple-depth.png

This is a binary file and will not be displayed.

static/images/couple.jpg

This is a binary file and will not be displayed.

static/images/girl-depth.png

This is a binary file and will not be displayed.

static/images/girl.jpg

This is a binary file and will not be displayed.

static/images/member1-depth.png

This is a binary file and will not be displayed.

static/images/member1.png

This is a binary file and will not be displayed.

static/images/member2-depth.png

This is a binary file and will not be displayed.

static/images/member2.png

This is a binary file and will not be displayed.

static/images/member3-depth.png

This is a binary file and will not be displayed.

static/images/member3.png

This is a binary file and will not be displayed.

static/images/mona-lisa-depth.png

This is a binary file and will not be displayed.

static/images/mona-lisa.jpg

This is a binary file and will not be displayed.

static/images/napoleon-crossing-the-alps-depth.png

This is a binary file and will not be displayed.

static/images/napoleon-crossing-the-alps.jpg

This is a binary file and will not be displayed.

static/images/van-gogh-self-portrait-depth.png

This is a binary file and will not be displayed.

static/images/van-gogh-self-portrait.webp

This is a binary file and will not be displayed.

+1 -1
tailwind.config.js
··· 4 4 theme: { 5 5 extend: {} 6 6 }, 7 - plugins: [] 7 + plugins: [require('@tailwindcss/aspect-ratio')] 8 8 };