@airframeui/eslint-plugin 0.3.1 → 0.3.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 +43 -41
- package/dist/class-catalog.d.ts.map +1 -1
- package/dist/class-catalog.js +2 -2
- package/dist/class-catalog.js.map +1 -1
- package/dist/data.json +13 -4
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
ESLint rules that keep markup on [Airframe](https://airframeui.com): leftover Tailwind/Bootstrap utilities, unknown `af-*` names, redundant defaults, layout recipes, and field-error ARIA.
|
|
4
4
|
|
|
5
|
-
Same version as `@airframeui/core`. Docs: [airframeui.com/docs/eslint-plugin](https://airframeui.com/docs/eslint-plugin)
|
|
5
|
+
Same version as `@airframeui/core`. Docs: [airframeui.com/docs/eslint-plugin](https://airframeui.com/docs/eslint-plugin) · [Changelog](https://airframeui.com/docs/changelog)
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -20,9 +20,7 @@ Requires ESLint 9+ (flat config) or ESLint 8.57+ with eslintrc. Core and tokens
|
|
|
20
20
|
// eslint.config.js
|
|
21
21
|
import airframe from '@airframeui/eslint-plugin';
|
|
22
22
|
|
|
23
|
-
export default [
|
|
24
|
-
airframe.configs['flat/recommended'],
|
|
25
|
-
];
|
|
23
|
+
export default [airframe.configs['flat/recommended']];
|
|
26
24
|
```
|
|
27
25
|
|
|
28
26
|
Drop `airframe.configs['flat/recommended']` into an existing `export default [ ... ]` array. It enables JSX parsing and matches `.js`, `.jsx`, `.ts`, and `.tsx` (ESLint does not lint `.jsx` / `.ts` unless `files` says so).
|
|
@@ -54,15 +52,15 @@ module.exports = {
|
|
|
54
52
|
|
|
55
53
|
All seven rules ship in `recommended`. They only inspect **string literals** on `class` / `className` in JSX. Existing `af-*` tokens are ignored by the Tailwind and Bootstrap detectors.
|
|
56
54
|
|
|
57
|
-
| Rule
|
|
58
|
-
|
|
|
59
|
-
| `@airframeui/no-bootstrap-classes`
|
|
60
|
-
| `@airframeui/no-redundant-defaults`
|
|
61
|
-
| `@airframeui/no-redundant-width`
|
|
62
|
-
| `@airframeui/no-tailwind-classes`
|
|
63
|
-
| `@airframeui/no-unknown-airframe-class`
|
|
64
|
-
| `@airframeui/prefer-airframe-layout-recipes` | `warn`
|
|
65
|
-
| `@airframeui/require-field-error-aria`
|
|
55
|
+
| Rule | Recommended | Autofix | What it does |
|
|
56
|
+
| -------------------------------------------- | ----------- | ------- | -------------------------------------------------------------------------------------------- |
|
|
57
|
+
| `@airframeui/no-bootstrap-classes` | `warn` | no | Leftover Bootstrap 5 tokens (`btn`, `row`, `col-*`, `d-flex`, …) |
|
|
58
|
+
| `@airframeui/no-redundant-defaults` | `warn` | yes | Restated defaults: `af-card af-stack`, `af-container af-container-xl`, matching `af-text-h*` |
|
|
59
|
+
| `@airframeui/no-redundant-width` | `warn` | yes | `af-w-full` on form controls; `af-block` on `af-btn` |
|
|
60
|
+
| `@airframeui/no-tailwind-classes` | `warn` | no | Leftover Tailwind utilities (`flex`, `gap-4`, `md:gap-4`, `bg-blue-600`, …) |
|
|
61
|
+
| `@airframeui/no-unknown-airframe-class` | `error` | yes\* | Invented `af-*` names. Autofix for known aliases and catalog heuristics |
|
|
62
|
+
| `@airframeui/prefer-airframe-layout-recipes` | `warn` | yes | Rewrites `flex flex-col`, `grid grid-cols-*`, `row`, `container`, … |
|
|
63
|
+
| `@airframeui/require-field-error-aria` | `error` | no | `af-field__error` needs `id`; error inputs need `aria-describedby` |
|
|
66
64
|
|
|
67
65
|
## Autofix
|
|
68
66
|
|
|
@@ -84,40 +82,41 @@ Autofix only runs when the replacement is deterministic: known aliases, catalog
|
|
|
84
82
|
|
|
85
83
|
Gap numbers map to the Airframe named scale (`0` · `xs` · `sm` · `md` · `lg` · `xl` · `2xl` · `3xl` · `4xl`). Default `md` (`gap-3` / `g-3`) is omitted because `af-stack` / `af-grid` already use it.
|
|
86
84
|
|
|
87
|
-
| Before
|
|
88
|
-
|
|
|
89
|
-
| `flex flex-col` / `flex flex-col gap-4`
|
|
90
|
-
| `flex flex-wrap` / `flex flex-wrap gap-2` | `af-inline` / `af-inline af-gap-sm`
|
|
91
|
-
| `grid` / `grid grid-cols-3 gap-6`
|
|
92
|
-
| `d-flex flex-column`
|
|
93
|
-
| `d-flex flex-wrap`
|
|
94
|
-
| `d-grid` / `row`
|
|
95
|
-
| `container` / `container-fluid`
|
|
85
|
+
| Before | After |
|
|
86
|
+
| ----------------------------------------- | ----------------------------------------- |
|
|
87
|
+
| `flex flex-col` / `flex flex-col gap-4` | `af-stack` / `af-stack af-gap-lg` |
|
|
88
|
+
| `flex flex-wrap` / `flex flex-wrap gap-2` | `af-inline` / `af-inline af-gap-sm` |
|
|
89
|
+
| `grid` / `grid grid-cols-3 gap-6` | `af-grid` / `af-grid af-grid-3 af-gap-xl` |
|
|
90
|
+
| `d-flex flex-column` | `af-stack` |
|
|
91
|
+
| `d-flex flex-wrap` | `af-inline` |
|
|
92
|
+
| `d-grid` / `row` | `af-grid` |
|
|
93
|
+
| `container` / `container-fluid` | `af-container` |
|
|
96
94
|
|
|
97
95
|
### Unknown `af-*` names
|
|
98
96
|
|
|
99
97
|
`@airframeui/no-unknown-airframe-class` — prefers the project's `@airframeui/core/classes.json`, then the snapshot bundled at plugin build time.
|
|
100
98
|
|
|
101
|
-
| Invented
|
|
102
|
-
|
|
|
103
|
-
| `af-btn-primary`
|
|
104
|
-
| `af-btn-
|
|
105
|
-
| `af-btn-
|
|
106
|
-
| `af-
|
|
107
|
-
|
|
|
99
|
+
| Invented | Autofix |
|
|
100
|
+
| ----------------------------------------------------------------------------- | -------------------------------------------- |
|
|
101
|
+
| `af-btn-primary` | `af-btn` |
|
|
102
|
+
| `af-btn-secondary` / `af-btn-danger` | `af-btn af-is-secondary` / `af-is-danger` |
|
|
103
|
+
| `af-btn-destructive` | `af-btn af-is-danger` |
|
|
104
|
+
| `af-btn-block` / `af-is-block` / `af-is-full` | `af-w-full` |
|
|
105
|
+
| `af-{pattern}-{variant}` when both `af-{pattern}` and `af-is-{variant}` exist | `af-{pattern} af-is-{variant}` |
|
|
106
|
+
| Anything else unknown | Message may suggest a close name; no autofix |
|
|
108
107
|
|
|
109
108
|
Do not invent `af-*` names. Use catalog classes (`af-btn af-is-danger`, not `af-btn-danger`).
|
|
110
109
|
|
|
111
110
|
### Redundant markup
|
|
112
111
|
|
|
113
|
-
| Before
|
|
114
|
-
|
|
|
115
|
-
| `af-card af-stack af-gap-md`
|
|
112
|
+
| Before | After | Rule |
|
|
113
|
+
| ------------------------------------------ | ---------------------- | ----------------------- |
|
|
114
|
+
| `af-card af-stack af-gap-md` | `af-card` | `no-redundant-defaults` |
|
|
116
115
|
| `af-grid af-gap-md` / `af-stack af-gap-md` | `af-grid` / `af-stack` | `no-redundant-defaults` |
|
|
117
|
-
| `af-container af-container-xl`
|
|
118
|
-
| `<h1 class="af-text-h1">`
|
|
119
|
-
| `af-input af-w-full`
|
|
120
|
-
| `af-btn af-block`
|
|
116
|
+
| `af-container af-container-xl` | `af-container-xl` | `no-redundant-defaults` |
|
|
117
|
+
| `<h1 class="af-text-h1">` | `<h1>` | `no-redundant-defaults` |
|
|
118
|
+
| `af-input af-w-full` | `af-input` | `no-redundant-width` |
|
|
119
|
+
| `af-btn af-block` | `af-btn af-w-full` | `no-redundant-width` |
|
|
121
120
|
|
|
122
121
|
Kept: `af-card af-gap-lg`, `af-card af-inline`, `af-container af-container-lg@xl`, `<h2 class="af-text-h1">`, `af-btn af-w-full`, `af-input af-is-autosize af-w-full`.
|
|
123
122
|
|
|
@@ -127,16 +126,18 @@ Form controls that already span full width: `af-input`, `af-textarea`, `af-selec
|
|
|
127
126
|
|
|
128
127
|
No autofix — you must choose the `id`.
|
|
129
128
|
|
|
130
|
-
| Markup
|
|
131
|
-
|
|
|
132
|
-
| `class` contains `af-field__error`
|
|
133
|
-
| `class` contains `af-is-error`, or `aria-invalid="true"` | `aria-describedby` on that element
|
|
129
|
+
| Markup | Required |
|
|
130
|
+
| -------------------------------------------------------- | --------------------------------------------- |
|
|
131
|
+
| `class` contains `af-field__error` | `id` on that element (for `aria-describedby`) |
|
|
132
|
+
| `class` contains `af-is-error`, or `aria-invalid="true"` | `aria-describedby` on that element |
|
|
134
133
|
|
|
135
134
|
```jsx
|
|
136
135
|
<label className="af-field">
|
|
137
136
|
<span className="af-field__label">Email</span>
|
|
138
137
|
<input className="af-input af-is-error" aria-describedby="email-error" />
|
|
139
|
-
<p className="af-field__error" id="email-error">
|
|
138
|
+
<p className="af-field__error" id="email-error">
|
|
139
|
+
Enter a valid email.
|
|
140
|
+
</p>
|
|
140
141
|
</label>
|
|
141
142
|
```
|
|
142
143
|
|
|
@@ -162,6 +163,7 @@ write class / className string literals → npx eslint . --fix → fix remaining
|
|
|
162
163
|
## Related
|
|
163
164
|
|
|
164
165
|
- Docs: [airframeui.com/docs/eslint-plugin](https://airframeui.com/docs/eslint-plugin)
|
|
166
|
+
- [Changelog](https://airframeui.com/docs/changelog)
|
|
165
167
|
- [`@airframeui/core`](https://www.npmjs.com/package/@airframeui/core) — CSS system (install this in the app)
|
|
166
168
|
- [IntelliSense for Airframe](https://airframeui.com/docs/vscode-extension) — autocomplete for `af-*` / `--af-*`
|
|
167
169
|
- [Coming from Bootstrap 5 or Tailwind](https://airframeui.com/docs/migrate)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-catalog.d.ts","sourceRoot":"","sources":["../src/class-catalog.ts"],"names":[],"mappings":"AAMA,0EAA0E;AAC1E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA6B/E,CAAC;AAEF,eAAO,MAAM,aAAa,aASxB,CAAC;AAIH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAOF,wBAAgB,kBAAkB,IAAI,cAAc,CAYnD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAI7E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMrE;AAED,wBAAgB,QAAQ,
|
|
1
|
+
{"version":3,"file":"class-catalog.d.ts","sourceRoot":"","sources":["../src/class-catalog.ts"],"names":[],"mappings":"AAMA,0EAA0E;AAC1E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA6B/E,CAAC;AAEF,eAAO,MAAM,aAAa,aASxB,CAAC;AAIH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAOF,wBAAgB,kBAAkB,IAAI,cAAc,CAYnD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAI7E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMrE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAExF;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAUnF;AAmBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAa/E;AAkBD,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAwBtD;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CA2BtD;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAClB,GAAG,EAAE,MAAM,EAAE,GACZ;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAiBjE"}
|
package/dist/class-catalog.js
CHANGED
|
@@ -10,8 +10,8 @@ export const CLASS_ALIASES = {
|
|
|
10
10
|
note: 'Variants use af-is-*, not af-btn-*',
|
|
11
11
|
},
|
|
12
12
|
'af-btn-primary': {
|
|
13
|
-
replacement: 'af-btn
|
|
14
|
-
note: '
|
|
13
|
+
replacement: 'af-btn',
|
|
14
|
+
note: 'Filled primary is the default. Do not add af-is-primary except with af-is-ghost',
|
|
15
15
|
},
|
|
16
16
|
'af-btn-secondary': {
|
|
17
17
|
replacement: 'af-btn af-is-secondary',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-catalog.js","sourceRoot":"","sources":["../src/class-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAA0D;IAClF,eAAe,EAAE;QACf,WAAW,EAAE,qBAAqB;QAClC,IAAI,EAAE,oCAAoC;KAC3C;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"class-catalog.js","sourceRoot":"","sources":["../src/class-catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/data.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.3.
|
|
3
|
-
"generatedAt": "2026-08-
|
|
2
|
+
"version": "0.3.2",
|
|
3
|
+
"generatedAt": "2026-08-22T13:48:43.320Z",
|
|
4
4
|
"source": {
|
|
5
5
|
"classes": "packages/core/dist/classes.json",
|
|
6
6
|
"tokens": "packages/tokens/dist/catalog.json"
|
|
7
7
|
},
|
|
8
|
-
"classCount":
|
|
9
|
-
"tokenCount":
|
|
8
|
+
"classCount": 2505,
|
|
9
|
+
"tokenCount": 367,
|
|
10
10
|
"classes": [
|
|
11
11
|
"af-absolute",
|
|
12
12
|
"af-accordion",
|
|
@@ -593,6 +593,8 @@
|
|
|
593
593
|
"af-focus-ring@sm",
|
|
594
594
|
"af-focus-ring@xl",
|
|
595
595
|
"af-focus-ring@xs",
|
|
596
|
+
"af-footer",
|
|
597
|
+
"af-footer-meta",
|
|
596
598
|
"af-form",
|
|
597
599
|
"af-gap-0",
|
|
598
600
|
"af-gap-0@2xl",
|
|
@@ -874,6 +876,8 @@
|
|
|
874
876
|
"af-is-active",
|
|
875
877
|
"af-is-auto-grow",
|
|
876
878
|
"af-is-autosize",
|
|
879
|
+
"af-is-collapsed",
|
|
880
|
+
"af-is-compact",
|
|
877
881
|
"af-is-complete",
|
|
878
882
|
"af-is-danger",
|
|
879
883
|
"af-is-disabled",
|
|
@@ -896,6 +900,7 @@
|
|
|
896
900
|
"af-is-secondary",
|
|
897
901
|
"af-is-sm",
|
|
898
902
|
"af-is-start",
|
|
903
|
+
"af-is-sticky",
|
|
899
904
|
"af-is-success",
|
|
900
905
|
"af-is-tertiary",
|
|
901
906
|
"af-is-vertical",
|
|
@@ -1460,6 +1465,7 @@
|
|
|
1460
1465
|
"af-nav-collapse-open",
|
|
1461
1466
|
"af-nav-pills",
|
|
1462
1467
|
"af-navbar",
|
|
1468
|
+
"af-navbar-actions",
|
|
1463
1469
|
"af-navbar-brand",
|
|
1464
1470
|
"af-navbar-nav",
|
|
1465
1471
|
"af-no-print",
|
|
@@ -2218,6 +2224,7 @@
|
|
|
2218
2224
|
"af-shrink@xs",
|
|
2219
2225
|
"af-side-nav",
|
|
2220
2226
|
"af-side-nav-item",
|
|
2227
|
+
"af-side-nav-label",
|
|
2221
2228
|
"af-side-nav-link",
|
|
2222
2229
|
"af-sidebar",
|
|
2223
2230
|
"af-skeleton",
|
|
@@ -2487,6 +2494,7 @@
|
|
|
2487
2494
|
"af-title@xl",
|
|
2488
2495
|
"af-title@xs",
|
|
2489
2496
|
"af-toast",
|
|
2497
|
+
"af-toast-viewport",
|
|
2490
2498
|
"af-toc",
|
|
2491
2499
|
"af-toc-title",
|
|
2492
2500
|
"af-tooltip",
|
|
@@ -2801,6 +2809,7 @@
|
|
|
2801
2809
|
"--af-shadow-lg",
|
|
2802
2810
|
"--af-shadow-md",
|
|
2803
2811
|
"--af-shadow-sm",
|
|
2812
|
+
"--af-sidebar-collapsed-width",
|
|
2804
2813
|
"--af-sidebar-width",
|
|
2805
2814
|
"--af-soft-mix",
|
|
2806
2815
|
"--af-space-0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@airframeui/eslint-plugin",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Airframe UI ESLint plugin — catch Tailwind/Bootstrap drift, unknown af-* classes, and redundant defaults",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://airframeui.com/docs/eslint-plugin",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"@types/node": "26.2.0",
|
|
53
53
|
"eslint": "10.8.1",
|
|
54
54
|
"typescript": "6.0.3",
|
|
55
|
-
"@airframeui/
|
|
56
|
-
"@airframeui/
|
|
55
|
+
"@airframeui/tokens": "0.3.2",
|
|
56
|
+
"@airframeui/core": "0.3.2"
|
|
57
57
|
},
|
|
58
58
|
"turbo": {
|
|
59
59
|
"tasks": {
|