bootstrap-rn 0.2.10 → 0.2.11

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,145 @@ 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
- }
651
-
652
- if (typeof value === 'number') {
653
- return [value, null];
654
- }
657
+ var UnitValue = /*#__PURE__*/function () {
658
+ function UnitValue(value) {
659
+ var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'number';
655
660
 
656
- var matchedValue = value.match(valueRE);
661
+ _classCallCheck(this, UnitValue);
657
662
 
658
- if (matchedValue) {
659
- return [parseFloat(value), matchedValue[2]];
660
- }
663
+ _defineProperty(this, "value", void 0);
661
664
 
662
- return [value, undefined];
663
- };
665
+ _defineProperty(this, "unit", void 0);
664
666
 
665
- var getUnit = function getUnit(left, right) {
666
- if (!left && !right) {
667
- return '';
667
+ this.value = value;
668
+ this.unit = unit;
668
669
  }
669
670
 
670
- if (!left) {
671
- return right;
672
- }
671
+ _createClass(UnitValue, [{
672
+ key: "toPercentage",
673
+ value: function toPercentage() {
674
+ if (!['number', 'percent'].includes(this.unit)) {
675
+ throw new Error("Unexpected unit \"".concat(this.unit, "\"."));
676
+ }
673
677
 
674
- if (!right || left === right) {
675
- return left;
676
- }
678
+ if (this.unit === 'percent') {
679
+ return this.value / 100;
680
+ }
677
681
 
678
- throw new Error("Different units ".concat(left, " and ").concat(right, " found for arithmetic operation."));
679
- };
682
+ return this.value;
683
+ }
684
+ }, {
685
+ key: "toNumber",
686
+ value: function toNumber() {
687
+ if (!['number', 'px', 'rem'].includes(this.unit)) {
688
+ throw new Error("Unexpected unit \"".concat(this.unit, "\"."));
689
+ }
680
690
 
681
- var POWER = Math.pow(10, 8);
691
+ if (this.unit === 'rem') {
692
+ return this.value * PixelRatio.getFontScale() * 16;
693
+ }
682
694
 
683
- var fixRounding = function fixRounding(value) {
684
- return Math.round(value * POWER) / POWER;
685
- };
695
+ return this.value;
696
+ }
697
+ }, {
698
+ key: "toString",
699
+ value: function toString() {
700
+ return "".concat(this.value).concat(this.unit === 'number' ? '' : this.unit);
701
+ }
702
+ }], [{
703
+ key: "parse",
704
+ value: function parse(value) {
705
+ if (value instanceof UnitValue) {
706
+ return value;
707
+ }
686
708
 
687
- var calculateValue = function calculateValue(leftValue, operator, rightValue) {
688
- if (operator === '+') {
689
- return leftValue + rightValue;
690
- }
709
+ if (typeof value === 'number') {
710
+ return new UnitValue(value, 'number');
711
+ }
691
712
 
692
- if (operator === '-') {
693
- return leftValue - rightValue;
694
- }
713
+ var match = value.match(valueRE);
695
714
 
696
- if (operator === '*') {
697
- return fixRounding(leftValue * rightValue);
698
- }
715
+ if (!match) {
716
+ throw new Error("Cannot parse number \"".concat(value, "\"."));
717
+ }
699
718
 
700
- if (operator === '/') {
701
- return fixRounding(leftValue / rightValue);
702
- }
719
+ return new UnitValue(parseFloat(match[1]), match[2] === '%' ? 'percent' : match[2]);
720
+ }
721
+ }]);
703
722
 
704
- if (operator === '%') {
705
- return leftValue % rightValue;
706
- }
723
+ return UnitValue;
724
+ }();
707
725
 
708
- throw new Error('Unknown operator.');
726
+ var POWER = Math.pow(10, 8);
727
+
728
+ var fixRounding = function fixRounding(value) {
729
+ return Math.round(value * POWER) / POWER;
709
730
  };
710
731
 
711
- function calculate(left, operator, right) {
712
- var _parseValue = parseValue(left),
713
- _parseValue2 = _slicedToArray(_parseValue, 2),
714
- leftValue = _parseValue2[0],
715
- leftUnit = _parseValue2[1];
732
+ var calculateValue = function calculateValue(value1, operator, value2) {
733
+ switch (operator) {
734
+ case '+':
735
+ return value1 + value2;
716
736
 
717
- var _parseValue3 = parseValue(right),
718
- _parseValue4 = _slicedToArray(_parseValue3, 2),
719
- rightValue = _parseValue4[0],
720
- rightUnit = _parseValue4[1];
737
+ case '-':
738
+ return value1 - value2;
721
739
 
722
- var unit = getUnit(leftUnit, rightUnit);
723
- return "".concat(calculateValue(leftValue, operator, rightValue)).concat(unit);
724
- }
740
+ case '*':
741
+ return fixRounding(value1 * value2);
725
742
 
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.
743
+ case '/':
744
+ return fixRounding(value1 / value2);
730
745
 
746
+ case '%':
747
+ return value1 % value2;
731
748
 
732
- function calculateAdvanced(left, operator, right) {
733
- var parsedLeft = parseValue(left);
734
-
735
- var _parsedLeft = _slicedToArray(parsedLeft, 2),
736
- leftValue = _parsedLeft[0],
737
- leftUnit = _parsedLeft[1];
749
+ default:
750
+ throw new Error('Unknown operator.');
751
+ }
752
+ };
738
753
 
739
- var parsedRight = parseValue(right);
754
+ var pxToRem = function pxToRem(value) {
755
+ return value / (PixelRatio.getFontScale() * 16);
756
+ };
740
757
 
741
- var _parsedRight = _slicedToArray(parsedRight, 2),
742
- rightValue = _parsedRight[0],
743
- rightUnit = _parsedRight[1];
758
+ function calculate(value1, operator, value2) {
759
+ var number1 = UnitValue.parse(value1);
760
+ var number2 = UnitValue.parse(value2);
744
761
 
745
- if (leftUnit === 'px' && rightUnit === 'rem') {
746
- return calculate(convertToREM(leftValue), operator, parsedRight);
762
+ if (number1.unit === 'px' && number2.unit === 'rem') {
763
+ return "".concat(calculateValue(pxToRem(number1.value), operator, number2.value), "rem");
747
764
  }
748
765
 
749
- if (leftUnit === 'rem' && rightUnit === 'px') {
750
- return calculate(parsedLeft, operator, convertToREM(rightValue));
766
+ if (number1.unit === 'rem' && number2.unit === 'px') {
767
+ return "".concat(calculateValue(number1.value, operator, pxToRem(number2.value)), "rem");
751
768
  }
752
769
 
753
- return calculate(parsedLeft, operator, parsedRight);
770
+ var unit = number1.unit === 'number' ? number2.unit : number1.unit;
771
+ return "".concat(calculateValue(number1.value, operator, number2.value)).concat(unit === 'number' ? '' : unit);
772
+ }
773
+ function normalizeNumber(value) {
774
+ return UnitValue.parse(value).toNumber();
754
775
  }
755
776
 
756
- var formulaRE = /([+-])?([\d.Ee]+)(rem|px)?\s*(\+|-|\*|%)\s*([+-])?([\d.Ee]+)(rem|px)?/g;
777
+ var formulaRE = /([+-]+)?([\d.Ee]+)(rem|px|%)?\s*(\+|-|\*|%)\s*([+-]+)?([\d.Ee]+)(rem|px|%)?/g;
757
778
 
758
779
  function formula(value) {
759
780
  // Naïve approach to calculate simple formulas.
@@ -761,22 +782,316 @@ function formula(value) {
761
782
  return value.replace(formulaRE, function (_) {
762
783
  var leftUnary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
763
784
  var leftNumber = arguments.length > 2 ? arguments[2] : undefined;
764
- var leftUnit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
785
+ var leftUnit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
765
786
  var operator = arguments.length > 4 ? arguments[4] : undefined;
766
787
  var rightUnary = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';
767
788
  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];
789
+ var rightUnit = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';
790
+ var leftValue = "".concat(leftUnary).concat(leftNumber).concat(leftUnit);
791
+ var rightValue = "".concat(rightUnary).concat(rightNumber).concat(rightUnit);
771
792
  return calculate(leftValue, operator, rightValue);
772
793
  });
773
794
  }
774
795
 
796
+ // Copied from https://github.com/styled-components/polished/blob/main/src/color/parseToRgb.js
797
+ var hexRE = /^#[a-fA-F0-9]{6}$/;
798
+ var hexRgbaRE = /^#[a-fA-F0-9]{8}$/;
799
+ var shortHexRE = /^#[a-fA-F0-9]{3}$/;
800
+ var shortRgbaHexRE = /^#[a-fA-F0-9]{4}$/;
801
+ var rgbRE = /^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i;
802
+ var rgbaRE = /^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;
803
+ 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;
804
+ 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
805
+ // prettier-ignore
806
+
807
+ var colorNames = {
808
+ aliceblue: '#f0f8ff',
809
+ antiquewhite: '#faebd7',
810
+ aqua: '#00ffff',
811
+ aquamarine: '#7fffd4',
812
+ azure: '#f0ffff',
813
+ beige: '#f5f5dc',
814
+ bisque: '#ffe4c4',
815
+ black: '#000000',
816
+ blanchedalmond: '#ffebcd',
817
+ blue: '#0000ff',
818
+ blueviolet: '#8a2be2',
819
+ brown: '#a52a2a',
820
+ burlywood: '#deb887',
821
+ cadetblue: '#5f9ea0',
822
+ chartreuse: '#7fff00',
823
+ chocolate: '#d2691e',
824
+ coral: '#ff7f50',
825
+ cornflowerblue: '#6495ed',
826
+ cornsilk: '#fff8dc',
827
+ crimson: '#dc143c',
828
+ cyan: '#00ffff',
829
+ darkblue: '#00008b',
830
+ darkcyan: '#008b8b',
831
+ darkgoldenrod: '#b8860b',
832
+ darkgray: '#a9a9a9',
833
+ darkgreen: '#006400',
834
+ darkgrey: '#a9a9a9',
835
+ darkkhaki: '#bdb76b',
836
+ darkmagenta: '#8b008b',
837
+ darkolivegreen: '#556b2f',
838
+ darkorange: '#ff8c00',
839
+ darkorchid: '#9932cc',
840
+ darkred: '#8b0000',
841
+ darksalmon: '#e9967a',
842
+ darkseagreen: '#8fbc8f',
843
+ darkslateblue: '#483d8b',
844
+ darkslategrey: '#2f4f4f',
845
+ darkturquoise: '#00ced1',
846
+ darkviolet: '#9400d3',
847
+ deeppink: '#ff1493',
848
+ deepskyblue: '#00bfff',
849
+ dimgray: '#696969',
850
+ dimgrey: '#696969',
851
+ dodgerblue: '#1e90ff',
852
+ firebrick: '#b22222',
853
+ floralwhite: '#fffaf0',
854
+ forestgreen: '#228b22',
855
+ fuchsia: '#ff00ff',
856
+ gainsboro: '#dcdcdc',
857
+ ghostwhite: '#f8f8ff',
858
+ gold: '#ffd700',
859
+ goldenrod: '#daa520',
860
+ gray: '#808080',
861
+ green: '#008000',
862
+ greenyellow: '#adff2f',
863
+ grey: '#808080',
864
+ honeydew: '#f0fff0',
865
+ hotpink: '#ff69b4',
866
+ indianred: '#cd5c5c',
867
+ indigo: '#4b0082',
868
+ ivory: '#fffff0',
869
+ khaki: '#f0e68c',
870
+ lavender: '#e6e6fa',
871
+ lavenderblush: '#fff0f5',
872
+ lawngreen: '#7cfc00',
873
+ lemonchiffon: '#fffacd',
874
+ lightblue: '#add8e6',
875
+ lightcoral: '#f08080',
876
+ lightcyan: '#e0ffff',
877
+ lightgoldenrodyellow: '#fafad2',
878
+ lightgray: '#d3d3d3',
879
+ lightgreen: '#90ee90',
880
+ lightgrey: '#d3d3d3',
881
+ lightpink: '#ffb6c1',
882
+ lightsalmon: '#ffa07a',
883
+ lightseagreen: '#20b2aa',
884
+ lightskyblue: '#87cefa',
885
+ lightslategrey: '#778899',
886
+ lightsteelblue: '#b0c4de',
887
+ lightyellow: '#ffffe0',
888
+ lime: '#00ff00',
889
+ limegreen: '#32cd32',
890
+ linen: '#faf0e6',
891
+ magenta: '#ff00ff',
892
+ maroon: '#800000',
893
+ mediumaquamarine: '#66cdaa',
894
+ mediumblue: '#0000cd',
895
+ mediumorchid: '#ba55d3',
896
+ mediumpurple: '#9370db',
897
+ mediumseagreen: '#3cb371',
898
+ mediumslateblue: '#7b68ee',
899
+ mediumspringgreen: '#00fa9a',
900
+ mediumturquoise: '#48d1cc',
901
+ mediumvioletred: '#c71585',
902
+ midnightblue: '#191970',
903
+ mintcream: '#f5fffa',
904
+ mistyrose: '#ffe4e1',
905
+ moccasin: '#ffe4b5',
906
+ navajowhite: '#ffdead',
907
+ navy: '#000080',
908
+ oldlace: '#fdf5e6',
909
+ olive: '#808000',
910
+ olivedrab: '#6b8e23',
911
+ orange: '#ffa500',
912
+ orangered: '#ff4500',
913
+ orchid: '#da70d6',
914
+ palegoldenrod: '#eee8aa',
915
+ palegreen: '#98fb98',
916
+ paleturquoise: '#afeeee',
917
+ palevioletred: '#db7093',
918
+ papayawhip: '#ffefd5',
919
+ peachpuff: '#ffdab9',
920
+ peru: '#cd853f',
921
+ pink: '#ffc0cb',
922
+ plum: '#dda0dd',
923
+ powderblue: '#b0e0e6',
924
+ purple: '#800080',
925
+ rebeccapurple: '#663399',
926
+ red: '#ff0000',
927
+ rosybrown: '#bc8f8f',
928
+ royalblue: '#4169e1',
929
+ saddlebrown: '#8b4513',
930
+ salmon: '#fa8072',
931
+ sandybrown: '#f4a460',
932
+ seagreen: '#2e8b57',
933
+ seashell: '#fff5ee',
934
+ sienna: '#a0522d',
935
+ silver: '#c0c0c0',
936
+ skyblue: '#87ceeb',
937
+ slateblue: '#6a5acd',
938
+ slategray: '#708090',
939
+ snow: '#fffafa',
940
+ springgreen: '#00ff7f',
941
+ steelblue: '#4682b4',
942
+ tan: '#d2b48c',
943
+ teal: '#008080',
944
+ thistle: '#d8bfd8',
945
+ tomato: '#ff6347',
946
+ turquoise: '#40e0d0',
947
+ violet: '#ee82ee',
948
+ wheat: '#f5deb3',
949
+ white: '#ffffff',
950
+ whitesmoke: '#f5f5f5',
951
+ yellow: '#ffff00',
952
+ yellowgreen: '#9acd32'
953
+ };
954
+
955
+ var hslToRgb = function hslToRgb(h, s, l) {
956
+ var a = s * Math.min(l, 1 - l);
957
+
958
+ var f = function f(n) {
959
+ var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;
960
+ return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
961
+ };
962
+
963
+ return [f(0), f(8), f(4)];
964
+ };
965
+
966
+ var RgbaValue = /*#__PURE__*/function () {
967
+ function RgbaValue(red, green, blue) {
968
+ var alpha = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
969
+
970
+ _classCallCheck(this, RgbaValue);
971
+
972
+ _defineProperty(this, "red", void 0);
973
+
974
+ _defineProperty(this, "green", void 0);
975
+
976
+ _defineProperty(this, "blue", void 0);
977
+
978
+ _defineProperty(this, "alpha", void 0);
979
+
980
+ this.red = red;
981
+ this.green = green;
982
+ this.blue = blue;
983
+ this.alpha = alpha;
984
+ }
985
+
986
+ _createClass(RgbaValue, [{
987
+ key: "toRgb",
988
+ value: function toRgb() {
989
+ return [this.red, this.green, this.blue];
990
+ }
991
+ }, {
992
+ key: "toRgba",
993
+ value: function toRgba() {
994
+ return [].concat(_toConsumableArray(this.toRgb()), [this.alpha]);
995
+ }
996
+ }, {
997
+ key: "toHex",
998
+ value: function toHex() {
999
+ var _this$toRgb = this.toRgb(),
1000
+ _this$toRgb2 = _toArray(_this$toRgb),
1001
+ values = _this$toRgb2.slice(0);
1002
+
1003
+ if (this.alpha < 1) {
1004
+ values.push(this.alpha);
1005
+ }
1006
+
1007
+ return "#".concat(values.map(function (x) {
1008
+ var hex = x.toString(16);
1009
+ return hex.length === 1 ? "0".concat(hex) : hex;
1010
+ }).join(''));
1011
+ }
1012
+ }], [{
1013
+ key: "parse",
1014
+ value: function parse(value) {
1015
+ if (value instanceof RgbaValue) {
1016
+ return value;
1017
+ }
1018
+
1019
+ var color = colorNames[value] || value; // Handle hex value
1020
+
1021
+ var hexMatch = color.match(hexRE) || color.match(hexRgbaRE) || color.match(shortHexRE) || color.match(shortRgbaHexRE);
1022
+
1023
+ if (hexMatch) {
1024
+ var params = (hexMatch[0].length <= 4 ? hexMatch[0].match(/\w/g).map(function (x) {
1025
+ return "".concat(x).concat(x);
1026
+ }) : hexMatch[0].match(/\w\w/g)).map(function (hex, key) {
1027
+ var x = parseInt(hex, 16);
1028
+ var alpha = key === 3;
1029
+ return alpha ? (x / 255).toFixed(2) : x;
1030
+ });
1031
+ return _construct(RgbaValue, _toConsumableArray(params));
1032
+ } // Handle rgb(a) value
1033
+
1034
+
1035
+ var rgbMatch = color.match(rgbRE) || color.match(rgbaRE);
1036
+
1037
+ if (rgbMatch) {
1038
+ var _params = rgbMatch.slice(1).map(function (x, key) {
1039
+ var alpha = key === 3;
1040
+ return alpha ? parseFloat(x) : parseInt(x, 10);
1041
+ });
1042
+
1043
+ return _construct(RgbaValue, _toConsumableArray(_params));
1044
+ } // Handle hsl(a) value
1045
+
1046
+
1047
+ var hslMatch = color.match(hslRE) || color.match(hslaRE);
1048
+
1049
+ if (hslMatch) {
1050
+ var h = parseInt(hslMatch[1], 10);
1051
+ var s = parseInt(hslMatch[2], 10) / 100;
1052
+ var l = parseInt(hslMatch[3], 10) / 100;
1053
+ var alpha = hslMatch[4] && parseFloat(hslMatch[4]);
1054
+ return _construct(RgbaValue, [].concat(_toConsumableArray(hslToRgb(h, s, l)), [alpha]));
1055
+ }
1056
+
1057
+ throw new Error("Unknown color \"".concat(value, "\"."));
1058
+ }
1059
+ }]);
1060
+
1061
+ return RgbaValue;
1062
+ }();
1063
+
1064
+ function rgba$1(value, alpha) {
1065
+ var color = RgbaValue.parse(value);
1066
+ return "rgba(".concat(color.red, ",").concat(color.green, ",").concat(color.blue, ",").concat(alpha, ")");
1067
+ } // Sass equivalent
1068
+
1069
+ function opacity(value) {
1070
+ return RgbaValue.parse(value).alpha;
1071
+ } // Sass equivalent
1072
+
1073
+ function mix(color1, color2) {
1074
+ var weight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.5;
1075
+ var rgb1 = RgbaValue.parse(color1).toRgb();
1076
+ var rgb2 = RgbaValue.parse(color2).toRgb();
1077
+ var percentage = UnitValue.parse(weight).toPercentage();
1078
+
1079
+ var _rgb1$map = rgb1.map(function (value, key) {
1080
+ return Math.round(rgb2[key] + (value - rgb2[key]) * percentage);
1081
+ }),
1082
+ _rgb1$map2 = _slicedToArray(_rgb1$map, 3),
1083
+ r = _rgb1$map2[0],
1084
+ g = _rgb1$map2[1],
1085
+ b = _rgb1$map2[2];
1086
+
1087
+ return new RgbaValue(r, g, b).toHex();
1088
+ }
1089
+
775
1090
  var transformRgbaRE = /rgba\(\s*([#0-9a-z]+)\s*,\s*([\d.Ee]+)\s*\)/g;
776
1091
 
777
1092
  function rgba(value) {
778
- return value.replace(transformRgbaRE, function (_, color, alpha) {
779
- return rgba$1(color, Number(alpha));
1093
+ return value.replace(transformRgbaRE, function (_, hex, alpha) {
1094
+ return rgba$1(hex, alpha);
780
1095
  });
781
1096
  }
782
1097
 
@@ -1104,15 +1419,19 @@ function createStyle(definitions) {
1104
1419
  var active = platformDefinitions[key].scopes.every(function (scope) {
1105
1420
  if (scope.type === 'selector') {
1106
1421
  if (scope.name === 'hover') {
1107
- return interaction && interaction.hovered;
1422
+ return interaction && interaction.hover;
1108
1423
  }
1109
1424
 
1110
1425
  if (scope.name === 'focus') {
1111
- return interaction && interaction.focused;
1426
+ return interaction && interaction.focus;
1427
+ }
1428
+
1429
+ if (scope.name === 'focus-visible') {
1430
+ return interaction && interaction.focusVisible;
1112
1431
  }
1113
1432
 
1114
1433
  if (scope.name === 'active') {
1115
- return interaction && interaction.pressed;
1434
+ return interaction && interaction.active;
1116
1435
  }
1117
1436
  }
1118
1437
 
@@ -1215,20 +1534,16 @@ function getElementId(identifier, name) {
1215
1534
  return "".concat(identifier).concat(name ? "-".concat(name) : '');
1216
1535
  }
1217
1536
  function transformPlacement$1(placement) {
1218
- if (placement === 'left') {
1219
- return I18nManager.isRTL ? 'end' : 'start';
1220
- }
1537
+ switch (placement) {
1538
+ case 'left':
1539
+ return I18nManager.isRTL ? 'end' : 'start';
1221
1540
 
1222
- if (placement === 'right') {
1223
- return I18nManager.isRTL ? 'start' : 'end';
1224
- }
1541
+ case 'right':
1542
+ return I18nManager.isRTL ? 'start' : 'end';
1225
1543
 
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
- }));
1544
+ default:
1545
+ return placement;
1546
+ }
1232
1547
  }
1233
1548
 
1234
1549
  // keys, but not the resolved values. The values are added later by the used
@@ -2104,8 +2419,7 @@ var fn = function fn(handle) {
2104
2419
 
2105
2420
  return function (t) {
2106
2421
  var input = args.map(function (arg) {
2107
- var value = typeof arg === 'function' ? arg(t) : arg;
2108
- return value;
2422
+ return typeof arg === 'function' ? arg(t) : arg;
2109
2423
  });
2110
2424
  return handle(input, t);
2111
2425
  };
@@ -2134,28 +2448,31 @@ var escapeSvg = function escapeSvg(string) {
2134
2448
  return string.startsWith('url(') ? "url(\"".concat(strReplace(string.slice(5, -2)), "\")") : strReplace(string);
2135
2449
  }; // Color contrast
2136
2450
  // A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)
2451
+ // prettier-ignore
2137
2452
 
2138
2453
  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
2454
  // See https://www.w3.org/WAI/GL/wiki/Relative_luminance
2140
2455
  // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
2141
2456
 
2142
2457
  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];
2458
+ var rgb = RgbaValue.parse(color).toRgb();
2148
2459
 
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;
2460
+ var _rgb$map = rgb.map(function (value) {
2461
+ return value / 255 < 0.04045 ? value / 255 / 12.92 : luminanceList[value];
2462
+ }),
2463
+ _rgb$map2 = _slicedToArray(_rgb$map, 3),
2464
+ red = _rgb$map2[0],
2465
+ green = _rgb$map2[1],
2466
+ blue = _rgb$map2[2];
2467
+
2468
+ return red * 0.2126 + green * 0.7152 + blue * 0.0722;
2152
2469
  }; // Return opaque color
2153
2470
  // opaque(#fff, rgba(0, 0, 0, .5)) => #808080
2154
2471
 
2155
2472
 
2156
2473
  var opaque = function opaque(background, foreground) {
2157
- var opacity = parseToRgb(foreground).alpha || 1;
2158
- return mix(opacity, rgba$1(foreground, 1), background);
2474
+ var foregroundRgba = RgbaValue.parse(foreground);
2475
+ return mix(rgba$1(foregroundRgba, 1), background, opacity(foregroundRgba));
2159
2476
  };
2160
2477
 
2161
2478
  var contrastRatio = function contrastRatio(background, foreground) {
@@ -2164,9 +2481,9 @@ var contrastRatio = function contrastRatio(background, foreground) {
2164
2481
  return l1 > l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05);
2165
2482
  };
2166
2483
 
2167
- var colorContrast = fn(function (_ref5, t) {
2168
- var _ref6 = _slicedToArray(_ref5, 1),
2169
- background = _ref6[0];
2484
+ var colorContrast = fn(function (_ref3, t) {
2485
+ var _ref4 = _slicedToArray(_ref3, 1),
2486
+ background = _ref4[0];
2170
2487
 
2171
2488
  var foregrounds = [t['color-contrast-light'], t['color-contrast-dark'], t.white, t.black];
2172
2489
  var maxRatio = 0;
@@ -2195,34 +2512,35 @@ var colorContrast = fn(function (_ref5, t) {
2195
2512
  return maxRatioColor;
2196
2513
  }); // Tint a color: mix a color with white
2197
2514
 
2198
- var tintColor = fn(function (_ref7, t) {
2199
- var _ref8 = _slicedToArray(_ref7, 2),
2200
- weight = _ref8[0],
2201
- color = _ref8[1];
2515
+ var tintColor = fn(function (_ref5, t) {
2516
+ var _ref6 = _slicedToArray(_ref5, 2),
2517
+ color = _ref6[0],
2518
+ weight = _ref6[1];
2202
2519
 
2203
- return mix(weight, t.white, color);
2520
+ return mix(t.white, color, weight);
2204
2521
  }); // Shade a color: mix a color with black
2205
2522
 
2206
- var shadeColor = fn(function (_ref9, t) {
2207
- var _ref10 = _slicedToArray(_ref9, 2),
2208
- weight = _ref10[0],
2209
- color = _ref10[1];
2523
+ var shadeColor = fn(function (_ref7, t) {
2524
+ var _ref8 = _slicedToArray(_ref7, 2),
2525
+ color = _ref8[0],
2526
+ weight = _ref8[1];
2210
2527
 
2211
- return mix(weight, t.black, color);
2528
+ return mix(t.black, color, weight);
2212
2529
  }); // Shade the color if the weight is positive, else tint it
2213
2530
 
2214
- var shiftColor = fn(function (_ref11, t) {
2215
- var _ref12 = _slicedToArray(_ref11, 2),
2216
- weight = _ref12[0],
2217
- color = _ref12[1];
2531
+ var shiftColor = fn(function (_ref9, t) {
2532
+ var _ref10 = _slicedToArray(_ref9, 2),
2533
+ color = _ref10[0],
2534
+ weight = _ref10[1];
2218
2535
 
2219
- var handle = weight > 0 ? shadeColor(weight, color) : tintColor(-weight, color);
2536
+ var percentage = UnitValue.parse(weight).toPercentage();
2537
+ var handle = percentage > 0 ? shadeColor(color, percentage) : tintColor(color, -percentage);
2220
2538
  return handle(t);
2221
2539
  });
2222
- var add = fn(function (_ref13) {
2223
- var _ref14 = _slicedToArray(_ref13, 2),
2224
- value1 = _ref14[0],
2225
- value2 = _ref14[1];
2540
+ var add = fn(function (_ref11) {
2541
+ var _ref12 = _slicedToArray(_ref11, 2),
2542
+ value1 = _ref12[0],
2543
+ value2 = _ref12[1];
2226
2544
 
2227
2545
  if (value1 === null) {
2228
2546
  return value2;
@@ -2232,12 +2550,12 @@ var add = fn(function (_ref13) {
2232
2550
  return value1;
2233
2551
  }
2234
2552
 
2235
- return calculateAdvanced(value1, '+', value2);
2553
+ return calculate(value1, '+', value2);
2236
2554
  });
2237
- var subtract = fn(function (_ref15) {
2238
- var _ref16 = _slicedToArray(_ref15, 2),
2239
- value1 = _ref16[0],
2240
- value2 = _ref16[1];
2555
+ var subtract = fn(function (_ref13) {
2556
+ var _ref14 = _slicedToArray(_ref13, 2),
2557
+ value1 = _ref14[0],
2558
+ value2 = _ref14[1];
2241
2559
 
2242
2560
  if (value1 === null && value2 === null) {
2243
2561
  return null;
@@ -2251,12 +2569,12 @@ var subtract = fn(function (_ref15) {
2251
2569
  return value1;
2252
2570
  }
2253
2571
 
2254
- return calculateAdvanced(value1, '-', value2);
2572
+ return calculate(value1, '-', value2);
2255
2573
  });
2256
- var divide = fn(function (_ref17) {
2257
- var _ref18 = _slicedToArray(_ref17, 2),
2258
- dividend = _ref18[0],
2259
- divisor = _ref18[1];
2574
+ var divide = fn(function (_ref15) {
2575
+ var _ref16 = _slicedToArray(_ref15, 2),
2576
+ dividend = _ref16[0],
2577
+ divisor = _ref16[1];
2260
2578
 
2261
2579
  if (Math.abs(parseFloat(dividend)) === 0) {
2262
2580
  return 0;
@@ -2266,7 +2584,7 @@ var divide = fn(function (_ref17) {
2266
2584
  throw new Error('Cannot divide by 0');
2267
2585
  }
2268
2586
 
2269
- return calculateAdvanced(dividend, '/', divisor);
2587
+ return calculate(dividend, '/', divisor);
2270
2588
  });
2271
2589
  /* eslint-enable */
2272
2590
 
@@ -2280,7 +2598,7 @@ var url = function url(val) {
2280
2598
  };
2281
2599
  };
2282
2600
 
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) {
2601
+ 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
2602
  return {
2285
2603
  100: t['gray-100'],
2286
2604
  200: t['gray-200'],
@@ -2452,9 +2770,9 @@ var variables = css(_templateObject$1e || (_templateObject$1e = _taggedTemplateL
2452
2770
  100: '100%'
2453
2771
  };
2454
2772
  }, shiftColor(function (t) {
2455
- return t['link-shade-percentage'];
2456
- }, function (t) {
2457
2773
  return t['link-color'];
2774
+ }, function (t) {
2775
+ return t['link-shade-percentage'];
2458
2776
  }), function () {
2459
2777
  return {
2460
2778
  xs: 0,
@@ -2518,9 +2836,9 @@ var variables = css(_templateObject$1e || (_templateObject$1e = _taggedTemplateL
2518
2836
  };
2519
2837
  }, function () {
2520
2838
  return '/';
2521
- }, tintColor(0.5, function (t) {
2839
+ }, tintColor(function (t) {
2522
2840
  return t['component-active-bg'];
2523
- }), add(function (t) {
2841
+ }, 0.5), add(function (t) {
2524
2842
  return calculate(t['input-line-height'], '*', 1);
2525
2843
  }, function (t) {
2526
2844
  return calculate(t['input-padding-y'], '*', 2);
@@ -2570,9 +2888,9 @@ add(function (t) {
2570
2888
  return t['dropdown-border-radius'];
2571
2889
  }, function (t) {
2572
2890
  return t['dropdown-border-width'];
2573
- }), shadeColor(0.1, function (t) {
2891
+ }), shadeColor(function (t) {
2574
2892
  return t['dropdown-link-color'];
2575
- }), subtract(function (t) {
2893
+ }, 0.1), subtract(function (t) {
2576
2894
  return t['card-border-radius'];
2577
2895
  }, function (t) {
2578
2896
  return t['card-border-width'];
@@ -2580,9 +2898,9 @@ add(function (t) {
2580
2898
  return t['popover-border-radius'];
2581
2899
  }, function (t) {
2582
2900
  return t['popover-border-width'];
2583
- }), shadeColor(0.06, function (t) {
2901
+ }), shadeColor(function (t) {
2584
2902
  return t['popover-bg'];
2585
- }), subtract(function (t) {
2903
+ }, 0.06), subtract(function (t) {
2586
2904
  return t['modal-content-border-radius'];
2587
2905
  }, function (t) {
2588
2906
  return t['modal-content-border-width'];
@@ -2971,13 +3289,13 @@ var styles$1f = StyleSheet.create(_objectSpread2(_objectSpread2({
2971
3289
  }, each(THEME_COLORS, function (state, value) {
2972
3290
  var _ref;
2973
3291
 
2974
- return _ref = {}, _defineProperty(_ref, ".alert-".concat(state), css(_templateObject2$V || (_templateObject2$V = _taggedTemplateLiteral(["\n background-color: ", ";\n border-color: ", ";\n "])), shiftColor(function (t) {
3292
+ 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
3293
  return t['alert-bg-scale'];
2976
- }, value), shiftColor(function (t) {
3294
+ }), shiftColor(value, function (t) {
2977
3295
  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) {
3296
+ }))), _defineProperty(_ref, ".alert-".concat(state, " --text"), css(_templateObject3$t || (_templateObject3$t = _taggedTemplateLiteral(["\n color: ", ";\n "])), shiftColor(value, function (t) {
2979
3297
  return t['alert-color-scale'];
2980
- }, value))), _ref;
3298
+ }))), _ref;
2981
3299
  })), {}, {
2982
3300
  '.alert-dismissible': {// TODO
2983
3301
  }
@@ -3371,6 +3689,84 @@ function useAction(props, ref) {
3371
3689
  return [actionProps, concatRefs(actionRef, ref)];
3372
3690
  }
3373
3691
 
3692
+ function useInteractionState(_ref) {
3693
+ var _ref$onFocus = _ref.onFocus,
3694
+ _onFocus = _ref$onFocus === void 0 ? function () {} : _ref$onFocus,
3695
+ _ref$onBlur = _ref.onBlur,
3696
+ _onBlur = _ref$onBlur === void 0 ? function () {} : _ref$onBlur,
3697
+ _ref$onHoverIn = _ref.onHoverIn,
3698
+ _onHoverIn = _ref$onHoverIn === void 0 ? function () {} : _ref$onHoverIn,
3699
+ _ref$onHoverOut = _ref.onHoverOut,
3700
+ _onHoverOut = _ref$onHoverOut === void 0 ? function () {} : _ref$onHoverOut,
3701
+ _ref$onPressIn = _ref.onPressIn,
3702
+ _onPressIn = _ref$onPressIn === void 0 ? function () {} : _ref$onPressIn,
3703
+ _ref$onPressOut = _ref.onPressOut,
3704
+ _onPressOut = _ref$onPressOut === void 0 ? function () {} : _ref$onPressOut,
3705
+ autoFocus = _ref.autoFocus;
3706
+
3707
+ var _useState = useState(false),
3708
+ _useState2 = _slicedToArray(_useState, 2),
3709
+ active = _useState2[0],
3710
+ setActive = _useState2[1];
3711
+
3712
+ var _useState3 = useState(false),
3713
+ _useState4 = _slicedToArray(_useState3, 2),
3714
+ hover = _useState4[0],
3715
+ setHovered = _useState4[1];
3716
+
3717
+ var _useFocusRing = useFocusRing({
3718
+ autoFocus: autoFocus
3719
+ }),
3720
+ focus = _useFocusRing.isFocused,
3721
+ focusVisible = _useFocusRing.isFocusVisible,
3722
+ focusProps = _useFocusRing.focusProps;
3723
+
3724
+ var interactionProps = useMemo(function () {
3725
+ return {
3726
+ onHoverIn: function onHoverIn(event) {
3727
+ setHovered(true);
3728
+
3729
+ _onHoverIn(event);
3730
+ },
3731
+ onHoverOut: function onHoverOut(event) {
3732
+ setHovered(false);
3733
+
3734
+ _onHoverOut(event);
3735
+ },
3736
+ onFocus: function onFocus(event) {
3737
+ focusProps.onFocus(event);
3738
+
3739
+ _onFocus(event);
3740
+ },
3741
+ onBlur: function onBlur(event) {
3742
+ focusProps.onBlur(event);
3743
+
3744
+ _onBlur(event);
3745
+ },
3746
+ onPressIn: function onPressIn(event) {
3747
+ setActive(true);
3748
+
3749
+ _onPressIn(event);
3750
+ },
3751
+ onPressOut: function onPressOut(event) {
3752
+ setActive(false);
3753
+
3754
+ _onPressOut(event);
3755
+ }
3756
+ };
3757
+ }, [_onFocus, _onBlur, _onHoverIn, _onHoverOut, _onPressIn, _onPressOut]);
3758
+ var interaction = {
3759
+ hover: hover,
3760
+ focus: focus,
3761
+ focusVisible: focusVisible,
3762
+ active: active
3763
+ };
3764
+ return {
3765
+ interaction: interaction,
3766
+ interactionProps: interactionProps
3767
+ };
3768
+ }
3769
+
3374
3770
  var _excluded$1o = ["color", "direction", "style"];
3375
3771
 
3376
3772
  var _templateObject$16, _templateObject2$Q, _templateObject3$q, _templateObject4$n, _templateObject5$k;
@@ -3538,34 +3934,35 @@ var Pressable = /*#__PURE__*/React.forwardRef(function (props, ref) {
3538
3934
  var resolveActiveStyle = useStyle(active && activeStyle);
3539
3935
  var resolveTextStyle = useStyle([context && context.style, textStyle]);
3540
3936
  var resolveActiveTextStyle = useStyle(active && activeTextStyle);
3937
+
3938
+ var _useInteractionState = useInteractionState(elementProps),
3939
+ interaction = _useInteractionState.interaction,
3940
+ interactionProps = _useInteractionState.interactionProps;
3941
+
3541
3942
  var hasTextStyle = context && context.style || textStyle;
3542
3943
  var wrappedChildren = applyCaret(children, caret);
3543
- return /*#__PURE__*/React.createElement(Pressable$1, _extends({}, elementProps, {
3944
+ return /*#__PURE__*/React.createElement(Pressable$1, _extends({}, elementProps, interactionProps, {
3544
3945
  ref: actionRef,
3545
3946
  accessibilityRole: getRole$2(actionProps),
3546
- style: function style(interaction) {
3547
- return [resolveStyle({
3947
+ style: [resolveStyle({
3948
+ media: media,
3949
+ interaction: interaction
3950
+ }), resolveActiveStyle({
3951
+ media: media,
3952
+ interaction: interaction
3953
+ })]
3954
+ }), hasTextStyle ? /*#__PURE__*/React.createElement(TextStyleContext.Provider, {
3955
+ value: {
3956
+ style: [resolveTextStyle({
3548
3957
  media: media,
3549
3958
  interaction: interaction
3550
- }), resolveActiveStyle({
3959
+ }), resolveActiveTextStyle({
3551
3960
  media: media,
3552
3961
  interaction: interaction
3553
- })];
3962
+ })],
3963
+ hasAncestor: context && context.hasTextAncestor
3554
3964
  }
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);
3965
+ }, wrappedChildren) : wrappedChildren);
3569
3966
  });
3570
3967
  Pressable.displayName = 'Pressable';
3571
3968
  Pressable.propTypes = propTypes$1q;
@@ -3613,37 +4010,37 @@ var propTypes$1p = {
3613
4010
  activeTextStyle: PropTypes.any
3614
4011
  };
3615
4012
  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 "]))),
4013
+ '.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
4014
  '.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
4015
  '.btn.disabled': css(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteral(["\n // pointer-events: none;\n opacity: $btn-disabled-opacity;\n // @include box-shadow(none);\n "])))
3619
4016
  }, each(THEME_COLORS, function (color, value) {
3620
4017
  var _ref;
3621
4018
 
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) {
4019
+ 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
4020
  return t['btn-hover-bg-shade-amount'];
3624
- }, value), shadeColor(function (t) {
4021
+ }), shadeColor(value, function (t) {
3625
4022
  return t['btn-hover-border-shade-amount'];
3626
- }, value), shadeColor(function (t) {
4023
+ }), shadeColor(value, function (t) {
3627
4024
  return t['btn-hover-bg-shade-amount'];
3628
- }, value), shadeColor(function (t) {
4025
+ }), shadeColor(value, function (t) {
3629
4026
  return t['btn-hover-border-shade-amount'];
3630
- }, value), shadeColor(function (t) {
4027
+ }), shadeColor(value, function (t) {
3631
4028
  return t['btn-active-bg-shade-amount'];
3632
- }, value), shadeColor(function (t) {
4029
+ }), shadeColor(value, function (t) {
3633
4030
  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) {
4031
+ }))), _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
4032
  return t['btn-active-bg-shade-amount'];
3636
- }, value), shadeColor(function (t) {
4033
+ }), shadeColor(value, function (t) {
3637
4034
  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;
4035
+ }))), _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
4036
  })), {}, {
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 "]))),
4037
+ '.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
4038
  '.btn-link.disabled --text': css(_templateObject15$3 || (_templateObject15$3 = _taggedTemplateLiteral(["\n color: $btn-link-disabled-color;\n "]))),
3642
4039
  '.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
4040
  '.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
4041
  '.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
4042
  '.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 "]))),
4043
+ '.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
4044
  '.btn-group > .btn.active': css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n z-index: 2; // 1;\n "]))),
3648
4045
  '.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
4046
  '.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 +4151,7 @@ var propTypes$1n = {
3754
4151
  styleName: PropTypes.any
3755
4152
  };
3756
4153
  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 "]))),
4154
+ 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
4155
  'body --text': css(_templateObject2$N || (_templateObject2$N = _taggedTemplateLiteral(["\n color: $body-color;\n text-align: $body-text-align;\n "])))
3759
4156
  });
3760
4157
  var Body = /*#__PURE__*/React.forwardRef(function (props, ref) {
@@ -4208,17 +4605,11 @@ function useBackground(style, styleName) {
4208
4605
  return useBackgroundForPlatform(style, styleName);
4209
4606
  }
4210
4607
 
4211
- var _excluded$1e = ["children", "onFocus", "onBlur", "onHoverIn", "onHoverOut", "onPressIn", "onPressOut", "disabled", "style", "textStyle", "styleName"];
4608
+ var _excluded$1e = ["children", "disabled", "style", "textStyle", "styleName"];
4212
4609
 
4213
4610
  var _templateObject$_, _templateObject2$J, _templateObject3$o, _templateObject4$l, _templateObject5$i;
4214
4611
  var propTypes$1i = {
4215
4612
  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
4613
  disabled: PropTypes.bool,
4223
4614
  // eslint-disable-next-line react/forbid-prop-types
4224
4615
  style: PropTypes.any,
@@ -4240,19 +4631,7 @@ var styles$_ = StyleSheet.create({
4240
4631
  });
4241
4632
  var CloseButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
4242
4633
  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,
4634
+ var _props$disabled = props.disabled,
4256
4635
  disabled = _props$disabled === void 0 ? false : _props$disabled,
4257
4636
  style = props.style,
4258
4637
  textStyle = props.textStyle,
@@ -4260,22 +4639,6 @@ var CloseButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
4260
4639
  elementProps = _objectWithoutProperties(props, _excluded$1e);
4261
4640
 
4262
4641
  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
4642
  var modal = useContext(ModalContext);
4280
4643
  var offcanvas = useContext(OffcanvasContext);
4281
4644
  var classes = getStyles(styles$_, ['.btn-close', disabled && '.btn-close.disabled', // Modal styles
@@ -4283,47 +4646,18 @@ var CloseButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
4283
4646
  offcanvas && '.offcanvas-header .btn-close']);
4284
4647
  var textClasses = getStyles(styles$_, ['.btn-close --text']);
4285
4648
  var resolveStyle = useStyle([classes, style], styleName);
4649
+
4650
+ var _useInteractionState = useInteractionState(elementProps),
4651
+ interaction = _useInteractionState.interaction,
4652
+ interactionProps = _useInteractionState.interactionProps;
4653
+
4286
4654
  var background = useBackground(resolveStyle({
4287
4655
  media: media,
4288
- interaction: {
4289
- focused: focused,
4290
- hovered: hovered,
4291
- pressed: pressed
4292
- }
4656
+ interaction: interaction
4293
4657
  }));
4294
- return /*#__PURE__*/React.createElement(Pressable, _extends({}, elementProps, {
4658
+ return /*#__PURE__*/React.createElement(Pressable, _extends({}, elementProps, interactionProps, {
4295
4659
  component: Pressable,
4296
4660
  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
4661
  disabled: disabled,
4328
4662
  style: background.style,
4329
4663
  textStyle: [textClasses, textStyle]
@@ -4656,7 +4990,7 @@ var FormCheckInputNative = /*#__PURE__*/React.forwardRef(function (props, ref) {
4656
4990
  FormCheckInputNative.displayName = 'FormCheckInputNative';
4657
4991
  FormCheckInputNative.propTypes = propTypes$1d;
4658
4992
 
4659
- var _excluded$19 = ["type", "value", "onFocus", "onBlur", "disabled", "valid", "invalid", "useNativeComponent", "style"];
4993
+ var _excluded$19 = ["type", "value", "onFocus", "onBlur", "disabled", "valid", "invalid", "useNativeComponent", "autoFocus", "style"];
4660
4994
 
4661
4995
  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
4996
  /* eslint-disable react/no-unused-prop-types */
@@ -4727,9 +5061,9 @@ var FormCheckInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
4727
5061
  var type = modifierProps.type,
4728
5062
  value = modifierProps.value,
4729
5063
  _modifierProps$onFocu = modifierProps.onFocus,
4730
- onFocus = _modifierProps$onFocu === void 0 ? function () {} : _modifierProps$onFocu,
5064
+ _onFocus = _modifierProps$onFocu === void 0 ? function () {} : _modifierProps$onFocu,
4731
5065
  _modifierProps$onBlur = modifierProps.onBlur,
4732
- onBlur = _modifierProps$onBlur === void 0 ? function () {} : _modifierProps$onBlur,
5066
+ _onBlur = _modifierProps$onBlur === void 0 ? function () {} : _modifierProps$onBlur,
4733
5067
  _modifierProps$disabl = modifierProps.disabled,
4734
5068
  disabled = _modifierProps$disabl === void 0 ? context ? context.disabled : false : _modifierProps$disabl,
4735
5069
  _modifierProps$valid = modifierProps.valid,
@@ -4738,12 +5072,14 @@ var FormCheckInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
4738
5072
  invalid = _modifierProps$invali === void 0 ? context ? context.invalid : false : _modifierProps$invali,
4739
5073
  _modifierProps$useNat = modifierProps.useNativeComponent,
4740
5074
  useNativeComponent = _modifierProps$useNat === void 0 ? false : _modifierProps$useNat,
5075
+ _modifierProps$autoFo = modifierProps.autoFocus,
5076
+ autoFocus = _modifierProps$autoFo === void 0 ? false : _modifierProps$autoFo,
4741
5077
  style = modifierProps.style,
4742
5078
  elementProps = _objectWithoutProperties(modifierProps, _excluded$19);
4743
5079
 
4744
5080
  var media = useMedia();
4745
5081
 
4746
- var _useState = useState(false),
5082
+ var _useState = useState(autoFocus),
4747
5083
  _useState2 = _slicedToArray(_useState, 2),
4748
5084
  focused = _useState2[0],
4749
5085
  setFocused = _useState2[1];
@@ -4752,29 +5088,28 @@ var FormCheckInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
4752
5088
  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
5089
  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
5090
  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
5091
  var BaseFormCheckInput = Platform.OS === 'web' && !useNativeComponent ? FormCheckInputWeb : FormCheckInputNative;
4767
5092
  return /*#__PURE__*/React.createElement(BaseFormCheckInput, _extends({}, elementProps, {
4768
5093
  ref: modifierRef,
4769
5094
  type: type,
4770
5095
  value: value,
4771
- onFocus: handleFocus,
4772
- onBlur: handleBlur,
5096
+ onFocus: function onFocus() {
5097
+ setFocused(true);
5098
+
5099
+ _onFocus();
5100
+ },
5101
+ onBlur: function onBlur() {
5102
+ setFocused(false);
5103
+
5104
+ _onBlur();
5105
+ },
4773
5106
  disabled: disabled,
5107
+ autoFocus: autoFocus,
4774
5108
  style: resolveStyle({
4775
5109
  media: media,
4776
5110
  interaction: {
4777
- focused: focused
5111
+ focus: focused,
5112
+ focusVisible: focused
4778
5113
  }
4779
5114
  })
4780
5115
  }));
@@ -5192,7 +5527,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
5192
5527
  return /*#__PURE__*/React.createElement(OverlayContainer, null, /*#__PURE__*/React.createElement(Overlay, {
5193
5528
  placement: transformPlacement(media, direction, center, start, end),
5194
5529
  targetRef: toggleRef,
5195
- offset: convertToNumber(StyleSheet.value('dropdown-spacer')),
5530
+ offset: normalizeNumber(StyleSheet.value('dropdown-spacer')),
5196
5531
  visible: visible
5197
5532
  }, function (overlay, overlayRef) {
5198
5533
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BackdropHandler, {
@@ -5731,10 +6066,11 @@ var FormText = /*#__PURE__*/React.forwardRef(function (props, ref) {
5731
6066
  FormText.displayName = 'FormText';
5732
6067
  FormText.propTypes = propTypes$V;
5733
6068
 
5734
- var _excluded$S = ["onFocus", "onBlur", "style", "styleName"];
6069
+ var _excluded$S = ["onFocus", "onBlur", "autoFocus", "style", "styleName"];
5735
6070
  var propTypes$U = {
5736
6071
  onFocus: PropTypes.func,
5737
6072
  onBlur: PropTypes.func,
6073
+ autoFocus: PropTypes.bool,
5738
6074
  // eslint-disable-next-line react/forbid-prop-types
5739
6075
  style: PropTypes.any,
5740
6076
  // eslint-disable-next-line react/forbid-prop-types
@@ -5745,11 +6081,13 @@ var TextInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
5745
6081
  _onFocus = _props$onFocus === void 0 ? function () {} : _props$onFocus,
5746
6082
  _props$onBlur = props.onBlur,
5747
6083
  _onBlur = _props$onBlur === void 0 ? function () {} : _props$onBlur,
6084
+ _props$autoFocus = props.autoFocus,
6085
+ autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
5748
6086
  style = props.style,
5749
6087
  styleName = props.styleName,
5750
6088
  elementProps = _objectWithoutProperties(props, _excluded$S);
5751
6089
 
5752
- var _useState = useState(false),
6090
+ var _useState = useState(autoFocus),
5753
6091
  _useState2 = _slicedToArray(_useState, 2),
5754
6092
  focused = _useState2[0],
5755
6093
  setFocused = _useState2[1];
@@ -5758,20 +6096,22 @@ var TextInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
5758
6096
  var resolveStyle = useStyle(style, styleName);
5759
6097
  return /*#__PURE__*/React.createElement(TextInput$1, _extends({}, elementProps, {
5760
6098
  ref: ref,
5761
- onFocus: function onFocus() {
6099
+ onFocus: function onFocus(event) {
5762
6100
  setFocused(true);
5763
6101
 
5764
- _onFocus();
6102
+ _onFocus(event);
5765
6103
  },
5766
- onBlur: function onBlur() {
6104
+ onBlur: function onBlur(event) {
5767
6105
  setFocused(false);
5768
6106
 
5769
- _onBlur();
6107
+ _onBlur(event);
5770
6108
  },
6109
+ autoFocus: autoFocus,
5771
6110
  style: resolveStyle({
5772
6111
  media: media,
5773
6112
  interaction: {
5774
- focused: focused
6113
+ focus: focused,
6114
+ focusVisible: focused
5775
6115
  }
5776
6116
  })
5777
6117
  }));
@@ -6207,7 +6547,7 @@ function injectPopover(Target) {
6207
6547
  targetRef = _useTrigger.targetRef,
6208
6548
  templateProps = _useTrigger.templateProps;
6209
6549
 
6210
- var offset = convertToNumber(StyleSheet.value('popover-arrow-height'));
6550
+ var offset = normalizeNumber(StyleSheet.value('popover-arrow-height'));
6211
6551
  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
6552
  placement: placement,
6213
6553
  offset: offset,
@@ -6402,7 +6742,7 @@ function injectTooltip(Target) {
6402
6742
  targetRef = _useTrigger.targetRef,
6403
6743
  templateProps = _useTrigger.templateProps;
6404
6744
 
6405
- var offset = convertToNumber(StyleSheet.value('tooltip-arrow-height'));
6745
+ var offset = normalizeNumber(StyleSheet.value('tooltip-arrow-height'));
6406
6746
  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
6747
  placement: placement,
6408
6748
  targetRef: targetRef,
@@ -6513,11 +6853,11 @@ var styles$y = StyleSheet.create(_objectSpread2({
6513
6853
  }, each(THEME_COLORS, function (state, value) {
6514
6854
  var _ref;
6515
6855
 
6516
- return _ref = {}, _defineProperty(_ref, ".list-group-item-".concat(state), css(_templateObject13$2 || (_templateObject13$2 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), shiftColor(function (t) {
6856
+ return _ref = {}, _defineProperty(_ref, ".list-group-item-".concat(state), css(_templateObject13$2 || (_templateObject13$2 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), shiftColor(value, function (t) {
6517
6857
  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) {
6858
+ }))), _defineProperty(_ref, ".list-group-item-".concat(state, " --text"), css(_templateObject14$1 || (_templateObject14$1 = _taggedTemplateLiteral(["\n color: ", ";\n "])), shiftColor(value, function (t) {
6519
6859
  return t['list-group-item-color-scale'];
6520
- }, value))), _ref;
6860
+ }))), _ref;
6521
6861
  })));
6522
6862
  var ListGroupItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
6523
6863
  var children = props.children,
@@ -6573,19 +6913,19 @@ var actionStyles = StyleSheet.create(_objectSpread2({
6573
6913
  }, each(THEME_COLORS, function (state, value) {
6574
6914
  var _ref;
6575
6915
 
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) {
6916
+ 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
6917
  return t['list-group-item-bg-scale'];
6578
- }, value)), shadeColor(0.1, shiftColor(function (t) {
6918
+ }), 0.1), shadeColor(shiftColor(value, function (t) {
6579
6919
  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) {
6920
+ }), 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
6921
  return t['list-group-item-color-scale'];
6582
- }, value), shiftColor(function (t) {
6922
+ }), shiftColor(value, function (t) {
6583
6923
  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) {
6924
+ }))), _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
6925
  return t['list-group-item-color-scale'];
6586
- }, value), shiftColor(function (t) {
6926
+ }), shiftColor(value, function (t) {
6587
6927
  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;
6928
+ }))), _defineProperty(_ref, ".list-group-item-".concat(state, "-action.active --text"), css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n color: $white;\n "])))), _ref;
6589
6929
  })));
6590
6930
  var ListGroupItemAction = /*#__PURE__*/React.forwardRef(function (props, ref) {
6591
6931
  var _useModifier = useModifier('useTabbable', props, ref),
@@ -6684,17 +7024,11 @@ ListGroup.propTypes = propTypes$F;
6684
7024
  ListGroup.Item = ListGroupItem;
6685
7025
  ListGroup.ItemAction = ListGroupItemAction;
6686
7026
 
6687
- var _excluded$C = ["children", "onMouseEnter", "onMouseLeave", "onFocus", "onBlur", "onPressIn", "onPressOut", "style"];
7027
+ var _excluded$C = ["children", "style"];
6688
7028
 
6689
7029
  var _templateObject$w;
6690
7030
  var propTypes$E = {
6691
7031
  children: PropTypes.node.isRequired,
6692
- onMouseEnter: PropTypes.func,
6693
- onMouseLeave: PropTypes.func,
6694
- onFocus: PropTypes.func,
6695
- onBlur: PropTypes.func,
6696
- onPressIn: PropTypes.func,
6697
- onPressOut: PropTypes.func,
6698
7032
  // eslint-disable-next-line react/forbid-prop-types
6699
7033
  style: PropTypes.any
6700
7034
  };
@@ -6713,81 +7047,24 @@ var Link = /*#__PURE__*/React.forwardRef(function (props, ref) {
6713
7047
  actionRef = _useAction2[1];
6714
7048
 
6715
7049
  var children = actionProps.children,
6716
- _actionProps$onMouseE = actionProps.onMouseEnter,
6717
- _onMouseEnter = _actionProps$onMouseE === void 0 ? function () {} : _actionProps$onMouseE,
6718
- _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,
6728
7050
  style = actionProps.style,
6729
7051
  elementProps = _objectWithoutProperties(actionProps, _excluded$C);
6730
7052
 
6731
7053
  var media = useMedia();
7054
+ var classes = getStyles(styles$w, ['link']);
7055
+ var resolveStyle = useStyle([classes, style]);
6732
7056
 
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];
7057
+ var _useInteractionState = useInteractionState(elementProps),
7058
+ interaction = _useInteractionState.interaction,
7059
+ interactionProps = _useInteractionState.interactionProps;
6747
7060
 
6748
- var classes = getStyles(styles$w, ['link', hovered]);
6749
- var resolveStyle = useStyle([classes, style]);
6750
- return /*#__PURE__*/React.createElement(Text, _extends({}, elementProps, {
7061
+ return /*#__PURE__*/React.createElement(Text, _extends({}, elementProps, interactionProps, {
6751
7062
  ref: actionRef,
6752
7063
  accessibilityRole: getRole$2(actionProps),
6753
7064
  accessible: true,
6754
- onFocus: function onFocus(e) {
6755
- setFocused(true);
6756
-
6757
- _onFocus(e);
6758
- },
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);
6783
- },
6784
7065
  style: resolveStyle({
6785
7066
  media: media,
6786
- interaction: {
6787
- focused: focused,
6788
- hovered: hovered,
6789
- pressed: pressed
6790
- }
7067
+ interaction: interaction
6791
7068
  })
6792
7069
  }), children);
6793
7070
  });
@@ -8053,7 +8330,7 @@ var PickerItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
8053
8330
  PickerItem.displayName = 'PickerItem';
8054
8331
  PickerItem.propTypes = propTypes$i;
8055
8332
 
8056
- var _excluded$g = ["children", "onFocus", "onBlur", "placeholderTextColor", "size", "disabled", "valid", "invalid", "useNativeComponent", "style", "styleName"];
8333
+ var _excluded$g = ["children", "onFocus", "onBlur", "placeholderTextColor", "size", "disabled", "valid", "invalid", "useNativeComponent", "autoFocus", "style", "styleName"];
8057
8334
 
8058
8335
  var _templateObject$d, _templateObject2$9, _templateObject3$3, _templateObject4$2, _templateObject5$2, _templateObject6$1;
8059
8336
  /* eslint-disable react/no-unused-prop-types */
@@ -8068,6 +8345,7 @@ var propTypes$h = {
8068
8345
  valid: PropTypes.bool,
8069
8346
  invalid: PropTypes.bool,
8070
8347
  useNativeComponent: PropTypes.bool,
8348
+ autoFocus: PropTypes.bool,
8071
8349
  // eslint-disable-next-line react/forbid-prop-types
8072
8350
  style: PropTypes.any,
8073
8351
  // eslint-disable-next-line react/forbid-prop-types
@@ -8100,9 +8378,9 @@ var Picker = /*#__PURE__*/React.forwardRef(function (props, ref) {
8100
8378
 
8101
8379
  var children = modifierProps.children,
8102
8380
  _modifierProps$onFocu = modifierProps.onFocus,
8103
- onFocus = _modifierProps$onFocu === void 0 ? function () {} : _modifierProps$onFocu,
8381
+ _onFocus = _modifierProps$onFocu === void 0 ? function () {} : _modifierProps$onFocu,
8104
8382
  _modifierProps$onBlur = modifierProps.onBlur,
8105
- onBlur = _modifierProps$onBlur === void 0 ? function () {} : _modifierProps$onBlur,
8383
+ _onBlur = _modifierProps$onBlur === void 0 ? function () {} : _modifierProps$onBlur,
8106
8384
  _modifierProps$placeh = modifierProps.placeholderTextColor,
8107
8385
  placeholderTextColor = _modifierProps$placeh === void 0 ? StyleSheet.value('input-placeholder-color') : _modifierProps$placeh,
8108
8386
  size = modifierProps.size,
@@ -8114,13 +8392,15 @@ var Picker = /*#__PURE__*/React.forwardRef(function (props, ref) {
8114
8392
  invalid = _modifierProps$invali === void 0 ? false : _modifierProps$invali,
8115
8393
  _modifierProps$useNat = modifierProps.useNativeComponent,
8116
8394
  useNativeComponent = _modifierProps$useNat === void 0 ? false : _modifierProps$useNat,
8395
+ _modifierProps$autoFo = modifierProps.autoFocus,
8396
+ autoFocus = _modifierProps$autoFo === void 0 ? false : _modifierProps$autoFo,
8117
8397
  style = modifierProps.style,
8118
8398
  styleName = modifierProps.styleName,
8119
8399
  elementProps = _objectWithoutProperties(modifierProps, _excluded$g);
8120
8400
 
8121
8401
  var media = useMedia();
8122
8402
 
8123
- var _useState = useState(false),
8403
+ var _useState = useState(autoFocus),
8124
8404
  _useState2 = _slicedToArray(_useState, 2),
8125
8405
  focused = _useState2[0],
8126
8406
  setFocused = _useState2[1];
@@ -8128,17 +8408,6 @@ var Picker = /*#__PURE__*/React.forwardRef(function (props, ref) {
8128
8408
  var classes = getStyles(styles$d, ['select', // reboot
8129
8409
  '.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
8410
  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
8411
  var BasePicker = Platform.OS === 'web' && !useNativeComponent ? PickerWeb : PickerNative;
8143
8412
  return /*#__PURE__*/React.createElement(PickerContext.Provider, {
8144
8413
  value: {
@@ -8147,13 +8416,23 @@ var Picker = /*#__PURE__*/React.forwardRef(function (props, ref) {
8147
8416
  }, /*#__PURE__*/React.createElement(BasePicker, _extends({}, elementProps, {
8148
8417
  ref: modifierRef,
8149
8418
  placeholderTextColor: placeholderTextColor,
8150
- onFocus: handleFocus,
8151
- onBlur: handleBlur,
8419
+ onFocus: function onFocus(event) {
8420
+ setFocused(true);
8421
+
8422
+ _onFocus(event);
8423
+ },
8424
+ onBlur: function onBlur(event) {
8425
+ setFocused(false);
8426
+
8427
+ _onBlur(event);
8428
+ },
8152
8429
  disabled: disabled,
8430
+ autoFocus: autoFocus,
8153
8431
  style: resolveStyle({
8154
8432
  media: media,
8155
8433
  interaction: {
8156
- focused: focused
8434
+ focus: focused,
8435
+ focusVisible: focused
8157
8436
  }
8158
8437
  })
8159
8438
  }), children));
@@ -8547,12 +8826,12 @@ var propTypes$7 = {
8547
8826
  style: PropTypes.any
8548
8827
  };
8549
8828
  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 "])))
8829
+ '.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
8830
  }, each(THEME_COLORS, function (color, value) {
8552
8831
  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
8832
  })), {}, {
8554
8833
  '.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 "])))
8834
+ '.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
8835
  }, each(THEME_COLORS, function (color, value) {
8557
8836
  return _defineProperty({}, ".spinner-grow-".concat(color), css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), value));
8558
8837
  })), {}, {