{"_id":"@poupe/eslint-plugin-tailwindcss","_rev":"14-e245dfdce7ee1681098c8ed6aae8afaa","name":"@poupe/eslint-plugin-tailwindcss","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.2":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.1.2","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.1.2","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"d803d711bbbd2f2202ea6565a665d6be6ea5e035","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.1.2.tgz","fileCount":21,"integrity":"sha512-tbeF+impmLHYG+BRI9UlJBFLTLh5tIvbD75pAth8+hFg+OkpFtEC8x2mFvIHTs0Dq1hO192JA6eV3D7H6Vxnww==","signatures":[{"sig":"MEYCIQDlsjVuxZWBsBtU31YTcLeGO3+YbcUmHV+7ZvsS7W3xMwIhAJ6V3lIU9BiWvWxHkXOl+L0Z4ODC9EmD9DoBlFypnI4w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101626},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rm -rf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/237e0f19df4f1a00c53839c88f36cb3e/poupe-eslint-plugin-tailwindcss-0.1.2.tgz","_integrity":"sha512-tbeF+impmLHYG+BRI9UlJBFLTLh5tIvbD75pAth8+hFg+OkpFtEC8x2mFvIHTs0Dq1hO192JA6eV3D7H6Vxnww==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.0.1","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.6","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.0.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.1.2_1751248159561_0.5232485942509462","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.1.3","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.1.3","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"45004af2dc51ccb6a054f5b0a3c03b945857a5bd","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.1.3.tgz","fileCount":21,"integrity":"sha512-aEnOzryptj2TGzg/3485PIGtUF1CckxS0s6oeSmw4jHzwAyEUMCRu0UPUg+R7t4VG0ae++C5d36ZthNRqZI8qA==","signatures":[{"sig":"MEQCIAKSN8umdklXLPDSHRRfMV7sjM655xOJBPOYYN2mlrXWAiB5Pq9LDEnVZqrl8muXCPCrgACCYnQcNcAQFZW7XIkCzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121158},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rm -rf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/e75933f762a0923043bb8dd39b358b39/poupe-eslint-plugin-tailwindcss-0.1.3.tgz","_integrity":"sha512-aEnOzryptj2TGzg/3485PIGtUF1CckxS0s6oeSmw4jHzwAyEUMCRu0UPUg+R7t4VG0ae++C5d36ZthNRqZI8qA==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.0.1","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.6","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.0.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.1.3_1751292959686_0.6829362895789353","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.1.4","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.1.4","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"b6bcb5e4b1f802968402a279050ccb18286a598d","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.1.4.tgz","fileCount":21,"integrity":"sha512-A4myg3RDnpOoMDorXwF+VFHZv7fhN7ZAqbOTfbkWs79JpG3Fg3u/8hjlZO+TWbKW5NQ9lJqNFCBhQyoisPiiqA==","signatures":[{"sig":"MEQCIFSdl2CEYfDgQpJt8WZKGqIg74Mq0gLU9zKMBtk07xy0AiAjqNx/GXQW5H6oLyY/0IqVSKK9kJ/YdTCmG1QGsNFa7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121348},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rm -rf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/7fd8b5a9e0fcbca728697bc6e6b53fb0/poupe-eslint-plugin-tailwindcss-0.1.4.tgz","_integrity":"sha512-A4myg3RDnpOoMDorXwF+VFHZv7fhN7ZAqbOTfbkWs79JpG3Fg3u/8hjlZO+TWbKW5NQ9lJqNFCBhQyoisPiiqA==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.0.1","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.6","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.0.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.1.4_1751296802510_0.20286883620386953","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.1.5","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.1.5","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"27be7cb3ac0fe67bff447e03a36199b1aa3d1fe6","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.1.5.tgz","fileCount":21,"integrity":"sha512-T6B/6pfB4ZYChGKJeKxJcslLW2Hb7XVKxc56/Ej5uhV5n/5L9fsM9LlUpg9RoTpmK10RcXLe/59ZauHdcQ02Mw==","signatures":[{"sig":"MEQCIH+CE4eOJUeTRVDCb56OkVUNs4/7oVOhvI8eaTS2t4uFAiBSD94WeDm/z0dmXs35akbeQqVgXcFAMZP406oG48x6BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129520},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.1.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rm -rf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/1dc0d509815ab4f616ecaa957c491660/poupe-eslint-plugin-tailwindcss-0.1.5.tgz","_integrity":"sha512-T6B/6pfB4ZYChGKJeKxJcslLW2Hb7XVKxc56/Ej5uhV5n/5L9fsM9LlUpg9RoTpmK10RcXLe/59ZauHdcQ02Mw==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.18.0","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.0.1","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.6","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.0.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.1.5_1751323334921_0.6030429022119232","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.2.0","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.2.0","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"a6927d7aa19fd7c6e8b3e4690be93465d4d86734","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.2.0.tgz","fileCount":21,"integrity":"sha512-oTqgE13eTrwz8xpXQhQdXoc/NEIDOPbbrvMR40m+/tzn9b5lMSmOONGByz8P5Hh2KirDUWMgZPUHc9TPgnbKHw==","signatures":[{"sig":"MEQCIGiJdxIqM2G75iJhnbil5MKPV+Da/gZk2fomKg2mGuvWAiBdEAbx9GFPmfRlQXoFbLvEEzy0M11f47oqmdxKZA/+uQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144659},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rm -rf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/ccf98af196fa5b629fc2f577659f0fb1/poupe-eslint-plugin-tailwindcss-0.2.0.tgz","_integrity":"sha512-oTqgE13eTrwz8xpXQhQdXoc/NEIDOPbbrvMR40m+/tzn9b5lMSmOONGByz8P5Hh2KirDUWMgZPUHc9TPgnbKHw==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/core":"^0.14.0","@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.30.0","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.5.0","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.6","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.2.0_1751401909783_0.7969374238371276","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.2.1","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.2.1","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"e41b348a3f53988c7f1b1e19f749f0819df1da62","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.2.1.tgz","fileCount":23,"integrity":"sha512-VlNI0tNAEnZULvE+9zljLJJ3F9KyOuS6Bg3tt5/sY/kBvfJILtMb56LlgEQumGu1oMzIg+mgngcKr2igg+mJ5g==","signatures":[{"sig":"MEUCIHWWGgqq6Kju2C8bgE/OOaTdu4o5A/pQbhoWyp0PpPhSAiEAypm8j4iu4vXH4KEojcYKtW6h1JJ0gQyz/Px2gCqUj5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236808},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rm -rf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/63c7fe3e4f62b280fb89137f60fba914/poupe-eslint-plugin-tailwindcss-0.2.1.tgz","_integrity":"sha512-VlNI0tNAEnZULvE+9zljLJJ3F9KyOuS6Bg3tt5/sY/kBvfJILtMb56LlgEQumGu1oMzIg+mgngcKr2igg+mJ5g==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/core":"^0.14.0","@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.30.0","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.5.0","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.6","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.2.1_1751412194874_0.27131928595600097","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.2.2","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.2.2","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"ad8051becd4e2c3b84fe84bb645f2c2daa305e8e","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.2.2.tgz","fileCount":23,"integrity":"sha512-JZq2Iue0UXkz2reeHsPqnRlpTIcK4rgr42TsGzps+q4LoQssYacViZAF1WdXjEi52taNV3fqExqmFmG3E3P2nw==","signatures":[{"sig":"MEUCIBppdomOtJu/HMsMbTtuJXYnpD92gsW6abOG0VWKQLRDAiEAkptS09m782uon4GzZbpF/w3RHB292TGOUYB3qdyWw40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237415},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.2.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.20.8","pnpm":">=10.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"cross-env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rimraf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/1cce148011caa851cbccfa2a73d4c306/poupe-eslint-plugin-tailwindcss-0.2.2.tgz","_integrity":"sha512-JZq2Iue0UXkz2reeHsPqnRlpTIcK4rgr42TsGzps+q4LoQssYacViZAF1WdXjEi52taNV3fqExqmFmG3E3P2nw==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/core":"^0.15.1","@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.30.0","rimraf":"^6.0.1","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.5.0","cross-env":"^7.0.3","pkg-pr-new":"^0.0.54","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.8","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.2.2_1751473140820_0.7054900986945578","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.2.3","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.2.3","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"18ff4f14e20f6a8e0f90a557a9bc27cefa1df791","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.2.3.tgz","fileCount":23,"integrity":"sha512-lJsYlfvflb3p//0ADQ0Awi6sYeUOU0zwbj5RaBMgjIJqpCaGlozYPqz4NBbZaBnKFbzWc0EofYRwHH8u/FPoHQ==","signatures":[{"sig":"MEUCIHKybjMB8T+6noqzF8svQq2hPtO7xffPrRcLAh40Ms18AiEA9/FLW0kOsCNcESjWEpmBBfRvarzISV2qKqb3Wk/mVg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246753},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.2.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.20.8","pnpm":">=10.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"cross-env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rimraf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/4a32bbd79844971e7b1b066019515024/poupe-eslint-plugin-tailwindcss-0.2.3.tgz","_integrity":"sha512-lJsYlfvflb3p//0ADQ0Awi6sYeUOU0zwbj5RaBMgjIJqpCaGlozYPqz4NBbZaBnKFbzWc0EofYRwHH8u/FPoHQ==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/core":"^0.15.1","@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.30.0","rimraf":"^6.0.1","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.5.0","cross-env":"^7.0.3","pkg-pr-new":"^0.0.54","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.9","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.2.3_1751478689100_0.03514371593755938","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.2.4","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.2.4","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"da6f9f53ccc3f9f7eba2a90dc5865b8155ea1757","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.2.4.tgz","fileCount":23,"integrity":"sha512-PkFJm1krxEzHxvGqnwXIDLWxtI7XypN3WLfpwoyRhwCroxByDP4UdKNTahiy0MNtLPNrJ/LIwOPJ4mE1cVFOpQ==","signatures":[{"sig":"MEUCIHdP7WCw+aCoWboSZmrLl+gyBd1xL++ncfxyM0lvH3F7AiEAidfRM2nXyZrEi62yY5D5DkF35lGBfK3dEco3iGGrLQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246829},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.2.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.20.8","pnpm":">=10.0.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"cross-env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rimraf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","actor":{"name":"mnemoc","type":"user","email":"amery@geeks.cl"},"email":"amery@geeks.cl"},"_resolved":"/tmp/f7622e2c38edcb38304e93976347874c/poupe-eslint-plugin-tailwindcss-0.2.4.tgz","_integrity":"sha512-PkFJm1krxEzHxvGqnwXIDLWxtI7XypN3WLfpwoyRhwCroxByDP4UdKNTahiy0MNtLPNrJ/LIwOPJ4mE1cVFOpQ==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.4.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@eslint/core":"^0.15.1","@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.30.0","rimraf":"^6.0.1","vitest":"^3.2.4","publint":"^0.3.12","unbuild":"^3.5.0","cross-env":"^7.0.3","pkg-pr-new":"^0.0.54","typescript":"~5.7.3","@eslint/css":"^0.9.0","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"^3.2.4","@poupe/eslint-config":"^0.7.9","eslint-plugin-perfectionist":"^4.15.0"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.2.4_1751486802665_0.2896815189683011","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.2.5","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.2.5","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"ec87623549555d0f7bb0d94c004aae56d2c89ac7","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.2.5.tgz","fileCount":23,"integrity":"sha512-fJZsh115zXh6c7PWUgYgaIxoL/cTY+6/z9W/uh1/SpABrMRYJ2ISREEy4lVEhrAwMjY5ln/K0jhgkK1SL0tZNw==","signatures":[{"sig":"MEUCIBvGTIosbcSO4S99xR6QHi/FeM5VrMOXTVktcdzaoDBSAiEA6tAROR94bcrUtaVZJ8k3IB+z9IsiDb2xqkUWmkJIjC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231661},"main":"./dist/index.cjs","type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.2.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">= 20.19.0","pnpm":">= 10.30.0"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs"},"./parser":{"import":"./dist/parser.mjs","require":"./dist/parser.cjs"},"./configs/*":{"import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"scripts":{"lint":"cross-env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rimraf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","email":"amery@geeks.cl"},"_resolved":"/tmp/4d76d13753959e0a8f5f79bd0269dacb/poupe-eslint-plugin-tailwindcss-0.2.5.tgz","_integrity":"sha512-fJZsh115zXh6c7PWUgYgaIxoL/cTY+6/z9W/uh1/SpABrMRYJ2ISREEy4lVEhrAwMjY5ln/K0jhgkK1SL0tZNw==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.10.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"@eslint/css":"~0.14.1","@eslint/core":"~0.17.0","@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.3","rimraf":"^6.1.3","vitest":"~4.0.18","publint":"^0.3.18","unbuild":"~3.6.1","cross-env":"~10.1.0","pkg-pr-new":"~0.0.65","typescript":"~5.9.3","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"~4.0.18","@poupe/eslint-config":"~0.8.0","eslint-plugin-perfectionist":"^4.15.1"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"~0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.2.5_1772658093312_0.6654778121162779","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.2.6","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.2.6","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"754b93489dca6b8e0a608789d871356bf6d2e97d","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.2.6.tgz","fileCount":20,"integrity":"sha512-uE8Z+5YX5rID+LwZdJaZUTuEAjcy7JGhaXi+Id7M/VtsIbReO9U8J10/0jSBPz2f7NPGV9Lz0FG+fN/QMgdwLg==","signatures":[{"sig":"MEYCIQCxsKBzVQ2+hauiPGdHdImxRLczurf30C/sP5P4/HLyOAIhAMQOutn+ulg1bfErAUXuqzU2d7BSgE1v5A6MalFS2hHX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142098},"type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.2.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">= 20.19.0","pnpm":">= 10.30.3"},"exports":{".":{"import":"./dist/index.mjs"},"./parser":{"import":"./dist/parser.mjs"},"./configs/*":{"import":"./dist/configs/*.mjs"}},"scripts":{"lint":"cross-env DEBUG=eslint:eslint eslint --fix .","test":"vitest run","build":"unbuild","clean":"rimraf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","postinstall":"[ -s dist/index.mjs ] || unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"mnemoc","email":"amery@geeks.cl"},"_resolved":"/tmp/598bf04cf8dbebf73a1e3f6b00ddf9ea/poupe-eslint-plugin-tailwindcss-0.2.6.tgz","_integrity":"sha512-uE8Z+5YX5rID+LwZdJaZUTuEAjcy7JGhaXi+Id7M/VtsIbReO9U8J10/0jSBPz2f7NPGV9Lz0FG+fN/QMgdwLg==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.10.0","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@eslint/css":"~0.14.1","@eslint/core":"~0.17.0","@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.3","rimraf":"^6.1.3","vitest":"~4.0.18","publint":"^0.3.18","unbuild":"~3.6.1","cross-env":"~10.1.0","pkg-pr-new":"~0.0.65","typescript":"~5.9.3","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@vitest/coverage-v8":"~4.0.18","@poupe/eslint-config":"~0.8.1","eslint-plugin-perfectionist":"^4.15.1"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"~0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.2.6_1772923781658_0.8177864579861416","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.2.7","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.2.7","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"4fea08dc8b0987f6d0d637b454025cb2a1036814","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.2.7.tgz","fileCount":20,"integrity":"sha512-F4745wWQ/zI0/t556lIZgl71opjaSxMFg1E41V2BhuhbE3yz3A8aEi4s26wl98F6HPbuyfSM5+WPOYWrHBucEQ==","signatures":[{"sig":"MEUCIQDRekN7wj5UAtDSwQnASa/Bst7xcx3JodRu38Ip3eMn0wIgM7K3xhv6hdxM/tBA6QJa7G3af7adehgdW9PGVC0iXGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@poupe%2feslint-plugin-tailwindcss@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142043},"type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.2.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">= 20.19.0","pnpm":">= 10.30.3"},"exports":{".":{"import":"./dist/index.mjs"},"./parser":{"import":"./dist/parser.mjs"},"./configs/*":{"import":"./dist/configs/*.mjs"}},"scripts":{"lint":"eslint --fix .","test":"vitest run","build":"unbuild","clean":"rimraf dist node_modules","publint":"publint","precommit":"run-s lint type-check test build","lint:check":"eslint .","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5f5ebee-a7fe-4de2-b747-67e8850354b2"}},"_resolved":"/tmp/fe30bafcee107a4864f19afed1a1fa4a/poupe-eslint-plugin-tailwindcss-0.2.7.tgz","_integrity":"sha512-F4745wWQ/zI0/t556lIZgl71opjaSxMFg1E41V2BhuhbE3yz3A8aEi4s26wl98F6HPbuyfSM5+WPOYWrHBucEQ==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.11.1","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@eslint/css":"~0.14.1","@eslint/core":"~0.17.0","@eslint/css-tree":"^3.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.3","rimraf":"^6.1.3","vitest":"~4.0.18","publint":"^0.3.18","unbuild":"~3.6.1","pkg-pr-new":"~0.0.65","typescript":"~5.9.3","@types/node":"^22.10.6","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@kagal/cross-test":"^0.1.2","@vitest/coverage-v8":"~4.0.18","@poupe/eslint-config":"~0.8.1","eslint-plugin-perfectionist":"^4.15.1"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"~0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.2.7_1773514899139_0.2183897049639989","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.3.0","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","_id":"@poupe/eslint-plugin-tailwindcss@0.3.0","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"dist":{"shasum":"4942aa623f8ebe366a57b9f1e878fc73f9e8b6ce","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.3.0.tgz","fileCount":18,"integrity":"sha512-vz319mxFMzeP//bAb7MLEQdfV9vOnmRs21BG4mRcHugyfw8Fnpj56JmAI/JUB4I03mSQNGnMrw6cVJqQcs5DqQ==","signatures":[{"sig":"MEUCIDQ3dzW7Z9iGA04jh/5YAfxFU5AGvEjpOG4OG8kYjFvyAiEApVX6pWeEyw9x1kZw8KhYJUMuKDnE88KgObRuDvoDfrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@poupe%2feslint-plugin-tailwindcss@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":153078},"type":"module","_from":"file:poupe-eslint-plugin-tailwindcss-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">= 20.19.0","pnpm":">= 10.30.3"},"exports":{".":{"import":"./dist/index.mjs"},"./parser":{"import":"./dist/parser.mjs"},"./configs":{"import":"./dist/configs.mjs"}},"scripts":{"lint":"eslint --fix .","test":"vitest run","build":"unbuild","clean":"rimraf dist node_modules","publint":"publint","precommit":"run-s build lint type-check test","lint:check":"eslint .","test:watch":"vitest watch","type-check":"tsc --noEmit","dev:prepare":"unbuild --stub","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5f5ebee-a7fe-4de2-b747-67e8850354b2"}},"_resolved":"/tmp/e86863c8e77a8f6ad68ca0deb2c3f28d/poupe-eslint-plugin-tailwindcss-0.3.0.tgz","_integrity":"sha512-vz319mxFMzeP//bAb7MLEQdfV9vOnmRs21BG4mRcHugyfw8Fnpj56JmAI/JUB4I03mSQNGnMrw6cVJqQcs5DqQ==","repository":{"url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git","type":"git"},"_npmVersion":"11.11.0","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"@eslint/css":"^1.1.0","@eslint/core":"^1.1.1","@eslint/css-tree":"^3.6.9","tailwind-csstree":"~0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","rimraf":"^6.1.3","vitest":"~4.1.0","publint":"^0.3.18","unbuild":"~3.6.1","pkg-pr-new":"~0.0.66","typescript":"~5.9.3","@types/node":"^22.19.15","npm-run-all2":"^8.0.4","@types/eslint":"^9.6.1","@kagal/cross-test":"~0.1.3","@vitest/coverage-v8":"~4.1.0","@poupe/eslint-config":"~0.9.0","eslint-plugin-perfectionist":"^4.15.1"},"peerDependencies":{"eslint":"^9.30.0","@eslint/css":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tailwindcss_0.3.0_1775511331010_0.8906707035572567","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@poupe/eslint-plugin-tailwindcss","version":"0.3.1","type":"module","description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","repository":{"type":"git","url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git"},"bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"sideEffects":false,"module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs"},"./configs":{"import":"./dist/configs.mjs"},"./parser":{"import":"./dist/parser.mjs"}},"dependencies":{"@eslint/core":"^1.1.1","@eslint/css":"^1.1.0","@eslint/css-tree":"^3.6.9","tailwind-csstree":"~0.3.0"},"devDependencies":{"@kagal/cross-test":"~0.1.3","@poupe/eslint-config":"~0.9.1","@types/eslint":"^9.6.1","@types/node":"^22.19.15","@vitest/coverage-v8":"~4.1.0","eslint":"^9.39.4","npm-run-all2":"^8.0.4","pkg-pr-new":"~0.0.66","publint":"^0.3.18","rimraf":"^6.1.3","typescript":"~5.9.3","unbuild":"~3.6.1","vitest":"~4.1.0"},"peerDependencies":{"@eslint/css":"^1.1.0","eslint":"^9.30.0"},"engines":{"node":">= 20.19.0","pnpm":">= 10.30.3"},"publishConfig":{"access":"public"},"scripts":{"build":"unbuild","clean":"rimraf dist node_modules","dev:prepare":"unbuild --stub","lint":"eslint --fix .","lint:check":"eslint .","precommit":"run-s build lint type-check test","publint":"publint","test":"vitest run","test:coverage":"vitest run --coverage","test:watch":"vitest watch","type-check":"tsc --noEmit"},"_id":"@poupe/eslint-plugin-tailwindcss@0.3.1","_integrity":"sha512-oThCvrhoWRenH5hxde7/QX89b9tJLeZbZo88RS7ahT/YdJORy0AvMvmMw2LCqP0gdrlK9P0PpG0Zaa2x6orNcA==","_resolved":"/tmp/007e99b2a2debe4f1ad84d860d9e966b/poupe-eslint-plugin-tailwindcss-0.3.1.tgz","_from":"file:poupe-eslint-plugin-tailwindcss-0.3.1.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-oThCvrhoWRenH5hxde7/QX89b9tJLeZbZo88RS7ahT/YdJORy0AvMvmMw2LCqP0gdrlK9P0PpG0Zaa2x6orNcA==","shasum":"79b44b06ce13b64a014c216fbdfd109db5db5d5b","tarball":"https://registry.npmjs.org/@poupe/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-0.3.1.tgz","fileCount":18,"unpackedSize":153032,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@poupe%2feslint-plugin-tailwindcss@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG8DHeMX2BcWo2LWvOBqKsdiODf7+JhvOR3grkydlDt2AiALnR7pksPbQPrH9V51XMu/r1fhmJilhKFS0PDuuLUtaQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5f5ebee-a7fe-4de2-b747-67e8850354b2"}},"directories":{},"maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-tailwindcss_0.3.1_1775576347995_0.49351118299791064"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-30T01:49:19.151Z","modified":"2026-04-07T15:39:08.543Z","0.1.2":"2025-06-30T01:49:19.754Z","0.1.3":"2025-06-30T14:15:59.903Z","0.1.4":"2025-06-30T15:20:02.717Z","0.1.5":"2025-06-30T22:42:15.112Z","0.2.0":"2025-07-01T20:31:49.955Z","0.2.1":"2025-07-01T23:23:15.103Z","0.2.2":"2025-07-02T16:19:01.153Z","0.2.3":"2025-07-02T17:51:29.264Z","0.2.4":"2025-07-02T20:06:42.868Z","0.2.5":"2026-03-04T21:01:33.536Z","0.2.6":"2026-03-07T22:49:41.796Z","0.2.7":"2026-03-14T19:01:39.269Z","0.3.0":"2026-04-06T21:35:31.164Z","0.3.1":"2026-04-07T15:39:08.233Z"},"bugs":{"url":"https://github.com/poupe-ui/eslint-plugin-tailwindcss/issues"},"author":{"name":"Alejandro Mery","email":"amery@apptly.co"},"license":"MIT","homepage":"https://github.com/poupe-ui/eslint-plugin-tailwindcss#readme","keywords":["eslint","eslintplugin","eslint-plugin","tailwind","tailwindcss","tailwind-css","css","linting"],"repository":{"type":"git","url":"git+https://github.com/poupe-ui/eslint-plugin-tailwindcss.git"},"description":"ESLint plugin for Tailwind CSS v4 with advanced linting rules","maintainers":[{"name":"mnemoc","email":"amery@geeks.cl"}],"readme":"# @poupe/eslint-plugin-tailwindcss\n\nESLint plugin for Tailwind CSS v4 with advanced linting rules.\n\n## Features\n\n- 🎯 **Tailwind CSS v4 Support** - Full support for the latest Tailwind syntax\n- 🔍 **Smart Validation** - Validates directives, modifiers, and utility classes\n- 🚀 **Auto-fixable Rules** - Many rules can automatically fix issues\n- 📦 **Preset Configurations** - Ready-to-use configs for different strictness levels\n- 🎨 **Theme-aware** - Encourages consistent use of design tokens\n- ⚡ **Performance** - Optimized for large codebases\n\n## Requirements\n\n- ESLint 9.30.0 or higher\n- Node.js 20.19.0 or higher\n- Flat config format (eslint.config.js)\n\n## Installation\n\n```bash\n# pnpm\npnpm add -D @poupe/eslint-plugin-tailwindcss\n\n# npm\nnpm install -D @poupe/eslint-plugin-tailwindcss\n\n# yarn\nyarn add -D @poupe/eslint-plugin-tailwindcss\n```\n\n**Note:** The plugin registers its own `tailwindcss/css` language\n(built on `@eslint/css`). If you also want `css/*` rules from\n`@eslint/css`, import that plugin separately in your config\nor use [`@poupe/eslint-config`][eslint-config].\n\n## Usage\n\n### Basic Setup\n\nCreate an `eslint.config.mjs` file:\n\n```js\n// @ts-check\nimport tailwindcss from '@poupe/eslint-plugin-tailwindcss';\n\nexport default [\n  tailwindcss.configs.recommended,\n];\n```\n\nEach preset config includes file globs (`**/*.?(post)css`),\n`tailwindcss/css` language with Tailwind v4 syntax, and the plugin\nself-reference.\n\n### Overriding Rules\n\nOverride specific rules after a preset:\n\n```js\n// @ts-check\nimport tailwindcss from '@poupe/eslint-plugin-tailwindcss';\n\nexport default [\n  tailwindcss.configs.recommended,\n  {\n    rules: {\n      'tailwindcss/no-arbitrary-value-overuse': 'error',\n    },\n  },\n];\n```\n\n## Available Configurations\n\n### `base`\n\nSetup-only config with no rules. Provides file globs (`**/*.?(post)css`),\n`tailwindcss/css` language, tolerant parsing, Tailwind v4 custom syntax,\nand the plugin self-reference. All other presets extend `base`.\n\n### `minimal`\n\nBasic syntax validation only. Good for existing projects.\n\n- ✅ `valid-theme-function`\n- ✅ `valid-modifier-syntax`\n- ✅ `valid-apply-directive`\n- ✅ `no-invalid-at-rules`\n- ✅ `no-invalid-named-grid-areas`\n- ✅ `no-invalid-properties`\n- ✅ `no-duplicate-imports`\n- ✅ `no-duplicate-reference`\n- ✅ `no-empty-blocks`\n- ✅ `no-important`\n- ✅ `require-reference-in-vue`\n- ✅ `use-baseline`\n\n### `recommended` (Default)\n\nBalanced set of rules for most projects.\n\n- ✅ All rules from `minimal` (`no-important` relaxed to warning)\n- ✅ `no-conflicting-utilities`\n- ⚠️ `no-arbitrary-value-overuse` (warning)\n- ⚠️ `prefer-theme-tokens` (warning)\n\n### `strict`\n\nAll rules enabled with strict settings. Best for new projects.\n\n- ✅ All rules as errors\n- ✅ Strictest configuration options\n- ✅ Includes additional rules (consistent spacing, logical properties,\n  relative units, layers)\n\n### Complete Example\n\nHere's a comprehensive `eslint.config.mjs` with TypeScript support:\n\n```js\n// @ts-check\nimport js from '@eslint/js';\nimport tseslint from 'typescript-eslint';\nimport tailwindcss from '@poupe/eslint-plugin-tailwindcss';\n\nexport default [\n  js.configs.recommended,\n  ...tseslint.configs.recommended,\n  tailwindcss.configs.recommended,\n];\n```\n\n## Rules\n\n<!-- begin auto-generated rules list -->\n\n### Possible Errors (Implemented)\n\nRules that catch potential bugs or invalid syntax.\n\n| Rule | Description | 🔧 |\n| :--- | :--- | :--- |\n| [no-conflicting-utilities](./docs/rules/no-conflicting-utilities.md) | Detects conflicting Tailwind utilities that affect the same CSS properties | |\n| [no-duplicate-imports](./docs/rules/no-duplicate-imports.md) | Disallow duplicate @import rules | |\n| [no-duplicate-reference](./docs/rules/no-duplicate-reference.md) | Disallow duplicate @reference directives | |\n| [no-empty-blocks](./docs/rules/no-empty-blocks.md) | Disallow empty rule blocks and at-rule blocks | |\n| [no-invalid-at-rules](./docs/rules/no-invalid-at-rules.md) | Disallow invalid at-rule names and syntax | |\n| [no-invalid-named-grid-areas](./docs/rules/no-invalid-named-grid-areas.md) | Disallow invalid named grid areas in CSS Grid templates | |\n| [no-invalid-properties](./docs/rules/no-invalid-properties.md) | Disallow invalid CSS property names | |\n| [require-reference-in-vue](./docs/rules/require-reference-in-vue.md) | Require @reference directive in Vue SFC style blocks | 🔧 |\n| [use-baseline](./docs/rules/use-baseline.md) | Enforce use of widely-supported CSS features | |\n| [valid-apply-directive](./docs/rules/valid-apply-directive.md) | Validates the `@apply` directive usage | |\n| [valid-modifier-syntax](./docs/rules/valid-modifier-syntax.md) | Ensures Tailwind modifiers follow correct syntax patterns | |\n| [valid-theme-function](./docs/rules/valid-theme-function.md) | Validates usage of the `theme()` function in CSS files | 🔧 |\n\n### Best Practices (Implemented)\n\nRules that guide towards better code patterns and maintainability.\n\n| Rule | Description | 🔧 |\n| :--- | :--- | :--- |\n| [no-arbitrary-value-overuse](./docs/rules/no-arbitrary-value-overuse.md) | Warns when too many arbitrary values are used instead of theme tokens | |\n| [no-important](./docs/rules/no-important.md) | Discourage use of !important | |\n| [prefer-logical-properties](./docs/rules/prefer-logical-properties.md) | Enforce the use of logical properties over physical properties | 🔧 |\n| [prefer-theme-tokens](./docs/rules/prefer-theme-tokens.md) | Suggests using theme tokens instead of hard-coded values | |\n| [relative-font-units](./docs/rules/relative-font-units.md) | Prefer relative units (rem/em) over absolute (px) for fonts | |\n| [use-layers](./docs/rules/use-layers.md) | Encourage use of @layer for better CSS architecture | |\n\n### Stylistic Issues (Implemented)\n\nRules that enforce code style and formatting conventions.\n\n| Rule | Description | 🔧 |\n| :--- | :--- | :--- |\n| [consistent-spacing](./docs/rules/consistent-spacing.md) | Enforces consistent spacing around colons in CSS declarations | 🔧 |\n\n<!-- end auto-generated rules list -->\n\n🔧 = Automatically fixable\n\n### Unimplemented Rules (Roadmap)\n\n#### Possible Errors (Planned)\n\n##### Core CSS Validation (Additional)\n\nRules that catch general CSS syntax errors and invalid constructs.\n\n| Rule | Description | 🔧 | Status |\n| :--- | :--- | :--- | :--- |\n| no-unknown-pseudo-class | Detect invalid pseudo-classes | | Planned |\n| no-unknown-pseudo-element | Detect invalid pseudo-elements | | Planned |\n\n#### Best Practices (Planned)\n\n##### Tailwind v4 Compatibility\n\nRules specific to Tailwind CSS version management and migration.\n\n| Rule | Description | 🔧 | Status |\n| :--- | :--- | :--- | :--- |\n| version-compatibility | Enforce compatibility with specific Tailwind CSS versions | | Planned |\n| deprecated-features | Warn about deprecated Tailwind features | | Planned |\n| migrate-imports | Convert Tailwind v3 imports to v4 syntax | 🔧 | Priority |\n| migrate-directives | Update deprecated Tailwind directives | 🔧 | Priority |\n| migrate-config-to-css | Guide migration from JS config to CSS @theme | | Planned |\n| migrate-arbitrary-values | Update arbitrary value syntax between versions | 🔧 | Planned |\n\n##### Code Quality\n\nRules that enforce documentation and maintainability.\n\n| Rule | Description | 🔧 | Status |\n| :--- | :--- | :--- | :--- |\n| comment-word-disallowed-list | Disallow specified words in comments | | Considering |\n| require-description-comments | Require explanatory comments for complex selectors | | Considering |\n| tailwind-comment-directives | Validate Tailwind-specific comment directives | 🔧 | Considering |\n\n#### Stylistic Issues (Planned)\n\n##### CSS Formatting (@eslint/css parity)\n\nGeneral CSS formatting rules.\n\n| Rule | Description | 🔧 | Status |\n| :--- | :--- | :--- | :--- |\n| indent | Enforce consistent indentation | 🔧 | Planned |\n| brace-style | Enforce consistent brace placement | 🔧 | Planned |\n| block-spacing | Enforce consistent spacing inside blocks | 🔧 | Planned |\n| declaration-block-newline | Enforce line breaks within declaration blocks | 🔧 | Planned |\n| rule-empty-line-before | Require or disallow empty lines before rules | 🔧 | Planned |\n| property-sort-order | Enforce consistent property declaration order | 🔧 | Planned |\n| at-rule-formatting | Format at-rules consistently | 🔧 | Planned |\n| no-unnecessary-whitespace | Disallow unnecessary whitespace | 🔧 | Planned |\n| property-formatting | Format property declarations consistently | 🔧 | Planned |\n| selector-formatting | Format selectors consistently | 🔧 | Planned |\n| value-formatting | Format property values consistently | 🔧 | Planned |\n| media-query-formatting | Format media queries consistently | 🔧 | Planned |\n\n##### Tailwind-Specific Formatting\n\nRules for Tailwind CSS v4 specific constructs.\n\n| Rule | Description | 🔧 | Status |\n| :--- | :--- | :--- | :--- |\n| at-apply-formatting | Format @apply directives consistently | 🔧 | Planned |\n| theme-formatting | Format @theme blocks consistently | 🔧 | Planned |\n| enforce-class-order | Enforce consistent Tailwind utility class ordering | 🔧 | Priority |\n\n##### Comment Formatting\n\nRules for consistent comment styles.\n\n| Rule | Description | 🔧 | Status |\n| :--- | :--- | :--- | :--- |\n| comment-formatting | Format comments consistently | 🔧 | Considering |\n| comment-style | Enforce consistent comment syntax | 🔧 | Considering |\n| comment-empty-line-before | Require or disallow empty lines before comments | 🔧 | Considering |\n| comment-capitalization | Enforce consistent comment capitalization | 🔧 | Considering |\n| comment-length | Enforce maximum comment line length | 🔧 | Considering |\n\n**Status Legend:**\n\n- **Priority**: High priority, will be implemented next\n- **Planned**: Scheduled for implementation\n- **Considering**: Under consideration, may be implemented\n\n## Advanced Features\n\n### Custom Syntax Support\n\nThis plugin extends @eslint/css with Tailwind CSS v4 syntax support:\n\n- ✅ **Directives**: `@theme`, `@import`, `@apply`, `@plugin`, `@utility`,\n  `@variant`, `@custom-variant`, `@source`, `@config`, `@reference`,\n  `@tailwind` (v3 legacy)\n- ✅ **Functions**: `theme()`\n- ✅ **Arbitrary Values**: `[value]` syntax\n- ✅ **Modifiers**: `hover:`, `focus:`, `sm:`, `lg:`, `inert:`, `target:`,\n  `open:`, `starting:`, `popover-open:`, `not-*:`, `in-*:`, `[&:state]:`\n- ✅ **Stacked Variants**: `dark:hover:text-white`\n- ✅ **Custom Variants**: Created with `@custom-variant`\n\n### TypeScript Support\n\nFull TypeScript support with exported types:\n\n```ts\nimport type { TailwindcssRules } from '@poupe/eslint-plugin-tailwindcss';\n```\n\n### Parser API\n\nThe plugin exports a parser API for advanced use cases and custom rule development:\n\n```ts\nimport {\n  // CSS context utilities\n  getCSSContext,\n  isCSSContext,\n  type CSSContextInfo,\n  type CSSRuleContext,\n\n  // CSS types from @eslint/css\n  CSSSourceCode,\n  type CSSLanguageOptions,\n\n  // Tailwind v4 syntax configuration\n  tailwindV4Syntax,\n} from '@poupe/eslint-plugin-tailwindcss/parser';\n```\n\n#### CSS Context Utilities\n\n##### `getCSSContext(context)`\n\nValidates whether an ESLint rule context is processing CSS content (including\nVue SFC `<style>` blocks).\n\n```ts\nexport function getCSSContext<T extends RuleContextTypeOptions>(\n  context: RuleContext<T>,\n): CSSContextInfo | undefined\n```\n\nReturns `CSSContextInfo` if the context contains CSS content, or `undefined` otherwise.\n\n##### `isCSSContext(context)`\n\nQuick check if a context contains CSS content.\n\n```ts\nexport function isCSSContext(context: unknown): boolean\n```\n\n##### `CSSContextInfo`\n\nInformation about CSS context:\n\n```ts\ninterface CSSContextInfo {\n  contextType: 'css-file' | 'vue-style'   // Type of CSS context\n  isVueFile: boolean                       // Whether it's a Vue SFC\n  sourceCode: unknown                      // The source code object\n  context: CSSRuleContext                  // Properly typed CSS rule context\n  getCSSSourceCode(): CSSSourceCode | undefined // Get CSSSourceCode instance\n}\n```\n\n#### Example: Custom Rule Using Parser API\n\n```ts\nimport { getCSSContext } from '@poupe/eslint-plugin-tailwindcss/parser';\n\nexport const myCustomRule = {\n  meta: { /* ... */ },\n  create(context) {\n    // Check if we're in CSS context\n    const cssInfo = getCSSContext(context);\n    if (!cssInfo) {\n      return {}; // Not CSS content\n    }\n\n    // Now we have properly typed CSS context\n    const { context: cssContext, getCSSSourceCode } = cssInfo;\n\n    // Check if we have a CSSSourceCode instance\n    const cssSourceCode = getCSSSourceCode();\n    if (cssSourceCode) {\n      // Can use CSSSourceCode-specific APIs\n    }\n\n    return {\n      StyleSheet(node) {\n        // Rule implementation with typed context\n        cssContext.report({\n          node,\n          message: 'Example error'\n        });\n      }\n    };\n  }\n};\n```\n\n#### CSS Types from @eslint/css\n\n##### `CSSSourceCode`\n\nThe `CSSSourceCode` class from @eslint/css provides methods for working with CSS\nsource code:\n\n```ts\nconst cssSourceCode = cssInfo.getCSSSourceCode();\nif (cssSourceCode) {\n  // Access CSS-specific source code methods\n  const text = cssSourceCode.getText(node);\n  const lines = cssSourceCode.getLines();\n}\n```\n\n##### `CSSLanguageOptions`\n\nType definition for CSS language configuration options from @eslint/css:\n\n```ts\ninterface CSSLanguageOptions {\n  tolerant?: boolean;\n  customSyntax?: Partial<SyntaxConfig> | SyntaxExtensionCallback;\n}\n```\n\n#### Tailwind v4 Syntax Configuration\n\nThe `tailwindV4Syntax` export is a `SyntaxExtensionCallback` that wraps\n[`tailwind-csstree`][tailwind-csstree]'s `tailwind4` callback and adds\n`@tailwind` for v3 legacy compatibility:\n\n```ts\nimport { tailwindV4Syntax } from '@poupe/eslint-plugin-tailwindcss/parser';\n\n// Use in a custom ESLint config:\n{\n  languageOptions: {\n    customSyntax: tailwindV4Syntax,\n  },\n}\n```\n\nThis can be used when extending @eslint/css parsers or creating custom CSS\nlinting tools.\n\n## Configuration Examples\n\n### With TypeScript\n\n```js\n// eslint.config.mjs\nimport tailwindcss from '@poupe/eslint-plugin-tailwindcss';\nimport tseslint from 'typescript-eslint';\n\nexport default [\n  ...tseslint.configs.recommended,\n  tailwindcss.configs.recommended,\n];\n```\n\n### Vue.js Project\n\n```js\n// eslint.config.mjs\nimport tailwindcss from '@poupe/eslint-plugin-tailwindcss';\nimport vue from 'eslint-plugin-vue';\n\nexport default [\n  ...vue.configs['flat/recommended'],\n  tailwindcss.configs.recommended,\n];\n```\n\n### With PostCSS\n\nThe preset file glob (`**/*.?(post)css`) covers `.css` and `.postcss`\nfiles. No additional configuration is needed:\n\n```js\n// @ts-check\n// eslint.config.mjs\nimport tailwindcss from '@poupe/eslint-plugin-tailwindcss';\n\nexport default [\n  tailwindcss.configs.strict,\n];\n```\n\n### With @eslint/css\n\nUse both plugins to get `css/*` rules alongside `tailwindcss/*` rules.\nThe Tailwind preset is self-contained; `@eslint/css` needs its own\nconfig entry with plugin registration and language:\n\n```js\n// eslint.config.mjs\nimport css from '@eslint/css';\nimport tailwindcss from '@poupe/eslint-plugin-tailwindcss';\n\nexport default [\n  // @eslint/css — general CSS rules (css/css language)\n  {\n    files: ['**/*.css'],\n    plugins: { css },\n    language: 'css/css',\n    rules: {\n      ...css.configs.recommended.rules,\n      // Tailwind directives are valid — handled by tailwindcss/css\n      'css/no-invalid-at-rules': 'off',\n    },\n  },\n  // Tailwind CSS — Tailwind-specific rules (tailwindcss/css language)\n  tailwindcss.configs.recommended,\n];\n```\n\n## Troubleshooting\n\n### ESLint can't find the plugin\n\nMake sure you're using ESLint flat config format (ESLint 9+):\n\n```js\n// @ts-check\n// ✅ Correct - eslint.config.mjs (ESM format)\nexport default [\n  tailwindcss.configs.recommended,\n];\n\n// ❌ Wrong - .eslintrc.js (legacy format)\nmodule.exports = {\n  extends: ['@poupe/eslint-plugin-tailwindcss'],\n};\n```\n\n### Rules not applying to CSS files\n\nUse a preset config directly — it already targets `**/*.?(post)css`:\n\n```js\nexport default [\n  tailwindcss.configs.recommended,\n];\n```\n\n## Contributing\n\nContributions are welcome! Please read our\n[contributing guidelines](CONTRIBUTING.md) first.\n\n### Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Run tests\npnpm test\n\n# Run tests in watch mode\npnpm test:watch\n\n# Run tests with coverage\npnpm test:coverage\n\n# Build\npnpm build\n\n# Lint and auto-fix\npnpm lint\n\n# Type checking\npnpm type-check\n\n# Run all pre-commit checks\npnpm precommit\n```\n\n### Testing\n\nTests are written using Vitest and ESLint's RuleTester. Each rule should have\ncomprehensive test coverage including:\n\n- Valid code examples\n- Invalid code examples with expected errors\n- Auto-fix scenarios (where applicable)\n- Edge cases and CSS parsing quirks\n\nExample test structure:\n\n```js\nimport { RuleTester } from 'eslint';\nimport css from '@eslint/css';\nimport { ruleName } from '../../rules/rule-name';\n\nconst ruleTester = new RuleTester({\n  language: 'css/css',\n  plugins: { css },\n});\n\ndescribe('rule-name', () => {\n  ruleTester.run('tailwindcss/rule-name', ruleName, {\n    valid: [\n      // Valid test cases\n    ],\n    invalid: [\n      // Invalid test cases with expected errors\n    ],\n  });\n});\n```\n\n## License\n\nMIT © [Apptly Software Ltd][poupe-ui]\n\n[eslint-config]: https://github.com/poupe-ui/eslint-config\n[poupe-ui]: https://github.com/poupe-ui\n[tailwind-csstree]: https://github.com/humanwhocodes/tailwind-csstree\n","readmeFilename":"README.md"}