{"version":3,"sources":["webpack:///./packages/mdc-tab-bar/mdc-tab-bar.scss","webpack:///./packages/mdc-tab-bar/_mixins.scss","webpack:///mdc-tab-bar.scss","webpack:///./packages/material-components-web/node_modules/@material/tab/_mixins.scss"],"names":[],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;EAAA;ACiCE;EAiBE,WAhBe;ACVnB;;AD2CE;EEgNE,YFtNO;ACjCX;;ADwDE;EE+LE,YFrMO;AC9CX,C","file":"mdc.tab-bar.css","sourcesContent":["/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n@use './mixins';\n@include mixins.core-styles;\n","//\n// Copyright 2018 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n// stylelint-disable selector-class-pattern --\n// Selector '.mdc-*' should only be used in this project.\n\n@use '@material/animation/variables' as animation-variables;\n@use '@material/density/functions' as density-functions;\n@use '@material/feature-targeting/feature-targeting';\n@use '@material/tab-scroller/mixins' as tab-scroller-mixins;\n@use '@material/tab/mixins' as tab-mixins;\n@use './variables';\n\n@mixin static-styles($query: feature-targeting.all()) {\n  .mdc-tab-bar {\n    @include width(100%, $query);\n  }\n}\n\n@mixin core-styles($query: feature-targeting.all()) {\n  // postcss-bem-linter: define tab-bar\n  @include static-styles($query: $query);\n  @include density(variables.$density-scale, $query: $query);\n  @include stacked-density(variables.$stacked-density-scale, $query: $query);\n  // postcss-bem-linter: end\n}\n\n@mixin width($width, $query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include feature-targeting.targets($feat-structure) {\n    width: $width;\n  }\n}\n\n///\n/// Sets density scale to default tab bar variant. Use `mdc-tab-bar-stacked-density()` mixin for stacked tab bar\n/// variant.\n///\n/// @param {Number} $density-scale Density scale value. Supported density scales `-4`, `-3`, `-2`, `-1` and `0`.\n///\n@mixin density($density-scale, $query: feature-targeting.all()) {\n  $height: density-functions.prop-value(\n    $density-config: variables.$density-config,\n    $density-scale: $density-scale,\n    $property-name: height,\n  );\n\n  .mdc-tab {\n    @include tab-mixins.height($height, $query: $query);\n  }\n}\n\n///\n/// Sets density scale to stacked tab bar variant.\n///\n/// @param {Number} $density-scale Density scale value. Supported density scales `-4`, `-3`, `-2`, `-1` and `0`.\n///\n@mixin stacked-density($density-scale, $query: feature-targeting.all()) {\n  $height: density-functions.prop-value(\n    $density-config: variables.$stacked-density-config,\n    $density-scale: $density-scale,\n    $property-name: height,\n  );\n\n  .mdc-tab--stacked {\n    @include tab-mixins.height($height, $query: $query);\n  }\n}\n\n///\n/// Sets the CSS transition for the tab scrolling animation. This mixin is a proxy to `mdc-tab-scroller-transition`\n/// mixin.\n///\n/// @param {Number | String} $duration-ms - Duration (in ms) of the animation.\n/// @param {String} $timing-function - Optionally overrides the default animation timing function.\n///\n@mixin tab-scroller-transition(\n  $duration-ms,\n  $timing-function: animation-variables.$standard-curve-timing-function,\n  $query: feature-targeting.all()\n) {\n  .mdc-tab-scroller {\n    @include tab-scroller-mixins.transition(\n      $duration-ms,\n      $timing-function: $timing-function,\n      $query: $query\n    );\n  }\n}\n","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n.mdc-tab-bar {\n  width: 100%;\n}\n\n.mdc-tab {\n  height: 48px;\n}\n\n.mdc-tab--stacked {\n  height: 72px;\n}","//\n// Copyright 2018 Google Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\n// stylelint-disable selector-class-pattern --\n// Selector '.mdc-*' should only be used in this project.\n\n@use '@material/feature-targeting/feature-targeting';\n@use '@material/focus-ring/focus-ring';\n@use '@material/ripple/ripple';\n@use '@material/ripple/ripple-theme';\n@use '@material/theme/theme';\n@use '@material/typography/typography';\n@use '@material/rtl/rtl';\n@use '@material/tab-indicator/mixins' as tab-indicator-mixins;\n@use './variables';\n\n// Public mixins\n\n@mixin core-styles($query: feature-targeting.all()) {\n  @include without-ripple($query);\n  @include ripple($query);\n}\n\n@mixin static-styles($query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n  $feat-animation: feature-targeting.create-target($query, animation);\n\n  .mdc-tab {\n    @include min-width(variables.$min-width, $query);\n    @include horizontal-padding(variables.$horizontal-padding, $query);\n\n    @include feature-targeting.targets($feat-structure) {\n      display: flex;\n      flex: 1 0 auto;\n      justify-content: center;\n      box-sizing: border-box;\n      // Explicitly setting margin to 0 is to override safari default margin for button elements.\n      margin: 0;\n      padding-top: 0;\n      padding-bottom: 0;\n      border: none;\n      outline: none;\n      text-align: center;\n      white-space: nowrap;\n      cursor: pointer;\n      -webkit-appearance: none;\n      z-index: 1;\n\n      // Firefox still draws a dotted border around focused buttons unless specifically overridden.\n      &::-moz-focus-inner {\n        padding: 0;\n        border: 0;\n      }\n\n      &[hidden] {\n        display: none;\n      }\n    }\n  }\n\n  .mdc-tab--min-width {\n    @include feature-targeting.targets($feat-structure) {\n      flex: 0 1 auto;\n    }\n  }\n\n  .mdc-tab__content {\n    @include feature-targeting.targets($feat-structure) {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      height: inherit;\n      pointer-events: none;\n    }\n  }\n\n  .mdc-tab__text-label {\n    @include feature-targeting.targets($feat-animation) {\n      transition: 150ms color linear;\n    }\n\n    @include feature-targeting.targets($feat-structure) {\n      display: inline-block;\n      // Setting line-height here overrides the line-height from the typography\n      // mixin above. The line-height needs to be overridden so that the spacing\n      // between the text label and the icon as well as the text label and the\n      // bottom of the tab remain the same.\n      line-height: 1;\n      z-index: 2;\n    }\n  }\n\n  .mdc-tab__icon {\n    @include feature-targeting.targets($feat-animation) {\n      transition: 150ms color linear;\n    }\n\n    @include feature-targeting.targets($feat-structure) {\n      z-index: 2;\n    }\n  }\n\n  .mdc-tab--stacked {\n    @include stacked_($query);\n  }\n\n  .mdc-tab--active {\n    .mdc-tab__text-label,\n    .mdc-tab__icon {\n      @include feature-targeting.targets($feat-animation) {\n        transition-delay: 100ms;\n      }\n    }\n  }\n\n  .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label {\n    @include feature-targeting.targets($feat-structure) {\n      @include rtl.reflexive-box(padding, left, 8px);\n    }\n  }\n}\n\n// This API is intended for use by frameworks that may want to separate the ripple-related styles\n// from the other tah styles. It is recommended that most users use `mdc-tab-core-styles` instead.\n@mixin without-ripple($query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n  $feat-animation: feature-targeting.create-target($query, animation);\n\n  // postcss-bem-linter: define tab\n\n  .mdc-tab {\n    @include base_($query);\n  }\n\n  .mdc-tab__content {\n    @include content_($query);\n  }\n\n  .mdc-tab__icon {\n    @include feature-targeting.targets($feat-structure) {\n      width: variables.$icon-size;\n      height: variables.$icon-size;\n      font-size: variables.$icon-size;\n    }\n  }\n\n  .mdc-tab--active {\n    @include active_($query);\n  }\n\n  .mdc-tab {\n    @include feature-targeting.targets($feat-structure) {\n      background: none;\n    }\n  }\n\n  @include static-styles($query: $query);\n  // postcss-bem-linter: end\n}\n\n// This API is intended for use by frameworks that may want to separate the ripple-related styles\n// from the other tah styles. It is recommended that most users use `mdc-tab-core-styles` instead.\n@mixin ripple($query: feature-targeting.all()) {\n  @include ripple.common($query); // COPYBARA_COMMENT_THIS_LINE\n\n  @include ripple_($query);\n}\n\n@mixin horizontal-padding($padding, $query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include feature-targeting.targets($feat-structure) {\n    padding-right: $padding;\n    padding-left: $padding;\n  }\n}\n\n@mixin text-label-color($color, $query: feature-targeting.all()) {\n  $feat-color: feature-targeting.create-target($query, color);\n\n  .mdc-tab__text-label {\n    @include feature-targeting.targets($feat-color) {\n      @include theme.property(color, $color);\n    }\n  }\n}\n\n@mixin icon-color($color, $query: feature-targeting.all()) {\n  $feat-color: feature-targeting.create-target($query, color);\n\n  .mdc-tab__icon {\n    @include feature-targeting.targets($feat-color) {\n      @include theme.property(color, $color);\n\n      fill: currentColor;\n    }\n  }\n}\n\n@mixin states-color($color, $query: feature-targeting.all()) {\n  @include ripple-theme.states(\n    $color,\n    $query: $query,\n    $ripple-target: variables.$ripple-target\n  );\n}\n\n@mixin ink-color($color, $query: feature-targeting.all()) {\n  @include icon-color($color, $query);\n  @include states-color($color, $query);\n  @include text-label-color($color, $query);\n}\n\n@mixin active-text-label-color($color, $query: feature-targeting.all()) {\n  &.mdc-tab--active {\n    @include text-label-color($color, $query);\n  }\n}\n\n@mixin active-icon-color($color, $query: feature-targeting.all()) {\n  &.mdc-tab--active {\n    @include icon-color($color, $query);\n  }\n}\n\n@mixin active-states-color($color, $query: feature-targeting.all()) {\n  &.mdc-tab--active {\n    @include states-color($color, $query);\n  }\n}\n\n@mixin parent-positioning($query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include feature-targeting.targets($feat-structure) {\n    position: relative;\n  }\n}\n\n@mixin fixed-width($width, $query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include feature-targeting.targets($feat-structure) {\n    flex: 0 1 $width;\n  }\n}\n\n///\n/// Sets tab height\n///\n/// @param {Number} $height Height value in `px`.\n///\n@mixin height($height, $query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include feature-targeting.targets($feat-structure) {\n    height: $height;\n  }\n}\n\n///\n/// Sets tab text transform\n///\n/// @param {String} $transform The text-transform property to apply.\n///\n@mixin text-transform($transform, $query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include feature-targeting.targets($feat-structure) {\n    text-transform: $transform;\n  }\n}\n\n///\n/// Sets tab min-width.\n///\n/// @param {Number} $min-width Minimum width value in `px`.\n///\n@mixin min-width($min-width, $query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include feature-targeting.targets($feat-structure) {\n    min-width: $min-width;\n  }\n}\n\n//\n// Private\n//\n\n@mixin base_($query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include typography.typography(button, $query);\n  @include text-label-color(variables.$text-label-color-default, $query);\n  @include icon-color(variables.$icon-color-default, $query);\n  @include tab-indicator-mixins.surface($query);\n\n  @include ripple-theme.focus() {\n    &.mdc-tab--active .mdc-tab__focus-ring {\n      @include focus-ring.focus-ring(\n        $query: $query,\n        $ring-radius: 10px,\n        $container-outer-padding-vertical: -6px,\n        $container-outer-padding-horizontal: -4px\n      );\n\n      @include feature-targeting.targets($feat-structure) {\n        margin-top: -2px;\n        // Set z-index to +1 above the .mdc-tab\n        z-index: 2;\n      }\n    }\n\n    .mdc-tab__focus-ring {\n      @include focus-ring.focus-ring(\n        $query: $query,\n        $ring-radius: 10px,\n        $container-outer-padding-vertical: -4px,\n        $container-outer-padding-horizontal: -4px\n      );\n\n      @include feature-targeting.targets($feat-structure) {\n        // Set z-index to +1 above the .mdc-tab\n        z-index: 2;\n      }\n    }\n  }\n}\n\n@mixin ripple_($query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  .mdc-tab {\n    @include ripple.surface(\n      $query,\n      $ripple-target: variables.$ripple-target,\n      $include-will-change: false\n    );\n    @include ripple.radius-bounded(\n      $query: $query,\n      $ripple-target: variables.$ripple-target\n    );\n    @include ripple-theme.states(\n      $color: primary,\n      $query: $query,\n      $ripple-target: variables.$ripple-target\n    );\n  }\n\n  #{variables.$ripple-target} {\n    @include feature-targeting.targets($feat-structure) {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n      // TODO(b/151931961): Remove the following line once resolved\n      will-change: transform, opacity;\n    }\n  }\n}\n\n@mixin content_($query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include tab-indicator-mixins.surface($query);\n}\n\n@mixin stacked_($query: feature-targeting.all()) {\n  $feat-structure: feature-targeting.create-target($query, structure);\n\n  @include feature-targeting.targets($feat-structure) {\n    .mdc-tab__content {\n      flex-direction: column;\n      align-items: center;\n      justify-content: center;\n    }\n\n    .mdc-tab__text-label {\n      padding-top: 6px;\n      padding-bottom: 4px;\n    }\n  }\n}\n\n@mixin active_($query: feature-targeting.all()) {\n  $feat-animation: feature-targeting.create-target($query, animation);\n\n  @include text-label-color(variables.$text-label-color-active, $query);\n  @include icon-color(variables.$icon-color-active, $query);\n}\n"],"sourceRoot":""}