{ "plugins": [ "react", "import" ], "rules": { "react/forbid-elements": [ "warn", { "forbid": [] } ], "no-restricted-imports": [ "warn", { "patterns": [ { "group": [ "components/core/**", "components/product/**", "ui_kits/storefront/**" ], "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*(?!['\\\"]?(?:Nunito|Nunito Fallback))/i]", "message": "Font not provided by the design system. Available: Nunito, Nunito Fallback." }, { "selector": "JSXOpeningElement[name.name='Badge'] > JSXAttribute > JSXIdentifier[name!=/^(?:children|variant|size|dot|key|ref|className|style|children)$/]", "message": " doesn't accept that prop. Declared props: children, variant, size, dot." }, { "selector": "JSXOpeningElement[name.name='Badge'] > JSXAttribute[name.name='variant'] > Literal[value!=/^(?:brand|blue|purple|neutral|success|warning|error|dark|outline)$/]", "message": " variant must be one of 'brand' | 'blue' | 'purple' | 'neutral' | 'success' | 'warning' | 'error' | 'dark' | 'outline'." }, { "selector": "JSXOpeningElement[name.name='Badge'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]", "message": " size must be one of 'sm' | 'md' | 'lg'." }, { "selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute > JSXIdentifier[name!=/^(?:variant|size|disabled|fullWidth|icon|iconPosition|onClick|type|href|children|key|ref|className|style|children)$/]", "message": "