@import "../utilities/mixins"

$menu-item-color: var(--text, #{$text}) !default
$menu-item-radius: var(--radius-small, #{$radius-small}) !default
$menu-item-hover-color: var(--text-strong, #{$text-strong}) !default
$menu-item-hover-background-color: var(--background, #{$background}) !default
$menu-item-active-color: var(--link-invert, #{$link-invert}) !default
$menu-item-active-background-color: var(--link, #{$link}) !default
$menu-font-size: var(--size-normal, #{$size-normal}) !default

$menu-list-border-left: 1px solid var(--border, #{$border}) !default
$menu-list-line-height: 1.25 !default
$menu-list-link-padding: 0.5em 0.75em !default
$menu-nested-list-margin: 0.75em !default
$menu-nested-list-padding-left: 0.75em !default

$menu-label-color: var(--text-light, #{$text-light}) !default
$menu-label-font-size: 0.75em !default
$menu-label-letter-spacing: 0.1em !default
$menu-label-spacing: 1em !default

$css-vars-map: ('menu-font-size': ($menu-font-size),'menu-list-line-height': ($menu-list-line-height),'menu-item-radius': ($menu-item-radius),'menu-item-color': ($menu-item-color),'menu-list-link-padding': ($menu-list-link-padding),'menu-item-hover-background-color': ($menu-item-hover-background-color),'menu-item-hover-color': ($menu-item-hover-color),'menu-item-active-background-color': ($menu-item-active-background-color),'menu-item-active-color': ($menu-item-active-color),'menu-list-border-left': ($menu-list-border-left),'menu-nested-list-padding-left': ($menu-nested-list-padding-left),'menu-nested-list-margin': ($menu-nested-list-margin),'menu-label-color': ($menu-label-color),'menu-label-font-size': ($menu-label-font-size),'menu-label-letter-spacing': ($menu-label-letter-spacing),'menu-label-spacing': ($menu-label-spacing))
// --menu-font-size: #{$menu-font-size}
// --menu-list-line-height: #{$menu-list-line-height}
// --menu-item-radius: #{$menu-item-radius}
// --menu-item-color: #{$menu-item-color}
// --menu-list-link-padding: #{$menu-list-link-padding}
// --menu-item-hover-background-color: #{$menu-item-hover-background-color}
// --menu-item-hover-color: #{$menu-item-hover-color}
// --menu-item-active-background-color: #{$menu-item-active-background-color}
// --menu-item-active-color: #{$menu-item-active-color}
// --menu-list-border-left: #{$menu-list-border-left}
// --menu-nested-list-padding-left: #{$menu-nested-list-padding-left}
// --menu-nested-list-margin: #{$menu-nested-list-margin}
// --menu-label-color: #{$menu-label-color}
// --menu-label-font-size: #{$menu-label-font-size}
// --menu-label-letter-spacing: #{$menu-label-letter-spacing}
// --menu-label-spacing: #{$menu-label-spacing}

.menu, [class^="menu-"]
  +registerCSSVars($css-vars-map, $at-root)

.menu
  font-size: var(--menu-font-size)
  // Sizes
  &.is-small
    --menu-font-size: var(--size-small, #{$size-small})
  &.is-medium
    --menu-font-size: var(--size-medium, #{$size-medium})
  &.is-large
    --menu-font-size: var(--size-large, #{$size-large})

.menu-list
  line-height: var(--menu-list-line-height)
  a
    border-radius: var(--menu-item-radius)
    color: var(--menu-item-color)
    display: block
    padding: var(--menu-list-link-padding)
    &:hover
      background-color: var(--menu-item-hover-background-color)
      color: var(--menu-item-hover-color)
    // Modifiers
    &.is-active
      background-color: var(--menu-item-active-background-color)
      color: var(--menu-item-active-color)
  li
    ul
      +ltr-property("border", var(--menu-list-border-left), false)
      margin: var(--menu-nested-list-margin)
      +ltr-property("padding", var(--menu-nested-list-padding-left), false)

.menu-label
  color: var(--menu-label-color)
  font-size: var(--menu-label-font-size)
  letter-spacing: var(--menu-label-letter-spacing)
  text-transform: uppercase
  &:not(:first-child)
    margin-top: var(--menu-label-spacing)
  &:not(:last-child)
    margin-bottom: var(--menu-label-spacing)
