| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 | 
							- // stylelint-disable selector-no-qualifying-type
 - 
 - // Make the div behave like a button
 - .btn-group,
 - .btn-group-vertical {
 -   position: relative;
 -   display: inline-flex;
 -   vertical-align: middle; // match .btn alignment given font-size hack above
 - 
 -   > .btn {
 -     position: relative;
 -     flex: 0 1 auto;
 - 
 -     // Bring the hover, focused, and "active" buttons to the front to overlay
 -     // the borders properly
 -     @include hover {
 -       z-index: 2;
 -     }
 -     &:focus,
 -     &:active,
 -     &.active {
 -       z-index: 2;
 -     }
 -   }
 - 
 -   // Prevent double borders when buttons are next to each other
 -   .btn + .btn,
 -   .btn + .btn-group,
 -   .btn-group + .btn,
 -   .btn-group + .btn-group {
 -     margin-left: -$input-btn-border-width;
 -   }
 - }
 - 
 - // Optional: Group multiple button groups together for a toolbar
 - .btn-toolbar {
 -   display: flex;
 -   flex-wrap: wrap;
 -   justify-content: flex-start;
 - 
 -   .input-group {
 -     width: auto;
 -   }
 - }
 - 
 - .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
 -   border-radius: 0;
 - }
 - 
 - // Set corners individual because sometimes a single button can be in a .btn-group
 - // and we need :first-child and :last-child to both match
 - .btn-group > .btn:first-child {
 -   margin-left: 0;
 - 
 -   &:not(:last-child):not(.dropdown-toggle) {
 -     @include border-right-radius(0);
 -   }
 - }
 - // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu
 - // immediately after it
 - .btn-group > .btn:last-child:not(:first-child),
 - .btn-group > .dropdown-toggle:not(:first-child) {
 -   @include border-left-radius(0);
 - }
 - 
 - // Custom edits for including btn-groups within btn-groups (useful for including
 - // dropdown buttons within a btn-group)
 - .btn-group > .btn-group {
 -   float: left;
 - }
 - 
 - .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
 -   border-radius: 0;
 - }
 - 
 - .btn-group > .btn-group:first-child:not(:last-child) {
 -   > .btn:last-child,
 -   > .dropdown-toggle {
 -     @include border-right-radius(0);
 -   }
 - }
 - 
 - .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
 -   @include border-left-radius(0);
 - }
 - 
 - 
 - // Sizing
 - //
 - // Remix the default button sizing classes into new ones for easier manipulation.
 - 
 - .btn-group-sm > .btn { @extend .btn-sm; }
 - .btn-group-lg > .btn { @extend .btn-lg; }
 - 
 - 
 - //
 - // Split button dropdowns
 - //
 - 
 - .btn + .dropdown-toggle-split {
 -   padding-right: $input-btn-padding-x * .75;
 -   padding-left: $input-btn-padding-x * .75;
 - 
 -   &::after {
 -     margin-left: 0;
 -   }
 - }
 - 
 - .btn-sm + .dropdown-toggle-split {
 -   padding-right: $input-btn-padding-x-sm * .75;
 -   padding-left: $input-btn-padding-x-sm * .75;
 - }
 - 
 - .btn-lg + .dropdown-toggle-split {
 -   padding-right: $input-btn-padding-x-lg * .75;
 -   padding-left: $input-btn-padding-x-lg * .75;
 - }
 - 
 - 
 - // The clickable button for toggling the menu
 - // Set the same inset shadow as the :active state
 - .btn-group.show .dropdown-toggle {
 -   @include box-shadow($btn-active-box-shadow);
 - 
 -   // Show no shadow for `.btn-link` since it has no other button styles.
 -   &.btn-link {
 -     @include box-shadow(none);
 -   }
 - }
 - 
 - 
 - //
 - // Vertical button groups
 - //
 - 
 - .btn-group-vertical {
 -   flex-direction: column;
 -   align-items: flex-start;
 -   justify-content: center;
 - 
 -   .btn,
 -   .btn-group {
 -     width: 100%;
 -   }
 - 
 -   > .btn + .btn,
 -   > .btn + .btn-group,
 -   > .btn-group + .btn,
 -   > .btn-group + .btn-group {
 -     margin-top: -$input-btn-border-width;
 -     margin-left: 0;
 -   }
 - 
 -   > .btn {
 -     &:not(:first-child):not(:last-child) {
 -       border-radius: 0;
 -     }
 - 
 -     &:first-child:not(:last-child) {
 -       @include border-bottom-radius(0);
 -     }
 - 
 -     &:last-child:not(:first-child) {
 -       @include border-top-radius(0);
 -     }
 -   }
 - 
 -   > .btn-group:not(:first-child):not(:last-child) > .btn {
 -     border-radius: 0;
 -   }
 - 
 -   > .btn-group:first-child:not(:last-child) {
 -     > .btn:last-child,
 -     > .dropdown-toggle {
 -       @include border-bottom-radius(0);
 -     }
 -   }
 - 
 -   > .btn-group:last-child:not(:first-child) > .btn:first-child {
 -     @include border-top-radius(0);
 -   }
 - }
 - 
 - 
 - // Checkbox and radio options
 - //
 - // In order to support the browser's form validation feedback, powered by the
 - // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
 - // `display: none;` or `visibility: hidden;` as that also hides the popover.
 - // Simply visually hiding the inputs via `opacity` would leave them clickable in
 - // certain cases which is prevented by using `clip` and `pointer-events`.
 - // This way, we ensure a DOM element is visible to position the popover from.
 - //
 - // See https://github.com/twbs/bootstrap/pull/12794 and
 - // https://github.com/twbs/bootstrap/pull/14559 for more information.
 - 
 - [data-toggle="buttons"] {
 -   > .btn,
 -   > .btn-group > .btn {
 -     input[type="radio"],
 -     input[type="checkbox"] {
 -       position: absolute;
 -       clip: rect(0,0,0,0);
 -       pointer-events: none;
 -     }
 -   }
 - }
 
 
  |