diff --git a/README.md b/README.md index 6643598..0a6a66e 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ Compile-run Tailwind compiler. ```tsx +/// + export function App() { return
; } diff --git a/package.json b/package.json index 43e724f..cb12805 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aet/tailwind", - "version": "1.0.25", + "version": "1.0.28", "license": "MIT", "type": "module", "scripts": { @@ -30,10 +30,13 @@ "./plugin/typography": "./dist/vendor/typography.js", "./macro": { "types": "./dist/macro.d.ts" + }, + "./react-env": { + "types": "./dist/react-env.d.ts" } }, "devDependencies": { - "@aet/eslint-rules": "2.0.36", + "@aet/eslint-rules": "^2.0.36", "@types/babel__core": "^7.20.5", "@types/bun": "^1.2.2", "@types/dedent": "^0.7.2", @@ -42,13 +45,14 @@ "@types/postcss-safe-parser": "^5.0.4", "@types/react": "^19.0.8", "@types/stylis": "^4.2.7", + "@vitejs/plugin-react": "^4.3.4", "cli-highlight": "^2.1.11", "clsx": "^2.1.1", "colord": "^2.9.3", "css-what": "^6.1.0", "dedent": "^1.5.3", "esbuild-register": "^3.6.0", - "eslint": "^9.19.0", + "eslint": "^9.20.0", "nolyfill": "^1.0.43", "postcss-nested": "^7.0.2", "prettier": "^3.4.2", @@ -63,14 +67,14 @@ "tailwindcss": "^3.4.17" }, "dependencies": { - "@babel/core": "^7.26.7", + "@babel/core": "^7.26.8", "@emotion/hash": "^0.9.2", - "esbuild": "^0.24.2", + "esbuild": "^0.25.0", "json5": "^2.2.3", "lodash-es": "^4.17.21", "postcss": "^8.5.1", - "postcss-selector-parser": "^7.0.0", - "stylis": "^4.3.5", + "postcss-selector-parser": "^7.1.0", + "stylis": "^4.3.6", "tiny-invariant": "^1.3.3", "type-fest": "^4.33.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96f67e1..fd7f884 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,14 +13,14 @@ importers: .: dependencies: '@babel/core': - specifier: ^7.26.7 - version: 7.26.7 + specifier: ^7.26.8 + version: 7.26.8 '@emotion/hash': specifier: ^0.9.2 version: 0.9.2 esbuild: - specifier: ^0.24.2 - version: 0.24.2 + specifier: ^0.25.0 + version: 0.25.0 json5: specifier: ^2.2.3 version: 2.2.3 @@ -31,11 +31,11 @@ importers: specifier: ^8.5.1 version: 8.5.1 postcss-selector-parser: - specifier: ^7.0.0 - version: 7.0.0 + specifier: ^7.1.0 + version: 7.1.0 stylis: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 tiny-invariant: specifier: ^1.3.3 version: 1.3.3 @@ -44,8 +44,8 @@ importers: version: 4.33.0 devDependencies: '@aet/eslint-rules': - specifier: 2.0.36 - version: 2.0.36(eslint@9.19.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) + specifier: ^2.0.36 + version: 2.0.36(eslint@9.20.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) '@types/babel__core': specifier: ^7.20.5 version: 7.20.5 @@ -70,6 +70,9 @@ importers: '@types/stylis': specifier: ^4.2.7 version: 4.2.7 + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(lightningcss@1.29.1)(yaml@2.5.0)) cli-highlight: specifier: ^2.1.11 version: 2.1.11 @@ -87,10 +90,10 @@ importers: version: 1.5.3 esbuild-register: specifier: ^3.6.0 - version: 3.6.0(esbuild@0.24.2) + version: 3.6.0(esbuild@0.25.0) eslint: - specifier: ^9.19.0 - version: 9.19.0(jiti@2.4.2) + specifier: ^9.20.0 + version: 9.20.0(jiti@2.4.2) nolyfill: specifier: ^1.0.43 version: 1.0.43 @@ -151,12 +154,12 @@ packages: resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.7': - resolution: {integrity: sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==} + '@babel/core@7.26.8': + resolution: {integrity: sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.5': - resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} + '@babel/generator@7.26.8': + resolution: {integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.26.5': @@ -173,6 +176,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} @@ -199,12 +206,29 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + '@babel/parser@7.26.8': + resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.26.8': + resolution: {integrity: sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.7': - resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==} + '@babel/traverse@7.26.8': + resolution: {integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==} engines: {node: '>=6.9.0'} '@babel/types@7.26.7': @@ -220,150 +244,300 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.0': + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.24.2': resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.0': + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.24.2': resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.0': + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.24.2': resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.0': + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.24.2': resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.0': + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.24.2': resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.0': + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.24.2': resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.0': + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.0': + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.24.2': resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.0': + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.24.2': resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.0': + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.24.2': resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.0': + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.24.2': resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.0': + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.24.2': resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.0': + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.24.2': resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.0': + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.24.2': resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.0': + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.24.2': resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.0': + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.24.2': resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.0': + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.24.2': resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.0': + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.24.2': resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.0': + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.24.2': resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.0': + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.0': + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.24.2': resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.0': + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.24.2': resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.0': + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.24.2': resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.0': + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.24.2': resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.0': + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -416,6 +590,10 @@ packages: resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.11.0': + resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -424,6 +602,10 @@ packages: resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.20.0': + resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -717,6 +899,9 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/gensync@1.0.4': + resolution: {integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -759,10 +944,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.22.0': - resolution: {integrity: sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.23.0': resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -774,20 +955,10 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.22.0': - resolution: {integrity: sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.23.0': resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.22.0': - resolution: {integrity: sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/typescript-estree@8.23.0': resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -801,14 +972,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.22.0': - resolution: {integrity: sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.23.0': resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-react@4.3.4': + resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 + '@vitest/expect@3.0.5': resolution: {integrity: sha512-nNIOqupgZ4v5jWuQx2DSlHLEs7Q4Oh/7AYwNyE+k0UQzG7tSmjPXShUikn1mpNGzYEN2jJbTvLejwShMitovBA==} @@ -1133,6 +1306,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -1279,8 +1457,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.19.0: - resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + eslint@9.20.0: + resolution: {integrity: sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1870,8 +2048,8 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss-selector-parser@7.0.0: - resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -1897,6 +2075,10 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} @@ -2044,8 +2226,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - stylis@4.3.5: - resolution: {integrity: sha512-K7npNOKGRYuhAFFzkzMGfxFDpN6gDwf8hcMiE+uveTVbBgm93HrNP3ZDUpKqzZ4pG7TP6fmb+EMAQPjq9FqqvA==} + stylis@4.3.6: + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} @@ -2112,12 +2294,6 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@2.0.0: - resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-api-utils@2.0.1: resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} engines: {node: '>=18.12'} @@ -2332,20 +2508,20 @@ snapshots: '@aet/eslint-define-config@0.1.7': {} - '@aet/eslint-rules@2.0.36(eslint@9.19.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3)': + '@aet/eslint-rules@2.0.36(eslint@9.20.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3)': dependencies: '@aet/eslint-define-config': 0.1.7 '@antfu/install-pkg': 1.0.0 - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) - '@eslint-react/eslint-plugin': 1.26.1(eslint@9.19.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) + '@eslint-react/eslint-plugin': 1.26.1(eslint@9.20.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) '@eslint/js': 9.19.0 '@nolyfill/is-core-module': 1.0.39 - '@stylistic/eslint-plugin': 3.0.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@stylistic/eslint-plugin': 3.0.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@types/eslint': 9.6.1 - '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) aria-query: 5.3.2 axe-core: 4.10.2 axobject-query: 4.1.0 @@ -2354,13 +2530,13 @@ snapshots: doctrine: 3.0.0 emoji-regex: 10.4.0 enhanced-resolve: 5.18.1 - eslint: 9.19.0(jiti@2.4.2) - eslint-config-prettier: 10.0.1(eslint@9.19.0(jiti@2.4.2)) + eslint: 9.20.0(jiti@2.4.2) + eslint-config-prettier: 10.0.1(eslint@9.20.0(jiti@2.4.2)) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)) - eslint-plugin-import-x: 4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-unicorn: 56.0.1(eslint@9.19.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)))(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-import-x: 4.6.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-unicorn: 56.0.1(eslint@9.20.0(jiti@2.4.2)) esprima: 4.0.1 esquery: 1.6.0 estraverse: 5.3.0 @@ -2375,9 +2551,9 @@ snapshots: minimatch: 10.0.1 semver: 7.7.1 typescript: 5.7.3 - typescript-eslint: 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + typescript-eslint: 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) optionalDependencies: - '@tanstack/eslint-plugin-query': 5.64.2(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@tanstack/eslint-plugin-query': 5.64.2(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import @@ -2404,18 +2580,19 @@ snapshots: '@babel/compat-data@7.26.5': {} - '@babel/core@7.26.7': + '@babel/core@7.26.8': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.5 + '@babel/generator': 7.26.8 '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8) '@babel/helpers': 7.26.7 - '@babel/parser': 7.26.7 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.7 + '@babel/parser': 7.26.8 + '@babel/template': 7.26.8 + '@babel/traverse': 7.26.8 '@babel/types': 7.26.7 + '@types/gensync': 1.0.4 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -2424,9 +2601,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.26.5': + '@babel/generator@7.26.8': dependencies: - '@babel/parser': 7.26.7 + '@babel/parser': 7.26.8 '@babel/types': 7.26.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 @@ -2442,20 +2619,22 @@ snapshots: '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.26.7 + '@babel/traverse': 7.26.8 '@babel/types': 7.26.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.7)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.8)': dependencies: - '@babel/core': 7.26.7 + '@babel/core': 7.26.8 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.7 + '@babel/traverse': 7.26.8 transitivePeerDependencies: - supports-color + '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-string-parser@7.25.9': {} '@babel/helper-validator-identifier@7.25.9': {} @@ -2464,7 +2643,7 @@ snapshots: '@babel/helpers@7.26.7': dependencies: - '@babel/template': 7.25.9 + '@babel/template': 7.26.8 '@babel/types': 7.26.7 '@babel/parser@7.25.3': @@ -2475,18 +2654,32 @@ snapshots: dependencies: '@babel/types': 7.26.7 - '@babel/template@7.25.9': + '@babel/parser@7.26.8': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.7 '@babel/types': 7.26.7 - '@babel/traverse@7.26.7': + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/template@7.26.8': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.5 - '@babel/parser': 7.26.7 - '@babel/template': 7.25.9 + '@babel/parser': 7.26.8 + '@babel/types': 7.26.7 + + '@babel/traverse@7.26.8': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.8 + '@babel/parser': 7.26.8 + '@babel/template': 7.26.8 '@babel/types': 7.26.7 debug: 4.4.0 globals: 11.12.0 @@ -2503,91 +2696,166 @@ snapshots: '@esbuild/aix-ppc64@0.24.2': optional: true + '@esbuild/aix-ppc64@0.25.0': + optional: true + '@esbuild/android-arm64@0.24.2': optional: true + '@esbuild/android-arm64@0.25.0': + optional: true + '@esbuild/android-arm@0.24.2': optional: true + '@esbuild/android-arm@0.25.0': + optional: true + '@esbuild/android-x64@0.24.2': optional: true + '@esbuild/android-x64@0.25.0': + optional: true + '@esbuild/darwin-arm64@0.24.2': optional: true + '@esbuild/darwin-arm64@0.25.0': + optional: true + '@esbuild/darwin-x64@0.24.2': optional: true + '@esbuild/darwin-x64@0.25.0': + optional: true + '@esbuild/freebsd-arm64@0.24.2': optional: true + '@esbuild/freebsd-arm64@0.25.0': + optional: true + '@esbuild/freebsd-x64@0.24.2': optional: true + '@esbuild/freebsd-x64@0.25.0': + optional: true + '@esbuild/linux-arm64@0.24.2': optional: true + '@esbuild/linux-arm64@0.25.0': + optional: true + '@esbuild/linux-arm@0.24.2': optional: true + '@esbuild/linux-arm@0.25.0': + optional: true + '@esbuild/linux-ia32@0.24.2': optional: true + '@esbuild/linux-ia32@0.25.0': + optional: true + '@esbuild/linux-loong64@0.24.2': optional: true + '@esbuild/linux-loong64@0.25.0': + optional: true + '@esbuild/linux-mips64el@0.24.2': optional: true + '@esbuild/linux-mips64el@0.25.0': + optional: true + '@esbuild/linux-ppc64@0.24.2': optional: true + '@esbuild/linux-ppc64@0.25.0': + optional: true + '@esbuild/linux-riscv64@0.24.2': optional: true + '@esbuild/linux-riscv64@0.25.0': + optional: true + '@esbuild/linux-s390x@0.24.2': optional: true + '@esbuild/linux-s390x@0.25.0': + optional: true + '@esbuild/linux-x64@0.24.2': optional: true + '@esbuild/linux-x64@0.25.0': + optional: true + '@esbuild/netbsd-arm64@0.24.2': optional: true + '@esbuild/netbsd-arm64@0.25.0': + optional: true + '@esbuild/netbsd-x64@0.24.2': optional: true + '@esbuild/netbsd-x64@0.25.0': + optional: true + '@esbuild/openbsd-arm64@0.24.2': optional: true + '@esbuild/openbsd-arm64@0.25.0': + optional: true + '@esbuild/openbsd-x64@0.24.2': optional: true + '@esbuild/openbsd-x64@0.25.0': + optional: true + '@esbuild/sunos-x64@0.24.2': optional: true + '@esbuild/sunos-x64@0.25.0': + optional: true + '@esbuild/win32-arm64@0.24.2': optional: true + '@esbuild/win32-arm64@0.25.0': + optional: true + '@esbuild/win32-ia32@0.24.2': optional: true + '@esbuild/win32-ia32@0.25.0': + optional: true + '@esbuild/win32-x64@0.24.2': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0(jiti@2.4.2))': + '@esbuild/win32-x64@0.25.0': + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@9.20.0(jiti@2.4.2))': dependencies: - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/ast@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-react/eff': 1.26.1 - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) string-ts: 2.2.0 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -2595,17 +2863,17 @@ snapshots: - supports-color - typescript - '@eslint-react/core@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/core@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@eslint-react/jsx': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/jsx': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/shared': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/var': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) birecord: 0.1.1 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -2615,45 +2883,45 @@ snapshots: '@eslint-react/eff@1.26.1': {} - '@eslint-react/eslint-plugin@1.26.1(eslint@9.19.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3)': + '@eslint-react/eslint-plugin@1.26.1(eslint@9.20.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3)': dependencies: '@eslint-react/eff': 1.26.1 - '@eslint-react/shared': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) - eslint-plugin-react-debug: 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-dom: 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-hooks-extra: 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-naming-convention: 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-web-api: 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint-plugin-react-x: 1.26.1(eslint@9.19.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) + '@eslint-react/shared': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) + eslint-plugin-react-debug: 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-react-dom: 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-react-hooks-extra: 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-react-naming-convention: 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-react-web-api: 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-react-x: 1.26.1(eslint@9.20.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: - supports-color - ts-api-utils - '@eslint-react/jsx@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/jsx@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@eslint-react/var': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/var': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) ts-pattern: 5.6.2 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/shared@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/shared@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-react/eff': 1.26.1 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) picomatch: 4.0.2 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -2661,13 +2929,13 @@ snapshots: - supports-color - typescript - '@eslint-react/var@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@eslint-react/var@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) string-ts: 2.2.0 ts-pattern: 5.6.2 transitivePeerDependencies: @@ -2687,6 +2955,10 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.11.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 @@ -2703,6 +2975,8 @@ snapshots: '@eslint/js@9.19.0': {} + '@eslint/js@9.20.0': {} + '@eslint/object-schema@2.1.4': {} '@eslint/plugin-kit@0.2.5': @@ -2877,10 +3151,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.34.4': optional: true - '@stylistic/eslint-plugin@3.0.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@stylistic/eslint-plugin@3.0.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) eslint-visitor-keys: 4.2.0 espree: 10.3.0 estraverse: 5.3.0 @@ -2889,10 +3163,10 @@ snapshots: - supports-color - typescript - '@tanstack/eslint-plugin-query@5.64.2(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@tanstack/eslint-plugin-query@5.64.2(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript @@ -2912,7 +3186,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.3 + '@babel/parser': 7.26.7 '@babel/types': 7.26.7 '@types/babel__traverse@7.20.6': @@ -2934,6 +3208,8 @@ snapshots: '@types/estree@1.0.6': {} + '@types/gensync@1.0.4': {} + '@types/json-schema@7.0.15': {} '@types/lodash-es@4.17.12': @@ -2962,15 +3238,15 @@ snapshots: dependencies: '@types/node': 22.13.1 - '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.23.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -2979,57 +3255,36 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.23.0 debug: 4.4.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.22.0': - dependencies: - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/visitor-keys': 8.22.0 - '@typescript-eslint/scope-manager@8.23.0': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.22.0': {} - '@typescript-eslint/types@8.23.0': {} - '@typescript-eslint/typescript-estree@8.22.0(typescript@5.7.3)': - dependencies: - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/visitor-keys': 8.22.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.0(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)': dependencies: '@typescript-eslint/types': 8.23.0 @@ -3044,27 +3299,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.22.0': - dependencies: - '@typescript-eslint/types': 8.22.0 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.23.0': dependencies: '@typescript-eslint/types': 8.23.0 eslint-visitor-keys: 4.2.0 + '@vitejs/plugin-react@4.3.4(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(lightningcss@1.29.1)(yaml@2.5.0))': + dependencies: + '@babel/core': 7.26.8 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.8) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.8) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(lightningcss@1.29.1)(yaml@2.5.0) + transitivePeerDependencies: + - supports-color + '@vitest/expect@3.0.5': dependencies: '@vitest/spy': 3.0.5 @@ -3339,10 +3600,10 @@ snapshots: es-module-lexer@1.6.0: {} - esbuild-register@3.6.0(esbuild@0.24.2): + esbuild-register@3.6.0(esbuild@0.25.0): dependencies: debug: 4.3.6 - esbuild: 0.24.2 + esbuild: 0.25.0 transitivePeerDependencies: - supports-color @@ -3374,6 +3635,34 @@ snapshots: '@esbuild/win32-ia32': 0.24.2 '@esbuild/win32-x64': 0.24.2 + esbuild@0.25.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.0 + '@esbuild/android-arm': 0.25.0 + '@esbuild/android-arm64': 0.25.0 + '@esbuild/android-x64': 0.25.0 + '@esbuild/darwin-arm64': 0.25.0 + '@esbuild/darwin-x64': 0.25.0 + '@esbuild/freebsd-arm64': 0.25.0 + '@esbuild/freebsd-x64': 0.25.0 + '@esbuild/linux-arm': 0.25.0 + '@esbuild/linux-arm64': 0.25.0 + '@esbuild/linux-ia32': 0.25.0 + '@esbuild/linux-loong64': 0.25.0 + '@esbuild/linux-mips64el': 0.25.0 + '@esbuild/linux-ppc64': 0.25.0 + '@esbuild/linux-riscv64': 0.25.0 + '@esbuild/linux-s390x': 0.25.0 + '@esbuild/linux-x64': 0.25.0 + '@esbuild/netbsd-arm64': 0.25.0 + '@esbuild/netbsd-x64': 0.25.0 + '@esbuild/openbsd-arm64': 0.25.0 + '@esbuild/openbsd-x64': 0.25.0 + '@esbuild/sunos-x64': 0.25.0 + '@esbuild/win32-arm64': 0.25.0 + '@esbuild/win32-ia32': 0.25.0 + '@esbuild/win32-x64': 0.25.0 + escalade@3.1.2: {} escalade@3.2.0: {} @@ -3382,9 +3671,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.0.1(eslint@9.19.0(jiti@2.4.2)): + eslint-config-prettier@10.0.1(eslint@9.20.0(jiti@2.4.2)): dependencies: - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) eslint-import-resolver-node@0.3.9: dependencies: @@ -3394,42 +3683,42 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)): + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 enhanced-resolve: 5.18.1 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) fast-glob: 3.3.3 get-tsconfig: 4.10.0 is-bun-module: 1.3.0 is-glob: 4.0.3 stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import-x: 4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + eslint-plugin-import-x: 4.6.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)))(eslint@9.20.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import-x@4.6.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.6.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-import-x@4.6.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: '@types/doctrine': 0.0.9 - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 doctrine: 3.0.0 enhanced-resolve: 5.18.1 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.10.0 is-glob: 4.0.3 @@ -3441,19 +3730,19 @@ snapshots: - supports-color - typescript - eslint-plugin-react-debug@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-debug@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/core': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@eslint-react/jsx': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@eslint-react/jsx': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/shared': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/var': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) string-ts: 2.2.0 ts-pattern: 5.6.2 optionalDependencies: @@ -3461,19 +3750,19 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-dom@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/core': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@eslint-react/jsx': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/jsx': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/shared': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/var': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) compare-versions: 6.1.1 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) string-ts: 2.2.0 ts-pattern: 5.6.2 optionalDependencies: @@ -3481,19 +3770,19 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-hooks-extra@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/core': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@eslint-react/jsx': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@eslint-react/jsx': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/shared': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/var': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) string-ts: 2.2.0 ts-pattern: 5.6.2 optionalDependencies: @@ -3501,18 +3790,18 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-naming-convention@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-naming-convention@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/core': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@eslint-react/jsx': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@eslint-react/jsx': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/shared': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) string-ts: 2.2.0 ts-pattern: 5.6.2 optionalDependencies: @@ -3520,18 +3809,18 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-web-api@1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + eslint-plugin-react-web-api@1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/core': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@eslint-react/jsx': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@eslint-react/jsx': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/shared': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/var': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) string-ts: 2.2.0 ts-pattern: 5.6.2 optionalDependencies: @@ -3539,21 +3828,21 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.26.1(eslint@9.19.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3): + eslint-plugin-react-x@1.26.1(eslint@9.20.0(jiti@2.4.2))(ts-api-utils@2.0.1(typescript@5.7.3))(typescript@5.7.3): dependencies: - '@eslint-react/ast': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/core': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/ast': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/core': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@eslint-react/eff': 1.26.1 - '@eslint-react/jsx': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/shared': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@eslint-react/var': 1.26.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/jsx': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/shared': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@eslint-react/var': 1.26.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) compare-versions: 6.1.1 - eslint: 9.19.0(jiti@2.4.2) - is-immutable-type: 5.0.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) + is-immutable-type: 5.0.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) string-ts: 2.2.0 ts-pattern: 5.6.2 optionalDependencies: @@ -3562,14 +3851,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@56.0.1(eslint@9.19.0(jiti@2.4.2)): + eslint-plugin-unicorn@56.0.1(eslint@9.20.0(jiti@2.4.2)): dependencies: '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.39.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) esquery: 1.6.0 globals: 15.14.0 indent-string: 4.0.0 @@ -3591,14 +3880,14 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.19.0(jiti@2.4.2): + eslint@9.20.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.0 - '@eslint/core': 0.10.0 + '@eslint/core': 0.11.0 '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.19.0 + '@eslint/js': 9.20.0 '@eslint/plugin-kit': 0.2.5 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -3789,11 +4078,11 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-immutable-type@5.0.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + is-immutable-type@5.0.1(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) - ts-api-utils: 2.0.0(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) + ts-api-utils: 2.0.1(typescript@5.7.3) ts-declaration-location: 1.0.4(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: @@ -4095,14 +4384,14 @@ snapshots: postcss-nested@7.0.2(postcss@8.5.1): dependencies: postcss: 8.5.1 - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.0 postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.0.0: + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -4123,6 +4412,8 @@ snapshots: queue-microtask@1.2.3: {} + react-refresh@0.14.2: {} + read-cache@1.0.0: dependencies: pify: 2.3.0 @@ -4291,7 +4582,7 @@ snapshots: strip-json-comments@3.1.1: {} - stylis@4.3.5: {} + stylis@4.3.6: {} sucrase@3.35.0: dependencies: @@ -4373,10 +4664,6 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@2.0.0(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - ts-api-utils@2.0.1(typescript@5.7.3): dependencies: typescript: 5.7.3 @@ -4429,12 +4716,12 @@ snapshots: type-fest@4.33.0: {} - typescript-eslint@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color diff --git a/scripts/index.ts b/scripts/index.ts index 0a5f85a..1e2923a 100755 --- a/scripts/index.ts +++ b/scripts/index.ts @@ -1,7 +1,6 @@ #!/usr/bin/env bun import { promises as fs } from "node:fs"; -import { pick } from "lodash-es"; import { build, defineConfig } from "tsup"; import pkg from "../package.json" with { type: "json" }; @@ -57,28 +56,13 @@ await Promise.all([ external: ["tailwindcss/plugin", "tailwindcss/colors", "tailwindcss/defaultTheme"], }) ), - Bun.write( - "dist/package.json", - JSON.stringify( - pick(pkg, [ - "name", - "version", - "type", - "license", - "dependencies", - "author", - "exports", - ]), - null, - 2 - ).replaceAll("./dist/", "./") - ), ]); await Promise.all([ fs.copyFile("README.md", "dist/README.md"), fs.copyFile("LICENSE.md", "dist/LICENSE.md"), fs.copyFile("src/macro.d.ts", "dist/macro.d.ts"), + fs.copyFile("src/react-env.d.ts", "dist/react-env.d.ts"), Bun.write(`dist/base.d.ts`, `/**\n * \`@tailwind base\` component.\n */\nexport {};`), ]); diff --git a/src/__tests__/base.test.ts b/src/__tests__/base.test.ts index 294bb05..3e85908 100644 --- a/src/__tests__/base.test.ts +++ b/src/__tests__/base.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { createPostCSS } from "../index"; +import { createPostCSS, getClassName } from "../index"; import { getBuild, minCSS, name } from "./utils"; @@ -10,7 +10,6 @@ describe("babel-tailwind", () => { it("supports importing tailwind/base", async () => { const postcss = createPostCSS({ tailwindConfig: {}, - postCSSPlugins: [], }); const base = await postcss("@tailwind base;"); const { files } = await compileESBuild({ @@ -24,4 +23,23 @@ describe("babel-tailwind", () => { expect(files.js.text).toBe(""); expect(minCSS(files.css.text)).toContain(minCSS(base)); }); + + it("supports composeRenderProps", async () => { + const { files } = await compileESBuild({ + clsx: "clsx", + expectFiles: 2, + javascript: /* tsx */ ` + export function Hello() { + return ( +
+ Hello, world! +
+ ); + } + `, + }); + + const clsName = getClassName("text-center"); + expect(files.js.text).toContain(`{ className: "${clsName}",`); + }); }); diff --git a/src/__tests__/merge.test.ts b/src/__tests__/merge.test.ts index e34753b..f56f0ff 100644 --- a/src/__tests__/merge.test.ts +++ b/src/__tests__/merge.test.ts @@ -50,6 +50,31 @@ describe("merges with existing className attribute", () => { expect(files.css.text).toMatch(`.${clsName} {\n text-align: center;\n}`); }); + it("supports composeRenderProps", async () => { + const { files } = await compileESBuild({ + clsx: "clsx", + expectFiles: 2, + composeRenderProps: true, + javascript: /* tsx */ ` + export function Hello(props) { + return ( +
+ Hello, world! +
+ ); + } + `, + }); + + const clsName = getClassName("text-center"); + expect(files.js.text).toContain( + `import { composeRenderProps as _composeRenderProps } from "react-aria-component";` + ); + expect(files.js.text).toContain( + `...props, className: _composeRenderProps(_className, (n) => _cx("${clsName}", n)),` + ); + }); + it("reuses clsx in scope", async () => { const { files } = await compileESBuild({ clsx: "clsx", diff --git a/src/__tests__/utils.ts b/src/__tests__/utils.ts index d4cc708..6365f48 100644 --- a/src/__tests__/utils.ts +++ b/src/__tests__/utils.ts @@ -52,6 +52,7 @@ export function getBuild(name: string) { external: [ "react", "react/jsx-runtime", + "react-aria-component", "@emotion/css", "clsx", "tslib", diff --git a/src/babel/index.ts b/src/babel/index.ts index f613c57..6519093 100644 --- a/src/babel/index.ts +++ b/src/babel/index.ts @@ -53,6 +53,7 @@ function getUtils({ let styleImport: t.Identifier; let classedImport: t.Identifier; let cssModuleImport: t.Identifier; + let composeRenderPropsImport: t.Identifier; const cssMap = new Map(); const jsMap = new Map(); @@ -99,11 +100,14 @@ function getUtils({ return t.cloneNode(cssModuleImport); }; - const reuseImport = (scope: Scope, id?: string) => { - if (id && scope.getBinding(id) === path.scope.getBinding(id)) { - return t.identifier(id); + function reuseImport(scope: Scope) { + if ( + existingCx && + scope.getBinding(existingCx) === path.scope.getBinding(existingCx) + ) { + return t.identifier(existingCx); } - }; + } return { program: path, @@ -151,7 +155,7 @@ function getUtils({ getCx: (localScope: Scope) => { if (cx == null) { - const reuse = reuseImport(localScope, existingCx); + const reuse = reuseImport(localScope); if (reuse) return reuse; cx = path.scope.generateUidIdentifier("cx"); @@ -173,6 +177,24 @@ function getUtils({ return t.cloneNode(tslibImport); }, + getComposeRenderPropsImport: () => { + if (composeRenderPropsImport == null) { + composeRenderPropsImport = path.scope.generateUidIdentifier("composeRenderProps"); + path.node.body.unshift( + t.importDeclaration( + [ + t.importSpecifier( + composeRenderPropsImport, + t.identifier("composeRenderProps") + ), + ], + t.stringLiteral("react-aria-component") + ) + ); + } + return t.cloneNode(composeRenderPropsImport); + }, + getClassedImport: () => { if (classedImport == null) { classedImport = path.scope.generateUidIdentifier("classed"); @@ -256,6 +278,7 @@ export function babelTailwind( getClassName: getClass = getClassName, jsxAttributeAction = "delete", jsxAttributeName = "css", + composeRenderProps, } = options; return definePlugin(({ types: t }) => ({ @@ -345,6 +368,7 @@ export function babelTailwind( ); } + // There is an existing className attribute if (classNameAttribute) { const attrValue = classNameAttribute.value!; const wrap = (...originalValue: (b.types.Expression | b.types.SpreadElement)[]) => @@ -355,60 +379,80 @@ export function babelTailwind( attrValue.value += (attrValue.value.at(-1) === " " ? "" : " ") + valuePathNode.value; } else { - const internalAttrValue = extractJSXContainer(attrValue); + const internal = extractJSXContainer(attrValue); if ( - t.isArrowFunctionExpression(internalAttrValue) && - !t.isBlockStatement(internalAttrValue.body) + t.isArrowFunctionExpression(internal) && + !t.isBlockStatement(internal.body) ) { - internalAttrValue.body = wrap(internalAttrValue.body); + // className={({ isEntering }) => isEntering ? "enter" : "exit"} + // className: ({ isEntering }) => _cx("${clsName}", isEntering ? "enter" : "exit") + internal.body = wrap(internal.body); } else if ( // if the existing className is already wrapped with cx, we unwrap it // to avoid double calling: cx(cx()) - t.isCallExpression(internalAttrValue) && - t.isIdentifier(internalAttrValue.callee) && + t.isCallExpression(internal) && + t.isIdentifier(internal.callee) && _.existingCx && _.program.scope .getBinding(_.existingCx) ?.referencePaths.map(p => p.node) - .includes(internalAttrValue.callee) + .includes(internal.callee) ) { classNameAttribute.value = t.jsxExpressionContainer( wrap( - ...(internalAttrValue.arguments as ( - | b.types.Expression - | b.types.SpreadElement - )[]) + ...(internal.arguments as (b.types.Expression | b.types.SpreadElement)[]) ) ); } else { - classNameAttribute.value = t.jsxExpressionContainer(wrap(internalAttrValue)); + classNameAttribute.value = t.jsxExpressionContainer(wrap(internal)); } } } else { const wrap = (originalValue: b.types.Expression) => - t.callExpression(_.getCx(path.scope), [valuePathNode, originalValue]); + composeRenderProps + ? // composeRenderProps(className, n => cn("...", n)) + t.callExpression(_.getComposeRenderPropsImport(), [ + originalValue, + t.arrowFunctionExpression( + [t.identifier("n")], + t.callExpression(_.getCx(path.scope), [ + valuePathNode, + t.identifier("n"), + ]) + ), + ]) + : t.callExpression(_.getCx(path.scope), [valuePathNode, originalValue]); const rest = parent.attributes.filter(attr => t.isJSXSpreadAttribute(attr)); let arg; + // if there is only one JSX spread attribute and it's an identifier + // ... {...props} /> if (rest.length === 1 && (arg = rest[0].argument) && t.isIdentifier(arg)) { - // props from argument and not modified anywhere + // props from argument and not modified anywhere, get the declaration of this argument const scope = path.scope.getBinding(arg.name); let index: number; + // node is an identifier or object pattern in `params` + // (props) => ... or ({ ...props }) => ... const node = scope?.path.node; if ( scope && !scope.constantViolations.length && - t.isFunctionDeclaration(scope.path.parent) && + (t.isFunctionDeclaration(scope.path.parent) || + t.isArrowFunctionExpression(scope.path.parent)) && (index = (scope.path.parent.params as t.Node[]).indexOf(node!)) !== -1 && (t.isIdentifier(node) || t.isObjectPattern(node)) ) { const clsVar = path.scope.generateUidIdentifier("className"); if (t.isIdentifier(node)) { + // (props) => ... + // ↪ ({ className, ...props }) => ... scope.path.parent.params[index] = t.objectPattern([ t.objectProperty(t.identifier("className"), clsVar), t.restElement(node), ]); } else { + // ({ ...props }) => ... + // ↪ ({ className, ...props }) => ... node.properties.unshift( t.objectProperty(t.identifier("className"), clsVar) ); @@ -437,6 +481,7 @@ export function babelTailwind( ); } } else { + // Fallback const containerValue = t.isStringLiteral(valuePathNode) ? valuePathNode : t.callExpression(_.getCx(path.scope), [valuePathNode]); diff --git a/src/index.ts b/src/index.ts index 1e897e5..079ad79 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,9 @@ +import { createRequire } from "node:module"; + import hash from "@emotion/hash"; +import type { BabelOptions, Options as ReactOptions } from "@vitejs/plugin-react"; import { transformSync } from "esbuild"; import { memoize, without } from "lodash-es"; -import type postcss from "postcss"; import type { Config } from "tailwindcss"; import type { SetRequired } from "type-fest"; @@ -21,6 +23,8 @@ export type BuildStyleFile = ( path: string ) => Promise; +const require = createRequire(import.meta.url); + export interface TailwindPluginOptions { /** * Tailwind CSS configuration @@ -37,11 +41,6 @@ export interface TailwindPluginOptions { */ prefix?: string; - /** - * Additional PostCSS plugins (optional) - */ - postCSSPlugins?: postcss.AcceptedPlugin[]; - /** * Attribute to use for tailwind classes in JSX * @default "css" @@ -65,6 +64,11 @@ export interface TailwindPluginOptions { */ clsx: "clsx" | "classnames" | "emotion"; + /** + * Use react-aria-component’s `composeRenderProps` function. + */ + composeRenderProps?: boolean; + /** * @internal */ @@ -101,12 +105,7 @@ export interface TailwindPluginOptions { export type ResolveTailwindOptions = SetRequired< TailwindPluginOptions, - | "clsx" - | "jsxAttributeAction" - | "jsxAttributeName" - | "postCSSPlugins" - | "styleMap" - | "tailwindConfig" + "clsx" | "jsxAttributeAction" | "jsxAttributeName" | "styleMap" | "tailwindConfig" >; /** @@ -137,7 +136,6 @@ export function getTailwindPlugins(options: TailwindPluginOptions) { getClassName, jsxAttributeAction: "delete", jsxAttributeName: "css", - postCSSPlugins: [], styleMap: new Map(), tailwindConfig: {}, ...options, @@ -178,15 +176,40 @@ export function getTailwindPlugins(options: TailwindPluginOptions) { } }; + const babel = (onCollect?: ClassNameCollector) => + babelTailwind(resolvedOptions, onCollect); + + const patchBabelOptions = (options: BabelOptions) => { + (options.plugins ??= []).push(babel()); + }; + return { compile, babel: (onCollect?: ClassNameCollector) => babelTailwind(resolvedOptions, onCollect), esbuild: () => esbuildPlugin({ styleMap, compile, buildStyleFile }), - /** Requires `options.vite` to be `true`. */ vite: () => { resolvedOptions.vite = true; return vitePlugin({ styleMap, compile, buildStyleFile }); }, + react(options: ReactOptions = {}) { + const reactModule = require("@vitejs/plugin-react"); + const reactPlugin: typeof import("@vitejs/plugin-react").default = + "default" in reactModule ? reactModule.default : reactModule; + + options.babel ??= {}; + if (typeof options.babel === "function") { + const fn = options.babel; + options.babel = (id, options) => { + const result = fn(id, options); + patchBabelOptions(result); + return result; + }; + } else { + patchBabelOptions(options.babel); + } + + return reactPlugin(options); + }, styleMap, options, getCompiler, diff --git a/src/react-env.d.ts b/src/react-env.d.ts new file mode 100644 index 0000000..a78678a --- /dev/null +++ b/src/react-env.d.ts @@ -0,0 +1,5 @@ +declare namespace React { + interface Attributes { + css?: string; + } +} diff --git a/src/shared-v4.ts b/src/shared-v4.ts new file mode 100644 index 0000000..6e78600 --- /dev/null +++ b/src/shared-v4.ts @@ -0,0 +1,55 @@ +import * as tailwind from "tailwindcss"; + +import type { ResolveTailwindOptions } from "./index"; + +declare const __PKG_NAME__: string; +export const pkgName = __PKG_NAME__; + +export const macroNames = [`${pkgName}/macro`, `${pkgName}/µ`]; +export const classedName = `${pkgName}/classed`; + +interface LineColumn { + line: number; + column: number; +} + +export interface SourceLocation { + filename: string; + start: LineColumn; + end: LineColumn; + text: string; +} + +export interface StyleMapEntry { + key: string; + classNames: string[]; + location: SourceLocation; +} + +export const tailwindDirectives = ["components", "utilities", "variants"] as const; + +export type StyleMap = Map; + +export function createPostCSS({ + tailwindConfig, + prefix, +}: Pick) { + return async (css: string) => { + const compiler = await tailwind.compile( + [prefix, '@config "tailwind.config.js";', css].filter(Boolean).join("\n"), + { + // eslint-disable-next-line @typescript-eslint/require-await + async loadModule(_id, base, resourceHint) { + if (resourceHint === "config") { + return { base, module: tailwindConfig }; + } + throw new Error(`The browser build does not support plugins or config files.`); + }, + } + ); + + return compiler.build([]).replace(/^\/\*![^*]*\*\/\n/, ""); + }; +} + +export type Compile = ReturnType; diff --git a/src/shared.ts b/src/shared.ts index 23d8d0c..5c4c60f 100644 --- a/src/shared.ts +++ b/src/shared.ts @@ -33,15 +33,13 @@ export type StyleMap = Map; export function createPostCSS({ tailwindConfig, - postCSSPlugins, prefix, -}: Pick) { +}: Pick) { const post = postcss([ tailwind({ ...tailwindConfig, content: [{ raw: "
", extension: "html" }], }), - ...postCSSPlugins, ]); return async (css: string) => { diff --git a/src/vite-plugin.ts b/src/vite-plugin.ts index 91ed68a..45748cf 100644 --- a/src/vite-plugin.ts +++ b/src/vite-plugin.ts @@ -1,6 +1,9 @@ import { dirname, join } from "node:path"; + import type * as vite from "vite"; + import { type Compile, type StyleMap, macroNames, pkgName } from "./shared"; + import type { BuildStyleFile } from "./index"; const ROLLUP_PREFIX = "\0tailwind:";