soem changes

This commit is contained in:
zack 2024-11-14 13:05:48 -05:00
parent e3da619b0a
commit 49677f2d9b
No known key found for this signature in database
GPG key ID: 5F873416BCF59F35
8 changed files with 225 additions and 117 deletions

View file

@ -130,40 +130,40 @@ let
sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
};
};
"@shikijs/core-1.22.1" = {
"@shikijs/core-1.22.2" = {
name = "_at_shikijs_slash_core";
packageName = "@shikijs/core";
version = "1.22.1";
version = "1.22.2";
src = fetchurl {
url = "https://registry.npmjs.org/@shikijs/core/-/core-1.22.1.tgz";
sha512 = "bqAhT/Ri5ixV4oYsvJNH8UJjpjbINWlWyXY6tBTsP4OmD6XnFv43nRJ+lTdxd2rmG5pgam/x+zGR6kLRXrpEKA==";
url = "https://registry.npmjs.org/@shikijs/core/-/core-1.22.2.tgz";
sha512 = "bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==";
};
};
"@shikijs/engine-javascript-1.22.1" = {
"@shikijs/engine-javascript-1.22.2" = {
name = "_at_shikijs_slash_engine-javascript";
packageName = "@shikijs/engine-javascript";
version = "1.22.1";
version = "1.22.2";
src = fetchurl {
url = "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.1.tgz";
sha512 = "540pyoy0LWe4jj2BVbgELwOFu1uFvRI7lg4hdsExrSXA9x7gqfzZ/Nnh4RfX86aDAgJ647gx4TCmRwACbnQSvw==";
url = "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz";
sha512 = "iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==";
};
};
"@shikijs/engine-oniguruma-1.22.1" = {
"@shikijs/engine-oniguruma-1.22.2" = {
name = "_at_shikijs_slash_engine-oniguruma";
packageName = "@shikijs/engine-oniguruma";
version = "1.22.1";
version = "1.22.2";
src = fetchurl {
url = "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.1.tgz";
sha512 = "L+1Vmd+a2kk8HtogUFymQS6BjUfJnzcWoUp1BUgxoDiklbKSMvrsMuLZGevTOP1m0rEjgnC5MsDmsr8lX1lC+Q==";
url = "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz";
sha512 = "GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==";
};
};
"@shikijs/types-1.22.1" = {
"@shikijs/types-1.22.2" = {
name = "_at_shikijs_slash_types";
packageName = "@shikijs/types";
version = "1.22.1";
version = "1.22.2";
src = fetchurl {
url = "https://registry.npmjs.org/@shikijs/types/-/types-1.22.1.tgz";
sha512 = "+45f8mu/Hxqs6Kyhfm98Nld5n7Q7lwhjU8UtdQwrOPs7BnM4VAb929O3IQ2ce+4D7SlNFlZGd8CnKRSnwbQreQ==";
url = "https://registry.npmjs.org/@shikijs/types/-/types-1.22.2.tgz";
sha512 = "NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==";
};
};
"@shikijs/vscode-textmate-9.3.0" = {
@ -175,13 +175,13 @@ let
sha512 = "jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==";
};
};
"@swc/core-1.7.40" = {
"@swc/core-1.9.2" = {
name = "_at_swc_slash_core";
packageName = "@swc/core";
version = "1.7.40";
version = "1.9.2";
src = fetchurl {
url = "https://registry.npmjs.org/@swc/core/-/core-1.7.40.tgz";
sha512 = "0HIzM5vigVT5IvNum+pPuST9p8xFhN6mhdIKju7qYYeNuZG78lwms/2d8WgjTJJlzp6JlPguXGrMMNzjQw0qNg==";
url = "https://registry.npmjs.org/@swc/core/-/core-1.9.2.tgz";
sha512 = "dYyEkO6mRYtZFpnOsnYzv9rY69fHAHoawYOjGOEcxk9WYtaJhowMdP/w6NcOKnz2G7GlZaenjkzkMa6ZeQeMsg==";
};
};
"@swc/counter-0.1.3" = {
@ -193,31 +193,31 @@ let
sha512 = "e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==";
};
};
"@swc/helpers-0.5.13" = {
"@swc/helpers-0.5.15" = {
name = "_at_swc_slash_helpers";
packageName = "@swc/helpers";
version = "0.5.13";
version = "0.5.15";
src = fetchurl {
url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz";
sha512 = "UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==";
url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz";
sha512 = "JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==";
};
};
"@swc/types-0.1.13" = {
"@swc/types-0.1.15" = {
name = "_at_swc_slash_types";
packageName = "@swc/types";
version = "0.1.13";
version = "0.1.15";
src = fetchurl {
url = "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz";
sha512 = "JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==";
url = "https://registry.npmjs.org/@swc/types/-/types-0.1.15.tgz";
sha512 = "XKaZ+dzDIQ9Ot9o89oJQ/aluI17+VvUnIpYJTcZtvv1iYX6MzHh3Ik2CSR7MdPKpPwfZXHBeCingb2b4PoDVdw==";
};
};
"@swc/wasm-1.7.40" = {
"@swc/wasm-1.9.2" = {
name = "_at_swc_slash_wasm";
packageName = "@swc/wasm";
version = "1.7.40";
version = "1.9.2";
src = fetchurl {
url = "https://registry.npmjs.org/@swc/wasm/-/wasm-1.7.40.tgz";
sha512 = "Qz7kpC9hMnHPp3fwDZldO/ZzcM/fyBW3Zbzv1m5EtvUpdKS/CAWMpGL2/AMEfM0k4gHHzI23IQcOueUYLnufQQ==";
url = "https://registry.npmjs.org/@swc/wasm/-/wasm-1.9.2.tgz";
sha512 = "Upy/08XJ4nw6Zv6k/lj/w1DdHHAL7iYjBJYAe1EjYe2yJCdlK301I+gl0pUdaq+87dEAzDeqOuCUE/YyEUVDAg==";
};
};
"@tailwindcss/forms-0.5.9" = {
@ -283,13 +283,13 @@ let
sha512 = "kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==";
};
};
"@types/node-22.8.1" = {
"@types/node-22.9.0" = {
name = "_at_types_slash_node";
packageName = "@types/node";
version = "22.8.1";
version = "22.9.0";
src = fetchurl {
url = "https://registry.npmjs.org/@types/node/-/node-22.8.1.tgz";
sha512 = "k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==";
url = "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz";
sha512 = "vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==";
};
};
"@types/unist-3.0.3" = {
@ -310,13 +310,13 @@ let
sha512 = "zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==";
};
};
"acorn-8.13.0" = {
"acorn-8.14.0" = {
name = "acorn";
packageName = "acorn";
version = "8.13.0";
version = "8.14.0";
src = fetchurl {
url = "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz";
sha512 = "8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==";
url = "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz";
sha512 = "cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==";
};
};
"acorn-walk-8.3.4" = {
@ -526,13 +526,13 @@ let
sha512 = "dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==";
};
};
"cross-spawn-7.0.3" = {
"cross-spawn-7.0.5" = {
name = "cross-spawn";
packageName = "cross-spawn";
version = "7.0.3";
version = "7.0.5";
src = fetchurl {
url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz";
sha512 = "ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==";
};
};
"cssesc-3.0.0" = {
@ -886,49 +886,49 @@ let
sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
};
};
"micromark-util-character-2.1.0" = {
"micromark-util-character-2.1.1" = {
name = "micromark-util-character";
packageName = "micromark-util-character";
version = "2.1.0";
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz";
sha512 = "KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==";
url = "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz";
sha512 = "wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==";
};
};
"micromark-util-encode-2.0.0" = {
"micromark-util-encode-2.0.1" = {
name = "micromark-util-encode";
packageName = "micromark-util-encode";
version = "2.0.0";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz";
sha512 = "pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==";
url = "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz";
sha512 = "c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==";
};
};
"micromark-util-sanitize-uri-2.0.0" = {
"micromark-util-sanitize-uri-2.0.1" = {
name = "micromark-util-sanitize-uri";
packageName = "micromark-util-sanitize-uri";
version = "2.0.0";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz";
sha512 = "WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==";
url = "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz";
sha512 = "9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==";
};
};
"micromark-util-symbol-2.0.0" = {
"micromark-util-symbol-2.0.1" = {
name = "micromark-util-symbol";
packageName = "micromark-util-symbol";
version = "2.0.0";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz";
sha512 = "8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==";
url = "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz";
sha512 = "vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==";
};
};
"micromark-util-types-2.0.0" = {
"micromark-util-types-2.0.1" = {
name = "micromark-util-types";
packageName = "micromark-util-types";
version = "2.0.0";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz";
sha512 = "oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==";
url = "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz";
sha512 = "534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==";
};
};
"micromatch-4.0.8" = {
@ -1120,13 +1120,13 @@ let
sha512 = "saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==";
};
};
"postcss-8.4.47" = {
"postcss-8.4.49" = {
name = "postcss";
packageName = "postcss";
version = "8.4.47";
version = "8.4.49";
src = fetchurl {
url = "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz";
sha512 = "56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==";
url = "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz";
sha512 = "OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==";
};
};
"postcss-import-15.1.0" = {
@ -1219,13 +1219,13 @@ let
sha512 = "hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==";
};
};
"regex-4.3.3" = {
"regex-4.4.0" = {
name = "regex";
packageName = "regex";
version = "4.3.3";
version = "4.4.0";
src = fetchurl {
url = "https://registry.npmjs.org/regex/-/regex-4.3.3.tgz";
sha512 = "r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==";
url = "https://registry.npmjs.org/regex/-/regex-4.4.0.tgz";
sha512 = "uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==";
};
};
"resolve-1.22.8" = {
@ -1273,13 +1273,13 @@ let
sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
};
};
"shiki-1.22.1" = {
"shiki-1.22.2" = {
name = "shiki";
packageName = "shiki";
version = "1.22.1";
version = "1.22.2";
src = fetchurl {
url = "https://registry.npmjs.org/shiki/-/shiki-1.22.1.tgz";
sha512 = "PbJ6XxrWLMwB2rm3qdjIHNm3zq4SfFnOx0B3rEoi4AN8AUngsdyZ1tRe5slMPtn6jQkbUURLNZPpLR7Do3k78g==";
url = "https://registry.npmjs.org/shiki/-/shiki-1.22.2.tgz";
sha512 = "3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==";
};
};
"signal-exit-4.1.0" = {
@ -1390,6 +1390,15 @@ let
sha512 = "ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==";
};
};
"tailwind-scrollbar-3.1.0" = {
name = "tailwind-scrollbar";
packageName = "tailwind-scrollbar";
version = "3.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz";
sha512 = "pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg==";
};
};
"tailwindcss-3.4.14" = {
name = "tailwindcss";
packageName = "tailwindcss";
@ -1462,13 +1471,13 @@ let
sha512 = "f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==";
};
};
"tslib-2.8.0" = {
"tslib-2.8.1" = {
name = "tslib";
packageName = "tslib";
version = "2.8.0";
version = "2.8.1";
src = fetchurl {
url = "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz";
sha512 = "jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==";
url = "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz";
sha512 = "oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==";
};
};
"typescript-5.6.3" = {
@ -1647,16 +1656,16 @@ let
sources."@nodelib/fs.scandir-2.1.5"
sources."@nodelib/fs.stat-2.0.5"
sources."@nodelib/fs.walk-1.2.8"
sources."@shikijs/core-1.22.1"
sources."@shikijs/engine-javascript-1.22.1"
sources."@shikijs/engine-oniguruma-1.22.1"
sources."@shikijs/types-1.22.1"
sources."@shikijs/core-1.22.2"
sources."@shikijs/engine-javascript-1.22.2"
sources."@shikijs/engine-oniguruma-1.22.2"
sources."@shikijs/types-1.22.2"
sources."@shikijs/vscode-textmate-9.3.0"
sources."@swc/core-1.7.40"
sources."@swc/core-1.9.2"
sources."@swc/counter-0.1.3"
sources."@swc/helpers-0.5.13"
sources."@swc/types-0.1.13"
sources."@swc/wasm-1.7.40"
sources."@swc/helpers-0.5.15"
sources."@swc/types-0.1.15"
sources."@swc/wasm-1.9.2"
sources."@tailwindcss/forms-0.5.9"
sources."@tsconfig/node10-1.0.11"
sources."@tsconfig/node12-1.0.11"
@ -1664,10 +1673,10 @@ let
sources."@tsconfig/node16-1.0.4"
sources."@types/hast-3.0.4"
sources."@types/mdast-4.0.4"
sources."@types/node-22.8.1"
sources."@types/node-22.9.0"
sources."@types/unist-3.0.3"
sources."@ungap/structured-clone-1.2.0"
sources."acorn-8.13.0"
sources."acorn-8.14.0"
sources."acorn-walk-8.3.4"
sources."ansi-regex-5.0.1"
sources."ansi-styles-6.2.1"
@ -1692,7 +1701,7 @@ let
sources."comma-separated-tokens-2.0.3"
sources."commander-4.1.1"
sources."create-require-1.1.1"
sources."cross-spawn-7.0.3"
sources."cross-spawn-7.0.5"
sources."cssesc-3.0.0"
sources."dequal-2.0.3"
sources."devlop-1.1.0"
@ -1733,11 +1742,11 @@ let
sources."make-error-1.3.6"
sources."mdast-util-to-hast-13.2.0"
sources."merge2-1.4.1"
sources."micromark-util-character-2.1.0"
sources."micromark-util-encode-2.0.0"
sources."micromark-util-sanitize-uri-2.0.0"
sources."micromark-util-symbol-2.0.0"
sources."micromark-util-types-2.0.0"
sources."micromark-util-character-2.1.1"
sources."micromark-util-encode-2.0.1"
sources."micromark-util-sanitize-uri-2.0.1"
sources."micromark-util-symbol-2.0.1"
sources."micromark-util-types-2.0.1"
sources."micromatch-4.0.8"
sources."mini-svg-data-uri-1.4.4"
sources."minimatch-9.0.5"
@ -1759,7 +1768,7 @@ let
sources."picomatch-2.3.1"
sources."pify-2.3.0"
sources."pirates-4.0.6"
sources."postcss-8.4.47"
sources."postcss-8.4.49"
sources."postcss-import-15.1.0"
sources."postcss-js-4.0.1"
(sources."postcss-load-config-4.0.2" // {
@ -1774,13 +1783,13 @@ let
sources."queue-microtask-1.2.3"
sources."read-cache-1.0.0"
sources."readdirp-3.6.0"
sources."regex-4.3.3"
sources."regex-4.4.0"
sources."resolve-1.22.8"
sources."reusify-1.0.4"
sources."run-parallel-1.2.0"
sources."shebang-command-2.0.0"
sources."shebang-regex-3.0.0"
sources."shiki-1.22.1"
sources."shiki-1.22.2"
sources."signal-exit-4.1.0"
sources."source-map-js-1.2.1"
sources."space-separated-tokens-2.0.2"
@ -1800,6 +1809,7 @@ let
sources."strip-ansi-cjs-6.0.1"
sources."sucrase-3.35.0"
sources."supports-preserve-symlinks-flag-1.0.0"
sources."tailwind-scrollbar-3.1.0"
sources."tailwindcss-3.4.14"
sources."tailwindcss-animate-1.0.7"
sources."thenify-3.3.1"
@ -1812,7 +1822,7 @@ let
sources."arg-4.1.3"
];
})
sources."tslib-2.8.0"
sources."tslib-2.8.1"
sources."typescript-5.6.3"
sources."undici-types-6.19.8"
sources."unist-util-is-6.0.0"

View file

@ -15,6 +15,7 @@
"phoenix_html": "^3.3.4",
"phoenix_live_view": "^1.0.0-rc.7",
"shiki": "^1.22.1",
"tailwind-scrollbar": "^3.1.0",
"tailwindcss": "^3.4.14",
"tailwindcss-animate": "^1.0.7"
},
@ -2056,6 +2057,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/tailwind-scrollbar": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz",
"integrity": "sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg==",
"license": "MIT",
"engines": {
"node": ">=12.13.0"
},
"peerDependencies": {
"tailwindcss": "3.x"
}
},
"node_modules/tailwindcss": {
"version": "3.4.14",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz",

View file

@ -16,6 +16,7 @@
"phoenix_html": "^3.3.4",
"phoenix_live_view": "^1.0.0-rc.7",
"shiki": "^1.22.1",
"tailwind-scrollbar": "^3.1.0",
"tailwindcss": "^3.4.14",
"tailwindcss-animate": "^1.0.7"
},

View file

@ -68,6 +68,7 @@ module.exports = {
prefix: "ctp",
defaultFlavor: "mocha",
}),
require("tailwind-scrollbar"),
plugin(({ addVariant }) =>
addVariant("phx-click-loading", [
".phx-click-loading&",

View file

@ -56,7 +56,7 @@ defmodule ZoeyscomputerWeb.CodeBlock do
</div>
<% end %>
<div class="overflow-x-scroll bg-ctp-mantle">
<div class="bg-ctp-mantle">
<div class="relative bg-ctp-crust">
<%= if @line_numbers do %>
<div class="absolute bg-ctp-crust left-0 top-0 bottom-0 ctp-bg-crust min-w-12 flex flex-col items-end py-4 ctp-text-surface2 select-none">
@ -72,7 +72,10 @@ defmodule ZoeyscomputerWeb.CodeBlock do
</div>
<% end %>
<div class={["bg-ctp-mantle overflow-x-scroll pb-0.5", @line_numbers && "pl-12"]}>
<div class={[
"bg-ctp-mantle overflow-x-scroll scrollbar scrollbar-track-ctp-base scrollbar-thumb-ctp-mauve pb-0.5",
@line_numbers && "pl-12"
]}>
<pre
class="p-4 leading-6 text-sm mb-4"
id={"code-block-#{id}"}

View file

@ -70,7 +70,7 @@ defmodule ZoeyscomputerWeb.CoreComponents do
phx-window-keydown={JS.exec("data-cancel", to: "##{@id}")}
phx-key="escape"
phx-click-away={JS.exec("data-cancel", to: "##{@id}")}
class="shadow-zinc-700/10 ring-zinc-700/10 relative hidden rounded-2xl bg-ctp-base p-14 shadow-lg ring-1 transition"
class="shadow-ctp-mauve/10 ring-ctp-mauve/10 relative hidden rounded-2xl bg-ctp-base p-14 shadow-lg ring-1 transition"
>
<div class="absolute top-6 right-5">
<button
@ -340,7 +340,7 @@ defmodule ZoeyscomputerWeb.CoreComponents do
<select
id={@id}
name={@name}
class="mt-2 block w-full rounded-md border border-gray-300 bg-ctp-base shadow-sm focus:border-zinc-400 focus:ring-0 sm:text-sm"
class="mt-2 block w-full rounded-md border border-gray-300 bg-ctp-base shadow-sm focus:border-ctp-blue focus:ring-0 sm:text-sm"
multiple={@multiple}
{@rest}
>
@ -361,7 +361,7 @@ defmodule ZoeyscomputerWeb.CoreComponents do
name={@name}
class={[
"mt-2 block w-full bg-ctp-base rounded-lg text-ctp-text focus:ring-0 sm:text-sm sm:leading-6 min-h-[6rem]",
@errors == [] && "border-ctp-surface2 focus:border-zinc-400",
@errors == [] && "border-ctp-surface2 focus:border-ctp-overlay0",
@errors != [] && "border-rose-400 focus:border-rose-400"
]}
{@rest}
@ -500,7 +500,7 @@ defmodule ZoeyscomputerWeb.CoreComponents do
~H"""
<div class="overflow-y-auto px-4 sm:overflow-visible sm:px-0">
<table class="w-[40rem] mt-11 sm:w-full">
<thead class="text-sm text-left leading-6 text-zinc-500">
<thead class="text-sm text-left leading-6 text-ctp-text">
<tr>
<th :for={col <- @col} class="p-0 pb-4 pr-6 font-normal"><%= col[:label] %></th>
<th :if={@action != []} class="relative p-0 pb-4">
@ -511,27 +511,35 @@ defmodule ZoeyscomputerWeb.CoreComponents do
<tbody
id={@id}
phx-update={match?(%Phoenix.LiveView.LiveStream{}, @rows) && "stream"}
class="relative divide-y divide-zinc-100 border-t border-zinc-200 text-sm leading-6 text-ctp-overlay1"
class="relative divide-y divide-ctp-overlay0 border-t border-ctp-overlay1 text-sm leading-6 text-ctp-overlay1"
>
<tr :for={row <- @rows} id={@row_id && @row_id.(row)} class="group hover:bg-zinc-50">
<tr
:for={row <- @rows}
id={@row_id && @row_id.(row)}
class="group hover:bg-ctp-mauve hover:scale-105 transition-all duration-250"
>
<td
:for={{col, i} <- Enum.with_index(@col)}
phx-click={@row_click && @row_click.(row)}
class={["relative p-0", @row_click && "hover:cursor-pointer"]}
>
<div class="block py-4 pr-6">
<span class="absolute -inset-y-px right-0 -left-4 group-hover:bg-zinc-50 sm:rounded-l-xl" />
<span class={["relative", i == 0 && "font-semibold text-ctp-overlay2"]}>
<span class="absolute -inset-y-px right-0 -left-4 group-hover:bg-ctp-mauve sm:rounded-l-xl" />
<span class={[
"relative",
i == 0 && "font-semibold text-ctp-overlay2 group-hover:text-ctp-crust"
]}>
<%= render_slot(col, @row_item.(row)) %>
</span>
</div>
</td>
<td :if={@action != []} class="relative w-14 p-0">
<div class="relative whitespace-nowrap py-4 text-right text-sm font-medium">
<span class="absolute -inset-y-px -right-4 left-0 group-hover:bg-zinc-50 sm:rounded-r-xl" />
<span class="absolute -inset-y-px -right-4 left-0 group-hover:bg-ctp-mauve sm:rounded-r-xl" />
<span
:for={action <- @action}
class="relative ml-4 font-semibold leading-6 text-ctp-overlay2 hover:text-ctp-overlay1"
class="relative ml-4 font-semibold leading-6 text-ctp-overlay2 group-hover:text-ctp-crust"
>
<%= render_slot(action, @row_item.(row)) %>
</span>
@ -561,9 +569,9 @@ defmodule ZoeyscomputerWeb.CoreComponents do
def list(assigns) do
~H"""
<div class="mt-14">
<dl class="-my-4 divide-y divide-zinc-100">
<dl class="-my-4 divide-y divide-ctp-overlay0">
<div :for={item <- @item} class="flex gap-4 py-4 text-sm leading-6 sm:gap-8">
<dt class="w-1/4 flex-none text-zinc-500"><%= item.title %></dt>
<dt class="w-1/4 flex-none text-ctp-text"><%= item.title %></dt>
<dd class="text-ctp-overlay1"><%= render_slot(item) %></dd>
</div>
</dl>

View file

@ -1,4 +1,6 @@
defmodule ZoeyscomputerWeb.ImageLive.FormComponent do
import Mogrify
alias Zoeyscomputer.IdGenerator
use ZoeyscomputerWeb, :live_component
alias Zoeyscomputer.Images
@ -19,7 +21,24 @@ defmodule ZoeyscomputerWeb.ImageLive.FormComponent do
phx-change="validate"
phx-submit="save"
>
<.input field={@form[:file]} type="text" label="File" />
<.live_file_input upload={@uploads.image} />
<section phx-drop-target={@uploads.image.ref}>
<%= for entry <- @uploads.image.entries do %>
<article class="upload-entry">
<figure>
<.live_img_preview entry={entry} />
<figcaption><%= entry.client_name %></figcaption>
</figure>
<progress class="w-full" value={entry.progress} max="100">
<%= entry.progress %>
</progress>
</article>
<% end %>
<%= for err <- upload_errors(@uploads.image) do %>
<p class="alert alert-danger"><%= error_to_string(err) %></p>
<% end %>
</section>
<:actions>
<.button phx-disable-with="Saving...">Save Image</.button>
</:actions>
@ -28,8 +47,18 @@ defmodule ZoeyscomputerWeb.ImageLive.FormComponent do
"""
end
defp error_to_string(:too_large), do: "Too Large"
defp error_to_string(:not_accepted), do: "Not Accepted"
defp error_to_string(:too_manu_files), do: "Too many files!"
@impl true
def update(%{image: image} = assigns, socket) do
socket =
socket
|> assign(:uploaded_files, [])
|> allow_upload(:image, accept: ~w(.jpg .jpeg .png), max_entries: 2)
{:ok,
socket
|> assign(assigns)
@ -44,8 +73,29 @@ defmodule ZoeyscomputerWeb.ImageLive.FormComponent do
{:noreply, assign(socket, form: to_form(changeset, action: :validate))}
end
def handle_event("save", %{"image" => image_params}, socket) do
save_image(socket, socket.assigns.action, image_params)
@impl true
def handle_event("save", _params, socket) do
uploaded_files =
consume_uploaded_entries(socket, :image, fn %{path: path}, _entry ->
dest = Path.join("/tmp/", Path.basename(path))
File.cp(path, dest)
handle_upload(dest)
end)
update(socket, :uploaded_files, &(&1 ++ uploaded_files))
save_image(socket, socket.assigns.action, %{file: uploaded_files})
end
@impl true
def handle_event("validate", _params, socket) do
{:noreply, socket}
end
@impl true
def handle_event("cancel-upload", %{"ref" => ref}, socket) do
{:noreply, cancel_upload(socket, :image, ref)}
end
defp save_image(socket, :edit, image_params) do
@ -63,6 +113,27 @@ defmodule ZoeyscomputerWeb.ImageLive.FormComponent do
end
end
defp handle_upload(path) do
id = IdGenerator.generate()
key = "uploads/#{id}.png"
bucket = "imgs"
try do
image = open(path) |> format("png") |> save()
IO.inspect(image)
{:ok, new_file_binary} = File.read(image.path)
case ExAws.S3.put_object(bucket, key, new_file_binary, %{content_type: "image/png"})
|> ExAws.request() do
{:ok, _response} -> {:ok, id}
{:error, reason} -> {:error, reason}
end
after
File.rm(path)
end
end
defp save_image(socket, :new, image_params) do
case Images.create_image(image_params) do
{:ok, image} ->

View file

@ -7,6 +7,7 @@ defmodule ZoeyscomputerWeb.ImageLive.Index do
@impl true
def mount(_params, _session, socket) do
current_user = socket.assigns.current_user
{:ok, stream(socket, :images, Images.list_images_by_user(current_user))}
end