ionbase-ui 0.17.0 → 0.18.1

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
@@ -172,16 +172,53 @@ icon sit correctly inside a Button.
172
172
 
173
173
  ## Entry points
174
174
 
175
- | Import | What it is |
176
- | ----------------------- | --------------------------------------------------- |
177
- | `ionbase-ui` | Components, `Icon`, and the `tokens` object |
178
- | `ionbase-ui/styles` | Everything: tokens + typography + components |
179
- | `ionbase-ui/styles/*` | One component stylesheet, e.g. `button.css` |
180
- | `ionbase-ui/tokens` | Token custom properties only, no component CSS |
181
- | `ionbase-ui/tokens/*` | One token layer, e.g. `theme-dark.css` |
182
- | `ionbase-ui/meta/index` | Component index — names, summaries, variants (12KB) |
183
- | `ionbase-ui/meta` | Every component's full contract in one file (180KB) |
184
- | `ionbase-ui/meta/*` | One component's contract, e.g. `Button.json` |
175
+ | Import | What it is |
176
+ | ----------------------------- | --------------------------------------------------- |
177
+ | `ionbase-ui` | Components, `Icon`, and the `tokens` object |
178
+ | `ionbase-ui/styles` | Everything: tokens + typography + components |
179
+ | `ionbase-ui/styles/*` | One component stylesheet, e.g. `button.css` |
180
+ | `ionbase-ui/tokens` | Token custom properties only, no component CSS |
181
+ | `ionbase-ui/tokens/*` | One token layer, e.g. `theme-dark.css` |
182
+ | `ionbase-ui/meta/index` | Component index — names, summaries, variants (12KB) |
183
+ | `ionbase-ui/meta` | Every component's full contract in one file (180KB) |
184
+ | `ionbase-ui/meta/*` | One component's contract, e.g. `Button.json` |
185
+ | `ionbase-ui/eslint-plugin` | Lint rules generated from the contracts |
186
+ | `ionbase-ui/stylelint-config` | Token rules for your own CSS |
187
+
188
+ ## Lint rules that ship with the system
189
+
190
+ ```js
191
+ // eslint.config.js
192
+ import ionbase from 'ionbase-ui/eslint-plugin';
193
+ export default [ionbase.configs.recommended];
194
+ ```
195
+
196
+ ```js
197
+ // stylelint.config.js
198
+ export default { extends: ['ionbase-ui/stylelint-config'] };
199
+ ```
200
+
201
+ | rule | catches |
202
+ | --------------------------- | ----------------------------------------------- |
203
+ | `no-deprecated-props` | `<Button disabled>` — autofixes to `isDisabled` |
204
+ | `no-known-contrast-failure` | prop combinations measured to fail WCAG AA |
205
+ | `no-raw-style-values` | `style={{ color: '#1a73e8', padding: 16 }}` |
206
+ | `needs-accessible-name` | icon-only controls announced as just "button" |
207
+ | `one-primary-action` | more than one primary Button in a Modal |
208
+
209
+ The rules read their data from the component contracts, so they stay correct on
210
+ their own: when a contrast defect is fixed the measurement changes, the contract
211
+ loses the entry, and the rule stops firing.
212
+
213
+ Messages name the fix, not the principle — a raw `13px` reports that it is not
214
+ on the scale and that the neighbouring rungs are `var(--spacing-12)` and
215
+ `var(--spacing-14)`.
216
+
217
+ Use `ionbase.configs.warn` instead if you are adopting IonBase in an existing
218
+ app and want the same rules without failing the build. Both configs need peer
219
+ dependencies you may already have (`eslint`, `stylelint`,
220
+ `stylelint-declaration-strict-value`); all are optional, so nothing is installed
221
+ unless you opt in.
185
222
 
186
223
  ## Machine-readable component contracts
187
224
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "ionbase-ui",
3
- "version": "0.17.0",
3
+ "version": "0.18.1",
4
4
  "generated": "by scripts/build-meta.mjs — do not edit; intent lives in meta/*.json",
5
5
  "hooks": [
6
6
  "useToast"