{ "plugins": [ "react", "import" ], "rules": { "react/forbid-elements": [ "warn", { "forbid": [] } ], "no-restricted-imports": [ "warn", { "patterns": [ { "group": [ "components/display/**", "components/feedback/**", "components/forms/**", "components/navigation/**", "ui_kits/dashboard/**", "ui_kits/mobile/**", "ui_kits/website/**" ], "message": "Import design-system components from 'index.js', not component internals." } ] } ], "no-restricted-syntax": [ "warn", { "selector": "Literal[value=/#[0-9a-fA-F]{3,8}\\b/]", "message": "Raw hex color — use a design-system color token via var()." }, { "selector": "Literal[value=/\\b\\d+px\\b/]", "message": "Raw px value — use a design-system spacing token via var()." }, { "selector": "Literal[value=/font-family\\s*:\\s*(?!['\\\"]?(?:Outfit|Figtree|Spline Sans Mono))/i]", "message": "Font not provided by the design system. Available: Outfit, Figtree, Spline Sans Mono." }, { "selector": "JSXOpeningElement[name.name='Badge'] > JSXAttribute > JSXIdentifier[name!=/^(?:tone|children|style|key|ref|className|style|children)$/]", "message": " doesn't accept that prop. Declared props: tone, children, style." }, { "selector": "JSXOpeningElement[name.name='Badge'] > JSXAttribute[name.name='tone'] > Literal[value!=/^(?:neutral|positive|warning|danger|inverse)$/]", "message": " tone must be one of 'neutral' | 'positive' | 'warning' | 'danger' | 'inverse'." }, { "selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute > JSXIdentifier[name!=/^(?:variant|size|disabled|icon|children|onClick|style|key|ref|className|style|children)$/]", "message": "