// Shared appearance x emphasis color data for Badge and BadgeIndicator.
//
// Keys are neutral (bg / fg / border) so each consumer can build its own
// border declaration. Badge uses the `border` shorthand, BadgeIndicator
// emits `border-color` separately (border-width is set at the base level).

@use '../utils/tokens.scss' as tokens;

$badgeColors: (
  'positive': (
    'strong': (
      bg: tokens.$bm-comp-badge-color-positive-strong-bg,
      fg: tokens.$bm-comp-badge-color-positive-strong-fg,
      border: tokens.$bm-comp-badge-color-positive-strong-border,
    ),
    'medium': (
      bg: tokens.$bm-comp-badge-color-positive-medium-bg,
      fg: tokens.$bm-comp-badge-color-positive-medium-fg,
      border: tokens.$bm-comp-badge-color-positive-medium-border,
    ),
    'subtle': (
      bg: tokens.$bm-comp-badge-color-positive-subtle-bg,
      fg: tokens.$bm-comp-badge-color-positive-subtle-fg,
      border: tokens.$bm-comp-badge-color-positive-subtle-border,
    ),
  ),
  'warning': (
    'strong': (
      bg: tokens.$bm-comp-badge-color-warning-strong-bg,
      fg: tokens.$bm-comp-badge-color-warning-strong-fg,
      border: tokens.$bm-comp-badge-color-warning-strong-border,
    ),
    'medium': (
      bg: tokens.$bm-comp-badge-color-warning-medium-bg,
      fg: tokens.$bm-comp-badge-color-warning-medium-fg,
      border: tokens.$bm-comp-badge-color-warning-medium-border,
    ),
    'subtle': (
      bg: tokens.$bm-comp-badge-color-warning-subtle-bg,
      fg: tokens.$bm-comp-badge-color-warning-subtle-fg,
      border: tokens.$bm-comp-badge-color-warning-subtle-border,
    ),
  ),
  'negative': (
    'strong': (
      bg: tokens.$bm-comp-badge-color-negative-strong-bg,
      fg: tokens.$bm-comp-badge-color-negative-strong-fg,
      border: tokens.$bm-comp-badge-color-negative-strong-border,
    ),
    'medium': (
      bg: tokens.$bm-comp-badge-color-negative-medium-bg,
      fg: tokens.$bm-comp-badge-color-negative-medium-fg,
      border: tokens.$bm-comp-badge-color-negative-medium-border,
    ),
    'subtle': (
      bg: tokens.$bm-comp-badge-color-negative-subtle-bg,
      fg: tokens.$bm-comp-badge-color-negative-subtle-fg,
      border: tokens.$bm-comp-badge-color-negative-subtle-border,
    ),
  ),
  'infoPrimary': (
    'strong': (
      bg: tokens.$bm-comp-badge-color-info-primary-strong-bg,
      fg: tokens.$bm-comp-badge-color-info-primary-strong-fg,
      border: tokens.$bm-comp-badge-color-info-primary-strong-border,
    ),
    'medium': (
      bg: tokens.$bm-comp-badge-color-info-primary-medium-bg,
      fg: tokens.$bm-comp-badge-color-info-primary-medium-fg,
      border: tokens.$bm-comp-badge-color-info-primary-medium-border,
    ),
    'subtle': (
      bg: tokens.$bm-comp-badge-color-info-primary-subtle-bg,
      fg: tokens.$bm-comp-badge-color-info-primary-subtle-fg,
      border: tokens.$bm-comp-badge-color-info-primary-subtle-border,
    ),
  ),
  'infoSecondary': (
    'strong': (
      bg: tokens.$bm-comp-badge-color-info-secondary-strong-bg,
      fg: tokens.$bm-comp-badge-color-info-secondary-strong-fg,
      border: tokens.$bm-comp-badge-color-info-secondary-strong-border,
    ),
    'medium': (
      bg: tokens.$bm-comp-badge-color-info-secondary-medium-bg,
      fg: tokens.$bm-comp-badge-color-info-secondary-medium-fg,
      border: tokens.$bm-comp-badge-color-info-secondary-medium-border,
    ),
    'subtle': (
      bg: tokens.$bm-comp-badge-color-info-secondary-subtle-bg,
      fg: tokens.$bm-comp-badge-color-info-secondary-subtle-fg,
      border: tokens.$bm-comp-badge-color-info-secondary-subtle-border,
    ),
  ),
  'accent': (
    // BadgeIndicator uses accent today; Badge does not expose it yet, so Badge's
    // loop emits three unreachable rules until the appearance lands there.
    'strong':
      (
        bg: tokens.$bm-comp-badge-color-accent-strong-bg,
        fg: tokens.$bm-comp-badge-color-accent-strong-fg,
        border: tokens.$bm-comp-badge-color-accent-strong-border,
      ),
    'medium': (
      bg: tokens.$bm-comp-badge-color-accent-medium-bg,
      fg: tokens.$bm-comp-badge-color-accent-medium-fg,
      border: tokens.$bm-comp-badge-color-accent-medium-border,
    ),
    'subtle': (
      bg: tokens.$bm-comp-badge-color-accent-subtle-bg,
      fg: tokens.$bm-comp-badge-color-accent-subtle-fg,
      border: tokens.$bm-comp-badge-color-accent-subtle-border,
    ),
  ),
);
