{
  "plugins": [
    "react",
    "import"
  ],
  "rules": {
    "react/forbid-elements": [
      "warn",
      {
        "forbid": []
      }
    ],
    "no-restricted-imports": [
      "warn",
      {
        "patterns": [
          {
            "group": [
              "assets/icons/**",
              "components/data/**",
              "components/forms/**"
            ],
            "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*(?!['\\\"]?(?:Archivo|Cormorant Garamond|PingFang SC|Microsoft YaHei UI))/i]",
        "message": "Font not provided by the design system. Available: Archivo, Cormorant Garamond, PingFang SC, Microsoft YaHei UI."
      },
      {
        "selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute > JSXIdentifier[name!=/^(?:children|variant|size|disabled|block|iconLeft|iconRight|type|onClick|style|key|ref|className|style|children)$/]",
        "message": "<Button> doesn't accept that prop. Declared props: children, variant, size, disabled, block, iconLeft, iconRight, type, onClick, style."
      },
      {
        "selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute[name.name='variant'] > Literal[value!=/^(?:primary|accent|secondary|ghost|danger)$/]",
        "message": "<Button> variant must be one of 'primary' | 'accent' | 'secondary' | 'ghost' | 'danger'."
      },
      {
        "selector": "JSXOpeningElement[name.name='Button'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
        "message": "<Button> size must be one of 'sm' | 'md' | 'lg'."
      },
      {
        "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='DataTableColumn'] > JSXAttribute > JSXIdentifier[name!=/^(?:key|header|numeric|align|strong|key|ref|className|style|children)$/]",
        "message": "<DataTableColumn> doesn't accept that prop. Declared props: key, header, numeric, align, strong."
      },
      {
        "selector": "JSXOpeningElement[name.name='DataTableColumn'] > JSXAttribute[name.name='align'] > Literal[value!=/^(?:left|center|right)$/]",
        "message": "<DataTableColumn> align must be one of 'left' | 'center' | 'right'."
      }
    ]
  },
  "overrides": [
    {
      "files": [
        "**/index.js"
      ],
      "rules": {
        "no-restricted-imports": "off"
      }
    }
  ],
  "x-omelette": {
    "components": {
      "Button": {
        "replaces": []
      },
      "DataTableColumn": {
        "replaces": []
      }
    },
    "tokens": [
      "--accent",
      "--accent-bar",
      "--accent-hover",
      "--accent-press",
      "--accent-tint",
      "--base-warm",
      "--border-default",
      "--border-focus",
      "--border-strong",
      "--border-subtle",
      "--brand-navy",
      "--brand-red",
      "--bw-thick",
      "--bw-thin",
      "--chart-1",
      "--chart-2",
      "--chart-3",
      "--chart-4",
      "--chart-5",
      "--chart-6",
      "--chart-axis",
      "--chart-div-mid",
      "--chart-div-neg",
      "--chart-div-pos",
      "--chart-grid",
      "--chart-seq-1",
      "--chart-seq-2",
      "--chart-seq-3",
      "--chart-seq-4",
      "--chart-seq-5",
      "--chart-seq-6",
      "--chart-track",
      "--content-max",
      "--dur-fast",
      "--dur-normal",
      "--dur-slow",
      "--ease-out",
      "--ease-standard",
      "--focus-ring",
      "--font-body",
      "--font-cn",
      "--font-latin",
      "--font-mono",
      "--font-ppt",
      "--font-sans",
      "--font-serif",
      "--fs-body",
      "--fs-caption",
      "--fs-display",
      "--fs-h3",
      "--fs-h4",
      "--fs-label",
      "--fs-lead",
      "--fs-title",
      "--fw-bold",
      "--fw-medium",
      "--fw-regular",
      "--fw-semibold",
      "--grey-0",
      "--grey-100",
      "--grey-200",
      "--grey-25",
      "--grey-300",
      "--grey-400",
      "--grey-50",
      "--grey-500",
      "--grey-600",
      "--grey-700",
      "--grey-800",
      "--grey-900",
      "--grey-warm",
      "--ink-deep",
      "--lh-normal",
      "--lh-relaxed",
      "--lh-snug",
      "--lh-tight",
      "--ls-caps",
      "--ls-caps-wide",
      "--ls-normal",
      "--ls-tight",
      "--ls-wide",
      "--navy-100",
      "--navy-50",
      "--navy-500",
      "--navy-600",
      "--navy-700",
      "--navy-800",
      "--navy-900",
      "--paper",
      "--radius-lg",
      "--radius-md",
      "--radius-pill",
      "--radius-sm",
      "--radius-xs",
      "--red-100",
      "--red-50",
      "--red-500",
      "--red-600",
      "--red-700",
      "--sand",
      "--shadow-card",
      "--shadow-focus",
      "--shadow-lg",
      "--shadow-md",
      "--shadow-sm",
      "--shadow-xs",
      "--space-0",
      "--space-1",
      "--space-10",
      "--space-12",
      "--space-16",
      "--space-2",
      "--space-20",
      "--space-3",
      "--space-4",
      "--space-5",
      "--space-6",
      "--space-8",
      "--status-fail",
      "--status-fail-bg",
      "--status-info",
      "--status-info-bg",
      "--status-pass",
      "--status-pass-bg",
      "--status-warn",
      "--status-warn-bg",
      "--surface-card",
      "--surface-dark",
      "--surface-hover",
      "--surface-ink",
      "--surface-page",
      "--surface-sunken",
      "--text-body",
      "--text-link",
      "--text-link-hover",
      "--text-muted",
      "--text-on-accent",
      "--text-on-dark",
      "--text-on-dark-soft",
      "--text-soft",
      "--text-strong"
    ],
    "tokenKinds": {
      "--brand-red": "color",
      "--brand-navy": "color",
      "--red-700": "color",
      "--red-600": "color",
      "--red-500": "color",
      "--red-100": "color",
      "--red-50": "color",
      "--navy-900": "color",
      "--navy-800": "color",
      "--navy-700": "color",
      "--navy-600": "color",
      "--navy-500": "color",
      "--navy-100": "color",
      "--navy-50": "color",
      "--ink-deep": "color",
      "--grey-warm": "color",
      "--sand": "color",
      "--paper": "color",
      "--base-warm": "color",
      "--grey-0": "color",
      "--grey-25": "color",
      "--grey-50": "color",
      "--grey-100": "color",
      "--grey-200": "color",
      "--grey-300": "color",
      "--grey-400": "color",
      "--grey-500": "color",
      "--grey-600": "color",
      "--grey-700": "color",
      "--grey-800": "color",
      "--grey-900": "color",
      "--status-pass": "color",
      "--status-pass-bg": "color",
      "--status-warn": "color",
      "--status-warn-bg": "color",
      "--status-fail": "color",
      "--status-fail-bg": "color",
      "--status-info": "color",
      "--status-info-bg": "color",
      "--chart-1": "color",
      "--chart-2": "color",
      "--chart-3": "color",
      "--chart-4": "color",
      "--chart-5": "color",
      "--chart-6": "color",
      "--chart-seq-1": "color",
      "--chart-seq-2": "color",
      "--chart-seq-3": "color",
      "--chart-seq-4": "color",
      "--chart-seq-5": "color",
      "--chart-seq-6": "color",
      "--chart-div-neg": "color",
      "--chart-div-mid": "color",
      "--chart-div-pos": "color",
      "--chart-grid": "color",
      "--chart-axis": "color",
      "--chart-track": "color",
      "--accent": "color",
      "--accent-hover": "color",
      "--accent-press": "color",
      "--accent-tint": "color",
      "--text-strong": "font",
      "--text-body": "font",
      "--text-soft": "font",
      "--text-muted": "font",
      "--text-on-dark": "font",
      "--text-on-dark-soft": "font",
      "--text-on-accent": "font",
      "--text-link": "font",
      "--text-link-hover": "font",
      "--surface-page": "color",
      "--surface-card": "color",
      "--surface-sunken": "color",
      "--surface-dark": "color",
      "--surface-ink": "color",
      "--surface-hover": "color",
      "--border-subtle": "color",
      "--border-default": "color",
      "--border-strong": "color",
      "--border-focus": "color",
      "--focus-ring": "color",
      "--font-latin": "font",
      "--font-serif": "font",
      "--font-cn": "font",
      "--font-sans": "font",
      "--font-body": "font",
      "--font-mono": "font",
      "--font-ppt": "font",
      "--fs-display": "spacing",
      "--fs-title": "spacing",
      "--fs-h3": "spacing",
      "--fs-h4": "spacing",
      "--fs-lead": "spacing",
      "--fs-body": "spacing",
      "--fs-caption": "spacing",
      "--fs-label": "spacing",
      "--fw-regular": "font",
      "--fw-medium": "font",
      "--fw-semibold": "font",
      "--fw-bold": "font",
      "--lh-tight": "font",
      "--lh-snug": "font",
      "--lh-normal": "font",
      "--lh-relaxed": "font",
      "--ls-tight": "font",
      "--ls-normal": "font",
      "--ls-wide": "font",
      "--ls-caps": "font",
      "--ls-caps-wide": "font",
      "--space-0": "spacing",
      "--space-1": "spacing",
      "--space-2": "spacing",
      "--space-3": "spacing",
      "--space-4": "spacing",
      "--space-5": "spacing",
      "--space-6": "spacing",
      "--space-8": "spacing",
      "--space-10": "spacing",
      "--space-12": "spacing",
      "--space-16": "spacing",
      "--space-20": "spacing",
      "--radius-xs": "radius",
      "--radius-sm": "radius",
      "--radius-md": "radius",
      "--radius-lg": "radius",
      "--radius-pill": "radius",
      "--bw-thin": "spacing",
      "--bw-thick": "spacing",
      "--accent-bar": "spacing",
      "--shadow-xs": "shadow",
      "--shadow-sm": "shadow",
      "--shadow-md": "shadow",
      "--shadow-lg": "shadow",
      "--shadow-card": "shadow",
      "--shadow-focus": "shadow",
      "--ease-standard": "other",
      "--ease-out": "other",
      "--dur-fast": "other",
      "--dur-normal": "other",
      "--dur-slow": "other",
      "--content-max": "spacing"
    },
    "fontFamilies": [
      "Archivo",
      "Cormorant Garamond",
      "Microsoft YaHei UI",
      "PingFang SC"
    ]
  }
}