eslint-plugin-tailwind-variants 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,7 +5,9 @@
5
5
  <h1 align="center">eslint-plugin-tailwind-variants</h1>
6
6
 
7
7
  <div align="center">
8
- <img alt="GitHub License MIT" src="https://img.shields.io/github/license/domingasp/eslint-plugin-tailwind-variants?color=615fff"/>
8
+ <img alt="GitHub License" src="https://img.shields.io/github/license/domingasp/eslint-plugin-tailwind-variants?color=615fff" />
9
+ <img alt="NPM Version" src="https://img.shields.io/npm/v/eslint-plugin-tailwind-variants?color=615fff" />
10
+ <img alt="NPM Monthly Downloads" src="https://img.shields.io/npm/dm/eslint-plugin-tailwind-variants?color=615fff" />
9
11
  </div>
10
12
 
11
13
  <br />
@@ -47,8 +49,8 @@ export default defineConfig([
47
49
 
48
50
  ### Rules
49
51
 
50
- | Name | Description | `recommended` | autofix |
51
- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------------- | ------- |
52
- | [require-variants-call-styles-name](docs/rules/require-variants-call-styles-name.md) | enforce that the result of tailwind-variants ( `tv()` ) is assigned to a variable named `styles` (or a configurable name) | ✔ | ✔ |
53
- | [require-variants-suffix](docs/rules/require-variants-suffix.md) | require variables assigned from tv() to end with a specific suffix | ✔ | ✔ |
54
- | [limited-inline-classes](docs/rules/limited-inline-classes.md) | enforce limited number of inline class names and prohibit cn() usage | ✔ | |
52
+ | Name | Description | `recommended` | autofix |
53
+ | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ------- |
54
+ | [require-variants-call-styles-name](docs/rules/require-variants-call-styles-name.md) | enforce that when calling a function returned by tailwind-variants (`tv()`), the result is assigned to a variable named `styles` (or a configurable name) | ✔ | ✔ |
55
+ | [require-variants-suffix](docs/rules/require-variants-suffix.md) | require variables assigned from tv() to end with a specific suffix | ✔ | ✔ |
56
+ | [limited-inline-classes](docs/rules/limited-inline-classes.md) | enforce limited number of inline class names and prohibit cn() usage | ✔ | |
package/dist/index.d.ts CHANGED
@@ -1,28 +1,11 @@
1
- import { Linter } from "@typescript-eslint/utils/ts-eslint";
2
- declare const plugin: {
3
- configs: Record<string, Linter.Config>;
4
- meta: {
5
- name: string;
6
- namespace: string;
7
- version: string;
8
- };
9
- rules: {
10
- "limited-inline-classes": import("@typescript-eslint/utils/ts-eslint").RuleModule<"limitedInlineClasses" | "noCnInClassName", [{
11
- directoryPattern?: string;
12
- maxInlineClasses?: number;
13
- }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
14
- name: string;
15
- };
16
- "require-variants-call-styles-name": import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireVariantsCallStylesName", [{
17
- name?: string;
18
- }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
19
- name: string;
20
- };
21
- "require-variants-suffix": import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireVariantsSuffix", [{
22
- suffix?: string;
23
- }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
24
- name: string;
25
- };
26
- };
1
+ import { ESLint, Linter } from "eslint";
2
+ type PluginConfigs = {
3
+ recommended: Linter.Config;
27
4
  };
28
- export default plugin;
5
+ declare const plugin: ESLint.Plugin;
6
+ export declare const configs: PluginConfigs;
7
+ export { plugin };
8
+ declare const _default: ESLint.Plugin & {
9
+ configs: PluginConfigs;
10
+ };
11
+ export default _default;
package/dist/index.js CHANGED
@@ -1,24 +1,27 @@
1
+ import { name as packageName, version as packageVersion, } from "../package.json";
1
2
  import { rules } from "./rules/index.js";
3
+ const pluginName = "tailwind-variants";
2
4
  const plugin = {
3
- // Plugin type expects Config rather than ConfigType
4
- configs: {},
5
5
  meta: {
6
- name: "eslint-plugin-tailwind-variants",
7
- namespace: "tailwind-variants",
8
- version: "0.1.0",
6
+ name: packageName,
7
+ version: packageVersion,
9
8
  },
10
9
  rules,
11
10
  };
12
- Object.assign(plugin.configs, {
11
+ export const configs = {
13
12
  recommended: {
14
13
  plugins: {
15
- "eslint-plugin-tailwind-variants": plugin,
14
+ [pluginName]: plugin,
16
15
  },
17
16
  rules: {
18
- "tailwind-variants/limited-inline-classes": "error",
19
- "tailwind-variants/require-variants-call-styles-name": "error",
20
- "tailwind-variants/require-variants-suffix": "error",
17
+ [`${pluginName}/limited-inline-classes`]: "error",
18
+ [`${pluginName}/require-variants-call-styles-name`]: "error",
19
+ [`${pluginName}/require-variants-suffix`]: "error",
21
20
  },
22
21
  },
23
- });
24
- export default plugin;
22
+ };
23
+ export { plugin };
24
+ export default {
25
+ ...plugin,
26
+ configs,
27
+ };
@@ -1,19 +1,2 @@
1
- import { TSESLint } from "@typescript-eslint/utils";
2
- export declare const rules: {
3
- "limited-inline-classes": TSESLint.RuleModule<"limitedInlineClasses" | "noCnInClassName", [{
4
- directoryPattern?: string;
5
- maxInlineClasses?: number;
6
- }], unknown, TSESLint.RuleListener> & {
7
- name: string;
8
- };
9
- "require-variants-call-styles-name": TSESLint.RuleModule<"requireVariantsCallStylesName", [{
10
- name?: string;
11
- }], unknown, TSESLint.RuleListener> & {
12
- name: string;
13
- };
14
- "require-variants-suffix": TSESLint.RuleModule<"requireVariantsSuffix", [{
15
- suffix?: string;
16
- }], unknown, TSESLint.RuleListener> & {
17
- name: string;
18
- };
19
- };
1
+ import { ESLint } from "eslint";
2
+ export declare const rules: ESLint.Plugin["rules"];
@@ -5,4 +5,5 @@ export const rules = {
5
5
  "limited-inline-classes": limitedInlineClasses,
6
6
  "require-variants-call-styles-name": requireVariantsCallStylesName,
7
7
  "require-variants-suffix": requireVariantsSuffix,
8
+ // as unknown due to ESLint and TSESLint types not aligning perfectly
8
9
  };
@@ -7,11 +7,11 @@ export const rule = createRule({
7
7
  name: "require-variants-call-styles-name",
8
8
  meta: {
9
9
  docs: {
10
- description: "Require variables assigned from tv() to be named {{name}}.",
10
+ description: "Require variables assigned from calling a function returned by tv() to be named {{name}}.",
11
11
  },
12
12
  fixable: "code",
13
13
  messages: {
14
- requireVariantsCallStylesName: "Variable assigned from tv() must be named '{{name}}'.",
14
+ requireVariantsCallStylesName: "Require variables assigned from calling a function returned by tv() to be named {{name}}.",
15
15
  },
16
16
  schema: [
17
17
  {
@@ -49,19 +49,8 @@ export const rule = createRule({
49
49
  return;
50
50
  if (id.type !== "Identifier")
51
51
  return;
52
- // Always enforce required name for direct tv() assignment
52
+ // Track variant functions created by tv()
53
53
  if (init.callee.name === "tv") {
54
- if (id.name !== requiredName) {
55
- context.report({
56
- data: {
57
- functionName: "tv",
58
- name: requiredName,
59
- },
60
- fix: (fixer) => fixer.replaceText(id, requiredName),
61
- messageId: MESSAGE_IDS.requireVariantsCallStylesName,
62
- node: id,
63
- });
64
- }
65
54
  variantFunctions.add(id.name);
66
55
  return;
67
56
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-tailwind-variants",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "ESLint plugin for Tailwind Variants",
5
5
  "repository": {
6
6
  "type": "git",
@@ -38,9 +38,7 @@
38
38
  "node": ">=18"
39
39
  },
40
40
  "peerDependencies": {
41
- "@typescript-eslint/parser": ">8.0.0",
42
- "eslint": ">9.0.0",
43
- "vue-eslint-parser": "^9.4.0"
41
+ "eslint": ">9.0.0"
44
42
  },
45
43
  "dependencies": {
46
44
  "@typescript-eslint/utils": "^8.51.0"
@@ -50,7 +48,6 @@
50
48
  "@commitlint/config-conventional": "^20.3.0",
51
49
  "@eslint/js": "^9.39.2",
52
50
  "@types/node": "^25.0.3",
53
- "@typescript-eslint/parser": "^8.51.0",
54
51
  "@typescript-eslint/rule-tester": "^8.51.0",
55
52
  "eslint": "^9.39.2",
56
53
  "eslint-plugin-perfectionist": "^5.2.0",