bootstrap-rn 0.1.3 → 0.1.5

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.
@@ -839,6 +839,13 @@ function transform(children, theme) {
839
839
  order: value
840
840
  });
841
841
  }
842
+ } else if (child.name === 'margin-horizontal' && value === 'auto') {
843
+ // Workaround for react-native issue #350
844
+ // https://github.com/facebook/react-native/issues/350#issuecomment-375238958
845
+ Object.assign(definitions[0].declarations, {
846
+ marginLeft: value,
847
+ marginRight: value
848
+ });
842
849
  } else if (child.name === 'border-color' && value.split(' ').length === 1) {
843
850
  // Workaround for react-native issue #19981
844
851
  // https://github.com/facebook/react-native/issues/19981
@@ -2794,15 +2801,15 @@ function useViewport(initialViewport) {
2794
2801
  });
2795
2802
  }, []);
2796
2803
  React.useEffect(function () {
2797
- reactNative.Dimensions.addEventListener('change', handleChange);
2804
+ var subscription = reactNative.Dimensions.addEventListener('change', handleChange);
2798
2805
  return function () {
2799
- reactNative.Dimensions.removeEventListener('change', handleChange);
2806
+ subscription.remove();
2800
2807
  };
2801
2808
  }, [viewport]);
2802
2809
  return viewport;
2803
2810
  }
2804
2811
 
2805
- var propTypes$1p = {
2812
+ var propTypes$1q = {
2806
2813
  children: PropTypes__default["default"].node.isRequired,
2807
2814
  // eslint-disable-next-line react/forbid-prop-types,
2808
2815
  utilities: PropTypes__default["default"].object,
@@ -2836,7 +2843,7 @@ function Provider(props) {
2836
2843
  }, /*#__PURE__*/React__default["default"].createElement(overlays.OverlayProvider, null, children));
2837
2844
  }
2838
2845
 
2839
- Provider.propTypes = propTypes$1p;
2846
+ Provider.propTypes = propTypes$1q;
2840
2847
 
2841
2848
  var TextStyleContext = /*#__PURE__*/React__default["default"].createContext();
2842
2849
  TextStyleContext.displayName = 'TextStyleContext';
@@ -2920,7 +2927,7 @@ function useStyle(style, styleName) {
2920
2927
  }
2921
2928
 
2922
2929
  var _excluded$1r = ["children", "style", "textStyle", "styleName"];
2923
- var propTypes$1o = {
2930
+ var propTypes$1p = {
2924
2931
  children: PropTypes__default["default"].node,
2925
2932
  // eslint-disable-next-line react/forbid-prop-types
2926
2933
  style: PropTypes__default["default"].any,
@@ -2956,12 +2963,12 @@ var View = /*#__PURE__*/React__default["default"].forwardRef(function (props, re
2956
2963
  }, children) : children);
2957
2964
  });
2958
2965
  View.displayName = 'View';
2959
- View.propTypes = propTypes$1o;
2966
+ View.propTypes = propTypes$1p;
2960
2967
 
2961
2968
  var _excluded$1q = ["children", "color", "dismissible", "style", "textStyle"];
2962
2969
 
2963
2970
  var _templateObject$19, _templateObject2$L, _templateObject3$q;
2964
- var propTypes$1n = {
2971
+ var propTypes$1o = {
2965
2972
  children: PropTypes__default["default"].node.isRequired,
2966
2973
  color: PropTypes__default["default"].oneOf(Object.keys(THEME_COLORS)),
2967
2974
  dismissible: PropTypes__default["default"].bool,
@@ -3006,12 +3013,12 @@ var Alert = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
3006
3013
  }), children);
3007
3014
  });
3008
3015
  Alert.displayName = 'Alert';
3009
- Alert.propTypes = propTypes$1n;
3016
+ Alert.propTypes = propTypes$1o;
3010
3017
 
3011
3018
  var _excluded$1p = ["color", "bold", "italic", "mark", "small", "style", "styleName"];
3012
3019
 
3013
- var _templateObject$18, _templateObject2$K, _templateObject3$p, _templateObject4$k, _templateObject5$i;
3014
- var propTypes$1m = {
3020
+ var _templateObject$18, _templateObject2$K, _templateObject3$p, _templateObject4$m, _templateObject5$k;
3021
+ var propTypes$1n = {
3015
3022
  color: PropTypes__default["default"].oneOf([].concat(_toConsumableArray(Object.keys(THEME_COLORS)), ['muted', 'black-50', 'white-50'])),
3016
3023
  small: PropTypes__default["default"].bool,
3017
3024
  mark: PropTypes__default["default"].bool,
@@ -3026,8 +3033,8 @@ var styles$17 = StyleSheet.create({
3026
3033
  text: css(_templateObject$18 || (_templateObject$18 = _taggedTemplateLiteral(["\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $font-size-base * $line-height-base;\n "]))),
3027
3034
  strong: css(_templateObject2$K || (_templateObject2$K = _taggedTemplateLiteral(["\n font-weight: $font-weight-bolder;\n "]))),
3028
3035
  italic: css(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteral(["\n font-style: italic;\n "]))),
3029
- small: css(_templateObject4$k || (_templateObject4$k = _taggedTemplateLiteral(["\n font-size: $small-font-size;\n line-height: $small-font-size * $line-height-base;\n "]))),
3030
- mark: css(_templateObject5$i || (_templateObject5$i = _taggedTemplateLiteral(["\n padding: $mark-padding;\n background-color: $mark-bg;\n "])))
3036
+ small: css(_templateObject4$m || (_templateObject4$m = _taggedTemplateLiteral(["\n font-size: $small-font-size;\n line-height: $small-font-size * $line-height-base;\n "]))),
3037
+ mark: css(_templateObject5$k || (_templateObject5$k = _taggedTemplateLiteral(["\n padding: $mark-padding;\n background-color: $mark-bg;\n "])))
3031
3038
  });
3032
3039
 
3033
3040
  var getStyleName = function getStyleName(styleName, color) {
@@ -3080,12 +3087,12 @@ var Text = /*#__PURE__*/React__default["default"].forwardRef(function (props, re
3080
3087
  }, element);
3081
3088
  });
3082
3089
  Text.displayName = 'Text';
3083
- Text.propTypes = propTypes$1m;
3090
+ Text.propTypes = propTypes$1n;
3084
3091
 
3085
3092
  var _excluded$1o = ["children", "style"];
3086
3093
 
3087
3094
  var _templateObject$17, _templateObject2$J;
3088
- var propTypes$1l = {
3095
+ var propTypes$1m = {
3089
3096
  children: PropTypes__default["default"].node.isRequired,
3090
3097
  // eslint-disable-next-line react/forbid-prop-types
3091
3098
  style: PropTypes__default["default"].any
@@ -3106,12 +3113,12 @@ var Badge = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
3106
3113
  }), children);
3107
3114
  });
3108
3115
  Badge.displayName = 'Badge';
3109
- Badge.propTypes = propTypes$1l;
3116
+ Badge.propTypes = propTypes$1m;
3110
3117
 
3111
3118
  var _excluded$1n = ["children", "active", "style", "textStyle"];
3112
3119
 
3113
3120
  var _templateObject$16, _templateObject2$I, _templateObject3$o;
3114
- var propTypes$1k = {
3121
+ var propTypes$1l = {
3115
3122
  children: PropTypes__default["default"].node.isRequired,
3116
3123
  active: PropTypes__default["default"].bool,
3117
3124
  // eslint-disable-next-line react/forbid-prop-types
@@ -3141,7 +3148,7 @@ var BreadcrumbItem = /*#__PURE__*/React__default["default"].forwardRef(function
3141
3148
  }), children);
3142
3149
  });
3143
3150
  BreadcrumbItem.displayName = 'BreadcrumbItem';
3144
- BreadcrumbItem.propTypes = propTypes$1k;
3151
+ BreadcrumbItem.propTypes = propTypes$1l;
3145
3152
  /*
3146
3153
  $breadcrumb-font-size: null;
3147
3154
  $breadcrumb-padding-y: 0;
@@ -3159,7 +3166,7 @@ $breadcrumb-border-radius: null;
3159
3166
  var _excluded$1m = ["children", "style"];
3160
3167
 
3161
3168
  var _templateObject$15;
3162
- var propTypes$1j = {
3169
+ var propTypes$1k = {
3163
3170
  children: PropTypes__default["default"].node.isRequired,
3164
3171
  // eslint-disable-next-line react/forbid-prop-types
3165
3172
  style: PropTypes__default["default"].any
@@ -3179,7 +3186,7 @@ var Breadcrumb = /*#__PURE__*/React__default["default"].forwardRef(function (pro
3179
3186
  }), makeListChildren(children));
3180
3187
  });
3181
3188
  Breadcrumb.displayName = 'Breadcrumb';
3182
- Breadcrumb.propTypes = propTypes$1j;
3189
+ Breadcrumb.propTypes = propTypes$1k;
3183
3190
  Breadcrumb.Item = BreadcrumbItem;
3184
3191
  /*
3185
3192
  $breadcrumb-font-size: null;
@@ -3201,7 +3208,7 @@ ButtonGroupContext.displayName = 'ButtonGroupContext';
3201
3208
  var _excluded$1l = ["children", "size", "style"];
3202
3209
 
3203
3210
  var _templateObject$14;
3204
- var propTypes$1i = {
3211
+ var propTypes$1j = {
3205
3212
  children: PropTypes__default["default"].node.isRequired,
3206
3213
  size: PropTypes__default["default"].oneOf(['lg', 'sm']),
3207
3214
  // eslint-disable-next-line react/forbid-prop-types
@@ -3230,12 +3237,12 @@ var ButtonGroup = /*#__PURE__*/React__default["default"].forwardRef(function (pr
3230
3237
  }, makeListChildren(children)));
3231
3238
  });
3232
3239
  ButtonGroup.displayName = 'ButtonGroup';
3233
- ButtonGroup.propTypes = propTypes$1i;
3240
+ ButtonGroup.propTypes = propTypes$1j;
3234
3241
 
3235
3242
  var _excluded$1k = ["children", "style"];
3236
3243
 
3237
3244
  var _templateObject$13;
3238
- var propTypes$1h = {
3245
+ var propTypes$1i = {
3239
3246
  children: PropTypes__default["default"].node.isRequired,
3240
3247
  // eslint-disable-next-line react/forbid-prop-types
3241
3248
  style: PropTypes__default["default"].any
@@ -3256,7 +3263,7 @@ var ButtonToolbar = /*#__PURE__*/React__default["default"].forwardRef(function (
3256
3263
  }), children);
3257
3264
  });
3258
3265
  ButtonToolbar.displayName = 'ButtonToolbar';
3259
- ButtonToolbar.propTypes = propTypes$1h;
3266
+ ButtonToolbar.propTypes = propTypes$1i;
3260
3267
 
3261
3268
  function useForcedContext(Context) {
3262
3269
  var context = React.useContext(Context);
@@ -3318,7 +3325,7 @@ function useAction(props, ref) {
3318
3325
  }
3319
3326
 
3320
3327
  var _excluded$1h = ["children", "active", "style", "activeStyle", "textStyle", "activeTextStyle", "styleName"];
3321
- var propTypes$1g = {
3328
+ var propTypes$1h = {
3322
3329
  children: PropTypes__default["default"].node,
3323
3330
  active: PropTypes__default["default"].bool,
3324
3331
  // eslint-disable-next-line react/forbid-prop-types
@@ -3407,7 +3414,7 @@ var Pressable = /*#__PURE__*/React__default["default"].forwardRef(function (prop
3407
3414
  } : children);
3408
3415
  });
3409
3416
  Pressable.displayName = 'Pressable';
3410
- Pressable.propTypes = propTypes$1g;
3417
+ Pressable.propTypes = propTypes$1h;
3411
3418
 
3412
3419
  var _excluded$1g = ["active", "handlePress"];
3413
3420
  function useToggleButton(props) {
@@ -3434,8 +3441,8 @@ function useToggleButton(props) {
3434
3441
 
3435
3442
  var _excluded$1f = ["children", "color", "size", "outline", "first", "last", "active", "disabled", "style", "activeStyle", "textStyle", "activeTextStyle"];
3436
3443
 
3437
- var _templateObject$12, _templateObject2$H, _templateObject3$n, _templateObject4$j, _templateObject5$h, _templateObject6$f, _templateObject7$b, _templateObject8$a, _templateObject9$6, _templateObject10$6, _templateObject11$5, _templateObject12$4, _templateObject13$4, _templateObject14$3, _templateObject15$2, _templateObject16$1, _templateObject17$1, _templateObject18$1, _templateObject19$1, _templateObject20$1, _templateObject21, _templateObject22, _templateObject23;
3438
- var propTypes$1f = {
3444
+ var _templateObject$12, _templateObject2$H, _templateObject3$n, _templateObject4$l, _templateObject5$j, _templateObject6$g, _templateObject7$c, _templateObject8$b, _templateObject9$8, _templateObject10$8, _templateObject11$6, _templateObject12$5, _templateObject13$5, _templateObject14$3, _templateObject15$2, _templateObject16$1, _templateObject17$1, _templateObject18$1, _templateObject19$1, _templateObject20$1, _templateObject21, _templateObject22, _templateObject23;
3445
+ var propTypes$1g = {
3439
3446
  children: PropTypes__default["default"].node.isRequired,
3440
3447
  color: PropTypes__default["default"].oneOf([].concat(_toConsumableArray(Object.keys(THEME_COLORS)), ['link'])),
3441
3448
  size: PropTypes__default["default"].oneOf(['lg', 'sm']),
@@ -3460,7 +3467,7 @@ var styles$11 = StyleSheet.create(_objectSpread2(_objectSpread2({
3460
3467
  }, each(THEME_COLORS, function (color, value) {
3461
3468
  var _ref;
3462
3469
 
3463
- return _ref = {}, _defineProperty(_ref, ".btn-".concat(color), css(_templateObject4$j || (_templateObject4$j = _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) {
3470
+ return _ref = {}, _defineProperty(_ref, ".btn-".concat(color), css(_templateObject4$l || (_templateObject4$l = _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) {
3464
3471
  return t['btn-hover-bg-shade-amount'];
3465
3472
  }, value), shadeColor(function (t) {
3466
3473
  return t['btn-hover-border-shade-amount'];
@@ -3472,11 +3479,11 @@ var styles$11 = StyleSheet.create(_objectSpread2(_objectSpread2({
3472
3479
  return t['btn-active-bg-shade-amount'];
3473
3480
  }, value), shadeColor(function (t) {
3474
3481
  return t['btn-active-border-shade-amount'];
3475
- }, value))), _defineProperty(_ref, ".btn-".concat(color, "-text"), css(_templateObject5$h || (_templateObject5$h = _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$f || (_templateObject6$f = _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) {
3482
+ }, 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) {
3476
3483
  return t['btn-active-bg-shade-amount'];
3477
3484
  }, value), shadeColor(function (t) {
3478
3485
  return t['btn-active-border-shade-amount'];
3479
- }, 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$a || (_templateObject8$a = _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$6 || (_templateObject9$6 = _taggedTemplateLiteral(["\n $disabled-color: ", ";\n\n color: $disabled-color;\n "])), colorContrast(value))), _defineProperty(_ref, ".btn-outline-".concat(color), css(_templateObject10$6 || (_templateObject10$6 = _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$5 || (_templateObject11$5 = _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$4 || (_templateObject12$4 = _taggedTemplateLiteral(["\n background-color: transparent;\n "])))), _defineProperty(_ref, ".btn-outline-".concat(color, "-disabled-text"), css(_templateObject13$4 || (_templateObject13$4 = _taggedTemplateLiteral(["\n color: ", ";\n "])), value)), _ref;
3486
+ }, value))), _defineProperty(_ref, ".btn-".concat(color, "-active-text"), css(_templateObject7$c || (_templateObject7$c = _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$8 || (_templateObject9$8 = _taggedTemplateLiteral(["\n $disabled-color: ", ";\n\n color: $disabled-color;\n "])), colorContrast(value))), _defineProperty(_ref, ".btn-outline-".concat(color), css(_templateObject10$8 || (_templateObject10$8 = _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$6 || (_templateObject11$6 = _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;
3480
3487
  })), {}, {
3481
3488
  '.btn-link-text': css(_templateObject14$3 || (_templateObject14$3 = _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 "]))),
3482
3489
  '.btn-link-text-disabled': css(_templateObject15$2 || (_templateObject15$2 = _taggedTemplateLiteral(["\n color: $btn-link-disabled-color;\n "]))),
@@ -3484,7 +3491,7 @@ var styles$11 = StyleSheet.create(_objectSpread2(_objectSpread2({
3484
3491
  '.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 "]))),
3485
3492
  '.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 "]))),
3486
3493
  '.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 "]))),
3487
- '.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 "]))),
3494
+ '.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 "]))),
3488
3495
  '.btn-group > .btn-active': css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n z-index: 2; // 1;\n "]))),
3489
3496
  '.btn-group > .btn-not-first': css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n margin-left: -$btn-border-width;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n "]))),
3490
3497
  '.btn-group > .btn-not-last': css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n "])))
@@ -3548,13 +3555,13 @@ var Button = /*#__PURE__*/React__default["default"].forwardRef(function (props,
3548
3555
  }), children);
3549
3556
  });
3550
3557
  Button.displayName = 'Button';
3551
- Button.propTypes = propTypes$1f;
3558
+ Button.propTypes = propTypes$1g;
3552
3559
  Button.useToggle = useToggleButton;
3553
3560
 
3554
3561
  var _excluded$1e = ["children", "style", "textStyle"];
3555
3562
 
3556
3563
  var _templateObject$11, _templateObject2$G;
3557
- var propTypes$1e = {
3564
+ var propTypes$1f = {
3558
3565
  children: PropTypes__default["default"].node.isRequired,
3559
3566
  // eslint-disable-next-line react/forbid-prop-types
3560
3567
  style: PropTypes__default["default"].any,
@@ -3583,12 +3590,12 @@ var Blockquote = /*#__PURE__*/React__default["default"].forwardRef(function (pro
3583
3590
  }), children);
3584
3591
  });
3585
3592
  Blockquote.displayName = 'Blockquote';
3586
- Blockquote.propTypes = propTypes$1e;
3593
+ Blockquote.propTypes = propTypes$1f;
3587
3594
 
3588
3595
  var _excluded$1d = ["children", "style", "textStyle"];
3589
3596
 
3590
3597
  var _templateObject$10, _templateObject2$F;
3591
- var propTypes$1d = {
3598
+ var propTypes$1e = {
3592
3599
  children: PropTypes__default["default"].node.isRequired,
3593
3600
  // eslint-disable-next-line react/forbid-prop-types
3594
3601
  style: PropTypes__default["default"].any,
@@ -3596,7 +3603,7 @@ var propTypes$1d = {
3596
3603
  textStyle: PropTypes__default["default"].any
3597
3604
  };
3598
3605
  var styles$$ = StyleSheet.create({
3599
- body: css(_templateObject$10 || (_templateObject$10 = _taggedTemplateLiteral(["\n background-color: $body-bg;\n "]))),
3606
+ body: css(_templateObject$10 || (_templateObject$10 = _taggedTemplateLiteral(["\n background-color: $body-bg;\n height: 100%; // added for bootstrap-rn\n "]))),
3600
3607
  'body-text': css(_templateObject2$F || (_templateObject2$F = _taggedTemplateLiteral(["\n color: $body-color;\n text-align: $body-text-align;\n "])))
3601
3608
  });
3602
3609
  var Body = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
@@ -3614,12 +3621,12 @@ var Body = /*#__PURE__*/React__default["default"].forwardRef(function (props, re
3614
3621
  }), children);
3615
3622
  });
3616
3623
  Body.displayName = 'Body';
3617
- Body.propTypes = propTypes$1d;
3624
+ Body.propTypes = propTypes$1e;
3618
3625
 
3619
3626
  var _excluded$1c = ["children", "style", "textStyle"];
3620
3627
 
3621
3628
  var _templateObject$$, _templateObject2$E;
3622
- var propTypes$1c = {
3629
+ var propTypes$1d = {
3623
3630
  children: PropTypes__default["default"].node.isRequired,
3624
3631
  // eslint-disable-next-line react/forbid-prop-types
3625
3632
  style: PropTypes__default["default"].any,
@@ -3645,12 +3652,12 @@ var CardBody = /*#__PURE__*/React__default["default"].forwardRef(function (props
3645
3652
  }), children);
3646
3653
  });
3647
3654
  CardBody.displayName = 'CardBody';
3648
- CardBody.propTypes = propTypes$1c;
3655
+ CardBody.propTypes = propTypes$1d;
3649
3656
 
3650
3657
  var _excluded$1b = ["children", "style", "textStyle"];
3651
3658
 
3652
3659
  var _templateObject$_, _templateObject2$D;
3653
- var propTypes$1b = {
3660
+ var propTypes$1c = {
3654
3661
  children: PropTypes__default["default"].node.isRequired,
3655
3662
  // eslint-disable-next-line react/forbid-prop-types
3656
3663
  style: PropTypes__default["default"].any,
@@ -3676,12 +3683,12 @@ var CardHeader = /*#__PURE__*/React__default["default"].forwardRef(function (pro
3676
3683
  }), children);
3677
3684
  });
3678
3685
  CardHeader.displayName = 'CardHeader';
3679
- CardHeader.propTypes = propTypes$1b;
3686
+ CardHeader.propTypes = propTypes$1c;
3680
3687
 
3681
3688
  var _excluded$1a = ["children", "style", "textStyle"];
3682
3689
 
3683
3690
  var _templateObject$Z, _templateObject2$C;
3684
- var propTypes$1a = {
3691
+ var propTypes$1b = {
3685
3692
  children: PropTypes__default["default"].node.isRequired,
3686
3693
  // eslint-disable-next-line react/forbid-prop-types
3687
3694
  style: PropTypes__default["default"].any,
@@ -3707,12 +3714,12 @@ var CardFooter = /*#__PURE__*/React__default["default"].forwardRef(function (pro
3707
3714
  }), children);
3708
3715
  });
3709
3716
  CardFooter.displayName = 'CardFooter';
3710
- CardFooter.propTypes = propTypes$1a;
3717
+ CardFooter.propTypes = propTypes$1b;
3711
3718
 
3712
3719
  var _excluded$19 = ["children", "style"];
3713
3720
 
3714
3721
  var _templateObject$Y;
3715
- var propTypes$19 = {
3722
+ var propTypes$1a = {
3716
3723
  children: PropTypes__default["default"].node.isRequired,
3717
3724
  // eslint-disable-next-line react/forbid-prop-types
3718
3725
  style: PropTypes__default["default"].any
@@ -3732,15 +3739,21 @@ var Card = /*#__PURE__*/React__default["default"].forwardRef(function (props, re
3732
3739
  }), children);
3733
3740
  });
3734
3741
  Card.displayName = 'Card';
3735
- Card.propTypes = propTypes$19;
3742
+ Card.propTypes = propTypes$1a;
3736
3743
  Card.Header = CardHeader;
3737
3744
  Card.Body = CardBody;
3738
3745
  Card.Footer = CardFooter;
3739
3746
 
3747
+ var ModalContext = /*#__PURE__*/React__default["default"].createContext();
3748
+ ModalContext.displayName = 'ModalContext';
3749
+
3750
+ var OffcanvasContext = /*#__PURE__*/React__default["default"].createContext();
3751
+ OffcanvasContext.displayName = 'OffcanvasContext';
3752
+
3740
3753
  var _excluded$18 = ["children", "disabled", "style", "textStyle"];
3741
3754
 
3742
- var _templateObject$X, _templateObject2$B, _templateObject3$m;
3743
- var propTypes$18 = {
3755
+ var _templateObject$X, _templateObject2$B, _templateObject3$m, _templateObject4$k, _templateObject5$i;
3756
+ var propTypes$19 = {
3744
3757
  children: PropTypes__default["default"].node,
3745
3758
  disabled: PropTypes__default["default"].bool,
3746
3759
  // eslint-disable-next-line react/forbid-prop-types
@@ -3751,7 +3764,11 @@ var propTypes$18 = {
3751
3764
  var styles$W = StyleSheet.create({
3752
3765
  '.btn-close': css(_templateObject$X || (_templateObject$X = _taggedTemplateLiteral(["\n // Workaround for missing box-sizing in react native.\n $additional-width: $btn-close-padding-x * 2;\n $additional-height: $btn-close-padding-y * 2;\n\n // box-sizing: content-box;\n width: $btn-close-width + $additional-width;\n height: $btn-close-height + $additional-height;\n padding: $btn-close-padding-y $btn-close-padding-x;\n background: transparent;\n border-width: 0; // for button elements\n // @include border-radius();\n opacity: $btn-close-opacity;\n\n &:hover {\n opacity: $btn-close-hover-opacity;\n }\n\n &:focus {\n // outline: 0;\n // box-shadow: $btn-close-focus-shadow;\n opacity: $btn-close-focus-opacity;\n }\n "]))),
3753
3766
  '.btn-close-text': css(_templateObject2$B || (_templateObject2$B = _taggedTemplateLiteral(["\n color: $btn-close-color;\n\n // Override <a>'s hover style\n &:hover {\n color: $btn-close-color;\n text-decoration: none;\n }\n "]))),
3754
- '.btn-close-disabled': css(_templateObject3$m || (_templateObject3$m = _taggedTemplateLiteral(["\n // pointer-events: none;\n // user-select: none;\n opacity: $btn-close-disabled-opacity;\n "])))
3767
+ '.btn-close-disabled': css(_templateObject3$m || (_templateObject3$m = _taggedTemplateLiteral(["\n // pointer-events: none;\n // user-select: none;\n opacity: $btn-close-disabled-opacity;\n "]))),
3768
+ // Modal styles
3769
+ '.modal-header .btn-close': css(_templateObject4$k || (_templateObject4$k = _taggedTemplateLiteral(["\n padding: $modal-header-padding-y * 0.5 $modal-header-padding-x * 0.5;\n margin: -0.5 * $modal-header-padding-y -0.5 * $modal-header-padding-x -0.5 *\n $modal-header-padding-y auto;\n\n // Workaround for missing box-sizing in react native.\n width: $btn-close-width + $modal-header-padding-x;\n height: $btn-close-height + $modal-header-padding-y;\n "]))),
3770
+ // Offcanvas styles
3771
+ '.offcanvas-header .btn-close': css(_templateObject5$i || (_templateObject5$i = _taggedTemplateLiteral(["\n padding: $offcanvas-padding-y * 0.5 $offcanvas-padding-x * 0.5;\n margin-top: -0.5 * $offcanvas-padding-y;\n margin-right: -0.5 * $offcanvas-padding-x;\n margin-bottom: -0.5 * $offcanvas-padding-y;\n\n // Workaround for missing box-sizing in react native.\n width: $btn-close-width + $offcanvas-padding-x;\n height: $btn-close-height + $offcanvas-padding-y;\n "])))
3755
3772
  });
3756
3773
  var CloseButton = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
3757
3774
  props.children;
@@ -3761,7 +3778,11 @@ var CloseButton = /*#__PURE__*/React__default["default"].forwardRef(function (pr
3761
3778
  textStyle = props.textStyle,
3762
3779
  elementProps = _objectWithoutProperties(props, _excluded$18);
3763
3780
 
3764
- var classes = getStyles(styles$W, ['.btn-close', disabled && '.btn-close-disabled']);
3781
+ var modal = React.useContext(ModalContext);
3782
+ var offcanvas = React.useContext(OffcanvasContext);
3783
+ var classes = getStyles(styles$W, ['.btn-close', disabled && '.btn-close-disabled', // Modal styles
3784
+ modal && '.modal-header .btn-close', // Offcanvas styles
3785
+ offcanvas && '.offcanvas-header .btn-close']);
3765
3786
  var textClasses = getStyles(styles$W, ['.btn-close-text']);
3766
3787
  return /*#__PURE__*/React__default["default"].createElement(Pressable, _extends({}, elementProps, {
3767
3788
  ref: ref,
@@ -3771,7 +3792,7 @@ var CloseButton = /*#__PURE__*/React__default["default"].forwardRef(function (pr
3771
3792
  }), StyleSheet.value('btn-close-bg'));
3772
3793
  });
3773
3794
  CloseButton.displayName = 'CloseButton';
3774
- CloseButton.propTypes = propTypes$18;
3795
+ CloseButton.propTypes = propTypes$19;
3775
3796
 
3776
3797
  var CollapseContext = /*#__PURE__*/React__default["default"].createContext();
3777
3798
  CollapseContext.displayName = 'CollapseContext';
@@ -3830,7 +3851,7 @@ function useCollapse(defaultVisible, controlledVisible, onToggle) {
3830
3851
  }, [visible]);
3831
3852
  }
3832
3853
 
3833
- var propTypes$17 = {
3854
+ var propTypes$18 = {
3834
3855
  children: PropTypes__default["default"].node.isRequired,
3835
3856
  defaultVisible: PropTypes__default["default"].bool,
3836
3857
  visible: PropTypes__default["default"].bool,
@@ -3850,7 +3871,7 @@ var CollapseProvider = function CollapseProvider(props) {
3850
3871
  };
3851
3872
 
3852
3873
  CollapseProvider.displayName = 'CollapseProvider';
3853
- CollapseProvider.propTypes = propTypes$17;
3874
+ CollapseProvider.propTypes = propTypes$18;
3854
3875
 
3855
3876
  var _excluded$17 = ["onPress"];
3856
3877
  function useToggleCollapse(props) {
@@ -3872,7 +3893,7 @@ function useToggleCollapse(props) {
3872
3893
  }
3873
3894
 
3874
3895
  var _excluded$16 = ["children"];
3875
- var propTypes$16 = {
3896
+ var propTypes$17 = {
3876
3897
  children: PropTypes__default["default"].node
3877
3898
  };
3878
3899
  var Collapse = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
@@ -3893,7 +3914,7 @@ var Collapse = /*#__PURE__*/React__default["default"].forwardRef(function (props
3893
3914
  }), children);
3894
3915
  });
3895
3916
  Collapse.displayName = 'Collapse';
3896
- Collapse.propTypes = propTypes$16;
3917
+ Collapse.propTypes = propTypes$17;
3897
3918
  Collapse.Provider = CollapseProvider;
3898
3919
  Collapse.useToggle = useToggleCollapse;
3899
3920
 
@@ -3920,8 +3941,8 @@ NavbarContext.displayName = 'NavbarContext';
3920
3941
 
3921
3942
  var _excluded$15 = ["fluid", "style"];
3922
3943
 
3923
- var _templateObject$W, _templateObject2$A, _templateObject3$l, _templateObject4$i, _templateObject5$g, _templateObject6$e, _templateObject7$a, _templateObject8$9;
3924
- var propTypes$15 = {
3944
+ var _templateObject$W, _templateObject2$A, _templateObject3$l, _templateObject4$j, _templateObject5$h, _templateObject6$f, _templateObject7$b, _templateObject8$a;
3945
+ var propTypes$16 = {
3925
3946
  children: PropTypes__default["default"].node.isRequired,
3926
3947
  fluid: PropTypes__default["default"].oneOf([true].concat(_toConsumableArray(Object.keys(CONTAINER_MAX_WIDTHS)))),
3927
3948
  // eslint-disable-next-line react/forbid-prop-types
@@ -3949,25 +3970,25 @@ var styles$V = StyleSheet.create(_objectSpread2({
3949
3970
  }, function (t) {
3950
3971
  return t['container-max-widths'].xxl;
3951
3972
  }),
3952
- '.container-lg': css(_templateObject4$i || (_templateObject4$i = _taggedTemplateLiteral(["\n @include media-breakpoint-up(lg) {\n max-width: ", ";\n }\n @include media-breakpoint-up(xl) {\n max-width: ", ";\n }\n @include media-breakpoint-up(xxl) {\n max-width: ", ";\n }\n "])), function (t) {
3973
+ '.container-lg': css(_templateObject4$j || (_templateObject4$j = _taggedTemplateLiteral(["\n @include media-breakpoint-up(lg) {\n max-width: ", ";\n }\n @include media-breakpoint-up(xl) {\n max-width: ", ";\n }\n @include media-breakpoint-up(xxl) {\n max-width: ", ";\n }\n "])), function (t) {
3953
3974
  return t['container-max-widths'].lg;
3954
3975
  }, function (t) {
3955
3976
  return t['container-max-widths'].xl;
3956
3977
  }, function (t) {
3957
3978
  return t['container-max-widths'].xxl;
3958
3979
  }),
3959
- '.container-xl': css(_templateObject5$g || (_templateObject5$g = _taggedTemplateLiteral(["\n @include media-breakpoint-up(xl) {\n max-width: ", ";\n }\n @include media-breakpoint-up(xxl) {\n max-width: ", ";\n }\n "])), function (t) {
3980
+ '.container-xl': css(_templateObject5$h || (_templateObject5$h = _taggedTemplateLiteral(["\n @include media-breakpoint-up(xl) {\n max-width: ", ";\n }\n @include media-breakpoint-up(xxl) {\n max-width: ", ";\n }\n "])), function (t) {
3960
3981
  return t['container-max-widths'].xl;
3961
3982
  }, function (t) {
3962
3983
  return t['container-max-widths'].xxl;
3963
3984
  }),
3964
- '.container-xxl': css(_templateObject6$e || (_templateObject6$e = _taggedTemplateLiteral(["\n @include media-breakpoint-up(xxl) {\n max-width: ", ";\n }\n "])), function (t) {
3985
+ '.container-xxl': css(_templateObject6$f || (_templateObject6$f = _taggedTemplateLiteral(["\n @include media-breakpoint-up(xxl) {\n max-width: ", ";\n }\n "])), function (t) {
3965
3986
  return t['container-max-widths'].xxl;
3966
3987
  }),
3967
3988
  // Navbar styles
3968
- '.navbar .container': css(_templateObject7$a || (_templateObject7$a = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row; // added for bootstrap-rn\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n "])))
3989
+ '.navbar .container': css(_templateObject7$b || (_templateObject7$b = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row; // added for bootstrap-rn\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n "])))
3969
3990
  }, each(GRID_BREAKPOINTS, function (breakpoint) {
3970
- return _defineProperty({}, ".navbar-expand".concat(infix(next(breakpoint)), " .container"), css(_templateObject8$9 || (_templateObject8$9 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n flex-wrap: nowrap;\n }\n "])), next(breakpoint)));
3991
+ return _defineProperty({}, ".navbar-expand".concat(infix(next(breakpoint)), " .container"), css(_templateObject8$a || (_templateObject8$a = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n flex-wrap: nowrap;\n }\n "])), next(breakpoint)));
3971
3992
  })));
3972
3993
  var Container = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
3973
3994
  var _props$fluid = props.fluid,
@@ -3985,12 +4006,12 @@ var Container = /*#__PURE__*/React__default["default"].forwardRef(function (prop
3985
4006
  }));
3986
4007
  });
3987
4008
  Container.displayName = 'Container';
3988
- Container.propTypes = propTypes$15;
4009
+ Container.propTypes = propTypes$16;
3989
4010
 
3990
- var _excluded$14 = ["children", "type", "value", "onChange", "onPress", "label", "disabled", "valid", "invalid", "style", "inputStyle", "labelStyle"];
4011
+ var _excluded$14 = ["children", "type", "value", "onChange", "onPress", "label", "disabled", "valid", "invalid", "style", "inputStyle", "labelStyle", "labelTextStyle"];
3991
4012
 
3992
- var _templateObject$V, _templateObject2$z, _templateObject3$k, _templateObject4$h, _templateObject5$f, _templateObject6$d, _templateObject7$9, _templateObject8$8, _templateObject9$5, _templateObject10$5, _templateObject11$4, _templateObject12$3, _templateObject13$3;
3993
- var propTypes$14 = {
4013
+ var _templateObject$V, _templateObject2$z, _templateObject3$k, _templateObject4$i, _templateObject5$g, _templateObject6$e, _templateObject7$a, _templateObject8$9, _templateObject9$7, _templateObject10$7, _templateObject11$5, _templateObject12$4, _templateObject13$4;
4014
+ var propTypes$15 = {
3994
4015
  children: PropTypes__default["default"].node,
3995
4016
  type: PropTypes__default["default"].oneOf(['checkbox', 'radio', 'switch']).isRequired,
3996
4017
  value: PropTypes__default["default"].bool.isRequired,
@@ -4005,27 +4026,29 @@ var propTypes$14 = {
4005
4026
  // eslint-disable-next-line react/forbid-prop-types
4006
4027
  inputStyle: PropTypes__default["default"].any,
4007
4028
  // eslint-disable-next-line react/forbid-prop-types
4008
- labelStyle: PropTypes__default["default"].any
4029
+ labelStyle: PropTypes__default["default"].any,
4030
+ // eslint-disable-next-line react/forbid-prop-types
4031
+ labelTextStyle: PropTypes__default["default"].any
4009
4032
  };
4010
4033
  var styles$U = StyleSheet.create(_objectSpread2({
4011
4034
  '.form-check': css(_templateObject$V || (_templateObject$V = _taggedTemplateLiteral(["\n // display: block;\n flex-direction: row; // added for bootstrap-rn\n min-height: $form-check-min-height;\n padding-left: $form-check-padding-start;\n margin-bottom: $form-check-margin-bottom;\n "]))),
4012
4035
  '.form-check-disabled': css(_templateObject2$z || (_templateObject2$z = _taggedTemplateLiteral(["\n opacity: $form-check-label-disabled-opacity;\n "]))),
4013
4036
  '.form-check-input': css(_templateObject3$k || (_templateObject3$k = _taggedTemplateLiteral(["\n // Use additional variables instead of brackets, because brackets not supported yet.\n $lineHeight: $line-height-base * 1rem;\n $rawMarginTop: $lineHeight - $form-check-input-width;\n\n // float: left;\n margin-left: $form-check-padding-start * -1;\n margin-right: $form-check-padding-start - $form-check-input-width; // added for bootstrap-rn\n\n width: $form-check-input-width;\n height: $form-check-input-width;\n margin-top: $rawMarginTop * 0.5; // line-height minus check height\n // vertical-align: top;\n background-color: $form-check-input-bg;\n // background-repeat: no-repeat;\n // background-position: center;\n // background-size: contain;\n border: $form-check-input-border;\n @include platform(web) {\n appearance: none;\n user-select: none; // added for bootstrap-rn\n }\n // color-adjust: exact; // Keep themed appearance for print\n // @include transition($form-check-transition);\n\n &:active {\n // filter: $form-check-input-active-filter;\n }\n\n &:focus {\n border-color: $form-check-input-focus-border;\n // outline: 0;\n // box-shadow: $form-check-input-focus-box-shadow;\n }\n "]))),
4014
- '.form-check-input-checkbox': css(_templateObject4$h || (_templateObject4$h = _taggedTemplateLiteral(["\n border-radius: $form-check-input-border-radius;\n "]))),
4015
- '.form-check-input-radio': css(_templateObject5$f || (_templateObject5$f = _taggedTemplateLiteral(["\n border-radius: $form-check-radio-border-radius;\n "]))),
4016
- '.form-check-input-checked': css(_templateObject6$d || (_templateObject6$d = _taggedTemplateLiteral(["\n background-color: $form-check-input-checked-bg-color;\n border-color: $form-check-input-checked-border-color;\n "]))),
4017
- '.form-check-label': css(_templateObject7$9 || (_templateObject7$9 = _taggedTemplateLiteral(["\n color: $form-check-label-color;\n @include platform(web) {\n cursor: $form-check-label-cursor;\n }\n "]))),
4018
- '.form-switch': css(_templateObject8$8 || (_templateObject8$8 = _taggedTemplateLiteral(["\n padding-left: $form-switch-padding-start;\n "]))),
4019
- '.form-check-input-switch': css(_templateObject9$5 || (_templateObject9$5 = _taggedTemplateLiteral(["\n width: $form-switch-width;\n margin-left: $form-switch-padding-start * -1;\n margin-right: $form-switch-padding-start - $form-switch-width; // added for bootstrap-rn\n border-radius: $form-switch-border-radius;\n // @include transition($form-switch-transition);\n align-items: flex-start; // added for bootstrap-rn\n justify-content: center; // added for bootstrap-rn\n "]))),
4020
- '.form-check-input-switch-checked': css(_templateObject10$5 || (_templateObject10$5 = _taggedTemplateLiteral(["\n align-items: flex-end; // added for bootstrap-rn\n justify-content: center; // added for bootstrap-rn\n "])))
4037
+ '.form-check-input-checkbox': css(_templateObject4$i || (_templateObject4$i = _taggedTemplateLiteral(["\n border-radius: $form-check-input-border-radius;\n "]))),
4038
+ '.form-check-input-radio': css(_templateObject5$g || (_templateObject5$g = _taggedTemplateLiteral(["\n border-radius: $form-check-radio-border-radius;\n "]))),
4039
+ '.form-check-input-checked': css(_templateObject6$e || (_templateObject6$e = _taggedTemplateLiteral(["\n background-color: $form-check-input-checked-bg-color;\n border-color: $form-check-input-checked-border-color;\n "]))),
4040
+ '.form-check-label': css(_templateObject7$a || (_templateObject7$a = _taggedTemplateLiteral(["\n color: $form-check-label-color;\n @include platform(web) {\n cursor: $form-check-label-cursor;\n }\n "]))),
4041
+ '.form-switch': css(_templateObject8$9 || (_templateObject8$9 = _taggedTemplateLiteral(["\n padding-left: $form-switch-padding-start;\n "]))),
4042
+ '.form-check-input-switch': css(_templateObject9$7 || (_templateObject9$7 = _taggedTemplateLiteral(["\n width: $form-switch-width;\n margin-left: $form-switch-padding-start * -1;\n margin-right: $form-switch-padding-start - $form-switch-width; // added for bootstrap-rn\n border-radius: $form-switch-border-radius;\n // @include transition($form-switch-transition);\n align-items: flex-start; // added for bootstrap-rn\n justify-content: center; // added for bootstrap-rn\n "]))),
4043
+ '.form-check-input-switch-checked': css(_templateObject10$7 || (_templateObject10$7 = _taggedTemplateLiteral(["\n align-items: flex-end; // added for bootstrap-rn\n justify-content: center; // added for bootstrap-rn\n "])))
4021
4044
  }, each(FORM_VALIDATION_STATES, function (state, data) {
4022
4045
  var _ref;
4023
4046
 
4024
- return _ref = {}, _defineProperty(_ref, ".form-check-input.is-".concat(state), css(_templateObject11$4 || (_templateObject11$4 = _taggedTemplateLiteral(["\n border: ", ";\n\n &:focus {\n // box-shadow: $focus-box-shadow;\n }\n "])), function (t) {
4047
+ return _ref = {}, _defineProperty(_ref, ".form-check-input.is-".concat(state), css(_templateObject11$5 || (_templateObject11$5 = _taggedTemplateLiteral(["\n border: ", ";\n\n &:focus {\n // box-shadow: $focus-box-shadow;\n }\n "])), function (t) {
4025
4048
  return data(t).color;
4026
- })), _defineProperty(_ref, ".form-check-input-checked.is-".concat(state), css(_templateObject12$3 || (_templateObject12$3 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), function (t) {
4049
+ })), _defineProperty(_ref, ".form-check-input-checked.is-".concat(state), css(_templateObject12$4 || (_templateObject12$4 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), function (t) {
4027
4050
  return data(t).color;
4028
- })), _defineProperty(_ref, ".form-check-label.is-".concat(state), css(_templateObject13$3 || (_templateObject13$3 = _taggedTemplateLiteral(["\n color: ", ";\n "])), function (t) {
4051
+ })), _defineProperty(_ref, ".form-check-label.is-".concat(state), css(_templateObject13$4 || (_templateObject13$4 = _taggedTemplateLiteral(["\n color: ", ";\n "])), function (t) {
4029
4052
  return data(t).color;
4030
4053
  })), _ref;
4031
4054
  })));
@@ -4067,6 +4090,7 @@ var CheckInput = /*#__PURE__*/React__default["default"].forwardRef(function (pro
4067
4090
  style = modifierProps.style,
4068
4091
  inputStyle = modifierProps.inputStyle,
4069
4092
  labelStyle = modifierProps.labelStyle,
4093
+ labelTextStyle = modifierProps.labelTextStyle,
4070
4094
  elementProps = _objectWithoutProperties(modifierProps, _excluded$14);
4071
4095
 
4072
4096
  if (!children && !label) {
@@ -4076,7 +4100,7 @@ var CheckInput = /*#__PURE__*/React__default["default"].forwardRef(function (pro
4076
4100
 
4077
4101
  var classes = getStyles(styles$U, ['.form-check', type === 'switch' && '.form-switch', disabled && '.form-check-disabled']);
4078
4102
  var inputClasses = getStyles(styles$U, ['.form-check-input', type === 'checkbox' && '.form-check-input-checkbox', type === 'radio' && '.form-check-input-radio', type === 'switch' && '.form-check-input-switch', value && '.form-check-input-checked', type === 'switch' && value && '.form-check-input-switch-checked', valid && '.form-check-input.is-valid', valid && value && '.form-check-input-checked.is-valid', invalid && '.form-check-input.is-invalid', invalid && value && '.form-check-input-checked.is-invalid']);
4079
- var labelClasses = getStyles(styles$U, ['.form-check-label', valid && '.form-check-label.is-valid', invalid && '.form-check-label.is-invalid']); // TODO &:focus, &:active
4103
+ var labelTextClasses = getStyles(styles$U, ['.form-check-label', valid && '.form-check-label.is-valid', invalid && '.form-check-label.is-invalid']); // TODO &:focus, &:active
4080
4104
 
4081
4105
  return /*#__PURE__*/React__default["default"].createElement(Pressable, _extends({}, elementProps, {
4082
4106
  ref: modifierRef,
@@ -4090,12 +4114,13 @@ var CheckInput = /*#__PURE__*/React__default["default"].forwardRef(function (pro
4090
4114
  style: [classes, style]
4091
4115
  }), /*#__PURE__*/React__default["default"].createElement(View, {
4092
4116
  style: [inputClasses, inputStyle]
4093
- }, getSvg(type, value)), children && /*#__PURE__*/React__default["default"].createElement(Text, {
4094
- style: [labelClasses, labelStyle]
4117
+ }, getSvg(type, value)), children && /*#__PURE__*/React__default["default"].createElement(View, {
4118
+ style: labelStyle,
4119
+ textStyle: [labelTextClasses, labelTextStyle]
4095
4120
  }, children));
4096
4121
  });
4097
4122
  CheckInput.displayName = 'CheckInput';
4098
- CheckInput.propTypes = propTypes$14;
4123
+ CheckInput.propTypes = propTypes$15;
4099
4124
 
4100
4125
  var Checkbox = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
4101
4126
  var elementProps = _extends({}, props);
@@ -4109,11 +4134,11 @@ Checkbox.displayName = 'Checkbox';
4109
4134
 
4110
4135
  var _excluded$13 = ["children", "size", "sizeSm", "sizeMd", "sizeLg", "sizeXl", "style"];
4111
4136
 
4112
- var _templateObject$U, _templateObject2$y, _templateObject3$j, _templateObject4$g, _templateObject5$e;
4137
+ var _templateObject$U, _templateObject2$y, _templateObject3$j, _templateObject4$h, _templateObject5$f;
4113
4138
  var sizes = makeArray(GRID_COLUMNS).map(function (v) {
4114
4139
  return v + 1;
4115
4140
  });
4116
- var propTypes$13 = {
4141
+ var propTypes$14 = {
4117
4142
  children: PropTypes__default["default"].node.isRequired,
4118
4143
  size: PropTypes__default["default"].oneOf(['auto'].concat(_toConsumableArray(sizes))),
4119
4144
  sizeSm: PropTypes__default["default"].oneOf(['auto'].concat(_toConsumableArray(sizes))),
@@ -4124,14 +4149,14 @@ var propTypes$13 = {
4124
4149
  style: PropTypes__default["default"].any
4125
4150
  };
4126
4151
  var styles$T = StyleSheet.create(_objectSpread2({
4127
- '*': css(_templateObject$U || (_templateObject$U = _taggedTemplateLiteral(["\n // Add box sizing if only the grid is loaded\n /* box-sizing: if(\n variable-exists(include-column-box-sizing) and $include-column-box-sizing,\n border-box,\n null\n ); */\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting \"width: 100%;\". This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent \".col-auto\", \".col\" (& responsive variants) from breaking out the grid\n padding-right: $grid-gutter-width * 0.5;\n padding-left: $grid-gutter-width * 0.5;\n margin-top: 0;\n "])))
4152
+ '*': css(_templateObject$U || (_templateObject$U = _taggedTemplateLiteral(["\n // Add box sizing if only the grid is loaded\n /* box-sizing: if(\n variable-exists(include-column-box-sizing) and $include-column-box-sizing,\n border-box,\n null\n ); */\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting \"width: 100%;\". This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n @include platform(web) {\n max-width: 100%; // Prevent \".col-auto\", \".col\" (& responsive variants) from breaking out the grid\n }\n padding-right: $grid-gutter-width * 0.5;\n padding-left: $grid-gutter-width * 0.5;\n margin-top: 0;\n "])))
4128
4153
  }, each(GRID_BREAKPOINTS, function (breakpoint) {
4129
4154
  var _objectSpread2$1;
4130
4155
 
4131
4156
  return _objectSpread2((_objectSpread2$1 = {}, _defineProperty(_objectSpread2$1, ".col".concat(infix(breakpoint)), css(_templateObject2$y || (_templateObject2$y = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n "])), breakpoint)), _defineProperty(_objectSpread2$1, ".col".concat(infix(breakpoint), "-auto"), css(_templateObject3$j || (_templateObject3$j = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n flex: 0 0 auto;\n width: auto;\n }\n "])), breakpoint)), _objectSpread2$1), normalize$1(makeArray(GRID_COLUMNS - 1, function (i) {
4132
4157
  var _ref;
4133
4158
 
4134
- return _ref = {}, _defineProperty(_ref, ".col".concat(infix(breakpoint), "-").concat(i + 1), css(_templateObject4$g || (_templateObject4$g = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n flex: 0 0 auto;\n width: ", "%;\n }\n "])), breakpoint, (i + 1) / GRID_COLUMNS * 100)), _defineProperty(_ref, ".offset".concat(infix(breakpoint), "-").concat(i), css(_templateObject5$e || (_templateObject5$e = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n margin-left: ", "%;\n }\n "])), breakpoint, i / GRID_COLUMNS * 100)), _ref;
4159
+ return _ref = {}, _defineProperty(_ref, ".col".concat(infix(breakpoint), "-").concat(i + 1), css(_templateObject4$h || (_templateObject4$h = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n flex: 0 0 auto;\n width: ", "%;\n }\n "])), breakpoint, (i + 1) / GRID_COLUMNS * 100)), _defineProperty(_ref, ".offset".concat(infix(breakpoint), "-").concat(i), css(_templateObject5$f || (_templateObject5$f = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n margin-left: ", "%;\n }\n "])), breakpoint, i / GRID_COLUMNS * 100)), _ref;
4135
4160
  })));
4136
4161
  })));
4137
4162
  var Col = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
@@ -4151,12 +4176,12 @@ var Col = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref
4151
4176
  }), children);
4152
4177
  });
4153
4178
  Col.displayName = 'Col';
4154
- Col.propTypes = propTypes$13;
4179
+ Col.propTypes = propTypes$14;
4155
4180
 
4156
4181
  var _excluded$12 = ["children", "style"];
4157
4182
 
4158
4183
  var _templateObject$T;
4159
- var propTypes$12 = {
4184
+ var propTypes$13 = {
4160
4185
  children: PropTypes__default["default"].node.isRequired,
4161
4186
  // eslint-disable-next-line react/forbid-prop-types
4162
4187
  style: PropTypes__default["default"].any
@@ -4179,11 +4204,44 @@ var Code = /*#__PURE__*/React__default["default"].forwardRef(function (props, re
4179
4204
  }), children);
4180
4205
  });
4181
4206
  Code.displayName = 'Code';
4182
- Code.propTypes = propTypes$12;
4207
+ Code.propTypes = propTypes$13;
4183
4208
 
4184
4209
  var DropdownContext = /*#__PURE__*/React__default["default"].createContext();
4185
4210
  DropdownContext.displayName = 'DropdownContext';
4186
4211
 
4212
+ var _excluded$11 = ["onPress"];
4213
+ function useToggleDropdown(props) {
4214
+ var context = useForcedContext(DropdownContext);
4215
+
4216
+ var handlePress = props.onPress,
4217
+ restProps = _objectWithoutProperties(props, _excluded$11);
4218
+
4219
+ return _objectSpread2(_objectSpread2({}, restProps), {}, {
4220
+ nativeID: context.identifier,
4221
+ ref: context.toggleRef,
4222
+ onPress: function onPress(event) {
4223
+ if (handlePress) handlePress(event);
4224
+ context.setVisible(function (value) {
4225
+ return !value;
4226
+ });
4227
+ },
4228
+ accessibilityHasPopup: true,
4229
+ accessibilityExpanded: context.visible
4230
+ });
4231
+ }
4232
+
4233
+ var propTypes$12 = {
4234
+ children: PropTypes__default["default"].func.isRequired
4235
+ };
4236
+
4237
+ var DropdownToggle = function DropdownToggle(props) {
4238
+ var children = props.children;
4239
+ return children(useToggleDropdown({}));
4240
+ };
4241
+
4242
+ DropdownToggle.displayName = 'DropdownToggle';
4243
+ DropdownToggle.propTypes = propTypes$12;
4244
+
4187
4245
  var propTypes$11 = {
4188
4246
  children: PropTypes__default["default"].func.isRequired,
4189
4247
  placement: PropTypes__default["default"].string.isRequired,
@@ -4234,37 +4292,64 @@ Overlay.propTypes = propTypes$11;
4234
4292
 
4235
4293
  var _templateObject$S;
4236
4294
  var propTypes$10 = {
4295
+ toggleRef: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
4237
4296
  dialogRef: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
4238
4297
  onClose: PropTypes__default["default"].func,
4298
+ autoClose: PropTypes__default["default"].oneOfType([PropTypes__default["default"].bool, PropTypes__default["default"].oneOf(['inside', 'outside'])]),
4239
4299
  backdrop: PropTypes__default["default"].oneOfType([PropTypes__default["default"].bool, PropTypes__default["default"].oneOf(['static'])])
4240
4300
  };
4241
4301
  var styles$R = StyleSheet.create({
4242
4302
  handler: css(_templateObject$S || (_templateObject$S = _taggedTemplateLiteral(["\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n position: absolute;\n flex-grow: 1;\n "])))
4243
4303
  });
4304
+ var initialState = {
4305
+ waitingForMouseUp: false,
4306
+ isDialogClick: false
4307
+ };
4244
4308
 
4245
4309
  var BackdropHandler = function BackdropHandler(props) {
4246
- var dialogRef = props.dialogRef,
4310
+ var toggleRef = props.toggleRef,
4311
+ dialogRef = props.dialogRef,
4247
4312
  handleClose = props.onClose,
4248
4313
  _props$backdrop = props.backdrop,
4249
- backdrop = _props$backdrop === void 0 ? true : _props$backdrop;
4314
+ backdrop = _props$backdrop === void 0 ? true : _props$backdrop,
4315
+ _props$autoClose = props.autoClose,
4316
+ autoClose = _props$autoClose === void 0 ? 'outside' : _props$autoClose;
4250
4317
 
4251
4318
  if (reactNative.Platform.OS === 'web') {
4252
- var waitingForMouseUp = React.useRef(false);
4253
- var ignoreBackdropClick = React.useRef(false);
4319
+ var state = React.useMemo(function () {
4320
+ return initialState;
4321
+ }, []);
4254
4322
  React.useEffect(function () {
4323
+ var toggle = toggleRef ? reactNative.findNodeHandle(toggleRef.current) : undefined;
4255
4324
  var dialog = reactNative.findNodeHandle(dialogRef.current);
4256
4325
 
4257
4326
  var handleDialogMouseDown = function handleDialogMouseDown() {
4258
- waitingForMouseUp.current = true;
4327
+ state.waitingForMouseUp = true;
4259
4328
  };
4260
4329
 
4261
- var handleDocumentClick = function handleDocumentClick() {
4262
- if (backdrop === 'static') {
4330
+ var handleDocumentClick = function handleDocumentClick(_ref) {
4331
+ var target = _ref.target;
4332
+
4333
+ if (backdrop === 'static' || autoClose === false) {
4263
4334
  return;
4264
- }
4335
+ } // Click outside -> return if autoClose is inside.
4265
4336
 
4266
- if (ignoreBackdropClick.current) {
4267
- ignoreBackdropClick.current = false;
4337
+
4338
+ if (!state.isDialogClick && autoClose === 'inside') {
4339
+ return;
4340
+ } // Click inside / on dialog -> return if autoClose is outside.
4341
+
4342
+
4343
+ if (state.isDialogClick) {
4344
+ state.isDialogClick = false;
4345
+
4346
+ if (autoClose === 'outside') {
4347
+ return;
4348
+ }
4349
+ } // Click on toggle -> return always.
4350
+
4351
+
4352
+ if (toggle && (target === toggle || toggle.contains(target))) {
4268
4353
  return;
4269
4354
  }
4270
4355
 
@@ -4272,22 +4357,23 @@ var BackdropHandler = function BackdropHandler(props) {
4272
4357
  };
4273
4358
 
4274
4359
  var handleDocumentMouseUp = function handleDocumentMouseUp() {
4275
- if (waitingForMouseUp.current) {
4276
- ignoreBackdropClick.current = true;
4360
+ if (state.waitingForMouseUp) {
4361
+ state.isDialogClick = true;
4277
4362
  }
4278
4363
 
4279
- waitingForMouseUp.current = false;
4364
+ state.waitingForMouseUp = false;
4280
4365
  };
4281
4366
 
4282
- dialog.addEventListener('mousedown', handleDialogMouseDown);
4283
- document.addEventListener('click', handleDocumentClick);
4284
- document.addEventListener('mouseup', handleDocumentMouseUp);
4367
+ dialog.addEventListener('mousedown', handleDialogMouseDown); // See https://github.com/necolas/react-native-web/issues/2115
4368
+
4369
+ document.addEventListener('click', handleDocumentClick, true);
4370
+ document.addEventListener('mouseup', handleDocumentMouseUp, true);
4285
4371
  return function () {
4286
4372
  dialog.addEventListener('mousedown', handleDialogMouseDown);
4287
- document.removeEventListener('click', handleDocumentClick);
4288
- document.removeEventListener('mouseup', handleDocumentMouseUp);
4373
+ document.removeEventListener('click', handleDocumentClick, true);
4374
+ document.removeEventListener('mouseup', handleDocumentMouseUp, true);
4289
4375
  };
4290
- }, [backdrop]);
4376
+ }, [backdrop, autoClose]);
4291
4377
  return null;
4292
4378
  }
4293
4379
 
@@ -4308,9 +4394,9 @@ var BackdropHandler = function BackdropHandler(props) {
4308
4394
  BackdropHandler.displayName = 'BackdropHandler';
4309
4395
  BackdropHandler.propTypes = propTypes$10;
4310
4396
 
4311
- var _excluded$11 = ["children", "start", "end", "style", "textStyle"];
4397
+ var _excluded$10 = ["children", "start", "end", "style", "textStyle"];
4312
4398
 
4313
- var _templateObject$R, _templateObject2$x, _templateObject3$i;
4399
+ var _templateObject$R, _templateObject2$x, _templateObject3$i, _templateObject4$g, _templateObject5$e, _templateObject6$d, _templateObject7$9, _templateObject8$8, _templateObject9$6, _templateObject10$6;
4314
4400
  var ALIGNMENT_BREAKPOINTS = [true, 'sm', 'md', 'lg', 'xl', 'xxl'];
4315
4401
  var propTypes$$ = {
4316
4402
  children: PropTypes__default["default"].node.isRequired,
@@ -4321,11 +4407,23 @@ var propTypes$$ = {
4321
4407
  // eslint-disable-next-line react/forbid-prop-types
4322
4408
  textStyle: PropTypes__default["default"].any
4323
4409
  };
4324
- var styles$Q = StyleSheet.create({
4410
+ var styles$Q = StyleSheet.create(_objectSpread2(_objectSpread2(_objectSpread2({
4325
4411
  '.dropdown-menu': css(_templateObject$R || (_templateObject$R = _taggedTemplateLiteral(["\n position: absolute;\n z-index: $zindex-dropdown;\n // display: none; // none by default, but block on \"open\" of the menu\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y $dropdown-padding-x;\n margin: 0; // Override default margin of ul\n // list-style: none;\n background-color: $dropdown-bg;\n // background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n border-radius: $dropdown-border-radius;\n // @include box-shadow($dropdown-box-shadow);\n "]))),
4326
- '.dropdown-menu-text': css(_templateObject2$x || (_templateObject2$x = _taggedTemplateLiteral(["\n font-size: $dropdown-font-size;\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n "]))),
4327
- backdrop: css(_templateObject3$i || (_templateObject3$i = _taggedTemplateLiteral(["\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n position: absolute;\n flex-grow: 1;\n "])))
4328
- });
4412
+ '.dropdown-menu[data-bs-popper]': css(_templateObject2$x || (_templateObject2$x = _taggedTemplateLiteral(["\n top: 100%;\n left: 0;\n margin-top: $dropdown-spacer;\n "])))
4413
+ }, each(GRID_BREAKPOINTS, function (breakpoint) {
4414
+ var _ref;
4415
+
4416
+ return _ref = {}, _defineProperty(_ref, ".dropdown-menu".concat(infix(breakpoint), "-start[data-bs-popper]"), css(_templateObject3$i || (_templateObject3$i = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n right: auto;\n left: 0;\n }\n "])), breakpoint)), _defineProperty(_ref, ".dropdown-menu".concat(infix(breakpoint), "-end[data-bs-popper]"), css(_templateObject4$g || (_templateObject4$g = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n right: 0;\n left: auto;\n }\n "])), breakpoint)), _ref;
4417
+ })), {}, {
4418
+ '.dropup .dropdown-menu[data-bs-popper]': css(_templateObject5$e || (_templateObject5$e = _taggedTemplateLiteral(["\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n "]))),
4419
+ '.dropend .dropdown-menu[data-bs-popper]': css(_templateObject6$d || (_templateObject6$d = _taggedTemplateLiteral(["\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n "]))),
4420
+ '.dropstart .dropdown-menu[data-bs-popper]': css(_templateObject7$9 || (_templateObject7$9 = _taggedTemplateLiteral(["\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n "]))),
4421
+ '.navbar-nav .dropdown-menu': css(_templateObject8$8 || (_templateObject8$8 = _taggedTemplateLiteral(["\n position: relative; // static;\n "])))
4422
+ }, each(GRID_BREAKPOINTS, function (breakpoint) {
4423
+ return _defineProperty({}, ".navbar-expand".concat(infix(next(breakpoint)), " .navbar-nav .dropdown-menu"), css(_templateObject9$6 || (_templateObject9$6 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n position: absolute;\n }\n "])), next(breakpoint)));
4424
+ })), {}, {
4425
+ '.dropdown-menu-text': css(_templateObject10$6 || (_templateObject10$6 = _taggedTemplateLiteral(["\n font-size: $dropdown-font-size;\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n "])))
4426
+ }));
4329
4427
 
4330
4428
  var getAlignment = function getAlignment(media, start, end) {
4331
4429
  var alignStart = typeof start === 'boolean' ? start : media.up(start);
@@ -4360,39 +4458,68 @@ var DropdownMenu = /*#__PURE__*/React__default["default"].forwardRef(function (p
4360
4458
  end = _props$end === void 0 ? false : _props$end,
4361
4459
  style = props.style,
4362
4460
  textStyle = props.textStyle,
4363
- elementProps = _objectWithoutProperties(props, _excluded$11);
4461
+ elementProps = _objectWithoutProperties(props, _excluded$10);
4364
4462
 
4365
- var dropdown = useForcedContext(DropdownContext);
4463
+ var navbar = React.useContext(NavbarContext);
4366
4464
  var media = useMedia();
4465
+ var dialogRef = React.useRef();
4466
+ var dropdown = useForcedContext(DropdownContext);
4367
4467
  var identifier = dropdown.identifier,
4368
- direction = dropdown.direction,
4369
- triggerRef = dropdown.triggerRef,
4468
+ toggleRef = dropdown.toggleRef,
4370
4469
  visible = dropdown.visible,
4371
- setVisible = dropdown.setVisible;
4470
+ setVisible = dropdown.setVisible,
4471
+ direction = dropdown.direction,
4472
+ display = dropdown.display,
4473
+ autoClose = dropdown.autoClose;
4372
4474
 
4373
4475
  if (!visible) {
4374
4476
  return null;
4375
4477
  }
4376
4478
 
4377
- var classes = getStyles(styles$Q, ['.dropdown-menu']);
4479
+ var isStatic = reactNative.Platform.OS === 'web' && display === 'static';
4480
+ var isCollapsedNavbar = navbar && !(navbar.expand && (navbar.expand === true || media.up(navbar.expand)));
4481
+ var hasStaticStyle = isStatic && !isCollapsedNavbar;
4482
+ var classes = getStyles(styles$Q, ['.dropdown-menu', // Non-Popper styles
4483
+ hasStaticStyle && '.dropdown-menu[data-bs-popper]', hasStaticStyle && start && ".dropdown-menu".concat(start === true ? '' : "-".concat(start), "-start[data-bs-popper]"), hasStaticStyle && end && ".dropdown-menu".concat(end === true ? '' : "-".concat(end), "-end[data-bs-popper]"), hasStaticStyle && direction === 'up' && '.dropup .dropdown-menu[data-bs-popper]', hasStaticStyle && direction === 'end' && '.dropend .dropdown-menu[data-bs-popper]', hasStaticStyle && direction === 'start' && '.dropstart .dropdown-menu[data-bs-popper]', // Navbar styles
4484
+ navbar && '.navbar-nav .dropdown-menu', navbar && navbar.expand && ".navbar-expand".concat(navbar.expand === true ? '' : "-".concat(navbar.expand), " .navbar-nav .dropdown-menu")]);
4378
4485
  var textClasses = getStyles(styles$Q, ['.dropdown-menu-text']);
4486
+
4487
+ if (isStatic || isCollapsedNavbar) {
4488
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, !isCollapsedNavbar && /*#__PURE__*/React__default["default"].createElement(BackdropHandler, {
4489
+ toggleRef: toggleRef,
4490
+ dialogRef: dialogRef,
4491
+ onClose: function onClose() {
4492
+ setVisible(false);
4493
+ },
4494
+ autoClose: autoClose
4495
+ }), /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
4496
+ ref: concatRefs(dialogRef, ref),
4497
+ accessibilityLabelledBy: identifier,
4498
+ style: [classes, style],
4499
+ textStyle: [textClasses, textStyle]
4500
+ }), children));
4501
+ }
4502
+
4379
4503
  return /*#__PURE__*/React__default["default"].createElement(overlays.OverlayContainer, null, /*#__PURE__*/React__default["default"].createElement(Overlay, {
4380
4504
  placement: transformPlacement(media, direction, start, end),
4381
- targetRef: triggerRef,
4505
+ targetRef: toggleRef,
4382
4506
  offset: convertToNumber(StyleSheet.value('dropdown-spacer')),
4383
4507
  visible: visible
4384
4508
  }, function (overlay, overlayRef) {
4385
4509
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(BackdropHandler, {
4510
+ toggleRef: toggleRef,
4386
4511
  dialogRef: overlayRef,
4387
4512
  onClose: function onClose() {
4388
4513
  setVisible(false);
4389
- }
4514
+ },
4515
+ autoClose: autoClose
4390
4516
  }), /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
4391
4517
  ref: concatRefs(overlayRef, ref),
4392
4518
  accessibilityLabelledBy: identifier,
4393
- style: [classes, {
4519
+ style: [classes, overlay.overlayProps.style, {
4520
+ maxHeight: 'auto',
4394
4521
  opacity: overlay.rendered ? 1 : 0
4395
- }, overlay.overlayProps.style, style],
4522
+ }, style],
4396
4523
  textStyle: [textClasses, textStyle]
4397
4524
  }), /*#__PURE__*/React__default["default"].createElement(DropdownContext.Provider, {
4398
4525
  value: dropdown
@@ -4402,10 +4529,69 @@ var DropdownMenu = /*#__PURE__*/React__default["default"].forwardRef(function (p
4402
4529
  DropdownMenu.displayName = 'DropdownMenu';
4403
4530
  DropdownMenu.propTypes = propTypes$$;
4404
4531
 
4405
- var _excluded$10 = ["children", "onPress", "active", "disabled", "style", "textStyle"];
4532
+ var _excluded$$ = ["children", "size", "style"];
4406
4533
 
4407
- var _templateObject$Q, _templateObject2$w, _templateObject3$h, _templateObject4$f, _templateObject5$d, _templateObject6$c;
4534
+ var _templateObject$Q, _templateObject2$w;
4408
4535
  var propTypes$_ = {
4536
+ children: PropTypes__default["default"].node.isRequired,
4537
+ size: PropTypes__default["default"].oneOf(Object.keys(FONT_SIZES).map(function (k) {
4538
+ return Number(k);
4539
+ })).isRequired,
4540
+ // eslint-disable-next-line react/forbid-prop-types
4541
+ style: PropTypes__default["default"].any
4542
+ };
4543
+ var styles$P = StyleSheet.create(_objectSpread2({
4544
+ heading: css(_templateObject$Q || (_templateObject$Q = _taggedTemplateLiteral(["\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n color: $headings-color;\n "])))
4545
+ }, each(FONT_SIZES, function (size, value) {
4546
+ return _defineProperty({}, ".h".concat(size), css(_templateObject2$w || (_templateObject2$w = _taggedTemplateLiteral(["\n font-size: ", ";\n line-height: ", " * $headings-line-height;\n "])), value, value));
4547
+ })));
4548
+ var Heading$1 = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
4549
+ var children = props.children,
4550
+ size = props.size,
4551
+ style = props.style,
4552
+ elementProps = _objectWithoutProperties(props, _excluded$$);
4553
+
4554
+ var classes = getStyles(styles$P, ['heading', ".h".concat(size)]);
4555
+ return /*#__PURE__*/React__default["default"].createElement(Text, _extends({}, elementProps, {
4556
+ ref: ref,
4557
+ accessibilityRole: "header",
4558
+ accessibilityLevel: size,
4559
+ style: [classes, style]
4560
+ }), children);
4561
+ });
4562
+ Heading$1.displayName = 'Heading';
4563
+ Heading$1.propTypes = propTypes$_;
4564
+
4565
+ var _excluded$_ = ["children", "style"];
4566
+
4567
+ var _templateObject$P;
4568
+ var propTypes$Z = {
4569
+ children: PropTypes__default["default"].node.isRequired,
4570
+ // eslint-disable-next-line react/forbid-prop-types
4571
+ style: PropTypes__default["default"].any
4572
+ };
4573
+ var styles$O = StyleSheet.create({
4574
+ '.dropdown-header': css(_templateObject$P || (_templateObject$P = _taggedTemplateLiteral(["\n // display: block;\n padding: $dropdown-header-padding;\n margin-bottom: 0; // for use with heading elements\n font-size: $font-size-sm;\n color: $dropdown-header-color;\n // white-space: nowrap; // as with > li > a\n "])))
4575
+ });
4576
+ var DropdownHeader = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
4577
+ var children = props.children,
4578
+ style = props.style,
4579
+ elementProps = _objectWithoutProperties(props, _excluded$_);
4580
+
4581
+ var classes = getStyles(styles$O, ['.dropdown-header']);
4582
+ return /*#__PURE__*/React__default["default"].createElement(Heading$1, _extends({}, elementProps, {
4583
+ ref: ref,
4584
+ size: 6,
4585
+ style: [classes, style]
4586
+ }), children);
4587
+ });
4588
+ DropdownHeader.displayName = 'DropdownHeader';
4589
+ DropdownHeader.propTypes = propTypes$Z;
4590
+
4591
+ var _excluded$Z = ["children", "onPress", "active", "disabled", "style", "textStyle"];
4592
+
4593
+ var _templateObject$O, _templateObject2$v, _templateObject3$h, _templateObject4$f, _templateObject5$d, _templateObject6$c;
4594
+ var propTypes$Y = {
4409
4595
  children: PropTypes__default["default"].node.isRequired,
4410
4596
  onPress: PropTypes__default["default"].func,
4411
4597
  active: PropTypes__default["default"].bool,
@@ -4415,9 +4601,9 @@ var propTypes$_ = {
4415
4601
  // eslint-disable-next-line react/forbid-prop-types
4416
4602
  textStyle: PropTypes__default["default"].any
4417
4603
  };
4418
- var styles$P = StyleSheet.create({
4419
- '.dropdown-item': css(_templateObject$Q || (_templateObject$Q = _taggedTemplateLiteral(["\n width: 100%;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n // clear: both;\n background-color: transparent;\n border: 0;\n\n &:hover {\n // @include gradient-bg($dropdown-link-hover-bg);\n background-color: $dropdown-link-hover-bg;\n }\n &:focus {\n // @include gradient-bg($dropdown-link-hover-bg);\n background-color: $dropdown-link-hover-bg;\n }\n "]))),
4420
- '.dropdown-item-text': css(_templateObject2$w || (_templateObject2$w = _taggedTemplateLiteral(["\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n // text-align: inherit;\n text-decoration: none; // if($link-decoration == none, null, none);\n // white-space: nowrap;\n\n &:hover {\n color: $dropdown-link-hover-color;\n text-decoration: none; // if($link-hover-decoration == underline, none, null);\n }\n &:focus {\n color: $dropdown-link-hover-color;\n text-decoration: none; // if($link-hover-decoration == underline, none, null);\n }\n "]))),
4604
+ var styles$N = StyleSheet.create({
4605
+ '.dropdown-item': css(_templateObject$O || (_templateObject$O = _taggedTemplateLiteral(["\n width: 100%;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n // clear: both;\n background-color: transparent;\n border: 0;\n\n &:hover {\n // @include gradient-bg($dropdown-link-hover-bg);\n background-color: $dropdown-link-hover-bg;\n }\n &:focus {\n // @include gradient-bg($dropdown-link-hover-bg);\n background-color: $dropdown-link-hover-bg;\n }\n "]))),
4606
+ '.dropdown-item-text': css(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteral(["\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n // text-align: inherit;\n text-decoration: none; // if($link-decoration == none, null, none);\n // white-space: nowrap;\n\n &:hover {\n color: $dropdown-link-hover-color;\n text-decoration: none; // if($link-hover-decoration == underline, none, null);\n }\n &:focus {\n color: $dropdown-link-hover-color;\n text-decoration: none; // if($link-hover-decoration == underline, none, null);\n }\n "]))),
4421
4607
  '.dropdown-item-active': css(_templateObject3$h || (_templateObject3$h = _taggedTemplateLiteral(["\n // @include gradient-bg($dropdown-link-active-bg);\n background-color: $dropdown-link-active-bg;\n\n &:hover {\n background-color: $dropdown-link-active-bg;\n }\n &:focus {\n background-color: $dropdown-link-active-bg;\n }\n "]))),
4422
4608
  '.dropdown-item-active-text': css(_templateObject4$f || (_templateObject4$f = _taggedTemplateLiteral(["\n color: $dropdown-link-active-color;\n text-decoration: none;\n\n &:hover {\n color: $dropdown-link-active-color;\n }\n &:focus {\n color: $dropdown-link-active-color;\n }\n "]))),
4423
4609
  '.dropdown-item-disabled': css(_templateObject5$d || (_templateObject5$d = _taggedTemplateLiteral(["\n // pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n // background-image: if($enable-gradients, none, null);\n\n &:hover {\n background-color: transparent;\n }\n &:focus {\n background-color: transparent;\n }\n "]))),
@@ -4433,11 +4619,11 @@ var DropdownItem = function DropdownItem(props) {
4433
4619
  disabled = _props$disabled === void 0 ? false : _props$disabled,
4434
4620
  style = props.style,
4435
4621
  textStyle = props.textStyle,
4436
- elementProps = _objectWithoutProperties(props, _excluded$10);
4622
+ elementProps = _objectWithoutProperties(props, _excluded$Z);
4437
4623
 
4438
4624
  var dropdown = useForcedContext(DropdownContext);
4439
- var classes = getStyles(styles$P, ['.dropdown-item', active && '.dropdown-item-active', disabled && '.dropdown-item-disabled']);
4440
- var textClasses = getStyles(styles$P, ['.dropdown-item-text', active && '.dropdown-item-active-text', disabled && '.dropdown-item-disabled-text']);
4625
+ var classes = getStyles(styles$N, ['.dropdown-item', active && '.dropdown-item-active', disabled && '.dropdown-item-disabled']);
4626
+ var textClasses = getStyles(styles$N, ['.dropdown-item-text', active && '.dropdown-item-active-text', disabled && '.dropdown-item-disabled-text']);
4441
4627
  return /*#__PURE__*/React__default["default"].createElement(Pressable, _extends({}, elementProps, {
4442
4628
  onPress: concatFns(function () {
4443
4629
  dropdown.setVisible(false);
@@ -4449,67 +4635,9 @@ var DropdownItem = function DropdownItem(props) {
4449
4635
  };
4450
4636
 
4451
4637
  DropdownItem.displayName = 'DropdownItem';
4452
- DropdownItem.propTypes = propTypes$_;
4453
-
4454
- var _excluded$$ = ["children", "style"];
4455
-
4456
- var _templateObject$P;
4457
- var propTypes$Z = {
4458
- children: PropTypes__default["default"].node.isRequired,
4459
- // eslint-disable-next-line react/forbid-prop-types
4460
- style: PropTypes__default["default"].any
4461
- };
4462
- var styles$O = StyleSheet.create({
4463
- '.dropdown-item-text': css(_templateObject$P || (_templateObject$P = _taggedTemplateLiteral(["\n // display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n "])))
4464
- });
4465
- var DropdownTextItem = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
4466
- var children = props.children,
4467
- style = props.style,
4468
- elementProps = _objectWithoutProperties(props, _excluded$$);
4469
-
4470
- var classes = getStyles(styles$O, ['.dropdown-item-text']);
4471
- return /*#__PURE__*/React__default["default"].createElement(Text, _extends({}, elementProps, {
4472
- ref: ref,
4473
- style: [classes, style]
4474
- }), children);
4475
- });
4476
- DropdownTextItem.displayName = 'DropdownTextItem';
4477
- DropdownTextItem.propTypes = propTypes$Z;
4638
+ DropdownItem.propTypes = propTypes$Y;
4478
4639
 
4479
- var _excluded$_ = ["children", "size", "style"];
4480
-
4481
- var _templateObject$O, _templateObject2$v;
4482
- var propTypes$Y = {
4483
- children: PropTypes__default["default"].node.isRequired,
4484
- size: PropTypes__default["default"].oneOf(Object.keys(FONT_SIZES).map(function (k) {
4485
- return Number(k);
4486
- })).isRequired,
4487
- // eslint-disable-next-line react/forbid-prop-types
4488
- style: PropTypes__default["default"].any
4489
- };
4490
- var styles$N = StyleSheet.create(_objectSpread2({
4491
- heading: css(_templateObject$O || (_templateObject$O = _taggedTemplateLiteral(["\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n color: $headings-color;\n "])))
4492
- }, each(FONT_SIZES, function (size, value) {
4493
- return _defineProperty({}, ".h".concat(size), css(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteral(["\n font-size: ", ";\n line-height: ", " * $headings-line-height;\n "])), value, value));
4494
- })));
4495
- var Heading$1 = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
4496
- var children = props.children,
4497
- size = props.size,
4498
- style = props.style,
4499
- elementProps = _objectWithoutProperties(props, _excluded$_);
4500
-
4501
- var classes = getStyles(styles$N, ['heading', ".h".concat(size)]);
4502
- return /*#__PURE__*/React__default["default"].createElement(Text, _extends({}, elementProps, {
4503
- ref: ref,
4504
- accessibilityRole: "header",
4505
- accessibilityLevel: size,
4506
- style: [classes, style]
4507
- }), children);
4508
- });
4509
- Heading$1.displayName = 'Heading';
4510
- Heading$1.propTypes = propTypes$Y;
4511
-
4512
- var _excluded$Z = ["children", "style"];
4640
+ var _excluded$Y = ["children", "style"];
4513
4641
 
4514
4642
  var _templateObject$N;
4515
4643
  var propTypes$X = {
@@ -4518,24 +4646,23 @@ var propTypes$X = {
4518
4646
  style: PropTypes__default["default"].any
4519
4647
  };
4520
4648
  var styles$M = StyleSheet.create({
4521
- '.dropdown-header': css(_templateObject$N || (_templateObject$N = _taggedTemplateLiteral(["\n // display: block;\n padding: $dropdown-header-padding;\n margin-bottom: 0; // for use with heading elements\n font-size: $font-size-sm;\n color: $dropdown-header-color;\n // white-space: nowrap; // as with > li > a\n "])))
4649
+ '.dropdown-item-text': css(_templateObject$N || (_templateObject$N = _taggedTemplateLiteral(["\n // display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n "])))
4522
4650
  });
4523
- var DropdownHeader = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
4651
+ var DropdownItemText = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
4524
4652
  var children = props.children,
4525
4653
  style = props.style,
4526
- elementProps = _objectWithoutProperties(props, _excluded$Z);
4654
+ elementProps = _objectWithoutProperties(props, _excluded$Y);
4527
4655
 
4528
- var classes = getStyles(styles$M, ['.dropdown-header']);
4529
- return /*#__PURE__*/React__default["default"].createElement(Heading$1, _extends({}, elementProps, {
4656
+ var classes = getStyles(styles$M, ['.dropdown-item-text']);
4657
+ return /*#__PURE__*/React__default["default"].createElement(Text, _extends({}, elementProps, {
4530
4658
  ref: ref,
4531
- size: 6,
4532
4659
  style: [classes, style]
4533
4660
  }), children);
4534
4661
  });
4535
- DropdownHeader.displayName = 'DropdownHeader';
4536
- DropdownHeader.propTypes = propTypes$X;
4662
+ DropdownItemText.displayName = 'DropdownItemText';
4663
+ DropdownItemText.propTypes = propTypes$X;
4537
4664
 
4538
- var _excluded$Y = ["style"];
4665
+ var _excluded$X = ["style"];
4539
4666
 
4540
4667
  var _templateObject$M;
4541
4668
  var propTypes$W = {
@@ -4547,7 +4674,7 @@ var styles$L = StyleSheet.create({
4547
4674
  });
4548
4675
  var DropdownDivider = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
4549
4676
  var style = props.style,
4550
- elementProps = _objectWithoutProperties(props, _excluded$Y);
4677
+ elementProps = _objectWithoutProperties(props, _excluded$X);
4551
4678
 
4552
4679
  var classes = getStyles(styles$L, ['.dropdown-divider']);
4553
4680
  return /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
@@ -4558,9 +4685,9 @@ var DropdownDivider = /*#__PURE__*/React__default["default"].forwardRef(function
4558
4685
  DropdownDivider.displayName = 'DropdownDivider';
4559
4686
  DropdownDivider.propTypes = propTypes$W;
4560
4687
 
4561
- function useDropdown(defaultVisible, controlledVisible, onToggle, direction) {
4688
+ function useDropdown(defaultVisible, controlledVisible, onToggle, direction, display, autoClose) {
4562
4689
  var identifier = useIdentifier('dropdown');
4563
- var triggerRef = React.useRef();
4690
+ var toggleRef = React.useRef();
4564
4691
 
4565
4692
  var _useControlledState = useControlledState(defaultVisible, controlledVisible, onToggle),
4566
4693
  _useControlledState2 = _slicedToArray(_useControlledState, 2),
@@ -4572,49 +4699,30 @@ function useDropdown(defaultVisible, controlledVisible, onToggle, direction) {
4572
4699
  identifier: identifier,
4573
4700
  visible: visible,
4574
4701
  setVisible: setVisible,
4575
- triggerRef: triggerRef,
4576
- direction: direction
4702
+ toggleRef: toggleRef,
4703
+ direction: direction,
4704
+ display: display,
4705
+ autoClose: autoClose
4577
4706
  };
4578
4707
  }, [visible]);
4579
4708
  }
4580
4709
 
4581
- var _excluded$X = ["onPress"];
4582
- function useDismissDropdown(props) {
4583
- var context = useForcedContext(DropdownContext);
4584
-
4585
- var handlePress = props.onPress,
4586
- restProps = _objectWithoutProperties(props, _excluded$X);
4587
-
4588
- return _objectSpread2(_objectSpread2({}, restProps), {}, {
4589
- onPress: function onPress(event) {
4590
- if (handlePress) handlePress(event);
4591
- context.setExpanded(false);
4592
- }
4593
- });
4594
- }
4595
-
4596
4710
  var _excluded$W = ["onPress"];
4597
- function useToggleDropdown(props) {
4711
+ function useDismissDropdown(props) {
4598
4712
  var context = useForcedContext(DropdownContext);
4599
4713
 
4600
4714
  var handlePress = props.onPress,
4601
4715
  restProps = _objectWithoutProperties(props, _excluded$W);
4602
4716
 
4603
4717
  return _objectSpread2(_objectSpread2({}, restProps), {}, {
4604
- nativeID: context.identifier,
4605
- ref: context.triggerRef,
4606
4718
  onPress: function onPress(event) {
4607
4719
  if (handlePress) handlePress(event);
4608
- context.setVisible(function (value) {
4609
- return !value;
4610
- });
4611
- },
4612
- accessibilityHasPopup: true,
4613
- accessibilityExpanded: context.visible
4720
+ context.setVisible(false);
4721
+ }
4614
4722
  });
4615
4723
  }
4616
4724
 
4617
- var _excluded$V = ["children", "defaultVisible", "visible", "onToggle", "direction", "style"];
4725
+ var _excluded$V = ["children", "defaultVisible", "visible", "onToggle", "direction", "display", "autoClose", "style"];
4618
4726
 
4619
4727
  var _templateObject$L;
4620
4728
  var DIRECTIONS = ['top', 'bottom', 'start', 'end'];
@@ -4624,6 +4732,8 @@ var propTypes$V = {
4624
4732
  visible: PropTypes__default["default"].bool,
4625
4733
  onToggle: PropTypes__default["default"].func,
4626
4734
  direction: PropTypes__default["default"].oneOf(DIRECTIONS),
4735
+ display: PropTypes__default["default"].oneOf(['dynamic', 'static']),
4736
+ autoClose: PropTypes__default["default"].oneOfType([PropTypes__default["default"].bool, PropTypes__default["default"].oneOf(['inside', 'outside'])]),
4627
4737
  // eslint-disable-next-line react/forbid-prop-types
4628
4738
  style: PropTypes__default["default"].any
4629
4739
  };
@@ -4638,10 +4748,14 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (props
4638
4748
  onToggle = props.onToggle,
4639
4749
  _props$direction = props.direction,
4640
4750
  direction = _props$direction === void 0 ? 'bottom' : _props$direction,
4751
+ _props$display = props.display,
4752
+ display = _props$display === void 0 ? 'dynamic' : _props$display,
4753
+ _props$autoClose = props.autoClose,
4754
+ autoClose = _props$autoClose === void 0 ? 'outside' : _props$autoClose,
4641
4755
  style = props.style,
4642
4756
  elementProps = _objectWithoutProperties(props, _excluded$V);
4643
4757
 
4644
- var dropdown = useDropdown(defaultVisible, visible, onToggle, direction);
4758
+ var dropdown = useDropdown(defaultVisible, visible, onToggle, direction, display, autoClose);
4645
4759
  var classes = getStyles(styles$K, ['.dropdown']);
4646
4760
  return /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
4647
4761
  ref: ref,
@@ -4653,10 +4767,11 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (props
4653
4767
  Dropdown.displayName = 'Dropdown';
4654
4768
  Dropdown.propTypes = propTypes$V;
4655
4769
  Dropdown.Context = DropdownContext;
4656
- Dropdown.TextItem = DropdownTextItem;
4657
- Dropdown.Header = DropdownHeader;
4770
+ Dropdown.Toggle = DropdownToggle;
4658
4771
  Dropdown.Menu = DropdownMenu;
4772
+ Dropdown.Header = DropdownHeader;
4659
4773
  Dropdown.Item = DropdownItem;
4774
+ Dropdown.ItemText = DropdownItemText;
4660
4775
  Dropdown.Divider = DropdownDivider;
4661
4776
  Dropdown.useDismiss = useDismissDropdown;
4662
4777
  Dropdown.useToggle = useToggleDropdown;
@@ -4807,13 +4922,13 @@ var propTypes$Q = {
4807
4922
  style: PropTypes__default["default"].any
4808
4923
  };
4809
4924
  var styles$G = StyleSheet.create(_objectSpread2({
4810
- '.form-control': css(_templateObject$H || (_templateObject$H = _taggedTemplateLiteral(["\n // display: block;\n width: 100%;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n font-size: $input-font-size;\n font-weight: $input-font-weight;\n line-height: $input-font-size * $input-line-height;\n color: $input-color;\n text-align-vertical: top; // added for bootstrap-rn\n background-color: $input-bg;\n // background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n @include platform(web) {\n appearance: none; // Fix appearance for date inputs in Safari\n }\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of \"<select>\"s in CSS.\n border-radius: $input-border-radius;\n\n // @include box-shadow($input-box-shadow);\n // @include transition($input-transition);\n\n // Customize the \":focus\" state to imitate native WebKit styles.\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n @include platform(web) {\n outline-width: 0; // outline: 0;\n }\n /* @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n } */\n }\n "]))),
4925
+ '.form-control': css(_templateObject$H || (_templateObject$H = _taggedTemplateLiteral(["\n // display: block;\n width: 100%;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n font-size: $input-font-size;\n font-weight: $input-font-weight;\n line-height: $input-font-size * $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n // background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n @include platform(web) {\n appearance: none; // Fix appearance for date inputs in Safari\n }\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of \"<select>\"s in CSS.\n border-radius: $input-border-radius;\n\n // @include box-shadow($input-box-shadow);\n // @include transition($input-transition);\n\n // Customize the \":focus\" state to imitate native WebKit styles.\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n @include platform(web) {\n outline-width: 0; // outline: 0;\n }\n /* @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n } */\n }\n "]))),
4811
4926
  '.form-control-disabled': css(_templateObject2$u || (_templateObject2$u = _taggedTemplateLiteral(["\n background-color: $input-disabled-bg;\n border-color: $input-disabled-border-color;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n "]))),
4812
4927
  '.form-control-sm': css(_templateObject3$g || (_templateObject3$g = _taggedTemplateLiteral(["\n min-height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n font-size: $input-font-size-sm;\n border-radius: $input-border-radius-sm;\n "]))),
4813
4928
  '.form-control-lg': css(_templateObject4$e || (_templateObject4$e = _taggedTemplateLiteral(["\n min-height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n font-size: $input-font-size-lg;\n border-radius: $input-border-radius-lg;\n "]))),
4814
- '.form-control-multiline': css(_templateObject5$c || (_templateObject5$c = _taggedTemplateLiteral(["\n min-height: $input-height;\n "]))),
4815
- '.form-control-multiline-sm': css(_templateObject6$b || (_templateObject6$b = _taggedTemplateLiteral(["\n min-height: $input-height-sm;\n "]))),
4816
- '.form-control-multiline-lg': css(_templateObject7$8 || (_templateObject7$8 = _taggedTemplateLiteral(["\n min-height: $input-height-lg;\n "])))
4929
+ '.form-control-multiline': css(_templateObject5$c || (_templateObject5$c = _taggedTemplateLiteral(["\n text-align-vertical: top; // added for bootstrap-rn\n min-height: $input-height;\n\n @include platform(ios) {\n min-height: $input-height-sm + 8rem; // added for bootstrap-rn\n }\n "]))),
4930
+ '.form-control-multiline-sm': css(_templateObject6$b || (_templateObject6$b = _taggedTemplateLiteral(["\n min-height: $input-height-sm;\n\n @include platform(ios) {\n // TODO: Adjust ios height to sm size\n min-height: $input-height-sm + 8rem; // added for bootstrap-rn\n }\n "]))),
4931
+ '.form-control-multiline-lg': css(_templateObject7$8 || (_templateObject7$8 = _taggedTemplateLiteral(["\n min-height: $input-height-lg;\n\n @include platform(ios) {\n // TODO: Adjust ios height to lg size\n min-height: $input-height-sm + 8rem; // added for bootstrap-rn\n }\n "])))
4817
4932
  }, each(FORM_VALIDATION_STATES, function (state, data) {
4818
4933
  return _defineProperty({}, ".form-control.is-".concat(state), css(_templateObject8$7 || (_templateObject8$7 = _taggedTemplateLiteral(["\n border-color: ", ";\n\n &:focus {\n border-color: ", ";\n // box-shadow: $focus-box-shadow;\n }\n "])), function (t) {
4819
4934
  return data(t).color;
@@ -4846,6 +4961,8 @@ var Input = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
4846
4961
  placeholderTextColor: placeholderTextColor || StyleSheet.value('input-placeholder-color'),
4847
4962
  multiline: multiline,
4848
4963
  disabled: disabled,
4964
+ editable: !disabled,
4965
+ selectTextOnFocus: !disabled,
4849
4966
  style: [classes, style]
4850
4967
  }));
4851
4968
  });
@@ -4977,7 +5094,7 @@ PopoverContext.displayName = 'PopoverContext';
4977
5094
 
4978
5095
  var _excluded$P = ["style"];
4979
5096
 
4980
- var _templateObject$G, _templateObject2$t, _templateObject3$f, _templateObject4$d, _templateObject5$b, _templateObject6$a, _templateObject7$7, _templateObject8$6, _templateObject9$4, _templateObject10$4, _templateObject11$3, _templateObject12$2, _templateObject13$2, _templateObject14$2, _templateObject15$1;
5097
+ var _templateObject$G, _templateObject2$t, _templateObject3$f, _templateObject4$d, _templateObject5$b, _templateObject6$a, _templateObject7$7, _templateObject8$6, _templateObject9$5, _templateObject10$5, _templateObject11$4, _templateObject12$3, _templateObject13$3, _templateObject14$2, _templateObject15$1;
4981
5098
  var propTypes$P = {
4982
5099
  // eslint-disable-next-line react/forbid-prop-types
4983
5100
  style: PropTypes__default["default"].any
@@ -4999,15 +5116,15 @@ var styles$F = StyleSheet.create({
4999
5116
  return t['popover-border-width'];
5000
5117
  })),
5001
5118
  '.bs-popover-end .popover-arrow::before': css(_templateObject8$6 || (_templateObject8$6 = _taggedTemplateLiteral(["\n left: 0;\n border-top-width: $popover-arrow-width * 0.5;\n border-right-width: $popover-arrow-height;\n border-left-width: 0;\n border-bottom-width: $popover-arrow-width * 0.5;\n border-right-color: $popover-arrow-outer-color;\n "]))),
5002
- '.bs-popover-end .popover-arrow::after': css(_templateObject9$4 || (_templateObject9$4 = _taggedTemplateLiteral(["\n left: $popover-border-width;\n border-top-width: $popover-arrow-width * 0.5;\n border-right-width: $popover-arrow-height;\n border-left-width: 0;\n border-bottom-width: $popover-arrow-width * 0.5;\n border-right-color: $popover-arrow-color;\n "]))),
5003
- '.bs-popover-bottom .popover-arrow': css(_templateObject10$4 || (_templateObject10$4 = _taggedTemplateLiteral(["\n top: ", ";\n "])), subtract(function (t) {
5119
+ '.bs-popover-end .popover-arrow::after': css(_templateObject9$5 || (_templateObject9$5 = _taggedTemplateLiteral(["\n left: $popover-border-width;\n border-top-width: $popover-arrow-width * 0.5;\n border-right-width: $popover-arrow-height;\n border-left-width: 0;\n border-bottom-width: $popover-arrow-width * 0.5;\n border-right-color: $popover-arrow-color;\n "]))),
5120
+ '.bs-popover-bottom .popover-arrow': css(_templateObject10$5 || (_templateObject10$5 = _taggedTemplateLiteral(["\n top: ", ";\n "])), subtract(function (t) {
5004
5121
  return "-".concat(t['popover-arrow-height']);
5005
5122
  }, function (t) {
5006
5123
  return t['popover-border-width'];
5007
5124
  })),
5008
- '.bs-popover-bottom .popover-arrow::before': css(_templateObject11$3 || (_templateObject11$3 = _taggedTemplateLiteral(["\n top: 0;\n border-top-width: 0;\n border-right-width: $popover-arrow-width * 0.5;\n border-left-width: $popover-arrow-width * 0.5;\n border-bottom-width: $popover-arrow-height;\n border-bottom-color: $popover-arrow-outer-color;\n "]))),
5009
- '.bs-popover-bottom .popover-arrow::after': css(_templateObject12$2 || (_templateObject12$2 = _taggedTemplateLiteral(["\n top: $popover-border-width;\n border-top-width: 0;\n border-right-width: $popover-arrow-width * 0.5;\n border-left-width: $popover-arrow-width * 0.5;\n border-bottom-width: $popover-arrow-height;\n border-bottom-color: $popover-arrow-color;\n "]))),
5010
- '.bs-popover-start .popover-arrow': css(_templateObject13$2 || (_templateObject13$2 = _taggedTemplateLiteral(["\n right: ", ";\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n "])), subtract(function (t) {
5125
+ '.bs-popover-bottom .popover-arrow::before': css(_templateObject11$4 || (_templateObject11$4 = _taggedTemplateLiteral(["\n top: 0;\n border-top-width: 0;\n border-right-width: $popover-arrow-width * 0.5;\n border-left-width: $popover-arrow-width * 0.5;\n border-bottom-width: $popover-arrow-height;\n border-bottom-color: $popover-arrow-outer-color;\n "]))),
5126
+ '.bs-popover-bottom .popover-arrow::after': css(_templateObject12$3 || (_templateObject12$3 = _taggedTemplateLiteral(["\n top: $popover-border-width;\n border-top-width: 0;\n border-right-width: $popover-arrow-width * 0.5;\n border-left-width: $popover-arrow-width * 0.5;\n border-bottom-width: $popover-arrow-height;\n border-bottom-color: $popover-arrow-color;\n "]))),
5127
+ '.bs-popover-start .popover-arrow': css(_templateObject13$3 || (_templateObject13$3 = _taggedTemplateLiteral(["\n right: ", ";\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n "])), subtract(function (t) {
5011
5128
  return "-".concat(t['popover-arrow-height']);
5012
5129
  }, function (t) {
5013
5130
  return t['popover-border-width'];
@@ -5189,9 +5306,10 @@ function injectPopover(Target) {
5189
5306
  ref: overlayRef,
5190
5307
  placement: overlay.placement,
5191
5308
  popper: overlay.rendered,
5192
- style: [{
5309
+ style: [overlay.overlayProps.style, {
5310
+ maxHeight: 'auto',
5193
5311
  opacity: overlay.rendered ? 1 : 0
5194
- }, overlay.overlayProps.style],
5312
+ }],
5195
5313
  arrowStyle: overlay.arrowProps.style
5196
5314
  }), /*#__PURE__*/React__default["default"].createElement(Popover.Arrow, null), title && /*#__PURE__*/React__default["default"].createElement(Popover.Header, null, title), /*#__PURE__*/React__default["default"].createElement(Popover.Body, null, content));
5197
5315
  })));
@@ -5206,7 +5324,7 @@ TooltipContext.displayName = 'TooltipContext';
5206
5324
 
5207
5325
  var _excluded$K = ["style"];
5208
5326
 
5209
- var _templateObject$C, _templateObject2$q, _templateObject3$e, _templateObject4$c, _templateObject5$a, _templateObject6$9, _templateObject7$6, _templateObject8$5, _templateObject9$3, _templateObject10$3;
5327
+ var _templateObject$C, _templateObject2$q, _templateObject3$e, _templateObject4$c, _templateObject5$a, _templateObject6$9, _templateObject7$6, _templateObject8$5, _templateObject9$4, _templateObject10$4;
5210
5328
  var propTypes$K = {
5211
5329
  // eslint-disable-next-line react/forbid-prop-types
5212
5330
  style: PropTypes__default["default"].any
@@ -5220,8 +5338,8 @@ var styles$B = StyleSheet.create({
5220
5338
  '.bs-tooltip-end .tooltip-arrow::before': css(_templateObject6$9 || (_templateObject6$9 = _taggedTemplateLiteral(["\n right: -1px;\n border-top-width: $tooltip-arrow-width * 0.5;\n border-right-width: $tooltip-arrow-height;\n border-left-width: 0;\n border-bottom-width: $tooltip-arrow-width * 0.5;\n border-right-color: $tooltip-arrow-color;\n "]))),
5221
5339
  '.bs-tooltip-bottom .tooltip-arrow': css(_templateObject7$6 || (_templateObject7$6 = _taggedTemplateLiteral(["\n top: 0;\n "]))),
5222
5340
  '.bs-tooltip-bottom .tooltip-arrow::before': css(_templateObject8$5 || (_templateObject8$5 = _taggedTemplateLiteral(["\n bottom: -1px;\n border-top-width: 0;\n border-right-width: $tooltip-arrow-width * 0.5;\n border-left-width: $tooltip-arrow-width * 0.5;\n border-bottom-width: $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n "]))),
5223
- '.bs-tooltip-start .tooltip-arrow': css(_templateObject9$3 || (_templateObject9$3 = _taggedTemplateLiteral(["\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n "]))),
5224
- '.bs-tooltip-start .tooltip-arrow::before': css(_templateObject10$3 || (_templateObject10$3 = _taggedTemplateLiteral(["\n left: -1px;\n border-top-width: $tooltip-arrow-width * 0.5;\n border-right-width: 0;\n border-left-width: $tooltip-arrow-height;\n border-bottom-width: $tooltip-arrow-width * 0.5;\n border-left-color: $tooltip-arrow-color;\n "])))
5341
+ '.bs-tooltip-start .tooltip-arrow': css(_templateObject9$4 || (_templateObject9$4 = _taggedTemplateLiteral(["\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n "]))),
5342
+ '.bs-tooltip-start .tooltip-arrow::before': css(_templateObject10$4 || (_templateObject10$4 = _taggedTemplateLiteral(["\n left: -1px;\n border-top-width: $tooltip-arrow-width * 0.5;\n border-right-width: 0;\n border-left-width: $tooltip-arrow-height;\n border-bottom-width: $tooltip-arrow-width * 0.5;\n border-left-color: $tooltip-arrow-color;\n "])))
5225
5343
  });
5226
5344
  var TooltipArrow = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
5227
5345
  var style = props.style,
@@ -5363,9 +5481,10 @@ function injectTooltip(Target) {
5363
5481
  ref: overlayRef,
5364
5482
  placement: overlay.placement,
5365
5483
  popper: overlay.rendered,
5366
- style: [{
5484
+ style: [overlay.overlayProps.style, {
5485
+ maxHeight: 'auto',
5367
5486
  opacity: overlay.rendered ? 1 : 0
5368
- }, overlay.overlayProps.style],
5487
+ }],
5369
5488
  arrowStyle: overlay.arrowProps.style
5370
5489
  }), /*#__PURE__*/React__default["default"].createElement(Tooltip.Arrow, null), /*#__PURE__*/React__default["default"].createElement(Tooltip.Inner, null, title));
5371
5490
  })));
@@ -5453,7 +5572,7 @@ ListGroupContext.displayName = 'ListGroupContext';
5453
5572
 
5454
5573
  var _excluded$D = ["children", "color", "active", "first", "last", "disabled", "style", "textStyle"];
5455
5574
 
5456
- var _templateObject$y, _templateObject2$o, _templateObject3$c, _templateObject4$a, _templateObject5$8, _templateObject6$7, _templateObject7$5, _templateObject8$4, _templateObject9$2, _templateObject10$2, _templateObject11$2, _templateObject12$1, _templateObject13$1, _templateObject14$1;
5575
+ var _templateObject$y, _templateObject2$o, _templateObject3$c, _templateObject4$a, _templateObject5$8, _templateObject6$7, _templateObject7$5, _templateObject8$4, _templateObject9$3, _templateObject10$3, _templateObject11$3, _templateObject12$2, _templateObject13$2, _templateObject14$1;
5457
5576
  var propTypes$D = {
5458
5577
  children: PropTypes__default["default"].node.isRequired,
5459
5578
  color: PropTypes__default["default"].oneOf(Object.keys(THEME_COLORS)),
@@ -5475,14 +5594,14 @@ var styles$x = StyleSheet.create(_objectSpread2({
5475
5594
  '.list-group-item-disabled-text': css(_templateObject6$7 || (_templateObject6$7 = _taggedTemplateLiteral(["\n color: $list-group-disabled-color;\n "]))),
5476
5595
  '.list-group-item-active': css(_templateObject7$5 || (_templateObject7$5 = _taggedTemplateLiteral(["\n z-index: 2; // Place active items above their siblings for proper border styling\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n "]))),
5477
5596
  '.list-group-item-active-text': css(_templateObject8$4 || (_templateObject8$4 = _taggedTemplateLiteral(["\n color: $list-group-active-color;\n "]))),
5478
- '.list-group-item-not-first': css(_templateObject9$2 || (_templateObject9$2 = _taggedTemplateLiteral(["\n border-top-width: 0;\n "]))),
5479
- '.list-group-item-not-first-active': css(_templateObject10$2 || (_templateObject10$2 = _taggedTemplateLiteral(["\n margin-top: -$list-group-border-width;\n border-top-width: $list-group-border-width;\n "]))),
5480
- '.list-group-item-flush': css(_templateObject11$2 || (_templateObject11$2 = _taggedTemplateLiteral(["\n border-top-left-radius: 0; // added for bootstrap-rn\n border-top-right-radius: 0; // added for bootstrap-rn\n border-bottom-left-radius: 0; // added for bootstrap-rn\n border-bottom-right-radius: 0; // added for bootstrap-rn\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: $list-group-border-width;\n border-left-width: 0;\n "]))),
5481
- '.list-group-item-flush-last': css(_templateObject12$1 || (_templateObject12$1 = _taggedTemplateLiteral(["\n border-bottom-width: 0;\n "])))
5597
+ '.list-group-item-not-first': css(_templateObject9$3 || (_templateObject9$3 = _taggedTemplateLiteral(["\n border-top-width: 0;\n "]))),
5598
+ '.list-group-item-not-first-active': css(_templateObject10$3 || (_templateObject10$3 = _taggedTemplateLiteral(["\n margin-top: -$list-group-border-width;\n border-top-width: $list-group-border-width;\n "]))),
5599
+ '.list-group-item-flush': css(_templateObject11$3 || (_templateObject11$3 = _taggedTemplateLiteral(["\n border-top-left-radius: 0; // added for bootstrap-rn\n border-top-right-radius: 0; // added for bootstrap-rn\n border-bottom-left-radius: 0; // added for bootstrap-rn\n border-bottom-right-radius: 0; // added for bootstrap-rn\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: $list-group-border-width;\n border-left-width: 0;\n "]))),
5600
+ '.list-group-item-flush-last': css(_templateObject12$2 || (_templateObject12$2 = _taggedTemplateLiteral(["\n border-bottom-width: 0;\n "])))
5482
5601
  }, each(THEME_COLORS, function (state, value) {
5483
5602
  var _ref;
5484
5603
 
5485
- return _ref = {}, _defineProperty(_ref, ".list-group-item-".concat(state), css(_templateObject13$1 || (_templateObject13$1 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), shiftColor(function (t) {
5604
+ return _ref = {}, _defineProperty(_ref, ".list-group-item-".concat(state), css(_templateObject13$2 || (_templateObject13$2 = _taggedTemplateLiteral(["\n background-color: ", ";\n "])), shiftColor(function (t) {
5486
5605
  return t['list-group-item-bg-scale'];
5487
5606
  }, value))), _defineProperty(_ref, ".list-group-item-".concat(state, "-text"), css(_templateObject14$1 || (_templateObject14$1 = _taggedTemplateLiteral(["\n color: ", ";\n "])), shiftColor(function (t) {
5488
5607
  return t['list-group-item-color-scale'];
@@ -5796,9 +5915,7 @@ var computeScrollbarWidth = function computeScrollbarWidth() {
5796
5915
  };
5797
5916
 
5798
5917
  function useScrollbarEffects(_ref) {
5799
- var ref = _ref.ref,
5800
- keepBodyScroll = _ref.keepBodyScroll,
5801
- centered = _ref.centered,
5918
+ var keepBodyScroll = _ref.keepBodyScroll,
5802
5919
  visible = _ref.visible;
5803
5920
 
5804
5921
  if (reactNative.Platform.OS !== 'web' || keepBodyScroll) {
@@ -5813,9 +5930,9 @@ function useScrollbarEffects(_ref) {
5813
5930
 
5814
5931
  if (!scrollbarWidth.current) {
5815
5932
  scrollbarWidth.current = computeScrollbarWidth();
5816
- }
5933
+ } // const element = findNodeHandle(ref.current);
5934
+
5817
5935
 
5818
- var element = reactNative.findNodeHandle(ref.current);
5819
5936
  var rect = document.body.getBoundingClientRect();
5820
5937
  var isBodyOverflowing = rect.left + rect.right < window.innerWidth; // Set body and fixed elements padding adjustments.
5821
5938
 
@@ -5830,21 +5947,6 @@ function useScrollbarEffects(_ref) {
5830
5947
  // eslint-disable-next-line no-param-reassign
5831
5948
  el.style.width = "calc(100% - ".concat(scrollbarWidth.current, "px)");
5832
5949
  });
5833
- }
5834
-
5835
- var isModalOverflowing = element.scrollHeight > document.documentElement.clientHeight;
5836
-
5837
- if (centered) {
5838
- // Set dialog padding adjustments.
5839
- if (!isBodyOverflowing && isModalOverflowing) {
5840
- // eslint-disable-next-line no-param-reassign
5841
- element.style.paddingLeft = "".concat(scrollbarWidth.current, "px");
5842
- }
5843
-
5844
- if (isBodyOverflowing && !isModalOverflowing) {
5845
- // eslint-disable-next-line no-param-reassign
5846
- element.style.paddingRight = "".concat(scrollbarWidth.current, "px");
5847
- }
5848
5950
  } // Add "overflow: hidden" to body element.
5849
5951
 
5850
5952
 
@@ -5869,9 +5971,6 @@ function useModal(scrollable) {
5869
5971
  }, [scrollable]);
5870
5972
  }
5871
5973
 
5872
- var ModalContext = /*#__PURE__*/React__default["default"].createContext();
5873
- ModalContext.displayName = 'ModalContext';
5874
-
5875
5974
  var _excluded$y = ["children", "style"];
5876
5975
 
5877
5976
  var _templateObject$u;
@@ -5924,13 +6023,15 @@ var ModalTitle = /*#__PURE__*/React__default["default"].forwardRef(function (pro
5924
6023
  ModalTitle.displayName = 'ModalTitle';
5925
6024
  ModalTitle.propTypes = propTypes$x;
5926
6025
 
5927
- var _excluded$w = ["children", "style"];
6026
+ var _excluded$w = ["children", "style", "contentContainerStyle"];
5928
6027
 
5929
6028
  var _templateObject$s;
5930
6029
  var propTypes$w = {
5931
6030
  children: PropTypes__default["default"].node.isRequired,
5932
6031
  // eslint-disable-next-line react/forbid-prop-types
5933
- style: PropTypes__default["default"].any
6032
+ style: PropTypes__default["default"].any,
6033
+ // eslint-disable-next-line react/forbid-prop-types
6034
+ contentContainerStyle: PropTypes__default["default"].any
5934
6035
  };
5935
6036
  var styles$s = StyleSheet.create({
5936
6037
  '.modal-body': css(_templateObject$s || (_templateObject$s = _taggedTemplateLiteral(["\n position: relative;\n // Enable \"flex-grow: 1\" so that the body take up as much space as possible\n // when there should be a fixed height on \".modal-dialog\".\n // Note from bootstrap-rn: Centered modals do not work with this style, but\n // everything just works fine without this style.\n // flex: 1 1 auto;\n padding: $modal-inner-padding;\n "])))
@@ -5938,6 +6039,7 @@ var styles$s = StyleSheet.create({
5938
6039
  var ModalBody = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
5939
6040
  var children = props.children,
5940
6041
  style = props.style,
6042
+ contentContainerStyle = props.contentContainerStyle,
5941
6043
  elementProps = _objectWithoutProperties(props, _excluded$w);
5942
6044
 
5943
6045
  var _useForcedContext = useForcedContext(ModalContext),
@@ -5947,8 +6049,8 @@ var ModalBody = /*#__PURE__*/React__default["default"].forwardRef(function (prop
5947
6049
  var FlexView = scrollable ? ScrollView : View;
5948
6050
  return /*#__PURE__*/React__default["default"].createElement(FlexView, _extends({}, elementProps, {
5949
6051
  ref: ref,
5950
- style: scrollable ? undefined : [classes, style],
5951
- contentContainerStyle: scrollable ? [classes, style] : undefined
6052
+ style: scrollable ? style : [classes, style],
6053
+ contentContainerStyle: scrollable ? [classes, contentContainerStyle] : undefined
5952
6054
  }), children);
5953
6055
  });
5954
6056
  ModalBody.displayName = 'ModalBody';
@@ -5981,7 +6083,7 @@ ModalFooter.propTypes = propTypes$v;
5981
6083
 
5982
6084
  var _excluded$u = ["children", "visible", "size", "backdrop", "scrollable", "centered", "onToggle", "style", "textStyle"];
5983
6085
 
5984
- var _templateObject$q, _templateObject2$l, _templateObject3$a, _templateObject4$8, _templateObject5$6, _templateObject6$5, _templateObject7$4, _templateObject8$3, _templateObject9$1, _templateObject10$1, _templateObject11$1;
6086
+ var _templateObject$q, _templateObject2$l, _templateObject3$a, _templateObject4$8, _templateObject5$6, _templateObject6$5, _templateObject7$4, _templateObject8$3, _templateObject9$2, _templateObject10$2, _templateObject11$2;
5985
6087
  var MODAL_SIZES = ['sm', 'lg', 'xl'];
5986
6088
  var propTypes$u = {
5987
6089
  children: PropTypes__default["default"].node.isRequired,
@@ -5998,16 +6100,16 @@ var propTypes$u = {
5998
6100
  };
5999
6101
  var styles$q = StyleSheet.create({
6000
6102
  '.modal': css(_templateObject$q || (_templateObject$q = _taggedTemplateLiteral(["\n position: absolute; // fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n // display: none;\n width: 100%;\n height: 100%;\n // overflow-x: hidden;\n // overflow-y: auto;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n @include platform(web) {\n outline-width: 0; // outline: 0;\n }\n // We deliberately don't use \"-webkit-overflow-scrolling: touch;\" due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n "]))),
6001
- '.modal-dialog': css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteral(["\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n // pointer-events: none;\n align-self: center; // added for bootstrap-rn\n\n @include media-breakpoint-up(sm) {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up;\n }\n "]))),
6103
+ '.modal-dialog': css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteral(["\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n // pointer-events: none;\n\n @include media-breakpoint-up(sm) {\n width: 100%; // added for bootstrap-rn\n max-width: $modal-md;\n margin-right: auto;\n margin-left: auto;\n }\n "]))),
6002
6104
  '.modal-dialog-scrollable': css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n flex-shrink: 1; // added for bootstrap-rn\n // height: calc(100% - var(--#{$prefix}modal-margin) * 2);\n "]))),
6003
6105
  '.modal-dialog-scrollable .modal-content': css(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteral(["\n max-height: 100%;\n overflow: hidden;\n "]))),
6004
6106
  '.modal-dialog-centered': css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row; // added for bootstrap-rn\n flex-grow: 1; // added for bootstrap-rn\n align-items: center;\n // min-height: calc(100% - var(--#{$prefix}modal-margin) * 2);\n "]))),
6005
6107
  '.modal-content': css(_templateObject6$5 || (_templateObject6$5 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure \".modal-content\" extends the full width of the parent \".modal-dialog\"\n // counteract the pointer-events: none; in the .modal-dialog\n // pointer-events: auto;\n background-color: $modal-content-bg;\n // background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n border-radius: $modal-content-border-radius;\n // @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n // outline: 0;\n\n @include media-breakpoint-up(sm) {\n // @include box-shadow($modal-content-box-shadow-sm-up);\n }\n "]))),
6006
6108
  '.modal-content-text': css(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteral(["\n color: $modal-content-color;\n "]))),
6007
6109
  '.modal-backdrop': css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100%;\n height: 100%;\n background-color: $modal-backdrop-bg;\n opacity: $modal-backdrop-opacity;\n "]))),
6008
- '.modal-sm': css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(sm) {\n max-width: $modal-sm;\n }\n "]))),
6009
- '.modal-lg': css(_templateObject10$1 || (_templateObject10$1 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(lg) {\n max-width: $modal-lg;\n }\n "]))),
6010
- '.modal-xl': css(_templateObject11$1 || (_templateObject11$1 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(lg) {\n max-width: $modal-lg;\n }\n @include media-breakpoint-up(xl) {\n max-width: $modal-xl;\n }\n "])))
6110
+ '.modal-sm': css(_templateObject9$2 || (_templateObject9$2 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(sm) {\n max-width: $modal-sm;\n }\n "]))),
6111
+ '.modal-lg': css(_templateObject10$2 || (_templateObject10$2 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(lg) {\n max-width: $modal-lg;\n }\n @include media-breakpoint-up(xl) {\n max-width: $modal-xl;\n }\n "]))),
6112
+ '.modal-xl': css(_templateObject11$2 || (_templateObject11$2 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(xl) {\n max-width: $modal-xl;\n }\n "])))
6011
6113
  });
6012
6114
  var Modal = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
6013
6115
  var children = props.children,
@@ -6024,13 +6126,10 @@ var Modal = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
6024
6126
  textStyle = props.textStyle,
6025
6127
  elementProps = _objectWithoutProperties(props, _excluded$u);
6026
6128
 
6027
- var modalRef = React.useRef();
6028
6129
  var dialogRef = React.useRef();
6029
6130
  var modal = useModal(scrollable);
6030
6131
  useScrollbarEffects({
6031
- ref: modalRef,
6032
6132
  keepBodyScroll: false,
6033
- centered: true,
6034
6133
  visible: visible
6035
6134
  });
6036
6135
  var backdropClasses = getStyles(styles$q, ['.modal-backdrop']);
@@ -6047,7 +6146,6 @@ var Modal = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
6047
6146
  }, backdrop && /*#__PURE__*/React__default["default"].createElement(View, {
6048
6147
  style: backdropClasses
6049
6148
  }), /*#__PURE__*/React__default["default"].createElement(FlexView, {
6050
- ref: modalRef,
6051
6149
  style: classes,
6052
6150
  contentContainerStyle: scrollable ? undefined : {
6053
6151
  flexGrow: 1
@@ -6056,7 +6154,11 @@ var Modal = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
6056
6154
  dialogRef: dialogRef,
6057
6155
  onClose: handleToggle,
6058
6156
  backdrop: backdrop
6059
- }), /*#__PURE__*/React__default["default"].createElement(View, {
6157
+ }), /*#__PURE__*/React__default["default"].createElement(reactNative.SafeAreaView, {
6158
+ style: {
6159
+ flexShrink: 1
6160
+ }
6161
+ }, /*#__PURE__*/React__default["default"].createElement(View, {
6060
6162
  ref: dialogRef,
6061
6163
  style: dialogClasses
6062
6164
  }, /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
@@ -6065,7 +6167,7 @@ var Modal = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
6065
6167
  textStyle: [contentTextClasses, textStyle]
6066
6168
  }), /*#__PURE__*/React__default["default"].createElement(ModalContext.Provider, {
6067
6169
  value: modal
6068
- }, children)))));
6170
+ }, /*#__PURE__*/React__default["default"].createElement(overlays.OverlayProvider, null, children)))))));
6069
6171
  });
6070
6172
  Modal.displayName = 'Modal';
6071
6173
  Modal.propTypes = propTypes$u;
@@ -6080,7 +6182,7 @@ NavContext.displayName = 'NavContext';
6080
6182
 
6081
6183
  var _excluded$t = ["children", "active", "disabled", "style", "activeStyle", "textStyle", "activeTextStyle"];
6082
6184
 
6083
- var _templateObject$p, _templateObject2$k, _templateObject3$9, _templateObject4$7, _templateObject5$5, _templateObject6$4, _templateObject7$3, _templateObject8$2, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20;
6185
+ var _templateObject$p, _templateObject2$k, _templateObject3$9, _templateObject4$7, _templateObject5$5, _templateObject6$4, _templateObject7$3, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11$1, _templateObject12$1, _templateObject13$1, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20;
6084
6186
  var propTypes$t = {
6085
6187
  children: PropTypes__default["default"].node.isRequired,
6086
6188
  active: PropTypes__default["default"].bool,
@@ -6103,12 +6205,12 @@ var styles$p = StyleSheet.create(_objectSpread2(_objectSpread2({
6103
6205
  '.nav-tabs .nav-link-disabled': css(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteral(["\n background-color: transparent;\n border-color: transparent;\n "]))),
6104
6206
  '.nav-tabs .nav-link-disabled-text': css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteral(["\n color: $nav-link-disabled-color;\n "]))),
6105
6207
  '.nav-tabs .nav-link-active': css(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteral(["\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n\n &:hover {\n background-color: $nav-tabs-link-active-bg; // added for bootstrap-rn\n border-color: $nav-tabs-link-active-border-color; // added for bootstrap-rn\n }\n &:focus {\n background-color: $nav-tabs-link-active-bg; // added for bootstrap-rn\n border-color: $nav-tabs-link-active-border-color; // added for bootstrap-rn\n }\n "]))),
6106
- '.nav-tabs .nav-link-active-text': css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n color: $nav-tabs-link-active-color;\n\n &:hover {\n color: $nav-tabs-link-active-color; // added for bootstrap-rn\n }\n &:focus {\n color: $nav-tabs-link-active-color; // added for bootstrap-rn\n }\n "]))),
6107
- '.nav-pills .nav-link': css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n background: transparent; // none;\n border: 0;\n border-radius: $nav-pills-border-radius;\n "]))),
6108
- '.nav-pills .nav-link-active': css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n // @include gradient-bg($nav-pills-link-active-bg);\n background-color: $nav-pills-link-active-bg; // added for bootstrap-rn\n\n &:hover {\n background-color: $nav-pills-link-active-bg; // added for bootstrap-rn\n }\n &:focus {\n background-color: $nav-pills-link-active-bg; // added for bootstrap-rn\n }\n "]))),
6109
- '.nav-pills .nav-link-active-text': css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n color: $nav-pills-link-active-color;\n\n &:hover {\n color: $nav-pills-link-active-color; // added for bootstrap-rn\n }\n &:focus {\n color: $nav-pills-link-active-color; // added for bootstyl\n }\n "]))),
6208
+ '.nav-tabs .nav-link-active-text': css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n color: $nav-tabs-link-active-color;\n\n &:hover {\n color: $nav-tabs-link-active-color; // added for bootstrap-rn\n }\n &:focus {\n color: $nav-tabs-link-active-color; // added for bootstrap-rn\n }\n "]))),
6209
+ '.nav-pills .nav-link': css(_templateObject10$1 || (_templateObject10$1 = _taggedTemplateLiteral(["\n background: transparent; // none;\n border: 0;\n border-radius: $nav-pills-border-radius;\n "]))),
6210
+ '.nav-pills .nav-link-active': css(_templateObject11$1 || (_templateObject11$1 = _taggedTemplateLiteral(["\n // @include gradient-bg($nav-pills-link-active-bg);\n background-color: $nav-pills-link-active-bg; // added for bootstrap-rn\n\n &:hover {\n background-color: $nav-pills-link-active-bg; // added for bootstrap-rn\n }\n &:focus {\n background-color: $nav-pills-link-active-bg; // added for bootstrap-rn\n }\n "]))),
6211
+ '.nav-pills .nav-link-active-text': css(_templateObject12$1 || (_templateObject12$1 = _taggedTemplateLiteral(["\n color: $nav-pills-link-active-color;\n\n &:hover {\n color: $nav-pills-link-active-color; // added for bootstrap-rn\n }\n &:focus {\n color: $nav-pills-link-active-color; // added for bootstyl\n }\n "]))),
6110
6212
  // Navbar styles
6111
- '.navbar-nav .nav-link': css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n padding-right: 0;\n padding-left: 0;\n "])))
6213
+ '.navbar-nav .nav-link': css(_templateObject13$1 || (_templateObject13$1 = _taggedTemplateLiteral(["\n padding-right: 0;\n padding-left: 0;\n "])))
6112
6214
  }, each(GRID_BREAKPOINTS, function (breakpoint) {
6113
6215
  return _defineProperty({}, ".navbar-expand".concat(infix(next(breakpoint)), " .navbar-nav .nav-link"), css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n "])), next(breakpoint)));
6114
6216
  })), {}, {
@@ -6406,7 +6508,7 @@ function useNavbar(variant, defaultExpanded, controlledExpanded, onToggle, expan
6406
6508
  setExpanded: setExpanded,
6407
6509
  expand: expand
6408
6510
  };
6409
- }, [variant, expanded]);
6511
+ }, [variant, expanded, expand]);
6410
6512
  }
6411
6513
 
6412
6514
  var _excluded$m = ["onPress"];
@@ -6473,6 +6575,12 @@ Navbar.Toggler = NavbarToggler;
6473
6575
  Navbar.useDismiss = useDismissNavbar;
6474
6576
  Navbar.useToggle = useToggleNavbar;
6475
6577
 
6578
+ function useOffcanvas() {
6579
+ return React.useMemo(function () {
6580
+ return {};
6581
+ }, []);
6582
+ }
6583
+
6476
6584
  var _excluded$k = ["children", "style"];
6477
6585
 
6478
6586
  var _templateObject$i, _templateObject2$d;
@@ -6528,29 +6636,33 @@ var OffcanvasTitle = /*#__PURE__*/React__default["default"].forwardRef(function
6528
6636
  OffcanvasTitle.displayName = 'OffcanvasTitle';
6529
6637
  OffcanvasTitle.propTypes = propTypes$l;
6530
6638
 
6531
- var _excluded$i = ["children", "style"];
6639
+ var _excluded$i = ["children", "style", "contentContainerStyle"];
6532
6640
 
6533
6641
  var _templateObject$g, _templateObject2$c;
6534
6642
  var propTypes$k = {
6535
6643
  children: PropTypes__default["default"].node.isRequired,
6536
6644
  // eslint-disable-next-line react/forbid-prop-types
6537
- style: PropTypes__default["default"].any
6645
+ style: PropTypes__default["default"].any,
6646
+ // eslint-disable-next-line react/forbid-prop-types
6647
+ contentContainerStyle: PropTypes__default["default"].any
6538
6648
  };
6539
6649
  var styles$g = StyleSheet.create(_objectSpread2({
6540
- '.offcanvas-body': css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n flex-grow: 1;\n padding: $offcanvas-padding-y $offcanvas-padding-x;\n // overflow-y: auto;\n "])))
6650
+ '.offcanvas-body': css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n // flex-grow: 1;\n padding: $offcanvas-padding-y $offcanvas-padding-x;\n // overflow-y: auto;\n "])))
6541
6651
  }, each(GRID_BREAKPOINTS, function (breakpoint) {
6542
6652
  return _defineProperty({}, ".navbar-expand".concat(infix(next(breakpoint)), " .offcanvas-body"), css(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n display: flex;\n flex-grow: 0;\n padding: 0;\n // overflow-y: visible;\n }\n "])), next(breakpoint)));
6543
6653
  })));
6544
6654
  var OffcanvasBody = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
6545
6655
  var children = props.children,
6546
6656
  style = props.style,
6657
+ contentContainerStyle = props.contentContainerStyle,
6547
6658
  elementProps = _objectWithoutProperties(props, _excluded$i);
6548
6659
 
6549
6660
  var navbar = React.useContext(NavbarContext);
6550
- var classes = getStyles(styles$g, ['.offcanvas-body', navbar && navbar.expand && ".navbar-expand".concat(navbar.expand === true ? '' : "-".concat(navbar.expand), " .offcanvas-body")]);
6551
- return /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
6661
+ var contentContainerClasses = getStyles(styles$g, ['.offcanvas-body', navbar && navbar.expand && ".navbar-expand".concat(navbar.expand === true ? '' : "-".concat(navbar.expand), " .offcanvas-body")]);
6662
+ return /*#__PURE__*/React__default["default"].createElement(ScrollView, _extends({}, elementProps, {
6552
6663
  ref: ref,
6553
- style: [classes, style]
6664
+ style: style,
6665
+ contentContainerStyle: [contentContainerClasses, contentContainerStyle]
6554
6666
  }), children);
6555
6667
  });
6556
6668
  OffcanvasBody.displayName = 'OffcanvasBody';
@@ -6558,7 +6670,7 @@ OffcanvasBody.propTypes = propTypes$k;
6558
6670
 
6559
6671
  var _excluded$h = ["children", "visible", "placement", "backdrop", "scroll", "onToggle", "style", "textStyle"];
6560
6672
 
6561
- var _templateObject$f, _templateObject2$b, _templateObject3$4, _templateObject4$3, _templateObject5$3, _templateObject6$2, _templateObject7$1, _templateObject8;
6673
+ var _templateObject$f, _templateObject2$b, _templateObject3$4, _templateObject4$3, _templateObject5$3, _templateObject6$2, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
6562
6674
  var PLACEMENTS = ['top', 'bottom', 'start', 'end']; // , 'auto'
6563
6675
 
6564
6676
  var propTypes$j = {
@@ -6575,15 +6687,23 @@ var propTypes$j = {
6575
6687
  textStyle: PropTypes__default["default"].any
6576
6688
  };
6577
6689
  var styles$f = StyleSheet.create(_objectSpread2({
6578
- '.offcanvas': css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n position: absolute; // fixed;\n bottom: 0;\n z-index: $zindex-offcanvas;\n display: flex;\n flex-direction: column;\n max-width: 100%;\n // visibility: hidden;\n background-color: $offcanvas-bg-color;\n // background-clip: padding-box;\n @include platform(web) {\n outline-width: 0; // outline: 0;\n }\n // @include box-shadow($offcanvas-box-shadow);\n // @include transition(transform $offcanvas-transition-duration ease-in-out);\n "]))),
6690
+ '.offcanvas': css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n position: absolute; // fixed;\n // bottom: 0;\n z-index: $zindex-offcanvas;\n display: flex;\n flex-direction: column;\n max-width: 100%;\n // visibility: hidden;\n background-color: $offcanvas-bg-color;\n // background-clip: padding-box;\n @include platform(web) {\n outline-width: 0; // outline: 0;\n }\n // @include box-shadow($offcanvas-box-shadow);\n // @include transition(transform $offcanvas-transition-duration ease-in-out);\n "]))),
6579
6691
  '.offcanvas-text': css(_templateObject2$b || (_templateObject2$b = _taggedTemplateLiteral(["\n color: $offcanvas-color;\n "]))),
6580
6692
  '.offcanvas-backdrop': css(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-offcanvas-backdrop;\n width: 100%;\n height: 100%;\n background-color: $offcanvas-backdrop-bg;\n opacity: $offcanvas-backdrop-opacity;\n "]))),
6581
- '.offcanvas-start': css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n top: 0;\n left: 0;\n width: $offcanvas-horizontal-width;\n border-right-width: $offcanvas-border-width;\n border-style: solid;\n border-color: $offcanvas-border-color;\n // transform: translateX(-100%);\n "]))),
6582
- '.offcanvas-end': css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n top: 0;\n right: 0;\n width: $offcanvas-horizontal-width;\n border-left-width: $offcanvas-border-width;\n border-style: solid;\n border-color: $offcanvas-border-color;\n // transform: translateX(100%);\n "]))),
6583
- '.offcanvas-top': css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n top: 0;\n right: 0;\n left: 0;\n height: $offcanvas-vertical-height;\n max-height: 100%;\n border-bottom-width: $offcanvas-border-width;\n border-style: solid;\n border-color: $offcanvas-border-color;\n // transform: translateY(-100%);\n "]))),
6584
- '.offcanvas-bottom': css(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n right: 0;\n left: 0;\n height: $offcanvas-vertical-height;\n max-height: 100%;\n width: 100%;\n border-top-width: $offcanvas-border-width;\n border-style: solid;\n border-color: $offcanvas-border-color;\n // transform: translateY(100%);\n "])))
6693
+ '.offcanvas-start': css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n top: 0;\n bottom: 0; // added for bootstrap-rn\n left: 0;\n // width: $offcanvas-horizontal-width;\n border-right-width: $offcanvas-border-width;\n border-style: solid;\n border-color: $offcanvas-border-color;\n // transform: translateX(-100%);\n "]))),
6694
+ '.offcanvas-end': css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n top: 0;\n bottom: 0; // added for bootstrap-rn\n right: 0;\n // width: $offcanvas-horizontal-width;\n border-left-width: $offcanvas-border-width;\n border-style: solid;\n border-color: $offcanvas-border-color;\n // transform: translateX(100%);\n "]))),
6695
+ '.offcanvas-top': css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n top: 0;\n right: 0;\n left: 0;\n // height: $offcanvas-vertical-height;\n max-height: 100%;\n border-bottom-width: $offcanvas-border-width;\n border-style: solid;\n border-color: $offcanvas-border-color;\n // transform: translateY(-100%);\n "]))),
6696
+ '.offcanvas-bottom': css(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n bottom: 0; // added for bootstrap-rn\n right: 0;\n left: 0;\n // height: $offcanvas-vertical-height;\n max-height: 100%;\n width: 100%;\n border-top-width: $offcanvas-border-width;\n border-style: solid;\n border-color: $offcanvas-border-color;\n // transform: translateY(100%);\n "]))),
6697
+ // The following .offcanvas-dialog classes are added for bootstrap-rn,
6698
+ // because otherwise the text would exceed a width of 100% on native
6699
+ // and also additional width by SafeAreaView would not be applied.
6700
+ '.offcanvas-dialog': css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n max-width: 100%;\n max-height: 100%;\n "]))),
6701
+ '.offcanvas-dialog-start': css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: $offcanvas-horizontal-width;\n "]))),
6702
+ '.offcanvas-dialog-end': css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n width: $offcanvas-horizontal-width;\n "]))),
6703
+ '.offcanvas-dialog-top': css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n height: $offcanvas-vertical-height;\n "]))),
6704
+ '.offcanvas-dialog-bottom': css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n height: $offcanvas-vertical-height;\n "])))
6585
6705
  }, each(GRID_BREAKPOINTS, function (breakpoint) {
6586
- return _defineProperty({}, ".navbar-expand".concat(infix(next(breakpoint)), " .offcanvas"), css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n position: relative; // inherit;\n bottom: 0;\n // z-index: auto;\n flex-grow: 1;\n // visibility: visible !important; // stylelint-disable-line declaration-no-important\n background-color: transparent;\n border-right-width: 0;\n border-left-width: 0;\n // @include box-shadow(none);\n // @include transition(none);\n // transform: none;\n }\n "])), next(breakpoint)));
6706
+ return _defineProperty({}, ".navbar-expand".concat(infix(next(breakpoint)), " .offcanvas"), css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n @include media-breakpoint-up(", ") {\n position: relative; // inherit;\n bottom: 0;\n // z-index: auto;\n flex-grow: 1;\n // visibility: visible !important; // stylelint-disable-line declaration-no-important\n background-color: transparent;\n border-right-width: 0;\n border-left-width: 0;\n // @include box-shadow(none);\n // @include transition(none);\n // transform: none;\n }\n "])), next(breakpoint)));
6587
6707
  })));
6588
6708
  var Offcanvas = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
6589
6709
  var children = props.children,
@@ -6602,14 +6722,14 @@ var Offcanvas = /*#__PURE__*/React__default["default"].forwardRef(function (prop
6602
6722
  var media = useMedia();
6603
6723
  var navbar = React.useContext(NavbarContext);
6604
6724
  var offcanvasRef = React.useRef();
6725
+ var offcanvas = useOffcanvas();
6605
6726
  useScrollbarEffects({
6606
- ref: offcanvasRef,
6607
6727
  keepBodyScroll: scroll,
6608
- centered: false,
6609
6728
  visible: visible
6610
6729
  });
6611
6730
  var backdropClasses = getStyles(styles$f, ['.offcanvas-backdrop']);
6612
6731
  var classes = getStyles(styles$f, ['.offcanvas', ".offcanvas-".concat(placement), navbar && navbar.expand && ".navbar-expand".concat(navbar.expand === true ? '' : "-".concat(navbar.expand), " .offcanvas")]);
6732
+ var dialogClasses = getStyles(styles$f, ['.offcanvas-dialog', ".offcanvas-dialog-".concat(placement)]);
6613
6733
  var textClasses = getStyles(styles$f, ['.offcanvas-content-text']); // Render children without modal for navbar.
6614
6734
 
6615
6735
  if (navbar && navbar.expand && (navbar.expand === true || media.up(navbar.expand))) {
@@ -6630,14 +6750,23 @@ var Offcanvas = /*#__PURE__*/React__default["default"].forwardRef(function (prop
6630
6750
  dialogRef: offcanvasRef,
6631
6751
  onClose: handleToggle,
6632
6752
  backdrop: backdrop
6633
- })), /*#__PURE__*/React__default["default"].createElement(ScrollView, _extends({}, elementProps, {
6753
+ })), /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
6634
6754
  ref: concatRefs(offcanvasRef, ref),
6635
6755
  style: [classes, style],
6636
6756
  textStyle: [textClasses, textStyle]
6637
- }), children));
6757
+ }), /*#__PURE__*/React__default["default"].createElement(reactNative.SafeAreaView, {
6758
+ style: {
6759
+ flexShrink: 1
6760
+ }
6761
+ }, /*#__PURE__*/React__default["default"].createElement(View, {
6762
+ style: dialogClasses
6763
+ }, /*#__PURE__*/React__default["default"].createElement(OffcanvasContext.Provider, {
6764
+ value: offcanvas
6765
+ }, /*#__PURE__*/React__default["default"].createElement(overlays.OverlayProvider, null, children))))));
6638
6766
  });
6639
6767
  Offcanvas.displayName = 'Offcanvas';
6640
6768
  Offcanvas.propTypes = propTypes$j;
6769
+ Offcanvas.Context = OffcanvasContext;
6641
6770
  Offcanvas.Header = OffcanvasHeader;
6642
6771
  Offcanvas.Title = OffcanvasTitle;
6643
6772
  Offcanvas.Body = OffcanvasBody;