🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

eslint-plugin-readable-tailwind

Package Overview
Dependencies
Maintainers
0
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-readable-tailwind - npm Package Compare versions

Comparing version

to
1.8.0

31

lib/cjs/rules/tailwind-multiline.js

@@ -345,6 +345,10 @@ "use strict";

collapse: {
// disallow collapsing if the literal contains expressions or variants, except preferSingleLine is enabled
if ((groupedClasses?.length !== 1 || literal.openingBraces || literal.closingBraces) && !preferSingleLine) {
// disallow collapsing if the literal contains variants, except preferSingleLine is enabled
if (groupedClasses?.length !== 1 && !preferSingleLine) {
break collapse;
}
// disallow collapsing for template literals with braces (expressions)
if (literal.type === "TemplateLiteral" && (literal.openingBraces || literal.closingBraces)) {
break collapse;
}
// disallow collapsing if the original literal was a single line (keeps original whitespace)

@@ -396,4 +400,8 @@ if (!literal.content.includes(getLineBreaks(lineBreakStyle))) {

// skip line wrapping if it is not necessary
skip: if (multilineClasses.length === 3) {
// disallow skipping for template literals with braces
skip: {
// disallow skipping if line count is not 3
if (multilineClasses.length !== 3) {
break skip;
}
// disallow skipping for template literals with braces (expressions)
if (literal.type === "TemplateLiteral" && (literal.openingBraces || literal.closingBraces)) {

@@ -449,5 +457,14 @@ break skip;

const preferSingleLine = options.preferSingleLine ?? false;
const classAttributes = options.classAttributes ?? readable_tailwind_options_default_options_js_1.DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ?? readable_tailwind_options_default_options_js_1.DEFAULT_CALLEE_NAMES;
const variables = options.variables ?? readable_tailwind_options_default_options_js_1.DEFAULT_VARIABLE_NAMES;
const classAttributes = options.classAttributes ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.classAttributes ??
ctx?.settings["readable-tailwind"]?.classAttributes ??
readable_tailwind_options_default_options_js_1.DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.callees ??
ctx?.settings["readable-tailwind"]?.callees ??
readable_tailwind_options_default_options_js_1.DEFAULT_CALLEE_NAMES;
const variables = options.variables ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.variables ??
ctx?.settings["readable-tailwind"]?.variables ??
readable_tailwind_options_default_options_js_1.DEFAULT_VARIABLE_NAMES;
const lineBreakStyle = options.lineBreakStyle ?? "unix";

@@ -454,0 +471,0 @@ return {

@@ -229,5 +229,14 @@ "use strict";

const options = ctx?.options[0] ?? {};
const classAttributes = options.classAttributes ?? readable_tailwind_options_default_options_js_1.DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ?? readable_tailwind_options_default_options_js_1.DEFAULT_CALLEE_NAMES;
const variables = options.variables ?? readable_tailwind_options_default_options_js_1.DEFAULT_VARIABLE_NAMES;
const classAttributes = options.classAttributes ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.classAttributes ??
ctx?.settings["readable-tailwind"]?.classAttributes ??
readable_tailwind_options_default_options_js_1.DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.callees ??
ctx?.settings["readable-tailwind"]?.callees ??
readable_tailwind_options_default_options_js_1.DEFAULT_CALLEE_NAMES;
const variables = options.variables ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.variables ??
ctx?.settings["readable-tailwind"]?.variables ??
readable_tailwind_options_default_options_js_1.DEFAULT_VARIABLE_NAMES;
return {

@@ -234,0 +243,0 @@ callees,

@@ -182,6 +182,15 @@ "use strict";

const options = ctx?.options[0] ?? {};
const classAttributes = options.classAttributes ?? readable_tailwind_options_default_options_js_1.DEFAULT_ATTRIBUTE_NAMES;
const allowMultiline = options.allowMultiline ?? true;
const callees = options.callees ?? readable_tailwind_options_default_options_js_1.DEFAULT_CALLEE_NAMES;
const variables = options.variables ?? readable_tailwind_options_default_options_js_1.DEFAULT_VARIABLE_NAMES;
const classAttributes = options.classAttributes ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.classAttributes ??
ctx?.settings["readable-tailwind"]?.classAttributes ??
readable_tailwind_options_default_options_js_1.DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.callees ??
ctx?.settings["readable-tailwind"]?.callees ??
readable_tailwind_options_default_options_js_1.DEFAULT_CALLEE_NAMES;
const variables = options.variables ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.variables ??
ctx?.settings["readable-tailwind"]?.variables ??
readable_tailwind_options_default_options_js_1.DEFAULT_VARIABLE_NAMES;
return {

@@ -188,0 +197,0 @@ allowMultiline,

@@ -11,19 +11,8 @@ import type { Rule } from "eslint";

export declare function getOptions(ctx?: Rule.RuleContext): {
callees: import("../types/rule.js").Callees | ([string, {
match: import("../types/rule.js").MatcherType.String;
}[]] | [string, {
match: import("../types/rule.js").MatcherType.ObjectKey;
}[]] | [string, {
match: import("../types/rule.js").MatcherType.ObjectValue;
pathPattern: string;
}[]])[];
classAttributes: import("../types/rule.js").ClassAttributes | (string | [string, ({
match: import("../types/rule.js").MatcherType.String;
} | {
match: import("../types/rule.js").MatcherType.ObjectKey;
})[]])[];
callees: any;
classAttributes: any;
order: "asc" | "desc" | "improved" | "official";
tailwindConfig: string | undefined;
variables: import("../types/rule.js").Variables;
variables: any;
};
//# sourceMappingURL=tailwind-sort-classes.d.ts.map

@@ -288,5 +288,14 @@ "use strict";

const order = options.order ?? "improved";
const classAttributes = options.classAttributes ?? readable_tailwind_options_default_options_js_1.DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ?? readable_tailwind_options_default_options_js_1.DEFAULT_CALLEE_NAMES;
const variables = options.variables ?? readable_tailwind_options_default_options_js_1.DEFAULT_VARIABLE_NAMES;
const classAttributes = options.classAttributes ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.classAttributes ??
ctx?.settings["readable-tailwind"]?.classAttributes ??
readable_tailwind_options_default_options_js_1.DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.callees ??
ctx?.settings["readable-tailwind"]?.callees ??
readable_tailwind_options_default_options_js_1.DEFAULT_CALLEE_NAMES;
const variables = options.variables ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.variables ??
ctx?.settings["readable-tailwind"]?.variables ??
readable_tailwind_options_default_options_js_1.DEFAULT_VARIABLE_NAMES;
const tailwindConfig = options.tailwindConfig;

@@ -293,0 +302,0 @@ return {

@@ -54,3 +54,4 @@ import type { Rule } from "eslint";

options?: Options;
settings?: Rule.RuleContext["settings"];
}
//# sourceMappingURL=rule.d.ts.map

@@ -342,6 +342,10 @@ import { DEFAULT_ATTRIBUTE_NAMES, DEFAULT_CALLEE_NAMES, DEFAULT_VARIABLE_NAMES } from "../options/default-options.js";

collapse: {
// disallow collapsing if the literal contains expressions or variants, except preferSingleLine is enabled
if ((groupedClasses?.length !== 1 || literal.openingBraces || literal.closingBraces) && !preferSingleLine) {
// disallow collapsing if the literal contains variants, except preferSingleLine is enabled
if (groupedClasses?.length !== 1 && !preferSingleLine) {
break collapse;
}
// disallow collapsing for template literals with braces (expressions)
if (literal.type === "TemplateLiteral" && (literal.openingBraces || literal.closingBraces)) {
break collapse;
}
// disallow collapsing if the original literal was a single line (keeps original whitespace)

@@ -393,4 +397,8 @@ if (!literal.content.includes(getLineBreaks(lineBreakStyle))) {

// skip line wrapping if it is not necessary
skip: if (multilineClasses.length === 3) {
// disallow skipping for template literals with braces
skip: {
// disallow skipping if line count is not 3
if (multilineClasses.length !== 3) {
break skip;
}
// disallow skipping for template literals with braces (expressions)
if (literal.type === "TemplateLiteral" && (literal.openingBraces || literal.closingBraces)) {

@@ -446,5 +454,14 @@ break skip;

const preferSingleLine = options.preferSingleLine ?? false;
const classAttributes = options.classAttributes ?? DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ?? DEFAULT_CALLEE_NAMES;
const variables = options.variables ?? DEFAULT_VARIABLE_NAMES;
const classAttributes = options.classAttributes ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.classAttributes ??
ctx?.settings["readable-tailwind"]?.classAttributes ??
DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.callees ??
ctx?.settings["readable-tailwind"]?.callees ??
DEFAULT_CALLEE_NAMES;
const variables = options.variables ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.variables ??
ctx?.settings["readable-tailwind"]?.variables ??
DEFAULT_VARIABLE_NAMES;
const lineBreakStyle = options.lineBreakStyle ?? "unix";

@@ -451,0 +468,0 @@ return {

@@ -226,5 +226,14 @@ import { DEFAULT_ATTRIBUTE_NAMES, DEFAULT_CALLEE_NAMES, DEFAULT_VARIABLE_NAMES } from "../options/default-options.js";

const options = ctx?.options[0] ?? {};
const classAttributes = options.classAttributes ?? DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ?? DEFAULT_CALLEE_NAMES;
const variables = options.variables ?? DEFAULT_VARIABLE_NAMES;
const classAttributes = options.classAttributes ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.classAttributes ??
ctx?.settings["readable-tailwind"]?.classAttributes ??
DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.callees ??
ctx?.settings["readable-tailwind"]?.callees ??
DEFAULT_CALLEE_NAMES;
const variables = options.variables ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.variables ??
ctx?.settings["readable-tailwind"]?.variables ??
DEFAULT_VARIABLE_NAMES;
return {

@@ -231,0 +240,0 @@ callees,

@@ -179,6 +179,15 @@ import { DEFAULT_ATTRIBUTE_NAMES, DEFAULT_CALLEE_NAMES, DEFAULT_VARIABLE_NAMES } from "../options/default-options.js";

const options = ctx?.options[0] ?? {};
const classAttributes = options.classAttributes ?? DEFAULT_ATTRIBUTE_NAMES;
const allowMultiline = options.allowMultiline ?? true;
const callees = options.callees ?? DEFAULT_CALLEE_NAMES;
const variables = options.variables ?? DEFAULT_VARIABLE_NAMES;
const classAttributes = options.classAttributes ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.classAttributes ??
ctx?.settings["readable-tailwind"]?.classAttributes ??
DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.callees ??
ctx?.settings["readable-tailwind"]?.callees ??
DEFAULT_CALLEE_NAMES;
const variables = options.variables ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.variables ??
ctx?.settings["readable-tailwind"]?.variables ??
DEFAULT_VARIABLE_NAMES;
return {

@@ -185,0 +194,0 @@ allowMultiline,

@@ -11,19 +11,8 @@ import type { Rule } from "eslint";

export declare function getOptions(ctx?: Rule.RuleContext): {
callees: import("../types/rule.js").Callees | ([string, {
match: import("../types/rule.js").MatcherType.String;
}[]] | [string, {
match: import("../types/rule.js").MatcherType.ObjectKey;
}[]] | [string, {
match: import("../types/rule.js").MatcherType.ObjectValue;
pathPattern: string;
}[]])[];
classAttributes: import("../types/rule.js").ClassAttributes | (string | [string, ({
match: import("../types/rule.js").MatcherType.String;
} | {
match: import("../types/rule.js").MatcherType.ObjectKey;
})[]])[];
callees: any;
classAttributes: any;
order: "asc" | "desc" | "improved" | "official";
tailwindConfig: string | undefined;
variables: import("../types/rule.js").Variables;
variables: any;
};
//# sourceMappingURL=tailwind-sort-classes.d.ts.map

@@ -258,5 +258,14 @@ import { resolve } from "node:path";

const order = options.order ?? "improved";
const classAttributes = options.classAttributes ?? DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ?? DEFAULT_CALLEE_NAMES;
const variables = options.variables ?? DEFAULT_VARIABLE_NAMES;
const classAttributes = options.classAttributes ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.classAttributes ??
ctx?.settings["readable-tailwind"]?.classAttributes ??
DEFAULT_ATTRIBUTE_NAMES;
const callees = options.callees ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.callees ??
ctx?.settings["readable-tailwind"]?.callees ??
DEFAULT_CALLEE_NAMES;
const variables = options.variables ??
ctx?.settings["eslint-plugin-readable-tailwind"]?.variables ??
ctx?.settings["readable-tailwind"]?.variables ??
DEFAULT_VARIABLE_NAMES;
const tailwindConfig = options.tailwindConfig;

@@ -263,0 +272,0 @@ return {

@@ -54,3 +54,4 @@ import type { Rule } from "eslint";

options?: Options;
settings?: Rule.RuleContext["settings"];
}
//# sourceMappingURL=rule.d.ts.map
{
"version": "1.7.0",
"version": "1.8.0",
"type": "module",

@@ -43,3 +43,3 @@ "name": "eslint-plugin-readable-tailwind",

"postrelease:beta": "npm run postrelease",
"postrelease:latest": "eslint --fix package.json && markdownlint-cli2 'CHANGELOG.md'",
"postrelease:latest": "eslint --fix package.json && markdownlint-cli2 --fix 'CHANGELOG.md'",
"prebuild": "npm run typecheck && npm run lint && npm run spellcheck",

@@ -72,11 +72,11 @@ "prerelease:alpha": "npm run test -- --run && npm run build",

"@html-eslint/parser": "^0.26.0",
"@schoero/configs": "^1.0.33",
"@types/eslint": "^9.6.0",
"@schoero/configs": "^1.1.1",
"@types/eslint": "^9.6.1",
"@types/estree-jsx": "^1.0.5",
"@types/node": "^22.2.0",
"@typescript-eslint/parser": "^8.1.0",
"@types/node": "^22.5.2",
"@typescript-eslint/parser": "^8.3.0",
"changelogen": "^0.5.5",
"cspell": "^8.13.3",
"cspell": "^8.14.2",
"es-html-parser": "^0.0.9",
"eslint": "^9.9.0",
"eslint": "^9.9.1",
"eslint-plugin-eslint-plugin": "^6.2.0",

@@ -87,3 +87,3 @@ "glob": "^11.0.0",

"proper-tags": "^2.0.2",
"svelte": "^4.2.18",
"svelte": "^4.2.19",
"svelte-eslint-parser": "^0.41.0",

@@ -90,0 +90,0 @@ "tailwindcss": "^3.4.10",

@@ -9,17 +9,52 @@ <div align="center">

---
<h1 align="center">readable-tailwind</h1>
<br/>
<br/>
<div align="center">
[![GitHub license](https://img.shields.io/github/license/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=454c5c&color=00AD51)](https://github.com/schoero/eslint-plugin-readable-tailwind/blob/main/LICENSE)
[![npm version](https://img.shields.io/npm/v/eslint-plugin-readable-tailwind?style=flat-square&labelColor=454c5c&color=00AD51)](https://www.npmjs.com/package/eslint-plugin-readable-tailwind?activeTab=versions)
[![GitHub issues](https://img.shields.io/github/issues/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=454c5c&color=00AD51)](https://github.com/schoero/eslint-plugin-readable-tailwind/issues)
[![npm weekly downloads](https://img.shields.io/npm/dw/eslint-plugin-readable-tailwind?style=flat-square&labelColor=454c5c&color=00AD51)](https://www.npmjs.com/package/eslint-plugin-readable-tailwind?activeTab=readme)
[![GitHub repo stars](https://img.shields.io/github/stars/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=454c5c&color=00AD51)](https://github.com/schoero/eslint-plugin-readable-tailwind/stargazers)
[![GitHub workflow status](https://img.shields.io/github/actions/workflow/status/schoero/eslint-plugin-readable-tailwind/ci.yml?event=push&style=flat-square&labelColor=454c5c&color=00AD51)](https://github.com/schoero/eslint-plugin-readable-tailwind/actions?query=workflow%3ACI)
<a alt="GitHub license" href="https://github.com/schoero/eslint-plugin-readable-tailwind/blob/main/LICENSE">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/license/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=32363B&color=ffffff">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/license/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
<img alt="eslint-plugin-readable-tailwind logo" src="https://img.shields.io/github/license/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
</picture>
</a>
<a alt="npm version" href="https://www.npmjs.com/package/eslint-plugin-readable-tailwind?activeTab=versions">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/v/eslint-plugin-readable-tailwind?style=flat-square&labelColor=32363B&color=ffffff">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/npm/v/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
<img alt="eslint-plugin-readable-tailwind logo" src="https://img.shields.io/npm/v/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2B&color=000000">
</picture>
</a>
<a alt="GitHub issues" href="https://github.com/schoero/eslint-plugin-readable-tailwind/issues">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/issues/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=32363B&color=ffffff">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/issues/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
<img alt="eslint-plugin-readable-tailwind logo" src="https://img.shields.io/github/issues/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
</picture>
</a>
<a alt="npm total downloads" href="https://www.npmjs.com/package/eslint-plugin-readable-tailwind?activeTab=readme">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/dt/eslint-plugin-readable-tailwind?style=flat-square&labelColor=32363B&color=ffffff">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/npm/dt/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
<img alt="eslint-plugin-readable-tailwind logo" src="https://img.shields.io/npm/dt/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
</picture>
</a>
<a alt="GitHub repo stars" href="https://github.com/schoero/eslint-plugin-readable-tailwind/stargazers">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/stars/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=32363B&color=ffffff">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/stars/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
<img alt="eslint-plugin-readable-tailwind logo" src="https://img.shields.io/github/stars/schoero/eslint-plugin-readable-tailwind?style=flat-square&labelColor=EBEEF2&color=000000">
</picture>
</a>
<a alt="GitHub workflow status" href="https://github.com/schoero/eslint-plugin-readable-tailwind/actions?query=workflow%3ACI">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/actions/workflow/status/schoero/eslint-plugin-readable-tailwind/ci.yml?event=push&style=flat-square&labelColor=32363B&color=ffffff">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/actions/workflow/status/schoero/eslint-plugin-readable-tailwind/ci.yml?event=push&style=flat-square&labelColor=EBEEF2&color=000000">
<img alt="eslint-plugin-readable-tailwind logo" src="https://img.shields.io/github/actions/workflow/status/schoero/eslint-plugin-readable-tailwind/ci.yml?event=push&style=flat-square&labelColor=EBEEF2&color=000000">
</picture>
</a>
</div>
---
<br/>

@@ -29,3 +64,3 @@ <br/>

ESLint plugin to automatically break up long tailwind class strings into multiple lines based on a specified print width or class count. This improves readability and eliminates horizontal scrolling.
It also sorts the classes logically, removes unnecessary whitespaces and groups the classes by their modifiers. It works in jsx, svelte, vue, and html files.
In addition it sorts the classes logically, removes unnecessary whitespaces and duplicate classes and groups the classes by their variants. It works in jsx, svelte, vue, and html files.

@@ -48,3 +83,3 @@ <br/>

<source media="(prefers-color-scheme: light)" srcset="./assets/sponsor-light.svg">
<img alt="eslint-plugin-readable-tailwind logo" src="./assets/sponsor-dark.svg">
<img alt="eslint-plugin-readable-tailwind logo" src="./assets/sponsor-light.svg">
</picture>

@@ -72,5 +107,4 @@ </a>

1. Check out the [Parsers](#parsers) section below to see how to configure the plugin for your specific flavor.
1. Follow the [Parsers](#parsers) section below to learn how to configure the plugin for your specific requirements.
1. Read the [Rules](#rules) section to learn about the available rules and how to configure them.
1. Read the [Utilities](#utilities) section to see which tailwind utilities are supported out of the box and how to extend the default configuration.
1. Configure your editor to conveniently [auto-fix on save](#auto-fix-on-save).

@@ -85,9 +119,9 @@

- [JavaScript](docs/parsers/javascript.md)
- [TypeScript](docs/parsers/typescript.md)
- [JSX](docs/parsers/jsx.md)
- [TSX](docs/parsers/tsx.md)
- [JSX (React, Solid.js, Qwik)](docs/parsers/jsx.md)
- [TSX (React, Solid.js, Qwik) with TypeScript support](docs/parsers/tsx.md)
- [Svelte](docs/parsers/svelte.md)
- [Vue](docs/parsers/vue.md)
- [HTML](docs/parsers/html.md)
- [Plain JavaScript](docs/parsers/javascript.md)
- [Plain TypeScript](docs/parsers/typescript.md)

@@ -99,2 +133,9 @@ <br/>

Two predefined configurations are available that contain the recommended rules:
- `error` - will throw an error if the rule is violated
- `warning` - will throw a warning if the rule is violated
The following table shows the available rules and if they are enabled by default in the different configurations:
| Name | Description | `error` | `warning` | autofix |

@@ -140,3 +181,3 @@ | :--- | :--- | :---: | :---: | :---: |

These rules are intended to automatically fix the tailwind classes. If you have installed the [VSCode ESLint plugin](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint), you can configure it to automatically fix the classes on save by adding the following options to your `.vscode/settings.json`:
All rules are intended to automatically fix the tailwind classes. If you have installed the [VSCode ESLint plugin](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint), you can configure it to automatically fix the classes on save by adding the following options to your `.vscode/settings.json`:

@@ -148,5 +189,3 @@ ```jsonc

"source.fixAll.eslint": "explicit"
},
// optional: if you want to use the new flat config format
"eslint.experimental.useFlatConfig": true
}
}

@@ -153,0 +192,0 @@ ```

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet