bootstrap-rn 0.4.5 → 0.4.7

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.
Files changed (288) hide show
  1. package/lib/module/Context.js.map +1 -1
  2. package/lib/module/Provider.js +3 -7
  3. package/lib/module/Provider.js.map +1 -1
  4. package/lib/module/components/Body.js +10 -5
  5. package/lib/module/components/Body.js.map +1 -1
  6. package/lib/module/components/buttons/Button.js +10 -8
  7. package/lib/module/components/buttons/Button.js.map +1 -1
  8. package/lib/module/components/close/CloseButton.js +7 -3
  9. package/lib/module/components/close/CloseButton.js.map +1 -1
  10. package/lib/module/components/collapse/useCollapse.js +2 -3
  11. package/lib/module/components/collapse/useCollapse.js.map +1 -1
  12. package/lib/module/components/dropdown/Dropdown.js +1 -2
  13. package/lib/module/components/dropdown/Dropdown.js.map +1 -1
  14. package/lib/module/components/dropdown/DropdownContext.js.map +1 -1
  15. package/lib/module/components/dropdown/DropdownMenu.js +33 -59
  16. package/lib/module/components/dropdown/DropdownMenu.js.map +1 -1
  17. package/lib/module/components/dropdown/useDismissDropdown.js +5 -4
  18. package/lib/module/components/dropdown/useDismissDropdown.js.map +1 -1
  19. package/lib/module/components/dropdown/useDropdown.js +35 -11
  20. package/lib/module/components/dropdown/useDropdown.js.map +1 -1
  21. package/lib/module/components/dropdown/useToggleDropdown.js +4 -6
  22. package/lib/module/components/dropdown/useToggleDropdown.js.map +1 -1
  23. package/lib/module/components/forms/FormCheckInput.js +1 -1
  24. package/lib/module/components/forms/Input.js +1 -1
  25. package/lib/module/components/forms/internals/PickerNative.js +1 -1
  26. package/lib/module/components/forms/internals/PickerNative.js.map +1 -1
  27. package/lib/module/components/helpers/BackdropHandler.js +6 -92
  28. package/lib/module/components/helpers/BackdropHandler.js.map +1 -1
  29. package/lib/module/components/helpers/BackdropHandler.web.js +8 -0
  30. package/lib/module/components/helpers/BackdropHandler.web.js.map +1 -0
  31. package/lib/module/components/helpers/Dialog.js +29 -0
  32. package/lib/module/components/helpers/Dialog.js.map +1 -0
  33. package/lib/module/components/helpers/Dialog.web.js +117 -0
  34. package/lib/module/components/helpers/Dialog.web.js.map +1 -0
  35. package/lib/module/components/helpers/Portal.js +5 -0
  36. package/lib/module/components/helpers/Portal.js.map +1 -0
  37. package/lib/module/components/helpers/Portal.web.js +16 -0
  38. package/lib/module/components/helpers/Portal.web.js.map +1 -0
  39. package/lib/module/components/helpers/PortalHost.js +5 -0
  40. package/lib/module/components/helpers/PortalHost.js.map +1 -0
  41. package/lib/module/components/helpers/PortalHost.web.js +15 -0
  42. package/lib/module/components/helpers/PortalHost.web.js.map +1 -0
  43. package/lib/module/components/modal/Modal.js +58 -47
  44. package/lib/module/components/modal/Modal.js.map +1 -1
  45. package/lib/module/components/modal/ModalContext.js.map +1 -1
  46. package/lib/module/components/modal/ModalTitle.js +6 -0
  47. package/lib/module/components/modal/ModalTitle.js.map +1 -1
  48. package/lib/module/components/modal/useModal.js +4 -13
  49. package/lib/module/components/modal/useModal.js.map +1 -1
  50. package/lib/module/components/nav/useTabbable.js +2 -3
  51. package/lib/module/components/nav/useTabbable.js.map +1 -1
  52. package/lib/module/components/navbar/NavbarToggler.js +1 -1
  53. package/lib/module/components/navbar/useNavbar.js +2 -3
  54. package/lib/module/components/navbar/useNavbar.js.map +1 -1
  55. package/lib/module/components/offcanvas/Offcanvas.js +84 -83
  56. package/lib/module/components/offcanvas/Offcanvas.js.map +1 -1
  57. package/lib/module/components/offcanvas/OffcanvasContext.js.map +1 -1
  58. package/lib/module/components/offcanvas/OffcanvasTitle.js +6 -0
  59. package/lib/module/components/offcanvas/OffcanvasTitle.js.map +1 -1
  60. package/lib/module/components/offcanvas/useOffcanvas.js +6 -14
  61. package/lib/module/components/offcanvas/useOffcanvas.js.map +1 -1
  62. package/lib/module/components/pagination/PaginationItem.js +39 -39
  63. package/lib/module/components/popover/Popover.js +6 -8
  64. package/lib/module/components/popover/Popover.js.map +1 -1
  65. package/lib/module/components/popover/PopoverArrow.js +18 -9
  66. package/lib/module/components/popover/PopoverArrow.js.map +1 -1
  67. package/lib/module/components/popover/PopoverContext.js.map +1 -1
  68. package/lib/module/components/popover/injectPopover.js +48 -45
  69. package/lib/module/components/popover/injectPopover.js.map +1 -1
  70. package/lib/module/components/tooltip/Tooltip.js +7 -23
  71. package/lib/module/components/tooltip/Tooltip.js.map +1 -1
  72. package/lib/module/components/tooltip/TooltipArrow.js +22 -12
  73. package/lib/module/components/tooltip/TooltipArrow.js.map +1 -1
  74. package/lib/module/components/tooltip/TooltipContext.js.map +1 -1
  75. package/lib/module/components/tooltip/injectTooltip.js +46 -42
  76. package/lib/module/components/tooltip/injectTooltip.js.map +1 -1
  77. package/lib/module/hooks/useBackgroundNative.js.map +1 -1
  78. package/lib/module/hooks/useFocusRing.js +13 -0
  79. package/lib/module/hooks/useFocusRing.js.map +1 -0
  80. package/lib/module/hooks/useFocusRing.web.js +5 -0
  81. package/lib/module/hooks/useFocusRing.web.js.map +1 -0
  82. package/lib/module/hooks/useInteractionState.js +11 -11
  83. package/lib/module/hooks/useInteractionState.js.map +1 -1
  84. package/lib/module/hooks/useOverlay.js +121 -0
  85. package/lib/module/hooks/useOverlay.js.map +1 -0
  86. package/lib/module/hooks/useOverlay.web.js +113 -0
  87. package/lib/module/hooks/useOverlay.web.js.map +1 -0
  88. package/lib/module/hooks/useScrollbarEffects.js +7 -60
  89. package/lib/module/hooks/useScrollbarEffects.js.map +1 -1
  90. package/lib/module/hooks/useScrollbarEffects.web.js +59 -0
  91. package/lib/module/hooks/useScrollbarEffects.web.js.map +1 -0
  92. package/lib/module/index.js +3 -3
  93. package/lib/module/index.js.map +1 -1
  94. package/lib/module/style/StyleSheet.js +1 -3
  95. package/lib/module/style/StyleSheet.js.map +1 -1
  96. package/lib/module/theme/variables.js +9 -9
  97. package/lib/module/utils.js +0 -11
  98. package/lib/module/utils.js.map +1 -1
  99. package/lib/typescript/Context.d.ts +0 -1
  100. package/lib/typescript/Context.d.ts.map +1 -1
  101. package/lib/typescript/Provider.d.ts.map +1 -1
  102. package/lib/typescript/components/Body.d.ts +2 -2
  103. package/lib/typescript/components/Body.d.ts.map +1 -1
  104. package/lib/typescript/components/Link.d.ts +1 -1
  105. package/lib/typescript/components/Link.d.ts.map +1 -1
  106. package/lib/typescript/components/Pressable.d.ts +1 -1
  107. package/lib/typescript/components/Pressable.d.ts.map +1 -1
  108. package/lib/typescript/components/TextInput.d.ts +3 -3
  109. package/lib/typescript/components/TextInput.d.ts.map +1 -1
  110. package/lib/typescript/components/buttons/Button.d.ts +1 -1
  111. package/lib/typescript/components/buttons/Button.d.ts.map +1 -1
  112. package/lib/typescript/components/close/CloseButton.d.ts +1 -1
  113. package/lib/typescript/components/close/CloseButton.d.ts.map +1 -1
  114. package/lib/typescript/components/collapse/useCollapse.d.ts.map +1 -1
  115. package/lib/typescript/components/dropdown/Dropdown.d.ts +0 -1
  116. package/lib/typescript/components/dropdown/Dropdown.d.ts.map +1 -1
  117. package/lib/typescript/components/dropdown/DropdownContext.d.ts +14 -3
  118. package/lib/typescript/components/dropdown/DropdownContext.d.ts.map +1 -1
  119. package/lib/typescript/components/dropdown/DropdownMenu.d.ts +0 -1
  120. package/lib/typescript/components/dropdown/DropdownMenu.d.ts.map +1 -1
  121. package/lib/typescript/components/dropdown/useDismissDropdown.d.ts +1 -1
  122. package/lib/typescript/components/dropdown/useDismissDropdown.d.ts.map +1 -1
  123. package/lib/typescript/components/dropdown/useDropdown.d.ts +38 -4
  124. package/lib/typescript/components/dropdown/useDropdown.d.ts.map +1 -1
  125. package/lib/typescript/components/dropdown/useToggleDropdown.d.ts +4 -3
  126. package/lib/typescript/components/dropdown/useToggleDropdown.d.ts.map +1 -1
  127. package/lib/typescript/components/forms/Picker.d.ts +1 -1
  128. package/lib/typescript/components/forms/internals/PickerNative.d.ts +1 -1
  129. package/lib/typescript/components/forms/internals/PickerNative.d.ts.map +1 -1
  130. package/lib/typescript/components/forms/internals/PickerWeb.d.ts +1 -1
  131. package/lib/typescript/components/forms/internals/PickerWeb.d.ts.map +1 -1
  132. package/lib/typescript/components/helpers/BackdropHandler.d.ts +2 -11
  133. package/lib/typescript/components/helpers/BackdropHandler.d.ts.map +1 -1
  134. package/lib/typescript/components/helpers/BackdropHandler.web.d.ts +3 -0
  135. package/lib/typescript/components/helpers/BackdropHandler.web.d.ts.map +1 -0
  136. package/lib/typescript/components/helpers/Dialog.d.ts +15 -0
  137. package/lib/typescript/components/helpers/Dialog.d.ts.map +1 -0
  138. package/lib/typescript/components/helpers/Dialog.web.d.ts +15 -0
  139. package/lib/typescript/components/helpers/Dialog.web.d.ts.map +1 -0
  140. package/lib/typescript/components/helpers/Portal.d.ts +8 -0
  141. package/lib/typescript/components/helpers/Portal.d.ts.map +1 -0
  142. package/lib/typescript/components/helpers/Portal.web.d.ts +8 -0
  143. package/lib/typescript/components/helpers/Portal.web.d.ts.map +1 -0
  144. package/lib/typescript/components/helpers/PortalHost.d.ts +6 -0
  145. package/lib/typescript/components/helpers/PortalHost.d.ts.map +1 -0
  146. package/lib/typescript/components/helpers/PortalHost.web.d.ts +7 -0
  147. package/lib/typescript/components/helpers/PortalHost.web.d.ts.map +1 -0
  148. package/lib/typescript/components/list-group/ListGroup.d.ts +1 -1
  149. package/lib/typescript/components/list-group/ListGroupItemAction.d.ts +1 -1
  150. package/lib/typescript/components/list-group/ListGroupItemAction.d.ts.map +1 -1
  151. package/lib/typescript/components/modal/Modal.d.ts +1 -1
  152. package/lib/typescript/components/modal/Modal.d.ts.map +1 -1
  153. package/lib/typescript/components/modal/ModalContext.d.ts +1 -0
  154. package/lib/typescript/components/modal/ModalContext.d.ts.map +1 -1
  155. package/lib/typescript/components/modal/ModalTitle.d.ts.map +1 -1
  156. package/lib/typescript/components/modal/useModal.d.ts +2 -1
  157. package/lib/typescript/components/modal/useModal.d.ts.map +1 -1
  158. package/lib/typescript/components/nav/Nav.d.ts +1 -1
  159. package/lib/typescript/components/nav/NavLink.d.ts +1 -1
  160. package/lib/typescript/components/nav/NavLink.d.ts.map +1 -1
  161. package/lib/typescript/components/nav/useTabbable.d.ts.map +1 -1
  162. package/lib/typescript/components/navbar/Navbar.d.ts +2 -2
  163. package/lib/typescript/components/navbar/NavbarBrand.d.ts +1 -1
  164. package/lib/typescript/components/navbar/NavbarBrand.d.ts.map +1 -1
  165. package/lib/typescript/components/navbar/NavbarToggler.d.ts +1 -1
  166. package/lib/typescript/components/navbar/NavbarToggler.d.ts.map +1 -1
  167. package/lib/typescript/components/navbar/useNavbar.d.ts.map +1 -1
  168. package/lib/typescript/components/offcanvas/Offcanvas.d.ts +1 -4
  169. package/lib/typescript/components/offcanvas/Offcanvas.d.ts.map +1 -1
  170. package/lib/typescript/components/offcanvas/OffcanvasContext.d.ts +3 -1
  171. package/lib/typescript/components/offcanvas/OffcanvasContext.d.ts.map +1 -1
  172. package/lib/typescript/components/offcanvas/OffcanvasTitle.d.ts.map +1 -1
  173. package/lib/typescript/components/offcanvas/useOffcanvas.d.ts +3 -1
  174. package/lib/typescript/components/offcanvas/useOffcanvas.d.ts.map +1 -1
  175. package/lib/typescript/components/popover/Popover.d.ts +3 -4
  176. package/lib/typescript/components/popover/Popover.d.ts.map +1 -1
  177. package/lib/typescript/components/popover/PopoverArrow.d.ts.map +1 -1
  178. package/lib/typescript/components/popover/PopoverContext.d.ts +3 -4
  179. package/lib/typescript/components/popover/PopoverContext.d.ts.map +1 -1
  180. package/lib/typescript/components/popover/injectPopover.d.ts +5 -7
  181. package/lib/typescript/components/popover/injectPopover.d.ts.map +1 -1
  182. package/lib/typescript/components/tooltip/Tooltip.d.ts +3 -4
  183. package/lib/typescript/components/tooltip/Tooltip.d.ts.map +1 -1
  184. package/lib/typescript/components/tooltip/TooltipArrow.d.ts.map +1 -1
  185. package/lib/typescript/components/tooltip/TooltipContext.d.ts +3 -4
  186. package/lib/typescript/components/tooltip/TooltipContext.d.ts.map +1 -1
  187. package/lib/typescript/components/tooltip/injectTooltip.d.ts +5 -7
  188. package/lib/typescript/components/tooltip/injectTooltip.d.ts.map +1 -1
  189. package/lib/typescript/hooks/useBackgroundNative.d.ts.map +1 -1
  190. package/lib/typescript/hooks/useFocusRing.d.ts +3 -0
  191. package/lib/typescript/hooks/useFocusRing.d.ts.map +1 -0
  192. package/lib/typescript/hooks/useFocusRing.web.d.ts +3 -0
  193. package/lib/typescript/hooks/useFocusRing.web.d.ts.map +1 -0
  194. package/lib/typescript/hooks/useInteractionState.d.ts +7 -7
  195. package/lib/typescript/hooks/useInteractionState.d.ts.map +1 -1
  196. package/lib/typescript/hooks/useOverlay.d.ts +64 -0
  197. package/lib/typescript/hooks/useOverlay.d.ts.map +1 -0
  198. package/lib/typescript/hooks/useOverlay.web.d.ts +37 -0
  199. package/lib/typescript/hooks/useOverlay.web.d.ts.map +1 -0
  200. package/lib/typescript/hooks/useScrollbarEffects.d.ts.map +1 -1
  201. package/lib/typescript/hooks/useScrollbarEffects.web.d.ts +7 -0
  202. package/lib/typescript/hooks/useScrollbarEffects.web.d.ts.map +1 -0
  203. package/lib/typescript/index.d.ts +5 -4
  204. package/lib/typescript/index.d.ts.map +1 -1
  205. package/lib/typescript/style/StyleSheet.d.ts.map +1 -1
  206. package/lib/typescript/types.d.ts +12 -6
  207. package/lib/typescript/types.d.ts.map +1 -1
  208. package/lib/typescript/utils.d.ts +2 -3
  209. package/lib/typescript/utils.d.ts.map +1 -1
  210. package/package.json +92 -87
  211. package/src/Context.ts +37 -38
  212. package/src/Provider.tsx +61 -66
  213. package/src/components/Body.tsx +22 -22
  214. package/src/components/TextInput.tsx +66 -66
  215. package/src/components/buttons/Button.tsx +381 -379
  216. package/src/components/close/CloseButton.tsx +142 -138
  217. package/src/components/collapse/useCollapse.ts +25 -26
  218. package/src/components/dropdown/Dropdown.tsx +77 -80
  219. package/src/components/dropdown/DropdownContext.ts +14 -3
  220. package/src/components/dropdown/DropdownMenu.tsx +243 -284
  221. package/src/components/dropdown/useDismissDropdown.ts +30 -29
  222. package/src/components/dropdown/useDropdown.ts +55 -38
  223. package/src/components/dropdown/useToggleDropdown.ts +31 -32
  224. package/src/components/forms/FormCheckInput.tsx +268 -268
  225. package/src/components/forms/Input.tsx +220 -220
  226. package/src/components/forms/internals/PickerNative.tsx +9 -10
  227. package/src/components/helpers/BackdropHandler.tsx +5 -119
  228. package/src/components/helpers/BackdropHandler.web.tsx +6 -0
  229. package/src/components/helpers/Dialog.tsx +49 -0
  230. package/src/components/helpers/Dialog.web.tsx +145 -0
  231. package/src/components/helpers/Portal.tsx +10 -0
  232. package/src/components/helpers/Portal.web.tsx +22 -0
  233. package/src/components/helpers/PortalHost.tsx +7 -0
  234. package/src/components/helpers/PortalHost.web.tsx +14 -0
  235. package/src/components/modal/Modal.tsx +60 -46
  236. package/src/components/modal/ModalContext.ts +12 -11
  237. package/src/components/modal/ModalTitle.tsx +41 -31
  238. package/src/components/modal/useModal.ts +13 -25
  239. package/src/components/nav/useTabbable.ts +31 -32
  240. package/src/components/navbar/NavbarToggler.tsx +130 -130
  241. package/src/components/navbar/useNavbar.ts +30 -31
  242. package/src/components/offcanvas/Offcanvas.tsx +92 -95
  243. package/src/components/offcanvas/OffcanvasContext.ts +13 -11
  244. package/src/components/offcanvas/OffcanvasTitle.tsx +43 -33
  245. package/src/components/offcanvas/useOffcanvas.ts +12 -20
  246. package/src/components/pagination/PaginationItem.tsx +139 -139
  247. package/src/components/popover/Popover.tsx +87 -90
  248. package/src/components/popover/PopoverArrow.tsx +22 -6
  249. package/src/components/popover/PopoverContext.ts +13 -18
  250. package/src/components/popover/injectPopover.tsx +63 -55
  251. package/src/components/tooltip/Tooltip.tsx +79 -98
  252. package/src/components/tooltip/TooltipArrow.tsx +26 -8
  253. package/src/components/tooltip/TooltipContext.ts +13 -18
  254. package/src/components/tooltip/injectTooltip.tsx +62 -53
  255. package/src/hooks/useAction.ts +78 -78
  256. package/src/hooks/useBackgroundNative.tsx +6 -4
  257. package/src/hooks/useFocusRing.ts +13 -0
  258. package/src/hooks/useFocusRing.web.ts +3 -0
  259. package/src/hooks/useInteractionState.ts +75 -81
  260. package/src/hooks/useOverlay.ts +197 -0
  261. package/src/hooks/useOverlay.web.ts +190 -0
  262. package/src/hooks/useScrollbarEffects.ts +5 -83
  263. package/src/hooks/useScrollbarEffects.web.ts +83 -0
  264. package/src/index.ts +5 -5
  265. package/src/style/StyleSheet.ts +2 -5
  266. package/src/theme/variables.ts +1420 -1420
  267. package/src/types.ts +14 -14
  268. package/src/utils.ts +4 -22
  269. package/lib/module/components/SafeAreaView.js +0 -44
  270. package/lib/module/components/SafeAreaView.js.map +0 -1
  271. package/lib/module/components/helpers/Overlay.js +0 -50
  272. package/lib/module/components/helpers/Overlay.js.map +0 -1
  273. package/lib/module/hooks/useIdentifier.js +0 -14
  274. package/lib/module/hooks/useIdentifier.js.map +0 -1
  275. package/lib/module/hooks/useTrigger.js +0 -97
  276. package/lib/module/hooks/useTrigger.js.map +0 -1
  277. package/lib/typescript/components/SafeAreaView.d.ts +0 -13
  278. package/lib/typescript/components/SafeAreaView.d.ts.map +0 -1
  279. package/lib/typescript/components/helpers/Overlay.d.ts +0 -28
  280. package/lib/typescript/components/helpers/Overlay.d.ts.map +0 -1
  281. package/lib/typescript/hooks/useIdentifier.d.ts +0 -2
  282. package/lib/typescript/hooks/useIdentifier.d.ts.map +0 -1
  283. package/lib/typescript/hooks/useTrigger.d.ts +0 -33
  284. package/lib/typescript/hooks/useTrigger.d.ts.map +0 -1
  285. package/src/components/SafeAreaView.tsx +0 -71
  286. package/src/components/helpers/Overlay.tsx +0 -81
  287. package/src/hooks/useIdentifier.ts +0 -15
  288. package/src/hooks/useTrigger.ts +0 -141
@@ -1,33 +1,43 @@
1
- import React from 'react';
2
- import StyleSheet from '../../style/StyleSheet';
3
- import css from '../../style/css';
4
- import Heading from '../Heading';
5
- import { getStyles } from '../../utils';
6
- import type { TextProps, TextRef } from '../Text';
7
-
8
- export interface OffcanvasTitleProps extends TextProps {}
9
-
10
- const styles = StyleSheet.create({
11
- '.offcanvas-title': css`
12
- margin-bottom: 0;
13
- line-height: $font-size-base * $offcanvas-title-line-height;
14
- `,
15
- });
16
-
17
- const OffcanvasTitle = React.forwardRef<TextRef, OffcanvasTitleProps>(
18
- (props, ref) => {
19
- const { children, style, ...elementProps } = props;
20
-
21
- const classes = getStyles(styles, ['.offcanvas-title']);
22
-
23
- return (
24
- <Heading size={5} {...elementProps} ref={ref} style={[classes, style]}>
25
- {children}
26
- </Heading>
27
- );
28
- },
29
- );
30
-
31
- OffcanvasTitle.displayName = 'OffcanvasTitle';
32
-
33
- export default OffcanvasTitle;
1
+ import React from 'react';
2
+ import StyleSheet from '../../style/StyleSheet';
3
+ import css from '../../style/css';
4
+ import Heading from '../Heading';
5
+ import { getStyles } from '../../utils';
6
+ import type { TextProps, TextRef } from '../Text';
7
+ import useForcedContext from '../../hooks/useForcedContext';
8
+ import OffcanvasContext from './OffcanvasContext';
9
+
10
+ export interface OffcanvasTitleProps extends TextProps {}
11
+
12
+ const styles = StyleSheet.create({
13
+ '.offcanvas-title': css`
14
+ margin-bottom: 0;
15
+ line-height: $font-size-base * $offcanvas-title-line-height;
16
+ `,
17
+ });
18
+
19
+ const OffcanvasTitle = React.forwardRef<TextRef, OffcanvasTitleProps>(
20
+ (props, ref) => {
21
+ const { children, style, ...elementProps } = props;
22
+
23
+ const { identifier } = useForcedContext(OffcanvasContext);
24
+
25
+ const classes = getStyles(styles, ['.offcanvas-title']);
26
+
27
+ return (
28
+ <Heading
29
+ id={`${identifier}-title`}
30
+ size={5}
31
+ {...elementProps}
32
+ ref={ref}
33
+ style={[classes, style]}
34
+ >
35
+ {children}
36
+ </Heading>
37
+ );
38
+ },
39
+ );
40
+
41
+ OffcanvasTitle.displayName = 'OffcanvasTitle';
42
+
43
+ export default OffcanvasTitle;
@@ -1,20 +1,12 @@
1
- import { useContext, useEffect, useMemo } from 'react';
2
- import Context from '../../Context';
3
-
4
- export default function useOffcanvas(visible: boolean, scroll: boolean) {
5
- const context = useContext(Context);
6
-
7
- useEffect(() => {
8
- if (!visible || scroll) {
9
- return () => {}; // No cleanup needed
10
- }
11
-
12
- context?.scrollbars.hide();
13
-
14
- return () => {
15
- context?.scrollbars.show();
16
- };
17
- }, [visible, scroll, context?.scrollbars]);
18
-
19
- return useMemo(() => ({}), []); // You can return any memoized value here if needed
20
- }
1
+ import { useId, useMemo } from 'react';
2
+
3
+ export default function useOffcanvas() {
4
+ const identifier = useId();
5
+
6
+ return useMemo(
7
+ () => ({
8
+ identifier,
9
+ }),
10
+ [],
11
+ );
12
+ }
@@ -1,139 +1,139 @@
1
- import React from 'react';
2
- import { Platform } from 'react-native';
3
- import StyleSheet from '../../style/StyleSheet';
4
- import css from '../../style/css';
5
- import { getStyles } from '../../utils';
6
- import View, { ViewProps, ViewRef } from '../View';
7
- import useForcedContext from '../../hooks/useForcedContext';
8
- import ListContext from '../helpers/ListContext';
9
-
10
- export interface PaginationItemProps extends ViewProps {
11
- active?: boolean;
12
- disabled?: boolean;
13
- }
14
-
15
- const styles = StyleSheet.create({
16
- '.pagination-item': css`
17
- padding-bottom: $pagination-padding-y;
18
- padding-top: $pagination-padding-y;
19
- padding-left: $pagination-padding-x;
20
- padding-right: $pagination-padding-x;
21
- border: $list-group-border-width solid $list-group-border-color;
22
-
23
- &:hover {
24
- color: $pagination-hover-color;
25
- background-color: $pagination-hover-bg;
26
- border-color: $pagination-hover-border-color;
27
- }
28
-
29
- &:focus {
30
- color: $pagination-focus-color;
31
- background-color: $pagination-focus-bg;
32
- //$pagination-focus-box-shadow:
33
- //$pagination-focus-outline:
34
- }
35
- `,
36
- '.pagination-item:first-child': css`
37
- border-top-left-radius: $list-group-border-radius;
38
- border-bottom-left-radius: $list-group-border-radius;
39
- `,
40
- '.pagination-item:last-child': css`
41
- border-top-right-radius: $list-group-border-radius;
42
- border-bottom-right-radius: $list-group-border-radius;
43
- `,
44
- '.pagination-item.active': css`
45
- color: $pagination-active-color;
46
- background-color: $pagination-active-bg;
47
- border-color: $pagination-active-border-color;
48
- `,
49
- '.pagination-item.disabled': css`
50
- color: $pagination-disabled-color;
51
- background-color: $pagination-disabled-bg;
52
- border-color: $pagination-disabled-border-color;
53
- `,
54
- });
55
-
56
- const PaginationItem = React.forwardRef<ViewRef, PaginationItemProps>(
57
- (props, ref) => {
58
- const {
59
- children,
60
- active = false,
61
- disabled = false,
62
- style,
63
- textStyle,
64
- ...elementProps
65
- } = props;
66
-
67
- const { first, last } = useForcedContext(ListContext);
68
-
69
- const classes = getStyles(styles, [
70
- '.pagination-item',
71
- first && '.pagination-item:first-child',
72
- last && '.pagination-item:last-child',
73
- active && '.pagination-item.active',
74
- disabled && '.pagination-item.disabled',
75
- ]);
76
-
77
- const textClasses = getStyles(styles, [
78
- active && '.pagination-item.active',
79
- disabled && '.pagination-item.disabled',
80
- ]);
81
-
82
- const role = Platform.OS === 'web' ? 'listitem' : undefined;
83
-
84
- return (
85
- <View
86
- {...elementProps}
87
- ref={ref}
88
- role={role}
89
- style={[classes, style]}
90
- textStyle={[textClasses, textStyle]}
91
- >
92
- {children}
93
- </View>
94
- );
95
- },
96
- );
97
-
98
- PaginationItem.displayName = 'PaginationItem';
99
-
100
- export default PaginationItem;
101
-
102
- /*
103
- $pagination-padding-y: .375rem;
104
- $pagination-padding-x: .75rem;
105
- $pagination-padding-y-sm: .25rem;
106
- $pagination-padding-x-sm: .5rem;
107
- $pagination-padding-y-lg: .75rem;
108
- $pagination-padding-x-lg: 1.5rem;
109
-
110
- $pagination-color: $link-color;
111
- $pagination-bg: $white;
112
- $pagination-border-width: $border-width;
113
- $pagination-border-radius: $border-radius;
114
- $pagination-margin-start: -$pagination-border-width;
115
- $pagination-border-color: $gray-300;
116
-
117
- $pagination-focus-color: $link-hover-color;
118
- $pagination-focus-bg: $gray-200;
119
- $pagination-focus-box-shadow: $input-btn-focus-box-shadow;
120
- $pagination-focus-outline: 0;
121
-
122
- $pagination-hover-color: $link-hover-color;
123
- $pagination-hover-bg: $gray-200;
124
- $pagination-hover-border-color: $gray-300;
125
-
126
- $pagination-active-color: $component-active-color;
127
- $pagination-active-bg: $component-active-bg;
128
- $pagination-active-border-color: $pagination-active-bg;
129
-
130
- $pagination-disabled-color: $gray-600;
131
- $pagination-disabled-bg: $white;
132
- $pagination-disabled-border-color: $gray-300;
133
-
134
- $pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
135
-
136
- $pagination-border-radius-sm: $border-radius-sm;
137
- $pagination-border-radius-lg: $border-radius-lg;
138
-
139
- */
1
+ import React from 'react';
2
+ import { Platform } from 'react-native';
3
+ import StyleSheet from '../../style/StyleSheet';
4
+ import css from '../../style/css';
5
+ import { getStyles } from '../../utils';
6
+ import View, { ViewProps, ViewRef } from '../View';
7
+ import useForcedContext from '../../hooks/useForcedContext';
8
+ import ListContext from '../helpers/ListContext';
9
+
10
+ export interface PaginationItemProps extends ViewProps {
11
+ active?: boolean;
12
+ disabled?: boolean;
13
+ }
14
+
15
+ const styles = StyleSheet.create({
16
+ '.pagination-item': css`
17
+ padding-bottom: $pagination-padding-y;
18
+ padding-top: $pagination-padding-y;
19
+ padding-left: $pagination-padding-x;
20
+ padding-right: $pagination-padding-x;
21
+ border: $list-group-border-width solid $list-group-border-color;
22
+
23
+ &:hover {
24
+ color: $pagination-hover-color;
25
+ background-color: $pagination-hover-bg;
26
+ border-color: $pagination-hover-border-color;
27
+ }
28
+
29
+ &:focus {
30
+ color: $pagination-focus-color;
31
+ background-color: $pagination-focus-bg;
32
+ // box-shadow: $pagination-focus-box-shadow;
33
+ // outline: $pagination-focus-outline;
34
+ }
35
+ `,
36
+ '.pagination-item:first-child': css`
37
+ border-top-left-radius: $list-group-border-radius;
38
+ border-bottom-left-radius: $list-group-border-radius;
39
+ `,
40
+ '.pagination-item:last-child': css`
41
+ border-top-right-radius: $list-group-border-radius;
42
+ border-bottom-right-radius: $list-group-border-radius;
43
+ `,
44
+ '.pagination-item.active': css`
45
+ color: $pagination-active-color;
46
+ background-color: $pagination-active-bg;
47
+ border-color: $pagination-active-border-color;
48
+ `,
49
+ '.pagination-item.disabled': css`
50
+ color: $pagination-disabled-color;
51
+ background-color: $pagination-disabled-bg;
52
+ border-color: $pagination-disabled-border-color;
53
+ `,
54
+ });
55
+
56
+ const PaginationItem = React.forwardRef<ViewRef, PaginationItemProps>(
57
+ (props, ref) => {
58
+ const {
59
+ children,
60
+ active = false,
61
+ disabled = false,
62
+ style,
63
+ textStyle,
64
+ ...elementProps
65
+ } = props;
66
+
67
+ const { first, last } = useForcedContext(ListContext);
68
+
69
+ const classes = getStyles(styles, [
70
+ '.pagination-item',
71
+ first && '.pagination-item:first-child',
72
+ last && '.pagination-item:last-child',
73
+ active && '.pagination-item.active',
74
+ disabled && '.pagination-item.disabled',
75
+ ]);
76
+
77
+ const textClasses = getStyles(styles, [
78
+ active && '.pagination-item.active',
79
+ disabled && '.pagination-item.disabled',
80
+ ]);
81
+
82
+ const role = Platform.OS === 'web' ? 'listitem' : undefined;
83
+
84
+ return (
85
+ <View
86
+ {...elementProps}
87
+ ref={ref}
88
+ role={role}
89
+ style={[classes, style]}
90
+ textStyle={[textClasses, textStyle]}
91
+ >
92
+ {children}
93
+ </View>
94
+ );
95
+ },
96
+ );
97
+
98
+ PaginationItem.displayName = 'PaginationItem';
99
+
100
+ export default PaginationItem;
101
+
102
+ /*
103
+ $pagination-padding-y: .375rem;
104
+ $pagination-padding-x: .75rem;
105
+ $pagination-padding-y-sm: .25rem;
106
+ $pagination-padding-x-sm: .5rem;
107
+ $pagination-padding-y-lg: .75rem;
108
+ $pagination-padding-x-lg: 1.5rem;
109
+
110
+ $pagination-color: $link-color;
111
+ $pagination-bg: $white;
112
+ $pagination-border-width: $border-width;
113
+ $pagination-border-radius: $border-radius;
114
+ $pagination-margin-start: -$pagination-border-width;
115
+ $pagination-border-color: $gray-300;
116
+
117
+ $pagination-focus-color: $link-hover-color;
118
+ $pagination-focus-bg: $gray-200;
119
+ $pagination-focus-box-shadow: $input-btn-focus-box-shadow;
120
+ $pagination-focus-outline: 0;
121
+
122
+ $pagination-hover-color: $link-hover-color;
123
+ $pagination-hover-bg: $gray-200;
124
+ $pagination-hover-border-color: $gray-300;
125
+
126
+ $pagination-active-color: $component-active-color;
127
+ $pagination-active-bg: $component-active-bg;
128
+ $pagination-active-border-color: $pagination-active-bg;
129
+
130
+ $pagination-disabled-color: $gray-600;
131
+ $pagination-disabled-bg: $white;
132
+ $pagination-disabled-border-color: $gray-300;
133
+
134
+ $pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
135
+
136
+ $pagination-border-radius-sm: $border-radius-sm;
137
+ $pagination-border-radius-lg: $border-radius-lg;
138
+
139
+ */
@@ -1,90 +1,87 @@
1
- import React, { useMemo } from 'react';
2
- import { Platform } from 'react-native';
3
- import StyleSheet from '../../style/StyleSheet';
4
- import { getStyles, transformPlacement } from '../../utils';
5
- import css from '../../style/css';
6
- import View, { ViewProps, ViewRef } from '../View';
7
- import PopoverArrow from './PopoverArrow';
8
- import PopoverHeader from './PopoverHeader';
9
- import PopoverBody from './PopoverBody';
10
- import PopoverContext from './PopoverContext';
11
- import { ExtendedViewStyle, StyleProp, PlacementAxis } from '../../types';
12
-
13
- export interface PopoverProps extends ViewProps {
14
- placement?: PlacementAxis;
15
- popper?: boolean;
16
- arrowStyle?: StyleProp<ExtendedViewStyle>;
17
- }
18
-
19
- const styles = StyleSheet.create({
20
- '.popover': css`
21
- position: absolute;
22
- // top: 0;
23
- // left: 0 #{"/* rtl:ignore */"};
24
- z-index: $zindex-popover;
25
- // display: block;
26
- max-width: $popover-max-width;
27
- background-color: $popover-bg;
28
- // background-clip: padding-box;
29
- border: $popover-border-width solid $popover-border-color;
30
- border-radius: $popover-border-radius;
31
- // @include box-shadow($popover-box-shadow);
32
- `,
33
- '.popover --text': css`
34
- // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
35
- // So reset our font and text properties to avoid inheriting weird values.
36
- // @include reset-text();
37
- font-size: $popover-font-size;
38
- // Allow breaking very long words so they don't overflow the popover's bounds
39
- // word-wrap: break-word;
40
- `,
41
- });
42
-
43
- const Popover = React.forwardRef<ViewRef, PopoverProps>((props, ref) => {
44
- const {
45
- children,
46
- placement = 'right',
47
- popper,
48
- style,
49
- textStyle,
50
- arrowStyle,
51
- ...elementProps
52
- } = props;
53
-
54
- const popover = useMemo(
55
- () => ({
56
- placement: transformPlacement(placement),
57
- arrowStyle,
58
- popper,
59
- }),
60
- [arrowStyle],
61
- );
62
-
63
- const classes = getStyles(styles, ['.popover']);
64
- const textClasses = getStyles(styles, ['.popover --text']);
65
-
66
- // Accessiblity role tooltip is only supported on web.
67
- const role = Platform.OS === 'web' ? 'tooltip' : undefined;
68
-
69
- return (
70
- <View
71
- {...elementProps}
72
- ref={ref}
73
- role={role}
74
- style={[classes, style]}
75
- textStyle={[textClasses, textStyle]}
76
- >
77
- <PopoverContext.Provider value={popover}>
78
- {children}
79
- </PopoverContext.Provider>
80
- </View>
81
- );
82
- });
83
-
84
- Popover.displayName = 'Popover';
85
-
86
- export default Object.assign(Popover, {
87
- Arrow: PopoverArrow,
88
- Header: PopoverHeader,
89
- Body: PopoverBody,
90
- });
1
+ import React, { useMemo } from 'react';
2
+ import { Platform } from 'react-native';
3
+ import StyleSheet from '../../style/StyleSheet';
4
+ import { getStyles } from '../../utils';
5
+ import css from '../../style/css';
6
+ import View, { ViewProps, ViewRef } from '../View';
7
+ import PopoverArrow from './PopoverArrow';
8
+ import PopoverHeader from './PopoverHeader';
9
+ import PopoverBody from './PopoverBody';
10
+ import PopoverContext from './PopoverContext';
11
+ import type { OverlayPhysicalPlacement } from '../../types';
12
+
13
+ export interface PopoverProps extends ViewProps {
14
+ placement?: OverlayPhysicalPlacement;
15
+ floating?: boolean;
16
+ }
17
+
18
+ const styles = StyleSheet.create({
19
+ '.popover': css`
20
+ position: absolute;
21
+ // top: 0;
22
+ // left: 0 #{"/* rtl:ignore */"};
23
+ // z-index: $zindex-popover;
24
+ // display: block;
25
+ max-width: $popover-max-width;
26
+ background-color: $popover-bg;
27
+ // background-clip: padding-box;
28
+ border: $popover-border-width solid $popover-border-color;
29
+ border-radius: $popover-border-radius;
30
+ // @include box-shadow($popover-box-shadow);
31
+ `,
32
+ '.popover --text': css`
33
+ // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
34
+ // So reset our font and text properties to avoid inheriting weird values.
35
+ // @include reset-text();
36
+ font-size: $popover-font-size;
37
+ // Allow breaking very long words so they don't overflow the popover's bounds
38
+ // word-wrap: break-word;
39
+ `,
40
+ });
41
+
42
+ const Popover = React.forwardRef<ViewRef, PopoverProps>((props, ref) => {
43
+ const {
44
+ children,
45
+ placement = 'right',
46
+ floating,
47
+ style,
48
+ textStyle,
49
+ ...elementProps
50
+ } = props;
51
+
52
+ const popover = useMemo(
53
+ () => ({
54
+ placement,
55
+ floating,
56
+ }),
57
+ [placement, floating],
58
+ );
59
+
60
+ const classes = getStyles(styles, ['.popover']);
61
+ const textClasses = getStyles(styles, ['.popover --text']);
62
+
63
+ // Accessiblity role tooltip is only supported on web.
64
+ const role = Platform.OS === 'web' ? 'tooltip' : undefined;
65
+
66
+ return (
67
+ <View
68
+ {...elementProps}
69
+ ref={ref}
70
+ role={role}
71
+ style={[classes, style]}
72
+ textStyle={[textClasses, textStyle]}
73
+ >
74
+ <PopoverContext.Provider value={popover}>
75
+ {children}
76
+ </PopoverContext.Provider>
77
+ </View>
78
+ );
79
+ });
80
+
81
+ Popover.displayName = 'Popover';
82
+
83
+ export default Object.assign(Popover, {
84
+ Arrow: PopoverArrow,
85
+ Header: PopoverHeader,
86
+ Body: PopoverBody,
87
+ });
@@ -6,7 +6,7 @@ import { getStyles } from '../../utils';
6
6
  import css from '../../style/css';
7
7
  import useForcedContext from '../../hooks/useForcedContext';
8
8
  import PopoverContext from './PopoverContext';
9
- import type { ThemeVariables } from '../../types';
9
+ import type { OverlayPlacement, ThemeVariables } from '../../types';
10
10
 
11
11
  export interface PopoverArrowProps extends ViewProps {}
12
12
 
@@ -159,27 +159,43 @@ const styles = StyleSheet.create({
159
159
  `,
160
160
  });
161
161
 
162
+ const transformPlacement = (placement: OverlayPlacement) => {
163
+ if (placement === 'left') {
164
+ return 'start';
165
+ }
166
+
167
+ if (placement === 'right') {
168
+ return 'end';
169
+ }
170
+
171
+ return placement;
172
+ };
173
+
162
174
  const PopoverArrow = React.forwardRef<ViewRef, PopoverArrowProps>(
163
175
  (props, ref) => {
164
176
  const { style, ...elementProps } = props;
165
177
 
166
- const { placement, arrowStyle, popper } = useForcedContext(PopoverContext);
178
+ const context = useForcedContext(PopoverContext);
179
+
180
+ // For some reason the classes are named start/end, but they always define
181
+ // the overlay on the left/right placement, so it has no effect on RTL.
182
+ const placement = transformPlacement(context.placement);
167
183
 
168
184
  const classes = getStyles(styles, [
169
185
  '.popover-arrow',
170
- popper && `.bs-popover-${placement} .popover-arrow`,
186
+ context.floating && `.bs-popover-${placement} .popover-arrow`,
171
187
  ]);
172
188
  const beforeClasses = getStyles(styles, [
173
189
  '.popover-arrow::before',
174
- popper && `.bs-popover-${placement} .popover-arrow::before`,
190
+ context.floating && `.bs-popover-${placement} .popover-arrow::before`,
175
191
  ]);
176
192
  const afterClasses = getStyles(styles, [
177
193
  '.popover-arrow::after',
178
- popper && `.bs-popover-${placement} .popover-arrow::after`,
194
+ context.floating && `.bs-popover-${placement} .popover-arrow::after`,
179
195
  ]);
180
196
 
181
197
  return (
182
- <View {...elementProps} ref={ref} style={[classes, arrowStyle, style]}>
198
+ <View {...elementProps} ref={ref} style={[classes, style]}>
183
199
  <View style={beforeClasses} />
184
200
  <View style={afterClasses} />
185
201
  </View>
@@ -1,18 +1,13 @@
1
- import React from 'react';
2
- import {
3
- ExtendedViewStyle,
4
- StyleProp,
5
- TransformedPlacementAxis,
6
- } from '../../types';
7
-
8
- type PopoverContextType = {
9
- placement: TransformedPlacementAxis;
10
- popper?: boolean;
11
- arrowStyle?: StyleProp<ExtendedViewStyle>;
12
- };
13
-
14
- const PopoverContext = React.createContext<PopoverContextType | null>(null);
15
-
16
- PopoverContext.displayName = 'PopoverContext';
17
-
18
- export default PopoverContext;
1
+ import React from 'react';
2
+ import type { OverlayPlacement } from '../../types';
3
+
4
+ type PopoverContextType = {
5
+ placement: OverlayPlacement;
6
+ floating?: boolean;
7
+ };
8
+
9
+ const PopoverContext = React.createContext<PopoverContextType | null>(null);
10
+
11
+ PopoverContext.displayName = 'PopoverContext';
12
+
13
+ export default PopoverContext;