bootstrap-rn 0.2.10 → 0.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,10 +2,10 @@ import { OverlayProvider, useOverlayPosition, OverlayContainer } from '@react-na
2
2
  export { PortalProvider } from '@react-native-aria/overlays';
3
3
  import { Platform, PixelRatio, StyleSheet as StyleSheet$1, I18nManager, Dimensions, View as View$1, Text as Text$1, Pressable as Pressable$1, SafeAreaView, unstable_createElement, findNodeHandle, TextInput as TextInput$1, Image as Image$1, ImageBackground as ImageBackground$1, ScrollView as ScrollView$1, Modal as Modal$1, Picker as Picker$1, Animated, Easing } from 'react-native';
4
4
  import { transformRawValue, getStylesForProperty, getPropertyName } from 'css-to-react-native';
5
- import { rgba as rgba$1, mix, parseToRgb } from 'polished';
6
5
  import React, { useState, useEffect, useMemo, useRef, useContext, createContext } from 'react';
7
6
  import PropTypes from 'prop-types';
8
7
  import invariant from 'tiny-invariant';
8
+ import { useFocusRing } from '@react-native-aria/focus';
9
9
  import { SvgXml } from 'react-native-svg';
10
10
 
11
11
  function ownKeys(object, enumerableOnly) {
@@ -193,6 +193,10 @@ function _slicedToArray(arr, i) {
193
193
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
194
194
  }
195
195
 
196
+ function _toArray(arr) {
197
+ return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
198
+ }
199
+
196
200
  function _toConsumableArray(arr) {
197
201
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
198
202
  }
@@ -502,7 +506,7 @@ var directive = {
502
506
  }
503
507
  };
504
508
 
505
- var SELECTOR_TYPES = ['hover', 'focus', 'active'];
509
+ var SELECTOR_TYPES = ['hover', 'focus', 'focus-visible', 'active'];
506
510
  var selector = {
507
511
  locate: function locate(input) {
508
512
  return input.peek() === '&' && input.peek(1) === ':';
@@ -632,128 +636,150 @@ function parse() {
632
636
 
633
637
  var transformREMUnitRE = /([+-]+)?([\d.Ee]+)rem/g;
634
638
 
639
+ var convertRemToPx = function convertRemToPx(value) {
640
+ return PixelRatio.getFontScale() * 16 * value;
641
+ };
642
+
635
643
  function rem(value) {
636
644
  if (Platform.OS === 'web') {
637
645
  return value;
638
646
  }
639
647
 
640
- return value.replace(transformREMUnitRE, function (_, unary, number) {
641
- return "".concat(unary || '').concat(PixelRatio.getFontScale() * 16 * number, "px");
648
+ return value.replace(transformREMUnitRE, function (_) {
649
+ var unary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
650
+ var number = arguments.length > 2 ? arguments[2] : undefined;
651
+ return "".concat(unary).concat(convertRemToPx(number), "px");
642
652
  });
643
653
  }
644
654
 
645
- var valueRE = /^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;
655
+ var valueRE = /^([+-]?(?:\d+|\d*\.\d+))(rem|px|%)?$/;
646
656
 
647
- var parseValue = function parseValue(value) {
648
- if (Array.isArray(value)) {
649
- return value;
650
- }
657
+ var UnitValue = /*#__PURE__*/function () {
658
+ function UnitValue(value) {
659
+ var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'number';
651
660
 
652
- if (typeof value === 'number') {
653
- return [value, null];
654
- }
661
+ _classCallCheck(this, UnitValue);
655
662
 
656
- var matchedValue = value.match(valueRE);
663
+ _defineProperty(this, "value", void 0);
657
664
 
658
- if (matchedValue) {
659
- return [parseFloat(value), matchedValue[2]];
665
+ _defineProperty(this, "unit", void 0);
666
+
667
+ this.value = value;
668
+ this.unit = unit;
660
669
  }
661
670
 
662
- return [value, undefined];
663
- };
671
+ _createClass(UnitValue, [{
672
+ key: "toNumber",
673
+ value: function toNumber() {
674
+ if (this.unit === 'percent') {
675
+ return this.value / 100;
676
+ }
664
677
 
665
- var getUnit = function getUnit(left, right) {
666
- if (!left && !right) {
667
- return '';
668
- }
678
+ if (this.unit === 'rem') {
679
+ return this.value * PixelRatio.getFontScale() * 16;
680
+ }
669
681
 
670
- if (!left) {
671
- return right;
672
- }
682
+ return this.value;
683
+ }
684
+ }, {
685
+ key: "toString",
686
+ value: function toString() {
687
+ if (this.unit === 'number') {
688
+ return this.value;
689
+ }
673
690
 
674
- if (!right || left === right) {
675
- return left;
676
- }
691
+ if (this.unit === 'percent') {
692
+ return "".concat(this.value, "%");
693
+ }
677
694
 
678
- throw new Error("Different units ".concat(left, " and ").concat(right, " found for arithmetic operation."));
679
- };
695
+ return "".concat(this.value).concat(this.unit);
696
+ }
697
+ }], [{
698
+ key: "parse",
699
+ value: function parse(value) {
700
+ if (value instanceof UnitValue) {
701
+ return value;
702
+ }
703
+
704
+ if (typeof value === 'number') {
705
+ return new UnitValue(value, 'number');
706
+ }
707
+
708
+ var match = value.match(valueRE);
709
+
710
+ if (!match) {
711
+ throw new Error("Cannot parse number \"".concat(value, "\"."));
712
+ }
713
+
714
+ return new UnitValue(parseFloat(match[1]), match[2] === '%' ? 'percent' : match[2]);
715
+ }
716
+ }]);
717
+
718
+ return UnitValue;
719
+ }();
680
720
 
681
721
  var POWER = Math.pow(10, 8);
722
+ var UNIT_ORDER = ['percent', 'number', 'px', 'rem'];
682
723
 
683
724
  var fixRounding = function fixRounding(value) {
684
725
  return Math.round(value * POWER) / POWER;
685
726
  };
686
727
 
687
- var calculateValue = function calculateValue(leftValue, operator, rightValue) {
688
- if (operator === '+') {
689
- return leftValue + rightValue;
690
- }
691
-
692
- if (operator === '-') {
693
- return leftValue - rightValue;
728
+ var normalizeValue$1 = function normalizeValue(number1, number2) {
729
+ if (number1.unit === 'px' && number2.unit === 'rem') {
730
+ return number1.value / (PixelRatio.getFontScale() * 16);
694
731
  }
695
732
 
696
- if (operator === '*') {
697
- return fixRounding(leftValue * rightValue);
733
+ if (number1.unit === 'percent' && number2.unit !== 'percent') {
734
+ return number1.value / 100;
698
735
  }
699
736
 
700
- if (operator === '/') {
701
- return fixRounding(leftValue / rightValue);
702
- }
703
-
704
- if (operator === '%') {
705
- return leftValue % rightValue;
706
- }
707
-
708
- throw new Error('Unknown operator.');
737
+ return number1.value;
709
738
  };
710
739
 
711
- function calculate(left, operator, right) {
712
- var _parseValue = parseValue(left),
713
- _parseValue2 = _slicedToArray(_parseValue, 2),
714
- leftValue = _parseValue2[0],
715
- leftUnit = _parseValue2[1];
740
+ var calculateValue = function calculateValue(number1, operator, number2) {
741
+ var value1 = normalizeValue$1(number1, number2);
742
+ var value2 = normalizeValue$1(number2, number1);
716
743
 
717
- var _parseValue3 = parseValue(right),
718
- _parseValue4 = _slicedToArray(_parseValue3, 2),
719
- rightValue = _parseValue4[0],
720
- rightUnit = _parseValue4[1];
744
+ switch (operator) {
745
+ case '+':
746
+ return value1 + value2;
721
747
 
722
- var unit = getUnit(leftUnit, rightUnit);
723
- return "".concat(calculateValue(leftValue, operator, rightValue)).concat(unit);
724
- }
748
+ case '-':
749
+ return value1 - value2;
725
750
 
726
- var convertToREM = function convertToREM(value) {
727
- var remValue = value / (PixelRatio.getFontScale() * 16);
728
- return [remValue, 'rem'];
729
- }; // Use calculateAdvanced for mixed px/rem units.
751
+ case '*':
752
+ return fixRounding(value1 * value2);
730
753
 
754
+ case '/':
755
+ return fixRounding(value1 / value2);
731
756
 
732
- function calculateAdvanced(left, operator, right) {
733
- var parsedLeft = parseValue(left);
757
+ case '%':
758
+ return value1 % value2;
734
759
 
735
- var _parsedLeft = _slicedToArray(parsedLeft, 2),
736
- leftValue = _parsedLeft[0],
737
- leftUnit = _parsedLeft[1];
738
-
739
- var parsedRight = parseValue(right);
740
-
741
- var _parsedRight = _slicedToArray(parsedRight, 2),
742
- rightValue = _parsedRight[0],
743
- rightUnit = _parsedRight[1];
744
-
745
- if (leftUnit === 'px' && rightUnit === 'rem') {
746
- return calculate(convertToREM(leftValue), operator, parsedRight);
760
+ default:
761
+ throw new Error('Unknown operator.');
747
762
  }
763
+ };
748
764
 
749
- if (leftUnit === 'rem' && rightUnit === 'px') {
750
- return calculate(parsedLeft, operator, convertToREM(rightValue));
751
- }
765
+ var determineUnit = function determineUnit(number1, number2) {
766
+ var index1 = UNIT_ORDER.indexOf(number1.unit);
767
+ var index2 = UNIT_ORDER.indexOf(number2.unit);
768
+ return index1 > index2 ? number1.unit : number2.unit;
769
+ };
752
770
 
753
- return calculate(parsedLeft, operator, parsedRight);
771
+ function calculate(value1, operator, value2) {
772
+ var number1 = UnitValue.parse(value1);
773
+ var number2 = UnitValue.parse(value2);
774
+ var value = calculateValue(number1, operator, number2);
775
+ var unit = determineUnit(number1, number2);
776
+ return new UnitValue(value, unit).toString();
777
+ }
778
+ function normalizeNumber(value) {
779
+ return UnitValue.parse(value).toNumber();
754
780
  }
755
781
 
756
- var formulaRE = /([+-])?([\d.Ee]+)(rem|px)?\s*(\+|-|\*|%)\s*([+-])?([\d.Ee]+)(rem|px)?/g;
782
+ var formulaRE = /([+-]+)?([\d.Ee]+)(rem|px|%)?\s*(\+|-|\*|%)\s*([+-]+)?([\d.Ee]+)(rem|px|%)?/g;
757
783
 
758
784
  function formula(value) {
759
785
  // Naïve approach to calculate simple formulas.
@@ -761,22 +787,316 @@ function formula(value) {
761
787
  return value.replace(formulaRE, function (_) {
762
788
  var leftUnary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
763
789
  var leftNumber = arguments.length > 2 ? arguments[2] : undefined;
764
- var leftUnit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
790
+ var leftUnit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
765
791
  var operator = arguments.length > 4 ? arguments[4] : undefined;
766
792
  var rightUnary = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';
767
793
  var rightNumber = arguments.length > 6 ? arguments[6] : undefined;
768
- var rightUnit = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;
769
- var leftValue = [parseFloat("".concat(leftUnary).concat(leftNumber)), leftUnit];
770
- var rightValue = [parseFloat("".concat(rightUnary).concat(rightNumber)), rightUnit];
794
+ var rightUnit = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';
795
+ var leftValue = "".concat(leftUnary).concat(leftNumber).concat(leftUnit);
796
+ var rightValue = "".concat(rightUnary).concat(rightNumber).concat(rightUnit);
771
797
  return calculate(leftValue, operator, rightValue);
772
798
  });
773
799
  }
774
800
 
801
+ // Copied from https://github.com/styled-components/polished/blob/main/src/color/parseToRgb.js
802
+ var hexRE = /^#[a-fA-F0-9]{6}$/;
803
+ var hexRgbaRE = /^#[a-fA-F0-9]{8}$/;
804
+ var shortHexRE = /^#[a-fA-F0-9]{3}$/;
805
+ var shortRgbaHexRE = /^#[a-fA-F0-9]{4}$/;
806
+ var rgbRE = /^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i;
807
+ var rgbaRE = /^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;
808
+ var hslRE = /^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i;
809
+ var hslaRE = /^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i; // Copied from https://reactnative.dev/docs/colors
810
+ // prettier-ignore
811
+
812
+ var colorNames = {
813
+ aliceblue: '#f0f8ff',
814
+ antiquewhite: '#faebd7',
815
+ aqua: '#00ffff',
816
+ aquamarine: '#7fffd4',
817
+ azure: '#f0ffff',
818
+ beige: '#f5f5dc',
819
+ bisque: '#ffe4c4',
820
+ black: '#000000',
821
+ blanchedalmond: '#ffebcd',
822
+ blue: '#0000ff',
823
+ blueviolet: '#8a2be2',
824
+ brown: '#a52a2a',
825
+ burlywood: '#deb887',
826
+ cadetblue: '#5f9ea0',
827
+ chartreuse: '#7fff00',
828
+ chocolate: '#d2691e',
829
+ coral: '#ff7f50',
830
+ cornflowerblue: '#6495ed',
831
+ cornsilk: '#fff8dc',
832
+ crimson: '#dc143c',
833
+ cyan: '#00ffff',
834
+ darkblue: '#00008b',
835
+ darkcyan: '#008b8b',
836
+ darkgoldenrod: '#b8860b',
837
+ darkgray: '#a9a9a9',
838
+ darkgreen: '#006400',
839
+ darkgrey: '#a9a9a9',
840
+ darkkhaki: '#bdb76b',
841
+ darkmagenta: '#8b008b',
842
+ darkolivegreen: '#556b2f',
843
+ darkorange: '#ff8c00',
844
+ darkorchid: '#9932cc',
845
+ darkred: '#8b0000',
846
+ darksalmon: '#e9967a',
847
+ darkseagreen: '#8fbc8f',
848
+ darkslateblue: '#483d8b',
849
+ darkslategrey: '#2f4f4f',
850
+ darkturquoise: '#00ced1',
851
+ darkviolet: '#9400d3',
852
+ deeppink: '#ff1493',
853
+ deepskyblue: '#00bfff',
854
+ dimgray: '#696969',
855
+ dimgrey: '#696969',
856
+ dodgerblue: '#1e90ff',
857
+ firebrick: '#b22222',
858
+ floralwhite: '#fffaf0',
859
+ forestgreen: '#228b22',
860
+ fuchsia: '#ff00ff',
861
+ gainsboro: '#dcdcdc',
862
+ ghostwhite: '#f8f8ff',
863
+ gold: '#ffd700',
864
+ goldenrod: '#daa520',
865
+ gray: '#808080',
866
+ green: '#008000',
867
+ greenyellow: '#adff2f',
868
+ grey: '#808080',
869
+ honeydew: '#f0fff0',
870
+ hotpink: '#ff69b4',
871
+ indianred: '#cd5c5c',
872
+ indigo: '#4b0082',
873
+ ivory: '#fffff0',
874
+ khaki: '#f0e68c',
875
+ lavender: '#e6e6fa',
876
+ lavenderblush: '#fff0f5',
877
+ lawngreen: '#7cfc00',
878
+ lemonchiffon: '#fffacd',
879
+ lightblue: '#add8e6',
880
+ lightcoral: '#f08080',
881
+ lightcyan: '#e0ffff',
882
+ lightgoldenrodyellow: '#fafad2',
883
+ lightgray: '#d3d3d3',
884
+ lightgreen: '#90ee90',
885
+ lightgrey: '#d3d3d3',
886
+ lightpink: '#ffb6c1',
887
+ lightsalmon: '#ffa07a',
888
+ lightseagreen: '#20b2aa',
889
+ lightskyblue: '#87cefa',
890
+ lightslategrey: '#778899',
891
+ lightsteelblue: '#b0c4de',
892
+ lightyellow: '#ffffe0',
893
+ lime: '#00ff00',
894
+ limegreen: '#32cd32',
895
+ linen: '#faf0e6',
896
+ magenta: '#ff00ff',
897
+ maroon: '#800000',
898
+ mediumaquamarine: '#66cdaa',
899
+ mediumblue: '#0000cd',
900
+ mediumorchid: '#ba55d3',
901
+ mediumpurple: '#9370db',
902
+ mediumseagreen: '#3cb371',
903
+ mediumslateblue: '#7b68ee',
904
+ mediumspringgreen: '#00fa9a',
905
+ mediumturquoise: '#48d1cc',
906
+ mediumvioletred: '#c71585',
907
+ midnightblue: '#191970',
908
+ mintcream: '#f5fffa',
909
+ mistyrose: '#ffe4e1',
910
+ moccasin: '#ffe4b5',
911
+ navajowhite: '#ffdead',
912
+ navy: '#000080',
913
+ oldlace: '#fdf5e6',
914
+ olive: '#808000',
915
+ olivedrab: '#6b8e23',
916
+ orange: '#ffa500',
917
+ orangered: '#ff4500',
918
+ orchid: '#da70d6',
919
+ palegoldenrod: '#eee8aa',
920
+ palegreen: '#98fb98',
921
+ paleturquoise: '#afeeee',
922
+ palevioletred: '#db7093',
923
+ papayawhip: '#ffefd5',
924
+ peachpuff: '#ffdab9',
925
+ peru: '#cd853f',
926
+ pink: '#ffc0cb',
927
+ plum: '#dda0dd',
928
+ powderblue: '#b0e0e6',
929
+ purple: '#800080',
930
+ rebeccapurple: '#663399',
931
+ red: '#ff0000',
932
+ rosybrown: '#bc8f8f',
933
+ royalblue: '#4169e1',
934
+ saddlebrown: '#8b4513',
935
+ salmon: '#fa8072',
936
+ sandybrown: '#f4a460',
937
+ seagreen: '#2e8b57',
938
+ seashell: '#fff5ee',
939
+ sienna: '#a0522d',
940
+ silver: '#c0c0c0',
941
+ skyblue: '#87ceeb',
942
+ slateblue: '#6a5acd',
943
+ slategray: '#708090',
944
+ snow: '#fffafa',
945
+ springgreen: '#00ff7f',
946
+ steelblue: '#4682b4',
947
+ tan: '#d2b48c',
948
+ teal: '#008080',
949
+ thistle: '#d8bfd8',
950
+ tomato: '#ff6347',
951
+ turquoise: '#40e0d0',
952
+ violet: '#ee82ee',
953
+ wheat: '#f5deb3',
954
+ white: '#ffffff',
955
+ whitesmoke: '#f5f5f5',
956
+ yellow: '#ffff00',
957
+ yellowgreen: '#9acd32'
958
+ };
959
+
960
+ var hslToRgb = function hslToRgb(h, s, l) {
961
+ var a = s * Math.min(l, 1 - l);
962
+
963
+ var f = function f(n) {
964
+ var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;
965
+ return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
966
+ };
967
+
968
+ return [f(0), f(8), f(4)];
969
+ };
970
+
971
+ var RgbaValue = /*#__PURE__*/function () {
972
+ function RgbaValue(red, green, blue) {
973
+ var alpha = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
974
+
975
+ _classCallCheck(this, RgbaValue);
976
+
977
+ _defineProperty(this, "red", void 0);
978
+
979
+ _defineProperty(this, "green", void 0);
980
+
981
+ _defineProperty(this, "blue", void 0);
982
+
983
+ _defineProperty(this, "alpha", void 0);
984
+
985
+ this.red = red;
986
+ this.green = green;
987
+ this.blue = blue;
988
+ this.alpha = alpha;
989
+ }
990
+
991
+ _createClass(RgbaValue, [{
992
+ key: "toRgb",
993
+ value: function toRgb() {
994
+ return [this.red, this.green, this.blue];
995
+ }
996
+ }, {
997
+ key: "toRgba",
998
+ value: function toRgba() {
999
+ return [].concat(_toConsumableArray(this.toRgb()), [this.alpha]);
1000
+ }
1001
+ }, {
1002
+ key: "toHex",
1003
+ value: function toHex() {
1004
+ var _this$toRgb = this.toRgb(),
1005
+ _this$toRgb2 = _toArray(_this$toRgb),
1006
+ values = _this$toRgb2.slice(0);
1007
+
1008
+ if (this.alpha < 1) {
1009
+ values.push(this.alpha);
1010
+ }
1011
+
1012
+ return "#".concat(values.map(function (x) {
1013
+ var hex = x.toString(16);
1014
+ return hex.length === 1 ? "0".concat(hex) : hex;
1015
+ }).join(''));
1016
+ }
1017
+ }], [{
1018
+ key: "parse",
1019
+ value: function parse(value) {
1020
+ if (value instanceof RgbaValue) {
1021
+ return value;
1022
+ }
1023
+
1024
+ var color = colorNames[value] || value; // Handle hex value
1025
+
1026
+ var hexMatch = color.match(hexRE) || color.match(hexRgbaRE) || color.match(shortHexRE) || color.match(shortRgbaHexRE);
1027
+
1028
+ if (hexMatch) {
1029
+ var params = (hexMatch[0].length <= 4 ? hexMatch[0].match(/\w/g).map(function (x) {
1030
+ return "".concat(x).concat(x);
1031
+ }) : hexMatch[0].match(/\w\w/g)).map(function (hex, key) {
1032
+ var x = parseInt(hex, 16);
1033
+ var alpha = key === 3;
1034
+ return alpha ? (x / 255).toFixed(2) : x;
1035
+ });
1036
+ return _construct(RgbaValue, _toConsumableArray(params));
1037
+ } // Handle rgb(a) value
1038
+
1039
+
1040
+ var rgbMatch = color.match(rgbRE) || color.match(rgbaRE);
1041
+
1042
+ if (rgbMatch) {
1043
+ var _params = rgbMatch.slice(1).map(function (x, key) {
1044
+ var alpha = key === 3;
1045
+ return alpha ? parseFloat(x) : parseInt(x, 10);
1046
+ });
1047
+
1048
+ return _construct(RgbaValue, _toConsumableArray(_params));
1049
+ } // Handle hsl(a) value
1050
+
1051
+
1052
+ var hslMatch = color.match(hslRE) || color.match(hslaRE);
1053
+
1054
+ if (hslMatch) {
1055
+ var h = parseInt(hslMatch[1], 10);
1056
+ var s = parseInt(hslMatch[2], 10) / 100;
1057
+ var l = parseInt(hslMatch[3], 10) / 100;
1058
+ var alpha = hslMatch[4] && parseFloat(hslMatch[4]);
1059
+ return _construct(RgbaValue, [].concat(_toConsumableArray(hslToRgb(h, s, l)), [alpha]));
1060
+ }
1061
+
1062
+ throw new Error("Unknown color \"".concat(value, "\"."));
1063
+ }
1064
+ }]);
1065
+
1066
+ return RgbaValue;
1067
+ }();
1068
+
1069
+ function rgba$1(value, alpha) {
1070
+ var color = RgbaValue.parse(value);
1071
+ return "rgba(".concat(color.red, ",").concat(color.green, ",").concat(color.blue, ",").concat(alpha, ")");
1072
+ } // Sass equivalent
1073
+
1074
+ function opacity(value) {
1075
+ return RgbaValue.parse(value).alpha;
1076
+ } // Sass equivalent
1077
+
1078
+ function mix(color1, color2) {
1079
+ var weight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.5;
1080
+ var rgb1 = RgbaValue.parse(color1).toRgb();
1081
+ var rgb2 = RgbaValue.parse(color2).toRgb();
1082
+ var percentage = UnitValue.parse(weight).toNumber();
1083
+
1084
+ var _rgb1$map = rgb1.map(function (value, key) {
1085
+ return Math.round(rgb2[key] + (value - rgb2[key]) * percentage);
1086
+ }),
1087
+ _rgb1$map2 = _slicedToArray(_rgb1$map, 3),
1088
+ r = _rgb1$map2[0],
1089
+ g = _rgb1$map2[1],
1090
+ b = _rgb1$map2[2];
1091
+
1092
+ return new RgbaValue(r, g, b).toHex();
1093
+ }
1094
+
775
1095
  var transformRgbaRE = /rgba\(\s*([#0-9a-z]+)\s*,\s*([\d.Ee]+)\s*\)/g;
776
1096
 
777
1097
  function rgba(value) {
778
- return value.replace(transformRgbaRE, function (_, color, alpha) {
779
- return rgba$1(color, Number(alpha));
1098
+ return value.replace(transformRgbaRE, function (_, hex, alpha) {
1099
+ return rgba$1(hex, alpha);
780
1100
  });
781
1101
  }
782
1102
 
@@ -1104,15 +1424,19 @@ function createStyle(definitions) {
1104
1424
  var active = platformDefinitions[key].scopes.every(function (scope) {
1105
1425
  if (scope.type === 'selector') {
1106
1426
  if (scope.name === 'hover') {
1107
- return interaction && interaction.hovered;
1427
+ return interaction && interaction.hover;
1108
1428
  }
1109
1429
 
1110
1430
  if (scope.name === 'focus') {
1111
- return interaction && interaction.focused;
1431
+ return interaction && interaction.focus;
1432
+ }
1433
+
1434
+ if (scope.name === 'focus-visible') {
1435
+ return interaction && interaction.focusVisible;
1112
1436
  }
1113
1437
 
1114
1438
  if (scope.name === 'active') {
1115
- return interaction && interaction.pressed;
1439
+ return interaction && interaction.active;
1116
1440
  }
1117
1441
  }
1118
1442
 
@@ -1215,20 +1539,16 @@ function getElementId(identifier, name) {
1215
1539
  return "".concat(identifier).concat(name ? "-".concat(name) : '');
1216
1540
  }
1217
1541
  function transformPlacement$1(placement) {
1218
- if (placement === 'left') {
1219
- return I18nManager.isRTL ? 'end' : 'start';
1220
- }
1542
+ switch (placement) {
1543
+ case 'left':
1544
+ return I18nManager.isRTL ? 'end' : 'start';
1221
1545
 
1222
- if (placement === 'right') {
1223
- return I18nManager.isRTL ? 'start' : 'end';
1224
- }
1546
+ case 'right':
1547
+ return I18nManager.isRTL ? 'start' : 'end';
1225
1548
 
1226
- return placement;
1227
- }
1228
- function convertToNumber(value) {
1229
- return parseFloat(value.replace(/([+-])?([\d.Ee]+)rem/g, function (_, unary, number) {
1230
- return "".concat(unary || '').concat(PixelRatio.getFontScale() * 16 * number, "px");
1231
- }));
1549
+ default:
1550
+ return placement;
1551
+ }
1232
1552
  }
1233
1553
 
1234
1554
  // keys, but not the resolved values. The values are added later by the used
@@ -2104,8 +2424,7 @@ var fn = function fn(handle) {
2104
2424
 
2105
2425
  return function (t) {
2106
2426
  var input = args.map(function (arg) {
2107
- var value = typeof arg === 'function' ? arg(t) : arg;
2108
- return value;
2427
+ return typeof arg === 'function' ? arg(t) : arg;
2109
2428
  });
2110
2429
  return handle(input, t);
2111
2430
  };
@@ -2134,28 +2453,31 @@ var escapeSvg = function escapeSvg(string) {
2134
2453
  return string.startsWith('url(') ? "url(\"".concat(strReplace(string.slice(5, -2)), "\")") : strReplace(string);
2135
2454
  }; // Color contrast
2136
2455
  // A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)
2456
+ // prettier-ignore
2137
2457
 
2138
2458
  var luminanceList = [0.0008, 0.001, 0.0011, 0.0013, 0.0015, 0.0017, 0.002, 0.0022, 0.0025, 0.0027, 0.003, 0.0033, 0.0037, 0.004, 0.0044, 0.0048, 0.0052, 0.0056, 0.006, 0.0065, 0.007, 0.0075, 0.008, 0.0086, 0.0091, 0.0097, 0.0103, 0.011, 0.0116, 0.0123, 0.013, 0.0137, 0.0144, 0.0152, 0.016, 0.0168, 0.0176, 0.0185, 0.0194, 0.0203, 0.0212, 0.0222, 0.0232, 0.0242, 0.0252, 0.0262, 0.0273, 0.0284, 0.0296, 0.0307, 0.0319, 0.0331, 0.0343, 0.0356, 0.0369, 0.0382, 0.0395, 0.0409, 0.0423, 0.0437, 0.0452, 0.0467, 0.0482, 0.0497, 0.0513, 0.0529, 0.0545, 0.0561, 0.0578, 0.0595, 0.0612, 0.063, 0.0648, 0.0666, 0.0685, 0.0704, 0.0723, 0.0742, 0.0762, 0.0782, 0.0802, 0.0823, 0.0844, 0.0865, 0.0887, 0.0908, 0.0931, 0.0953, 0.0976, 0.0999, 0.1022, 0.1046, 0.107, 0.1095, 0.1119, 0.1144, 0.117, 0.1195, 0.1221, 0.1248, 0.1274, 0.1301, 0.1329, 0.1356, 0.1384, 0.1413, 0.1441, 0.147, 0.15, 0.1529, 0.1559, 0.159, 0.162, 0.1651, 0.1683, 0.1714, 0.1746, 0.1779, 0.1812, 0.1845, 0.1878, 0.1912, 0.1946, 0.1981, 0.2016, 0.2051, 0.2086, 0.2122, 0.2159, 0.2195, 0.2232, 0.227, 0.2307, 0.2346, 0.2384, 0.2423, 0.2462, 0.2502, 0.2542, 0.2582, 0.2623, 0.2664, 0.2705, 0.2747, 0.2789, 0.2831, 0.2874, 0.2918, 0.2961, 0.3005, 0.305, 0.3095, 0.314, 0.3185, 0.3231, 0.3278, 0.3325, 0.3372, 0.3419, 0.3467, 0.3515, 0.3564, 0.3613, 0.3663, 0.3712, 0.3763, 0.3813, 0.3864, 0.3916, 0.3968, 0.402, 0.4072, 0.4125, 0.4179, 0.4233, 0.4287, 0.4342, 0.4397, 0.4452, 0.4508, 0.4564, 0.4621, 0.4678, 0.4735, 0.4793, 0.4851, 0.491, 0.4969, 0.5029, 0.5089, 0.5149, 0.521, 0.5271, 0.5333, 0.5395, 0.5457, 0.552, 0.5583, 0.5647, 0.5711, 0.5776, 0.5841, 0.5906, 0.5972, 0.6038, 0.6105, 0.6172, 0.624, 0.6308, 0.6376, 0.6445, 0.6514, 0.6584, 0.6654, 0.6724, 0.6795, 0.6867, 0.6939, 0.7011, 0.7084, 0.7157, 0.7231, 0.7305, 0.7379, 0.7454, 0.7529, 0.7605, 0.7682, 0.7758, 0.7835, 0.7913, 0.7991, 0.807, 0.8148, 0.8228, 0.8308, 0.8388, 0.8469, 0.855, 0.8632, 0.8714, 0.8796, 0.8879, 0.8963, 0.9047, 0.9131, 0.9216, 0.9301, 0.9387, 0.9473, 0.956, 0.9647, 0.9734, 0.9823, 0.9911, 1]; // Return WCAG2.0 relative luminance
2139
2459
  // See https://www.w3.org/WAI/GL/wiki/Relative_luminance
2140
2460
  // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
2141
2461
 
2142
2462
  var luminance = function luminance(color) {
2143
- var rgb = parseToRgb(color);
2144
- Object.entries(rgb).forEach(function (_ref3) {
2145
- var _ref4 = _slicedToArray(_ref3, 2),
2146
- name = _ref4[0],
2147
- value = _ref4[1];
2463
+ var rgb = RgbaValue.parse(color).toRgb();
2148
2464
 
2149
- rgb[name] = value / 255 < 0.03928 ? value / 255 / 12.92 : luminanceList[value];
2150
- });
2151
- return rgb.red * 0.2126 + rgb.green * 0.7152 + rgb.blue * 0.0722;
2465
+ var _rgb$map = rgb.map(function (value) {
2466
+ return value / 255 < 0.04045 ? value / 255 / 12.92 : luminanceList[value];
2467
+ }),
2468
+ _rgb$map2 = _slicedToArray(_rgb$map, 3),
2469
+ red = _rgb$map2[0],
2470
+ green = _rgb$map2[1],
2471
+ blue = _rgb$map2[2];
2472
+
2473
+ return red * 0.2126 + green * 0.7152 + blue * 0.0722;
2152
2474
  }; // Return opaque color
2153
2475
  // opaque(#fff, rgba(0, 0, 0, .5)) => #808080
2154
2476
 
2155
2477
 
2156
2478
  var opaque = function opaque(background, foreground) {
2157
- var opacity = parseToRgb(foreground).alpha || 1;
2158
- return mix(opacity, rgba$1(foreground, 1), background);
2479
+ var foregroundRgba = RgbaValue.parse(foreground);
2480
+ return mix(rgba$1(foregroundRgba, 1), background, opacity(foregroundRgba));
2159
2481
  };
2160
2482
 
2161
2483
  var contrastRatio = function contrastRatio(background, foreground) {
@@ -2164,9 +2486,9 @@ var contrastRatio = function contrastRatio(background, foreground) {
2164
2486
  return l1 > l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05);
2165
2487
  };
2166
2488
 
2167
- var colorContrast = fn(function (_ref5, t) {
2168
- var _ref6 = _slicedToArray(_ref5, 1),
2169
- background = _ref6[0];
2489
+ var colorContrast = fn(function (_ref3, t) {
2490
+ var _ref4 = _slicedToArray(_ref3, 1),
2491
+ background = _ref4[0];
2170
2492
 
2171
2493
  var foregrounds = [t['color-contrast-light'], t['color-contrast-dark'], t.white, t.black];
2172
2494
  var maxRatio = 0;
@@ -2195,34 +2517,35 @@ var colorContrast = fn(function (_ref5, t) {
2195
2517
  return maxRatioColor;
2196
2518
  }); // Tint a color: mix a color with white
2197
2519
 
2198
- var tintColor = fn(function (_ref7, t) {
2199
- var _ref8 = _slicedToArray(_ref7, 2),
2200
- weight = _ref8[0],
2201
- color = _ref8[1];
2520
+ var tintColor = fn(function (_ref5, t) {
2521
+ var _ref6 = _slicedToArray(_ref5, 2),
2522
+ color = _ref6[0],
2523
+ weight = _ref6[1];
2202
2524
 
2203
- return mix(weight, t.white, color);
2525
+ return mix(t.white, color, weight);
2204
2526
  }); // Shade a color: mix a color with black
2205
2527
 
2206
- var shadeColor = fn(function (_ref9, t) {
2207
- var _ref10 = _slicedToArray(_ref9, 2),
2208
- weight = _ref10[0],
2209
- color = _ref10[1];
2528
+ var shadeColor = fn(function (_ref7, t) {
2529
+ var _ref8 = _slicedToArray(_ref7, 2),
2530
+ color = _ref8[0],
2531
+ weight = _ref8[1];
2210
2532
 
2211
- return mix(weight, t.black, color);
2533
+ return mix(t.black, color, weight);
2212
2534
  }); // Shade the color if the weight is positive, else tint it
2213
2535
 
2214
- var shiftColor = fn(function (_ref11, t) {
2215
- var _ref12 = _slicedToArray(_ref11, 2),
2216
- weight = _ref12[0],
2217
- color = _ref12[1];
2536
+ var shiftColor = fn(function (_ref9, t) {
2537
+ var _ref10 = _slicedToArray(_ref9, 2),
2538
+ color = _ref10[0],
2539
+ weight = _ref10[1];
2218
2540
 
2219
- var handle = weight > 0 ? shadeColor(weight, color) : tintColor(-weight, color);
2541
+ var percentage = UnitValue.parse(weight).toNumber();
2542
+ var handle = percentage > 0 ? shadeColor(color, percentage) : tintColor(color, -percentage);
2220
2543
  return handle(t);
2221
2544
  });
2222
- var add = fn(function (_ref13) {
2223
- var _ref14 = _slicedToArray(_ref13, 2),
2224
- value1 = _ref14[0],
2225
- value2 = _ref14[1];
2545
+ var add = fn(function (_ref11) {
2546
+ var _ref12 = _slicedToArray(_ref11, 2),
2547
+ value1 = _ref12[0],
2548
+ value2 = _ref12[1];
2226
2549
 
2227
2550
  if (value1 === null) {
2228
2551
  return value2;
@@ -2232,12 +2555,12 @@ var add = fn(function (_ref13) {
2232
2555
  return value1;
2233
2556
  }
2234
2557
 
2235
- return calculateAdvanced(value1, '+', value2);
2558
+ return calculate(value1, '+', value2);
2236
2559
  });
2237
- var subtract = fn(function (_ref15) {
2238
- var _ref16 = _slicedToArray(_ref15, 2),
2239
- value1 = _ref16[0],
2240
- value2 = _ref16[1];
2560
+ var subtract = fn(function (_ref13) {
2561
+ var _ref14 = _slicedToArray(_ref13, 2),
2562
+ value1 = _ref14[0],
2563
+ value2 = _ref14[1];
2241
2564
 
2242
2565
  if (value1 === null && value2 === null) {
2243
2566
  return null;
@@ -2251,12 +2574,12 @@ var subtract = fn(function (_ref15) {
2251
2574
  return value1;
2252
2575
  }
2253
2576
 
2254
- return calculateAdvanced(value1, '-', value2);
2577
+ return calculate(value1, '-', value2);
2255
2578
  });
2256
- var divide = fn(function (_ref17) {
2257
- var _ref18 = _slicedToArray(_ref17, 2),
2258
- dividend = _ref18[0],
2259
- divisor = _ref18[1];
2579
+ var divide = fn(function (_ref15) {
2580
+ var _ref16 = _slicedToArray(_ref15, 2),
2581
+ dividend = _ref16[0],
2582
+ divisor = _ref16[1];
2260
2583
 
2261
2584
  if (Math.abs(parseFloat(dividend)) === 0) {
2262
2585
  return 0;
@@ -2266,7 +2589,7 @@ var divide = fn(function (_ref17) {
2266
2589
  throw new Error('Cannot divide by 0');
2267
2590
  }
2268
2591
 
2269
- return calculateAdvanced(dividend, '/', divisor);
2592
+ return calculate(dividend, '/', divisor);
2270
2593
  });
2271
2594
  /* eslint-enable */
2272
2595
 
@@ -2280,7 +2603,7 @@ var url = function url(val) {
2280
2603
  };
2281
2604
  };
2282
2605
 
2283
- var variables = css(_templateObject$1e || (_templateObject$1e = _taggedTemplateLiteral(["\n // Color system\n\n $white: #fff;\n $gray-100: #f8f9fa;\n $gray-200: #e9ecef;\n $gray-300: #dee2e6;\n $gray-400: #ced4da;\n $gray-500: #adb5bd;\n $gray-600: #6c757d;\n $gray-700: #495057;\n $gray-800: #343a40;\n $gray-900: #212529;\n $black: #000;\n\n $grays: ", ";\n\n $blue: #0d6efd;\n $indigo: #6610f2;\n $purple: #6f42c1;\n $pink: #d63384;\n $red: #dc3545;\n $orange: #fd7e14;\n $yellow: #ffc107;\n $green: #198754;\n $teal: #20c997;\n $cyan: #0dcaf0;\n\n $colors: ", ";\n\n $primary: $blue;\n $secondary: $gray-600;\n $success: $green;\n $info: $cyan;\n $warning: $yellow;\n $danger: $red;\n $light: $gray-100;\n $dark: $gray-900;\n\n $theme-colors: ", ";\n\n // The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n // See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n $min-contrast-ratio: 4.5;\n\n // Customize the light and dark text colors for use in our color contrast function.\n $color-contrast-dark: $black;\n $color-contrast-light: $white;\n\n $blue-100: tint-color($blue, 80%);\n $blue-200: tint-color($blue, 60%);\n $blue-300: tint-color($blue, 40%);\n $blue-400: tint-color($blue, 20%);\n $blue-500: $blue;\n $blue-600: shade-color($blue, 20%);\n $blue-700: shade-color($blue, 40%);\n $blue-800: shade-color($blue, 60%);\n $blue-900: shade-color($blue, 80%);\n\n $indigo-100: tint-color($indigo, 80%);\n $indigo-200: tint-color($indigo, 60%);\n $indigo-300: tint-color($indigo, 40%);\n $indigo-400: tint-color($indigo, 20%);\n $indigo-500: $indigo;\n $indigo-600: shade-color($indigo, 20%);\n $indigo-700: shade-color($indigo, 40%);\n $indigo-800: shade-color($indigo, 60%);\n $indigo-900: shade-color($indigo, 80%);\n\n $purple-100: tint-color($purple, 80%);\n $purple-200: tint-color($purple, 60%);\n $purple-300: tint-color($purple, 40%);\n $purple-400: tint-color($purple, 20%);\n $purple-500: $purple;\n $purple-600: shade-color($purple, 20%);\n $purple-700: shade-color($purple, 40%);\n $purple-800: shade-color($purple, 60%);\n $purple-900: shade-color($purple, 80%);\n\n $pink-100: tint-color($pink, 80%);\n $pink-200: tint-color($pink, 60%);\n $pink-300: tint-color($pink, 40%);\n $pink-400: tint-color($pink, 20%);\n $pink-500: $pink;\n $pink-600: shade-color($pink, 20%);\n $pink-700: shade-color($pink, 40%);\n $pink-800: shade-color($pink, 60%);\n $pink-900: shade-color($pink, 80%);\n\n $red-100: tint-color($red, 80%);\n $red-200: tint-color($red, 60%);\n $red-300: tint-color($red, 40%);\n $red-400: tint-color($red, 20%);\n $red-500: $red;\n $red-600: shade-color($red, 20%);\n $red-700: shade-color($red, 40%);\n $red-800: shade-color($red, 60%);\n $red-900: shade-color($red, 80%);\n\n $orange-100: tint-color($orange, 80%);\n $orange-200: tint-color($orange, 60%);\n $orange-300: tint-color($orange, 40%);\n $orange-400: tint-color($orange, 20%);\n $orange-500: $orange;\n $orange-600: shade-color($orange, 20%);\n $orange-700: shade-color($orange, 40%);\n $orange-800: shade-color($orange, 60%);\n $orange-900: shade-color($orange, 80%);\n\n $yellow-100: tint-color($yellow, 80%);\n $yellow-200: tint-color($yellow, 60%);\n $yellow-300: tint-color($yellow, 40%);\n $yellow-400: tint-color($yellow, 20%);\n $yellow-500: $yellow;\n $yellow-600: shade-color($yellow, 20%);\n $yellow-700: shade-color($yellow, 40%);\n $yellow-800: shade-color($yellow, 60%);\n $yellow-900: shade-color($yellow, 80%);\n\n $green-100: tint-color($green, 80%);\n $green-200: tint-color($green, 60%);\n $green-300: tint-color($green, 40%);\n $green-400: tint-color($green, 20%);\n $green-500: $green;\n $green-600: shade-color($green, 20%);\n $green-700: shade-color($green, 40%);\n $green-800: shade-color($green, 60%);\n $green-900: shade-color($green, 80%);\n\n $teal-100: tint-color($teal, 80%);\n $teal-200: tint-color($teal, 60%);\n $teal-300: tint-color($teal, 40%);\n $teal-400: tint-color($teal, 20%);\n $teal-500: $teal;\n $teal-600: shade-color($teal, 20%);\n $teal-700: shade-color($teal, 40%);\n $teal-800: shade-color($teal, 60%);\n $teal-900: shade-color($teal, 80%);\n\n $cyan-100: tint-color($cyan, 80%);\n $cyan-200: tint-color($cyan, 60%);\n $cyan-300: tint-color($cyan, 40%);\n $cyan-400: tint-color($cyan, 20%);\n $cyan-500: $cyan;\n $cyan-600: shade-color($cyan, 20%);\n $cyan-700: shade-color($cyan, 40%);\n $cyan-800: shade-color($cyan, 60%);\n $cyan-900: shade-color($cyan, 80%);\n\n $blues: ", ";\n\n $indigos: ", ";\n\n $purples: ", ";\n\n $pinks: ", ";\n\n $reds: ", ";\n\n $oranges: ", ";\n\n $yellows: ", ";\n\n $greens: ", ";\n\n $teals: ", ";\n\n $cyans: ", ";\n\n // Characters which are escaped by the escape-svg function\n // $escaped characters\n\n // Options\n //\n // Quickly modify global styling by enabling or disabling optional features.\n\n // NOTE: Handled by JavaScript.\n\n // Gradient\n //\n // The gradient which is added to components if \"$enable-gradients\" is \"true\"\n // This gradient is also added to elements with \".bg-gradient\"\n $gradient: linear-gradient(180deg, rgba($white, 0.15), rgba($white, 0));\n\n // Spacing\n //\n // Control the default styling of most Bootstrap elements by modifying these\n // variables. Mostly focused on spacing.\n // You can add more entries to the $spacers map, should you need more variation.\n\n $spacer: 1rem;\n $spacers: ", ";\n\n // Position\n //\n // Define the edge positioning anchors of the position utilities.\n\n $position-values: ", ";\n\n // Placeholder\n\n $placeholder-opacity-max: 0.5;\n $placeholder-opacity-min: 0.2;\n\n // Body\n //\n // Settings for the \"<body>\" element.\n\n $body-bg: $white;\n $body-color: $gray-900;\n $body-text-align: null;\n\n // Links\n //\n // Style anchor elements.\n\n $link-color: $primary;\n $link-decoration: underline;\n $link-shade-percentage: 0.2; // 20%;\n $link-hover-color: ", ";\n $link-hover-decoration: null;\n\n $stretched-link-pseudo-element: after;\n $stretched-link-z-index: 1;\n\n // Paragraphs\n //\n // Style p element.\n\n $paragraph-margin-bottom: 1rem;\n\n // Grid breakpoints\n //\n // Define the minimum dimensions at which your layout will change,\n // adapting to different screen sizes, for use in media queries.\n\n $grid-breakpoints: ", ";\n\n // Grid containers\n //\n // Define the maximum width of \".container\" for different screen sizes.\n\n $container-max-widths: ", ";\n\n // Grid columns\n //\n // Set the number of columns and specify the width of the gutters.\n\n // $grid-columns: 12;\n $grid-gutter-width: 1.5rem;\n // $grid-row-columns: 6;\n\n // Container padding\n\n $container-padding-x: $grid-gutter-width * 0.5;\n\n // Components\n //\n // Define common padding and border radius sizes and more.\n\n $border-width: 1px;\n $border-widths: ", ";\n\n $border-color: $gray-300;\n\n $border-radius: 0.25rem;\n $border-radius-sm: 0.2rem;\n $border-radius-lg: 0.3rem;\n $border-radius-pill: 50rem;\n\n $box-shadow: 0 0.5rem 1rem rgba($black, 0.15);\n $box-shadow-sm: 0 0.125rem 0.25rem rgba($black, 0.075);\n $box-shadow-lg: 0 1rem 3rem rgba($black, 0.175);\n $box-shadow-inset: inset 0 1px 2px rgba($black, 0.075);\n\n $component-active-color: $white;\n $component-active-bg: $primary;\n\n $caret-width: 1rem * 0.3; // 0.3em;\n $caret-vertical-align: $caret-width * 0.85;\n $caret-spacing: $caret-width * 0.85;\n\n $transition-base: all 0.2s ease-in-out;\n $transition-fade: opacity 0.15s linear;\n $transition-collapse: height 0.35s ease;\n $transition-collapse-width: width 0.35s ease;\n\n $aspect-ratios: ", ";\n\n // Typography\n //\n // Font, line-height, and color for body text, headings, and more.\n\n $font-family-sans-serif: ", ";\n $font-family-monospace: ", ";\n $font-family-base: $font-family-sans-serif;\n $font-family-code: $font-family-monospace;\n\n // $font-size-root affects the value of \"rem\", which is used for as well font sizes, paddings, and margins\n // $font-size-base affects the font size of the body text\n $font-size-root: null;\n $font-size-base: 1rem; // Assumes the browser default, typically \"16px\"\n $font-size-sm: $font-size-base * 0.875;\n $font-size-lg: $font-size-base * 1.25;\n\n $font-weight-lighter: 300; // lighter;\n $font-weight-light: 300;\n $font-weight-normal: 400;\n $font-weight-bold: 700;\n $font-weight-bolder: 500; // bolder;\n\n $font-weight-base: $font-weight-normal;\n\n $line-height-base: 1.5;\n $line-height-sm: 1.25;\n $line-height-lg: 2;\n\n $h1-font-size: $font-size-base * 2.5;\n $h2-font-size: $font-size-base * 2;\n $h3-font-size: $font-size-base * 1.75;\n $h4-font-size: $font-size-base * 1.5;\n $h5-font-size: $font-size-base * 1.25;\n $h6-font-size: $font-size-base;\n\n $font-sizes: ", ";\n\n $headings-margin-bottom: $spacer * 0.5;\n $headings-font-family: null;\n $headings-font-style: null;\n $headings-font-weight: 500;\n $headings-line-height: 1.2;\n $headings-color: null;\n\n $display-font-sizes: ", ";\n\n $display-font-weight: 300;\n $display-line-height: $headings-line-height;\n\n $lead-font-size: $font-size-base * 1.25;\n $lead-font-weight: 300;\n\n $small-font-size: $font-size-base * 0.875; // 0.875em;\n\n $sub-sup-font-size: $font-size-base * 0.75; // 0.75em;\n\n $text-muted: $gray-600;\n\n $initialism-font-size: $small-font-size;\n\n $blockquote-margin-y: $spacer;\n $blockquote-font-size: $font-size-base * 1.25;\n $blockquote-footer-color: $gray-600;\n $blockquote-footer-font-size: $small-font-size;\n\n $hr-margin-y: $spacer;\n $hr-color: inherit;\n $hr-bg-color: currentColor;\n $hr-border-width: 0;\n $hr-height: $border-width;\n $hr-opacity: 0.25;\n\n $legend-margin-bottom: 0.5rem;\n $legend-font-size: 1.5rem;\n $legend-font-weight: null;\n\n $mark-padding: $font-size-base * 0.2; // 0.2em;\n\n $dt-font-weight: $font-weight-bold;\n\n $nested-kbd-font-weight: $font-weight-bold;\n\n $list-inline-padding: 0.5rem;\n\n $mark-bg: #fcf8e3;\n\n // ...\n\n // Buttons + Forms\n //\n // Shared variables that are reassigned to \"$input-\" and \"$btn-\" specific variables.\n\n $input-btn-padding-y: 0.375rem;\n $input-btn-padding-x: 0.75rem;\n $input-btn-font-family: null;\n $input-btn-font-size: $font-size-base;\n $input-btn-line-height: $line-height-base;\n\n $input-btn-focus-width: 0.25rem;\n $input-btn-focus-color-opacity: 0.25;\n $input-btn-focus-color: rgba(\n $component-active-bg,\n $input-btn-focus-color-opacity\n );\n $input-btn-focus-blur: 0;\n $input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width\n $input-btn-focus-color;\n\n $input-btn-padding-y-sm: 0.25rem;\n $input-btn-padding-x-sm: 0.5rem;\n $input-btn-font-size-sm: $font-size-sm;\n\n $input-btn-padding-y-lg: 0.5rem;\n $input-btn-padding-x-lg: 1rem;\n $input-btn-font-size-lg: $font-size-lg;\n\n $input-btn-border-width: $border-width;\n\n // Buttons\n //\n // For each of Bootstrap's buttons, define text, background, and border color.\n\n $btn-padding-y: $input-btn-padding-y;\n $btn-padding-x: $input-btn-padding-x;\n $btn-font-family: $input-btn-font-family;\n $btn-font-size: $input-btn-font-size;\n $btn-line-height: $input-btn-line-height;\n $btn-white-space: null; // Set to \"nowrap\" to prevent text wrapping\n\n $btn-padding-y-sm: $input-btn-padding-y-sm;\n $btn-padding-x-sm: $input-btn-padding-x-sm;\n $btn-font-size-sm: $input-btn-font-size-sm;\n\n $btn-padding-y-lg: $input-btn-padding-y-lg;\n $btn-padding-x-lg: $input-btn-padding-x-lg;\n $btn-font-size-lg: $input-btn-font-size-lg;\n\n $btn-border-width: $input-btn-border-width;\n\n $btn-font-weight: $font-weight-normal;\n $btn-box-shadow: inset 0 1px 0 rgba($white, 0.15),\n 0 1px 1px rgba($black, 0.075);\n $btn-focus-width: $input-btn-focus-width;\n $btn-focus-box-shadow: $input-btn-focus-box-shadow;\n $btn-disabled-opacity: 0.65;\n $btn-active-box-shadow: inset 0 3px 5px rgba($black, 0.125);\n\n $btn-link-color: $link-color;\n $btn-link-hover-color: $link-hover-color;\n $btn-link-disabled-color: $gray-600;\n\n // Allows for customizing button radius independently from global border radius\n $btn-border-radius: $border-radius;\n $btn-border-radius-sm: $border-radius-sm;\n $btn-border-radius-lg: $border-radius-lg;\n\n $btn-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\n $btn-hover-bg-shade-amount: 0.15; // 15%;\n $btn-hover-bg-tint-amount: 0.15; // 15%;\n $btn-hover-border-shade-amount: 0.2; // 20%;\n $btn-hover-border-tint-amount: 0.1; // 10%;\n $btn-active-bg-shade-amount: 0.2; // 20%;\n $btn-active-bg-tint-amount: 0.2; // 20%;\n $btn-active-border-shade-amount: 0.25; // 25%;\n $btn-active-border-tint-amount: 0.1; // 10%;\n\n // Breadcrumb\n\n $breadcrumb-font-size: $font-size-base; // null;\n $breadcrumb-padding-y: 0;\n $breadcrumb-padding-x: 0;\n $breadcrumb-item-padding-x: 0.5rem;\n $breadcrumb-margin-bottom: 1rem;\n $breadcrumb-bg: null;\n $breadcrumb-divider-color: $gray-600;\n $breadcrumb-active-color: $gray-600;\n $breadcrumb-divider: ", "; // quote('/');\n $breadcrumb-divider-flipped: $breadcrumb-divider;\n $breadcrumb-border-radius: null;\n\n // Forms\n\n $form-text-margin-top: 0.25rem;\n $form-text-font-size: $small-font-size;\n $form-text-font-style: null;\n $form-text-font-weight: null;\n $form-text-color: $text-muted;\n\n $form-label-margin-bottom: 0.5rem;\n $form-label-font-size: $font-size-base; // null;\n $form-label-font-style: null;\n $form-label-font-weight: null;\n $form-label-color: null;\n\n $input-padding-y: $input-btn-padding-y;\n $input-padding-x: $input-btn-padding-x;\n $input-font-family: $input-btn-font-family;\n $input-font-size: $input-btn-font-size;\n $input-font-weight: $font-weight-base;\n $input-line-height: $input-btn-line-height;\n\n $input-padding-y-sm: $input-btn-padding-y-sm;\n $input-padding-x-sm: $input-btn-padding-x-sm;\n $input-font-size-sm: $input-btn-font-size-sm;\n\n $input-padding-y-lg: $input-btn-padding-y-lg;\n $input-padding-x-lg: $input-btn-padding-x-lg;\n $input-font-size-lg: $input-btn-font-size-lg;\n\n $input-bg: $body-bg;\n $input-disabled-bg: $gray-200;\n $input-disabled-border-color: null;\n\n $input-color: $body-color;\n $input-border-color: $gray-400;\n $input-border-width: $input-btn-border-width;\n $input-box-shadow: $box-shadow-inset;\n\n $input-border-radius: $border-radius;\n $input-border-radius-sm: $border-radius-sm;\n $input-border-radius-lg: $border-radius-lg;\n\n $input-focus-bg: $input-bg;\n $input-focus-border-color: ", ";\n $input-focus-color: $input-color;\n $input-focus-width: $input-btn-focus-width;\n $input-focus-box-shadow: $input-btn-focus-box-shadow;\n\n $input-placeholder-color: $gray-600;\n $input-plaintext-color: $body-color;\n\n $input-height-border: $input-border-width * 2;\n\n $input-height-inner: ", ";\n $input-height-inner-half: ", ";\n $input-height-inner-quarter: ", ";\n\n $input-height: ", ";\n $input-height-sm: ", ";\n $input-height-lg: ", ";\n\n $input-transition: border-color 0.15s ease-in-out,\n box-shadow 0.15s ease-in-out;\n\n $form-color-width: 3rem;\n\n $form-check-input-width: $font-size-base * 1; // 1em;\n $form-check-min-height: $font-size-base * $line-height-base;\n $form-check-padding-start: $form-check-input-width + 0.5rem; // 0.5em;\n $form-check-margin-bottom: 0.125rem;\n $form-check-label-color: null;\n $form-check-label-cursor: null;\n $form-check-transition: null;\n\n $form-check-input-active-filter: brightness(90%);\n\n $form-check-input-bg: $input-bg;\n $form-check-input-border: 1px solid rgba($black, 0.25);\n $form-check-input-border-radius: $font-size-base * 0.25; // 0.25em;\n $form-check-radio-border-radius: 50px; // 50%;\n $form-check-input-focus-border: $input-focus-border-color;\n $form-check-input-focus-box-shadow: $input-btn-focus-box-shadow;\n\n $form-check-input-checked-color: $component-active-color;\n $form-check-input-checked-bg-color: $component-active-bg;\n $form-check-input-checked-border-color: $form-check-input-checked-bg-color;\n $form-check-input-checked-bg-image: ", ";\n $form-check-radio-checked-bg-image: ", ";\n\n $form-check-input-indeterminate-color: $component-active-color;\n $form-check-input-indeterminate-bg-color: $component-active-bg;\n $form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color;\n $form-check-input-indeterminate-bg-image: ", ";\n\n $form-check-input-disabled-opacity: 0.5;\n $form-check-label-disabled-opacity: $form-check-input-disabled-opacity;\n $form-check-btn-check-disabled-opacity: $btn-disabled-opacity;\n\n $form-check-inline-margin-end: 1rem;\n\n $form-switch-color: rgba($black, 0.25);\n $form-switch-width: 2rem;\n $form-switch-padding-start: $form-switch-width + 0.5rem;\n $form-switch-bg-image: ", ";\n $form-switch-border-radius: $form-switch-width;\n $form-switch-transition: background-position 0.15s ease-in-out;\n\n $form-switch-focus-color: $input-focus-border-color;\n $form-switch-focus-bg-image: ", ";\n\n $form-switch-checked-color: $component-active-color;\n $form-switch-checked-bg-image: ", ";\n $form-switch-checked-bg-position: right center;\n\n $input-group-addon-padding-y: $input-padding-y;\n $input-group-addon-padding-x: $input-padding-x;\n $input-group-addon-font-weight: $input-font-weight;\n $input-group-addon-color: $input-color;\n $input-group-addon-bg: $gray-200;\n $input-group-addon-border-color: $input-border-color;\n\n $form-select-padding-y: $input-padding-y;\n $form-select-padding-x: $input-padding-x;\n $form-select-font-family: $input-font-family;\n $form-select-font-size: $input-font-size;\n $form-select-indicator-padding: $form-select-padding-x * 3; // Extra padding for background-image\n $form-select-font-weight: $input-font-weight;\n $form-select-line-height: $input-line-height;\n $form-select-color: $input-color;\n $form-select-bg: $input-bg;\n $form-select-disabled-color: null;\n $form-select-disabled-bg: $gray-200;\n $form-select-disabled-border-color: $input-disabled-border-color;\n $form-select-bg-position: right $form-select-padding-x center;\n $form-select-bg-size: 16px 12px; // In pixels because image dimensions\n $form-select-indicator-color: $gray-800;\n $form-select-indicator: ", ";\n\n $form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 +\n $form-select-indicator-padding;\n $form-select-feedback-icon-position: center right\n $form-select-indicator-padding;\n $form-select-feedback-icon-size: $input-height-inner-half\n $input-height-inner-half;\n\n $form-select-border-width: $input-border-width;\n $form-select-border-color: $input-border-color;\n $form-select-border-radius: $input-border-radius;\n $form-select-box-shadow: $box-shadow-inset;\n\n $form-select-focus-border-color: $input-focus-border-color;\n $form-select-focus-width: $input-focus-width;\n $form-select-focus-box-shadow: 0 0 0 $form-select-focus-width\n $input-btn-focus-color;\n\n $form-select-padding-y-sm: $input-padding-y-sm;\n $form-select-padding-x-sm: $input-padding-x-sm;\n $form-select-font-size-sm: $input-font-size-sm;\n $form-select-border-radius-sm: $input-border-radius-sm;\n\n $form-select-padding-y-lg: $input-padding-y-lg;\n $form-select-padding-x-lg: $input-padding-x-lg;\n $form-select-font-size-lg: $input-font-size-lg;\n $form-select-border-radius-lg: $input-border-radius-lg;\n\n $form-select-transition: $input-transition;\n\n $form-range-track-width: 100%;\n $form-range-track-height: 0.5rem;\n $form-range-track-cursor: pointer;\n $form-range-track-bg: $gray-300;\n $form-range-track-border-radius: 1rem;\n $form-range-track-box-shadow: $box-shadow-inset;\n\n $form-range-thumb-width: 1rem;\n $form-range-thumb-height: $form-range-thumb-width;\n $form-range-thumb-bg: $component-active-bg;\n $form-range-thumb-border: 0;\n $form-range-thumb-border-radius: 1rem;\n $form-range-thumb-box-shadow: 0 0.1rem 0.25rem rgba($black, 0.1);\n $form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg,\n $input-focus-box-shadow;\n $form-range-thumb-focus-box-shadow-width: $input-focus-width; // For focus box shadow issue in Edge\n $form-range-thumb-active-bg: tint-color($component-active-bg, 70%);\n $form-range-thumb-disabled-bg: $gray-500;\n $form-range-thumb-transition: background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\n $form-file-button-color: $input-color;\n $form-file-button-bg: $input-group-addon-bg;\n $form-file-button-hover-bg: shade-color($form-file-button-bg, 5%);\n\n $form-floating-height: ", ";\n $form-floating-line-height: 1.25;\n $form-floating-padding-x: $input-padding-x;\n $form-floating-padding-y: 1rem;\n $form-floating-input-padding-t: 1.625rem;\n $form-floating-input-padding-b: 0.625rem;\n $form-floating-label-opacity: 0.65;\n $form-floating-label-transform: scale(0.85) translateY(-0.5rem)\n translateX(0.15rem);\n $form-floating-transition: opacity 0.1s ease-in-out,\n transform 0.1s ease-in-out;\n\n // Form validation\n\n $form-feedback-margin-top: $form-text-margin-top;\n $form-feedback-font-size: $form-text-font-size;\n $form-feedback-font-style: $form-text-font-style;\n $form-feedback-valid-color: $success;\n $form-feedback-invalid-color: $danger;\n\n $form-feedback-icon-valid-color: $form-feedback-valid-color;\n $form-feedback-icon-valid: ", ";\n $form-feedback-icon-invalid-color: $form-feedback-invalid-color;\n $form-feedback-icon-invalid: ", ";\n\n $form-validation-states: ", ";\n\n // Z-index master list\n //\n // Warning: Avoid customizing these values. They're used for a bird's eye view\n // of components dependent on the z-axis and are designed to all work together.\n\n $zindex-dropdown: 1000;\n $zindex-sticky: 1020;\n $zindex-fixed: 1030;\n $zindex-offcanvas-backdrop: 1040;\n $zindex-offcanvas: 1045;\n $zindex-modal-backdrop: 1050;\n $zindex-modal: 1055;\n $zindex-popover: 1070;\n $zindex-tooltip: 1080;\n\n // Navs\n\n $nav-link-padding-y: 0.5rem;\n $nav-link-padding-x: 1rem;\n $nav-link-font-size: null;\n $nav-link-font-weight: null;\n $nav-link-color: $link-color;\n $nav-link-hover-color: $link-hover-color;\n $nav-link-transition: color 0.15s ease-in-out,\n background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n $nav-link-disabled-color: $gray-600;\n\n $nav-tabs-border-color: $gray-300;\n $nav-tabs-border-width: $border-width;\n $nav-tabs-border-radius: $border-radius;\n $nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color;\n $nav-tabs-link-active-color: $gray-700;\n $nav-tabs-link-active-bg: $body-bg;\n $nav-tabs-link-active-border-color: $gray-300 $gray-300\n $nav-tabs-link-active-bg;\n\n $nav-pills-border-radius: $border-radius;\n $nav-pills-link-active-color: $component-active-color;\n $nav-pills-link-active-bg: $component-active-bg;\n\n // Navbar\n\n $navbar-padding-y: $spacer * 0.5;\n $navbar-padding-x: null;\n\n $navbar-nav-link-padding-x: 0.5rem;\n\n $navbar-brand-font-size: $font-size-lg;\n\n $nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y *\n 2;\n $navbar-brand-height: $navbar-brand-font-size * $line-height-base;\n $navbar-brand-padding-y-intermediate-result: $nav-link-height -\n $navbar-brand-height;\n $navbar-brand-padding-y: $navbar-brand-padding-y-intermediate-result * 0.5;\n $navbar-brand-margin-end: 1rem;\n\n $navbar-toggler-padding-y: 0.25rem;\n $navbar-toggler-padding-x: 0.75rem;\n $navbar-toggler-font-size: $font-size-lg;\n $navbar-toggler-border-radius: $btn-border-radius;\n $navbar-toggler-focus-width: $btn-focus-width;\n $navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n\n $navbar-dark-color: rgba($white, 0.55);\n $navbar-dark-hover-color: rgba($white, 0.75);\n $navbar-dark-active-color: $white;\n $navbar-dark-disabled-color: rgba($white, 0.25);\n $navbar-dark-toggler-icon-bg: ", ";\n $navbar-dark-toggler-border-color: rgba($white, 0.1);\n\n $navbar-light-color: rgba($black, 0.55);\n $navbar-light-hover-color: rgba($black, 0.7);\n $navbar-light-active-color: rgba($black, 0.9);\n $navbar-light-disabled-color: rgba($black, 0.3);\n $navbar-light-toggler-icon-bg: ", ";\n $navbar-light-toggler-border-color: rgba($black, 0.1);\n\n $navbar-light-brand-color: $navbar-light-active-color;\n $navbar-light-brand-hover-color: $navbar-light-active-color;\n $navbar-dark-brand-color: $navbar-dark-active-color;\n $navbar-dark-brand-hover-color: $navbar-dark-active-color;\n\n // Dropdowns\n //\n // Dropdown menu container and contents.\n\n $dropdown-min-width: 10rem;\n $dropdown-padding-x: 0;\n $dropdown-padding-y: 0.5rem;\n $dropdown-spacer: 0.125rem;\n $dropdown-font-size: $font-size-base;\n $dropdown-color: $body-color;\n $dropdown-bg: $white;\n $dropdown-border-color: rgba($black, 0.15);\n $dropdown-border-radius: $border-radius;\n $dropdown-border-width: $border-width;\n $dropdown-inner-border-radius: ", ";\n $dropdown-divider-bg: $dropdown-border-color;\n $dropdown-divider-margin-y: $spacer * 0.5;\n $dropdown-box-shadow: $box-shadow;\n\n $dropdown-link-color: $gray-900;\n\n $dropdown-link-hover-color: ", ";\n $dropdown-link-hover-bg: $gray-200;\n\n $dropdown-link-active-color: $component-active-color;\n $dropdown-link-active-bg: $component-active-bg;\n\n $dropdown-link-disabled-color: $gray-500;\n\n $dropdown-item-padding-y: $spacer * 0.25;\n $dropdown-item-padding-x: $spacer;\n\n $dropdown-header-color: $gray-600;\n $dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x;\n\n $dropdown-dark-color: $gray-300;\n $dropdown-dark-bg: $gray-800;\n $dropdown-dark-border-color: $dropdown-border-color;\n $dropdown-dark-divider-bg: $dropdown-divider-bg;\n $dropdown-dark-box-shadow: null;\n $dropdown-dark-link-color: $dropdown-dark-color;\n $dropdown-dark-link-hover-color: $white;\n $dropdown-dark-link-hover-bg: rgba($white, 0.15);\n $dropdown-dark-link-active-color: $dropdown-link-active-color;\n $dropdown-dark-link-active-bg: $dropdown-link-active-bg;\n $dropdown-dark-link-disabled-color: $gray-500;\n $dropdown-dark-header-color: $gray-500;\n\n // ...\n\n // Cards\n\n $card-spacer-y: $spacer;\n $card-spacer-x: $spacer;\n $card-title-spacer-y: $spacer * 0.5;\n $card-border-width: $border-width;\n $card-border-color: rgba($black, 0.125);\n $card-border-radius: $border-radius;\n $card-box-shadow: null;\n $card-inner-border-radius: ", ";\n $card-cap-padding-y: $card-spacer-y * 0.5;\n $card-cap-padding-x: $card-spacer-x;\n $card-cap-bg: rgba($black, 0.03);\n $card-cap-color: null;\n $card-height: null;\n $card-color: null;\n $card-bg: $white;\n $card-img-overlay-padding: $spacer;\n $card-group-margin: $grid-gutter-width * 0.5;\n\n // ...\n\n // Tooltips\n\n $tooltip-font-size: $font-size-sm;\n $tooltip-max-width: 200px;\n $tooltip-color: $white;\n $tooltip-bg: $black;\n $tooltip-border-radius: $border-radius;\n $tooltip-opacity: 0.9;\n $tooltip-padding-y: $spacer * 0.25;\n $tooltip-padding-x: $spacer * 0.5;\n $tooltip-margin: 0;\n\n $tooltip-arrow-width: 0.8rem;\n $tooltip-arrow-height: 0.4rem;\n $tooltip-arrow-color: $tooltip-bg;\n\n // Popovers\n\n $popover-font-size: $font-size-sm;\n $popover-bg: $white;\n $popover-max-width: 276px;\n $popover-border-width: $border-width;\n $popover-border-color: rgba($black, 0.2);\n $popover-border-radius: $border-radius-lg;\n $popover-inner-border-radius: ", ";\n $popover-box-shadow: $box-shadow;\n\n $popover-header-bg: ", ";\n $popover-header-color: $headings-color;\n $popover-header-padding-y: 0.5rem;\n $popover-header-padding-x: $spacer;\n\n $popover-body-color: $body-color;\n $popover-body-padding-y: $spacer;\n $popover-body-padding-x: $spacer;\n\n $popover-arrow-width: 1rem;\n $popover-arrow-height: 0.5rem;\n $popover-arrow-color: $popover-bg;\n\n $popover-arrow-outer-color: $popover-border-color;\n\n // Toasts\n\n $toast-max-width: 350px;\n $toast-padding-x: 0.75rem;\n $toast-padding-y: 0.5rem;\n $toast-font-size: 0.875rem;\n $toast-color: null;\n $toast-background-color: rgba($white, 0.85);\n $toast-border-width: 1px;\n $toast-border-color: rgba($black, 0.1);\n $toast-border-radius: $border-radius;\n $toast-box-shadow: $box-shadow;\n $toast-spacing: $container-padding-x;\n\n $toast-header-color: $gray-600;\n $toast-header-background-color: rgba($white, 0.85);\n $toast-header-border-color: rgba($black, 0.05);\n\n // Badges\n\n $badge-font-size: $font-size-base * 0.75; // 0.75em;\n $badge-font-weight: $font-weight-bold;\n $badge-color: $white;\n $badge-padding-y: $badge-font-size * 0.35; // 0.35em;\n $badge-padding-x: $badge-font-size * 0.65; // 0.65em;\n $badge-border-radius: $border-radius;\n\n // Modals\n\n $modal-inner-padding: $spacer;\n\n $modal-footer-margin-between: 0.5rem;\n\n $modal-dialog-margin: 0.5rem;\n $modal-dialog-margin-y-sm-up: 1.75rem;\n\n $modal-title-line-height: $line-height-base;\n\n $modal-content-color: null;\n $modal-content-bg: $white;\n $modal-content-border-color: rgba($black, 0.65); // rgba($black, 0.2);\n $modal-content-border-width: $border-width;\n $modal-content-border-radius: $border-radius-lg;\n $modal-content-inner-border-radius: ", ";\n $modal-content-box-shadow-xs: $box-shadow-sm;\n $modal-content-box-shadow-sm-up: $box-shadow;\n\n $modal-backdrop-bg: $black;\n $modal-backdrop-opacity: 0.5;\n $modal-header-border-color: $border-color;\n $modal-footer-border-color: $modal-header-border-color;\n $modal-header-border-width: $modal-content-border-width;\n $modal-footer-border-width: $modal-header-border-width;\n $modal-header-padding-y: $modal-inner-padding;\n $modal-header-padding-x: $modal-inner-padding;\n $modal-header-padding: $modal-header-padding-y $modal-header-padding-x; // Keep this for backwards compatibility\n\n $modal-sm: 300px;\n $modal-md: 500px;\n $modal-lg: 800px;\n $modal-xl: 1140px;\n\n $modal-fade-transform: translate(0, -50px);\n $modal-show-transform: none;\n $modal-transition: transform 0.3s ease-out;\n $modal-scale-transform: scale(1.02);\n\n // ...\n\n // Alerts\n //\n // Define alert colors, border radius, and padding.\n\n $alert-padding-y: $spacer;\n $alert-padding-x: $spacer;\n $alert-margin-bottom: 1rem;\n $alert-border-radius: $border-radius;\n $alert-link-font-weight: $font-weight-bold;\n $alert-border-width: $border-width;\n $alert-bg-scale: -0.8; // 80%;\n $alert-border-scale: -0.7; // 70%;\n $alert-color-scale: 0.4; // 40%;\n $alert-dismissible-padding-r: $alert-padding-x * 3; // 3x covers width of x plus default padding on either side\n\n // Pagination\n\n $pagination-padding-y: 0.375rem;\n $pagination-padding-x: 0.75rem;\n $pagination-padding-y-sm: 0.25rem;\n $pagination-padding-x-sm: 0.5rem;\n $pagination-padding-y-lg: 0.75rem;\n $pagination-padding-x-lg: 1.5rem;\n\n $pagination-color: $link-color;\n $pagination-bg: $white;\n $pagination-border-width: $border-width;\n $pagination-border-radius: $border-radius;\n $pagination-margin-start: -$pagination-border-width;\n $pagination-border-color: $gray-300;\n\n $pagination-focus-color: $link-hover-color;\n $pagination-focus-bg: $gray-200;\n $pagination-focus-box-shadow: $input-btn-focus-box-shadow;\n $pagination-focus-outline: 0;\n\n $pagination-hover-color: $link-hover-color;\n $pagination-hover-bg: $gray-200;\n $pagination-hover-border-color: $gray-300;\n\n $pagination-active-color: $component-active-color;\n $pagination-active-bg: $component-active-bg;\n $pagination-active-border-color: $pagination-active-bg;\n\n $pagination-disabled-color: $gray-600;\n $pagination-disabled-bg: $white;\n $pagination-disabled-border-color: $gray-300;\n\n $pagination-transition: color 0.15s ease-in-out,\n background-color 0.15s ease-in-out, border-color 0.15s ease-in-out,\n box-shadow 0.15s ease-in-out;\n\n $pagination-border-radius-sm: $border-radius-sm;\n $pagination-border-radius-lg: $border-radius-lg;\n\n // Progress bars\n\n $progress-height: 1rem;\n $progress-font-size: $font-size-base * 0.75;\n $progress-bg: $gray-200;\n $progress-border-radius: $border-radius;\n $progress-box-shadow: $box-shadow-inset;\n $progress-bar-color: $white;\n $progress-bar-bg: $primary;\n $progress-bar-animation-timing: 1s linear infinite;\n $progress-bar-transition: width 0.6s ease;\n\n // List group\n\n $list-group-color: $gray-900;\n $list-group-bg: $white;\n $list-group-border-color: rgba($black, 0.125);\n $list-group-border-width: $border-width;\n $list-group-border-radius: $border-radius;\n\n $list-group-item-padding-y: $spacer * 0.5;\n $list-group-item-padding-x: $spacer;\n $list-group-item-bg-scale: -0.8; // 80%;\n $list-group-item-color-scale: 0.4; // 40%;\n\n $list-group-hover-bg: $gray-100;\n $list-group-active-color: $component-active-color;\n $list-group-active-bg: $component-active-bg;\n $list-group-active-border-color: $list-group-active-bg;\n\n $list-group-disabled-color: $gray-600;\n $list-group-disabled-bg: $list-group-bg;\n\n $list-group-action-color: $gray-700;\n $list-group-action-hover-color: $list-group-action-color;\n\n $list-group-action-active-color: $body-color;\n $list-group-action-active-bg: $gray-200;\n\n // ...\n\n // Spinners\n\n $spinner-width: 2rem;\n $spinner-height: $spinner-width;\n $spinner-vertical-align: $font-size-base * -0.125; // -.125em;\n $spinner-border-width: $font-size-base * 0.25; // .25em;\n $spinner-animation-speed: 0.75s;\n\n $spinner-width-sm: 1rem;\n $spinner-height-sm: $spinner-width-sm;\n $spinner-border-width-sm: $font-size-base * 0.2; // .2em;\n\n // Close\n\n $btn-close-width: $font-size-base * 1; // 1em;\n $btn-close-height: $btn-close-width;\n $btn-close-padding-x: $font-size-base * 0.25; // .25em;\n $btn-close-padding-y: $btn-close-padding-x;\n $btn-close-color: $black;\n $btn-close-bg: ", ";\n $btn-close-focus-shadow: $input-btn-focus-box-shadow;\n $btn-close-opacity: 0.5;\n $btn-close-hover-opacity: 0.75;\n $btn-close-focus-opacity: 1;\n $btn-close-disabled-opacity: 0.25;\n // $btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);\n\n // Offcanvas\n\n $offcanvas-padding-y: $modal-inner-padding;\n $offcanvas-padding-x: $modal-inner-padding;\n $offcanvas-horizontal-width: 400px;\n $offcanvas-vertical-height: 200px; // 30vh;\n $offcanvas-transition-duration: 0.3s;\n $offcanvas-border-color: $modal-content-border-color;\n $offcanvas-border-width: $modal-content-border-width;\n $offcanvas-title-line-height: $modal-title-line-height;\n $offcanvas-bg-color: $modal-content-bg;\n $offcanvas-color: $modal-content-color;\n $offcanvas-box-shadow: $modal-content-box-shadow-xs;\n $offcanvas-backdrop-bg: $modal-backdrop-bg;\n $offcanvas-backdrop-opacity: $modal-backdrop-opacity;\n\n // Code\n\n $code-font-size: $small-font-size;\n $code-color: $pink;\n\n $kbd-padding-y: 0.2rem;\n $kbd-padding-x: 0.4rem;\n $kbd-font-size: $code-font-size;\n $kbd-color: $white;\n $kbd-bg: $gray-900;\n\n $pre-color: null;\n"])), function (t) {
2606
+ var variables = css(_templateObject$1e || (_templateObject$1e = _taggedTemplateLiteral(["\n // Color system\n\n $white: #fff;\n $gray-100: #f8f9fa;\n $gray-200: #e9ecef;\n $gray-300: #dee2e6;\n $gray-400: #ced4da;\n $gray-500: #adb5bd;\n $gray-600: #6c757d;\n $gray-700: #495057;\n $gray-800: #343a40;\n $gray-900: #212529;\n $black: #000;\n\n $grays: ", ";\n\n $blue: #0d6efd;\n $indigo: #6610f2;\n $purple: #6f42c1;\n $pink: #d63384;\n $red: #dc3545;\n $orange: #fd7e14;\n $yellow: #ffc107;\n $green: #198754;\n $teal: #20c997;\n $cyan: #0dcaf0;\n\n $colors: ", ";\n\n $primary: $blue;\n $secondary: $gray-600;\n $success: $green;\n $info: $cyan;\n $warning: $yellow;\n $danger: $red;\n $light: $gray-100;\n $dark: $gray-900;\n\n $theme-colors: ", ";\n\n // The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n // See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n $min-contrast-ratio: 4.5;\n\n // Customize the light and dark text colors for use in our color contrast function.\n $color-contrast-dark: $black;\n $color-contrast-light: $white;\n\n $blue-100: tint-color($blue, 80%);\n $blue-200: tint-color($blue, 60%);\n $blue-300: tint-color($blue, 40%);\n $blue-400: tint-color($blue, 20%);\n $blue-500: $blue;\n $blue-600: shade-color($blue, 20%);\n $blue-700: shade-color($blue, 40%);\n $blue-800: shade-color($blue, 60%);\n $blue-900: shade-color($blue, 80%);\n\n $indigo-100: tint-color($indigo, 80%);\n $indigo-200: tint-color($indigo, 60%);\n $indigo-300: tint-color($indigo, 40%);\n $indigo-400: tint-color($indigo, 20%);\n $indigo-500: $indigo;\n $indigo-600: shade-color($indigo, 20%);\n $indigo-700: shade-color($indigo, 40%);\n $indigo-800: shade-color($indigo, 60%);\n $indigo-900: shade-color($indigo, 80%);\n\n $purple-100: tint-color($purple, 80%);\n $purple-200: tint-color($purple, 60%);\n $purple-300: tint-color($purple, 40%);\n $purple-400: tint-color($purple, 20%);\n $purple-500: $purple;\n $purple-600: shade-color($purple, 20%);\n $purple-700: shade-color($purple, 40%);\n $purple-800: shade-color($purple, 60%);\n $purple-900: shade-color($purple, 80%);\n\n $pink-100: tint-color($pink, 80%);\n $pink-200: tint-color($pink, 60%);\n $pink-300: tint-color($pink, 40%);\n $pink-400: tint-color($pink, 20%);\n $pink-500: $pink;\n $pink-600: shade-color($pink, 20%);\n $pink-700: shade-color($pink, 40%);\n $pink-800: shade-color($pink, 60%);\n $pink-900: shade-color($pink, 80%);\n\n $red-100: tint-color($red, 80%);\n $red-200: tint-color($red, 60%);\n $red-300: tint-color($red, 40%);\n $red-400: tint-color($red, 20%);\n $red-500: $red;\n $red-600: shade-color($red, 20%);\n $red-700: shade-color($red, 40%);\n $red-800: shade-color($red, 60%);\n $red-900: shade-color($red, 80%);\n\n $orange-100: tint-color($orange, 80%);\n $orange-200: tint-color($orange, 60%);\n $orange-300: tint-color($orange, 40%);\n $orange-400: tint-color($orange, 20%);\n $orange-500: $orange;\n $orange-600: shade-color($orange, 20%);\n $orange-700: shade-color($orange, 40%);\n $orange-800: shade-color($orange, 60%);\n $orange-900: shade-color($orange, 80%);\n\n $yellow-100: tint-color($yellow, 80%);\n $yellow-200: tint-color($yellow, 60%);\n $yellow-300: tint-color($yellow, 40%);\n $yellow-400: tint-color($yellow, 20%);\n $yellow-500: $yellow;\n $yellow-600: shade-color($yellow, 20%);\n $yellow-700: shade-color($yellow, 40%);\n $yellow-800: shade-color($yellow, 60%);\n $yellow-900: shade-color($yellow, 80%);\n\n $green-100: tint-color($green, 80%);\n $green-200: tint-color($green, 60%);\n $green-300: tint-color($green, 40%);\n $green-400: tint-color($green, 20%);\n $green-500: $green;\n $green-600: shade-color($green, 20%);\n $green-700: shade-color($green, 40%);\n $green-800: shade-color($green, 60%);\n $green-900: shade-color($green, 80%);\n\n $teal-100: tint-color($teal, 80%);\n $teal-200: tint-color($teal, 60%);\n $teal-300: tint-color($teal, 40%);\n $teal-400: tint-color($teal, 20%);\n $teal-500: $teal;\n $teal-600: shade-color($teal, 20%);\n $teal-700: shade-color($teal, 40%);\n $teal-800: shade-color($teal, 60%);\n $teal-900: shade-color($teal, 80%);\n\n $cyan-100: tint-color($cyan, 80%);\n $cyan-200: tint-color($cyan, 60%);\n $cyan-300: tint-color($cyan, 40%);\n $cyan-400: tint-color($cyan, 20%);\n $cyan-500: $cyan;\n $cyan-600: shade-color($cyan, 20%);\n $cyan-700: shade-color($cyan, 40%);\n $cyan-800: shade-color($cyan, 60%);\n $cyan-900: shade-color($cyan, 80%);\n\n $blues: ", ";\n\n $indigos: ", ";\n\n $purples: ", ";\n\n $pinks: ", ";\n\n $reds: ", ";\n\n $oranges: ", ";\n\n $yellows: ", ";\n\n $greens: ", ";\n\n $teals: ", ";\n\n $cyans: ", ";\n\n // Characters which are escaped by the escape-svg function\n // $escaped characters\n\n // Options\n //\n // Quickly modify global styling by enabling or disabling optional features.\n\n // NOTE: Handled by JavaScript.\n\n // Gradient\n //\n // The gradient which is added to components if \"$enable-gradients\" is \"true\"\n // This gradient is also added to elements with \".bg-gradient\"\n $gradient: linear-gradient(180deg, rgba($white, 0.15), rgba($white, 0));\n\n // Spacing\n //\n // Control the default styling of most Bootstrap elements by modifying these\n // variables. Mostly focused on spacing.\n // You can add more entries to the $spacers map, should you need more variation.\n\n $spacer: 1rem;\n $spacers: ", ";\n\n // Position\n //\n // Define the edge positioning anchors of the position utilities.\n\n $position-values: ", ";\n\n // Placeholder\n\n $placeholder-opacity-max: 0.5;\n $placeholder-opacity-min: 0.2;\n\n // Body\n //\n // Settings for the \"<body>\" element.\n\n $body-bg: $white;\n $body-color: $gray-900;\n $body-text-align: null;\n\n // Links\n //\n // Style anchor elements.\n\n $link-color: $primary;\n $link-decoration: underline;\n $link-shade-percentage: 20%;\n $link-hover-color: ", ";\n $link-hover-decoration: null;\n\n $stretched-link-pseudo-element: after;\n $stretched-link-z-index: 1;\n\n // Paragraphs\n //\n // Style p element.\n\n $paragraph-margin-bottom: 1rem;\n\n // Grid breakpoints\n //\n // Define the minimum dimensions at which your layout will change,\n // adapting to different screen sizes, for use in media queries.\n\n $grid-breakpoints: ", ";\n\n // Grid containers\n //\n // Define the maximum width of \".container\" for different screen sizes.\n\n $container-max-widths: ", ";\n\n // Grid columns\n //\n // Set the number of columns and specify the width of the gutters.\n\n // $grid-columns: 12;\n $grid-gutter-width: 1.5rem;\n // $grid-row-columns: 6;\n\n // Container padding\n\n $container-padding-x: $grid-gutter-width * 0.5;\n\n // Components\n //\n // Define common padding and border radius sizes and more.\n\n $border-width: 1px;\n $border-widths: ", ";\n\n $border-color: $gray-300;\n\n $border-radius: 0.25rem;\n $border-radius-sm: 0.2rem;\n $border-radius-lg: 0.3rem;\n $border-radius-pill: 50rem;\n\n $box-shadow: 0 0.5rem 1rem rgba($black, 0.15);\n $box-shadow-sm: 0 0.125rem 0.25rem rgba($black, 0.075);\n $box-shadow-lg: 0 1rem 3rem rgba($black, 0.175);\n $box-shadow-inset: inset 0 1px 2px rgba($black, 0.075);\n\n $component-active-color: $white;\n $component-active-bg: $primary;\n\n $caret-width: 1rem * 0.3; // 0.3em;\n $caret-vertical-align: $caret-width * 0.85;\n $caret-spacing: $caret-width * 0.85;\n\n $transition-base: all 0.2s ease-in-out;\n $transition-fade: opacity 0.15s linear;\n $transition-collapse: height 0.35s ease;\n $transition-collapse-width: width 0.35s ease;\n\n $aspect-ratios: ", ";\n\n // Typography\n //\n // Font, line-height, and color for body text, headings, and more.\n\n $font-family-sans-serif: ", ";\n $font-family-monospace: ", ";\n $font-family-base: $font-family-sans-serif;\n $font-family-code: $font-family-monospace;\n\n // $font-size-root affects the value of \"rem\", which is used for as well font sizes, paddings, and margins\n // $font-size-base affects the font size of the body text\n $font-size-root: null;\n $font-size-base: 1rem; // Assumes the browser default, typically \"16px\"\n $font-size-sm: $font-size-base * 0.875;\n $font-size-lg: $font-size-base * 1.25;\n\n $font-weight-lighter: 300; // lighter;\n $font-weight-light: 300;\n $font-weight-normal: 400;\n $font-weight-bold: 700;\n $font-weight-bolder: 500; // bolder;\n\n $font-weight-base: $font-weight-normal;\n\n $line-height-base: 1.5;\n $line-height-sm: 1.25;\n $line-height-lg: 2;\n\n $h1-font-size: $font-size-base * 2.5;\n $h2-font-size: $font-size-base * 2;\n $h3-font-size: $font-size-base * 1.75;\n $h4-font-size: $font-size-base * 1.5;\n $h5-font-size: $font-size-base * 1.25;\n $h6-font-size: $font-size-base;\n\n $font-sizes: ", ";\n\n $headings-margin-bottom: $spacer * 0.5;\n $headings-font-family: null;\n $headings-font-style: null;\n $headings-font-weight: 500;\n $headings-line-height: 1.2;\n $headings-color: null;\n\n $display-font-sizes: ", ";\n\n $display-font-weight: 300;\n $display-line-height: $headings-line-height;\n\n $lead-font-size: $font-size-base * 1.25;\n $lead-font-weight: 300;\n\n $small-font-size: $font-size-base * 0.875; // 0.875em;\n\n $sub-sup-font-size: $font-size-base * 0.75; // 0.75em;\n\n $text-muted: $gray-600;\n\n $initialism-font-size: $small-font-size;\n\n $blockquote-margin-y: $spacer;\n $blockquote-font-size: $font-size-base * 1.25;\n $blockquote-footer-color: $gray-600;\n $blockquote-footer-font-size: $small-font-size;\n\n $hr-margin-y: $spacer;\n $hr-color: inherit;\n $hr-bg-color: currentColor;\n $hr-border-width: 0;\n $hr-height: $border-width;\n $hr-opacity: 0.25;\n\n $legend-margin-bottom: 0.5rem;\n $legend-font-size: 1.5rem;\n $legend-font-weight: null;\n\n $mark-padding: $font-size-base * 0.2; // 0.2em;\n\n $dt-font-weight: $font-weight-bold;\n\n $nested-kbd-font-weight: $font-weight-bold;\n\n $list-inline-padding: 0.5rem;\n\n $mark-bg: #fcf8e3;\n\n // ...\n\n // Buttons + Forms\n //\n // Shared variables that are reassigned to \"$input-\" and \"$btn-\" specific variables.\n\n $input-btn-padding-y: 0.375rem;\n $input-btn-padding-x: 0.75rem;\n $input-btn-font-family: null;\n $input-btn-font-size: $font-size-base;\n $input-btn-line-height: $line-height-base;\n\n $input-btn-focus-width: 0.25rem;\n $input-btn-focus-color-opacity: 0.25;\n $input-btn-focus-color: rgba(\n $component-active-bg,\n $input-btn-focus-color-opacity\n );\n $input-btn-focus-blur: 0;\n $input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width\n $input-btn-focus-color;\n\n $input-btn-padding-y-sm: 0.25rem;\n $input-btn-padding-x-sm: 0.5rem;\n $input-btn-font-size-sm: $font-size-sm;\n\n $input-btn-padding-y-lg: 0.5rem;\n $input-btn-padding-x-lg: 1rem;\n $input-btn-font-size-lg: $font-size-lg;\n\n $input-btn-border-width: $border-width;\n\n // Buttons\n //\n // For each of Bootstrap's buttons, define text, background, and border color.\n\n $btn-padding-y: $input-btn-padding-y;\n $btn-padding-x: $input-btn-padding-x;\n $btn-font-family: $input-btn-font-family;\n $btn-font-size: $input-btn-font-size;\n $btn-line-height: $input-btn-line-height;\n $btn-white-space: null; // Set to \"nowrap\" to prevent text wrapping\n\n $btn-padding-y-sm: $input-btn-padding-y-sm;\n $btn-padding-x-sm: $input-btn-padding-x-sm;\n $btn-font-size-sm: $input-btn-font-size-sm;\n\n $btn-padding-y-lg: $input-btn-padding-y-lg;\n $btn-padding-x-lg: $input-btn-padding-x-lg;\n $btn-font-size-lg: $input-btn-font-size-lg;\n\n $btn-border-width: $input-btn-border-width;\n\n $btn-font-weight: $font-weight-normal;\n $btn-box-shadow: inset 0 1px 0 rgba($white, 0.15),\n 0 1px 1px rgba($black, 0.075);\n $btn-focus-width: $input-btn-focus-width;\n $btn-focus-box-shadow: $input-btn-focus-box-shadow;\n $btn-disabled-opacity: 0.65;\n $btn-active-box-shadow: inset 0 3px 5px rgba($black, 0.125);\n\n $btn-link-color: $link-color;\n $btn-link-hover-color: $link-hover-color;\n $btn-link-disabled-color: $gray-600;\n\n // Allows for customizing button radius independently from global border radius\n $btn-border-radius: $border-radius;\n $btn-border-radius-sm: $border-radius-sm;\n $btn-border-radius-lg: $border-radius-lg;\n\n $btn-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\n $btn-hover-bg-shade-amount: 15%;\n $btn-hover-bg-tint-amount: 15%;\n $btn-hover-border-shade-amount: 20%;\n $btn-hover-border-tint-amount: 10%;\n $btn-active-bg-shade-amount: 20%;\n $btn-active-bg-tint-amount: 20%;\n $btn-active-border-shade-amount: 25%;\n $btn-active-border-tint-amount: 10%;\n\n // Breadcrumb\n\n $breadcrumb-font-size: $font-size-base; // null;\n $breadcrumb-padding-y: 0;\n $breadcrumb-padding-x: 0;\n $breadcrumb-item-padding-x: 0.5rem;\n $breadcrumb-margin-bottom: 1rem;\n $breadcrumb-bg: null;\n $breadcrumb-divider-color: $gray-600;\n $breadcrumb-active-color: $gray-600;\n $breadcrumb-divider: ", "; // quote('/');\n $breadcrumb-divider-flipped: $breadcrumb-divider;\n $breadcrumb-border-radius: null;\n\n // Forms\n\n $form-text-margin-top: 0.25rem;\n $form-text-font-size: $small-font-size;\n $form-text-font-style: null;\n $form-text-font-weight: null;\n $form-text-color: $text-muted;\n\n $form-label-margin-bottom: 0.5rem;\n $form-label-font-size: $font-size-base; // null;\n $form-label-font-style: null;\n $form-label-font-weight: null;\n $form-label-color: null;\n\n $input-padding-y: $input-btn-padding-y;\n $input-padding-x: $input-btn-padding-x;\n $input-font-family: $input-btn-font-family;\n $input-font-size: $input-btn-font-size;\n $input-font-weight: $font-weight-base;\n $input-line-height: $input-btn-line-height;\n\n $input-padding-y-sm: $input-btn-padding-y-sm;\n $input-padding-x-sm: $input-btn-padding-x-sm;\n $input-font-size-sm: $input-btn-font-size-sm;\n\n $input-padding-y-lg: $input-btn-padding-y-lg;\n $input-padding-x-lg: $input-btn-padding-x-lg;\n $input-font-size-lg: $input-btn-font-size-lg;\n\n $input-bg: $body-bg;\n $input-disabled-bg: $gray-200;\n $input-disabled-border-color: null;\n\n $input-color: $body-color;\n $input-border-color: $gray-400;\n $input-border-width: $input-btn-border-width;\n $input-box-shadow: $box-shadow-inset;\n\n $input-border-radius: $border-radius;\n $input-border-radius-sm: $border-radius-sm;\n $input-border-radius-lg: $border-radius-lg;\n\n $input-focus-bg: $input-bg;\n $input-focus-border-color: ", ";\n $input-focus-color: $input-color;\n $input-focus-width: $input-btn-focus-width;\n $input-focus-box-shadow: $input-btn-focus-box-shadow;\n\n $input-placeholder-color: $gray-600;\n $input-plaintext-color: $body-color;\n\n $input-height-border: $input-border-width * 2;\n\n $input-height-inner: ", ";\n $input-height-inner-half: ", ";\n $input-height-inner-quarter: ", ";\n\n $input-height: ", ";\n $input-height-sm: ", ";\n $input-height-lg: ", ";\n\n $input-transition: border-color 0.15s ease-in-out,\n box-shadow 0.15s ease-in-out;\n\n $form-color-width: 3rem;\n\n $form-check-input-width: $font-size-base * 1; // 1em;\n $form-check-min-height: $font-size-base * $line-height-base;\n $form-check-padding-start: $form-check-input-width + 0.5rem; // 0.5em;\n $form-check-margin-bottom: 0.125rem;\n $form-check-label-color: null;\n $form-check-label-cursor: null;\n $form-check-transition: null;\n\n $form-check-input-active-filter: brightness(90%);\n\n $form-check-input-bg: $input-bg;\n $form-check-input-border: 1px solid rgba($black, 0.25);\n $form-check-input-border-radius: $font-size-base * 0.25; // 0.25em;\n $form-check-radio-border-radius: 50%;\n $form-check-input-focus-border: $input-focus-border-color;\n $form-check-input-focus-box-shadow: $input-btn-focus-box-shadow;\n\n $form-check-input-checked-color: $component-active-color;\n $form-check-input-checked-bg-color: $component-active-bg;\n $form-check-input-checked-border-color: $form-check-input-checked-bg-color;\n $form-check-input-checked-bg-image: ", ";\n $form-check-radio-checked-bg-image: ", ";\n\n $form-check-input-indeterminate-color: $component-active-color;\n $form-check-input-indeterminate-bg-color: $component-active-bg;\n $form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color;\n $form-check-input-indeterminate-bg-image: ", ";\n\n $form-check-input-disabled-opacity: 0.5;\n $form-check-label-disabled-opacity: $form-check-input-disabled-opacity;\n $form-check-btn-check-disabled-opacity: $btn-disabled-opacity;\n\n $form-check-inline-margin-end: 1rem;\n\n $form-switch-color: rgba($black, 0.25);\n $form-switch-width: 2rem;\n $form-switch-padding-start: $form-switch-width + 0.5rem;\n $form-switch-bg-image: ", ";\n $form-switch-border-radius: $form-switch-width;\n $form-switch-transition: background-position 0.15s ease-in-out;\n\n $form-switch-focus-color: $input-focus-border-color;\n $form-switch-focus-bg-image: ", ";\n\n $form-switch-checked-color: $component-active-color;\n $form-switch-checked-bg-image: ", ";\n $form-switch-checked-bg-position: right center;\n\n $input-group-addon-padding-y: $input-padding-y;\n $input-group-addon-padding-x: $input-padding-x;\n $input-group-addon-font-weight: $input-font-weight;\n $input-group-addon-color: $input-color;\n $input-group-addon-bg: $gray-200;\n $input-group-addon-border-color: $input-border-color;\n\n $form-select-padding-y: $input-padding-y;\n $form-select-padding-x: $input-padding-x;\n $form-select-font-family: $input-font-family;\n $form-select-font-size: $input-font-size;\n $form-select-indicator-padding: $form-select-padding-x * 3; // Extra padding for background-image\n $form-select-font-weight: $input-font-weight;\n $form-select-line-height: $input-line-height;\n $form-select-color: $input-color;\n $form-select-bg: $input-bg;\n $form-select-disabled-color: null;\n $form-select-disabled-bg: $gray-200;\n $form-select-disabled-border-color: $input-disabled-border-color;\n $form-select-bg-position: right $form-select-padding-x center;\n $form-select-bg-size: 16px 12px; // In pixels because image dimensions\n $form-select-indicator-color: $gray-800;\n $form-select-indicator: ", ";\n\n $form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 +\n $form-select-indicator-padding;\n $form-select-feedback-icon-position: center right\n $form-select-indicator-padding;\n $form-select-feedback-icon-size: $input-height-inner-half\n $input-height-inner-half;\n\n $form-select-border-width: $input-border-width;\n $form-select-border-color: $input-border-color;\n $form-select-border-radius: $input-border-radius;\n $form-select-box-shadow: $box-shadow-inset;\n\n $form-select-focus-border-color: $input-focus-border-color;\n $form-select-focus-width: $input-focus-width;\n $form-select-focus-box-shadow: 0 0 0 $form-select-focus-width\n $input-btn-focus-color;\n\n $form-select-padding-y-sm: $input-padding-y-sm;\n $form-select-padding-x-sm: $input-padding-x-sm;\n $form-select-font-size-sm: $input-font-size-sm;\n $form-select-border-radius-sm: $input-border-radius-sm;\n\n $form-select-padding-y-lg: $input-padding-y-lg;\n $form-select-padding-x-lg: $input-padding-x-lg;\n $form-select-font-size-lg: $input-font-size-lg;\n $form-select-border-radius-lg: $input-border-radius-lg;\n\n $form-select-transition: $input-transition;\n\n $form-range-track-width: 100%;\n $form-range-track-height: 0.5rem;\n $form-range-track-cursor: pointer;\n $form-range-track-bg: $gray-300;\n $form-range-track-border-radius: 1rem;\n $form-range-track-box-shadow: $box-shadow-inset;\n\n $form-range-thumb-width: 1rem;\n $form-range-thumb-height: $form-range-thumb-width;\n $form-range-thumb-bg: $component-active-bg;\n $form-range-thumb-border: 0;\n $form-range-thumb-border-radius: 1rem;\n $form-range-thumb-box-shadow: 0 0.1rem 0.25rem rgba($black, 0.1);\n $form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg,\n $input-focus-box-shadow;\n $form-range-thumb-focus-box-shadow-width: $input-focus-width; // For focus box shadow issue in Edge\n $form-range-thumb-active-bg: tint-color($component-active-bg, 70%);\n $form-range-thumb-disabled-bg: $gray-500;\n $form-range-thumb-transition: background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\n $form-file-button-color: $input-color;\n $form-file-button-bg: $input-group-addon-bg;\n $form-file-button-hover-bg: shade-color($form-file-button-bg, 5%);\n\n $form-floating-height: ", ";\n $form-floating-line-height: 1.25;\n $form-floating-padding-x: $input-padding-x;\n $form-floating-padding-y: 1rem;\n $form-floating-input-padding-t: 1.625rem;\n $form-floating-input-padding-b: 0.625rem;\n $form-floating-label-opacity: 0.65;\n $form-floating-label-transform: scale(0.85) translateY(-0.5rem)\n translateX(0.15rem);\n $form-floating-transition: opacity 0.1s ease-in-out,\n transform 0.1s ease-in-out;\n\n // Form validation\n\n $form-feedback-margin-top: $form-text-margin-top;\n $form-feedback-font-size: $form-text-font-size;\n $form-feedback-font-style: $form-text-font-style;\n $form-feedback-valid-color: $success;\n $form-feedback-invalid-color: $danger;\n\n $form-feedback-icon-valid-color: $form-feedback-valid-color;\n $form-feedback-icon-valid: ", ";\n $form-feedback-icon-invalid-color: $form-feedback-invalid-color;\n $form-feedback-icon-invalid: ", ";\n\n $form-validation-states: ", ";\n\n // Z-index master list\n //\n // Warning: Avoid customizing these values. They're used for a bird's eye view\n // of components dependent on the z-axis and are designed to all work together.\n\n $zindex-dropdown: 1000;\n $zindex-sticky: 1020;\n $zindex-fixed: 1030;\n $zindex-offcanvas-backdrop: 1040;\n $zindex-offcanvas: 1045;\n $zindex-modal-backdrop: 1050;\n $zindex-modal: 1055;\n $zindex-popover: 1070;\n $zindex-tooltip: 1080;\n\n // Navs\n\n $nav-link-padding-y: 0.5rem;\n $nav-link-padding-x: 1rem;\n $nav-link-font-size: null;\n $nav-link-font-weight: null;\n $nav-link-color: $link-color;\n $nav-link-hover-color: $link-hover-color;\n $nav-link-transition: color 0.15s ease-in-out,\n background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n $nav-link-disabled-color: $gray-600;\n\n $nav-tabs-border-color: $gray-300;\n $nav-tabs-border-width: $border-width;\n $nav-tabs-border-radius: $border-radius;\n $nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color;\n $nav-tabs-link-active-color: $gray-700;\n $nav-tabs-link-active-bg: $body-bg;\n $nav-tabs-link-active-border-color: $gray-300 $gray-300\n $nav-tabs-link-active-bg;\n\n $nav-pills-border-radius: $border-radius;\n $nav-pills-link-active-color: $component-active-color;\n $nav-pills-link-active-bg: $component-active-bg;\n\n // Navbar\n\n $navbar-padding-y: $spacer * 0.5;\n $navbar-padding-x: null;\n\n $navbar-nav-link-padding-x: 0.5rem;\n\n $navbar-brand-font-size: $font-size-lg;\n\n $nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y *\n 2;\n $navbar-brand-height: $navbar-brand-font-size * $line-height-base;\n $navbar-brand-padding-y-intermediate-result: $nav-link-height -\n $navbar-brand-height;\n $navbar-brand-padding-y: $navbar-brand-padding-y-intermediate-result * 0.5;\n $navbar-brand-margin-end: 1rem;\n\n $navbar-toggler-padding-y: 0.25rem;\n $navbar-toggler-padding-x: 0.75rem;\n $navbar-toggler-font-size: $font-size-lg;\n $navbar-toggler-border-radius: $btn-border-radius;\n $navbar-toggler-focus-width: $btn-focus-width;\n $navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n\n $navbar-dark-color: rgba($white, 0.55);\n $navbar-dark-hover-color: rgba($white, 0.75);\n $navbar-dark-active-color: $white;\n $navbar-dark-disabled-color: rgba($white, 0.25);\n $navbar-dark-toggler-icon-bg: ", ";\n $navbar-dark-toggler-border-color: rgba($white, 0.1);\n\n $navbar-light-color: rgba($black, 0.55);\n $navbar-light-hover-color: rgba($black, 0.7);\n $navbar-light-active-color: rgba($black, 0.9);\n $navbar-light-disabled-color: rgba($black, 0.3);\n $navbar-light-toggler-icon-bg: ", ";\n $navbar-light-toggler-border-color: rgba($black, 0.1);\n\n $navbar-light-brand-color: $navbar-light-active-color;\n $navbar-light-brand-hover-color: $navbar-light-active-color;\n $navbar-dark-brand-color: $navbar-dark-active-color;\n $navbar-dark-brand-hover-color: $navbar-dark-active-color;\n\n // Dropdowns\n //\n // Dropdown menu container and contents.\n\n $dropdown-min-width: 10rem;\n $dropdown-padding-x: 0;\n $dropdown-padding-y: 0.5rem;\n $dropdown-spacer: 0.125rem;\n $dropdown-font-size: $font-size-base;\n $dropdown-color: $body-color;\n $dropdown-bg: $white;\n $dropdown-border-color: rgba($black, 0.15);\n $dropdown-border-radius: $border-radius;\n $dropdown-border-width: $border-width;\n $dropdown-inner-border-radius: ", ";\n $dropdown-divider-bg: $dropdown-border-color;\n $dropdown-divider-margin-y: $spacer * 0.5;\n $dropdown-box-shadow: $box-shadow;\n\n $dropdown-link-color: $gray-900;\n\n $dropdown-link-hover-color: ", ";\n $dropdown-link-hover-bg: $gray-200;\n\n $dropdown-link-active-color: $component-active-color;\n $dropdown-link-active-bg: $component-active-bg;\n\n $dropdown-link-disabled-color: $gray-500;\n\n $dropdown-item-padding-y: $spacer * 0.25;\n $dropdown-item-padding-x: $spacer;\n\n $dropdown-header-color: $gray-600;\n $dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x;\n\n $dropdown-dark-color: $gray-300;\n $dropdown-dark-bg: $gray-800;\n $dropdown-dark-border-color: $dropdown-border-color;\n $dropdown-dark-divider-bg: $dropdown-divider-bg;\n $dropdown-dark-box-shadow: null;\n $dropdown-dark-link-color: $dropdown-dark-color;\n $dropdown-dark-link-hover-color: $white;\n $dropdown-dark-link-hover-bg: rgba($white, 0.15);\n $dropdown-dark-link-active-color: $dropdown-link-active-color;\n $dropdown-dark-link-active-bg: $dropdown-link-active-bg;\n $dropdown-dark-link-disabled-color: $gray-500;\n $dropdown-dark-header-color: $gray-500;\n\n // ...\n\n // Cards\n\n $card-spacer-y: $spacer;\n $card-spacer-x: $spacer;\n $card-title-spacer-y: $spacer * 0.5;\n $card-border-width: $border-width;\n $card-border-color: rgba($black, 0.125);\n $card-border-radius: $border-radius;\n $card-box-shadow: null;\n $card-inner-border-radius: ", ";\n $card-cap-padding-y: $card-spacer-y * 0.5;\n $card-cap-padding-x: $card-spacer-x;\n $card-cap-bg: rgba($black, 0.03);\n $card-cap-color: null;\n $card-height: null;\n $card-color: null;\n $card-bg: $white;\n $card-img-overlay-padding: $spacer;\n $card-group-margin: $grid-gutter-width * 0.5;\n\n // ...\n\n // Tooltips\n\n $tooltip-font-size: $font-size-sm;\n $tooltip-max-width: 200px;\n $tooltip-color: $white;\n $tooltip-bg: $black;\n $tooltip-border-radius: $border-radius;\n $tooltip-opacity: 0.9;\n $tooltip-padding-y: $spacer * 0.25;\n $tooltip-padding-x: $spacer * 0.5;\n $tooltip-margin: 0;\n\n $tooltip-arrow-width: 0.8rem;\n $tooltip-arrow-height: 0.4rem;\n $tooltip-arrow-color: $tooltip-bg;\n\n // Popovers\n\n $popover-font-size: $font-size-sm;\n $popover-bg: $white;\n $popover-max-width: 276px;\n $popover-border-width: $border-width;\n $popover-border-color: rgba($black, 0.2);\n $popover-border-radius: $border-radius-lg;\n $popover-inner-border-radius: ", ";\n $popover-box-shadow: $box-shadow;\n\n $popover-header-bg: ", ";\n $popover-header-color: $headings-color;\n $popover-header-padding-y: 0.5rem;\n $popover-header-padding-x: $spacer;\n\n $popover-body-color: $body-color;\n $popover-body-padding-y: $spacer;\n $popover-body-padding-x: $spacer;\n\n $popover-arrow-width: 1rem;\n $popover-arrow-height: 0.5rem;\n $popover-arrow-color: $popover-bg;\n\n $popover-arrow-outer-color: $popover-border-color;\n\n // Toasts\n\n $toast-max-width: 350px;\n $toast-padding-x: 0.75rem;\n $toast-padding-y: 0.5rem;\n $toast-font-size: 0.875rem;\n $toast-color: null;\n $toast-background-color: rgba($white, 0.85);\n $toast-border-width: 1px;\n $toast-border-color: rgba($black, 0.1);\n $toast-border-radius: $border-radius;\n $toast-box-shadow: $box-shadow;\n $toast-spacing: $container-padding-x;\n\n $toast-header-color: $gray-600;\n $toast-header-background-color: rgba($white, 0.85);\n $toast-header-border-color: rgba($black, 0.05);\n\n // Badges\n\n $badge-font-size: $font-size-base * 0.75; // 0.75em;\n $badge-font-weight: $font-weight-bold;\n $badge-color: $white;\n $badge-padding-y: $badge-font-size * 0.35; // 0.35em;\n $badge-padding-x: $badge-font-size * 0.65; // 0.65em;\n $badge-border-radius: $border-radius;\n\n // Modals\n\n $modal-inner-padding: $spacer;\n\n $modal-footer-margin-between: 0.5rem;\n\n $modal-dialog-margin: 0.5rem;\n $modal-dialog-margin-y-sm-up: 1.75rem;\n\n $modal-title-line-height: $line-height-base;\n\n $modal-content-color: null;\n $modal-content-bg: $white;\n $modal-content-border-color: rgba($black, 0.65); // rgba($black, 0.2);\n $modal-content-border-width: $border-width;\n $modal-content-border-radius: $border-radius-lg;\n $modal-content-inner-border-radius: ", ";\n $modal-content-box-shadow-xs: $box-shadow-sm;\n $modal-content-box-shadow-sm-up: $box-shadow;\n\n $modal-backdrop-bg: $black;\n $modal-backdrop-opacity: 0.5;\n $modal-header-border-color: $border-color;\n $modal-footer-border-color: $modal-header-border-color;\n $modal-header-border-width: $modal-content-border-width;\n $modal-footer-border-width: $modal-header-border-width;\n $modal-header-padding-y: $modal-inner-padding;\n $modal-header-padding-x: $modal-inner-padding;\n $modal-header-padding: $modal-header-padding-y $modal-header-padding-x; // Keep this for backwards compatibility\n\n $modal-sm: 300px;\n $modal-md: 500px;\n $modal-lg: 800px;\n $modal-xl: 1140px;\n\n $modal-fade-transform: translate(0, -50px);\n $modal-show-transform: none;\n $modal-transition: transform 0.3s ease-out;\n $modal-scale-transform: scale(1.02);\n\n // ...\n\n // Alerts\n //\n // Define alert colors, border radius, and padding.\n\n $alert-padding-y: $spacer;\n $alert-padding-x: $spacer;\n $alert-margin-bottom: 1rem;\n $alert-border-radius: $border-radius;\n $alert-link-font-weight: $font-weight-bold;\n $alert-border-width: $border-width;\n $alert-bg-scale: -80%;\n $alert-border-scale: -70%;\n $alert-color-scale: 40%;\n $alert-dismissible-padding-r: $alert-padding-x * 3; // 3x covers width of x plus default padding on either side\n\n // Pagination\n\n $pagination-padding-y: 0.375rem;\n $pagination-padding-x: 0.75rem;\n $pagination-padding-y-sm: 0.25rem;\n $pagination-padding-x-sm: 0.5rem;\n $pagination-padding-y-lg: 0.75rem;\n $pagination-padding-x-lg: 1.5rem;\n\n $pagination-color: $link-color;\n $pagination-bg: $white;\n $pagination-border-width: $border-width;\n $pagination-border-radius: $border-radius;\n $pagination-margin-start: -$pagination-border-width;\n $pagination-border-color: $gray-300;\n\n $pagination-focus-color: $link-hover-color;\n $pagination-focus-bg: $gray-200;\n $pagination-focus-box-shadow: $input-btn-focus-box-shadow;\n $pagination-focus-outline: 0;\n\n $pagination-hover-color: $link-hover-color;\n $pagination-hover-bg: $gray-200;\n $pagination-hover-border-color: $gray-300;\n\n $pagination-active-color: $component-active-color;\n $pagination-active-bg: $component-active-bg;\n $pagination-active-border-color: $pagination-active-bg;\n\n $pagination-disabled-color: $gray-600;\n $pagination-disabled-bg: $white;\n $pagination-disabled-border-color: $gray-300;\n\n $pagination-transition: color 0.15s ease-in-out,\n background-color 0.15s ease-in-out, border-color 0.15s ease-in-out,\n box-shadow 0.15s ease-in-out;\n\n $pagination-border-radius-sm: $border-radius-sm;\n $pagination-border-radius-lg: $border-radius-lg;\n\n // Progress bars\n\n $progress-height: 1rem;\n $progress-font-size: $font-size-base * 0.75;\n $progress-bg: $gray-200;\n $progress-border-radius: $border-radius;\n $progress-box-shadow: $box-shadow-inset;\n $progress-bar-color: $white;\n $progress-bar-bg: $primary;\n $progress-bar-animation-timing: 1s linear infinite;\n $progress-bar-transition: width 0.6s ease;\n\n // List group\n\n $list-group-color: $gray-900;\n $list-group-bg: $white;\n $list-group-border-color: rgba($black, 0.125);\n $list-group-border-width: $border-width;\n $list-group-border-radius: $border-radius;\n\n $list-group-item-padding-y: $spacer * 0.5;\n $list-group-item-padding-x: $spacer;\n $list-group-item-bg-scale: -80%;\n $list-group-item-color-scale: 40%;\n\n $list-group-hover-bg: $gray-100;\n $list-group-active-color: $component-active-color;\n $list-group-active-bg: $component-active-bg;\n $list-group-active-border-color: $list-group-active-bg;\n\n $list-group-disabled-color: $gray-600;\n $list-group-disabled-bg: $list-group-bg;\n\n $list-group-action-color: $gray-700;\n $list-group-action-hover-color: $list-group-action-color;\n\n $list-group-action-active-color: $body-color;\n $list-group-action-active-bg: $gray-200;\n\n // ...\n\n // Spinners\n\n $spinner-width: 2rem;\n $spinner-height: $spinner-width;\n $spinner-vertical-align: $font-size-base * -0.125; // -.125em;\n $spinner-border-width: $font-size-base * 0.25; // .25em;\n $spinner-animation-speed: 0.75s;\n\n $spinner-width-sm: 1rem;\n $spinner-height-sm: $spinner-width-sm;\n $spinner-border-width-sm: $font-size-base * 0.2; // .2em;\n\n // Close\n\n $btn-close-width: $font-size-base * 1; // 1em;\n $btn-close-height: $btn-close-width;\n $btn-close-padding-x: $font-size-base * 0.25; // .25em;\n $btn-close-padding-y: $btn-close-padding-x;\n $btn-close-color: $black;\n $btn-close-bg: ", ";\n $btn-close-focus-shadow: $input-btn-focus-box-shadow;\n $btn-close-opacity: 0.5;\n $btn-close-hover-opacity: 0.75;\n $btn-close-focus-opacity: 1;\n $btn-close-disabled-opacity: 0.25;\n // $btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);\n\n // Offcanvas\n\n $offcanvas-padding-y: $modal-inner-padding;\n $offcanvas-padding-x: $modal-inner-padding;\n $offcanvas-horizontal-width: 400px;\n $offcanvas-vertical-height: 200px; // 30vh;\n $offcanvas-transition-duration: 0.3s;\n $offcanvas-border-color: $modal-content-border-color;\n $offcanvas-border-width: $modal-content-border-width;\n $offcanvas-title-line-height: $modal-title-line-height;\n $offcanvas-bg-color: $modal-content-bg;\n $offcanvas-color: $modal-content-color;\n $offcanvas-box-shadow: $modal-content-box-shadow-xs;\n $offcanvas-backdrop-bg: $modal-backdrop-bg;\n $offcanvas-backdrop-opacity: $modal-backdrop-opacity;\n\n // Code\n\n $code-font-size: $small-font-size;\n $code-color: $pink;\n\n $kbd-padding-y: 0.2rem;\n $kbd-padding-x: 0.4rem;\n $kbd-font-size: $code-font-size;\n $kbd-color: $white;\n $kbd-bg: $gray-900;\n\n $pre-color: null;\n"])), function (t) {
2284
2607
  return {
2285
2608
  100: t['gray-100'],
2286
2609
  200: t['gray-200'],
@@ -2452,9 +2775,9 @@ var variables = css(_templateObject$1e || (_templateObject$1e = _taggedTemplateL
2452
2775
  100: '100%'
2453
2776
  };
2454
2777
  }, shiftColor(function (t) {
2455
- return t['link-shade-percentage'];
2456
- }, function (t) {
2457
2778
  return t['link-color'];
2779
+ }, function (t) {
2780
+ return t['link-shade-percentage'];
2458
2781
  }), function () {
2459
2782
  return {
2460
2783
  xs: 0,
@@ -2518,9 +2841,9 @@ var variables = css(_templateObject$1e || (_templateObject$1e = _taggedTemplateL
2518
2841
  };
2519
2842
  }, function () {
2520
2843
  return '/';
2521
- }, tintColor(0.5, function (t) {
2844
+ }, tintColor(function (t) {
2522
2845
  return t['component-active-bg'];
2523
- }), add(function (t) {
2846
+ }, 0.5), add(function (t) {
2524
2847
  return calculate(t['input-line-height'], '*', 1);
2525
2848
  }, function (t) {
2526
2849
  return calculate(t['input-padding-y'], '*', 2);
@@ -2570,9 +2893,9 @@ add(function (t) {
2570
2893
  return t['dropdown-border-radius'];
2571
2894
  }, function (t) {
2572
2895
  return t['dropdown-border-width'];
2573
- }), shadeColor(0.1, function (t) {
2896
+ }), shadeColor(function (t) {
2574
2897
  return t['dropdown-link-color'];
2575
- }), subtract(function (t) {
2898
+ }, 0.1), subtract(function (t) {
2576
2899
  return t['card-border-radius'];
2577
2900
  }, function (t) {
2578
2901
  return t['card-border-width'];
@@ -2580,9 +2903,9 @@ add(function (t) {
2580
2903
  return t['popover-border-radius'];
2581
2904
  }, function (t) {
2582
2905
  return t['popover-border-width'];
2583
- }), shadeColor(0.06, function (t) {
2906
+ }), shadeColor(function (t) {
2584
2907
  return t['popover-bg'];
2585
- }), subtract(function (t) {
2908
+ }, 0.06), subtract(function (t) {
2586
2909
  return t['modal-content-border-radius'];
2587
2910
  }, function (t) {
2588
2911
  return t['modal-content-border-width'];
@@ -2971,13 +3294,13 @@ var styles$1f = StyleSheet.create(_objectSpread2(_objectSpread2({
2971
3294
  }, each(THEME_COLORS, function (state, value) {
2972
3295
  var _ref;
2973
3296
 
2974
- return _ref = {}, _defineProperty(_ref, ".alert-".concat(state), css(_templateObject2$V || (_templateObject2$V = _taggedTemplateLiteral(["\n background-color: ", ";\n border-color: ", ";\n "])), shiftColor(function (t) {
3297
+ return _ref = {}, _defineProperty(_ref, ".alert-".concat(state), css(_templateObject2$V || (_templateObject2$V = _taggedTemplateLiteral(["\n background-color: ", ";\n border-color: ", ";\n "])), shiftColor(value, function (t) {
2975
3298
  return t['alert-bg-scale'];
2976
- }, value), shiftColor(function (t) {
3299
+ }), shiftColor(value, function (t) {
2977
3300
  return t['alert-border-scale'];
2978
- }, value))), _defineProperty(_ref, ".alert-".concat(state, " --text"), css(_templateObject3$t || (_templateObject3$t = _taggedTemplateLiteral(["\n color: ", ";\n "])), shiftColor(function (t) {
3301
+ }))), _defineProperty(_ref, ".alert-".concat(state, " --text"), css(_templateObject3$t || (_templateObject3$t = _taggedTemplateLiteral(["\n color: ", ";\n "])), shiftColor(value, function (t) {
2979
3302
  return t['alert-color-scale'];
2980
- }, value))), _ref;
3303
+ }))), _ref;
2981
3304
  })), {}, {
2982
3305
  '.alert-dismissible': {// TODO
2983
3306
  }
@@ -3335,7 +3658,7 @@ function useModifier(name, props, ref) {
3335
3658
  }
3336
3659
 
3337
3660
  var _excluded$1p = ["toggle", "dismiss"],
3338
- _excluded2$2 = ["ref"];
3661
+ _excluded2$3 = ["ref"];
3339
3662
 
3340
3663
  var getActionHook = function getActionHook(toggle, dismiss) {
3341
3664
  if (toggle) {
@@ -3366,11 +3689,89 @@ function useAction(props, ref) {
3366
3689
 
3367
3690
  var _useActionHook = useActionHook(restProps),
3368
3691
  actionRef = _useActionHook.ref,
3369
- actionProps = _objectWithoutProperties(_useActionHook, _excluded2$2);
3692
+ actionProps = _objectWithoutProperties(_useActionHook, _excluded2$3);
3370
3693
 
3371
3694
  return [actionProps, concatRefs(actionRef, ref)];
3372
3695
  }
3373
3696
 
3697
+ function useInteractionState(_ref) {
3698
+ var _ref$onFocus = _ref.onFocus,
3699
+ _onFocus = _ref$onFocus === void 0 ? function () {} : _ref$onFocus,
3700
+ _ref$onBlur = _ref.onBlur,
3701
+ _onBlur = _ref$onBlur === void 0 ? function () {} : _ref$onBlur,
3702
+ _ref$onHoverIn = _ref.onHoverIn,
3703
+ _onHoverIn = _ref$onHoverIn === void 0 ? function () {} : _ref$onHoverIn,
3704
+ _ref$onHoverOut = _ref.onHoverOut,
3705
+ _onHoverOut = _ref$onHoverOut === void 0 ? function () {} : _ref$onHoverOut,
3706
+ _ref$onPressIn = _ref.onPressIn,
3707
+ _onPressIn = _ref$onPressIn === void 0 ? function () {} : _ref$onPressIn,
3708
+ _ref$onPressOut = _ref.onPressOut,
3709
+ _onPressOut = _ref$onPressOut === void 0 ? function () {} : _ref$onPressOut,
3710
+ autoFocus = _ref.autoFocus;
3711
+
3712
+ var _useState = useState(false),
3713
+ _useState2 = _slicedToArray(_useState, 2),
3714
+ active = _useState2[0],
3715
+ setActive = _useState2[1];
3716
+
3717
+ var _useState3 = useState(false),
3718
+ _useState4 = _slicedToArray(_useState3, 2),
3719
+ hover = _useState4[0],
3720
+ setHovered = _useState4[1];
3721
+
3722
+ var _useFocusRing = useFocusRing({
3723
+ autoFocus: autoFocus
3724
+ }),
3725
+ focus = _useFocusRing.isFocused,
3726
+ focusVisible = _useFocusRing.isFocusVisible,
3727
+ focusProps = _useFocusRing.focusProps;
3728
+
3729
+ var interactionProps = useMemo(function () {
3730
+ return {
3731
+ onHoverIn: function onHoverIn(event) {
3732
+ setHovered(true);
3733
+
3734
+ _onHoverIn(event);
3735
+ },
3736
+ onHoverOut: function onHoverOut(event) {
3737
+ setHovered(false);
3738
+
3739
+ _onHoverOut(event);
3740
+ },
3741
+ onFocus: function onFocus(event) {
3742
+ focusProps.onFocus(event);
3743
+
3744
+ _onFocus(event);
3745
+ },
3746
+ onBlur: function onBlur(event) {
3747
+ focusProps.onBlur(event);
3748
+
3749
+ _onBlur(event);
3750
+ },
3751
+ onPressIn: function onPressIn(event) {
3752
+ setActive(true);
3753
+
3754
+ _onPressIn(event);
3755
+ },
3756
+ onPressOut: function onPressOut(event) {
3757
+ setActive(false);
3758
+
3759
+ _onPressOut(event);
3760
+ }
3761
+ };
3762
+ }, [_onFocus, _onBlur, _onHoverIn, _onHoverOut, _onPressIn, _onPressOut]);
3763
+ var interaction = {
3764
+ hover: hover,
3765
+ focus: focus,
3766
+ focusVisible: focusVisible,
3767
+ active: active
3768
+ };
3769
+ return {
3770
+ interaction: interaction,
3771
+ interactionProps: interactionProps
3772
+ };
3773
+ }
3774
+
3374
3775
  var _excluded$1o = ["color", "direction", "style"];
3375
3776
 
3376
3777
  var _templateObject$16, _templateObject2$Q, _templateObject3$q, _templateObject4$n, _templateObject5$k;
@@ -3538,34 +3939,35 @@ var Pressable = /*#__PURE__*/React.forwardRef(function (props, ref) {
3538
3939
  var resolveActiveStyle = useStyle(active && activeStyle);
3539
3940
  var resolveTextStyle = useStyle([context && context.style, textStyle]);
3540
3941
  var resolveActiveTextStyle = useStyle(active && activeTextStyle);
3942
+
3943
+ var _useInteractionState = useInteractionState(elementProps),
3944
+ interaction = _useInteractionState.interaction,
3945
+ interactionProps = _useInteractionState.interactionProps;
3946
+
3541
3947
  var hasTextStyle = context && context.style || textStyle;
3542
3948
  var wrappedChildren = applyCaret(children, caret);
3543
- return /*#__PURE__*/React.createElement(Pressable$1, _extends({}, elementProps, {
3949
+ return /*#__PURE__*/React.createElement(Pressable$1, _extends({}, elementProps, interactionProps, {
3544
3950
  ref: actionRef,
3545
3951
  accessibilityRole: getRole$2(actionProps),
3546
- style: function style(interaction) {
3547
- return [resolveStyle({
3952
+ style: [resolveStyle({
3953
+ media: media,
3954
+ interaction: interaction
3955
+ }), resolveActiveStyle({
3956
+ media: media,
3957
+ interaction: interaction
3958
+ })]
3959
+ }), hasTextStyle ? /*#__PURE__*/React.createElement(TextStyleContext.Provider, {
3960
+ value: {
3961
+ style: [resolveTextStyle({
3548
3962
  media: media,
3549
3963
  interaction: interaction
3550
- }), resolveActiveStyle({
3964
+ }), resolveActiveTextStyle({
3551
3965
  media: media,
3552
3966
  interaction: interaction
3553
- })];
3967
+ })],
3968
+ hasAncestor: context && context.hasTextAncestor
3554
3969
  }
3555
- }), hasTextStyle ? function (interaction) {
3556
- return /*#__PURE__*/React.createElement(TextStyleContext.Provider, {
3557
- value: {
3558
- style: [resolveTextStyle({
3559
- media: media,
3560
- interaction: interaction
3561
- }), resolveActiveTextStyle({
3562
- media: media,
3563
- interaction: interaction
3564
- })],
3565
- hasAncestor: context && context.hasTextAncestor
3566
- }
3567
- }, wrappedChildren);
3568
- } : wrappedChildren);
3970
+ }, wrappedChildren) : wrappedChildren);
3569
3971
  });
3570
3972
  Pressable.displayName = 'Pressable';
3571
3973
  Pressable.propTypes = propTypes$1q;
@@ -3613,37 +4015,37 @@ var propTypes$1p = {
3613
4015
  activeTextStyle: PropTypes.any
3614
4016
  };
3615
4017
  var styles$17 = StyleSheet.create(_objectSpread2(_objectSpread2({
3616
- '.btn': css(_templateObject$15 || (_templateObject$15 = _taggedTemplateLiteral(["\n flex-direction: row; // added for bootstrap-rn\n justify-content: center; // added for bootstrap-rn\n // display: inline-block;\n @include platform(web) {\n // cursor: if($enable-button-pointers, pointer, null);\n user-select: none;\n }\n background-color: transparent;\n border: $btn-border-width solid transparent;\n padding: $btn-padding-y $btn-padding-x;\n // Manually declare to provide an override to the browser default\n border-radius: $btn-border-radius;\n // @include transition($btn-transition);\n\n &:focus {\n // outline: 0;\n // box-shadow: $btn-focus-box-shadow;\n }\n\n &:active {\n // @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n // @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n "]))),
4018
+ '.btn': css(_templateObject$15 || (_templateObject$15 = _taggedTemplateLiteral(["\n flex-direction: row; // added for bootstrap-rn\n justify-content: center; // added for bootstrap-rn\n // display: inline-block;\n @include platform(web) {\n // cursor: if($enable-button-pointers, pointer, null);\n user-select: none;\n }\n background-color: transparent;\n border: $btn-border-width solid transparent;\n padding: $btn-padding-y $btn-padding-x;\n // Manually declare to provide an override to the browser default\n border-radius: $btn-border-radius;\n // @include transition($btn-transition);\n\n &:focus-visible {\n // outline: 0;\n // box-shadow: $btn-focus-box-shadow;\n }\n\n &:active {\n // @include box-shadow($btn-active-box-shadow);\n\n &:focus-visible {\n // @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n "]))),
3617
4019
  '.btn --text': css(_templateObject2$P || (_templateObject2$P = _taggedTemplateLiteral(["\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n line-height: $btn-font-size * $btn-line-height;\n color: $body-color;\n text-align: center;\n text-decoration: none; // if($link-decoration == none, null, none);\n white-space: $btn-white-space;\n // vertical-align: middle;\n font-size: $btn-font-size;\n\n &:hover {\n color: $body-color;\n text-decoration: none; // if($link-decoration == none, null, none);\n }\n "]))),
3618
4020
  '.btn.disabled': css(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteral(["\n // pointer-events: none;\n opacity: $btn-disabled-opacity;\n // @include box-shadow(none);\n "])))
3619
4021
  }, each(THEME_COLORS, function (color, value) {
3620
4022
  var _ref;
3621
4023
 
3622
- return _ref = {}, _defineProperty(_ref, ".btn-".concat(color), css(_templateObject4$m || (_templateObject4$m = _taggedTemplateLiteral(["\n background-color: ", ";\n border-color: ", ";\n // @include box-shadow($btn-box-shadow);\n\n &:hover {\n background-color: ", ";\n border-color: ", ";\n }\n\n &:focus {\n background-color: ", ";\n border-color: ", ";\n /* @if $enable-shadows {\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);\n } */\n }\n\n &:active {\n background-color: ", ";\n // Remove CSS gradients if they're enabled\n // background-image: if($enable-gradients, none, null);\n border-color: ", ";\n }\n "])), value, value, shadeColor(function (t) {
4024
+ return _ref = {}, _defineProperty(_ref, ".btn-".concat(color), css(_templateObject4$m || (_templateObject4$m = _taggedTemplateLiteral(["\n background-color: ", ";\n border-color: ", ";\n // @include box-shadow($btn-box-shadow);\n\n &:hover {\n background-color: ", ";\n border-color: ", ";\n }\n\n &:focus-visible {\n background-color: ", ";\n border-color: ", ";\n /* @if $enable-shadows {\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);\n } */\n }\n\n &:active {\n background-color: ", ";\n // Remove CSS gradients if they're enabled\n // background-image: if($enable-gradients, none, null);\n border-color: ", ";\n }\n "])), value, value, shadeColor(value, function (t) {
3623
4025
  return t['btn-hover-bg-shade-amount'];
3624
- }, value), shadeColor(function (t) {
4026
+ }), shadeColor(value, function (t) {
3625
4027
  return t['btn-hover-border-shade-amount'];
3626
- }, value), shadeColor(function (t) {
4028
+ }), shadeColor(value, function (t) {
3627
4029
  return t['btn-hover-bg-shade-amount'];
3628
- }, value), shadeColor(function (t) {
4030
+ }), shadeColor(value, function (t) {
3629
4031
  return t['btn-hover-border-shade-amount'];
3630
- }, value), shadeColor(function (t) {
4032
+ }), shadeColor(value, function (t) {
3631
4033
  return t['btn-active-bg-shade-amount'];
3632
- }, value), shadeColor(function (t) {
4034
+ }), shadeColor(value, function (t) {
3633
4035
  return t['btn-active-border-shade-amount'];
3634
- }, value))), _defineProperty(_ref, ".btn-".concat(color, " --text"), css(_templateObject5$j || (_templateObject5$j = _taggedTemplateLiteral(["\n color: ", ";\n\n &:hover {\n color: ", ";\n }\n\n &:focus {\n color: ", ";\n }\n\n &:active {\n color: ", ";\n }\n "])), colorContrast(value), colorContrast(value), colorContrast(value), colorContrast(value))), _defineProperty(_ref, ".btn-".concat(color, ".active"), css(_templateObject6$g || (_templateObject6$g = _taggedTemplateLiteral(["\n background-color: ", ";\n // Remove CSS gradients if they're enabled\n // background-image: if($enable-gradients, none, null);\n border-color: ", ";\n "])), shadeColor(function (t) {
4036
+ }))), _defineProperty(_ref, ".btn-".concat(color, " --text"), css(_templateObject5$j || (_templateObject5$j = _taggedTemplateLiteral(["\n color: ", ";\n\n &:hover {\n color: ", ";\n }\n\n &:focus-visible {\n color: ", ";\n }\n\n &:active {\n color: ", ";\n }\n "])), colorContrast(value), colorContrast(value), colorContrast(value), colorContrast(value))), _defineProperty(_ref, ".btn-".concat(color, ".active"), css(_templateObject6$g || (_templateObject6$g = _taggedTemplateLiteral(["\n background-color: ", ";\n // Remove CSS gradients if they're enabled\n // background-image: if($enable-gradients, none, null);\n border-color: ", ";\n "])), shadeColor(value, function (t) {
3635
4037
  return t['btn-active-bg-shade-amount'];
3636
- }, value), shadeColor(function (t) {
4038
+ }), shadeColor(value, function (t) {
3637
4039
  return t['btn-active-border-shade-amount'];
3638
- }, value))), _defineProperty(_ref, ".btn-".concat(color, ".active --text"), css(_templateObject7$b || (_templateObject7$b = _taggedTemplateLiteral(["\n color: ", ";\n "])), colorContrast(value))), _defineProperty(_ref, ".btn-".concat(color, ".disabled"), css(_templateObject8$b || (_templateObject8$b = _taggedTemplateLiteral(["\n $disabled-background: ", ";\n $disabled-border: ", ";\n\n background-color: $disabled-background;\n // Remove CSS gradients if they're enabled\n // background-image: if($enable-gradients, none, null);\n border-color: $disabled-border;\n "])), value, value)), _defineProperty(_ref, ".btn-".concat(color, ".disabled --text"), css(_templateObject9$a || (_templateObject9$a = _taggedTemplateLiteral(["\n $disabled-color: ", ";\n\n color: $disabled-color;\n "])), colorContrast(value))), _defineProperty(_ref, ".btn-outline-".concat(color), css(_templateObject10$a || (_templateObject10$a = _taggedTemplateLiteral(["\n border-color: ", ";\n\n &:hover {\n background-color: ", ";\n border-color: ", ";\n }\n\n &:focus {\n // box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &:active {\n background-color: ", ";\n border-color: ", ";\n\n /* &:focus {\n @if $enable-shadows {\n @include box-shadow(\n $btn-active-box-shadow,\n 0 0 0 $btn-focus-width rgba($color, 0.5)\n );\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba($color, 0.5);\n }\n } */\n }\n "])), value, value, value, value, value)), _defineProperty(_ref, ".btn-outline-".concat(color, " --text"), css(_templateObject11$7 || (_templateObject11$7 = _taggedTemplateLiteral(["\n color: ", ";\n\n &:hover {\n color: ", ";\n }\n\n &:active {\n color: ", ";\n }\n "])), value, colorContrast(value), colorContrast(value))), _defineProperty(_ref, ".btn-outline-".concat(color, ".disabled"), css(_templateObject12$5 || (_templateObject12$5 = _taggedTemplateLiteral(["\n background-color: transparent;\n "])))), _defineProperty(_ref, ".btn-outline-".concat(color, ".disabled --text"), css(_templateObject13$5 || (_templateObject13$5 = _taggedTemplateLiteral(["\n color: ", ";\n "])), value)), _ref;
4040
+ }))), _defineProperty(_ref, ".btn-".concat(color, ".active --text"), css(_templateObject7$b || (_templateObject7$b = _taggedTemplateLiteral(["\n color: ", ";\n "])), colorContrast(value))), _defineProperty(_ref, ".btn-".concat(color, ".disabled"), css(_templateObject8$b || (_templateObject8$b = _taggedTemplateLiteral(["\n $disabled-background: ", ";\n $disabled-border: ", ";\n\n background-color: $disabled-background;\n // Remove CSS gradients if they're enabled\n // background-image: if($enable-gradients, none, null);\n border-color: $disabled-border;\n "])), value, value)), _defineProperty(_ref, ".btn-".concat(color, ".disabled --text"), css(_templateObject9$a || (_templateObject9$a = _taggedTemplateLiteral(["\n $disabled-color: ", ";\n\n color: $disabled-color;\n "])), colorContrast(value))), _defineProperty(_ref, ".btn-outline-".concat(color), css(_templateObject10$a || (_templateObject10$a = _taggedTemplateLiteral(["\n border-color: ", ";\n\n &:hover {\n background-color: ", ";\n border-color: ", ";\n }\n\n &:focus-visible {\n // box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &:active {\n background-color: ", ";\n border-color: ", ";\n\n /* &:focus {\n @if $enable-shadows {\n @include box-shadow(\n $btn-active-box-shadow,\n 0 0 0 $btn-focus-width rgba($color, 0.5)\n );\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba($color, 0.5);\n }\n } */\n }\n "])), value, value, value, value, value)), _defineProperty(_ref, ".btn-outline-".concat(color, " --text"), css(_templateObject11$7 || (_templateObject11$7 = _taggedTemplateLiteral(["\n color: ", ";\n\n &:hover {\n color: ", ";\n }\n\n &:active {\n color: ", ";\n }\n "])), value, colorContrast(value), colorContrast(value))), _defineProperty(_ref, ".btn-outline-".concat(color, ".disabled"), css(_templateObject12$5 || (_templateObject12$5 = _taggedTemplateLiteral(["\n background-color: transparent;\n "])))), _defineProperty(_ref, ".btn-outline-".concat(color, ".disabled --text"), css(_templateObject13$5 || (_templateObject13$5 = _taggedTemplateLiteral(["\n color: ", ";\n "])), value)), _ref;
3639
4041
  })), {}, {
3640
- '.btn-link --text': css(_templateObject14$4 || (_templateObject14$4 = _taggedTemplateLiteral(["\n font-weight: $font-weight-normal;\n color: $btn-link-color;\n text-decoration-color: $btn-link-color; // added for bootstrap-rn\n text-decoration-line: $link-decoration;\n\n &:hover {\n color: $btn-link-hover-color;\n text-decoration-color: $btn-link-hover-color; // added for bootstrap-rn\n text-decoration-line: $link-hover-decoration;\n }\n\n &:focus {\n text-decoration-line: $link-hover-decoration;\n }\n\n // No need for an active state here\n "]))),
4042
+ '.btn-link --text': css(_templateObject14$4 || (_templateObject14$4 = _taggedTemplateLiteral(["\n font-weight: $font-weight-normal;\n color: $btn-link-color;\n text-decoration-color: $btn-link-color; // added for bootstrap-rn\n text-decoration-line: $link-decoration;\n\n &:hover {\n color: $btn-link-hover-color;\n text-decoration-color: $btn-link-hover-color; // added for bootstrap-rn\n text-decoration-line: $link-hover-decoration;\n }\n\n &:focus-visible {\n text-decoration-line: $link-hover-decoration;\n }\n\n // No need for an active state here\n "]))),
3641
4043
  '.btn-link.disabled --text': css(_templateObject15$3 || (_templateObject15$3 = _taggedTemplateLiteral(["\n color: $btn-link-disabled-color;\n "]))),
3642
4044
  '.btn-lg': css(_templateObject16$1 || (_templateObject16$1 = _taggedTemplateLiteral(["\n padding: $btn-padding-y-lg $btn-padding-x-lg;\n // Manually declare to provide an override to the browser default\n border-radius: $btn-border-radius-lg;\n "]))),
3643
4045
  '.btn-lg --text': css(_templateObject17$1 || (_templateObject17$1 = _taggedTemplateLiteral(["\n line-height: $btn-font-size-lg * $btn-line-height;\n font-size: $btn-font-size-lg;\n "]))),
3644
4046
  '.btn-sm': css(_templateObject18$1 || (_templateObject18$1 = _taggedTemplateLiteral(["\n padding: $btn-padding-y-sm $btn-padding-x-sm;\n // Manually declare to provide an override to the browser default\n border-radius: $btn-border-radius-sm;\n "]))),
3645
4047
  '.btn-sm --text': css(_templateObject19$1 || (_templateObject19$1 = _taggedTemplateLiteral(["\n line-height: $btn-font-size-sm * $btn-line-height;\n font-size: $btn-font-size-sm;\n "]))),
3646
- '.btn-group > .btn': css(_templateObject20$1 || (_templateObject20$1 = _taggedTemplateLiteral(["\n position: relative;\n // flex: 1 1 auto;\n\n &:hover {\n z-index: 1;\n }\n &:focus {\n z-index: 1;\n }\n &:active {\n z-index: 1;\n }\n "]))),
4048
+ '.btn-group > .btn': css(_templateObject20$1 || (_templateObject20$1 = _taggedTemplateLiteral(["\n position: relative;\n // flex: 1 1 auto;\n\n &:hover {\n z-index: 1;\n }\n &:focus-visible {\n z-index: 1;\n }\n &:active {\n z-index: 1;\n }\n "]))),
3647
4049
  '.btn-group > .btn.active': css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n z-index: 2; // 1;\n "]))),
3648
4050
  '.btn-group > .btn:not(:first-child)': css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n margin-left: -$btn-border-width;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n "]))),
3649
4051
  '.btn-group > .btn:not(:last-child)': css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n "])))
@@ -3754,7 +4156,7 @@ var propTypes$1n = {
3754
4156
  styleName: PropTypes.any
3755
4157
  };
3756
4158
  var styles$15 = StyleSheet.create({
3757
- body: css(_templateObject$13 || (_templateObject$13 = _taggedTemplateLiteral(["\n background-color: $body-bg;\n flex-grow: 1; // added for bootstrap-rn\n "]))),
4159
+ body: css(_templateObject$13 || (_templateObject$13 = _taggedTemplateLiteral(["\n background-color: $body-bg;\n flex-grow: 1; // added for bootstrap-rn\n flex-shrink: 1; // added for bootstrap-rn\n "]))),
3758
4160
  'body --text': css(_templateObject2$N || (_templateObject2$N = _taggedTemplateLiteral(["\n color: $body-color;\n text-align: $body-text-align;\n "])))
3759
4161
  });
3760
4162
  var Body = /*#__PURE__*/React.forwardRef(function (props, ref) {
@@ -4208,17 +4610,11 @@ function useBackground(style, styleName) {
4208
4610
  return useBackgroundForPlatform(style, styleName);
4209
4611
  }
4210
4612
 
4211
- var _excluded$1e = ["children", "onFocus", "onBlur", "onHoverIn", "onHoverOut", "onPressIn", "onPressOut", "disabled", "style", "textStyle", "styleName"];
4613
+ var _excluded$1e = ["children", "disabled", "style", "textStyle", "styleName"];
4212
4614
 
4213
4615
  var _templateObject$_, _templateObject2$J, _templateObject3$o, _templateObject4$l, _templateObject5$i;
4214
4616
  var propTypes$1i = {
4215
4617
  children: PropTypes.node,
4216
- onFocus: PropTypes.func,
4217
- onBlur: PropTypes.func,
4218
- onHoverIn: PropTypes.func,
4219
- onHoverOut: PropTypes.func,
4220
- onPressIn: PropTypes.func,
4221
- onPressOut: PropTypes.func,
4222
4618
  disabled: PropTypes.bool,
4223
4619
  // eslint-disable-next-line react/forbid-prop-types
4224
4620
  style: PropTypes.any,
@@ -4240,19 +4636,7 @@ var styles$_ = StyleSheet.create({
4240
4636
  });
4241
4637
  var CloseButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
4242
4638
  props.children;
4243
- var _props$onFocus = props.onFocus,
4244
- _onFocus = _props$onFocus === void 0 ? function () {} : _props$onFocus,
4245
- _props$onBlur = props.onBlur,
4246
- _onBlur = _props$onBlur === void 0 ? function () {} : _props$onBlur,
4247
- _props$onHoverIn = props.onHoverIn,
4248
- _onHoverIn = _props$onHoverIn === void 0 ? function () {} : _props$onHoverIn,
4249
- _props$onHoverOut = props.onHoverOut,
4250
- _onHoverOut = _props$onHoverOut === void 0 ? function () {} : _props$onHoverOut,
4251
- _props$onPressIn = props.onPressIn,
4252
- _onPressIn = _props$onPressIn === void 0 ? function () {} : _props$onPressIn,
4253
- _props$onPressOut = props.onPressOut,
4254
- _onPressOut = _props$onPressOut === void 0 ? function () {} : _props$onPressOut,
4255
- _props$disabled = props.disabled,
4639
+ var _props$disabled = props.disabled,
4256
4640
  disabled = _props$disabled === void 0 ? false : _props$disabled,
4257
4641
  style = props.style,
4258
4642
  textStyle = props.textStyle,
@@ -4260,22 +4644,6 @@ var CloseButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
4260
4644
  elementProps = _objectWithoutProperties(props, _excluded$1e);
4261
4645
 
4262
4646
  var media = useMedia();
4263
-
4264
- var _useState = useState(false),
4265
- _useState2 = _slicedToArray(_useState, 2),
4266
- focused = _useState2[0],
4267
- setFocused = _useState2[1];
4268
-
4269
- var _useState3 = useState(false),
4270
- _useState4 = _slicedToArray(_useState3, 2),
4271
- hovered = _useState4[0],
4272
- setHovered = _useState4[1];
4273
-
4274
- var _useState5 = useState(false),
4275
- _useState6 = _slicedToArray(_useState5, 2),
4276
- pressed = _useState6[0],
4277
- setPressed = _useState6[1];
4278
-
4279
4647
  var modal = useContext(ModalContext);
4280
4648
  var offcanvas = useContext(OffcanvasContext);
4281
4649
  var classes = getStyles(styles$_, ['.btn-close', disabled && '.btn-close.disabled', // Modal styles
@@ -4283,47 +4651,18 @@ var CloseButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
4283
4651
  offcanvas && '.offcanvas-header .btn-close']);
4284
4652
  var textClasses = getStyles(styles$_, ['.btn-close --text']);
4285
4653
  var resolveStyle = useStyle([classes, style], styleName);
4654
+
4655
+ var _useInteractionState = useInteractionState(elementProps),
4656
+ interaction = _useInteractionState.interaction,
4657
+ interactionProps = _useInteractionState.interactionProps;
4658
+
4286
4659
  var background = useBackground(resolveStyle({
4287
4660
  media: media,
4288
- interaction: {
4289
- focused: focused,
4290
- hovered: hovered,
4291
- pressed: pressed
4292
- }
4661
+ interaction: interaction
4293
4662
  }));
4294
- return /*#__PURE__*/React.createElement(Pressable, _extends({}, elementProps, {
4663
+ return /*#__PURE__*/React.createElement(Pressable, _extends({}, elementProps, interactionProps, {
4295
4664
  component: Pressable,
4296
4665
  ref: ref,
4297
- onFocus: function onFocus() {
4298
- setFocused(true);
4299
-
4300
- _onFocus();
4301
- },
4302
- onBlur: function onBlur() {
4303
- setFocused(false);
4304
-
4305
- _onBlur();
4306
- },
4307
- onHoverIn: function onHoverIn() {
4308
- setHovered(true);
4309
-
4310
- _onHoverIn();
4311
- },
4312
- onHoverOut: function onHoverOut() {
4313
- setHovered(false);
4314
-
4315
- _onHoverOut();
4316
- },
4317
- onPressIn: function onPressIn() {
4318
- setPressed(true);
4319
-
4320
- _onPressIn();
4321
- },
4322
- onPressOut: function onPressOut() {
4323
- setPressed(false);
4324
-
4325
- _onPressOut();
4326
- },
4327
4666
  disabled: disabled,
4328
4667
  style: background.style,
4329
4668
  textStyle: [textClasses, textStyle]
@@ -4656,7 +4995,7 @@ var FormCheckInputNative = /*#__PURE__*/React.forwardRef(function (props, ref) {
4656
4995
  FormCheckInputNative.displayName = 'FormCheckInputNative';
4657
4996
  FormCheckInputNative.propTypes = propTypes$1d;
4658
4997
 
4659
- var _excluded$19 = ["type", "value", "onFocus", "onBlur", "disabled", "valid", "invalid", "useNativeComponent", "style"];
4998
+ var _excluded$19 = ["type", "value", "onFocus", "onBlur", "disabled", "valid", "invalid", "useNativeComponent", "autoFocus", "style"];
4660
4999
 
4661
5000
  var _templateObject$Y, _templateObject2$H, _templateObject3$m, _templateObject4$j, _templateObject5$g, _templateObject6$e, _templateObject7$9, _templateObject8$9, _templateObject9$9, _templateObject10$9, _templateObject11$6, _templateObject12$4, _templateObject13$4, _templateObject14$3, _templateObject15$2;
4662
5001
  /* eslint-disable react/no-unused-prop-types */
@@ -4727,9 +5066,9 @@ var FormCheckInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
4727
5066
  var type = modifierProps.type,
4728
5067
  value = modifierProps.value,
4729
5068
  _modifierProps$onFocu = modifierProps.onFocus,
4730
- onFocus = _modifierProps$onFocu === void 0 ? function () {} : _modifierProps$onFocu,
5069
+ _onFocus = _modifierProps$onFocu === void 0 ? function () {} : _modifierProps$onFocu,
4731
5070
  _modifierProps$onBlur = modifierProps.onBlur,
4732
- onBlur = _modifierProps$onBlur === void 0 ? function () {} : _modifierProps$onBlur,
5071
+ _onBlur = _modifierProps$onBlur === void 0 ? function () {} : _modifierProps$onBlur,
4733
5072
  _modifierProps$disabl = modifierProps.disabled,
4734
5073
  disabled = _modifierProps$disabl === void 0 ? context ? context.disabled : false : _modifierProps$disabl,
4735
5074
  _modifierProps$valid = modifierProps.valid,
@@ -4738,12 +5077,14 @@ var FormCheckInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
4738
5077
  invalid = _modifierProps$invali === void 0 ? context ? context.invalid : false : _modifierProps$invali,
4739
5078
  _modifierProps$useNat = modifierProps.useNativeComponent,
4740
5079
  useNativeComponent = _modifierProps$useNat === void 0 ? false : _modifierProps$useNat,
5080
+ _modifierProps$autoFo = modifierProps.autoFocus,
5081
+ autoFocus = _modifierProps$autoFo === void 0 ? false : _modifierProps$autoFo,
4741
5082
  style = modifierProps.style,
4742
5083
  elementProps = _objectWithoutProperties(modifierProps, _excluded$19);
4743
5084
 
4744
5085
  var media = useMedia();
4745
5086
 
4746
- var _useState = useState(false),
5087
+ var _useState = useState(autoFocus),
4747
5088
  _useState2 = _slicedToArray(_useState, 2),
4748
5089
  focused = _useState2[0],
4749
5090
  setFocused = _useState2[1];
@@ -4752,29 +5093,28 @@ var FormCheckInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
4752
5093
  valid && '.form-check-input:valid', valid && value && '.form-check-input:valid:checked', invalid && '.form-check-input:invalid', invalid && value && '.form-check-input:invalid:checked', // switch
4753
5094
  context && type === 'switch' && '.form-switch.form-check .form-check-input', (context === null || context === void 0 ? void 0 : context.reverse) && type === 'switch' && '.form-switch.form-check-reverse .form-check-input', type === 'switch' && '.form-switch .form-check-input', type === 'switch' && value && '.form-switch .form-check-input:checked']);
4754
5095
  var resolveStyle = useStyle([classes, style]);
4755
-
4756
- var handleFocus = function handleFocus() {
4757
- setFocused(true);
4758
- onFocus();
4759
- };
4760
-
4761
- var handleBlur = function handleBlur() {
4762
- setFocused(false);
4763
- onBlur();
4764
- };
4765
-
4766
5096
  var BaseFormCheckInput = Platform.OS === 'web' && !useNativeComponent ? FormCheckInputWeb : FormCheckInputNative;
4767
5097
  return /*#__PURE__*/React.createElement(BaseFormCheckInput, _extends({}, elementProps, {
4768
5098
  ref: modifierRef,
4769
5099
  type: type,
4770
5100
  value: value,
4771
- onFocus: handleFocus,
4772
- onBlur: handleBlur,
5101
+ onFocus: function onFocus() {
5102
+ setFocused(true);
5103
+
5104
+ _onFocus();
5105
+ },
5106
+ onBlur: function onBlur() {
5107
+ setFocused(false);
5108
+
5109
+ _onBlur();
5110
+ },
4773
5111
  disabled: disabled,
5112
+ autoFocus: autoFocus,
4774
5113
  style: resolveStyle({
4775
5114
  media: media,
4776
5115
  interaction: {
4777
- focused: focused
5116
+ focus: focused,
5117
+ focusVisible: focused
4778
5118
  }
4779
5119
  })
4780
5120
  }));
@@ -5192,7 +5532,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
5192
5532
  return /*#__PURE__*/React.createElement(OverlayContainer, null, /*#__PURE__*/React.createElement(Overlay, {
5193
5533
  placement: transformPlacement(media, direction, center, start, end),
5194
5534
  targetRef: toggleRef,
5195
- offset: convertToNumber(StyleSheet.value('dropdown-spacer')),
5535
+ offset: normalizeNumber(StyleSheet.value('dropdown-spacer')),
5196
5536
  visible: visible
5197
5537
  }, function (overlay, overlayRef) {
5198
5538
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BackdropHandler, {
@@ -5731,10 +6071,11 @@ var FormText = /*#__PURE__*/React.forwardRef(function (props, ref) {
5731
6071
  FormText.displayName = 'FormText';
5732
6072
  FormText.propTypes = propTypes$V;
5733
6073
 
5734
- var _excluded$S = ["onFocus", "onBlur", "style", "styleName"];
6074
+ var _excluded$S = ["onFocus", "onBlur", "autoFocus", "style", "styleName"];
5735
6075
  var propTypes$U = {
5736
6076
  onFocus: PropTypes.func,
5737
6077
  onBlur: PropTypes.func,
6078
+ autoFocus: PropTypes.bool,
5738
6079
  // eslint-disable-next-line react/forbid-prop-types
5739
6080
  style: PropTypes.any,
5740
6081
  // eslint-disable-next-line react/forbid-prop-types
@@ -5745,11 +6086,13 @@ var TextInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
5745
6086
  _onFocus = _props$onFocus === void 0 ? function () {} : _props$onFocus,
5746
6087
  _props$onBlur = props.onBlur,
5747
6088
  _onBlur = _props$onBlur === void 0 ? function () {} : _props$onBlur,
6089
+ _props$autoFocus = props.autoFocus,
6090
+ autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
5748
6091
  style = props.style,
5749
6092
  styleName = props.styleName,
5750
6093
  elementProps = _objectWithoutProperties(props, _excluded$S);
5751
6094
 
5752
- var _useState = useState(false),
6095
+ var _useState = useState(autoFocus),
5753
6096
  _useState2 = _slicedToArray(_useState, 2),
5754
6097
  focused = _useState2[0],
5755
6098
  setFocused = _useState2[1];
@@ -5758,20 +6101,22 @@ var TextInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
5758
6101
  var resolveStyle = useStyle(style, styleName);
5759
6102
  return /*#__PURE__*/React.createElement(TextInput$1, _extends({}, elementProps, {
5760
6103
  ref: ref,
5761
- onFocus: function onFocus() {
6104
+ onFocus: function onFocus(event) {
5762
6105
  setFocused(true);
5763
6106
 
5764
- _onFocus();
6107
+ _onFocus(event);
5765
6108
  },
5766
- onBlur: function onBlur() {
6109
+ onBlur: function onBlur(event) {
5767
6110
  setFocused(false);
5768
6111
 
5769
- _onBlur();
6112
+ _onBlur(event);
5770
6113
  },
6114
+ autoFocus: autoFocus,
5771
6115
  style: resolveStyle({
5772
6116
  media: media,
5773
6117
  interaction: {
5774
- focused: focused
6118
+ focus: focused,
6119
+ focusVisible: focused
5775
6120
  }
5776
6121
  })
5777
6122
  }));
@@ -6175,7 +6520,7 @@ Popover.Header = PopoverHeader;
6175
6520
  Popover.Body = PopoverBody;
6176
6521
 
6177
6522
  var _excluded$M = ["title", "content", "autoClose", "trigger", "placement"],
6178
- _excluded2$1 = ["popover"];
6523
+ _excluded2$2 = ["popover"];
6179
6524
  var propTypes$O = {
6180
6525
  popover: PropTypes.shape(_objectSpread2({
6181
6526
  title: PropTypes.node,
@@ -6196,7 +6541,7 @@ function injectPopover(Target) {
6196
6541
  _props$popover$placem = _props$popover.placement,
6197
6542
  placement = _props$popover$placem === void 0 ? 'right' : _props$popover$placem,
6198
6543
  tooltipProps = _objectWithoutProperties(_props$popover, _excluded$M),
6199
- elementProps = _objectWithoutProperties(props, _excluded2$1);
6544
+ elementProps = _objectWithoutProperties(props, _excluded2$2);
6200
6545
  /* eslint-enable */
6201
6546
 
6202
6547
 
@@ -6207,7 +6552,7 @@ function injectPopover(Target) {
6207
6552
  targetRef = _useTrigger.targetRef,
6208
6553
  templateProps = _useTrigger.templateProps;
6209
6554
 
6210
- var offset = convertToNumber(StyleSheet.value('popover-arrow-height'));
6555
+ var offset = normalizeNumber(StyleSheet.value('popover-arrow-height'));
6211
6556
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Target, _extends({}, elementProps, targetProps)), visible && /*#__PURE__*/React.createElement(OverlayContainer, null, /*#__PURE__*/React.createElement(Overlay, {
6212
6557
  placement: placement,
6213
6558
  offset: offset,
@@ -6372,7 +6717,7 @@ Tooltip.Arrow = TooltipArrow;
6372
6717
  Tooltip.Inner = TooltipInner;
6373
6718
 
6374
6719
  var _excluded$I = ["title", "autoClose", "trigger", "placement"],
6375
- _excluded2 = ["tooltip"];
6720
+ _excluded2$1 = ["tooltip"];
6376
6721
  var propTypes$K = {
6377
6722
  tooltip: PropTypes.shape(_objectSpread2({
6378
6723
  title: PropTypes.node.isRequired,
@@ -6391,7 +6736,7 @@ function injectTooltip(Target) {
6391
6736
  _props$tooltip$placem = _props$tooltip.placement,
6392
6737
  placement = _props$tooltip$placem === void 0 ? 'top' : _props$tooltip$placem,
6393
6738
  tooltipProps = _objectWithoutProperties(_props$tooltip, _excluded$I),
6394
- elementProps = _objectWithoutProperties(props, _excluded2);
6739
+ elementProps = _objectWithoutProperties(props, _excluded2$1);
6395
6740
  /* eslint-enable */
6396
6741
 
6397
6742
 
@@ -6402,7 +6747,7 @@ function injectTooltip(Target) {
6402
6747
  targetRef = _useTrigger.targetRef,
6403
6748
  templateProps = _useTrigger.templateProps;
6404
6749
 
6405
- var offset = convertToNumber(StyleSheet.value('tooltip-arrow-height'));
6750
+ var offset = normalizeNumber(StyleSheet.value('tooltip-arrow-height'));
6406
6751
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Target, _extends({}, elementProps, targetProps)), visible && /*#__PURE__*/React.createElement(OverlayContainer, null, /*#__PURE__*/React.createElement(Overlay, {
6407
6752
  placement: placement,
6408
6753
  targetRef: targetRef,
@@ -6513,11 +6858,11 @@ var styles$y = StyleSheet.create(_objectSpread2({
6513
6858
  }, each(THEME_COLORS, function (state, value) {
6514
6859
  var _ref;
6515
6860
 
6516
- return _ref = {}, _defineProperty(_ref, ".list-group-item-".concat(state), css(_templateObject13$2 || (_templateObject13$2 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), shiftColor(function (t) {
6861
+ return _ref = {}, _defineProperty(_ref, ".list-group-item-".concat(state), css(_templateObject13$2 || (_templateObject13$2 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), shiftColor(value, function (t) {
6517
6862
  return t['list-group-item-bg-scale'];
6518
- }, value))), _defineProperty(_ref, ".list-group-item-".concat(state, " --text"), css(_templateObject14$1 || (_templateObject14$1 = _taggedTemplateLiteral(["\n color: ", ";\n "])), shiftColor(function (t) {
6863
+ }))), _defineProperty(_ref, ".list-group-item-".concat(state, " --text"), css(_templateObject14$1 || (_templateObject14$1 = _taggedTemplateLiteral(["\n color: ", ";\n "])), shiftColor(value, function (t) {
6519
6864
  return t['list-group-item-color-scale'];
6520
- }, value))), _ref;
6865
+ }))), _ref;
6521
6866
  })));
6522
6867
  var ListGroupItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
6523
6868
  var children = props.children,
@@ -6573,19 +6918,19 @@ var actionStyles = StyleSheet.create(_objectSpread2({
6573
6918
  }, each(THEME_COLORS, function (state, value) {
6574
6919
  var _ref;
6575
6920
 
6576
- return _ref = {}, _defineProperty(_ref, ".list-group-item-".concat(state, "-action"), css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n &:hover {\n background-color: ", ";\n }\n\n &:focus {\n background-color: ", ";\n }\n "])), shadeColor(0.1, shiftColor(function (t) {
6921
+ return _ref = {}, _defineProperty(_ref, ".list-group-item-".concat(state, "-action"), css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n &:hover {\n background-color: ", ";\n }\n\n &:focus {\n background-color: ", ";\n }\n "])), shadeColor(shiftColor(value, function (t) {
6577
6922
  return t['list-group-item-bg-scale'];
6578
- }, value)), shadeColor(0.1, shiftColor(function (t) {
6923
+ }), 0.1), shadeColor(shiftColor(value, function (t) {
6579
6924
  return t['list-group-item-bg-scale'];
6580
- }, value)))), _defineProperty(_ref, ".list-group-item-".concat(state, "-action --text"), css(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteral(["\n &:hover {\n color: ", ";\n }\n\n &:focus {\n color: ", ";\n }\n "])), shiftColor(function (t) {
6925
+ }), 0.1))), _defineProperty(_ref, ".list-group-item-".concat(state, "-action --text"), css(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteral(["\n &:hover {\n color: ", ";\n }\n\n &:focus {\n color: ", ";\n }\n "])), shiftColor(value, function (t) {
6581
6926
  return t['list-group-item-color-scale'];
6582
- }, value), shiftColor(function (t) {
6927
+ }), shiftColor(value, function (t) {
6583
6928
  return t['list-group-item-color-scale'];
6584
- }, value))), _defineProperty(_ref, ".list-group-item-".concat(state, "-action.active"), css(_templateObject5$7 || (_templateObject5$7 = _taggedTemplateLiteral(["\n background-color: ", ";\n border-color: ", ";\n "])), shiftColor(function (t) {
6929
+ }))), _defineProperty(_ref, ".list-group-item-".concat(state, "-action.active"), css(_templateObject5$7 || (_templateObject5$7 = _taggedTemplateLiteral(["\n background-color: ", ";\n border-color: ", ";\n "])), shiftColor(value, function (t) {
6585
6930
  return t['list-group-item-color-scale'];
6586
- }, value), shiftColor(function (t) {
6931
+ }), shiftColor(value, function (t) {
6587
6932
  return t['list-group-item-color-scale'];
6588
- }, value))), _defineProperty(_ref, ".list-group-item-".concat(state, "-action.active --text"), css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n color: $white;\n "])))), _ref;
6933
+ }))), _defineProperty(_ref, ".list-group-item-".concat(state, "-action.active --text"), css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n color: $white;\n "])))), _ref;
6589
6934
  })));
6590
6935
  var ListGroupItemAction = /*#__PURE__*/React.forwardRef(function (props, ref) {
6591
6936
  var _useModifier = useModifier('useTabbable', props, ref),
@@ -6684,17 +7029,14 @@ ListGroup.propTypes = propTypes$F;
6684
7029
  ListGroup.Item = ListGroupItem;
6685
7030
  ListGroup.ItemAction = ListGroupItemAction;
6686
7031
 
6687
- var _excluded$C = ["children", "onMouseEnter", "onMouseLeave", "onFocus", "onBlur", "onPressIn", "onPressOut", "style"];
7032
+ var _excluded$C = ["children", "onHoverIn", "onHoverOut", "onMouseEnter", "onMouseLeave", "style"],
7033
+ _excluded2 = ["onHoverIn", "onHoverOut"];
6688
7034
 
6689
7035
  var _templateObject$w;
6690
7036
  var propTypes$E = {
6691
7037
  children: PropTypes.node.isRequired,
6692
7038
  onMouseEnter: PropTypes.func,
6693
7039
  onMouseLeave: PropTypes.func,
6694
- onFocus: PropTypes.func,
6695
- onBlur: PropTypes.func,
6696
- onPressIn: PropTypes.func,
6697
- onPressOut: PropTypes.func,
6698
7040
  // eslint-disable-next-line react/forbid-prop-types
6699
7041
  style: PropTypes.any
6700
7042
  };
@@ -6712,82 +7054,42 @@ var Link = /*#__PURE__*/React.forwardRef(function (props, ref) {
6712
7054
  actionProps = _useAction2[0],
6713
7055
  actionRef = _useAction2[1];
6714
7056
 
6715
- var children = actionProps.children,
6716
- _actionProps$onMouseE = actionProps.onMouseEnter,
6717
- _onMouseEnter = _actionProps$onMouseE === void 0 ? function () {} : _actionProps$onMouseE,
7057
+ var children = actionProps.children;
7058
+ actionProps.onHoverIn;
7059
+ actionProps.onHoverOut;
7060
+ var _actionProps$onMouseE = actionProps.onMouseEnter,
7061
+ handleMouseEnter = _actionProps$onMouseE === void 0 ? function () {} : _actionProps$onMouseE,
6718
7062
  _actionProps$onMouseL = actionProps.onMouseLeave,
6719
- _onMouseLeave = _actionProps$onMouseL === void 0 ? function () {} : _actionProps$onMouseL,
6720
- _actionProps$onFocus = actionProps.onFocus,
6721
- _onFocus = _actionProps$onFocus === void 0 ? function () {} : _actionProps$onFocus,
6722
- _actionProps$onBlur = actionProps.onBlur,
6723
- _onBlur = _actionProps$onBlur === void 0 ? function () {} : _actionProps$onBlur,
6724
- _actionProps$onPressI = actionProps.onPressIn,
6725
- _onPressIn = _actionProps$onPressI === void 0 ? function () {} : _actionProps$onPressI,
6726
- _actionProps$onPressO = actionProps.onPressOut,
6727
- _onPressOut = _actionProps$onPressO === void 0 ? function () {} : _actionProps$onPressO,
7063
+ handleMouseLeave = _actionProps$onMouseL === void 0 ? function () {} : _actionProps$onMouseL,
6728
7064
  style = actionProps.style,
6729
7065
  elementProps = _objectWithoutProperties(actionProps, _excluded$C);
6730
7066
 
6731
7067
  var media = useMedia();
6732
-
6733
- var _useState = useState(false),
6734
- _useState2 = _slicedToArray(_useState, 2),
6735
- focused = _useState2[0],
6736
- setFocused = _useState2[1];
6737
-
6738
- var _useState3 = useState(false),
6739
- _useState4 = _slicedToArray(_useState3, 2),
6740
- hovered = _useState4[0],
6741
- setHovered = _useState4[1];
6742
-
6743
- var _useState5 = useState(false),
6744
- _useState6 = _slicedToArray(_useState5, 2),
6745
- pressed = _useState6[0],
6746
- setPressed = _useState6[1];
6747
-
6748
- var classes = getStyles(styles$w, ['link', hovered]);
7068
+ var classes = getStyles(styles$w, ['link']);
6749
7069
  var resolveStyle = useStyle([classes, style]);
6750
- return /*#__PURE__*/React.createElement(Text, _extends({}, elementProps, {
6751
- ref: actionRef,
6752
- accessibilityRole: getRole$2(actionProps),
6753
- accessible: true,
6754
- onFocus: function onFocus(e) {
6755
- setFocused(true);
6756
7070
 
6757
- _onFocus(e);
7071
+ var _useInteractionState = useInteractionState(elementProps),
7072
+ interaction = _useInteractionState.interaction,
7073
+ _useInteractionState$ = _useInteractionState.interactionProps,
7074
+ handleMouseEnterInteraction = _useInteractionState$.onHoverIn,
7075
+ handleMouseLeaveInteraction = _useInteractionState$.onHoverOut,
7076
+ interactionProps = _objectWithoutProperties(_useInteractionState$, _excluded2);
7077
+
7078
+ return /*#__PURE__*/React.createElement(Text, _extends({}, elementProps, interactionProps, {
7079
+ onMouseEnter: function onMouseEnter(event) {
7080
+ handleMouseEnter(event);
7081
+ handleMouseEnterInteraction(event);
6758
7082
  },
6759
- onBlur: function onBlur(e) {
6760
- setFocused(false);
6761
-
6762
- _onBlur(e);
6763
- },
6764
- onMouseEnter: function onMouseEnter(e) {
6765
- setHovered(true);
6766
-
6767
- _onMouseEnter(e);
6768
- },
6769
- onMouseLeave: function onMouseLeave(e) {
6770
- setHovered(false);
6771
-
6772
- _onMouseLeave(e);
6773
- },
6774
- onPressIn: function onPressIn(e) {
6775
- setPressed(true);
6776
-
6777
- _onPressIn(e);
6778
- },
6779
- onPressOut: function onPressOut(e) {
6780
- setPressed(false);
6781
-
6782
- _onPressOut(e);
7083
+ onMouseLeave: function onMouseLeave(event) {
7084
+ handleMouseLeave(event);
7085
+ handleMouseLeaveInteraction(event);
6783
7086
  },
7087
+ ref: actionRef,
7088
+ accessibilityRole: getRole$2(actionProps),
7089
+ accessible: true,
6784
7090
  style: resolveStyle({
6785
7091
  media: media,
6786
- interaction: {
6787
- focused: focused,
6788
- hovered: hovered,
6789
- pressed: pressed
6790
- }
7092
+ interaction: interaction
6791
7093
  })
6792
7094
  }), children);
6793
7095
  });
@@ -8053,7 +8355,7 @@ var PickerItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
8053
8355
  PickerItem.displayName = 'PickerItem';
8054
8356
  PickerItem.propTypes = propTypes$i;
8055
8357
 
8056
- var _excluded$g = ["children", "onFocus", "onBlur", "placeholderTextColor", "size", "disabled", "valid", "invalid", "useNativeComponent", "style", "styleName"];
8358
+ var _excluded$g = ["children", "onFocus", "onBlur", "placeholderTextColor", "size", "disabled", "valid", "invalid", "useNativeComponent", "autoFocus", "style", "styleName"];
8057
8359
 
8058
8360
  var _templateObject$d, _templateObject2$9, _templateObject3$3, _templateObject4$2, _templateObject5$2, _templateObject6$1;
8059
8361
  /* eslint-disable react/no-unused-prop-types */
@@ -8068,6 +8370,7 @@ var propTypes$h = {
8068
8370
  valid: PropTypes.bool,
8069
8371
  invalid: PropTypes.bool,
8070
8372
  useNativeComponent: PropTypes.bool,
8373
+ autoFocus: PropTypes.bool,
8071
8374
  // eslint-disable-next-line react/forbid-prop-types
8072
8375
  style: PropTypes.any,
8073
8376
  // eslint-disable-next-line react/forbid-prop-types
@@ -8100,9 +8403,9 @@ var Picker = /*#__PURE__*/React.forwardRef(function (props, ref) {
8100
8403
 
8101
8404
  var children = modifierProps.children,
8102
8405
  _modifierProps$onFocu = modifierProps.onFocus,
8103
- onFocus = _modifierProps$onFocu === void 0 ? function () {} : _modifierProps$onFocu,
8406
+ _onFocus = _modifierProps$onFocu === void 0 ? function () {} : _modifierProps$onFocu,
8104
8407
  _modifierProps$onBlur = modifierProps.onBlur,
8105
- onBlur = _modifierProps$onBlur === void 0 ? function () {} : _modifierProps$onBlur,
8408
+ _onBlur = _modifierProps$onBlur === void 0 ? function () {} : _modifierProps$onBlur,
8106
8409
  _modifierProps$placeh = modifierProps.placeholderTextColor,
8107
8410
  placeholderTextColor = _modifierProps$placeh === void 0 ? StyleSheet.value('input-placeholder-color') : _modifierProps$placeh,
8108
8411
  size = modifierProps.size,
@@ -8114,13 +8417,15 @@ var Picker = /*#__PURE__*/React.forwardRef(function (props, ref) {
8114
8417
  invalid = _modifierProps$invali === void 0 ? false : _modifierProps$invali,
8115
8418
  _modifierProps$useNat = modifierProps.useNativeComponent,
8116
8419
  useNativeComponent = _modifierProps$useNat === void 0 ? false : _modifierProps$useNat,
8420
+ _modifierProps$autoFo = modifierProps.autoFocus,
8421
+ autoFocus = _modifierProps$autoFo === void 0 ? false : _modifierProps$autoFo,
8117
8422
  style = modifierProps.style,
8118
8423
  styleName = modifierProps.styleName,
8119
8424
  elementProps = _objectWithoutProperties(modifierProps, _excluded$g);
8120
8425
 
8121
8426
  var media = useMedia();
8122
8427
 
8123
- var _useState = useState(false),
8428
+ var _useState = useState(autoFocus),
8124
8429
  _useState2 = _slicedToArray(_useState, 2),
8125
8430
  focused = _useState2[0],
8126
8431
  setFocused = _useState2[1];
@@ -8128,17 +8433,6 @@ var Picker = /*#__PURE__*/React.forwardRef(function (props, ref) {
8128
8433
  var classes = getStyles(styles$d, ['select', // reboot
8129
8434
  '.form-select', disabled && '.form-select.disabled', size === 'sm' && '.form-select-sm', size === 'lg' && '.form-select-lg', valid && '.form-select:valid', invalid && '.form-select:invalid']);
8130
8435
  var resolveStyle = useStyle([classes, style], styleName);
8131
-
8132
- var handleFocus = function handleFocus() {
8133
- setFocused(true);
8134
- onFocus();
8135
- };
8136
-
8137
- var handleBlur = function handleBlur() {
8138
- setFocused(false);
8139
- onBlur();
8140
- };
8141
-
8142
8436
  var BasePicker = Platform.OS === 'web' && !useNativeComponent ? PickerWeb : PickerNative;
8143
8437
  return /*#__PURE__*/React.createElement(PickerContext.Provider, {
8144
8438
  value: {
@@ -8147,13 +8441,23 @@ var Picker = /*#__PURE__*/React.forwardRef(function (props, ref) {
8147
8441
  }, /*#__PURE__*/React.createElement(BasePicker, _extends({}, elementProps, {
8148
8442
  ref: modifierRef,
8149
8443
  placeholderTextColor: placeholderTextColor,
8150
- onFocus: handleFocus,
8151
- onBlur: handleBlur,
8444
+ onFocus: function onFocus(event) {
8445
+ setFocused(true);
8446
+
8447
+ _onFocus(event);
8448
+ },
8449
+ onBlur: function onBlur(event) {
8450
+ setFocused(false);
8451
+
8452
+ _onBlur(event);
8453
+ },
8152
8454
  disabled: disabled,
8455
+ autoFocus: autoFocus,
8153
8456
  style: resolveStyle({
8154
8457
  media: media,
8155
8458
  interaction: {
8156
- focused: focused
8459
+ focus: focused,
8460
+ focusVisible: focused
8157
8461
  }
8158
8462
  })
8159
8463
  }), children));
@@ -8547,12 +8851,12 @@ var propTypes$7 = {
8547
8851
  style: PropTypes.any
8548
8852
  };
8549
8853
  var styles$5 = StyleSheet.create(_objectSpread2(_objectSpread2(_objectSpread2({
8550
- '.spinner-border': css(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n // display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n // vertical-align: $spinner-vertical-align;\n border-width: $spinner-border-width;\n border-style: solid;\n border-top-color: $body-color;\n border-bottom-color: $body-color;\n border-left-color: $body-color;\n // workaround for issue https://github.com/facebook/react-native/issues/34722\n border-right-color: rgba(0, 0, 0, 0.01); // transparent;\n border-radius: $spinner-width * 0.5; // 50%;\n // animation: $spinner-animation-speed linear infinite spinner-border;\n "])))
8854
+ '.spinner-border': css(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n // display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n // vertical-align: $spinner-vertical-align;\n border-width: $spinner-border-width;\n border-style: solid;\n border-top-color: $body-color;\n border-bottom-color: $body-color;\n border-left-color: $body-color;\n // workaround for issue https://github.com/facebook/react-native/issues/34722\n border-right-color: rgba(0, 0, 0, 0.01); // transparent;\n border-radius: $spinner-width * 50%;\n // animation: $spinner-animation-speed linear infinite spinner-border;\n "])))
8551
8855
  }, each(THEME_COLORS, function (color, value) {
8552
8856
  return _defineProperty({}, ".spinner-border-".concat(color), css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral(["\n border-top-color: ", ";\n border-bottom-color: ", ";\n border-left-color: ", ";\n "])), value, value, value));
8553
8857
  })), {}, {
8554
8858
  '.spinner-border-sm': css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n "]))),
8555
- '.spinner-grow': css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n // display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n // vertical-align: $spinner-vertical-align;\n background-color: $body-color;\n border-radius: $spinner-width * 0.5; // 50%;\n opacity: 0;\n // animation: $spinner-animation-speed linear infinite spinner-grow;\n "])))
8859
+ '.spinner-grow': css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n // display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n // vertical-align: $spinner-vertical-align;\n background-color: $body-color;\n border-radius: $spinner-width * 50%;\n opacity: 0;\n // animation: $spinner-animation-speed linear infinite spinner-grow;\n "])))
8556
8860
  }, each(THEME_COLORS, function (color, value) {
8557
8861
  return _defineProperty({}, ".spinner-grow-".concat(color), css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), value));
8558
8862
  })), {}, {