Personal site staging.colinozanne.co.uk
portfolio astro

feat: build up side bar

finxol.io 7f6d3dff c846d997

verified
+1024 -84
+2
astro.config.mjs
··· 1 1 // @ts-check 2 2 import { defineConfig } from "astro/config"; 3 3 import deno from "@deno/astro-adapter"; 4 + import icon from "astro-icon"; 4 5 5 6 // https://astro.build/config 6 7 export default defineConfig({ 7 8 site: "https://staging.colinozanne.fr", 8 9 output: "server", 9 10 adapter: deno(), 11 + integrations: [icon()], 10 12 i18n: { 11 13 locales: ["en", "fr"], 12 14 defaultLocale: "fr",
+645 -3
deno.lock
··· 1 1 { 2 2 "version": "5", 3 3 "specifiers": { 4 + "npm:@astrojs/node@^9.5.0": "9.5.0_astro@5.15.3__vite@6.4.1___picomatch@4.0.3__zod@3.25.76", 4 5 "npm:@deno/astro-adapter@~0.3.2": "0.3.2_astro@5.15.3__vite@6.4.1___picomatch@4.0.3__zod@3.25.76", 6 + "npm:@evilmartians/harmony@^1.4.0": "1.4.0", 7 + "npm:@iconify-json/lucide@^1.2.73": "1.2.73", 8 + "npm:@iconify-json/pixel@^1.2.1": "1.2.1", 9 + "npm:astro-icon@^1.1.5": "1.1.5", 5 10 "npm:astro@^5.15.3": "5.15.3_vite@6.4.1__picomatch@4.0.3_zod@3.25.76" 6 11 }, 7 12 "npm": { 13 + "@antfu/install-pkg@1.1.0": { 14 + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", 15 + "dependencies": [ 16 + "package-manager-detector", 17 + "tinyexec" 18 + ] 19 + }, 20 + "@antfu/utils@8.1.1": { 21 + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==" 22 + }, 8 23 "@astrojs/compiler@2.13.0": { 9 24 "integrity": "sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==" 10 25 }, ··· 35 50 "unist-util-visit", 36 51 "unist-util-visit-parents", 37 52 "vfile" 53 + ] 54 + }, 55 + "@astrojs/node@9.5.0_astro@5.15.3__vite@6.4.1___picomatch@4.0.3__zod@3.25.76": { 56 + "integrity": "sha512-x1whLIatmCefaqJA8FjfI+P6FStF+bqmmrib0OUGM1M3cZhAXKLgPx6UF2AzQ3JgpXgCWYM24MHtraPvZhhyLQ==", 57 + "dependencies": [ 58 + "@astrojs/internal-helpers", 59 + "astro", 60 + "send", 61 + "server-destroy" 38 62 ] 39 63 }, 40 64 "@astrojs/prism@3.3.0": { ··· 223 247 "os": ["win32"], 224 248 "cpu": ["x64"] 225 249 }, 250 + "@evilmartians/harmony@1.4.0": { 251 + "integrity": "sha512-NgKkhTnQOSE07IvDxHHPLzFF81TaWU1Ir5nmaRM+PebXAol5vNXnk+Lp2JPgj1P/PBTu6lzSWckSpNjC19XSUw==" 252 + }, 253 + "@iconify-json/lucide@1.2.73": { 254 + "integrity": "sha512-++HFkqDNu4jqG5+vYT+OcVj9OiuPCw9wQuh8G5QWQnBRSJ9eKwSStiU8ORgOoK07xJsm/0VIHySMniXUUXP9Gw==", 255 + "dependencies": [ 256 + "@iconify/types" 257 + ] 258 + }, 259 + "@iconify-json/pixel@1.2.1": { 260 + "integrity": "sha512-XwzURAMyZ/BJKeygh4PloKo9cUvS8GfcePueApzwrePvmwCwYT8SC581AQLxJHJl2FZjGWmUMVQ2FN3b9/cYyw==", 261 + "dependencies": [ 262 + "@iconify/types" 263 + ] 264 + }, 265 + "@iconify/tools@4.1.4": { 266 + "integrity": "sha512-s6BcNUcCxQ3S6cvhlsoWzOuBt8qKXdVyXB9rT57uSJ/ARHD7dVM43+5ERBWn3tmkMWXeJ/s9DPVc3dUasayzeA==", 267 + "dependencies": [ 268 + "@iconify/types", 269 + "@iconify/utils", 270 + "@types/tar", 271 + "axios", 272 + "cheerio", 273 + "domhandler", 274 + "extract-zip", 275 + "local-pkg@0.5.1", 276 + "pathe@1.1.2", 277 + "svgo", 278 + "tar" 279 + ] 280 + }, 281 + "@iconify/types@2.0.0": { 282 + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==" 283 + }, 284 + "@iconify/utils@2.3.0": { 285 + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", 286 + "dependencies": [ 287 + "@antfu/install-pkg", 288 + "@antfu/utils", 289 + "@iconify/types", 290 + "debug", 291 + "globals", 292 + "kolorist", 293 + "local-pkg@1.1.2", 294 + "mlly" 295 + ] 296 + }, 226 297 "@img/colour@1.0.0": { 227 298 "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==" 228 299 }, ··· 541 612 "tslib" 542 613 ] 543 614 }, 615 + "@trysound/sax@0.2.0": { 616 + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" 617 + }, 544 618 "@types/debug@4.1.12": { 545 619 "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", 546 620 "dependencies": [ ··· 581 655 "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", 582 656 "dependencies": [ 583 657 "undici-types" 658 + ] 659 + }, 660 + "@types/tar@6.1.13": { 661 + "integrity": "sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==", 662 + "dependencies": [ 663 + "@types/node", 664 + "minipass@4.2.8" 584 665 ] 585 666 }, 586 667 "@types/unist@3.0.3": { 587 668 "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" 588 669 }, 670 + "@types/yauzl@2.10.3": { 671 + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", 672 + "dependencies": [ 673 + "@types/node" 674 + ] 675 + }, 589 676 "@ungap/structured-clone@1.3.0": { 590 677 "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" 591 678 }, ··· 623 710 }, 624 711 "array-iterate@2.0.1": { 625 712 "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==" 713 + }, 714 + "astro-icon@1.1.5": { 715 + "integrity": "sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw==", 716 + "dependencies": [ 717 + "@iconify/tools", 718 + "@iconify/types", 719 + "@iconify/utils" 720 + ] 626 721 }, 627 722 "astro@5.15.3_vite@6.4.1__picomatch@4.0.3_zod@3.25.76": { 628 723 "integrity": "sha512-wUO/isJrcUoduRoKacKB9jpO6TxTlPV1zw8UqQx39jSNY7z9IxusJAiib3AiNvqK+dCWhqXx+OnExCCwELmcUw==", ··· 695 790 ], 696 791 "bin": true 697 792 }, 793 + "asynckit@0.4.0": { 794 + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 795 + }, 796 + "axios@1.13.2": { 797 + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", 798 + "dependencies": [ 799 + "follow-redirects", 800 + "form-data", 801 + "proxy-from-env" 802 + ] 803 + }, 698 804 "axobject-query@4.1.0": { 699 805 "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==" 700 806 }, ··· 707 813 "base64-js@1.5.1": { 708 814 "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 709 815 }, 816 + "boolbase@1.0.0": { 817 + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" 818 + }, 710 819 "boxen@8.0.1": { 711 820 "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", 712 821 "dependencies": [ ··· 726 835 "base64-js" 727 836 ] 728 837 }, 838 + "buffer-crc32@0.2.13": { 839 + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" 840 + }, 841 + "call-bind-apply-helpers@1.0.2": { 842 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 843 + "dependencies": [ 844 + "es-errors", 845 + "function-bind" 846 + ] 847 + }, 729 848 "camelcase@8.0.0": { 730 849 "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==" 731 850 }, ··· 744 863 "character-entities@2.0.2": { 745 864 "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" 746 865 }, 866 + "cheerio-select@2.1.0": { 867 + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", 868 + "dependencies": [ 869 + "boolbase", 870 + "css-select", 871 + "css-what", 872 + "domelementtype", 873 + "domhandler", 874 + "domutils" 875 + ] 876 + }, 877 + "cheerio@1.0.0": { 878 + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", 879 + "dependencies": [ 880 + "cheerio-select", 881 + "dom-serializer", 882 + "domhandler", 883 + "domutils", 884 + "encoding-sniffer", 885 + "htmlparser2", 886 + "parse5", 887 + "parse5-htmlparser2-tree-adapter", 888 + "parse5-parser-stream", 889 + "undici", 890 + "whatwg-mimetype" 891 + ] 892 + }, 747 893 "chokidar@4.0.3": { 748 894 "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", 749 895 "dependencies": [ 750 896 "readdirp" 751 897 ] 752 898 }, 899 + "chownr@2.0.0": { 900 + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" 901 + }, 753 902 "ci-info@4.3.1": { 754 903 "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==" 755 904 }, ··· 762 911 "clsx@2.1.1": { 763 912 "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" 764 913 }, 914 + "combined-stream@1.0.8": { 915 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 916 + "dependencies": [ 917 + "delayed-stream" 918 + ] 919 + }, 765 920 "comma-separated-tokens@2.0.3": { 766 921 "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" 767 922 }, 923 + "commander@7.2.0": { 924 + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" 925 + }, 768 926 "common-ancestor-path@1.0.1": { 769 927 "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" 770 928 }, 929 + "confbox@0.1.8": { 930 + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==" 931 + }, 932 + "confbox@0.2.2": { 933 + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==" 934 + }, 771 935 "cookie-es@1.2.2": { 772 936 "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==" 773 937 }, ··· 780 944 "uncrypto" 781 945 ] 782 946 }, 947 + "css-select@5.2.2": { 948 + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", 949 + "dependencies": [ 950 + "boolbase", 951 + "css-what", 952 + "domhandler", 953 + "domutils", 954 + "nth-check" 955 + ] 956 + }, 957 + "css-tree@2.2.1": { 958 + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", 959 + "dependencies": [ 960 + "mdn-data@2.0.28", 961 + "source-map-js" 962 + ] 963 + }, 964 + "css-tree@2.3.1": { 965 + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", 966 + "dependencies": [ 967 + "mdn-data@2.0.30", 968 + "source-map-js" 969 + ] 970 + }, 783 971 "css-tree@3.1.0": { 784 972 "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", 785 973 "dependencies": [ 786 - "mdn-data", 974 + "mdn-data@2.12.2", 787 975 "source-map-js" 788 976 ] 977 + }, 978 + "css-what@6.2.2": { 979 + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==" 789 980 }, 790 981 "cssesc@3.0.0": { 791 982 "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 792 983 "bin": true 793 984 }, 985 + "csso@5.0.5": { 986 + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", 987 + "dependencies": [ 988 + "css-tree@2.2.1" 989 + ] 990 + }, 794 991 "debug@4.4.3": { 795 992 "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 796 993 "dependencies": [ ··· 806 1003 "defu@6.1.4": { 807 1004 "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" 808 1005 }, 1006 + "delayed-stream@1.0.0": { 1007 + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 1008 + }, 1009 + "depd@2.0.0": { 1010 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" 1011 + }, 809 1012 "dequal@2.0.3": { 810 1013 "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" 811 1014 }, ··· 839 1042 "dlv@1.1.3": { 840 1043 "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" 841 1044 }, 1045 + "dom-serializer@2.0.0": { 1046 + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", 1047 + "dependencies": [ 1048 + "domelementtype", 1049 + "domhandler", 1050 + "entities@4.5.0" 1051 + ] 1052 + }, 1053 + "domelementtype@2.3.0": { 1054 + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" 1055 + }, 1056 + "domhandler@5.0.3": { 1057 + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", 1058 + "dependencies": [ 1059 + "domelementtype" 1060 + ] 1061 + }, 1062 + "domutils@3.2.2": { 1063 + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", 1064 + "dependencies": [ 1065 + "dom-serializer", 1066 + "domelementtype", 1067 + "domhandler" 1068 + ] 1069 + }, 842 1070 "dset@3.1.4": { 843 1071 "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==" 844 1072 }, 1073 + "dunder-proto@1.0.1": { 1074 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 1075 + "dependencies": [ 1076 + "call-bind-apply-helpers", 1077 + "es-errors", 1078 + "gopd" 1079 + ] 1080 + }, 1081 + "ee-first@1.1.1": { 1082 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 1083 + }, 845 1084 "emoji-regex@10.6.0": { 846 1085 "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==" 847 1086 }, 848 1087 "emoji-regex@8.0.0": { 849 1088 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 850 1089 }, 1090 + "encodeurl@2.0.0": { 1091 + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" 1092 + }, 1093 + "encoding-sniffer@0.2.1": { 1094 + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", 1095 + "dependencies": [ 1096 + "iconv-lite", 1097 + "whatwg-encoding" 1098 + ] 1099 + }, 1100 + "end-of-stream@1.4.5": { 1101 + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", 1102 + "dependencies": [ 1103 + "once" 1104 + ] 1105 + }, 1106 + "entities@4.5.0": { 1107 + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" 1108 + }, 851 1109 "entities@6.0.1": { 852 1110 "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==" 853 1111 }, 1112 + "es-define-property@1.0.1": { 1113 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" 1114 + }, 1115 + "es-errors@1.3.0": { 1116 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" 1117 + }, 854 1118 "es-module-lexer@1.7.0": { 855 1119 "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==" 1120 + }, 1121 + "es-object-atoms@1.1.1": { 1122 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 1123 + "dependencies": [ 1124 + "es-errors" 1125 + ] 1126 + }, 1127 + "es-set-tostringtag@2.1.0": { 1128 + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", 1129 + "dependencies": [ 1130 + "es-errors", 1131 + "get-intrinsic", 1132 + "has-tostringtag", 1133 + "hasown" 1134 + ] 856 1135 }, 857 1136 "esbuild@0.25.12": { 858 1137 "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", ··· 886 1165 ], 887 1166 "scripts": true, 888 1167 "bin": true 1168 + }, 1169 + "escape-html@1.0.3": { 1170 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 889 1171 }, 890 1172 "escape-string-regexp@5.0.0": { 891 1173 "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" ··· 899 1181 "@types/estree" 900 1182 ] 901 1183 }, 1184 + "etag@1.8.1": { 1185 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" 1186 + }, 902 1187 "eventemitter3@5.0.1": { 903 1188 "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" 904 1189 }, 1190 + "exsolve@1.0.7": { 1191 + "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==" 1192 + }, 905 1193 "extend@3.0.2": { 906 1194 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 907 1195 }, 1196 + "extract-zip@2.0.1": { 1197 + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 1198 + "dependencies": [ 1199 + "debug", 1200 + "get-stream", 1201 + "yauzl" 1202 + ], 1203 + "optionalDependencies": [ 1204 + "@types/yauzl" 1205 + ], 1206 + "bin": true 1207 + }, 908 1208 "fast-deep-equal@3.1.3": { 909 1209 "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 910 1210 }, 1211 + "fd-slicer@1.1.0": { 1212 + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 1213 + "dependencies": [ 1214 + "pend" 1215 + ] 1216 + }, 911 1217 "fdir@6.5.0_picomatch@4.0.3": { 912 1218 "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 913 1219 "dependencies": [ ··· 919 1225 }, 920 1226 "flattie@1.1.1": { 921 1227 "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==" 1228 + }, 1229 + "follow-redirects@1.15.11": { 1230 + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==" 922 1231 }, 923 1232 "fontace@0.3.1": { 924 1233 "integrity": "sha512-9f5g4feWT1jWT8+SbL85aLIRLIXUaDygaM2xPXRmzPYxrOMNok79Lr3FGJoKVNKibE0WCunNiEVG2mwuE+2qEg==", ··· 941 1250 "unicode-trie" 942 1251 ] 943 1252 }, 1253 + "form-data@4.0.4": { 1254 + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", 1255 + "dependencies": [ 1256 + "asynckit", 1257 + "combined-stream", 1258 + "es-set-tostringtag", 1259 + "hasown", 1260 + "mime-types@2.1.35" 1261 + ] 1262 + }, 1263 + "fresh@2.0.0": { 1264 + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==" 1265 + }, 1266 + "fs-minipass@2.1.0": { 1267 + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 1268 + "dependencies": [ 1269 + "minipass@3.3.6" 1270 + ] 1271 + }, 944 1272 "fsevents@2.3.3": { 945 1273 "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 946 1274 "os": ["darwin"], 947 1275 "scripts": true 948 1276 }, 1277 + "function-bind@1.1.2": { 1278 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" 1279 + }, 949 1280 "get-east-asian-width@1.4.0": { 950 1281 "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==" 951 1282 }, 1283 + "get-intrinsic@1.3.0": { 1284 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 1285 + "dependencies": [ 1286 + "call-bind-apply-helpers", 1287 + "es-define-property", 1288 + "es-errors", 1289 + "es-object-atoms", 1290 + "function-bind", 1291 + "get-proto", 1292 + "gopd", 1293 + "has-symbols", 1294 + "hasown", 1295 + "math-intrinsics" 1296 + ] 1297 + }, 1298 + "get-proto@1.0.1": { 1299 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 1300 + "dependencies": [ 1301 + "dunder-proto", 1302 + "es-object-atoms" 1303 + ] 1304 + }, 1305 + "get-stream@5.2.0": { 1306 + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 1307 + "dependencies": [ 1308 + "pump" 1309 + ] 1310 + }, 952 1311 "github-slugger@2.0.0": { 953 1312 "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" 954 1313 }, 1314 + "globals@15.15.0": { 1315 + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==" 1316 + }, 1317 + "gopd@1.2.0": { 1318 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" 1319 + }, 955 1320 "h3@1.15.4": { 956 1321 "integrity": "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==", 957 1322 "dependencies": [ ··· 964 1329 "radix3", 965 1330 "ufo", 966 1331 "uncrypto" 1332 + ] 1333 + }, 1334 + "has-symbols@1.1.0": { 1335 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" 1336 + }, 1337 + "has-tostringtag@1.0.2": { 1338 + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 1339 + "dependencies": [ 1340 + "has-symbols" 1341 + ] 1342 + }, 1343 + "hasown@2.0.2": { 1344 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 1345 + "dependencies": [ 1346 + "function-bind" 967 1347 ] 968 1348 }, 969 1349 "hast-util-from-html@2.0.3": { ··· 1079 1459 "html-void-elements@3.0.0": { 1080 1460 "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==" 1081 1461 }, 1462 + "htmlparser2@9.1.0": { 1463 + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", 1464 + "dependencies": [ 1465 + "domelementtype", 1466 + "domhandler", 1467 + "domutils", 1468 + "entities@4.5.0" 1469 + ] 1470 + }, 1082 1471 "http-cache-semantics@4.2.0": { 1083 1472 "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==" 1084 1473 }, 1474 + "http-errors@2.0.0": { 1475 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 1476 + "dependencies": [ 1477 + "depd", 1478 + "inherits", 1479 + "setprototypeof", 1480 + "statuses", 1481 + "toidentifier" 1482 + ] 1483 + }, 1484 + "iconv-lite@0.6.3": { 1485 + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 1486 + "dependencies": [ 1487 + "safer-buffer" 1488 + ] 1489 + }, 1085 1490 "import-meta-resolve@4.2.0": { 1086 1491 "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==" 1492 + }, 1493 + "inherits@2.0.4": { 1494 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1087 1495 }, 1088 1496 "iron-webcrypto@1.2.1": { 1089 1497 "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==" ··· 1121 1529 "kleur@3.0.3": { 1122 1530 "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" 1123 1531 }, 1532 + "kolorist@1.8.0": { 1533 + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==" 1534 + }, 1535 + "local-pkg@0.5.1": { 1536 + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", 1537 + "dependencies": [ 1538 + "mlly", 1539 + "pkg-types@1.3.1" 1540 + ] 1541 + }, 1542 + "local-pkg@1.1.2": { 1543 + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", 1544 + "dependencies": [ 1545 + "mlly", 1546 + "pkg-types@2.3.0", 1547 + "quansync" 1548 + ] 1549 + }, 1124 1550 "longest-streak@3.1.0": { 1125 1551 "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==" 1126 1552 }, ··· 1143 1569 }, 1144 1570 "markdown-table@3.0.4": { 1145 1571 "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==" 1572 + }, 1573 + "math-intrinsics@1.1.0": { 1574 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" 1146 1575 }, 1147 1576 "mdast-util-definitions@6.0.0": { 1148 1577 "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", ··· 1277 1706 "dependencies": [ 1278 1707 "@types/mdast" 1279 1708 ] 1709 + }, 1710 + "mdn-data@2.0.28": { 1711 + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" 1712 + }, 1713 + "mdn-data@2.0.30": { 1714 + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" 1280 1715 }, 1281 1716 "mdn-data@2.12.2": { 1282 1717 "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==" ··· 1522 1957 "micromark-util-types" 1523 1958 ] 1524 1959 }, 1960 + "mime-db@1.52.0": { 1961 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 1962 + }, 1963 + "mime-db@1.54.0": { 1964 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==" 1965 + }, 1966 + "mime-types@2.1.35": { 1967 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1968 + "dependencies": [ 1969 + "mime-db@1.52.0" 1970 + ] 1971 + }, 1972 + "mime-types@3.0.1": { 1973 + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", 1974 + "dependencies": [ 1975 + "mime-db@1.54.0" 1976 + ] 1977 + }, 1978 + "minipass@3.3.6": { 1979 + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 1980 + "dependencies": [ 1981 + "yallist" 1982 + ] 1983 + }, 1984 + "minipass@4.2.8": { 1985 + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==" 1986 + }, 1987 + "minipass@5.0.0": { 1988 + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" 1989 + }, 1990 + "minizlib@2.1.2": { 1991 + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 1992 + "dependencies": [ 1993 + "minipass@3.3.6", 1994 + "yallist" 1995 + ] 1996 + }, 1997 + "mkdirp@1.0.4": { 1998 + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", 1999 + "bin": true 2000 + }, 2001 + "mlly@1.8.0": { 2002 + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", 2003 + "dependencies": [ 2004 + "acorn", 2005 + "pathe@2.0.3", 2006 + "pkg-types@1.3.1", 2007 + "ufo" 2008 + ] 2009 + }, 1525 2010 "mrmime@2.0.1": { 1526 2011 "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==" 1527 2012 }, ··· 1550 2035 "normalize-path@3.0.0": { 1551 2036 "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" 1552 2037 }, 2038 + "nth-check@2.1.1": { 2039 + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", 2040 + "dependencies": [ 2041 + "boolbase" 2042 + ] 2043 + }, 1553 2044 "ofetch@1.5.1": { 1554 2045 "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", 1555 2046 "dependencies": [ ··· 1561 2052 "ohash@2.0.11": { 1562 2053 "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==" 1563 2054 }, 2055 + "on-finished@2.4.1": { 2056 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 2057 + "dependencies": [ 2058 + "ee-first" 2059 + ] 2060 + }, 2061 + "once@1.4.0": { 2062 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2063 + "dependencies": [ 2064 + "wrappy" 2065 + ] 2066 + }, 1564 2067 "oniguruma-parser@0.12.1": { 1565 2068 "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==" 1566 2069 }, ··· 1605 2108 "vfile" 1606 2109 ] 1607 2110 }, 2111 + "parse5-htmlparser2-tree-adapter@7.1.0": { 2112 + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", 2113 + "dependencies": [ 2114 + "domhandler", 2115 + "parse5" 2116 + ] 2117 + }, 2118 + "parse5-parser-stream@7.1.2": { 2119 + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", 2120 + "dependencies": [ 2121 + "parse5" 2122 + ] 2123 + }, 1608 2124 "parse5@7.3.0": { 1609 2125 "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", 1610 2126 "dependencies": [ 1611 - "entities" 2127 + "entities@6.0.1" 1612 2128 ] 1613 2129 }, 2130 + "pathe@1.1.2": { 2131 + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" 2132 + }, 2133 + "pathe@2.0.3": { 2134 + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==" 2135 + }, 2136 + "pend@1.2.0": { 2137 + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" 2138 + }, 1614 2139 "picocolors@1.1.1": { 1615 2140 "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" 1616 2141 }, ··· 1620 2145 "picomatch@4.0.3": { 1621 2146 "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" 1622 2147 }, 2148 + "pkg-types@1.3.1": { 2149 + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", 2150 + "dependencies": [ 2151 + "confbox@0.1.8", 2152 + "mlly", 2153 + "pathe@2.0.3" 2154 + ] 2155 + }, 2156 + "pkg-types@2.3.0": { 2157 + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", 2158 + "dependencies": [ 2159 + "confbox@0.2.2", 2160 + "exsolve", 2161 + "pathe@2.0.3" 2162 + ] 2163 + }, 1623 2164 "postcss@8.5.6": { 1624 2165 "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", 1625 2166 "dependencies": [ ··· 1644 2185 "property-information@7.1.0": { 1645 2186 "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==" 1646 2187 }, 2188 + "proxy-from-env@1.1.0": { 2189 + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 2190 + }, 2191 + "pump@3.0.3": { 2192 + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", 2193 + "dependencies": [ 2194 + "end-of-stream", 2195 + "once" 2196 + ] 2197 + }, 2198 + "quansync@0.2.11": { 2199 + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==" 2200 + }, 1647 2201 "radix3@1.1.2": { 1648 2202 "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==" 2203 + }, 2204 + "range-parser@1.2.1": { 2205 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1649 2206 }, 1650 2207 "readdirp@4.1.2": { 1651 2208 "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==" ··· 1813 2370 ], 1814 2371 "bin": true 1815 2372 }, 2373 + "safer-buffer@2.1.2": { 2374 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 2375 + }, 1816 2376 "semver@7.7.3": { 1817 2377 "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 1818 2378 "bin": true 1819 2379 }, 2380 + "send@1.2.0": { 2381 + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", 2382 + "dependencies": [ 2383 + "debug", 2384 + "encodeurl", 2385 + "escape-html", 2386 + "etag", 2387 + "fresh", 2388 + "http-errors", 2389 + "mime-types@3.0.1", 2390 + "ms", 2391 + "on-finished", 2392 + "range-parser", 2393 + "statuses" 2394 + ] 2395 + }, 2396 + "server-destroy@1.0.1": { 2397 + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==" 2398 + }, 2399 + "setprototypeof@1.2.0": { 2400 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 2401 + }, 1820 2402 "sharp@0.34.4": { 1821 2403 "integrity": "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==", 1822 2404 "dependencies": [ ··· 1875 2457 "space-separated-tokens@2.0.2": { 1876 2458 "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" 1877 2459 }, 2460 + "statuses@2.0.1": { 2461 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" 2462 + }, 1878 2463 "string-width@4.2.3": { 1879 2464 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1880 2465 "dependencies": [ ··· 1910 2495 "ansi-regex@6.2.2" 1911 2496 ] 1912 2497 }, 2498 + "svgo@3.3.2": { 2499 + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", 2500 + "dependencies": [ 2501 + "@trysound/sax", 2502 + "commander", 2503 + "css-select", 2504 + "css-tree@2.3.1", 2505 + "css-what", 2506 + "csso", 2507 + "picocolors" 2508 + ], 2509 + "bin": true 2510 + }, 2511 + "tar@6.2.1": { 2512 + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", 2513 + "dependencies": [ 2514 + "chownr", 2515 + "fs-minipass", 2516 + "minipass@5.0.0", 2517 + "minizlib", 2518 + "mkdirp", 2519 + "yallist" 2520 + ] 2521 + }, 1913 2522 "tiny-inflate@1.0.3": { 1914 2523 "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" 1915 2524 }, ··· 1923 2532 "picomatch@4.0.3" 1924 2533 ] 1925 2534 }, 2535 + "toidentifier@1.0.1": { 2536 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 2537 + }, 1926 2538 "trim-lines@3.0.1": { 1927 2539 "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" 1928 2540 }, ··· 1955 2567 "undici-types@7.10.0": { 1956 2568 "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==" 1957 2569 }, 2570 + "undici@6.22.0": { 2571 + "integrity": "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==" 2572 + }, 1958 2573 "unicode-properties@1.4.1": { 1959 2574 "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", 1960 2575 "dependencies": [ ··· 1984 2599 "unifont@0.6.0": { 1985 2600 "integrity": "sha512-5Fx50fFQMQL5aeHyWnZX9122sSLckcDvcfFiBf3QYeHa7a1MKJooUy52b67moi2MJYkrfo/TWY+CoLdr/w0tTA==", 1986 2601 "dependencies": [ 1987 - "css-tree", 2602 + "css-tree@3.1.0", 1988 2603 "ofetch", 1989 2604 "ohash" 1990 2605 ] ··· 2110 2725 "web-namespaces@2.0.1": { 2111 2726 "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==" 2112 2727 }, 2728 + "whatwg-encoding@3.1.1": { 2729 + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", 2730 + "dependencies": [ 2731 + "iconv-lite" 2732 + ] 2733 + }, 2734 + "whatwg-mimetype@4.0.0": { 2735 + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==" 2736 + }, 2113 2737 "which-pm-runs@1.1.0": { 2114 2738 "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==" 2115 2739 }, ··· 2127 2751 "strip-ansi@7.1.2" 2128 2752 ] 2129 2753 }, 2754 + "wrappy@1.0.2": { 2755 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 2756 + }, 2130 2757 "xxhash-wasm@1.1.0": { 2131 2758 "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==" 2132 2759 }, 2760 + "yallist@4.0.0": { 2761 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 2762 + }, 2133 2763 "yargs-parser@21.1.1": { 2134 2764 "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" 2135 2765 }, 2766 + "yauzl@2.10.0": { 2767 + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 2768 + "dependencies": [ 2769 + "buffer-crc32", 2770 + "fd-slicer" 2771 + ] 2772 + }, 2136 2773 "yocto-queue@1.2.1": { 2137 2774 "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==" 2138 2775 }, ··· 2168 2805 "workspace": { 2169 2806 "packageJson": { 2170 2807 "dependencies": [ 2808 + "npm:@astrojs/node@^9.5.0", 2171 2809 "npm:@deno/astro-adapter@~0.3.2", 2810 + "npm:@evilmartians/harmony@^1.4.0", 2811 + "npm:@iconify-json/lucide@^1.2.73", 2812 + "npm:@iconify-json/pixel@^1.2.1", 2813 + "npm:astro-icon@^1.1.5", 2172 2814 "npm:astro@^5.15.3" 2173 2815 ] 2174 2816 }
+6 -1
package.json
··· 9 9 "astro": "astro" 10 10 }, 11 11 "dependencies": { 12 + "@astrojs/node": "^9.5.0", 12 13 "@deno/astro-adapter": "^0.3.2", 13 - "astro": "^5.15.3" 14 + "@evilmartians/harmony": "^1.4.0", 15 + "@iconify-json/lucide": "^1.2.73", 16 + "@iconify-json/pixel": "^1.2.1", 17 + "astro": "^5.15.3", 18 + "astro-icon": "^1.1.5" 14 19 } 15 20 }
public/fonts/easy-coast/EasyCoast-Condensed.otf

This is a binary file and will not be displayed.

public/fonts/easy-coast/EasyCoast-Condensed.ttf

This is a binary file and will not be displayed.

public/fonts/easy-coast/EasyCoast-Condensed.woff

This is a binary file and will not be displayed.

public/fonts/easy-coast/EasyCoast-Condensed.woff2

This is a binary file and will not be displayed.

public/fonts/easy-coast/EasyCoast-Regular.otf

This is a binary file and will not be displayed.

public/fonts/easy-coast/EasyCoast-Regular.ttf

This is a binary file and will not be displayed.

public/fonts/easy-coast/EasyCoast-Regular.woff

This is a binary file and will not be displayed.

public/fonts/easy-coast/EasyCoast-Regular.woff2

This is a binary file and will not be displayed.

public/fonts/spagetty/Spagetty-Regular.otf

This is a binary file and will not be displayed.

public/fonts/spagetty/Spagetty-Regular.woff2

This is a binary file and will not be displayed.

public/fonts/spagetty/Spagetty-Rough.otf

This is a binary file and will not be displayed.

public/fonts/spagetty/Spagetty-Rough.woff2

This is a binary file and will not be displayed.

+24
src/assets/fonts/easycoast.css
··· 1 + @font-face { 2 + font-family: "EasyCoast"; 3 + src: 4 + url("/fonts/easy-coast/EasyCoast-Regular.woff2") format("woff2"), 5 + url("/fonts/easy-coast/EasyCoast-Regular.woff") format("woff"), 6 + url("/fonts/easy-coast/EasyCoast-Regular.ttf") format("truetype"), 7 + url("/fonts/easy-coast/EasyCoast-Regular.otf") format("opentype"); 8 + font-weight: normal; 9 + font-style: normal; 10 + font-display: swap; 11 + } 12 + 13 + @font-face { 14 + font-family: "EasyCoast"; 15 + src: 16 + url("/fonts/easy-coast/EasyCoast-Condensed.woff2") format("woff2"), 17 + url("/fonts/easy-coast/EasyCoast-Condensed.woff") format("woff"), 18 + url("/fonts/easy-coast/EasyCoast-Condensed.ttf") format("truetype"), 19 + url("/fonts/easy-coast/EasyCoast-Condensed.otf") format("opentype"); 20 + font-stretch: condensed; 21 + font-weight: normal; 22 + font-style: normal; 23 + font-display: swap; 24 + }
+20
src/assets/fonts/spagetty.css
··· 1 + @font-face { 2 + font-family: "Spagetty"; 3 + src: 4 + url("/fonts/spagetty/Spagetty-Regular.woff2") format("woff2"), 5 + url("/fonts/spagetty/Spagetty-Regular.otf") format("opentype"); 6 + font-weight: normal; 7 + font-style: normal; 8 + font-display: swap; 9 + } 10 + 11 + @font-face { 12 + font-family: "Spagetty"; 13 + src: 14 + url("/fonts/spagetty/Spagetty-Rough.woff2") format("woff2"), 15 + url("/fonts/spagetty/Spagetty-Rough.otf") format("opentype"); 16 + font-weight: normal; 17 + font-style: normal; 18 + font-variation-settings: "RUFF" 1; 19 + font-display: swap; 20 + }
src/assets/img/colin.png

This is a binary file and will not be displayed.

src/assets/img/colin.webp

This is a binary file and will not be displayed.

+58
src/assets/styles/main.css
··· 1 + /* https://harmonizer.evilmartians.com/#W1siMTAwIiwxMDAsbnVsbCwiMjAwIiw5MCxudWxsLCIzMDAiLDc3LG51bGwsIjQwMCIsNjUsbnVsbCwiNTAwIiw1MSxudWxsLCI2MDAiLDY1LG51bGwsIjcwMCIsNzcsbnVsbCwiODAwIiw5MCxudWxsLCI5MDAiLDEwMCxudWxsXSxbIlJlZCIsMjAsIk1haG9nYW55IiwzOCwiQnJvbnplIiw1NSwiT3JhbmdlIiw3MywiTXVzdGFyZCIsOTAsIkxpbWUiLDEzNSwiVHVycXVvaXNlIiwxODAsIkF6dXJlIiwyNTAsIkxhdmVuZGVyIiwyODUsIkZ1Y2hzaWEiLDMyMCwiRmxhbWluZ28iLDM2MF0sWyJhcGNhIiwiZmdUb0JnIiwiZXZlbiIsIiNmZmYiLCIjMDAwIiw1LCJwMyJdXQ */ 2 + /* https://color.surf/ */ 3 + @import "@evilmartians/harmony/css/amber.css"; 4 + @import "@evilmartians/harmony/css/emerald.css"; 5 + @import "@evilmartians/harmony/css/fuchsia.css"; 6 + @import "@evilmartians/harmony/css/rose.css"; 7 + @import "@evilmartians/harmony/css/gray.css"; 8 + 9 + /* Fonts */ 10 + @import url("@/assets/fonts/spagetty.css"); 11 + @import url("@/assets/fonts/easycoast.css"); 12 + 13 + :root { 14 + --radius: 0.75rem; 15 + --spacing: 0.75rem; 16 + } 17 + 18 + svg[data-icon] { 19 + --size: 1.5rem; 20 + 21 + width: var(--size); 22 + height: var(--size); 23 + } 24 + 25 + @media (max-width: 768px) { 26 + .desktop-only { 27 + display: none; 28 + } 29 + } 30 + 31 + .content-grid { 32 + --padding-inline: min(2%, 1.5rem); 33 + 34 + display: grid; 35 + grid-template-columns: 36 + [full-width-start] var(--padding-inline) 37 + [breakout-start] var(--padding-inline) 38 + [content-start] 1fr 39 + [content-end] 40 + var(--padding-inline) [breakout-end] 41 + var(--padding-inline) [full-width-end]; 42 + justify-content: start; 43 + align-content: start; 44 + row-gap: calc(var(--spacing) * 4); 45 + } 46 + 47 + .content-grid > :not(.breakout, .full-width), 48 + .full-width > :not(.breakout, .full-width) { 49 + grid-column: content; 50 + } 51 + 52 + .content-grid > .breakout { 53 + grid-column: breakout; 54 + } 55 + 56 + .content-grid > .full-width { 57 + grid-column: full-width; 58 + }
+93
src/assets/styles/reset.css
··· 1 + /* CSS Reset by Andy Bell : https://piccalil.li/blog/a-more-modern-css-reset/ */ 2 + 3 + /* Box sizing rules */ 4 + *, 5 + *::before, 6 + *::after { 7 + box-sizing: border-box; 8 + } 9 + 10 + /* Prevent font size inflation */ 11 + html { 12 + -moz-text-size-adjust: none; 13 + -webkit-text-size-adjust: none; 14 + text-size-adjust: none; 15 + } 16 + 17 + /* Remove default margin in favour of better control in authored CSS */ 18 + body, 19 + h1, 20 + h2, 21 + h3, 22 + h4, 23 + p, 24 + figure, 25 + blockquote, 26 + dl, 27 + dd { 28 + margin-block-end: 0; 29 + } 30 + 31 + /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */ 32 + ul[role="list"], 33 + ol[role="list"] { 34 + list-style: none; 35 + } 36 + 37 + /* Set core body defaults */ 38 + body { 39 + line-height: 1.5; 40 + padding: 0; 41 + margin: 0; 42 + } 43 + 44 + /* Set shorter line heights on headings and interactive elements */ 45 + h1, 46 + h2, 47 + h3, 48 + h4, 49 + button, 50 + input, 51 + label { 52 + line-height: 1.1; 53 + } 54 + 55 + /* Balance text wrapping on headings */ 56 + h1, 57 + h2, 58 + h3, 59 + h4 { 60 + text-wrap: balance; 61 + } 62 + 63 + /* A elements that don't have a class get default styles */ 64 + a:not([class]) { 65 + text-decoration-skip-ink: auto; 66 + color: currentColor; 67 + } 68 + 69 + /* Make images easier to work with */ 70 + img, 71 + picture { 72 + max-width: 100%; 73 + display: block; 74 + } 75 + 76 + /* Inherit fonts for inputs and buttons */ 77 + input, 78 + button, 79 + textarea, 80 + select { 81 + font-family: inherit; 82 + font-size: inherit; 83 + } 84 + 85 + /* Make sure textareas without a rows attribute are not tiny */ 86 + textarea:not([rows]) { 87 + min-height: 10em; 88 + } 89 + 90 + /* Anything that has been anchored to should have extra scroll margin */ 91 + :target { 92 + scroll-margin-block: 5ex; 93 + }
+175 -79
src/layouts/Layout.astro
··· 1 + --- 2 + import "@/assets/styles/main.css"; 3 + import "@/assets/styles/reset.css"; 4 + import { Icon } from "astro-icon/components"; 5 + 6 + import colinPng from "@/assets/img/colin.png"; 7 + import colinWebp from "@/assets/img/colin.webp"; 8 + --- 9 + 1 10 <!doctype html> 2 11 <html lang="en"> 3 12 <head> ··· 8 17 <title>Colin Ozanne</title> 9 18 </head> 10 19 <body> 11 - <slot /> 20 + <header> 21 + <picture> 22 + <source srcset={colinWebp.src} type="image/webp" /> 23 + <img src={colinPng.src} alt="Colin Ozanne" /> 24 + </picture> 25 + <h1>Colin <br class="desktop-only" /> Ozanne</h1> 26 + <p>Étudiant M1 Informatique</p> 27 + </header> 28 + <main class="content-grid"> 29 + <slot /> 30 + </main> 31 + <footer> 32 + <a 33 + href="https://bsky.app/profile/did:plc:hpmpe3pzpdtxbmvhlwrevhju" 34 + target="_blank" 35 + rel="noopener noreferrer" 36 + > 37 + <Icon name="pixel:bluesky" /> 38 + <span> Bluesky </span> 39 + <Icon name="pixel:external-link" class="external-link" /> 40 + </a> 41 + <a 42 + href="mailto:contact@colinozanne.fr" 43 + target="_blank" 44 + rel="noopener noreferrer" 45 + > 46 + <Icon name="pixel:envelope" /> 47 + <span> Email </span> 48 + <Icon name="pixel:external-link" class="external-link" /> 49 + </a> 50 + <p>&copy; {new Date().getFullYear()} Colin Ozanne</p> 51 + </footer> 12 52 </body> 13 53 </html> 14 54 15 55 <style> 16 - /* CSS Reset by Andy Bell : https://piccalil.li/blog/a-more-modern-css-reset/ */ 56 + body { 57 + width: 100%; 58 + display: grid; 59 + height: 100svh; 60 + grid-template-columns: clamp(15rem, 20vw, 30rem) auto; 61 + grid-template-rows: 1fr auto; 62 + grid-auto-flow: row; 63 + grid-template-areas: 64 + "header main" 65 + "footer main"; 66 + gap: 0; 67 + font-family: sans-serif; 17 68 18 - /* Box sizing rules */ 19 - *, 20 - *::before, 21 - *::after { 22 - box-sizing: border-box; 23 - } 69 + header { 70 + grid-area: header; 71 + } 24 72 25 - /* Prevent font size inflation */ 26 - html { 27 - -moz-text-size-adjust: none; 28 - -webkit-text-size-adjust: none; 29 - text-size-adjust: none; 30 - } 73 + footer { 74 + grid-area: footer; 75 + } 31 76 32 - /* Remove default margin in favour of better control in authored CSS */ 33 - body, 34 - h1, 35 - h2, 36 - h3, 37 - h4, 38 - p, 39 - figure, 40 - blockquote, 41 - dl, 42 - dd { 43 - margin-block-end: 0; 44 - } 77 + main { 78 + grid-area: main; 79 + } 45 80 46 - /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */ 47 - ul[role="list"], 48 - ol[role="list"] { 49 - list-style: none; 81 + @media screen and (max-width: 768px) { 82 + grid-template-columns: 1fr; 83 + grid-template-rows: auto 1fr auto; 84 + grid-template-areas: 85 + "header" 86 + "main" 87 + "footer"; 88 + gap: 0; 89 + } 50 90 } 51 91 52 - /* Set core body defaults */ 53 - body { 54 - min-height: 100vh; 55 - line-height: 1.5; 56 - padding: 0; 57 - margin: 0; 58 - } 92 + /* aside */ 93 + footer, 94 + header { 95 + container-type: inline-size; 96 + container-name: sidebar; 97 + display: flex; 98 + flex-direction: column; 99 + align-items: stretch; 100 + gap: var(--spacing, 1rem); 101 + width: 100%; 102 + padding: var(--spacing, 1rem); 59 103 60 - /* Set shorter line heights on headings and interactive elements */ 61 - h1, 62 - h2, 63 - h3, 64 - h4, 65 - button, 66 - input, 67 - label { 68 - line-height: 1.1; 104 + picture { 105 + aspect-ratio: auto; 106 + height: auto; 107 + padding: 0; 108 + margin: 0; 109 + overflow: hidden; 110 + } 111 + 112 + h1 { 113 + font-family: "EasyCoast", serif; 114 + letter-spacing: initial; 115 + font-size: 15cqi; 116 + color: var(--clr-dark-a0); 117 + margin: 0; 118 + --aside-elem-color: var(--fuchsia-500); 119 + --aside-elem-text-color: var(--fuchsia-950); 120 + 121 + @media screen and (max-width: 768px) { 122 + font-size: 2rem; 123 + } 124 + } 125 + 126 + p { 127 + margin: 0; 128 + --aside-elem-color: var(--rose-500); 129 + --aside-elem-text-color: var(--rose-950); 130 + } 131 + 132 + a { 133 + display: flex; 134 + align-items: center; 135 + justify-content: center; 136 + gap: 0.5rem; 137 + color: var(--black-500); 138 + text-decoration: none; 139 + transition: color 0.3s ease-in-out; 140 + --aside-elem-color: var(--amber-500); 141 + --aside-elem-text-color: var(--amber-950); 142 + 143 + &:hover { 144 + color: var(--clr-dark-a1); 145 + } 146 + 147 + svg { 148 + --size: 1.5rem; 149 + 150 + &.external-link { 151 + --size: 0.75rem; 152 + } 153 + } 154 + } 155 + 156 + & > * { 157 + padding: var(--spacing); 158 + width: calc(100% - 2rem * var(--spacing)); 159 + border-radius: var(--radius); 160 + text-align: center; 161 + color: var(--aside-elem-text-color, var(--emerald-950, black)); 162 + background-color: var(--aside-elem-color, var(--emerald-500, red)); 163 + font-family: "Spagetty", serif; 164 + letter-spacing: 0.01em; 165 + font-size: 1.2rem; 166 + } 69 167 } 70 168 71 - /* Balance text wrapping on headings */ 72 - h1, 73 - h2, 74 - h3, 75 - h4 { 76 - text-wrap: balance; 77 - } 169 + @media screen and (max-width: 768px) { 170 + header { 171 + --img-size: 5rem; 78 172 79 - /* A elements that don't have a class get default styles */ 80 - a:not([class]) { 81 - text-decoration-skip-ink: auto; 82 - color: currentColor; 83 - } 173 + display: grid; 174 + grid-template-columns: var(--img-size) 1fr; 175 + grid-template-rows: 1fr auto; 176 + grid-template-areas: 177 + "img name" 178 + "title title"; 179 + gap: var(--spacing); 84 180 85 - /* Make images easier to work with */ 86 - img, 87 - picture { 88 - max-width: 100%; 89 - display: block; 90 - } 181 + picture { 182 + grid-area: img; 183 + width: var(--img-size); 184 + height: var(--img-size); 185 + } 91 186 92 - /* Inherit fonts for inputs and buttons */ 93 - input, 94 - button, 95 - textarea, 96 - select { 97 - font-family: inherit; 98 - font-size: inherit; 99 - } 187 + h1 { 188 + container-type: inline-size; 189 + grid-area: name; 190 + display: inline-grid; 191 + place-items: center; 192 + height: var(--img-size); 193 + font-size: 7.6cqi; 194 + } 100 195 101 - /* Make sure textareas without a rows attribute are not tiny */ 102 - textarea:not([rows]) { 103 - min-height: 10em; 196 + p { 197 + grid-area: title; 198 + } 199 + } 104 200 } 105 201 106 - /* Anything that has been anchored to should have extra scroll margin */ 107 - :target { 108 - scroll-margin-block: 5ex; 202 + main { 203 + border-left: 10px solid black; 204 + overflow-y: scroll; 109 205 } 110 206 </style>
+1 -1
src/pages/fr/index.astro
··· 2 2 import Layout from "@/layouts/Layout.astro"; 3 3 --- 4 4 5 - <Layout> Bonjour Je m'appelle Colin </Layout> 5 + <Layout> Bonjour </Layout>