diff --git a/deno.json b/deno.json index 9f447e64c11..322566557a0 100644 --- a/deno.json +++ b/deno.json @@ -48,11 +48,11 @@ "@std/uuid": "jsr:@std/uuid@^1.0.7", "fresh": "jsr:@fresh/core@^2.0.0-alpha.29", "preact": "npm:preact@^10.26.6", + "@preact/signals": "npm:@preact/signals@^2.0.4", "preact-render-to-string": "npm:preact-render-to-string@^6.5.11", "$ga4": "https://raw.githubusercontent.com/denoland/ga4/main/mod.ts", "@luca/esbuild-deno-loader": "jsr:@luca/esbuild-deno-loader@^0.11.0", "@opentelemetry/api": "npm:@opentelemetry/api@^1.9.0", - "@preact/signals": "npm:@preact/signals@^2.0.4", "esbuild": "npm:esbuild@0.25.4", "esbuild-wasm": "npm:esbuild-wasm@0.25.4", "@std/crypto": "jsr:@std/crypto@1", @@ -66,7 +66,6 @@ "@std/path": "jsr:@std/path@1", "@std/semver": "jsr:@std/semver@1", "@std/streams": "jsr:@std/streams@1", - "@astral/astral": "jsr:@astral/astral@^0.5.3", "@marvinh-test/fresh-island": "jsr:@marvinh-test/fresh-island@^0.0.1", "linkedom": "npm:linkedom@^0.18.10", @@ -74,19 +73,18 @@ "@std/expect": "jsr:@std/expect@^1.0.16", "@std/testing": "jsr:@std/testing@^1.0.12", - "autoprefixer": "npm:autoprefixer@10.4.17", - "cssnano": "npm:cssnano@6.0.3", - "postcss": "npm:postcss@8.4.35", - "tailwindcss": "npm:tailwindcss@^3.4.1", - + "@tailwindcss/postcss": "npm:@tailwindcss/postcss@^4.1.7", + "@tailwindcss/oxide": "npm:@tailwindcss/oxide@^4.1.7", + "postcss": "npm:postcss@8.5.3", + "tailwindcss": "npm:tailwindcss@^4.1.7", "ts-morph": "npm:ts-morph@^25.0.1", - - "@fresh/plugin-tailwind": "jsr:@fresh/plugin-tailwind@^0.0.1-alpha.7", + "@fresh/plugin-tailwind": "./plugin-tailwindcss/src/mod.ts", "@std/front-matter": "jsr:@std/front-matter@^1.0.5", "fresh/compat": "./src/compat/mod.ts", "fresh/dev": "./src/dev/mod.ts", "fresh/runtime": "./src/runtime/shared.ts", "github-slugger": "npm:github-slugger@^2.0.0", + "imagescript": "https://deno.land/x/imagescript@1.3.0/mod.ts", "marked": "npm:marked@^15.0.11", "marked-mangle": "npm:marked-mangle@^1.1.9", "prismjs": "npm:prismjs@^1.29.0" diff --git a/deno.lock b/deno.lock index d69dc56de2d..74f039b7b84 100644 --- a/deno.lock +++ b/deno.lock @@ -1,64 +1,65 @@ { "version": "5", "specifiers": { - "jsr:@deno/cache-dir@0.14": "0.14.0", - "jsr:@deno/doc@0.172": "0.172.0", - "jsr:@deno/graph@0.86": "0.86.9", - "jsr:@deno/graph@~0.82.3": "0.82.3", + "jsr:@astral/astral@~0.5.3": "0.5.3", + "jsr:@deno-library/progress@^1.5.1": "1.5.1", "jsr:@deno/otel@*": "0.0.2", "jsr:@fresh/core@^2.0.0-alpha.29": "2.0.0-alpha.34", - "jsr:@fresh/plugin-tailwind@^0.0.1-alpha.7": "0.0.1-alpha.7", "jsr:@luca/esbuild-deno-loader@0.11": "0.11.1", - "jsr:@marvinh-test/fresh-island@*": "0.0.1", "jsr:@marvinh-test/fresh-island@^0.0.1": "0.0.1", - "jsr:@std/assert@0.221": "0.221.0", + "jsr:@std/assert@^1.0.13": "1.0.13", + "jsr:@std/async@1": "1.0.13", "jsr:@std/async@^1.0.13": "1.0.13", "jsr:@std/bytes@^1.0.2": "1.0.6", "jsr:@std/bytes@^1.0.5": "1.0.6", "jsr:@std/cli@^1.0.17": "1.0.17", "jsr:@std/collections@^1.0.11": "1.1.0", + "jsr:@std/collections@^1.1.0": "1.1.0", "jsr:@std/crypto@1": "1.0.5", "jsr:@std/crypto@^1.0.4": "1.0.5", + "jsr:@std/data-structures@^1.0.8": "1.0.8", "jsr:@std/datetime@~0.225.2": "0.225.4", "jsr:@std/encoding@1": "1.0.10", "jsr:@std/encoding@^1.0.10": "1.0.10", "jsr:@std/encoding@^1.0.5": "1.0.10", + "jsr:@std/expect@^1.0.16": "1.0.16", "jsr:@std/fmt@1": "1.0.8", - "jsr:@std/fmt@^1.0.3": "1.0.8", + "jsr:@std/fmt@1.0.3": "1.0.3", "jsr:@std/fmt@^1.0.7": "1.0.8", "jsr:@std/fmt@^1.0.8": "1.0.8", "jsr:@std/front-matter@^1.0.5": "1.0.9", "jsr:@std/fs@1": "1.0.17", - "jsr:@std/fs@^1.0.16": "1.0.17", - "jsr:@std/fs@^1.0.6": "1.0.17", + "jsr:@std/fs@^1.0.17": "1.0.17", "jsr:@std/html@1": "1.0.4", "jsr:@std/html@^1.0.4": "1.0.4", "jsr:@std/http@^1.0.15": "1.0.16", - "jsr:@std/io@0.225": "0.225.2", + "jsr:@std/internal@^1.0.6": "1.0.7", + "jsr:@std/internal@^1.0.7": "1.0.7", + "jsr:@std/io@0.225.0": "0.225.0", "jsr:@std/json@^1.0.2": "1.0.2", "jsr:@std/jsonc@1": "1.0.2", "jsr:@std/media-types@1": "1.1.0", "jsr:@std/media-types@^1.1.0": "1.1.0", "jsr:@std/net@^1.0.4": "1.0.4", - "jsr:@std/path@0.221": "0.221.0", "jsr:@std/path@1": "1.0.9", "jsr:@std/path@^1.0.6": "1.0.9", - "jsr:@std/path@^1.0.8": "1.0.9", "jsr:@std/path@^1.0.9": "1.0.9", "jsr:@std/semver@1": "1.0.5", "jsr:@std/streams@1": "1.0.9", "jsr:@std/streams@^1.0.9": "1.0.9", - "jsr:@std/toml@^1.0.3": "1.0.5", + "jsr:@std/testing@^1.0.12": "1.0.12", + "jsr:@std/toml@^1.0.3": "1.0.6", "jsr:@std/uuid@^1.0.7": "1.0.7", "jsr:@std/yaml@^1.0.5": "1.0.6", + "jsr:@zip-js/zip-js@^2.7.52": "2.7.62", "npm:@opentelemetry/api@1": "1.9.0", "npm:@opentelemetry/api@^1.9.0": "1.9.0", "npm:@opentelemetry/sdk-trace-base@1": "1.30.1_@opentelemetry+api@1.9.0", "npm:@preact/signals@^1.2.3": "1.3.2_preact@10.26.6", "npm:@preact/signals@^2.0.4": "2.0.4_preact@10.26.6", + "npm:@tailwindcss/oxide@^4.1.7": "4.1.7", + "npm:@tailwindcss/postcss@^4.1.7": "4.1.7", "npm:@types/node@*": "22.15.15", - "npm:autoprefixer@10.4.17": "10.4.17_postcss@8.4.35", - "npm:cssnano@6.0.3": "6.0.3_postcss@8.4.35", "npm:esbuild-wasm@0.23.1": "0.23.1", "npm:esbuild-wasm@0.25.4": "0.25.4", "npm:esbuild@0.23.1": "0.23.1", @@ -67,38 +68,32 @@ "npm:linkedom@~0.18.10": "0.18.10", "npm:marked-mangle@^1.1.9": "1.1.10_marked@15.0.12", "npm:marked@^15.0.11": "15.0.12", - "npm:postcss@8.4.35": "8.4.35", + "npm:postcss@8.5.3": "8.5.3", "npm:preact-render-to-string@^6.5.11": "6.5.13_preact@10.26.6", "npm:preact@^10.22.0": "10.26.6", "npm:preact@^10.26.6": "10.26.6", "npm:prismjs@^1.29.0": "1.30.0", - "npm:tailwindcss@^3.4.1": "3.4.17_postcss@8.5.3", + "npm:tailwindcss@^4.1.7": "4.1.7", "npm:ts-morph@^25.0.1": "25.0.1" }, "jsr": { - "@deno/cache-dir@0.14.0": { - "integrity": "729f0b68e7fc96443c09c2c544b830ca70897bdd5168598446d752f7a4c731ad", - "dependencies": [ - "jsr:@deno/graph@0.86", - "jsr:@std/fmt@^1.0.3", - "jsr:@std/fs@^1.0.6", - "jsr:@std/io", - "jsr:@std/path@^1.0.8" + "@astral/astral@0.5.3": { + "integrity": "d6a4628313d8be99aac0f51005c1dc090fa3b4c6b5c8335c26a52d4842aa1276", + "dependencies": [ + "jsr:@deno-library/progress", + "jsr:@std/async@1", + "jsr:@std/fs@1", + "jsr:@std/path@1", + "jsr:@zip-js/zip-js" ] }, - "@deno/doc@0.172.0": { - "integrity": "72a68ed533576a06feb930a84784ad9ba6d83ca9d581fc734d498c58e32b7cf5", + "@deno-library/progress@1.5.1": { + "integrity": "966611826b8bb27baae73ab1c4fa4317cd4edd2abb99750cd6f8488d22d5b121", "dependencies": [ - "jsr:@deno/cache-dir", - "jsr:@deno/graph@~0.82.3" + "jsr:@std/fmt@1.0.3", + "jsr:@std/io" ] }, - "@deno/graph@0.82.3": { - "integrity": "5c1fe944368172a9c87588ac81b82eb027ca78002a57521567e6264be322637e" - }, - "@deno/graph@0.86.9": { - "integrity": "c4f353a695bcc5246c099602977dabc6534eacea9999a35a8cb24e807192e6a1" - }, "@deno/otel@0.0.2": { "integrity": "4ef61b7eb1c4063f8224d66fc43f25e428a566d2e18785d0dc67bb70a318f0ff", "dependencies": [ @@ -129,16 +124,6 @@ "npm:preact@^10.26.6" ] }, - "@fresh/plugin-tailwind@0.0.1-alpha.7": { - "integrity": "b940991bdb76f0995dc58b25183f1001d72c4020e049d384ad3fb751556aa2a9", - "dependencies": [ - "jsr:@std/path@0.221", - "npm:autoprefixer", - "npm:cssnano", - "npm:postcss", - "npm:tailwindcss" - ] - }, "@luca/esbuild-deno-loader@0.11.1": { "integrity": "dc020d16d75b591f679f6b9288b10f38bdb4f24345edb2f5732affa1d9885267", "dependencies": [ @@ -155,8 +140,11 @@ "npm:preact@^10.26.6" ] }, - "@std/assert@0.221.0": { - "integrity": "a5f1aa6e7909dbea271754fd4ab3f4e687aeff4873b4cef9a320af813adb489a" + "@std/assert@1.0.13": { + "integrity": "ae0d31e41919b12c656c742b22522c32fb26ed0cba32975cb0de2a273cb68b29", + "dependencies": [ + "jsr:@std/internal@^1.0.6" + ] }, "@std/async@1.0.13": { "integrity": "1d76ca5d324aef249908f7f7fe0d39aaf53198e5420604a59ab5c035adc97c96" @@ -173,12 +161,25 @@ "@std/crypto@1.0.5": { "integrity": "0dcfbb319fe0bba1bd3af904ceb4f948cde1b92979ec1614528380ed308a3b40" }, + "@std/data-structures@1.0.8": { + "integrity": "2fb7219247e044c8fcd51341788547575653c82ae2c759ff209e0263ba7d9b66" + }, "@std/datetime@0.225.4": { "integrity": "682bc21738b941a4ed1465be6da01704e8010a3a6d9b615de9458202b84e00ec" }, "@std/encoding@1.0.10": { "integrity": "8783c6384a2d13abd5e9e87a7ae0520a30e9f56aeeaa3bdf910a3eaaf5c811a1" }, + "@std/expect@1.0.16": { + "integrity": "ceeef6dda21f256a5f0f083fcc0eaca175428b523359a9b1d9b3a1df11cc7391", + "dependencies": [ + "jsr:@std/assert", + "jsr:@std/internal@^1.0.7" + ] + }, + "@std/fmt@1.0.3": { + "integrity": "97765c16aa32245ff4e2204ecf7d8562496a3cb8592340a80e7e554e0bb9149f" + }, "@std/fmt@1.0.8": { "integrity": "71e1fc498787e4434d213647a6e43e794af4fd393ef8f52062246e06f7e372b7" }, @@ -211,11 +212,11 @@ "jsr:@std/streams@^1.0.9" ] }, - "@std/io@0.225.2": { - "integrity": "3c740cd4ee4c082e6cfc86458f47e2ab7cb353dc6234d5e9b1f91a2de5f4d6c7", - "dependencies": [ - "jsr:@std/bytes@^1.0.5" - ] + "@std/internal@1.0.7": { + "integrity": "39eeb5265190a7bc5d5591c9ff019490bd1f2c3907c044a11b0d545796158a0f" + }, + "@std/io@0.225.0": { + "integrity": "c1db7c5e5a231629b32d64b9a53139445b2ca640d828c26bf23e1c55f8c079b3" }, "@std/json@1.0.2": { "integrity": "d9e5497801c15fb679f55a2c01c7794ad7a5dfda4dd1bebab5e409cb5e0d34d4" @@ -232,12 +233,6 @@ "@std/net@1.0.4": { "integrity": "2f403b455ebbccf83d8a027d29c5a9e3a2452fea39bb2da7f2c04af09c8bc852" }, - "@std/path@0.221.0": { - "integrity": "0a36f6b17314ef653a3a1649740cc8db51b25a133ecfe838f20b79a56ebe0095", - "dependencies": [ - "jsr:@std/assert" - ] - }, "@std/path@1.0.9": { "integrity": "260a49f11edd3db93dd38350bf9cd1b4d1366afa98e81b86167b4e3dd750129e" }, @@ -250,10 +245,21 @@ "jsr:@std/bytes@^1.0.5" ] }, - "@std/toml@1.0.5": { - "integrity": "08061156e9c5716443a144b6e40a8668738b8b424ad99ab0b6fdf1b6ea4da806", + "@std/testing@1.0.12": { + "integrity": "fec973a45ccc62c540fb89296199051fee142409138fd6e3eae409366bcd4720", + "dependencies": [ + "jsr:@std/assert", + "jsr:@std/async@^1.0.13", + "jsr:@std/data-structures", + "jsr:@std/fs@^1.0.17", + "jsr:@std/internal@^1.0.7", + "jsr:@std/path@^1.0.9" + ] + }, + "@std/toml@1.0.6": { + "integrity": "da225502aecad66d8d778a635e9b78991997c2567ef8c6dbbd595c0cfce14c51", "dependencies": [ - "jsr:@std/collections" + "jsr:@std/collections@^1.1.0" ] }, "@std/uuid@1.0.7": { @@ -265,12 +271,41 @@ }, "@std/yaml@1.0.6": { "integrity": "c9a5a914e1d51c46756cb10e356710035cfa905e713c90d3b711413fd3aead27" + }, + "@zip-js/zip-js@2.7.62": { + "integrity": "11cbe0746fa1e52e6e0a601c89ba97365f16e38a07f139b9d9914f988aec9081" } }, "npm": { "@alloc/quick-lru@5.2.0": { "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" }, + "@ampproject/remapping@2.3.0": { + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": [ + "@jridgewell/gen-mapping", + "@jridgewell/trace-mapping" + ] + }, + "@emnapi/core@1.4.3": { + "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "dependencies": [ + "@emnapi/wasi-threads", + "tslib" + ] + }, + "@emnapi/runtime@1.4.3": { + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "dependencies": [ + "tslib" + ] + }, + "@emnapi/wasi-threads@1.0.2": { + "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "dependencies": [ + "tslib" + ] + }, "@esbuild/aix-ppc64@0.23.1": { "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", "os": ["aix"], @@ -516,15 +551,10 @@ "os": ["win32"], "cpu": ["x64"] }, - "@isaacs/cliui@8.0.2": { - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "@isaacs/fs-minipass@4.0.1": { + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", "dependencies": [ - "string-width@5.1.2", - "string-width-cjs@npm:string-width@4.2.3", - "strip-ansi@7.1.0", - "strip-ansi-cjs@npm:strip-ansi@6.0.1", - "wrap-ansi@8.1.0", - "wrap-ansi-cjs@npm:wrap-ansi@7.0.0" + "minipass" ] }, "@jridgewell/gen-mapping@0.3.8": { @@ -551,6 +581,14 @@ "@jridgewell/sourcemap-codec" ] }, + "@napi-rs/wasm-runtime@0.2.10": { + "integrity": "sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==", + "dependencies": [ + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util" + ] + }, "@nodelib/fs.scandir@2.1.5": { "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dependencies": [ @@ -598,9 +636,6 @@ "@opentelemetry/semantic-conventions@1.28.0": { "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==" }, - "@pkgjs/parseargs@0.11.0": { - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==" - }, "@preact/signals-core@1.8.0": { "integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==" }, @@ -618,160 +653,161 @@ "preact" ] }, - "@trysound/sax@0.2.0": { - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" - }, - "@ts-morph/common@0.26.1": { - "integrity": "sha512-Sn28TGl/4cFpcM+jwsH1wLncYq3FtN/BIpem+HOygfBWPT5pAeS5dB4VFVzV8FbnOKHpDLZmvAl4AjPEev5idA==", + "@tailwindcss/node@4.1.7": { + "integrity": "sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g==", "dependencies": [ - "fast-glob", - "minimatch", - "path-browserify" + "@ampproject/remapping", + "enhanced-resolve", + "jiti", + "lightningcss", + "magic-string", + "source-map-js", + "tailwindcss" ] }, - "@types/node@22.15.15": { - "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==", - "dependencies": [ - "undici-types" - ] + "@tailwindcss/oxide-android-arm64@4.1.7": { + "integrity": "sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg==", + "os": ["android"], + "cpu": ["arm64"] }, - "ansi-regex@5.0.1": { - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "@tailwindcss/oxide-darwin-arm64@4.1.7": { + "integrity": "sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg==", + "os": ["darwin"], + "cpu": ["arm64"] }, - "ansi-regex@6.1.0": { - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" + "@tailwindcss/oxide-darwin-x64@4.1.7": { + "integrity": "sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw==", + "os": ["darwin"], + "cpu": ["x64"] }, - "ansi-styles@4.3.0": { - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": [ - "color-convert" - ] + "@tailwindcss/oxide-freebsd-x64@4.1.7": { + "integrity": "sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw==", + "os": ["freebsd"], + "cpu": ["x64"] }, - "ansi-styles@6.2.1": { - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + "@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7": { + "integrity": "sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g==", + "os": ["linux"], + "cpu": ["arm"] }, - "any-promise@1.3.0": { - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "@tailwindcss/oxide-linux-arm64-gnu@4.1.7": { + "integrity": "sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA==", + "os": ["linux"], + "cpu": ["arm64"] }, - "anymatch@3.1.3": { - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": [ - "normalize-path", - "picomatch" - ] + "@tailwindcss/oxide-linux-arm64-musl@4.1.7": { + "integrity": "sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A==", + "os": ["linux"], + "cpu": ["arm64"] + }, + "@tailwindcss/oxide-linux-x64-gnu@4.1.7": { + "integrity": "sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg==", + "os": ["linux"], + "cpu": ["x64"] }, - "arg@5.0.2": { - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "@tailwindcss/oxide-linux-x64-musl@4.1.7": { + "integrity": "sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA==", + "os": ["linux"], + "cpu": ["x64"] }, - "autoprefixer@10.4.17_postcss@8.4.35": { - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "@tailwindcss/oxide-wasm32-wasi@4.1.7": { + "integrity": "sha512-ANaSKt74ZRzE2TvJmUcbFQ8zS201cIPxUDm5qez5rLEwWkie2SkGtA4P+GPTj+u8N6JbPrC8MtY8RmJA35Oo+A==", "dependencies": [ - "browserslist", - "caniuse-lite", - "fraction.js", - "normalize-range", - "picocolors", - "postcss@8.4.35", - "postcss-value-parser" + "@emnapi/core", + "@emnapi/runtime", + "@emnapi/wasi-threads", + "@napi-rs/wasm-runtime", + "@tybys/wasm-util", + "tslib" ], - "bin": true + "cpu": ["wasm32"] }, - "balanced-match@1.0.2": { - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "binary-extensions@2.3.0": { - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + "@tailwindcss/oxide-win32-arm64-msvc@4.1.7": { + "integrity": "sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw==", + "os": ["win32"], + "cpu": ["arm64"] }, - "boolbase@1.0.0": { - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "@tailwindcss/oxide-win32-x64-msvc@4.1.7": { + "integrity": "sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ==", + "os": ["win32"], + "cpu": ["x64"] }, - "brace-expansion@2.0.1": { - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "@tailwindcss/oxide@4.1.7": { + "integrity": "sha512-5SF95Ctm9DFiUyjUPnDGkoKItPX/k+xifcQhcqX5RA85m50jw1pT/KzjdvlqxRja45Y52nR4MR9fD1JYd7f8NQ==", "dependencies": [ - "balanced-match" - ] + "detect-libc", + "tar" + ], + "optionalDependencies": [ + "@tailwindcss/oxide-android-arm64", + "@tailwindcss/oxide-darwin-arm64", + "@tailwindcss/oxide-darwin-x64", + "@tailwindcss/oxide-freebsd-x64", + "@tailwindcss/oxide-linux-arm-gnueabihf", + "@tailwindcss/oxide-linux-arm64-gnu", + "@tailwindcss/oxide-linux-arm64-musl", + "@tailwindcss/oxide-linux-x64-gnu", + "@tailwindcss/oxide-linux-x64-musl", + "@tailwindcss/oxide-wasm32-wasi", + "@tailwindcss/oxide-win32-arm64-msvc", + "@tailwindcss/oxide-win32-x64-msvc" + ], + "scripts": true }, - "braces@3.0.3": { - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "@tailwindcss/postcss@4.1.7": { + "integrity": "sha512-88g3qmNZn7jDgrrcp3ZXEQfp9CVox7xjP1HN2TFKI03CltPVd/c61ydn5qJJL8FYunn0OqBaW5HNUga0kmPVvw==", "dependencies": [ - "fill-range" + "@alloc/quick-lru", + "@tailwindcss/node", + "@tailwindcss/oxide", + "postcss", + "tailwindcss" ] }, - "browserslist@4.24.5": { - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", - "dependencies": [ - "caniuse-lite", - "electron-to-chromium", - "node-releases", - "update-browserslist-db" - ], - "bin": true - }, - "camelcase-css@2.0.1": { - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "caniuse-api@3.0.0": { - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "@ts-morph/common@0.26.1": { + "integrity": "sha512-Sn28TGl/4cFpcM+jwsH1wLncYq3FtN/BIpem+HOygfBWPT5pAeS5dB4VFVzV8FbnOKHpDLZmvAl4AjPEev5idA==", "dependencies": [ - "browserslist", - "caniuse-lite", - "lodash.memoize", - "lodash.uniq" + "fast-glob", + "minimatch", + "path-browserify" ] }, - "caniuse-lite@1.0.30001717": { - "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==" - }, - "chokidar@3.6.0": { - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "@tybys/wasm-util@0.9.0": { + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", "dependencies": [ - "anymatch", - "braces", - "glob-parent@5.1.2", - "is-binary-path", - "is-glob", - "normalize-path", - "readdirp" - ], - "optionalDependencies": [ - "fsevents" + "tslib" ] }, - "code-block-writer@13.0.3": { - "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==" - }, - "color-convert@2.0.1": { - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "@types/node@22.15.15": { + "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==", "dependencies": [ - "color-name" + "undici-types" ] }, - "color-name@1.1.4": { - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "colord@2.9.3": { - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" - }, - "commander@4.1.1": { - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "balanced-match@1.0.2": { + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "commander@7.2.0": { - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + "boolbase@1.0.0": { + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "cross-spawn@7.0.6": { - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "brace-expansion@2.0.1": { + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": [ - "path-key", - "shebang-command", - "which" + "balanced-match" ] }, - "css-declaration-sorter@7.2.0_postcss@8.4.35": { - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "braces@3.0.3": { + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": [ - "postcss@8.4.35" + "fill-range" ] }, + "chownr@3.0.0": { + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==" + }, + "code-block-writer@13.0.3": { + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==" + }, "css-select@5.1.0": { "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dependencies": [ @@ -782,91 +818,14 @@ "nth-check" ] }, - "css-tree@2.2.1": { - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dependencies": [ - "mdn-data@2.0.28", - "source-map-js" - ] - }, - "css-tree@2.3.1": { - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dependencies": [ - "mdn-data@2.0.30", - "source-map-js" - ] - }, "css-what@6.1.0": { "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, - "cssesc@3.0.0": { - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": true - }, - "cssnano-preset-default@6.1.2_postcss@8.4.35": { - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "dependencies": [ - "browserslist", - "css-declaration-sorter", - "cssnano-utils", - "postcss@8.4.35", - "postcss-calc", - "postcss-colormin", - "postcss-convert-values", - "postcss-discard-comments", - "postcss-discard-duplicates", - "postcss-discard-empty", - "postcss-discard-overridden", - "postcss-merge-longhand", - "postcss-merge-rules", - "postcss-minify-font-values", - "postcss-minify-gradients", - "postcss-minify-params", - "postcss-minify-selectors", - "postcss-normalize-charset", - "postcss-normalize-display-values", - "postcss-normalize-positions", - "postcss-normalize-repeat-style", - "postcss-normalize-string", - "postcss-normalize-timing-functions", - "postcss-normalize-unicode", - "postcss-normalize-url", - "postcss-normalize-whitespace", - "postcss-ordered-values", - "postcss-reduce-initial", - "postcss-reduce-transforms", - "postcss-svgo", - "postcss-unique-selectors" - ] - }, - "cssnano-utils@4.0.2_postcss@8.4.35": { - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "dependencies": [ - "postcss@8.4.35" - ] - }, - "cssnano@6.0.3_postcss@8.4.35": { - "integrity": "sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==", - "dependencies": [ - "cssnano-preset-default", - "lilconfig", - "postcss@8.4.35" - ] - }, - "csso@5.0.5": { - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dependencies": [ - "css-tree@2.2.1" - ] - }, "cssom@0.5.0": { "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" }, - "didyoumean@1.2.2": { - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "dlv@1.1.3": { - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "detect-libc@2.0.4": { + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==" }, "dom-serializer@2.0.0": { "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", @@ -893,17 +852,12 @@ "domhandler" ] }, - "eastasianwidth@0.2.0": { - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "electron-to-chromium@1.5.151": { - "integrity": "sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==" - }, - "emoji-regex@8.0.0": { - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "emoji-regex@9.2.2": { - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "enhanced-resolve@5.18.1": { + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dependencies": [ + "graceful-fs", + "tapable" + ] }, "entities@4.5.0": { "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" @@ -982,15 +936,12 @@ "scripts": true, "bin": true }, - "escalade@3.2.0": { - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" - }, "fast-glob@3.3.3": { "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dependencies": [ "@nodelib/fs.stat", "@nodelib/fs.walk", - "glob-parent@5.1.2", + "glob-parent", "merge2", "micromatch" ] @@ -1007,24 +958,6 @@ "to-regex-range" ] }, - "foreground-child@3.3.1": { - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dependencies": [ - "cross-spawn", - "signal-exit" - ] - }, - "fraction.js@4.3.7": { - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==" - }, - "fsevents@2.3.3": { - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "os": ["darwin"], - "scripts": true - }, - "function-bind@1.1.2": { - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, "github-slugger@2.0.0": { "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" }, @@ -1034,29 +967,8 @@ "is-glob" ] }, - "glob-parent@6.0.2": { - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": [ - "is-glob" - ] - }, - "glob@10.4.5": { - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dependencies": [ - "foreground-child", - "jackspeak", - "minimatch", - "minipass", - "package-json-from-dist", - "path-scurry" - ], - "bin": true - }, - "hasown@2.0.2": { - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": [ - "function-bind" - ] + "graceful-fs@4.2.11": { + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "html-escaper@3.0.3": { "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==" @@ -1070,24 +982,9 @@ "entities@6.0.0" ] }, - "is-binary-path@2.1.0": { - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": [ - "binary-extensions" - ] - }, - "is-core-module@2.16.1": { - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dependencies": [ - "hasown" - ] - }, "is-extglob@2.1.1": { "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, - "is-fullwidth-code-point@3.0.0": { - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, "is-glob@4.0.3": { "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": [ @@ -1097,28 +994,78 @@ "is-number@7.0.0": { "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "isexe@2.0.0": { - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "jiti@2.4.2": { + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "bin": true + }, + "lightningcss-darwin-arm64@1.30.1": { + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "os": ["darwin"], + "cpu": ["arm64"] + }, + "lightningcss-darwin-x64@1.30.1": { + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "os": ["darwin"], + "cpu": ["x64"] + }, + "lightningcss-freebsd-x64@1.30.1": { + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "os": ["freebsd"], + "cpu": ["x64"] + }, + "lightningcss-linux-arm-gnueabihf@1.30.1": { + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "os": ["linux"], + "cpu": ["arm"] + }, + "lightningcss-linux-arm64-gnu@1.30.1": { + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "os": ["linux"], + "cpu": ["arm64"] + }, + "lightningcss-linux-arm64-musl@1.30.1": { + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "os": ["linux"], + "cpu": ["arm64"] + }, + "lightningcss-linux-x64-gnu@1.30.1": { + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "os": ["linux"], + "cpu": ["x64"] + }, + "lightningcss-linux-x64-musl@1.30.1": { + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "os": ["linux"], + "cpu": ["x64"] + }, + "lightningcss-win32-arm64-msvc@1.30.1": { + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "os": ["win32"], + "cpu": ["arm64"] }, - "jackspeak@3.4.3": { - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "lightningcss-win32-x64-msvc@1.30.1": { + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "os": ["win32"], + "cpu": ["x64"] + }, + "lightningcss@1.30.1": { + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", "dependencies": [ - "@isaacs/cliui" + "detect-libc" ], "optionalDependencies": [ - "@pkgjs/parseargs" + "lightningcss-darwin-arm64", + "lightningcss-darwin-x64", + "lightningcss-freebsd-x64", + "lightningcss-linux-arm-gnueabihf", + "lightningcss-linux-arm64-gnu", + "lightningcss-linux-arm64-musl", + "lightningcss-linux-x64-gnu", + "lightningcss-linux-x64-musl", + "lightningcss-win32-arm64-msvc", + "lightningcss-win32-x64-msvc" ] }, - "jiti@1.21.7": { - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "bin": true - }, - "lilconfig@3.1.3": { - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==" - }, - "lines-and-columns@1.2.4": { - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, "linkedom@0.18.10": { "integrity": "sha512-ESCqVAtme2GI3zZnlVRidiydByV6WmPlmKeFzFVQslADiAO2Wi+H6xL/5kr/pUOESjEoVb2Eb3cYFJ/TQhQOWA==", "dependencies": [ @@ -1129,14 +1076,11 @@ "uhyphen" ] }, - "lodash.memoize@4.1.2": { - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, - "lodash.uniq@4.5.0": { - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - }, - "lru-cache@10.4.3": { - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "magic-string@0.30.17": { + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dependencies": [ + "@jridgewell/sourcemap-codec" + ] }, "marked-mangle@1.1.10_marked@15.0.12": { "integrity": "sha512-TrpN67SMJJdzXXWIzOd/QmnpsC5o1B44PUYaG2bh1XEbqVjA0UCI2ijFuE5LWESwKeI2gCP5FqcUHRGQwFtDIA==", @@ -1148,12 +1092,6 @@ "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "bin": true }, - "mdn-data@2.0.28": { - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" - }, - "mdn-data@2.0.30": { - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" - }, "merge2@1.4.1": { "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, @@ -1173,323 +1111,35 @@ "minipass@7.1.2": { "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" }, - "mz@2.7.0": { - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "minizlib@3.0.2": { + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", "dependencies": [ - "any-promise", - "object-assign", - "thenify-all" + "minipass" ] }, + "mkdirp@3.0.1": { + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "bin": true + }, "nanoid@3.3.11": { "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "bin": true }, - "node-releases@2.0.19": { - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" - }, - "normalize-path@3.0.0": { - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range@0.1.2": { - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" - }, "nth-check@2.1.1": { "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dependencies": [ "boolbase" ] }, - "object-assign@4.1.1": { - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-hash@3.0.0": { - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" - }, - "package-json-from-dist@1.0.1": { - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" - }, "path-browserify@1.0.1": { "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, - "path-key@3.1.1": { - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse@1.0.7": { - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-scurry@1.11.1": { - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": [ - "lru-cache", - "minipass" - ] - }, "picocolors@1.1.1": { "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "picomatch@2.3.1": { "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, - "pify@2.3.0": { - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" - }, - "pirates@4.0.7": { - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==" - }, - "postcss-calc@9.0.1_postcss@8.4.35": { - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "dependencies": [ - "postcss@8.4.35", - "postcss-selector-parser", - "postcss-value-parser" - ] - }, - "postcss-colormin@6.1.0_postcss@8.4.35": { - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "dependencies": [ - "browserslist", - "caniuse-api", - "colord", - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-convert-values@6.1.0_postcss@8.4.35": { - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "dependencies": [ - "browserslist", - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-discard-comments@6.0.2_postcss@8.4.35": { - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "dependencies": [ - "postcss@8.4.35" - ] - }, - "postcss-discard-duplicates@6.0.3_postcss@8.4.35": { - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "dependencies": [ - "postcss@8.4.35" - ] - }, - "postcss-discard-empty@6.0.3_postcss@8.4.35": { - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "dependencies": [ - "postcss@8.4.35" - ] - }, - "postcss-discard-overridden@6.0.2_postcss@8.4.35": { - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "dependencies": [ - "postcss@8.4.35" - ] - }, - "postcss-import@15.1.0_postcss@8.5.3": { - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": [ - "postcss@8.5.3", - "postcss-value-parser", - "read-cache", - "resolve" - ] - }, - "postcss-js@4.0.1_postcss@8.5.3": { - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": [ - "camelcase-css", - "postcss@8.5.3" - ] - }, - "postcss-load-config@4.0.2_postcss@8.5.3": { - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dependencies": [ - "lilconfig", - "postcss@8.5.3", - "yaml" - ], - "optionalPeers": [ - "postcss@8.5.3" - ] - }, - "postcss-merge-longhand@6.0.5_postcss@8.4.35": { - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser", - "stylehacks" - ] - }, - "postcss-merge-rules@6.1.1_postcss@8.4.35": { - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", - "dependencies": [ - "browserslist", - "caniuse-api", - "cssnano-utils", - "postcss@8.4.35", - "postcss-selector-parser" - ] - }, - "postcss-minify-font-values@6.1.0_postcss@8.4.35": { - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-minify-gradients@6.0.3_postcss@8.4.35": { - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "dependencies": [ - "colord", - "cssnano-utils", - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-minify-params@6.1.0_postcss@8.4.35": { - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "dependencies": [ - "browserslist", - "cssnano-utils", - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-minify-selectors@6.0.4_postcss@8.4.35": { - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", - "dependencies": [ - "postcss@8.4.35", - "postcss-selector-parser" - ] - }, - "postcss-nested@6.2.0_postcss@8.5.3": { - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dependencies": [ - "postcss@8.5.3", - "postcss-selector-parser" - ] - }, - "postcss-normalize-charset@6.0.2_postcss@8.4.35": { - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "dependencies": [ - "postcss@8.4.35" - ] - }, - "postcss-normalize-display-values@6.0.2_postcss@8.4.35": { - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-normalize-positions@6.0.2_postcss@8.4.35": { - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-normalize-repeat-style@6.0.2_postcss@8.4.35": { - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-normalize-string@6.0.2_postcss@8.4.35": { - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-normalize-timing-functions@6.0.2_postcss@8.4.35": { - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-normalize-unicode@6.1.0_postcss@8.4.35": { - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "dependencies": [ - "browserslist", - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-normalize-url@6.0.2_postcss@8.4.35": { - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-normalize-whitespace@6.0.2_postcss@8.4.35": { - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-ordered-values@6.0.2_postcss@8.4.35": { - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "dependencies": [ - "cssnano-utils", - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-reduce-initial@6.1.0_postcss@8.4.35": { - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "dependencies": [ - "browserslist", - "caniuse-api", - "postcss@8.4.35" - ] - }, - "postcss-reduce-transforms@6.0.2_postcss@8.4.35": { - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser" - ] - }, - "postcss-selector-parser@6.1.2": { - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dependencies": [ - "cssesc", - "util-deprecate" - ] - }, - "postcss-svgo@6.0.3_postcss@8.4.35": { - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "dependencies": [ - "postcss@8.4.35", - "postcss-value-parser", - "svgo" - ] - }, - "postcss-unique-selectors@6.0.4_postcss@8.4.35": { - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", - "dependencies": [ - "postcss@8.4.35", - "postcss-selector-parser" - ] - }, - "postcss-value-parser@4.2.0": { - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "postcss@8.4.35": { - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "dependencies": [ - "nanoid", - "picocolors", - "source-map-js" - ] - }, "postcss@8.5.3": { "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dependencies": [ @@ -1513,27 +1163,6 @@ "queue-microtask@1.2.3": { "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "read-cache@1.0.0": { - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": [ - "pify" - ] - }, - "readdirp@3.6.0": { - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": [ - "picomatch" - ] - }, - "resolve@1.22.10": { - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dependencies": [ - "is-core-module", - "path-parse", - "supports-preserve-symlinks-flag" - ], - "bin": true - }, "reusify@1.1.0": { "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==" }, @@ -1543,124 +1172,24 @@ "queue-microtask" ] }, - "shebang-command@2.0.0": { - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": [ - "shebang-regex" - ] - }, - "shebang-regex@3.0.0": { - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "signal-exit@4.1.0": { - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" - }, "source-map-js@1.2.1": { "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" }, - "string-width@4.2.3": { - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": [ - "emoji-regex@8.0.0", - "is-fullwidth-code-point", - "strip-ansi@6.0.1" - ] + "tailwindcss@4.1.7": { + "integrity": "sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg==" }, - "string-width@5.1.2": { - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": [ - "eastasianwidth", - "emoji-regex@9.2.2", - "strip-ansi@7.1.0" - ] - }, - "strip-ansi@6.0.1": { - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": [ - "ansi-regex@5.0.1" - ] - }, - "strip-ansi@7.1.0": { - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": [ - "ansi-regex@6.1.0" - ] - }, - "stylehacks@6.1.1_postcss@8.4.35": { - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", - "dependencies": [ - "browserslist", - "postcss@8.4.35", - "postcss-selector-parser" - ] + "tapable@2.2.2": { + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==" }, - "sucrase@3.35.0": { - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "tar@7.4.3": { + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "dependencies": [ - "@jridgewell/gen-mapping", - "commander@4.1.1", - "glob", - "lines-and-columns", - "mz", - "pirates", - "ts-interface-checker" - ], - "bin": true - }, - "supports-preserve-symlinks-flag@1.0.0": { - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svgo@3.3.2": { - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "dependencies": [ - "@trysound/sax", - "commander@7.2.0", - "css-select", - "css-tree@2.3.1", - "css-what", - "csso", - "picocolors" - ], - "bin": true - }, - "tailwindcss@3.4.17_postcss@8.5.3": { - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dependencies": [ - "@alloc/quick-lru", - "arg", - "chokidar", - "didyoumean", - "dlv", - "fast-glob", - "glob-parent@6.0.2", - "is-glob", - "jiti", - "lilconfig", - "micromatch", - "normalize-path", - "object-hash", - "picocolors", - "postcss@8.5.3", - "postcss-import", - "postcss-js", - "postcss-load-config", - "postcss-nested", - "postcss-selector-parser", - "resolve", - "sucrase" - ], - "bin": true - }, - "thenify-all@1.6.0": { - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": [ - "thenify" - ] - }, - "thenify@3.3.1": { - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": [ - "any-promise" + "@isaacs/fs-minipass", + "chownr", + "minipass", + "minizlib", + "mkdirp", + "yallist" ] }, "to-regex-range@5.0.1": { @@ -1669,9 +1198,6 @@ "is-number" ] }, - "ts-interface-checker@0.1.13": { - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, "ts-morph@25.0.1": { "integrity": "sha512-QJEiTdnz1YjrB3JFhd626gX4rKHDLSjSVMvGGG4v7ONc3RBwa0Eei98G9AT9uNFDMtV54JyuXsFeC+OH0n6bXQ==", "dependencies": [ @@ -1679,55 +1205,21 @@ "code-block-writer" ] }, + "tslib@2.8.1": { + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, "uhyphen@0.2.0": { "integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==" }, "undici-types@6.21.0": { "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" }, - "update-browserslist-db@1.1.3_browserslist@4.24.5": { - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dependencies": [ - "browserslist", - "escalade", - "picocolors" - ], - "bin": true - }, - "util-deprecate@1.0.2": { - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "which@2.0.2": { - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": [ - "isexe" - ], - "bin": true - }, - "wrap-ansi@7.0.0": { - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": [ - "ansi-styles@4.3.0", - "string-width@4.2.3", - "strip-ansi@6.0.1" - ] - }, - "wrap-ansi@8.1.0": { - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": [ - "ansi-styles@6.2.1", - "string-width@5.1.2", - "strip-ansi@7.1.0" - ] - }, - "yaml@2.7.1": { - "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", - "bin": true + "yallist@5.0.0": { + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==" } }, "redirects": { - "https://esm.sh/@types/react@~19.0.7/index.d.ts": "https://esm.sh/@types/react@19.0.14/index.d.ts", - "https://github.com/denoland/std/raw/refs/heads/main/_tools/check_docs.ts": "https://raw.githubusercontent.com/denoland/std/refs/heads/main/_tools/check_docs.ts" + "https://esm.sh/@types/react@~19.0.7/index.d.ts": "https://esm.sh/@types/react@19.0.14/index.d.ts" }, "remote": { "https://deno.land/std@0.120.0/async/deadline.ts": "1d6ac7aeaee22f75eb86e4e105d6161118aad7b41ae2dd14f4cfd3bf97472b93", @@ -1745,18 +1237,6 @@ "https://deno.land/std@0.143.0/datetime/mod.ts": "dcab9ae7be83cbf74b7863e83bd16e7c646a8dea2f019092905630eb7a545739", "https://deno.land/std@0.143.0/datetime/tokenizer.ts": "7381e28f6ab51cb504c7e132be31773d73ef2f3e1e50a812736962b9df1e8c47", "https://deno.land/std@0.143.0/http/cookie.ts": "526f27762fad7bf84fbe491de7eba7c406057501eec6edcad7884a16b242fddf", - "https://deno.land/std@0.93.0/_util/assert.ts": "2f868145a042a11d5ad0a3c748dcf580add8a0dbc0e876eaa0026303a5488f58", - "https://deno.land/std@0.93.0/_util/os.ts": "e282950a0eaa96760c0cf11e7463e66babd15ec9157d4c9ed49cc0925686f6a7", - "https://deno.land/std@0.93.0/fs/walk.ts": "8d37f2164a7397668842a7cb5d53b9e7bcd216462623b1b96abe519f76d7f8b9", - "https://deno.land/std@0.93.0/path/_constants.ts": "1247fee4a79b70c89f23499691ef169b41b6ccf01887a0abd131009c5581b853", - "https://deno.land/std@0.93.0/path/_interface.ts": "1fa73b02aaa24867e481a48492b44f2598cd9dfa513c7b34001437007d3642e4", - "https://deno.land/std@0.93.0/path/_util.ts": "2e06a3b9e79beaf62687196bd4b60a4c391d862cfa007a20fc3a39f778ba073b", - "https://deno.land/std@0.93.0/path/common.ts": "eaf03d08b569e8a87e674e4e265e099f237472b6fd135b3cbeae5827035ea14a", - "https://deno.land/std@0.93.0/path/glob.ts": "4a524c1c9da3e79a9fdabdc6e850cd9e41bdf31e442856ffa19c5b123268ca95", - "https://deno.land/std@0.93.0/path/mod.ts": "4465dc494f271b02569edbb4a18d727063b5dbd6ed84283ff906260970a15d12", - "https://deno.land/std@0.93.0/path/posix.ts": "f56c3c99feb47f30a40ce9d252ef6f00296fa7c0fcb6dd81211bdb3b8b99ca3b", - "https://deno.land/std@0.93.0/path/separator.ts": "8fdcf289b1b76fd726a508f57d3370ca029ae6976fcde5044007f062e643ff1c", - "https://deno.land/std@0.93.0/path/win32.ts": "77f7b3604e0de40f3a7c698e8a79e7f601dc187035a1c21cb1e596666ce112f8", "https://deno.land/x/case@2.1.1/lowerCase.ts": "86d5533f9587ed60003181591e40e648838c23f371edfa79d00288153d113b16", "https://deno.land/x/case@2.1.1/normalCase.ts": "6a8b924da9ab0790d99233ae54bfcfc996d229cb91b2533639fe20972cc33dac", "https://deno.land/x/case@2.1.1/snakeCase.ts": "ee2ab4e2c931d30bb79190d090c21eb5c00d1de1b7a9a3e7f33e035ae431333b", @@ -1794,16 +1274,13 @@ "https://deno.land/x/imagescript@1.3.0/v2/util/mem.mjs": "4968d400dae069b4bf0ef4767c1802fd2cc7d15d90eda4cfadf5b4cd19b96c6d", "https://esm.sh/@docsearch/js@3.5.2/es2020/js.mjs": "9b278cf3c0b26feded7d8efeac8e2b50f76bbafcf173a95002944bcc3482830a", "https://esm.sh/@docsearch/js@3.5.2?target=es2020": "4bad084f771a1923fe042ece62a9078f482f8642cb0b1acb890905e58586fee7", - "https://raw.githubusercontent.com/denoland/ga4/main/mod.ts": "36f72ba1c90b5ebdb811427f367cd95fa6772d2de2fb45d6e57550501ee6d476", - "https://raw.githubusercontent.com/denoland/std/refs/heads/main/_tools/check_docs.ts": "59c29d6a5de45d04c5cab1078c4aacbed9edd0a6b83a6469f55318665e5be6b2", - "https://raw.githubusercontent.com/denoland/std/refs/heads/main/_tools/utils.ts": "c2e38ed7e7a9a8c0fbaf8d70aa808fb02f2cbb5e71ef18d634feb4b479c6a001" + "https://raw.githubusercontent.com/denoland/ga4/main/mod.ts": "36f72ba1c90b5ebdb811427f367cd95fa6772d2de2fb45d6e57550501ee6d476" }, "workspace": { "dependencies": [ "jsr:@astral/astral@~0.5.3", "jsr:@deno/doc@0.172", "jsr:@fresh/core@^2.0.0-alpha.29", - "jsr:@fresh/plugin-tailwind@^0.0.1-alpha.7", "jsr:@luca/esbuild-deno-loader@0.11", "jsr:@marvinh-test/fresh-island@^0.0.1", "jsr:@std/async@^1.0.13", @@ -1827,19 +1304,19 @@ "jsr:@std/uuid@^1.0.7", "npm:@opentelemetry/api@^1.9.0", "npm:@preact/signals@^2.0.4", - "npm:autoprefixer@10.4.17", - "npm:cssnano@6.0.3", + "npm:@tailwindcss/oxide@^4.1.7", + "npm:@tailwindcss/postcss@^4.1.7", "npm:esbuild-wasm@0.25.4", "npm:esbuild@0.25.4", "npm:github-slugger@2", "npm:linkedom@~0.18.10", "npm:marked-mangle@^1.1.9", "npm:marked@^15.0.11", - "npm:postcss@8.4.35", + "npm:postcss@8.5.3", "npm:preact-render-to-string@^6.5.11", "npm:preact@^10.26.6", "npm:prismjs@^1.29.0", - "npm:tailwindcss@^3.4.1", + "npm:tailwindcss@^4.1.7", "npm:ts-morph@^25.0.1" ] } diff --git a/init/src/init.ts b/init/src/init.ts index dc69bd7e0d9..2f4752d11e8 100644 --- a/init/src/init.ts +++ b/init/src/init.ts @@ -4,7 +4,7 @@ import * as path from "@std/path"; // Keep these as is, as we replace these version in our release script const FRESH_VERSION = "2.0.0-alpha.34"; -const FRESH_TAILWIND_VERSION = "0.0.1-alpha.7"; +const FRESH_TAILWIND_VERSION = "0.0.1-alpha.8"; const PREACT_VERSION = "10.26.6"; const PREACT_SIGNALS_VERSION = "2.0.4"; @@ -338,9 +338,7 @@ html { ${GRADIENT_CSS}`; // deno-fmt-ignore - const TAILWIND_CSS = css`@tailwind base; -@tailwind components; -@tailwind utilities; + const TAILWIND_CSS = css`@import "tailwindcss"; ${GRADIENT_CSS}`; const cssStyles = useTailwind ? TAILWIND_CSS : NO_TAILWIND_STYLES; @@ -551,7 +549,7 @@ if (Deno.args.includes("build")) { }; if (useTailwind) { - denoJson.imports["tailwindcss"] = "npm:tailwindcss@^3.4.3"; + denoJson.imports["tailwindcss"] = "npm:tailwindcss@^4.1.7"; } await writeFile("deno.json", denoJson); diff --git a/init/src/init_test.ts b/init/src/init_test.ts index 3c18b481db0..d143a5bcf25 100644 --- a/init/src/init_test.ts +++ b/init/src/init_test.ts @@ -92,7 +92,7 @@ Deno.test("init - with tailwind", async () => { await initProject(dir, [], {}); const css = await readProjectFile(dir, "static/styles.css"); - expect(css).toMatch(/@tailwind/); + expect(css).toMatch(/tailwindcss/); const main = await readProjectFile(dir, "main.ts"); const dev = await readProjectFile(dir, "dev.ts"); diff --git a/plugin-tailwindcss/README.md b/plugin-tailwindcss/README.md index 5fd0d8ff21e..9084870d7f9 100644 --- a/plugin-tailwindcss/README.md +++ b/plugin-tailwindcss/README.md @@ -6,22 +6,18 @@ A Tailwind CSS plugin to use in Fresh. // dev.ts import { tailwind } from "@fresh/plugin-tailwind"; -import { FreshDevApp } from "fresh/dev"; +import { Builder } from "fresh/dev"; import { app } from "./main.ts"; -const devApp = new FreshDevApp(); +const devApp = new Builder(); // Enable Tailwind CSS -tailwind(devApp); - -devApp.mountApp("/", app); +tailwind(builder, app); if (Deno.args.includes("build")) { - await devApp.build({ - target: "safari12", - }); + await builder.build(); } else { - await devApp.listen(); + await builder.listen(); } ``` diff --git a/plugin-tailwindcss/deno.json b/plugin-tailwindcss/deno.json index 302cd3af5c4..a670642fb71 100644 --- a/plugin-tailwindcss/deno.json +++ b/plugin-tailwindcss/deno.json @@ -1,6 +1,6 @@ { "name": "@fresh/plugin-tailwind", - "version": "0.0.1-alpha.7", + "version": "0.0.1-alpha.8", "license": "MIT", "exports": "./src/mod.ts" } diff --git a/plugin-tailwindcss/src/compiler.ts b/plugin-tailwindcss/src/compiler.ts index a7b7658098a..daa1bca7863 100644 --- a/plugin-tailwindcss/src/compiler.ts +++ b/plugin-tailwindcss/src/compiler.ts @@ -1,80 +1,18 @@ -import tailwindCss, { type Config } from "tailwindcss"; +import twPostcss from "@tailwindcss/postcss"; import postcss from "postcss"; -import autoprefixer from "autoprefixer"; -import * as path from "@std/path"; -import type { TailwindPluginOptions } from "./types.ts"; import type { ResolvedFreshConfig } from "fresh"; +import type { TailwindPluginOptions } from "./types.ts"; -const CONFIG_EXTENSIONS = ["ts", "js", "mjs"]; - -async function findTailwindConfigFile(directory: string): Promise { - let dir = directory; - while (true) { - for (let i = 0; i < CONFIG_EXTENSIONS.length; i++) { - const ext = CONFIG_EXTENSIONS[i]; - const filePath = path.join(dir, `tailwind.config.${ext}`); - try { - const stat = await Deno.stat(filePath); - if (stat.isFile) { - return filePath; - } - } catch (err) { - if (!(err instanceof Deno.errors.NotFound)) { - throw err; - } - } - } - - const parent = path.dirname(dir); - if (parent === dir) { - throw new Error( - `Could not find a tailwind config file in the current directory or any parent directory.`, - ); - } - - dir = parent; - } -} - -export async function initTailwind( +export function initTailwind( config: ResolvedFreshConfig, - options: TailwindPluginOptions, -): Promise { - const root = path.dirname(config.staticDir); - - const configPath = await findTailwindConfigFile(root); - const url = path.toFileUrl(configPath).href; - const tailwindConfig = (await import(url)).default as Config; - - if (!Array.isArray(tailwindConfig.content)) { - throw new Error(`Expected tailwind "content" option to be an array`); - } - - // deno-lint-ignore no-explicit-any - tailwindConfig.content = tailwindConfig.content.map((pattern: any) => { - if (typeof pattern === "string") { - const relative = path.relative(Deno.cwd(), path.dirname(configPath)); - - if (!relative.startsWith("..")) { - return path.join(relative, pattern); - } - } - return pattern; - }); - - // PostCSS types cause deep recursion + options: TailwindPluginOptions = {}, +): postcss.Processor { const plugins = [ - // deno-lint-ignore no-explicit-any - tailwindCss(tailwindConfig) as any, - // deno-lint-ignore no-explicit-any - autoprefixer(options.autoprefixer) as any, + twPostcss({ + optimize: config.mode === "production", + ...options, + }), ]; - if (config.mode === "production") { - const { default: cssnano } = await import("cssnano"); - plugins.push(cssnano()); - } - - const res = postcss(plugins); - return res; + return postcss(plugins); } diff --git a/plugin-tailwindcss/src/mod.ts b/plugin-tailwindcss/src/mod.ts index 5f510fe9184..d7fe6fbf7da 100644 --- a/plugin-tailwindcss/src/mod.ts +++ b/plugin-tailwindcss/src/mod.ts @@ -1,19 +1,19 @@ -import type { TailwindPluginOptions } from "./types.ts"; import { initTailwind } from "./compiler.ts"; import type { FreshBuilder } from "fresh/dev"; import type { App } from "fresh"; +import type { TailwindPluginOptions } from "./types.ts"; export function tailwind( builder: FreshBuilder, app: App, options: TailwindPluginOptions = {}, ): void { - let processor: ReturnType | null; + let processor: ReturnType | null = null; builder.onTransformStaticFile( { pluginName: "tailwind", filter: /\.css$/, exclude: options.exclude }, async (args) => { - if (!processor) processor = initTailwind(app.config, options); + if (!processor) processor = initTailwind(app.config); const instance = await processor; const res = await instance.process(args.text, { from: args.path, diff --git a/plugin-tailwindcss/src/types.ts b/plugin-tailwindcss/src/types.ts index bb51655a345..8bb99e3412e 100644 --- a/plugin-tailwindcss/src/types.ts +++ b/plugin-tailwindcss/src/types.ts @@ -1,48 +1,6 @@ import type { OnTransformOptions } from "@fresh/core/dev"; -export interface AutoprefixerOptions { - /** environment for `Browserslist` */ - env?: string; - - /** should Autoprefixer use Visual Cascade, if CSS is uncompressed */ - cascade?: boolean; - - /** should Autoprefixer add prefixes. */ - add?: boolean; - - /** should Autoprefixer [remove outdated] prefixes */ - remove?: boolean; - - /** should Autoprefixer add prefixes for @supports parameters. */ - supports?: boolean; - - /** should Autoprefixer add prefixes for flexbox properties */ - flexbox?: boolean | "no-2009"; - - /** should Autoprefixer add IE 10-11 prefixes for Grid Layout properties */ - grid?: boolean | "autoplace" | "no-autoplace"; - - /** custom usage statistics for > 10% in my stats browsers query */ - stats?: { - [browser: string]: { - [version: string]: number; - }; - }; - - /** - * list of queries for target browsers. - * Try to not use it. - * The best practice is to use `.browserslistrc` config or `browserslist` key in `package.json` - * to share target browsers with Babel, ESLint and Stylelint - */ - overrideBrowserslist?: string | string[]; - - /** do not raise error on unknown browser version in `Browserslist` config. */ - ignoreUnknownVersions?: boolean; -} - export interface TailwindPluginOptions { - autoprefixer?: AutoprefixerOptions; /** Exclude paths or globs that should not be processed */ exclude?: OnTransformOptions["exclude"]; } diff --git a/www/deno.json b/www/deno.json index b39c49db766..322f873ca37 100644 --- a/www/deno.json +++ b/www/deno.json @@ -1,6 +1,6 @@ { "tasks": { - "start": "deno run -A --watch=static/,routes/,../src,../docs dev.ts", + "start": "deno run -A --allow-scripts --node-modules-dir --watch=static/,routes/,../src,../docs dev.ts", "build": "deno run -A dev.ts build", "preview": "deno run -A main.ts" } diff --git a/www/dev.ts b/www/dev.ts index 2d83035b498..f90bd13b635 100755 --- a/www/dev.ts +++ b/www/dev.ts @@ -5,7 +5,7 @@ import { app } from "./main.ts"; import { tailwind } from "@fresh/plugin-tailwind"; const builder = new Builder({ target: "safari12" }); -tailwind(builder, app, {}); +tailwind(builder, app); if (Deno.args.includes("build")) { await builder.build(app); diff --git a/www/static/styles.css b/www/static/styles.css index b1406f823c1..5070fc52cef 100644 --- a/www/static/styles.css +++ b/www/static/styles.css @@ -1,35 +1,33 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; /* Light and dark theme variables */ :root { - --fresh: 50deg, 100%, 56%; - --fresh-green: 142deg, 71%, 29%; + --fresh: hsla(50, 100%, 56%, 1); + --fresh-green: hsla(142, 71%, 29%, 1); --background-primary: 215deg, 100%, 100%; - --background-secondary: 210deg, 29%, 97%; - --background-tertiary: 207deg, 33%, 95%; - --foreground-primary: 0deg, 0%, 9%; - --foreground-secondary: 0deg, 0%, 23%; - --foreground-tertiary: 0deg, 0%, 32%; - --foreground-quaternary: 0deg, 0%, 42%; - - --info: 194deg, 76%, 41%; + --background-secondary: hsla(210, 29%, 97%, 1); + --background-tertiary: hsla(207, 33%, 95%, 1); + --foreground-primary: hsla(0, 0%, 9%, 1); + --foreground-secondary: hsla(0, 0%, 23%, 1); + --foreground-tertiary: hsla(0, 0%, 32%, 1); + --foreground-quaternary: hsla(0, 0%, 42%, 1); + + --info: hsla(194, 76%, 41%, 1); } html[data-theme="dark"]:root { - --fresh: 50deg, 100%, 56%; - --fresh-green: 142deg, 71%, 29%; + --fresh: hsla(50, 100%, 56%, 1); + --fresh-green: hsla(142, 71%, 29%, 1); - --background-primary: 216deg, 27.8%, 7.1%; - --background-secondary: 216deg, 27.7%, 12%; - --background-tertiary: 216deg, 27.7%, 22%; - --foreground-primary: 215deg, 17%, 99%; - --foreground-secondary: 215deg, 17%, 71%; - --foreground-tertiary: 215deg, 17%, 20%; - --foreground-quaternary: 215deg, 17%, 10%; + --background-primary: hsla(216, 27.8%, 7.1%, 1); + --background-secondary: hsla(216, 27.7%, 12%, 1); + --background-tertiary: hsla(216, 27.7%, 22%, 1); + --foreground-primary: hsla(215, 17%, 99%, 1); + --foreground-secondary: hsla(215, 17%, 71%, 1); + --foreground-tertiary: hsla(215, 17%, 20%, 1); + --foreground-quaternary: hsla(215, 17%, 10%, 1); - --info: 194deg, 76%, 41%; + --info: hsla(194, 76%, 41%, 1); color: var(--foreground-primary); background-color: var(--background-primary); @@ -98,11 +96,13 @@ h6 { } hr { - @apply border-foreground-secondary/10; + /* @apply border-foreground-secondary/10; */ + border-color: hsla(var(--foreground-secondary), 0.1); } .dark-mode-toggle-button img { - @apply fill-foreground-primary; + /* @apply fill-foreground-primary; */ + fill: var(--foreground-primary); } ::selection { diff --git a/www/tailwind.config.ts b/www/tailwind.config.ts index 8553a6cf4eb..dba7e33590d 100644 --- a/www/tailwind.config.ts +++ b/www/tailwind.config.ts @@ -21,19 +21,26 @@ export default { theme: { extend: { colors: { - // Dark/light with Tailwind done right using CSS variables: - "fresh": "hsla(var(--fresh))", - "fresh-green": "hsla(var(--fresh-green))", + // use RGB variables with alpha value + "fresh": "rgb(var(--fresh-rgb) / )", + "fresh-green": "rgb(var(--fresh-green-rgb) / )", - "background-primary": "hsla(var(--background-primary))", - "background-secondary": "hsla(var(--background-secondary))", - "background-tertiary": "hsla(var(--background-tertiary))", - "foreground-primary": "hsla(var(--foreground-primary))", - "foreground-secondary": "hsla(var(--foreground-secondary))", - "foreground-tertiary": "hsla(var(--foreground-tertiary))", - "foreground-quaternary": "hsla(var(--foreground-quaternary))", + "background-primary": + "rgb(var(--background-primary-rgb) / )", + "background-secondary": + "rgb(var(--background-secondary-rgb) / )", + "background-tertiary": + "rgb(var(--background-tertiary-rgb) / )", + "foreground-primary": + "rgb(var(--foreground-primary-rgb) / )", + "foreground-secondary": + "rgb(var(--foreground-secondary-rgb) / )", + "foreground-tertiary": + "rgb(var(--foreground-tertiary-rgb) / )", + "foreground-quaternary": + "rgb(var(--foreground-quaternary-rgb) / )", - "info": "hsla(var(--info))", + "info": "rgb(var(--info-rgb) / )", }, }, },