diff --git a/docs/homepage.md b/docs/homepage.md index 8e226492..b1d2a5ec 100644 --- a/docs/homepage.md +++ b/docs/homepage.md @@ -6,7 +6,7 @@ [![](https://img.shields.io/npm/v/mlut.svg)](https://www.npmjs.com/package/mlut) [![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/mlutcss)](https://x.com/mlutcss) -Atomic CSS toolkit with Sass and ergonomics for creating styles of any complexity
Get almost all power of CSS in one utility! +Atomic CSS toolkit with Sass and ergonomics for creating styles of any complexity.
Make CSS exciting again! GIF animation with usage example diff --git a/package-lock.json b/package-lock.json index 04bdaa24..1922d8c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -475,9 +475,10 @@ } }, "node_modules/@bufbuild/protobuf": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.9.0.tgz", - "integrity": "sha512-W7gp8Q/v1NlCZLsv8pQ3Y0uCu/SHgXOVFK+eUluUKWXmsb6VHkpNx0apdOWWcDbB9sJoKeP8uPrjmehJz6xETQ==" + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.9.0.tgz", + "integrity": "sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==", + "license": "(Apache-2.0 AND BSD-3-Clause)" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", @@ -1269,6 +1270,302 @@ "node": ">= 8" } }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.39.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.39.0.tgz", @@ -3754,6 +4051,12 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, + "node_modules/colorjs.io": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", + "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", + "license": "MIT" + }, "node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", @@ -4467,7 +4770,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, + "devOptional": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -10473,6 +10776,13 @@ "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -12591,13 +12901,14 @@ "dev": true }, "node_modules/sass": { - "version": "1.77.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz", - "integrity": "sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==", - "dev": true, + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.0.tgz", + "integrity": "sha512-CQi5/AzCwiubU3dSqRDJ93RfOfg/hhpW1l6wCIvolmehfwgCI35R/0QDs1+R+Ygrl8jFawwwIojE2w47/mf94A==", + "devOptional": true, + "license": "MIT", "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", + "chokidar": "^4.0.0", + "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { @@ -12605,212 +12916,221 @@ }, "engines": { "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/sass-embedded": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.77.2.tgz", - "integrity": "sha512-luiDeWNZ0tKs1jCiSFbuz8wFVQxYqN+vh+yfm9v7kW42yPtwEF8+z2ROaDJluSUZ7vhFmsXuqoKg9qBxc7SCnw==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.93.0.tgz", + "integrity": "sha512-dQACVfrbwKtvnrA0xH67YAdUYi6k7XcPg8uNF3DPf/VaJMQzduE1z5w3NFa9oVjtqXM4+FA9P7Qdv06Bzf614g==", + "license": "MIT", "dependencies": { - "@bufbuild/protobuf": "^1.0.0", + "@bufbuild/protobuf": "^2.5.0", "buffer-builder": "^0.2.0", - "immutable": "^4.0.0", + "colorjs.io": "^0.5.0", + "immutable": "^5.0.2", "rxjs": "^7.4.0", "supports-color": "^8.1.1", + "sync-child-process": "^1.0.2", "varint": "^6.0.0" }, + "bin": { + "sass": "dist/bin/sass.js" + }, "engines": { "node": ">=16.0.0" }, "optionalDependencies": { - "sass-embedded-android-arm": "1.77.2", - "sass-embedded-android-arm64": "1.77.2", - "sass-embedded-android-ia32": "1.77.2", - "sass-embedded-android-x64": "1.77.2", - "sass-embedded-darwin-arm64": "1.77.2", - "sass-embedded-darwin-x64": "1.77.2", - "sass-embedded-linux-arm": "1.77.2", - "sass-embedded-linux-arm64": "1.77.2", - "sass-embedded-linux-ia32": "1.77.2", - "sass-embedded-linux-musl-arm": "1.77.2", - "sass-embedded-linux-musl-arm64": "1.77.2", - "sass-embedded-linux-musl-ia32": "1.77.2", - "sass-embedded-linux-musl-x64": "1.77.2", - "sass-embedded-linux-x64": "1.77.2", - "sass-embedded-win32-arm64": "1.77.2", - "sass-embedded-win32-ia32": "1.77.2", - "sass-embedded-win32-x64": "1.77.2" + "sass-embedded-all-unknown": "1.93.0", + "sass-embedded-android-arm": "1.93.0", + "sass-embedded-android-arm64": "1.93.0", + "sass-embedded-android-riscv64": "1.93.0", + "sass-embedded-android-x64": "1.93.0", + "sass-embedded-darwin-arm64": "1.93.0", + "sass-embedded-darwin-x64": "1.93.0", + "sass-embedded-linux-arm": "1.93.0", + "sass-embedded-linux-arm64": "1.93.0", + "sass-embedded-linux-musl-arm": "1.93.0", + "sass-embedded-linux-musl-arm64": "1.93.0", + "sass-embedded-linux-musl-riscv64": "1.93.0", + "sass-embedded-linux-musl-x64": "1.93.0", + "sass-embedded-linux-riscv64": "1.93.0", + "sass-embedded-linux-x64": "1.93.0", + "sass-embedded-unknown-all": "1.93.0", + "sass-embedded-win32-arm64": "1.93.0", + "sass-embedded-win32-x64": "1.93.0" + } + }, + "node_modules/sass-embedded-all-unknown": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.93.0.tgz", + "integrity": "sha512-fBTnh5qgOyw0CGVaF2iPsIIRj40D9Mnf19WerixjmWwmYKaGhxd62STsuMt6t1dWS5lkUZWRgrJ+2biQiEcCBg==", + "cpu": [ + "!arm", + "!arm64", + "!riscv64", + "!x64" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "sass": "1.93.0" } }, "node_modules/sass-embedded-android-arm": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.77.2.tgz", - "integrity": "sha512-rMuIMZ/FstMrT9Y23LDgQGpCyfe3i10dJnmW+DVJ9Gqz4dR7qpysEBIQXU35mHVq8ppNZ0yGiFlFZTSiiVMdzQ==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.93.0.tgz", + "integrity": "sha512-oMm6RafXdpWDejufUs+GcgBSS/wa/iG1zRhwsCrkIkMLhqa34oN7xLkNs9Ieg337nlIryUBijwAVMFlAs/mgIg==", "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "android" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-embedded-android-arm64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.77.2.tgz", - "integrity": "sha512-7DiFMros5iRYrkPlNqUBfzZ/DCgsI199pRF8xuBsPf9yuB8SLDOqvNk3QOnUCMAbpjW5VW1JgdfGFFlHTCnJQA==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.93.0.tgz", + "integrity": "sha512-bwU+0uWUVoATaYAb9mnDj7GCEnNAIrinzT4UlA6GlicH+ELEZlNwVjaPJfdCyyYs8iOKuzUPfZrFZuwRCsXXqw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "android" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, - "node_modules/sass-embedded-android-ia32": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.77.2.tgz", - "integrity": "sha512-qN0laKrAjuvBLFdUogGz8jQlbHs6tgH91tKQeE7ZE4AO9zzDRlXtaEJP1x6B6AGVc8UOEkvQyR3Nej4qwWprhA==", + "node_modules/sass-embedded-android-riscv64": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.93.0.tgz", + "integrity": "sha512-lKk7elql2abYeLY+wNBW8DB13W8An9JWlAr/BWOAtluz1RMsPVZwv0amQiP2PcR6HA02QDoLfRE/QpnPDHzCuw==", "cpu": [ - "ia32" + "riscv64" ], + "license": "MIT", "optional": true, "os": [ "android" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-embedded-android-x64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.77.2.tgz", - "integrity": "sha512-HByqtC5g5hOaJenWs4Klx6gFEIZYx+IEFh5K56U+wB+jd6EU32Lrnbdxy1+i/p/kZrd+23HrVHQPv8zpmxucaw==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.93.0.tgz", + "integrity": "sha512-wuyphs1VMS/PRXtCBLhA0bVo5nyKFCXKaVKMbqPylOTvoTHe7u0zxjWRN4eF5LTPVuQp0A+LYgJz07duzxwJew==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "android" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-embedded-darwin-arm64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.77.2.tgz", - "integrity": "sha512-0jkL/FwbAStqqxFSjHfhElEAWrKRRvFz2JeXOxskUdzMehDMv5LaewqSRCijyeKBO3KgurvndmSfrOizdU6WAw==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.93.0.tgz", + "integrity": "sha512-lEb5J/jabesh16xdocRFgpzIa8GAZCLrdKtUnGbn9a4Y4WkEKHtUkvAm9ZtqE8YiuIm8PwHW/zBUKtZYoGYoYA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-embedded-darwin-x64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.77.2.tgz", - "integrity": "sha512-8Sy36IxOOFPWA5TdhC87SvOkrXUSis51CGKlIsM8yZISQiY9y8b+wrNJM1f3oHvs641xZBaeIuwibJXaY6hNBg==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.93.0.tgz", + "integrity": "sha512-mo9OfKyNF6MiFf711c+QGR7aPpFqAC9FttiLKPYH3RRBZQZU/UcG4mbg+yXfKbhZrJmYngbGiTzE9B+xiOz27Q==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-embedded-linux-arm": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.77.2.tgz", - "integrity": "sha512-/gtCseBkGCBw61p6MG2BqeYy8rblffw2KXUzMKjo9Hlqj/KajWDk7j1B+mVnqrHOPB/KBbm8Ym/2ooCYpnMIkQ==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.93.0.tgz", + "integrity": "sha512-wtO2vB8rMc5zF29xwC3AMgmBgNgm3i3/8zog5vQBD4yddqCJ93JcWDjdUqYmq0H/DLD/Z7q91j6X/YgPq1WuEg==", "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "linux" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-embedded-linux-arm64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.77.2.tgz", - "integrity": "sha512-hlfNFu1IWHI0cOsbpFWPrJlx7IFZfXuI3iEhwa4oljM21y72E6tETUFmTr4f9Ka9qDLXkUxUoYaTH2SqGU9dDA==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.93.0.tgz", + "integrity": "sha512-bJclpjTeP/qCu7zYLZQXROx4xIT3x+qfj/q92fripV9L9Oj2khfUm+2nW0Cq7DS6UrHphrWZ9QSnVYFhkCKtEA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, - "node_modules/sass-embedded-linux-ia32": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.77.2.tgz", - "integrity": "sha512-JSIqGIeAKlrMw/oMFFFxZ10F3QUJVdjeGVI83h6mwNHTYgrX6PuOngcAYleIpYR5XicQgfueC5pPVPbP5CArBQ==", + "node_modules/sass-embedded-linux-musl-arm": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.93.0.tgz", + "integrity": "sha512-mMGAy+2VLLTMDPDG/mfzMmoy09potXp/ZRPRsyJEYVjF0rQij6Iss3qsZbCjVJa4atLwBtPJ14M0NvqpAa2WIg==", "cpu": [ - "ia32" + "arm" ], + "license": "MIT", "optional": true, "os": [ "linux" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, - "node_modules/sass-embedded-linux-musl-arm": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.77.2.tgz", - "integrity": "sha512-LZTSnfHPlfvkdQ8orpnEUCEx40qhKpMjxN3Ggi8kgQqv5jvtqn0ECdWl0n4WI5CrlkmtdS3VeFcsf078bt/f8Q==", + "node_modules/sass-embedded-linux-musl-arm64": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.93.0.tgz", + "integrity": "sha512-VH0zFGqsTy+lThHAm3y8Dpd/X4nC5DLJvk66+mJTg7rwblRhfPpsVO6n8QHeN5ZV1ATTnLh/PbZ7uEPiyAg2wg==", "cpu": [ - "arm" + "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -12819,13 +13139,14 @@ "node": ">=14.0.0" } }, - "node_modules/sass-embedded-linux-musl-arm64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.77.2.tgz", - "integrity": "sha512-JQZuONuhIurKjc/qE9cTiJXSLixL8hGkalWN3LJHasYHVAU92QA/t8rv0T51vIzf/I2F59He3bapkPme60dwSw==", + "node_modules/sass-embedded-linux-musl-riscv64": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.93.0.tgz", + "integrity": "sha512-/a+MvExFEKvwPXyZsQ8b1DWYJMpTnXSdwpe9pDNkdTIcliMAtP952krCx14nBP0UqqNoU/TetyMR8H0WwyeJEA==", "cpu": [ - "arm64" + "riscv64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -12834,13 +13155,14 @@ "node": ">=14.0.0" } }, - "node_modules/sass-embedded-linux-musl-ia32": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.77.2.tgz", - "integrity": "sha512-6F1GHBgPkcTXtfM0MK3PofozagNF8IawdfIG4RNzGeSZRhGBRgZLOS+vdre4xubTLSaa6xjbI47YfaD43z8URQ==", + "node_modules/sass-embedded-linux-musl-x64": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.93.0.tgz", + "integrity": "sha512-o168nV9QI5U+2LFBMmMecWzu6yJ7WJZZfQGlo4Frvg9vC3Em3W02GfAel+g9leJg+0PDnpJLqOsPdrngg25T/Q==", "cpu": [ - "ia32" + "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -12849,13 +13171,14 @@ "node": ">=14.0.0" } }, - "node_modules/sass-embedded-linux-musl-x64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.77.2.tgz", - "integrity": "sha512-8BiqLA1NJeN3rCaX6t747GWMMdH5YUFYuytXU8waDC/u+FSGoOHRxfrsB8BEWHVgSPDxhwZklanPCXXzbzB2lw==", + "node_modules/sass-embedded-linux-riscv64": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.93.0.tgz", + "integrity": "sha512-KYHED49coJQT633cBbqBfBOPmRe3yNbE+D2kqMONADBqzGyxHZpQRStCenhPmDabVLI4fgc3fn//6ubqH724jA==", "cpu": [ - "x64" + "riscv64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -12865,81 +13188,74 @@ } }, "node_modules/sass-embedded-linux-x64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.77.2.tgz", - "integrity": "sha512-czQOxGOX4U47jW9k+cbFBgSt/6FVx2WGLPqPvrgDiEToLJdZyvzUqrkpqQYfJ6hN1koqatCPEpDrUZBcTPGUGg==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.93.0.tgz", + "integrity": "sha512-9OD9OlZ61dmz/BbW4n29l3v74//ibiQCmWu8YBoXVgxxgcbi+2CFv+vRE8guA73BgEdPComw0tpgD1FkW3v12g==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" ], - "bin": { - "sass": "dart-sass/sass" - }, "engines": { "node": ">=14.0.0" } }, - "node_modules/sass-embedded-win32-arm64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.77.2.tgz", - "integrity": "sha512-NA+4Y5PO04YQGtKNCyLrUjQU2nijskVA3Er/UYGtx66BBlWZ/ttbnlk+dU05SF5Jhjb3HtThGGH1meb7pKA+OQ==", - "cpu": [ - "arm64" - ], + "node_modules/sass-embedded-unknown-all": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.93.0.tgz", + "integrity": "sha512-Hh9OPBMg+i1g8OzQyOtQuJg/3ncup4Z+FHdXNzPIeFXcIeS+TVuVQyvJfnB+hYgvVGyBJ+9ekuUYzB+1zA82nw==", + "license": "MIT", "optional": true, "os": [ - "win32" + "!android", + "!darwin", + "!linux", + "!win32" ], - "bin": { - "sass": "dart-sass/sass.bat" - }, - "engines": { - "node": ">=14.0.0" + "dependencies": { + "sass": "1.93.0" } }, - "node_modules/sass-embedded-win32-ia32": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.77.2.tgz", - "integrity": "sha512-/3hGz4GefhVuuUu2gSOdsxBYym5Di0co0tZbtiokCU/8VhYhcAQ3v2Lni49VV6OnsyJLb1nUx+rbpd8cKO1U4w==", + "node_modules/sass-embedded-win32-arm64": { + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.93.0.tgz", + "integrity": "sha512-3SNRTxBVk+c0Oyd4gCp4/KAQ+S6B9S5ihq5dxMMfWpvoQSUqn6mqhkEFrofG1oNlP7KsA2UzhTnFGDRid1An+A==", "cpu": [ - "ia32" + "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" ], - "bin": { - "sass": "dart-sass/sass.bat" - }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-embedded-win32-x64": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.77.2.tgz", - "integrity": "sha512-joHLDICWmnR9Ca+LT9B+Fp85sCvV9F3gdtHtXLSuQAEulG5Ip1Z9euB3FUw+Z0s0Vz4MjNea+JD+TwO9eMrpyw==", + "version": "1.93.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.93.0.tgz", + "integrity": "sha512-6/RJGOdm3bwe71YJaYanQ81I6KA//T/a+MnKlRpP5zk5fy2ygAIGNeNr2ENEBu/KZCuFg7KY49g46v+hPKT6Ow==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" ], - "bin": { - "sass": "dart-sass/sass.bat" - }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-embedded/node_modules/immutable": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==" + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "license": "MIT" }, "node_modules/sass-embedded/node_modules/supports-color": { "version": "8.1.1", @@ -13004,11 +13320,42 @@ "decode-uri-component": "^0.2.0" } }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/sass/node_modules/immutable": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", - "dev": true + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } }, "node_modules/schema-utils": { "version": "4.3.0", @@ -14375,6 +14722,27 @@ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, + "node_modules/sync-child-process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", + "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", + "license": "MIT", + "dependencies": { + "sync-message-port": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/sync-message-port": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz", + "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/table": { "version": "6.8.2", "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", @@ -16649,12 +17017,12 @@ }, "packages/core": { "name": "@mlut/core", - "version": "2.1.2", + "version": "2.1.3", "license": "MIT", "devDependencies": { "@types/node": "^20.10.5", - "sass": "^1.71.0", - "sass-embedded": "^1.71.0", + "sass": "^1.93.0", + "sass-embedded": "^1.93.0", "typescript": "^4.8.0" } }, @@ -16666,7 +17034,7 @@ "arg": "^5.0.2", "csso": "^5.0.5", "fast-glob": "^3.3.2", - "sass-embedded": "^1.71.0", + "sass-embedded": "^1.93.0", "watcher": "^2.3.0" }, "bin": { diff --git a/packages/core/package.json b/packages/core/package.json index 415a84fc..15bb0423 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,11 +1,11 @@ { "name": "@mlut/core", - "version": "2.1.2", + "version": "2.1.3", "description": "Atomic CSS toolkit with Sass and ergonomics for creating styles of any complexity", "author": "mr150", "type": "module", "license": "MIT", - "homepage": "https://mlutcss.github.io/mlut/", + "homepage": "https://mlut.style/", "types": "dist/index.d.ts", "keywords": [ "mlut", @@ -41,8 +41,8 @@ ], "devDependencies": { "@types/node": "^20.10.5", - "sass-embedded": "^1.71.0", - "sass": "^1.71.0", + "sass": "^1.93.0", + "sass-embedded": "^1.93.0", "typescript": "^4.8.0" } } diff --git a/packages/core/src/jit/JitEngine.ts b/packages/core/src/jit/JitEngine.ts index bd780c00..da13c88b 100644 --- a/packages/core/src/jit/JitEngine.ts +++ b/packages/core/src/jit/JitEngine.ts @@ -22,7 +22,7 @@ export class JitEngine { private inputFileCache = '@use "../sass/tools";'; private readonly defaultSassConfig = '@use "sass:map";\n @use "../sass/tools/settings" as ml;'; - private readonly utilsByFile = new Map(); + private readonly utilsByFile = new Map(); private readonly utilsRegexps = { quotedContent: /"\n?[^"]*[^"\n]*\n?"/g, singleQuotedContent: /'\n?[^']*[^'\n]*\n?'/g, @@ -89,7 +89,16 @@ export class JitEngine { return ''; } - const allUniqueUtils = [...new Set([...this.utilsByFile.values()].flat())]; + const mainUtils: string[][] = []; + const atRuleUtils: string[][] = []; + + for (const [main, withAr] of this.utilsByFile.values()) { + mainUtils.push(main); + atRuleUtils.push(withAr); + } + + const sortedAtRuleUtils = atRuleUtils.flat().sort(this.compareUtilsWithAtRule); + const allUniqueUtils = [...new Set(mainUtils.flat().concat(sortedAtRuleUtils))]; const applyStr = `\n@include ${this.sassModuleName}.apply(${JSON.stringify(allUniqueUtils)},(),true);`; @@ -103,7 +112,7 @@ export class JitEngine { ); } - private extractUtils(content: string): string[] { + private extractUtils(content: string): [string[], string[]] { let fixedContent = content.replace(this.utilsRegexps.escapedQuotes, ''); const allClassNames = fixedContent .match(this.utilsRegexps.quotedContent) @@ -161,9 +170,7 @@ export class JitEngine { return acc; }, new Set())]; - return mainUtils.concat( - [...utilsWithAtRule].sort(this.compareUtilsWithAtRule) - ); + return [mainUtils, [...utilsWithAtRule]]; } private compareUtilsWithAtRule = (a: string, b: string): number => { diff --git a/packages/mlut/README.md b/packages/mlut/README.md index a77d6155..a2ef9570 100644 --- a/packages/mlut/README.md +++ b/packages/mlut/README.md @@ -6,7 +6,7 @@ [![](https://img.shields.io/npm/v/mlut.svg)](https://www.npmjs.com/package/mlut) [![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/mlutcss)](https://x.com/mlutcss) -Atomic CSS toolkit with Sass and ergonomics for creating styles of any complexity.
Get almost all power of CSS in one utility! +Atomic CSS toolkit with Sass and ergonomics for creating styles of any complexity.
Make CSS exciting again! ## Table of Contents diff --git a/packages/mlut/package.json b/packages/mlut/package.json index 5b09d9aa..9e8f9299 100644 --- a/packages/mlut/package.json +++ b/packages/mlut/package.json @@ -5,7 +5,7 @@ "author": "mr150", "type": "module", "license": "MIT", - "homepage": "https://mlutcss.github.io/mlut/", + "homepage": "https://mlut.style/", "types": "dist/index.d.ts", "keywords": [ "mlut", @@ -54,7 +54,7 @@ "arg": "^5.0.2", "csso": "^5.0.5", "fast-glob": "^3.3.2", - "sass-embedded": "^1.71.0", + "sass-embedded": "^1.93.0", "watcher": "^2.3.0" } } diff --git a/packages/plugins/package.json b/packages/plugins/package.json index a6e31c97..c3d72645 100644 --- a/packages/plugins/package.json +++ b/packages/plugins/package.json @@ -5,7 +5,7 @@ "author": "mr150", "type": "module", "license": "MIT", - "homepage": "https://mlutcss.github.io/mlut/", + "homepage": "https://mlut.style/", "types": "dist/index.d.ts", "keywords": [ "mlut", diff --git a/test/jit/JitEngine.test.ts b/test/jit/JitEngine.test.ts index 9b01defb..93e8f53e 100644 --- a/test/jit/JitEngine.test.ts +++ b/test/jit/JitEngine.test.ts @@ -11,6 +11,15 @@ describe('JitEngine', () => { const htmlPath0 = '/tmp/mlut-test0.html'; const htmlPath1 = '/tmp/mlut-test1.html'; + + const tplContent0 = '
...
'; + const tplContent1 = '
Copyright mlut
'; + const tplContent2 = ''; + + const tplPath0 = 'section.ejs'; + const tplPath1 = 'footer.ejs'; + const tplPath2 = 'aside.ejs'; + const sassInputPath = '/tmp/mlut-input.scss'; const sassInputContent = ` @@ -66,38 +75,49 @@ const wrapperCss = "M1u -Myvar=block \\"Ps\\" d-g"; //@ts-expect-error jit.extractUtils(extractUtilsContent), [ - 'D-n', - 'Pb6u', - 'Ps', - '^one_Bgc-$bgColor?#c06_h', - //eslint-disable-next-line - "Ct-'id:';attr(id)_b", - 'M1u', - '-Myvar=block', - 'D-f', - 'Gap5u', - 'Bgc#f00', - 'D-ib', - 'sm_Gc-s1', - 'md_Mxh130vh', - 'xl_D', - 'md:lg_D-t', - '@:pfrm_-Try0', + [ + 'D-n', + 'Pb6u', + 'Ps', + '^one_Bgc-$bgColor?#c06_h', + //eslint-disable-next-line + "Ct-'id:';attr(id)_b", + 'M1u', + '-Myvar=block', + 'D-f', + 'Gap5u', + 'Bgc#f00', + 'D-ib', + ], + [ + 'xl_D', + '@:pfrm_-Try0', + 'md:lg_D-t', + 'md_Mxh130vh', + 'sm_Gc-s1', + ], ], ); + //@ts-expect-error + const [utils, arUtils] = jit.extractUtils(utilsWithAtRules); + assert.deepEqual( //@ts-expect-error - jit.extractUtils(utilsWithAtRules), + [utils, arUtils.sort(jit.compareUtilsWithAtRule)], [ - 'D', - 'C-cc_h', - ' { + const jit = new JitEngine(); + await jit.init(); + + jit.putContent(tplPath0, tplContent0); + jit.putContent(tplPath1, tplContent1); + jit.putContent(tplPath2, tplContent2); + + const result = await jit.generateCss(); + const wUtilOnMdPos = result.indexOf('md_W100p'); + const wUtilOnSmPos = result.indexOf('sm_W60p'); + const pUtilOnMdPos = result.indexOf('lg_P10u'); + const pUtilOnSmPos = result.indexOf('sm_P4u'); + + assert.isTrue(wUtilOnSmPos > -1 && pUtilOnSmPos > -1); + assert.isAbove(wUtilOnMdPos, wUtilOnSmPos); + assert.isAbove(pUtilOnMdPos, pUtilOnSmPos); + }); }); diff --git a/test/sass/tools/functions/utils/_convert-util-value.scss b/test/sass/tools/functions/utils/_convert-util-value.scss index c1402586..2cc26bcd 100644 --- a/test/sass/tools/functions/utils/_convert-util-value.scss +++ b/test/sass/tools/functions/utils/_convert-util-value.scss @@ -105,7 +105,7 @@ ml.$utils-cfg: map.set( (2u, 'P'): ml.su(2), ('16/9', 'Apcr'): string.unquote('16/9'), ('-1/3', 'Apcr'): string.unquote('-1/3'), - (70p, 'O'): 0.7, + (70p, 'O'): 0.7000000000000001, ('-50p', 'O'): -0.5, ('0.8', 'O'): 0.8, (1.5, 'W'): 1.5rem, @@ -117,7 +117,7 @@ ml.$utils-cfg: map.set( ('-2gg', 'Ml'): calc(var(--ml-gg) * -2), ), 'converts fractions': ( - ('1/3', 'W'): 33.3333333333%, + ('1/3', 'W'): 33.33333333333333%, ('-1/4', 'Ml'): -25%, ('2/2.5', 'T'): 80%, ('1/$div', 'W'): calc(1 / var(--ml-div) * 100%), diff --git a/test/sass/tools/functions/utils/_generate-uv-color-range.scss b/test/sass/tools/functions/utils/_generate-uv-color-range.scss index 6f8c5b21..798893bb 100644 --- a/test/sass/tools/functions/utils/_generate-uv-color-range.scss +++ b/test/sass/tools/functions/utils/_generate-uv-color-range.scss @@ -139,12 +139,12 @@ $rgba-scale: ('rgb': 15%, 'alpha': 10%); 'prm0': #c06, 'prm0*90p': rgba(204, 0, 102, 0.9), 'prm0*81p': rgba(204, 0, 102, 0.81), - 'prm50': #d4267d, - 'prm50*90p': rgba(212, 38, 125, 0.9), - 'prm50*81p': rgba(212, 38, 125, 0.81), - 'prm100': #da4791, - 'prm100*90p': rgba(218, 71, 145, 0.90), - 'prm100*81p': rgba(218, 71, 145, 0.81), + 'prm50': rgb(211.65, 38.25, 124.95), + 'prm50*90p': rgba(211.65, 38.25, 124.95, 0.9), + 'prm50*81p': rgba(211.65, 38.25, 124.95, 0.81), + 'prm100': rgb(218.1525, 70.76249999999999, 144.4575), + 'prm100*90p': rgba(218.1525, 70.76249999999999, 144.4575, 0.9), + 'prm100*81p': rgba(218.1525, 70.76249999999999, 144.4575, 0.81), )), (['sec0', 3, $rgb-step5, meta.get-function('custom-color-change')], 'C'): ( 'values': (