| EDS001 |
critical |
No deprecated Icon / Symbol from @adaptavant/eds-core |
Import named Icon or Symbol from @adaptavant/eds-core, or import path @adaptavant/eds-core/icons or /symbols |
Switch to a named icon from @adaptavant/eds-icons/icons or /symbols |
| EDS002 |
critical |
No deep imports |
Import path matching `@adaptavant/eds-core/(src\ |
dist)/...` |
Import from @adaptavant/eds-core top-level (or its documented subpaths: /tokens, /utils, /tailwind) |
| EDS003 |
critical |
No deprecated entry points |
Import from @adaptavant/eds-core/widgets or @adaptavant/eds-core/experimental |
Use shared-widgets or stable components; escalate to EDS team if no replacement exists |
| EDS004 |
high |
No className / classNames / style / styles on EDS components |
JSX element whose tag matches a known EDS export AND has one of these props |
Use built-in props (variant, tone, size, etc.); if not expressible, escalate to EDS team |
| EDS005 |
high |
No raw HTML where an EDS component exists |
Raw <button>, <input>, <select>, <textarea>, <h1>–<h6>, <p> inside a file that imports from @adaptavant/eds-core |
Use Button, TextInput, Select, Textarea, Heading as="hN", Text |
| EDS006 |
high |
Inputs must live inside Field / Fieldset context |
TextInput, Checkbox, Radio, Select, Textarea rendered without a Field/Fieldset ancestor in the same file |
Wrap in <Field label="..."> (or <Fieldset> for groups) |
| EDS007 |
high |
App root must use Root provider |
Top-level App / _app / layout / root file imports from @adaptavant/eds-core but does not render <Root> |
Wrap app root with <Root brand={...} colorScheme={...} translations={...}> |
| EDS008 |
medium |
No hardcoded color literals on EDS-styled elements |
Raw #rgb, #rrggbb, rgb(, rgba(, or hsl( inside style, className, or CSS-in-JS in an EDS-using file |
Use a Tailwind token class (bg-accent, text-critical, etc.) per earth.anywhere.co/foundations/color |
| EDS009 |
medium |
No raw spacing/sizing literals |
\d+px / \d+rem in style or className strings |
Use Tailwind spacing tokens (p-4, gap-2, ...) |
| EDS010 |
medium |
No arbitrary Tailwind values |
className containing \[[^\]]+\] (e.g. bg-[#abc], w-[200px]) — tailwind/preset.ts disables arbitrary values |
Replace with the closest token class |
| EDS011 |
medium |
No deprecated props on EDS components |
Prop appears as strikethrough or with "⚠️ Deprecated" callout on the component's .md page |
Switch to the documented replacement prop |
| EDS012 |
low |
Typography preset, not raw |
style={{ fontSize: ... }} or text-[14px] adjacent to EDS imports |
Use Heading/Text with typography="..." preset |