@import "../utilities/mixins"

$panel-font-size: var(--size-normal, #{$size-normal}) !default
$panel-margin: var(--block-spacing, #{$block-spacing}) !default
$panel-item-border: 1px solid var(--border-light, #{$border-light}) !default
$panel-radius: var(--radius-large, #{$radius-large}) !default
$panel-shadow: var(--shadow, #{$shadow}) !default

$panel-heading-background-color: var(--border-light, #{$border-light}) !default
$panel-heading-color: var(--text-strong, #{$text-strong}) !default
$panel-heading-line-height: 1.25 !default
$panel-heading-padding: 0.75em 1em !default
$panel-heading-radius: var(--radius, #{$radius}) !default
$panel-heading-size: 1.25em !default
$panel-heading-weight: var(--weight-bold, #{$weight-bold}) !default

$panel-tabs-font-size: 0.875em !default
$panel-tab-border-bottom: 1px solid var(--border, #{$border}) !default
$panel-tab-active-border-bottom-color: var(--link-active-border, #{$link-active-border}) !default
$panel-tab-active-color: var(--link-active, #{$link-active}) !default

$panel-list-item-color: var(--text, #{$text}) !default
$panel-list-item-hover-color: var(--link, #{$link}) !default

$panel-block-color: var(--text-strong, #{$text-strong}) !default
$panel-block-hover-background-color: var(--background, #{$background}) !default
$panel-block-active-border-left-color: var(--link, #{$link}) !default
$panel-block-active-color: var(--link-active, #{$link-active}) !default
$panel-block-active-icon-color: var(--link, #{$link}) !default

$panel-icon-color: var(--text-light, #{$text-light}) !default
$panel-colors: $colors !default

$css-vars-map: ('panel-font-size': ($panel-font-size),'panel-margin': ($panel-margin),'panel-item-border': ($panel-item-border),'panel-radius': ($panel-radius),'panel-shadow': ($panel-shadow),'panel-heading-background-color': ($panel-heading-background-color),'panel-heading-color': ($panel-heading-color),'panel-heading-line-height': ($panel-heading-line-height),'panel-heading-padding': ($panel-heading-padding),'panel-heading-size': ($panel-heading-size),'panel-heading-weight': ($panel-heading-weight),'panel-tabs-font-size': ($panel-tabs-font-size),'panel-tab-border-bottom': ($panel-tab-border-bottom),'panel-tab-active-border-bottom-color': ($panel-tab-active-border-bottom-color),'panel-tab-active-color': ($panel-tab-active-color),'panel-list-item-color': ($panel-list-item-color),'panel-list-item-hover-color': ($panel-list-item-hover-color),'panel-block-color': ($panel-block-color),'panel-block-hover-background-color': ($panel-block-hover-background-color),'panel-block-active-border-left-color': ($panel-block-active-border-left-color),'panel-block-active-color': ($panel-block-active-color),'panel-block-active-icon-color': ($panel-block-active-icon-color),'panel-icon-color': ($panel-icon-color))
// --panel-font-size: #{$panel-font-size}
// --panel-margin: #{$panel-margin}
// --panel-item-border: #{$panel-item-border}
// --panel-radius: #{$panel-radius}
// --panel-shadow: #{$panel-shadow}
// --panel-heading-background-color: #{$panel-heading-background-color}
// --panel-heading-color: #{$panel-heading-color}
// --panel-heading-line-height: #{$panel-heading-line-height}
// --panel-heading-padding: #{$panel-heading-padding}
// --panel-heading-size: #{$panel-heading-size}
// --panel-heading-weight: #{$panel-heading-weight}
// --panel-tabs-font-size: #{$panel-tabs-font-size}
// --panel-tab-border-bottom: #{$panel-tab-border-bottom}
// --panel-tab-active-border-bottom-color: #{$panel-tab-active-border-bottom-color}
// --panel-tab-active-color: #{$panel-tab-active-color}
// --panel-list-item-color: #{$panel-list-item-color}
// --panel-list-item-hover-color: #{$panel-list-item-hover-color}
// --panel-block-color: #{$panel-block-color}
// --panel-block-hover-background-color: #{$panel-block-hover-background-color}
// --panel-block-active-border-left-color: #{$panel-block-active-border-left-color}
// --panel-block-active-color: #{$panel-block-active-color}
// --panel-block-active-icon-color: #{$panel-block-active-icon-color}
// --panel-icon-color: #{$panel-icon-color}

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

.panel
  border-radius: var(--panel-radius)
  box-shadow: var(--panel-shadow)
  font-size: var(--panel-font-size)
  &:not(:last-child)
    margin-bottom: var(--panel-margin)
  // Colors
  @each $name, $components in $panel-colors
    $color: nth($components, 1)
    $color-invert: nth($components, 2)
    &.is-#{$name}
      .panel-heading
        background-color: var(--#{$name}, #{$color})
        color: var(--#{$name}-invert, #{$color-invert})
      .panel-tabs a.is-active
        border-bottom-color: var(--#{$name}, #{$color})
      .panel-block.is-active .panel-icon
        color: var(--#{$name}, #{$color})

.panel-tabs,
.panel-block
  &:not(:last-child)
    border-bottom: var(--panel-item-border)

.panel-heading
  background-color: var(--panel-heading-background-color)
  border-radius: var(--panel-radius) var(--panel-radius) 0 0
  color: var(--panel-heading-color)
  font-size: var(--panel-heading-size)
  font-weight: var(--panel-heading-weight)
  line-height: var(--panel-heading-line-height)
  padding: var(--panel-heading-padding)

.panel-tabs
  align-items: flex-end
  display: flex
  font-size: var(--panel-tabs-font-size)
  justify-content: center
  a
    border-bottom: var(--panel-tab-border-bottom)
    margin-bottom: -1px
    padding: 0.5em
    // Modifiers
    &.is-active
      border-bottom-color: var(--panel-tab-active-border-bottom-color)
      color: var(--panel-tab-active-color)

.panel-list
  a
    color: var(--panel-list-item-color)
    &:hover
      color: var(--panel-list-item-hover-color)

.panel-block
  align-items: center
  color: var(--panel-block-color)
  display: flex
  justify-content: flex-start
  padding: 0.5em 0.75em
  input[type="checkbox"]
    +ltr-property("margin", 0.75em)
  & > .control
    flex-grow: 1
    flex-shrink: 1
    width: 100%
  &.is-wrapped
    flex-wrap: wrap
  &.is-active
    border-left-color: var(--panel-block-active-border-left-color)
    color: var(--panel-block-active-color)
    .panel-icon
      color: var(--panel-block-active-icon-color)
  &:last-child
    border-bottom-left-radius: var(--panel-radius)
    border-bottom-right-radius: var(--panel-radius)

a.panel-block,
label.panel-block
  cursor: pointer
  &:hover
    background-color: var(--panel-block-hover-background-color)

.panel-icon
  +fa(14px, 1em)
  color: var(--panel-icon-color)
  +ltr-property("margin", 0.75em)
  .fa
    font-size: inherit
    line-height: inherit
