Release v2.3.0
Added
@cratis/eslint-plugin-components: ESLint rules for projects that consume Cratis Components, designed to compose on top of@cratis/eslint-config.no-root-barrel-import(rule) — disallows importing from the@cratis/componentsroot barrel. Use a subpath export (@cratis/components/CommandDialog,@cratis/components/DataPage,@cratis/components/Toolbar, …); the root pulls the whole optional-peer-heavy surface and hides intent. Coversimportand re-export … from. Configurable package name and allow-list.no-primereact-dialog(rule) — disallows importingDialogfromprimereact/dialog. UseCommandDialogfrom@cratis/components/CommandDialog, orDialogfrom@cratis/components/Dialogs— the wrappers add Arc command binding, overlay/focus fixes, and theming.
Changed
- Add the
ESLintworkspace to the repoworkspaces.
Notes
- Named per the ESLint scoped-plugin convention (
@scope/eslint-plugin-*). The plugin namespace is@cratis/components, so rule IDs read@cratis/components/no-root-barrel-import. - Ships as raw ESM (no build step), declares only
eslintas a peer dependency, and exposesmeta.versionplus per-rule docs URLs. It owns these rules because Components owns its subpath export surface and the dialog wrappers.
🤖 Generated with Claude Code