bootstrap-rn 0.1.0 → 0.1.1

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.
@@ -8,16 +8,16 @@ var polished = require('polished');
8
8
  var React = require('react');
9
9
  var reactNativeSvg = require('react-native-svg');
10
10
  var PropTypes = require('prop-types');
11
+ var overlays = require('@react-native-aria/overlays');
11
12
  var invariant = require('tiny-invariant');
12
- var reactNative$1 = require('@floating-ui/react-native');
13
- var Overlay = require('react-native-popover-view');
13
+ var Overlay$1 = require('react-native-popover-view');
14
14
 
15
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
16
 
17
17
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
18
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
19
19
  var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant);
20
- var Overlay__default = /*#__PURE__*/_interopDefaultLegacy(Overlay);
20
+ var Overlay__default = /*#__PURE__*/_interopDefaultLegacy(Overlay$1);
21
21
 
22
22
  function ownKeys(object, enumerableOnly) {
23
23
  var keys = Object.keys(object);
@@ -1046,6 +1046,11 @@ function convertToREM(value) {
1046
1046
  return "".concat(unary || '').concat(number / (reactNative.PixelRatio.getFontScale() * 16), "rem");
1047
1047
  });
1048
1048
  }
1049
+ function convertToNumber(value) {
1050
+ return parseFloat(value.replace(/([+-]+)?([\d.Ee]+)rem/g, function (_, unary, number) {
1051
+ return "".concat(unary || '').concat(reactNative.PixelRatio.getFontScale() * 16 * number, "px");
1052
+ }));
1053
+ }
1049
1054
 
1050
1055
  // keys, but not the resolved values. The values are added later by the used
1051
1056
  // theme.
@@ -2617,7 +2622,7 @@ function useViewport(initialViewport) {
2617
2622
  return viewport;
2618
2623
  }
2619
2624
 
2620
- var propTypes$1e = {
2625
+ var propTypes$1f = {
2621
2626
  children: PropTypes__default["default"].node.isRequired,
2622
2627
  // eslint-disable-next-line react/forbid-prop-types,
2623
2628
  utilities: PropTypes__default["default"].object,
@@ -2648,15 +2653,15 @@ function Provider(props) {
2648
2653
  };
2649
2654
  return /*#__PURE__*/React__default["default"].createElement(Context.Provider, {
2650
2655
  value: context
2651
- }, children);
2656
+ }, /*#__PURE__*/React__default["default"].createElement(overlays.OverlayProvider, null, children));
2652
2657
  }
2653
2658
 
2654
- Provider.propTypes = propTypes$1e;
2659
+ Provider.propTypes = propTypes$1f;
2655
2660
 
2656
2661
  var TextStyleContext = /*#__PURE__*/React__default["default"].createContext();
2657
2662
  TextStyleContext.displayName = 'TextStyleContext';
2658
2663
 
2659
- var propTypes$1d = {
2664
+ var propTypes$1e = {
2660
2665
  children: PropTypes__default["default"].node,
2661
2666
  // eslint-disable-next-line react/forbid-prop-types
2662
2667
  style: PropTypes__default["default"].any
@@ -2674,7 +2679,7 @@ function TextStyleProvider(props) {
2674
2679
  }, children);
2675
2680
  }
2676
2681
 
2677
- TextStyleProvider.propTypes = propTypes$1d;
2682
+ TextStyleProvider.propTypes = propTypes$1e;
2678
2683
 
2679
2684
  function useMedia() {
2680
2685
  var context = React.useContext(Context);
@@ -2755,7 +2760,7 @@ function useStyle(style, styleName) {
2755
2760
  }
2756
2761
 
2757
2762
  var _excluded$1g = ["style", "styleName"];
2758
- var propTypes$1c = {
2763
+ var propTypes$1d = {
2759
2764
  // eslint-disable-next-line react/forbid-prop-types
2760
2765
  style: PropTypes__default["default"].any,
2761
2766
  // eslint-disable-next-line react/forbid-prop-types
@@ -2776,12 +2781,12 @@ var View = /*#__PURE__*/React__default["default"].forwardRef(function (props, re
2776
2781
  }));
2777
2782
  });
2778
2783
  View.displayName = 'View';
2779
- View.propTypes = propTypes$1c;
2784
+ View.propTypes = propTypes$1d;
2780
2785
 
2781
2786
  var _excluded$1f = ["children", "color", "dismissible", "style"];
2782
2787
 
2783
2788
  var _templateObject$_, _templateObject2$F, _templateObject3$k;
2784
- var propTypes$1b = {
2789
+ var propTypes$1c = {
2785
2790
  children: PropTypes__default["default"].node.isRequired,
2786
2791
  color: PropTypes__default["default"].oneOf(Object.keys(THEME_COLORS)),
2787
2792
  dismissible: PropTypes__default["default"].bool,
@@ -2824,12 +2829,12 @@ var Alert = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
2824
2829
  }, children));
2825
2830
  });
2826
2831
  Alert.displayName = 'Alert';
2827
- Alert.propTypes = propTypes$1b;
2832
+ Alert.propTypes = propTypes$1c;
2828
2833
 
2829
2834
  var _excluded$1e = ["color", "bold", "italic", "mark", "small", "style", "styleName"];
2830
2835
 
2831
2836
  var _templateObject$Z, _templateObject2$E, _templateObject3$j, _templateObject4$f, _templateObject5$d;
2832
- var propTypes$1a = {
2837
+ var propTypes$1b = {
2833
2838
  color: PropTypes__default["default"].oneOf(Object.keys(THEME_COLORS)),
2834
2839
  small: PropTypes__default["default"].bool,
2835
2840
  mark: PropTypes__default["default"].bool,
@@ -2898,12 +2903,12 @@ var Text = /*#__PURE__*/React__default["default"].forwardRef(function (props, re
2898
2903
  }, element);
2899
2904
  });
2900
2905
  Text.displayName = 'Text';
2901
- Text.propTypes = propTypes$1a;
2906
+ Text.propTypes = propTypes$1b;
2902
2907
 
2903
2908
  var _excluded$1d = ["children", "color", "style", "styleName"];
2904
2909
 
2905
2910
  var _templateObject$Y, _templateObject2$D;
2906
- var propTypes$19 = {
2911
+ var propTypes$1a = {
2907
2912
  children: PropTypes__default["default"].node.isRequired,
2908
2913
  color: PropTypes__default["default"].oneOf(Object.keys(THEME_COLORS)),
2909
2914
  // eslint-disable-next-line react/forbid-prop-types
@@ -2942,7 +2947,7 @@ var Badge = /*#__PURE__*/React__default["default"].forwardRef(function (props, r
2942
2947
  }, /*#__PURE__*/React__default["default"].createElement(Text, null, children)));
2943
2948
  });
2944
2949
  Badge.displayName = 'Badge';
2945
- Badge.propTypes = propTypes$19;
2950
+ Badge.propTypes = propTypes$1a;
2946
2951
 
2947
2952
  var ButtonGroupContext = /*#__PURE__*/React__default["default"].createContext();
2948
2953
  ButtonGroupContext.displayName = 'ButtonGroupContext';
@@ -2950,7 +2955,7 @@ ButtonGroupContext.displayName = 'ButtonGroupContext';
2950
2955
  var _excluded$1c = ["children", "size", "style"];
2951
2956
 
2952
2957
  var _templateObject$X;
2953
- var propTypes$18 = {
2958
+ var propTypes$19 = {
2954
2959
  children: PropTypes__default["default"].node.isRequired,
2955
2960
  size: PropTypes__default["default"].oneOf(['lg', 'sm']),
2956
2961
  // eslint-disable-next-line react/forbid-prop-types
@@ -2979,12 +2984,12 @@ var ButtonGroup = /*#__PURE__*/React__default["default"].forwardRef(function (pr
2979
2984
  }, makeListChildren(children)));
2980
2985
  });
2981
2986
  ButtonGroup.displayName = 'ButtonGroup';
2982
- ButtonGroup.propTypes = propTypes$18;
2987
+ ButtonGroup.propTypes = propTypes$19;
2983
2988
 
2984
2989
  var _excluded$1b = ["children", "style"];
2985
2990
 
2986
2991
  var _templateObject$W;
2987
- var propTypes$17 = {
2992
+ var propTypes$18 = {
2988
2993
  children: PropTypes__default["default"].node.isRequired,
2989
2994
  // eslint-disable-next-line react/forbid-prop-types
2990
2995
  style: PropTypes__default["default"].any
@@ -3005,11 +3010,11 @@ var ButtonToolbar = /*#__PURE__*/React__default["default"].forwardRef(function (
3005
3010
  }), children);
3006
3011
  });
3007
3012
  ButtonToolbar.displayName = 'ButtonToolbar';
3008
- ButtonToolbar.propTypes = propTypes$17;
3013
+ ButtonToolbar.propTypes = propTypes$18;
3009
3014
 
3010
3015
  function useForcedContext(Context) {
3011
3016
  var context = React.useContext(Context);
3012
- invariant__default["default"](context, "Failed to get context \"".concat(Context.dispalyName, "\"."));
3017
+ invariant__default["default"](context, "Failed to get context \"".concat(Context.displayName, "\"."));
3013
3018
  return context;
3014
3019
  }
3015
3020
 
@@ -3063,7 +3068,7 @@ function useAction(props, ref) {
3063
3068
  }
3064
3069
 
3065
3070
  var _excluded$18 = ["children", "active", "style", "activeStyle", "textStyle", "activeTextStyle", "styleName"];
3066
- var propTypes$16 = {
3071
+ var propTypes$17 = {
3067
3072
  children: PropTypes__default["default"].node,
3068
3073
  active: PropTypes__default["default"].bool,
3069
3074
  // eslint-disable-next-line react/forbid-prop-types
@@ -3152,7 +3157,7 @@ var Pressable = /*#__PURE__*/React__default["default"].forwardRef(function (prop
3152
3157
  } : children);
3153
3158
  });
3154
3159
  Pressable.displayName = 'Pressable';
3155
- Pressable.propTypes = propTypes$16;
3160
+ Pressable.propTypes = propTypes$17;
3156
3161
 
3157
3162
  var _excluded$17 = ["active", "handlePress"];
3158
3163
  function useToggleButton(props) {
@@ -3180,7 +3185,7 @@ function useToggleButton(props) {
3180
3185
  var _excluded$16 = ["children", "color", "size", "outline", "first", "last", "active", "disabled", "style", "activeStyle", "textStyle", "activeTextStyle"];
3181
3186
 
3182
3187
  var _templateObject$V, _templateObject2$C, _templateObject3$i, _templateObject4$e, _templateObject5$c, _templateObject6$b, _templateObject7$9, _templateObject8$8, _templateObject9$3, _templateObject10$3, _templateObject11$3, _templateObject12$3, _templateObject13$3, _templateObject14$2, _templateObject15$1, _templateObject16$1, _templateObject17$1, _templateObject18$1, _templateObject19$1, _templateObject20$1, _templateObject21, _templateObject22, _templateObject23;
3183
- var propTypes$15 = {
3188
+ var propTypes$16 = {
3184
3189
  children: PropTypes__default["default"].node.isRequired,
3185
3190
  color: PropTypes__default["default"].oneOf([].concat(_toConsumableArray(Object.keys(THEME_COLORS)), ['link'])),
3186
3191
  size: PropTypes__default["default"].oneOf(['lg', 'sm']),
@@ -3309,13 +3314,13 @@ var Button = /*#__PURE__*/React__default["default"].forwardRef(function (props,
3309
3314
  }), children);
3310
3315
  });
3311
3316
  Button.displayName = 'Button';
3312
- Button.propTypes = propTypes$15;
3317
+ Button.propTypes = propTypes$16;
3313
3318
  Button.useToggle = useToggleButton;
3314
3319
 
3315
3320
  var _excluded$15 = ["children", "style"];
3316
3321
 
3317
3322
  var _templateObject$U, _templateObject2$B;
3318
- var propTypes$14 = {
3323
+ var propTypes$15 = {
3319
3324
  children: PropTypes__default["default"].node.isRequired,
3320
3325
  // eslint-disable-next-line react/forbid-prop-types
3321
3326
  style: PropTypes__default["default"].any
@@ -3339,12 +3344,12 @@ var CardBody = /*#__PURE__*/React__default["default"].forwardRef(function (props
3339
3344
  }, children));
3340
3345
  });
3341
3346
  CardBody.displayName = 'CardBody';
3342
- CardBody.propTypes = propTypes$14;
3347
+ CardBody.propTypes = propTypes$15;
3343
3348
 
3344
3349
  var _excluded$14 = ["children", "style"];
3345
3350
 
3346
3351
  var _templateObject$T, _templateObject2$A;
3347
- var propTypes$13 = {
3352
+ var propTypes$14 = {
3348
3353
  children: PropTypes__default["default"].node.isRequired,
3349
3354
  // eslint-disable-next-line react/forbid-prop-types
3350
3355
  style: PropTypes__default["default"].any
@@ -3368,12 +3373,12 @@ var CardHeader = /*#__PURE__*/React__default["default"].forwardRef(function (pro
3368
3373
  }, children));
3369
3374
  });
3370
3375
  CardHeader.displayName = 'CardHeader';
3371
- CardHeader.propTypes = propTypes$13;
3376
+ CardHeader.propTypes = propTypes$14;
3372
3377
 
3373
3378
  var _excluded$13 = ["children", "style"];
3374
3379
 
3375
3380
  var _templateObject$S, _templateObject2$z;
3376
- var propTypes$12 = {
3381
+ var propTypes$13 = {
3377
3382
  children: PropTypes__default["default"].node.isRequired,
3378
3383
  // eslint-disable-next-line react/forbid-prop-types
3379
3384
  style: PropTypes__default["default"].any
@@ -3397,12 +3402,12 @@ var CardFooter = /*#__PURE__*/React__default["default"].forwardRef(function (pro
3397
3402
  }, children));
3398
3403
  });
3399
3404
  CardFooter.displayName = 'CardFooter';
3400
- CardFooter.propTypes = propTypes$12;
3405
+ CardFooter.propTypes = propTypes$13;
3401
3406
 
3402
3407
  var _excluded$12 = ["children", "style"];
3403
3408
 
3404
3409
  var _templateObject$R;
3405
- var propTypes$11 = {
3410
+ var propTypes$12 = {
3406
3411
  children: PropTypes__default["default"].node.isRequired,
3407
3412
  // eslint-disable-next-line react/forbid-prop-types
3408
3413
  style: PropTypes__default["default"].any
@@ -3422,7 +3427,7 @@ var Card = /*#__PURE__*/React__default["default"].forwardRef(function (props, re
3422
3427
  }), children);
3423
3428
  });
3424
3429
  Card.displayName = 'Card';
3425
- Card.propTypes = propTypes$11;
3430
+ Card.propTypes = propTypes$12;
3426
3431
  Card.Header = CardHeader;
3427
3432
  Card.Body = CardBody;
3428
3433
  Card.Footer = CardFooter;
@@ -3430,7 +3435,7 @@ Card.Footer = CardFooter;
3430
3435
  var _excluded$11 = ["children", "disabled", "style", "textStyle"];
3431
3436
 
3432
3437
  var _templateObject$Q, _templateObject2$y, _templateObject3$h;
3433
- var propTypes$10 = {
3438
+ var propTypes$11 = {
3434
3439
  children: PropTypes__default["default"].node,
3435
3440
  disabled: PropTypes__default["default"].bool,
3436
3441
  // eslint-disable-next-line react/forbid-prop-types
@@ -3461,7 +3466,7 @@ var CloseButton = /*#__PURE__*/React__default["default"].forwardRef(function (pr
3461
3466
  }), StyleSheet.value('btn-close-bg'));
3462
3467
  });
3463
3468
  CloseButton.displayName = 'CloseButton';
3464
- CloseButton.propTypes = propTypes$10;
3469
+ CloseButton.propTypes = propTypes$11;
3465
3470
 
3466
3471
  var CollapseContext = /*#__PURE__*/React__default["default"].createContext();
3467
3472
  CollapseContext.displayName = 'CollapseContext';
@@ -3520,7 +3525,7 @@ function useCollapse(defaultVisible, controlledVisible, onToggle) {
3520
3525
  }, [visible]);
3521
3526
  }
3522
3527
 
3523
- var propTypes$$ = {
3528
+ var propTypes$10 = {
3524
3529
  children: PropTypes__default["default"].node.isRequired,
3525
3530
  defaultVisible: PropTypes__default["default"].bool,
3526
3531
  visible: PropTypes__default["default"].bool,
@@ -3540,7 +3545,7 @@ var CollapseProvider = function CollapseProvider(props) {
3540
3545
  };
3541
3546
 
3542
3547
  CollapseProvider.displayName = 'CollapseProvider';
3543
- CollapseProvider.propTypes = propTypes$$;
3548
+ CollapseProvider.propTypes = propTypes$10;
3544
3549
 
3545
3550
  var _excluded$10 = ["onPress"];
3546
3551
  function useToggleCollapse(props) {
@@ -3562,7 +3567,7 @@ function useToggleCollapse(props) {
3562
3567
  }
3563
3568
 
3564
3569
  var _excluded$$ = ["children"];
3565
- var propTypes$_ = {
3570
+ var propTypes$$ = {
3566
3571
  children: PropTypes__default["default"].node
3567
3572
  };
3568
3573
  var Collapse = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
@@ -3583,7 +3588,7 @@ var Collapse = /*#__PURE__*/React__default["default"].forwardRef(function (props
3583
3588
  }), children);
3584
3589
  });
3585
3590
  Collapse.displayName = 'Collapse';
3586
- Collapse.propTypes = propTypes$_;
3591
+ Collapse.propTypes = propTypes$$;
3587
3592
  Collapse.Provider = CollapseProvider;
3588
3593
  Collapse.useToggle = useToggleCollapse;
3589
3594
 
@@ -3611,7 +3616,7 @@ NavbarContext.displayName = 'NavbarContext';
3611
3616
  var _excluded$_ = ["fluid", "style"];
3612
3617
 
3613
3618
  var _templateObject$P, _templateObject2$x, _templateObject3$g, _templateObject4$d, _templateObject5$b, _templateObject6$a, _templateObject7$8, _templateObject8$7;
3614
- var propTypes$Z = {
3619
+ var propTypes$_ = {
3615
3620
  children: PropTypes__default["default"].node.isRequired,
3616
3621
  fluid: PropTypes__default["default"].oneOf([true].concat(_toConsumableArray(Object.keys(CONTAINER_MAX_WIDTHS)))),
3617
3622
  // eslint-disable-next-line react/forbid-prop-types
@@ -3675,33 +3680,95 @@ var Container = /*#__PURE__*/React__default["default"].forwardRef(function (prop
3675
3680
  }));
3676
3681
  });
3677
3682
  Container.displayName = 'Container';
3678
- Container.propTypes = propTypes$Z;
3683
+ Container.propTypes = propTypes$_;
3679
3684
 
3680
3685
  var DropdownContext = /*#__PURE__*/React__default["default"].createContext();
3681
3686
  DropdownContext.displayName = 'DropdownContext';
3682
3687
 
3683
- var _excluded$Z = ["children", "style"];
3688
+ var propTypes$Z = {
3689
+ children: PropTypes__default["default"].func.isRequired,
3690
+ placement: PropTypes__default["default"].string.isRequired,
3691
+ targetRef: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
3692
+ offset: PropTypes__default["default"].number,
3693
+ visible: PropTypes__default["default"].bool.isRequired
3694
+ };
3695
+
3696
+ var Overlay = function Overlay(props) {
3697
+ var children = props.children,
3698
+ targetRef = props.targetRef,
3699
+ placement = props.placement,
3700
+ offset = props.offset,
3701
+ visible = props.visible;
3702
+ var overlayRef = React.useRef();
3703
+ var overlay = overlays.useOverlayPosition({
3704
+ placement: placement,
3705
+ targetRef: targetRef,
3706
+ overlayRef: overlayRef,
3707
+ offset: offset,
3708
+ isOpen: visible
3709
+ });
3710
+ return children(overlay, overlayRef);
3711
+ };
3712
+
3713
+ Overlay.displayName = 'Overlay';
3714
+ Overlay.propTypes = propTypes$Z;
3715
+
3716
+ var _excluded$Z = ["children", "start", "end", "style"];
3684
3717
 
3685
3718
  var _templateObject$O, _templateObject2$w;
3719
+ var ALIGNMENT_BREAKPOINTS = [true, 'sm', 'md', 'lg', 'xl', 'xxl'];
3686
3720
  var propTypes$Y = {
3687
3721
  children: PropTypes__default["default"].node.isRequired,
3722
+ start: PropTypes__default["default"].oneOf(ALIGNMENT_BREAKPOINTS),
3723
+ end: PropTypes__default["default"].oneOf(ALIGNMENT_BREAKPOINTS),
3688
3724
  // eslint-disable-next-line react/forbid-prop-types
3689
3725
  style: PropTypes__default["default"].any
3690
3726
  };
3691
3727
  var styles$N = StyleSheet.create({
3692
- '.dropdown-menu': css(_templateObject$O || (_templateObject$O = _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 margin-top: $dropdown-spacer; // added for bootstrap-rn\n "]))),
3728
+ '.dropdown-menu': css(_templateObject$O || (_templateObject$O = _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 "]))),
3693
3729
  '.dropdown-menu-text': css(_templateObject2$w || (_templateObject2$w = _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 "])))
3694
3730
  });
3731
+
3732
+ var getAlignment = function getAlignment(media, start, end) {
3733
+ var alignStart = typeof start === 'boolean' ? start : media.up(start);
3734
+ var alignEnd = typeof end === 'boolean' ? end : media.up(end);
3735
+
3736
+ if (!alignEnd) {
3737
+ return 'start';
3738
+ }
3739
+
3740
+ if (!alignStart) {
3741
+ return 'end';
3742
+ }
3743
+
3744
+ var startIndex = ALIGNMENT_BREAKPOINTS.indexOf(start);
3745
+ var endIndex = ALIGNMENT_BREAKPOINTS.indexOf(end);
3746
+ return startIndex > endIndex ? 'start' : 'end';
3747
+ };
3748
+
3749
+ var getPlacement = function getPlacement(media, direction, start, end) {
3750
+ if (direction === 'start' || direction === 'end') {
3751
+ return "".concat(direction, " top");
3752
+ }
3753
+
3754
+ return "".concat(direction, " ").concat(getAlignment(media, start, end));
3755
+ };
3756
+
3695
3757
  var DropdownMenu = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
3696
3758
  var children = props.children,
3759
+ _props$start = props.start,
3760
+ start = _props$start === void 0 ? true : _props$start,
3761
+ _props$end = props.end,
3762
+ end = _props$end === void 0 ? false : _props$end,
3697
3763
  style = props.style,
3698
3764
  elementProps = _objectWithoutProperties(props, _excluded$Z);
3699
3765
 
3700
3766
  var dropdown = useForcedContext(DropdownContext);
3767
+ var media = useMedia();
3701
3768
  var identifier = dropdown.identifier,
3702
- visible = dropdown.visible,
3703
- menuRef = dropdown.menuRef,
3704
- menuPos = dropdown.menuPos;
3769
+ direction = dropdown.direction,
3770
+ triggerRef = dropdown.triggerRef,
3771
+ visible = dropdown.visible;
3705
3772
 
3706
3773
  if (!visible) {
3707
3774
  return null;
@@ -3709,16 +3776,26 @@ var DropdownMenu = /*#__PURE__*/React__default["default"].forwardRef(function (p
3709
3776
 
3710
3777
  var classes = getStyles(styles$N, ['.dropdown-menu']);
3711
3778
  var textClasses = getStyles(styles$N, ['.dropdown-menu-text']);
3712
- return /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
3713
- ref: concatRefs(menuRef, ref),
3714
- accessibilityLabelledBy: identifier,
3715
- style: [classes, {
3716
- top: menuPos.y,
3717
- left: menuPos.x
3718
- }, style]
3719
- }), /*#__PURE__*/React__default["default"].createElement(TextStyleProvider, {
3720
- style: textClasses
3721
- }, children));
3779
+ return /*#__PURE__*/React__default["default"].createElement(overlays.OverlayContainer, null, /*#__PURE__*/React__default["default"].createElement(Overlay, {
3780
+ placement: getPlacement(media, direction, start, end),
3781
+ targetRef: triggerRef,
3782
+ offset: convertToNumber(StyleSheet.value('dropdown-spacer')),
3783
+ visible: visible
3784
+ }, function (_ref, menuRef) {
3785
+ var overlayProps = _ref.overlayProps,
3786
+ rendered = _ref.rendered;
3787
+ return /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
3788
+ ref: concatRefs(menuRef, ref),
3789
+ accessibilityLabelledBy: identifier,
3790
+ style: [classes, style, {
3791
+ opacity: rendered ? 1 : 0
3792
+ }, overlayProps.style]
3793
+ }), /*#__PURE__*/React__default["default"].createElement(DropdownContext.Provider, {
3794
+ value: dropdown
3795
+ }, /*#__PURE__*/React__default["default"].createElement(TextStyleProvider, {
3796
+ style: textClasses
3797
+ }, children)));
3798
+ }));
3722
3799
  });
3723
3800
  DropdownMenu.displayName = 'DropdownMenu';
3724
3801
  DropdownMenu.propTypes = propTypes$Y;
@@ -3756,12 +3833,12 @@ var DropdownItem = function DropdownItem(props) {
3756
3833
  textStyle = props.textStyle,
3757
3834
  elementProps = _objectWithoutProperties(props, _excluded$Y);
3758
3835
 
3759
- var context = React.useContext(DropdownContext);
3836
+ var dropdown = useForcedContext(DropdownContext);
3760
3837
  var classes = getStyles(styles$M, ['.dropdown-item', active && '.dropdown-item-active', disabled && '.dropdown-item-disabled']);
3761
3838
  var textClasses = getStyles(styles$M, ['.dropdown-item-text', active && '.dropdown-item-active-text', disabled && '.dropdown-item-disabled-text']);
3762
3839
  return /*#__PURE__*/React__default["default"].createElement(Pressable, _extends({}, elementProps, {
3763
3840
  onPress: concatFns(function () {
3764
- context.setVisible(false);
3841
+ dropdown.setVisible(false);
3765
3842
  }, handlePress),
3766
3843
  disabled: disabled,
3767
3844
  style: [classes, style],
@@ -3879,19 +3956,9 @@ var DropdownDivider = /*#__PURE__*/React__default["default"].forwardRef(function
3879
3956
  DropdownDivider.displayName = 'DropdownDivider';
3880
3957
  DropdownDivider.propTypes = propTypes$T;
3881
3958
 
3882
- function useDropdown(defaultVisible, controlledVisible, onToggle, placement) {
3959
+ function useDropdown(defaultVisible, controlledVisible, onToggle, direction) {
3883
3960
  var identifier = useIdentifier('dropdown');
3884
-
3885
- var _useFloating = reactNative$1.useFloating({
3886
- placement: placement,
3887
- middleware: [reactNative$1.shift()]
3888
- }),
3889
- _useFloating$x = _useFloating.x,
3890
- x = _useFloating$x === void 0 ? 0 : _useFloating$x,
3891
- _useFloating$y = _useFloating.y,
3892
- y = _useFloating$y === void 0 ? 0 : _useFloating$y,
3893
- triggerRef = _useFloating.reference,
3894
- menuRef = _useFloating.floating;
3961
+ var triggerRef = React.useRef();
3895
3962
 
3896
3963
  var _useControlledState = useControlledState(defaultVisible, controlledVisible, onToggle),
3897
3964
  _useControlledState2 = _slicedToArray(_useControlledState, 2),
@@ -3904,13 +3971,9 @@ function useDropdown(defaultVisible, controlledVisible, onToggle, placement) {
3904
3971
  visible: visible,
3905
3972
  setVisible: setVisible,
3906
3973
  triggerRef: triggerRef,
3907
- menuRef: menuRef,
3908
- menuPos: {
3909
- x: x,
3910
- y: y
3911
- }
3974
+ direction: direction
3912
3975
  };
3913
- }, [visible, x, y]);
3976
+ }, [visible]);
3914
3977
  }
3915
3978
 
3916
3979
  var _excluded$T = ["onPress"];
@@ -3934,16 +3997,16 @@ function useToggleDropdown(props) {
3934
3997
  });
3935
3998
  }
3936
3999
 
3937
- var _excluded$S = ["children", "defaultVisible", "visible", "onToggle", "placement", "style"];
4000
+ var _excluded$S = ["children", "defaultVisible", "visible", "onToggle", "direction", "style"];
3938
4001
 
3939
4002
  var _templateObject$I;
3940
- var PLACEMENTS$2 = ['top', 'bottom', 'left', 'right'];
4003
+ var DIRECTIONS = ['top', 'bottom', 'start', 'end'];
3941
4004
  var propTypes$S = {
3942
4005
  children: PropTypes__default["default"].node,
3943
4006
  defaultVisible: PropTypes__default["default"].bool,
3944
4007
  visible: PropTypes__default["default"].bool,
3945
4008
  onToggle: PropTypes__default["default"].func,
3946
- placement: PropTypes__default["default"].oneOf(PLACEMENTS$2),
4009
+ direction: PropTypes__default["default"].oneOf(DIRECTIONS),
3947
4010
  // eslint-disable-next-line react/forbid-prop-types
3948
4011
  style: PropTypes__default["default"].any
3949
4012
  };
@@ -3956,12 +4019,12 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (props
3956
4019
  defaultVisible = _props$defaultVisible === void 0 ? false : _props$defaultVisible,
3957
4020
  visible = props.visible,
3958
4021
  onToggle = props.onToggle,
3959
- _props$placement = props.placement,
3960
- placement = _props$placement === void 0 ? 'bottom' : _props$placement,
4022
+ _props$direction = props.direction,
4023
+ direction = _props$direction === void 0 ? 'bottom' : _props$direction,
3961
4024
  style = props.style,
3962
4025
  elementProps = _objectWithoutProperties(props, _excluded$S);
3963
4026
 
3964
- var dropdown = useDropdown(defaultVisible, visible, onToggle, placement);
4027
+ var dropdown = useDropdown(defaultVisible, visible, onToggle, direction);
3965
4028
  var classes = getStyles(styles$H, ['.dropdown']);
3966
4029
  return /*#__PURE__*/React__default["default"].createElement(View, _extends({}, elementProps, {
3967
4030
  ref: ref,
@@ -5631,7 +5694,7 @@ var propTypes$j = {
5631
5694
  defaultExpanded: PropTypes__default["default"].bool,
5632
5695
  expanded: PropTypes__default["default"].bool,
5633
5696
  onToggle: PropTypes__default["default"].func,
5634
- expand: PropTypes__default["default"].oneOf([true, 'sm', 'md', 'lg', 'xl']),
5697
+ expand: PropTypes__default["default"].oneOf([true, 'sm', 'md', 'lg', 'xl', 'xxl']),
5635
5698
  // eslint-disable-next-line react/forbid-prop-types
5636
5699
  style: PropTypes__default["default"].any
5637
5700
  };