Files
NestQuest-UI-Design/_ds/cubecraft-creations-design-system-0c419cc5-3d04-4723-b89f-49ceceba3c44/_adherence.oxlintrc.json
T
2026-09-25 10:23:21 -04:00

503 lines
16 KiB
JSON

{
"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": "<Badge> 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": "<Badge> 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": "<Badge> 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": "<Button> doesn't accept that prop. Declared props: variant, size, disabled, fullWidth, icon, iconPosition, onClick, type, href, children."
},
{
"selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute[name.name='variant'] > Literal[value!=/^(?:gradient|primary|secondary|outline|ghost|danger)$/]",
"message": "<Button> variant must be one of 'gradient' | 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger'."
},
{
"selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg|xl)$/]",
"message": "<Button> size must be one of 'sm' | 'md' | 'lg' | 'xl'."
},
{
"selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute[name.name='iconPosition'] > Literal[value!=/^(?:left|right)$/]",
"message": "<Button> iconPosition must be one of 'left' | 'right'."
},
{
"selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute[name.name='type'] > Literal[value!=/^(?:button|submit|reset)$/]",
"message": "<Button> type must be one of 'button' | 'submit' | 'reset'."
},
{
"selector": "JSXOpeningElement[name.name='CategoryCard'] > JSXAttribute > JSXIdentifier[name!=/^(?:image|title|description|ctaLabel|href|align|badge|key|ref|className|style|children)$/]",
"message": "<CategoryCard> doesn't accept that prop. Declared props: image, title, description, ctaLabel, href, align, badge."
},
{
"selector": "JSXOpeningElement[name.name='CategoryCard'] > JSXAttribute[name.name='align'] > Literal[value!=/^(?:left|right)$/]",
"message": "<CategoryCard> align must be one of 'left' | 'right'."
},
{
"selector": "JSXOpeningElement[name.name='ProductCard'] > JSXAttribute > JSXIdentifier[name!=/^(?:image|name|price|originalPrice|badge|category|onAddToCart|onWishlist|wishlisted|href|key|ref|className|style|children)$/]",
"message": "<ProductCard> doesn't accept that prop. Declared props: image, name, price, originalPrice, badge, category, onAddToCart, onWishlist, wishlisted, href."
},
{
"selector": "JSXOpeningElement[name.name='Tag'] > JSXAttribute > JSXIdentifier[name!=/^(?:children|active|onClick|onRemove|color|key|ref|className|style|children)$/]",
"message": "<Tag> doesn't accept that prop. Declared props: children, active, onClick, onRemove, color."
},
{
"selector": "JSXOpeningElement[name.name='Tag'] > JSXAttribute[name.name='color'] > Literal[value!=/^(?:default|blue|purple|green|orange)$/]",
"message": "<Tag> color must be one of 'default' | 'blue' | 'purple' | 'green' | 'orange'."
}
]
},
"overrides": [
{
"files": [
"**/index.js"
],
"rules": {
"no-restricted-imports": "off"
}
}
],
"x-omelette": {
"components": {
"Badge": {
"replaces": []
},
"Button": {
"replaces": []
},
"CategoryCard": {
"replaces": []
},
"ProductCard": {
"replaces": []
},
"Tag": {
"replaces": []
}
},
"tokens": [
"--border-brand",
"--border-default",
"--border-strong",
"--border-subtle",
"--brand-blue",
"--brand-gradient",
"--brand-gradient-h",
"--brand-purple",
"--color-accent-100",
"--color-accent-200",
"--color-accent-300",
"--color-accent-400",
"--color-accent-50",
"--color-accent-500",
"--color-accent-600",
"--color-accent-700",
"--color-accent-800",
"--color-accent-900",
"--color-error",
"--color-error-bg",
"--color-info",
"--color-info-bg",
"--color-neutral-0",
"--color-neutral-100",
"--color-neutral-1000",
"--color-neutral-150",
"--color-neutral-200",
"--color-neutral-300",
"--color-neutral-400",
"--color-neutral-50",
"--color-neutral-500",
"--color-neutral-600",
"--color-neutral-700",
"--color-neutral-800",
"--color-neutral-900",
"--color-primary-100",
"--color-primary-200",
"--color-primary-300",
"--color-primary-400",
"--color-primary-50",
"--color-primary-500",
"--color-primary-600",
"--color-primary-700",
"--color-primary-800",
"--color-primary-900",
"--color-success",
"--color-success-bg",
"--color-warning",
"--color-warning-bg",
"--container-2xl",
"--container-lg",
"--container-md",
"--container-sm",
"--container-xl",
"--duration-base",
"--duration-fast",
"--duration-slow",
"--ease-in",
"--ease-in-out",
"--ease-out",
"--ease-spring",
"--font-mono",
"--font-primary",
"--fw-black",
"--fw-bold",
"--fw-extrabold",
"--fw-light",
"--fw-medium",
"--fw-regular",
"--fw-semibold",
"--header-height",
"--lh-loose",
"--lh-normal",
"--lh-relaxed",
"--lh-snug",
"--lh-tight",
"--ls-normal",
"--ls-snug",
"--ls-tight",
"--ls-wide",
"--ls-wider",
"--ls-widest",
"--nav-height",
"--radius-2xl",
"--radius-3xl",
"--radius-brand",
"--radius-full",
"--radius-lg",
"--radius-md",
"--radius-none",
"--radius-sm",
"--radius-xl",
"--radius-xs",
"--shadow-accent",
"--shadow-brand",
"--shadow-lg",
"--shadow-md",
"--shadow-sm",
"--shadow-xl",
"--shadow-xs",
"--space-0",
"--space-0-5",
"--space-1",
"--space-1-5",
"--space-10",
"--space-12",
"--space-14",
"--space-16",
"--space-2",
"--space-20",
"--space-24",
"--space-28",
"--space-3",
"--space-32",
"--space-4",
"--space-40",
"--space-48",
"--space-5",
"--space-6",
"--space-7",
"--space-8",
"--space-px",
"--surface-card",
"--surface-overlay",
"--surface-page",
"--surface-raised",
"--surface-subtle",
"--text-2xl",
"--text-3xl",
"--text-4xl",
"--text-5xl",
"--text-6xl",
"--text-accent",
"--text-base",
"--text-brand",
"--text-inverse",
"--text-lg",
"--text-md",
"--text-muted",
"--text-primary",
"--text-secondary",
"--text-sm",
"--text-xl",
"--text-xs",
"--transition-base",
"--transition-spring",
"--type-body-family",
"--type-body-lg-lh",
"--type-body-lg-size",
"--type-body-lh",
"--type-body-size",
"--type-body-weight",
"--type-btn-ls",
"--type-btn-size",
"--type-btn-weight",
"--type-caption-ls",
"--type-caption-size",
"--type-caption-weight",
"--type-display-family",
"--type-display-lh",
"--type-display-ls",
"--type-display-size",
"--type-display-weight",
"--type-h1-family",
"--type-h1-lh",
"--type-h1-ls",
"--type-h1-size",
"--type-h1-weight",
"--type-h2-lh",
"--type-h2-size",
"--type-h2-weight",
"--type-h3-lh",
"--type-h3-size",
"--type-h3-weight",
"--type-h4-lh",
"--type-h4-size",
"--type-h4-weight",
"--z-base",
"--z-dropdown",
"--z-modal",
"--z-overlay",
"--z-raised",
"--z-sticky",
"--z-toast",
"--z-tooltip"
],
"tokenKinds": {
"--brand-blue": "color",
"--brand-purple": "color",
"--brand-gradient": "color",
"--brand-gradient-h": "color",
"--color-primary-50": "color",
"--color-primary-100": "color",
"--color-primary-200": "color",
"--color-primary-300": "color",
"--color-primary-400": "color",
"--color-primary-500": "color",
"--color-primary-600": "color",
"--color-primary-700": "color",
"--color-primary-800": "color",
"--color-primary-900": "color",
"--color-accent-50": "color",
"--color-accent-100": "color",
"--color-accent-200": "color",
"--color-accent-300": "color",
"--color-accent-400": "color",
"--color-accent-500": "color",
"--color-accent-600": "color",
"--color-accent-700": "color",
"--color-accent-800": "color",
"--color-accent-900": "color",
"--color-neutral-0": "color",
"--color-neutral-50": "color",
"--color-neutral-100": "color",
"--color-neutral-150": "color",
"--color-neutral-200": "color",
"--color-neutral-300": "color",
"--color-neutral-400": "color",
"--color-neutral-500": "color",
"--color-neutral-600": "color",
"--color-neutral-700": "color",
"--color-neutral-800": "color",
"--color-neutral-900": "color",
"--color-neutral-1000": "color",
"--color-success": "color",
"--color-success-bg": "color",
"--color-warning": "color",
"--color-warning-bg": "color",
"--color-error": "color",
"--color-error-bg": "color",
"--color-info": "color",
"--color-info-bg": "color",
"--text-primary": "font",
"--text-secondary": "font",
"--text-muted": "font",
"--text-inverse": "font",
"--text-brand": "font",
"--text-accent": "font",
"--surface-page": "color",
"--surface-subtle": "color",
"--surface-card": "color",
"--surface-raised": "color",
"--surface-overlay": "color",
"--border-subtle": "color",
"--border-default": "color",
"--border-strong": "color",
"--border-brand": "color",
"--font-primary": "font",
"--font-mono": "font",
"--fw-light": "other",
"--fw-regular": "other",
"--fw-medium": "other",
"--fw-semibold": "other",
"--fw-bold": "other",
"--fw-extrabold": "other",
"--fw-black": "other",
"--text-xs": "font",
"--text-sm": "font",
"--text-base": "font",
"--text-md": "font",
"--text-lg": "font",
"--text-xl": "font",
"--text-2xl": "font",
"--text-3xl": "font",
"--text-4xl": "font",
"--text-5xl": "font",
"--text-6xl": "font",
"--lh-tight": "other",
"--lh-snug": "other",
"--lh-normal": "other",
"--lh-relaxed": "other",
"--lh-loose": "other",
"--ls-tight": "other",
"--ls-snug": "other",
"--ls-normal": "other",
"--ls-wide": "other",
"--ls-wider": "other",
"--ls-widest": "other",
"--type-display-family": "font",
"--type-display-weight": "font",
"--type-display-size": "font",
"--type-display-lh": "font",
"--type-display-ls": "font",
"--type-h1-family": "font",
"--type-h1-weight": "font",
"--type-h1-size": "font",
"--type-h1-lh": "font",
"--type-h1-ls": "font",
"--type-h2-weight": "font",
"--type-h2-size": "font",
"--type-h2-lh": "font",
"--type-h3-weight": "font",
"--type-h3-size": "font",
"--type-h3-lh": "font",
"--type-h4-weight": "font",
"--type-h4-size": "font",
"--type-h4-lh": "font",
"--type-body-family": "font",
"--type-body-weight": "font",
"--type-body-size": "font",
"--type-body-lh": "font",
"--type-body-lg-size": "font",
"--type-body-lg-lh": "font",
"--type-caption-weight": "font",
"--type-caption-size": "font",
"--type-caption-ls": "font",
"--type-btn-weight": "font",
"--type-btn-size": "font",
"--type-btn-ls": "font",
"--space-0": "spacing",
"--space-px": "spacing",
"--space-0-5": "spacing",
"--space-1": "spacing",
"--space-1-5": "spacing",
"--space-2": "spacing",
"--space-3": "spacing",
"--space-4": "spacing",
"--space-5": "spacing",
"--space-6": "spacing",
"--space-7": "spacing",
"--space-8": "spacing",
"--space-10": "spacing",
"--space-12": "spacing",
"--space-14": "spacing",
"--space-16": "spacing",
"--space-20": "spacing",
"--space-24": "spacing",
"--space-28": "spacing",
"--space-32": "spacing",
"--space-40": "spacing",
"--space-48": "spacing",
"--radius-none": "radius",
"--radius-xs": "radius",
"--radius-sm": "radius",
"--radius-md": "radius",
"--radius-lg": "radius",
"--radius-xl": "radius",
"--radius-2xl": "radius",
"--radius-3xl": "radius",
"--radius-full": "radius",
"--radius-brand": "radius",
"--shadow-xs": "shadow",
"--shadow-sm": "shadow",
"--shadow-md": "shadow",
"--shadow-lg": "shadow",
"--shadow-xl": "shadow",
"--shadow-brand": "shadow",
"--shadow-accent": "shadow",
"--container-sm": "spacing",
"--container-md": "spacing",
"--container-lg": "spacing",
"--container-xl": "spacing",
"--container-2xl": "spacing",
"--header-height": "spacing",
"--nav-height": "spacing",
"--ease-out": "other",
"--ease-in": "other",
"--ease-in-out": "other",
"--ease-spring": "other",
"--duration-fast": "other",
"--duration-base": "other",
"--duration-slow": "other",
"--transition-base": "other",
"--transition-spring": "other",
"--z-base": "other",
"--z-raised": "other",
"--z-dropdown": "other",
"--z-sticky": "other",
"--z-overlay": "other",
"--z-modal": "other",
"--z-toast": "other",
"--z-tooltip": "other"
},
"fontFamilies": [
"Nunito",
"Nunito Fallback"
]
}
}