bootstrap-rn 0.4.8 → 0.4.9

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 (528) hide show
  1. package/lib/module/Context.js.map +1 -1
  2. package/lib/module/Provider.js +4 -16
  3. package/lib/module/Provider.js.map +1 -1
  4. package/lib/module/components/Body.js +3 -3
  5. package/lib/module/components/Body.js.map +1 -1
  6. package/lib/module/components/Caret.js +4 -4
  7. package/lib/module/components/Caret.js.map +1 -1
  8. package/lib/module/components/Heading.js +3 -3
  9. package/lib/module/components/Heading.js.map +1 -1
  10. package/lib/module/components/Image.js +3 -3
  11. package/lib/module/components/Image.js.map +1 -1
  12. package/lib/module/components/ImageBackground.js +3 -3
  13. package/lib/module/components/ImageBackground.js.map +1 -1
  14. package/lib/module/components/Label.js +3 -3
  15. package/lib/module/components/Label.js.map +1 -1
  16. package/lib/module/components/Link.js +6 -4
  17. package/lib/module/components/Link.js.map +1 -1
  18. package/lib/module/components/Pressable.js +7 -4
  19. package/lib/module/components/Pressable.js.map +1 -1
  20. package/lib/module/components/ScrollView.js +3 -3
  21. package/lib/module/components/ScrollView.js.map +1 -1
  22. package/lib/module/components/Text.js +3 -3
  23. package/lib/module/components/Text.js.map +1 -1
  24. package/lib/module/components/TextInput.js +3 -3
  25. package/lib/module/components/TextInput.js.map +1 -1
  26. package/lib/module/components/View.js +3 -3
  27. package/lib/module/components/View.js.map +1 -1
  28. package/lib/module/components/alert/Alert.js +5 -5
  29. package/lib/module/components/alert/Alert.js.map +1 -1
  30. package/lib/module/components/badge/Badge.js +3 -3
  31. package/lib/module/components/badge/Badge.js.map +1 -1
  32. package/lib/module/components/breadcrumb/Breadcrumb.js +3 -3
  33. package/lib/module/components/breadcrumb/Breadcrumb.js.map +1 -1
  34. package/lib/module/components/breadcrumb/BreadcrumbItem.js +3 -3
  35. package/lib/module/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  36. package/lib/module/components/button-group/ButtonGroup.js +3 -3
  37. package/lib/module/components/button-group/ButtonGroup.js.map +1 -1
  38. package/lib/module/components/button-group/ButtonToolbar.js +3 -3
  39. package/lib/module/components/button-group/ButtonToolbar.js.map +1 -1
  40. package/lib/module/components/buttons/Button.js +3 -3
  41. package/lib/module/components/buttons/Button.js.map +1 -1
  42. package/lib/module/components/card/Card.js +3 -3
  43. package/lib/module/components/card/Card.js.map +1 -1
  44. package/lib/module/components/card/CardBody.js +3 -3
  45. package/lib/module/components/card/CardBody.js.map +1 -1
  46. package/lib/module/components/card/CardFooter.js +3 -3
  47. package/lib/module/components/card/CardFooter.js.map +1 -1
  48. package/lib/module/components/card/CardHeader.js +3 -3
  49. package/lib/module/components/card/CardHeader.js.map +1 -1
  50. package/lib/module/components/close/CloseButton.js +3 -3
  51. package/lib/module/components/close/CloseButton.js.map +1 -1
  52. package/lib/module/components/collapse/Collapse.js +3 -3
  53. package/lib/module/components/collapse/Collapse.js.map +1 -1
  54. package/lib/module/components/containers/Container.js +3 -3
  55. package/lib/module/components/containers/Container.js.map +1 -1
  56. package/lib/module/components/dropdown/Dropdown.js +3 -3
  57. package/lib/module/components/dropdown/Dropdown.js.map +1 -1
  58. package/lib/module/components/dropdown/DropdownDivider.js +3 -3
  59. package/lib/module/components/dropdown/DropdownDivider.js.map +1 -1
  60. package/lib/module/components/dropdown/DropdownHeader.js +3 -3
  61. package/lib/module/components/dropdown/DropdownHeader.js.map +1 -1
  62. package/lib/module/components/dropdown/DropdownItemText.js +3 -3
  63. package/lib/module/components/dropdown/DropdownItemText.js.map +1 -1
  64. package/lib/module/components/dropdown/DropdownMenu.js +3 -3
  65. package/lib/module/components/dropdown/DropdownMenu.js.map +1 -1
  66. package/lib/module/components/forms/Checkbox.js +3 -3
  67. package/lib/module/components/forms/Checkbox.js.map +1 -1
  68. package/lib/module/components/forms/Feedback.js +3 -3
  69. package/lib/module/components/forms/Feedback.js.map +1 -1
  70. package/lib/module/components/forms/FormCheck.js +3 -3
  71. package/lib/module/components/forms/FormCheck.js.map +1 -1
  72. package/lib/module/components/forms/FormCheckInput.js +6 -4
  73. package/lib/module/components/forms/FormCheckInput.js.map +1 -1
  74. package/lib/module/components/forms/FormCheckLabel.js +3 -3
  75. package/lib/module/components/forms/FormCheckLabel.js.map +1 -1
  76. package/lib/module/components/forms/FormLabel.js +3 -3
  77. package/lib/module/components/forms/FormLabel.js.map +1 -1
  78. package/lib/module/components/forms/FormText.js +3 -3
  79. package/lib/module/components/forms/FormText.js.map +1 -1
  80. package/lib/module/components/forms/Input.js +6 -4
  81. package/lib/module/components/forms/Input.js.map +1 -1
  82. package/lib/module/components/forms/Picker.js +6 -4
  83. package/lib/module/components/forms/Picker.js.map +1 -1
  84. package/lib/module/components/forms/PickerItem.js +3 -3
  85. package/lib/module/components/forms/PickerItem.js.map +1 -1
  86. package/lib/module/components/forms/Radio.js +3 -3
  87. package/lib/module/components/forms/Radio.js.map +1 -1
  88. package/lib/module/components/forms/RadioGroup.js +3 -3
  89. package/lib/module/components/forms/RadioGroup.js.map +1 -1
  90. package/lib/module/components/forms/Switch.js +3 -3
  91. package/lib/module/components/forms/Switch.js.map +1 -1
  92. package/lib/module/components/forms/internals/FormCheckInputNative.js +4 -4
  93. package/lib/module/components/forms/internals/FormCheckInputNative.js.map +1 -1
  94. package/lib/module/components/forms/internals/FormCheckInputWeb.js +7 -6
  95. package/lib/module/components/forms/internals/FormCheckInputWeb.js.map +1 -1
  96. package/lib/module/components/forms/internals/PickerNative.js +3 -2
  97. package/lib/module/components/forms/internals/PickerNative.js.map +1 -1
  98. package/lib/module/components/forms/internals/PickerNativeItem.js +3 -3
  99. package/lib/module/components/forms/internals/PickerNativeItem.js.map +1 -1
  100. package/lib/module/components/forms/internals/PickerWeb.js +4 -3
  101. package/lib/module/components/forms/internals/PickerWeb.js.map +1 -1
  102. package/lib/module/components/forms/internals/PickerWebItem.js +3 -3
  103. package/lib/module/components/forms/internals/PickerWebItem.js.map +1 -1
  104. package/lib/module/components/grid/Col.js +3 -3
  105. package/lib/module/components/grid/Col.js.map +1 -1
  106. package/lib/module/components/grid/Row.js +3 -3
  107. package/lib/module/components/grid/Row.js.map +1 -1
  108. package/lib/module/components/helpers/Dialog.web.js +2 -2
  109. package/lib/module/components/helpers/Dialog.web.js.map +1 -1
  110. package/lib/module/components/list-group/ListGroup.js +3 -3
  111. package/lib/module/components/list-group/ListGroup.js.map +1 -1
  112. package/lib/module/components/list-group/ListGroupItem.js +3 -3
  113. package/lib/module/components/list-group/ListGroupItem.js.map +1 -1
  114. package/lib/module/components/list-group/ListGroupItemAction.js +6 -4
  115. package/lib/module/components/list-group/ListGroupItemAction.js.map +1 -1
  116. package/lib/module/components/modal/Modal.js +3 -4
  117. package/lib/module/components/modal/Modal.js.map +1 -1
  118. package/lib/module/components/modal/ModalBody.js +3 -3
  119. package/lib/module/components/modal/ModalBody.js.map +1 -1
  120. package/lib/module/components/modal/ModalFooter.js +3 -3
  121. package/lib/module/components/modal/ModalFooter.js.map +1 -1
  122. package/lib/module/components/modal/ModalHeader.js +3 -3
  123. package/lib/module/components/modal/ModalHeader.js.map +1 -1
  124. package/lib/module/components/modal/ModalTitle.js +3 -3
  125. package/lib/module/components/modal/ModalTitle.js.map +1 -1
  126. package/lib/module/components/nav/Nav.js +3 -3
  127. package/lib/module/components/nav/Nav.js.map +1 -1
  128. package/lib/module/components/nav/NavLink.js +6 -4
  129. package/lib/module/components/nav/NavLink.js.map +1 -1
  130. package/lib/module/components/nav/TabContent.js +3 -3
  131. package/lib/module/components/nav/TabContent.js.map +1 -1
  132. package/lib/module/components/nav/TabPane.js +3 -3
  133. package/lib/module/components/nav/TabPane.js.map +1 -1
  134. package/lib/module/components/navbar/Navbar.js +3 -3
  135. package/lib/module/components/navbar/Navbar.js.map +1 -1
  136. package/lib/module/components/navbar/NavbarBrand.js +3 -3
  137. package/lib/module/components/navbar/NavbarBrand.js.map +1 -1
  138. package/lib/module/components/navbar/NavbarCollapse.js +3 -3
  139. package/lib/module/components/navbar/NavbarCollapse.js.map +1 -1
  140. package/lib/module/components/navbar/NavbarText.js +3 -3
  141. package/lib/module/components/navbar/NavbarText.js.map +1 -1
  142. package/lib/module/components/navbar/NavbarToggler.js +3 -3
  143. package/lib/module/components/navbar/NavbarToggler.js.map +1 -1
  144. package/lib/module/components/offcanvas/Offcanvas.js +3 -3
  145. package/lib/module/components/offcanvas/Offcanvas.js.map +1 -1
  146. package/lib/module/components/offcanvas/OffcanvasBody.js +3 -3
  147. package/lib/module/components/offcanvas/OffcanvasBody.js.map +1 -1
  148. package/lib/module/components/offcanvas/OffcanvasHeader.js +3 -3
  149. package/lib/module/components/offcanvas/OffcanvasHeader.js.map +1 -1
  150. package/lib/module/components/offcanvas/OffcanvasTitle.js +3 -3
  151. package/lib/module/components/offcanvas/OffcanvasTitle.js.map +1 -1
  152. package/lib/module/components/pagination/Pagination.js +3 -3
  153. package/lib/module/components/pagination/Pagination.js.map +1 -1
  154. package/lib/module/components/pagination/PaginationItem.js +3 -3
  155. package/lib/module/components/pagination/PaginationItem.js.map +1 -1
  156. package/lib/module/components/placeholders/Placeholders.js +6 -6
  157. package/lib/module/components/placeholders/Placeholders.js.map +1 -1
  158. package/lib/module/components/popover/Popover.js +3 -3
  159. package/lib/module/components/popover/Popover.js.map +1 -1
  160. package/lib/module/components/popover/PopoverArrow.js +3 -3
  161. package/lib/module/components/popover/PopoverArrow.js.map +1 -1
  162. package/lib/module/components/popover/PopoverBody.js +3 -3
  163. package/lib/module/components/popover/PopoverBody.js.map +1 -1
  164. package/lib/module/components/popover/PopoverHeader.js +3 -3
  165. package/lib/module/components/popover/PopoverHeader.js.map +1 -1
  166. package/lib/module/components/popover/injectPopover.js +3 -2
  167. package/lib/module/components/popover/injectPopover.js.map +1 -1
  168. package/lib/module/components/progress/Progress.js +3 -3
  169. package/lib/module/components/progress/Progress.js.map +1 -1
  170. package/lib/module/components/progress/ProgressBar.js +3 -3
  171. package/lib/module/components/progress/ProgressBar.js.map +1 -1
  172. package/lib/module/components/spinners/Spinner.js +3 -3
  173. package/lib/module/components/spinners/Spinner.js.map +1 -1
  174. package/lib/module/components/toasts/Toast.js +3 -3
  175. package/lib/module/components/toasts/Toast.js.map +1 -1
  176. package/lib/module/components/toasts/ToastBody.js +3 -3
  177. package/lib/module/components/toasts/ToastBody.js.map +1 -1
  178. package/lib/module/components/toasts/ToastContainer.js +3 -3
  179. package/lib/module/components/toasts/ToastContainer.js.map +1 -1
  180. package/lib/module/components/toasts/ToastHeader.js +3 -3
  181. package/lib/module/components/toasts/ToastHeader.js.map +1 -1
  182. package/lib/module/components/tooltip/Tooltip.js +3 -3
  183. package/lib/module/components/tooltip/Tooltip.js.map +1 -1
  184. package/lib/module/components/tooltip/TooltipArrow.js +3 -3
  185. package/lib/module/components/tooltip/TooltipArrow.js.map +1 -1
  186. package/lib/module/components/tooltip/TooltipInner.js +3 -3
  187. package/lib/module/components/tooltip/TooltipInner.js.map +1 -1
  188. package/lib/module/components/tooltip/injectTooltip.js +3 -2
  189. package/lib/module/components/tooltip/injectTooltip.js.map +1 -1
  190. package/lib/module/components/type/Blockquote.js +3 -3
  191. package/lib/module/components/type/Blockquote.js.map +1 -1
  192. package/lib/module/components/type/Code.js +3 -3
  193. package/lib/module/components/type/Code.js.map +1 -1
  194. package/lib/module/components/type/DisplayHeading.js +3 -2
  195. package/lib/module/components/type/DisplayHeading.js.map +1 -1
  196. package/lib/module/components/type/Paragraph.js +3 -3
  197. package/lib/module/components/type/Paragraph.js.map +1 -1
  198. package/lib/module/hooks/useFocusRing.js +1 -1
  199. package/lib/module/hooks/useScrollbarEffects.js +8 -5
  200. package/lib/module/hooks/useScrollbarEffects.js.map +1 -1
  201. package/lib/module/hooks/useScrollbarEffects.web.js +21 -19
  202. package/lib/module/hooks/useScrollbarEffects.web.js.map +1 -1
  203. package/lib/module/hooks/useScrollbarOffset.js +10 -0
  204. package/lib/module/hooks/useScrollbarOffset.js.map +1 -0
  205. package/lib/module/index.js +2 -2
  206. package/lib/module/index.js.map +1 -1
  207. package/lib/module/utils.js.map +1 -1
  208. package/lib/typescript/Context.d.ts +4 -9
  209. package/lib/typescript/Context.d.ts.map +1 -1
  210. package/lib/typescript/Provider.d.ts.map +1 -1
  211. package/lib/typescript/components/Body.d.ts +2 -2
  212. package/lib/typescript/components/Body.d.ts.map +1 -1
  213. package/lib/typescript/components/Caret.d.ts +2 -2
  214. package/lib/typescript/components/Caret.d.ts.map +1 -1
  215. package/lib/typescript/components/Heading.d.ts +2 -2
  216. package/lib/typescript/components/Heading.d.ts.map +1 -1
  217. package/lib/typescript/components/Image.d.ts +1 -1
  218. package/lib/typescript/components/Image.d.ts.map +1 -1
  219. package/lib/typescript/components/ImageBackground.d.ts +1 -1
  220. package/lib/typescript/components/ImageBackground.d.ts.map +1 -1
  221. package/lib/typescript/components/Label.d.ts +2 -2
  222. package/lib/typescript/components/Label.d.ts.map +1 -1
  223. package/lib/typescript/components/Link.d.ts +2 -2
  224. package/lib/typescript/components/Link.d.ts.map +1 -1
  225. package/lib/typescript/components/Pressable.d.ts +1 -1
  226. package/lib/typescript/components/Pressable.d.ts.map +1 -1
  227. package/lib/typescript/components/ScrollView.d.ts +1 -1
  228. package/lib/typescript/components/ScrollView.d.ts.map +1 -1
  229. package/lib/typescript/components/Text.d.ts +1 -1
  230. package/lib/typescript/components/Text.d.ts.map +1 -1
  231. package/lib/typescript/components/TextInput.d.ts +1 -1
  232. package/lib/typescript/components/TextInput.d.ts.map +1 -1
  233. package/lib/typescript/components/View.d.ts +1 -1
  234. package/lib/typescript/components/View.d.ts.map +1 -1
  235. package/lib/typescript/components/alert/Alert.d.ts +2 -2
  236. package/lib/typescript/components/alert/Alert.d.ts.map +1 -1
  237. package/lib/typescript/components/badge/Badge.d.ts +2 -2
  238. package/lib/typescript/components/badge/Badge.d.ts.map +1 -1
  239. package/lib/typescript/components/breadcrumb/Breadcrumb.d.ts +5 -3
  240. package/lib/typescript/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  241. package/lib/typescript/components/breadcrumb/BreadcrumbItem.d.ts +2 -2
  242. package/lib/typescript/components/breadcrumb/BreadcrumbItem.d.ts.map +1 -1
  243. package/lib/typescript/components/button-group/ButtonGroup.d.ts +2 -2
  244. package/lib/typescript/components/button-group/ButtonGroup.d.ts.map +1 -1
  245. package/lib/typescript/components/button-group/ButtonToolbar.d.ts +2 -2
  246. package/lib/typescript/components/button-group/ButtonToolbar.d.ts.map +1 -1
  247. package/lib/typescript/components/buttons/Button.d.ts +3 -2
  248. package/lib/typescript/components/buttons/Button.d.ts.map +1 -1
  249. package/lib/typescript/components/card/Card.d.ts +9 -5
  250. package/lib/typescript/components/card/Card.d.ts.map +1 -1
  251. package/lib/typescript/components/card/CardBody.d.ts +2 -2
  252. package/lib/typescript/components/card/CardBody.d.ts.map +1 -1
  253. package/lib/typescript/components/card/CardFooter.d.ts +2 -2
  254. package/lib/typescript/components/card/CardFooter.d.ts.map +1 -1
  255. package/lib/typescript/components/card/CardHeader.d.ts +2 -2
  256. package/lib/typescript/components/card/CardHeader.d.ts.map +1 -1
  257. package/lib/typescript/components/close/CloseButton.d.ts +2 -2
  258. package/lib/typescript/components/close/CloseButton.d.ts.map +1 -1
  259. package/lib/typescript/components/collapse/Collapse.d.ts +3 -2
  260. package/lib/typescript/components/collapse/Collapse.d.ts.map +1 -1
  261. package/lib/typescript/components/containers/Container.d.ts +2 -2
  262. package/lib/typescript/components/containers/Container.d.ts.map +1 -1
  263. package/lib/typescript/components/dropdown/Dropdown.d.ts +11 -6
  264. package/lib/typescript/components/dropdown/Dropdown.d.ts.map +1 -1
  265. package/lib/typescript/components/dropdown/DropdownDivider.d.ts +2 -2
  266. package/lib/typescript/components/dropdown/DropdownDivider.d.ts.map +1 -1
  267. package/lib/typescript/components/dropdown/DropdownHeader.d.ts +2 -2
  268. package/lib/typescript/components/dropdown/DropdownHeader.d.ts.map +1 -1
  269. package/lib/typescript/components/dropdown/DropdownItemText.d.ts +2 -2
  270. package/lib/typescript/components/dropdown/DropdownItemText.d.ts.map +1 -1
  271. package/lib/typescript/components/dropdown/DropdownMenu.d.ts +2 -2
  272. package/lib/typescript/components/dropdown/DropdownMenu.d.ts.map +1 -1
  273. package/lib/typescript/components/dropdown/useToggleDropdown.d.ts +2 -2
  274. package/lib/typescript/components/dropdown/useToggleDropdown.d.ts.map +1 -1
  275. package/lib/typescript/components/forms/Checkbox.d.ts +2 -1
  276. package/lib/typescript/components/forms/Checkbox.d.ts.map +1 -1
  277. package/lib/typescript/components/forms/Feedback.d.ts +2 -2
  278. package/lib/typescript/components/forms/Feedback.d.ts.map +1 -1
  279. package/lib/typescript/components/forms/FormCheck.d.ts +5 -3
  280. package/lib/typescript/components/forms/FormCheck.d.ts.map +1 -1
  281. package/lib/typescript/components/forms/FormCheckInput.d.ts +2 -1
  282. package/lib/typescript/components/forms/FormCheckInput.d.ts.map +1 -1
  283. package/lib/typescript/components/forms/FormCheckLabel.d.ts +2 -1
  284. package/lib/typescript/components/forms/FormCheckLabel.d.ts.map +1 -1
  285. package/lib/typescript/components/forms/FormLabel.d.ts +2 -1
  286. package/lib/typescript/components/forms/FormLabel.d.ts.map +1 -1
  287. package/lib/typescript/components/forms/FormText.d.ts +2 -2
  288. package/lib/typescript/components/forms/FormText.d.ts.map +1 -1
  289. package/lib/typescript/components/forms/Input.d.ts +2 -2
  290. package/lib/typescript/components/forms/Input.d.ts.map +1 -1
  291. package/lib/typescript/components/forms/Picker.d.ts +5 -4
  292. package/lib/typescript/components/forms/Picker.d.ts.map +1 -1
  293. package/lib/typescript/components/forms/PickerItem.d.ts +2 -2
  294. package/lib/typescript/components/forms/PickerItem.d.ts.map +1 -1
  295. package/lib/typescript/components/forms/Radio.d.ts +5 -2
  296. package/lib/typescript/components/forms/Radio.d.ts.map +1 -1
  297. package/lib/typescript/components/forms/RadioGroup.d.ts +2 -2
  298. package/lib/typescript/components/forms/RadioGroup.d.ts.map +1 -1
  299. package/lib/typescript/components/forms/Switch.d.ts +2 -1
  300. package/lib/typescript/components/forms/Switch.d.ts.map +1 -1
  301. package/lib/typescript/components/forms/internals/FormCheckInputNative.d.ts +2 -1
  302. package/lib/typescript/components/forms/internals/FormCheckInputNative.d.ts.map +1 -1
  303. package/lib/typescript/components/forms/internals/FormCheckInputWeb.d.ts +2 -1
  304. package/lib/typescript/components/forms/internals/FormCheckInputWeb.d.ts.map +1 -1
  305. package/lib/typescript/components/forms/internals/PickerNative.d.ts +2 -1
  306. package/lib/typescript/components/forms/internals/PickerNative.d.ts.map +1 -1
  307. package/lib/typescript/components/forms/internals/PickerNativeItem.d.ts +2 -2
  308. package/lib/typescript/components/forms/internals/PickerNativeItem.d.ts.map +1 -1
  309. package/lib/typescript/components/forms/internals/PickerWeb.d.ts +2 -1
  310. package/lib/typescript/components/forms/internals/PickerWeb.d.ts.map +1 -1
  311. package/lib/typescript/components/forms/internals/PickerWebItem.d.ts +2 -2
  312. package/lib/typescript/components/forms/internals/PickerWebItem.d.ts.map +1 -1
  313. package/lib/typescript/components/grid/Col.d.ts +2 -2
  314. package/lib/typescript/components/grid/Col.d.ts.map +1 -1
  315. package/lib/typescript/components/grid/Row.d.ts +2 -2
  316. package/lib/typescript/components/grid/Row.d.ts.map +1 -1
  317. package/lib/typescript/components/list-group/ListGroup.d.ts +7 -4
  318. package/lib/typescript/components/list-group/ListGroup.d.ts.map +1 -1
  319. package/lib/typescript/components/list-group/ListGroupItem.d.ts +2 -2
  320. package/lib/typescript/components/list-group/ListGroupItem.d.ts.map +1 -1
  321. package/lib/typescript/components/list-group/ListGroupItemAction.d.ts +2 -2
  322. package/lib/typescript/components/list-group/ListGroupItemAction.d.ts.map +1 -1
  323. package/lib/typescript/components/modal/Modal.d.ts +13 -7
  324. package/lib/typescript/components/modal/Modal.d.ts.map +1 -1
  325. package/lib/typescript/components/modal/ModalBody.d.ts +3 -2
  326. package/lib/typescript/components/modal/ModalBody.d.ts.map +1 -1
  327. package/lib/typescript/components/modal/ModalFooter.d.ts +2 -2
  328. package/lib/typescript/components/modal/ModalFooter.d.ts.map +1 -1
  329. package/lib/typescript/components/modal/ModalHeader.d.ts +2 -2
  330. package/lib/typescript/components/modal/ModalHeader.d.ts.map +1 -1
  331. package/lib/typescript/components/modal/ModalTitle.d.ts +2 -2
  332. package/lib/typescript/components/modal/ModalTitle.d.ts.map +1 -1
  333. package/lib/typescript/components/nav/Nav.d.ts +5 -3
  334. package/lib/typescript/components/nav/Nav.d.ts.map +1 -1
  335. package/lib/typescript/components/nav/NavLink.d.ts +2 -2
  336. package/lib/typescript/components/nav/NavLink.d.ts.map +1 -1
  337. package/lib/typescript/components/nav/Tab.d.ts +4 -2
  338. package/lib/typescript/components/nav/Tab.d.ts.map +1 -1
  339. package/lib/typescript/components/nav/TabContent.d.ts +2 -2
  340. package/lib/typescript/components/nav/TabContent.d.ts.map +1 -1
  341. package/lib/typescript/components/nav/TabPane.d.ts +2 -2
  342. package/lib/typescript/components/nav/TabPane.d.ts.map +1 -1
  343. package/lib/typescript/components/navbar/Navbar.d.ts +11 -6
  344. package/lib/typescript/components/navbar/Navbar.d.ts.map +1 -1
  345. package/lib/typescript/components/navbar/NavbarBrand.d.ts +2 -2
  346. package/lib/typescript/components/navbar/NavbarBrand.d.ts.map +1 -1
  347. package/lib/typescript/components/navbar/NavbarCollapse.d.ts +2 -2
  348. package/lib/typescript/components/navbar/NavbarCollapse.d.ts.map +1 -1
  349. package/lib/typescript/components/navbar/NavbarText.d.ts +2 -2
  350. package/lib/typescript/components/navbar/NavbarText.d.ts.map +1 -1
  351. package/lib/typescript/components/navbar/NavbarToggler.d.ts +2 -1
  352. package/lib/typescript/components/navbar/NavbarToggler.d.ts.map +1 -1
  353. package/lib/typescript/components/offcanvas/Offcanvas.d.ts +10 -6
  354. package/lib/typescript/components/offcanvas/Offcanvas.d.ts.map +1 -1
  355. package/lib/typescript/components/offcanvas/OffcanvasBody.d.ts +2 -2
  356. package/lib/typescript/components/offcanvas/OffcanvasBody.d.ts.map +1 -1
  357. package/lib/typescript/components/offcanvas/OffcanvasHeader.d.ts +2 -2
  358. package/lib/typescript/components/offcanvas/OffcanvasHeader.d.ts.map +1 -1
  359. package/lib/typescript/components/offcanvas/OffcanvasTitle.d.ts +2 -2
  360. package/lib/typescript/components/offcanvas/OffcanvasTitle.d.ts.map +1 -1
  361. package/lib/typescript/components/pagination/Pagination.d.ts +5 -3
  362. package/lib/typescript/components/pagination/Pagination.d.ts.map +1 -1
  363. package/lib/typescript/components/pagination/PaginationItem.d.ts +2 -2
  364. package/lib/typescript/components/pagination/PaginationItem.d.ts.map +1 -1
  365. package/lib/typescript/components/placeholders/Placeholders.d.ts +2 -2
  366. package/lib/typescript/components/placeholders/Placeholders.d.ts.map +1 -1
  367. package/lib/typescript/components/popover/Popover.d.ts +9 -5
  368. package/lib/typescript/components/popover/Popover.d.ts.map +1 -1
  369. package/lib/typescript/components/popover/PopoverArrow.d.ts +2 -2
  370. package/lib/typescript/components/popover/PopoverArrow.d.ts.map +1 -1
  371. package/lib/typescript/components/popover/PopoverBody.d.ts +2 -2
  372. package/lib/typescript/components/popover/PopoverBody.d.ts.map +1 -1
  373. package/lib/typescript/components/popover/PopoverHeader.d.ts +2 -2
  374. package/lib/typescript/components/popover/PopoverHeader.d.ts.map +1 -1
  375. package/lib/typescript/components/popover/injectPopover.d.ts +5 -1
  376. package/lib/typescript/components/popover/injectPopover.d.ts.map +1 -1
  377. package/lib/typescript/components/progress/Progress.d.ts +5 -3
  378. package/lib/typescript/components/progress/Progress.d.ts.map +1 -1
  379. package/lib/typescript/components/progress/ProgressBar.d.ts +2 -2
  380. package/lib/typescript/components/progress/ProgressBar.d.ts.map +1 -1
  381. package/lib/typescript/components/spinners/Spinner.d.ts +2 -2
  382. package/lib/typescript/components/spinners/Spinner.d.ts.map +1 -1
  383. package/lib/typescript/components/toasts/Toast.d.ts +7 -4
  384. package/lib/typescript/components/toasts/Toast.d.ts.map +1 -1
  385. package/lib/typescript/components/toasts/ToastBody.d.ts +2 -2
  386. package/lib/typescript/components/toasts/ToastBody.d.ts.map +1 -1
  387. package/lib/typescript/components/toasts/ToastContainer.d.ts +3 -2
  388. package/lib/typescript/components/toasts/ToastContainer.d.ts.map +1 -1
  389. package/lib/typescript/components/toasts/ToastHeader.d.ts +2 -2
  390. package/lib/typescript/components/toasts/ToastHeader.d.ts.map +1 -1
  391. package/lib/typescript/components/tooltip/Tooltip.d.ts +7 -4
  392. package/lib/typescript/components/tooltip/Tooltip.d.ts.map +1 -1
  393. package/lib/typescript/components/tooltip/TooltipArrow.d.ts +2 -2
  394. package/lib/typescript/components/tooltip/TooltipArrow.d.ts.map +1 -1
  395. package/lib/typescript/components/tooltip/TooltipInner.d.ts +2 -2
  396. package/lib/typescript/components/tooltip/TooltipInner.d.ts.map +1 -1
  397. package/lib/typescript/components/tooltip/injectTooltip.d.ts +5 -1
  398. package/lib/typescript/components/tooltip/injectTooltip.d.ts.map +1 -1
  399. package/lib/typescript/components/type/Blockquote.d.ts +2 -2
  400. package/lib/typescript/components/type/Blockquote.d.ts.map +1 -1
  401. package/lib/typescript/components/type/Code.d.ts +2 -2
  402. package/lib/typescript/components/type/Code.d.ts.map +1 -1
  403. package/lib/typescript/components/type/DisplayHeading.d.ts +5 -2
  404. package/lib/typescript/components/type/DisplayHeading.d.ts.map +1 -1
  405. package/lib/typescript/components/type/Paragraph.d.ts +2 -2
  406. package/lib/typescript/components/type/Paragraph.d.ts.map +1 -1
  407. package/lib/typescript/hooks/useScrollbarEffects.d.ts +3 -3
  408. package/lib/typescript/hooks/useScrollbarEffects.d.ts.map +1 -1
  409. package/lib/typescript/hooks/useScrollbarEffects.web.d.ts +3 -3
  410. package/lib/typescript/hooks/useScrollbarEffects.web.d.ts.map +1 -1
  411. package/lib/typescript/hooks/useScrollbarOffset.d.ts +2 -0
  412. package/lib/typescript/hooks/useScrollbarOffset.d.ts.map +1 -0
  413. package/lib/typescript/index.d.ts +3 -3
  414. package/lib/typescript/index.d.ts.map +1 -1
  415. package/lib/typescript/utils.d.ts +1 -1
  416. package/lib/typescript/utils.d.ts.map +1 -1
  417. package/package.json +1 -1
  418. package/src/Context.ts +4 -7
  419. package/src/Provider.tsx +4 -21
  420. package/src/components/Body.tsx +66 -68
  421. package/src/components/Caret.tsx +109 -111
  422. package/src/components/Heading.tsx +47 -49
  423. package/src/components/Image.tsx +3 -5
  424. package/src/components/ImageBackground.tsx +9 -10
  425. package/src/components/Label.tsx +32 -34
  426. package/src/components/Link.tsx +104 -101
  427. package/src/components/Pressable.tsx +167 -167
  428. package/src/components/ScrollView.tsx +76 -75
  429. package/src/components/Text.tsx +3 -4
  430. package/src/components/TextInput.tsx +36 -39
  431. package/src/components/View.tsx +3 -5
  432. package/src/components/alert/Alert.tsx +79 -80
  433. package/src/components/badge/Badge.tsx +41 -43
  434. package/src/components/breadcrumb/Breadcrumb.tsx +54 -56
  435. package/src/components/breadcrumb/BreadcrumbItem.tsx +80 -81
  436. package/src/components/button-group/ButtonGroup.tsx +42 -46
  437. package/src/components/button-group/ButtonToolbar.tsx +32 -34
  438. package/src/components/buttons/Button.tsx +3 -4
  439. package/src/components/card/Card.tsx +44 -46
  440. package/src/components/card/CardBody.tsx +38 -40
  441. package/src/components/card/CardFooter.tsx +42 -44
  442. package/src/components/card/CardHeader.tsx +43 -45
  443. package/src/components/close/CloseButton.tsx +53 -54
  444. package/src/components/collapse/Collapse.tsx +29 -31
  445. package/src/components/containers/Container.tsx +116 -118
  446. package/src/components/dropdown/Dropdown.tsx +3 -4
  447. package/src/components/dropdown/DropdownDivider.tsx +30 -32
  448. package/src/components/dropdown/DropdownHeader.tsx +40 -42
  449. package/src/components/dropdown/DropdownItemText.tsx +35 -37
  450. package/src/components/dropdown/DropdownMenu.tsx +109 -112
  451. package/src/components/dropdown/useToggleDropdown.ts +1 -1
  452. package/src/components/forms/Checkbox.tsx +13 -15
  453. package/src/components/forms/Feedback.tsx +38 -40
  454. package/src/components/forms/FormCheck.tsx +68 -69
  455. package/src/components/forms/FormCheckInput.tsx +78 -81
  456. package/src/components/forms/FormCheckLabel.tsx +69 -71
  457. package/src/components/forms/FormLabel.tsx +41 -43
  458. package/src/components/forms/FormText.tsx +36 -38
  459. package/src/components/forms/Input.tsx +10 -5
  460. package/src/components/forms/Picker.tsx +10 -5
  461. package/src/components/forms/PickerItem.tsx +3 -5
  462. package/src/components/forms/Radio.tsx +7 -7
  463. package/src/components/forms/RadioGroup.tsx +3 -4
  464. package/src/components/forms/Switch.tsx +13 -15
  465. package/src/components/forms/internals/FormCheckInputNative.tsx +49 -51
  466. package/src/components/forms/internals/FormCheckInputWeb.tsx +11 -11
  467. package/src/components/forms/internals/PickerNative.tsx +84 -84
  468. package/src/components/forms/internals/PickerNativeItem.tsx +29 -31
  469. package/src/components/forms/internals/PickerWeb.tsx +4 -3
  470. package/src/components/forms/internals/PickerWebItem.tsx +15 -17
  471. package/src/components/grid/Col.tsx +96 -97
  472. package/src/components/grid/Row.tsx +32 -34
  473. package/src/components/helpers/Dialog.web.tsx +2 -2
  474. package/src/components/list-group/ListGroup.tsx +75 -77
  475. package/src/components/list-group/ListGroupItem.tsx +150 -151
  476. package/src/components/list-group/ListGroupItemAction.tsx +194 -193
  477. package/src/components/modal/Modal.tsx +91 -96
  478. package/src/components/modal/ModalBody.tsx +26 -27
  479. package/src/components/modal/ModalFooter.tsx +38 -42
  480. package/src/components/modal/ModalHeader.tsx +37 -41
  481. package/src/components/modal/ModalTitle.tsx +3 -5
  482. package/src/components/nav/Nav.tsx +104 -106
  483. package/src/components/nav/NavLink.tsx +272 -267
  484. package/src/components/nav/TabContent.tsx +12 -14
  485. package/src/components/nav/TabPane.tsx +50 -52
  486. package/src/components/navbar/Navbar.tsx +89 -90
  487. package/src/components/navbar/NavbarBrand.tsx +78 -80
  488. package/src/components/navbar/NavbarCollapse.tsx +61 -63
  489. package/src/components/navbar/NavbarText.tsx +43 -45
  490. package/src/components/navbar/NavbarToggler.tsx +34 -36
  491. package/src/components/offcanvas/Offcanvas.tsx +4 -5
  492. package/src/components/offcanvas/OffcanvasBody.tsx +28 -29
  493. package/src/components/offcanvas/OffcanvasHeader.tsx +53 -55
  494. package/src/components/offcanvas/OffcanvasTitle.tsx +21 -23
  495. package/src/components/pagination/Pagination.tsx +37 -39
  496. package/src/components/pagination/PaginationItem.tsx +42 -43
  497. package/src/components/placeholders/Placeholders.tsx +30 -34
  498. package/src/components/popover/Popover.tsx +3 -4
  499. package/src/components/popover/PopoverArrow.tsx +25 -29
  500. package/src/components/popover/PopoverBody.tsx +37 -41
  501. package/src/components/popover/PopoverHeader.tsx +46 -48
  502. package/src/components/popover/injectPopover.tsx +69 -68
  503. package/src/components/progress/Progress.tsx +64 -65
  504. package/src/components/progress/ProgressBar.tsx +62 -70
  505. package/src/components/spinners/Spinner.tsx +161 -156
  506. package/src/components/toasts/Toast.tsx +65 -67
  507. package/src/components/toasts/ToastBody.tsx +39 -41
  508. package/src/components/toasts/ToastContainer.tsx +17 -19
  509. package/src/components/toasts/ToastHeader.tsx +55 -59
  510. package/src/components/tooltip/Tooltip.tsx +3 -4
  511. package/src/components/tooltip/TooltipArrow.tsx +21 -25
  512. package/src/components/tooltip/TooltipInner.tsx +37 -41
  513. package/src/components/tooltip/injectTooltip.tsx +67 -66
  514. package/src/components/type/Blockquote.tsx +43 -45
  515. package/src/components/type/Code.tsx +37 -39
  516. package/src/components/type/DisplayHeading.tsx +38 -38
  517. package/src/components/type/Paragraph.tsx +40 -42
  518. package/src/hooks/useFocusRing.ts +1 -1
  519. package/src/hooks/useScrollbarEffects.ts +8 -7
  520. package/src/hooks/useScrollbarEffects.web.ts +26 -30
  521. package/src/hooks/useScrollbarOffset.ts +12 -0
  522. package/src/index.ts +3 -3
  523. package/src/utils.ts +1 -1
  524. package/lib/module/hooks/useFixedElement.js +0 -17
  525. package/lib/module/hooks/useFixedElement.js.map +0 -1
  526. package/lib/typescript/hooks/useFixedElement.d.ts +0 -2
  527. package/lib/typescript/hooks/useFixedElement.d.ts.map +0 -1
  528. package/src/hooks/useFixedElement.ts +0 -18
@@ -1,34 +1,32 @@
1
- import React from 'react';
2
- import { Platform } from 'react-native';
3
- import View, { ViewProps, ViewRef } from './View';
4
- import { concatRefs } from '../utils';
5
-
6
- export interface LabelProps extends ViewProps {
7
- htmlFor?: string;
8
- }
9
-
10
- const Label = React.forwardRef<ViewRef, LabelProps>((props, ref) => {
11
- const { children, htmlFor, ...elementProps } = props;
12
-
13
- // Ref: https://github.com/necolas/react-native-web/issues/1651
14
- const forRef = React.useCallback((node: HTMLElement | null) => {
15
- if (Platform.OS !== 'web' || !htmlFor || !node) {
16
- return;
17
- }
18
-
19
- node.setAttribute('for', htmlFor);
20
- }, []);
21
-
22
- const role = Platform.OS === 'web' ? 'label' : undefined;
23
-
24
- return (
25
- // @ts-expect-error web only role
26
- <View {...elementProps} ref={concatRefs(forRef, ref)} role={role}>
27
- {children}
28
- </View>
29
- );
30
- });
31
-
32
- Label.displayName = 'Label';
33
-
34
- export default Label;
1
+ import React from 'react';
2
+ import { Platform } from 'react-native';
3
+ import View, { ViewProps, ViewRef } from './View';
4
+ import { concatRefs } from '../utils';
5
+
6
+ export interface LabelProps extends ViewProps {
7
+ htmlFor?: string;
8
+ }
9
+
10
+ function Label(props: LabelProps & React.RefAttributes<ViewRef>) {
11
+ const { ref, children, htmlFor, ...elementProps } = props;
12
+
13
+ // Ref: https://github.com/necolas/react-native-web/issues/1651
14
+ const forRef = React.useCallback((node: HTMLElement | null) => {
15
+ if (Platform.OS !== 'web' || !htmlFor || !node) {
16
+ return;
17
+ }
18
+
19
+ node.setAttribute('for', htmlFor);
20
+ }, []);
21
+
22
+ const role = Platform.OS === 'web' ? 'label' : undefined;
23
+
24
+ return (
25
+ // @ts-expect-error web only role
26
+ <View {...elementProps} ref={concatRefs(forRef, ref)} role={role}>
27
+ {children}
28
+ </View>
29
+ );
30
+ }
31
+
32
+ export default Label;
@@ -1,101 +1,104 @@
1
- import React from 'react';
2
- import type { MouseEvent } from 'react-native';
3
- import StyleSheet from '../style/StyleSheet';
4
- import css from '../style/css';
5
- import Text, { TextProps, TextRef } from './Text';
6
- import { getStyles } from '../utils';
7
- import useModifier from '../hooks/useModifier';
8
- import useAction, { UseActionProps } from '../hooks/useAction';
9
- import useMedia from '../hooks/useMedia';
10
- import useStyle from '../hooks/useStyle';
11
- import useInteractionState from '../hooks/useInteractionState';
12
- import { getRole } from './Pressable';
13
- import { UseActionableProps } from '../types';
14
-
15
- // We need to omit onPress here, because onPress can be null on UseActionableProps, but cannot be null on TextProps.
16
- export interface LinkProps
17
- extends Omit<UseActionProps, 'onPress'>,
18
- Omit<UseActionableProps, 'onPress'>,
19
- TextProps {
20
- onMouseEnter?: (event?: MouseEvent) => void;
21
- onMouseLeave?: (event?: MouseEvent) => void;
22
- }
23
-
24
- const styles = StyleSheet.create({
25
- link: css`
26
- color: $link-color;
27
- text-decoration-color: $link-color; // added for bootstrap-rn
28
- text-decoration-line: $link-decoration;
29
-
30
- &:hover {
31
- color: $link-hover-color;
32
- text-decoration-color: $link-hover-color; // added for bootstrap-rn
33
- text-decoration-line: $link-hover-decoration;
34
- }
35
- `,
36
- });
37
-
38
- const Link = React.forwardRef<TextRef, LinkProps>((props, ref) => {
39
- const [modifierProps, modifierRef] = useModifier('useActionable', props, ref);
40
- const [actionProps, actionRef] = useAction(modifierProps, modifierRef);
41
-
42
- const {
43
- children,
44
- // Filter hover handlers, because Text component does not have hover
45
- // handlers. Instead we use mouse enter/leave handlers.
46
- // @ts-expect-error see comment above
47
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
48
- onHoverIn,
49
- // @ts-expect-error see comment above
50
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
51
- onHoverOut,
52
- onMouseEnter: handleMouseEnter = () => {},
53
- onMouseLeave: handleMouseLeave = () => {},
54
- style,
55
- ...elementProps
56
- } = actionProps;
57
-
58
- const media = useMedia();
59
-
60
- const classes = getStyles(styles, ['link']);
61
-
62
- const resolveStyle = useStyle([classes, style]);
63
-
64
- const {
65
- interaction,
66
- interactionProps: {
67
- onHoverIn: handleMouseEnterInteraction,
68
- onHoverOut: handleMouseLeaveInteraction,
69
- ...interactionProps
70
- },
71
- } = useInteractionState(elementProps);
72
-
73
- return (
74
- <Text
75
- {...elementProps}
76
- {...interactionProps}
77
- // @ts-expect-error web only event
78
- onMouseEnter={(event: MouseEvent) => {
79
- handleMouseEnter(event);
80
- handleMouseEnterInteraction(event);
81
- }}
82
- onMouseLeave={(event: MouseEvent) => {
83
- handleMouseLeave(event);
84
- handleMouseLeaveInteraction(event);
85
- }}
86
- ref={actionRef}
87
- role={getRole(actionProps)}
88
- accessible
89
- style={resolveStyle({
90
- media,
91
- interaction,
92
- })}
93
- >
94
- {children}
95
- </Text>
96
- );
97
- });
98
-
99
- Link.displayName = 'Link';
100
-
101
- export default Link;
1
+ import React from 'react';
2
+ import type { MouseEvent } from 'react-native';
3
+ import StyleSheet from '../style/StyleSheet';
4
+ import css from '../style/css';
5
+ import Text, { TextProps, TextRef } from './Text';
6
+ import { getStyles } from '../utils';
7
+ import useModifier from '../hooks/useModifier';
8
+ import useAction, { UseActionProps } from '../hooks/useAction';
9
+ import useMedia from '../hooks/useMedia';
10
+ import useStyle from '../hooks/useStyle';
11
+ import useInteractionState from '../hooks/useInteractionState';
12
+ import { getRole } from './Pressable';
13
+ import { UseActionableProps } from '../types';
14
+
15
+ // We need to omit onPress here, because onPress can be null on UseActionableProps, but cannot be null on TextProps.
16
+ export interface LinkProps
17
+ extends
18
+ Omit<UseActionProps, 'onPress'>,
19
+ Omit<UseActionableProps, 'onPress'>,
20
+ TextProps {
21
+ onMouseEnter?: (event?: MouseEvent) => void;
22
+ onMouseLeave?: (event?: MouseEvent) => void;
23
+ }
24
+
25
+ const styles = StyleSheet.create({
26
+ link: css`
27
+ color: $link-color;
28
+ text-decoration-color: $link-color; // added for bootstrap-rn
29
+ text-decoration-line: $link-decoration;
30
+
31
+ &:hover {
32
+ color: $link-hover-color;
33
+ text-decoration-color: $link-hover-color; // added for bootstrap-rn
34
+ text-decoration-line: $link-hover-decoration;
35
+ }
36
+ `,
37
+ });
38
+
39
+ function Link({ ref, ...props }: LinkProps & React.RefAttributes<TextRef>) {
40
+ const [modifierProps, modifierRef] = useModifier(
41
+ 'useActionable',
42
+ props,
43
+ ref ?? null,
44
+ );
45
+ const [actionProps, actionRef] = useAction(modifierProps, modifierRef);
46
+
47
+ const {
48
+ children,
49
+ // Filter hover handlers, because Text component does not have hover
50
+ // handlers. Instead we use mouse enter/leave handlers.
51
+ // @ts-expect-error see comment above
52
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
53
+ onHoverIn,
54
+ // @ts-expect-error see comment above
55
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
56
+ onHoverOut,
57
+ onMouseEnter: handleMouseEnter = () => {},
58
+ onMouseLeave: handleMouseLeave = () => {},
59
+ style,
60
+ ...elementProps
61
+ } = actionProps;
62
+
63
+ const media = useMedia();
64
+
65
+ const classes = getStyles(styles, ['link']);
66
+
67
+ const resolveStyle = useStyle([classes, style]);
68
+
69
+ const {
70
+ interaction,
71
+ interactionProps: {
72
+ onHoverIn: handleMouseEnterInteraction,
73
+ onHoverOut: handleMouseLeaveInteraction,
74
+ ...interactionProps
75
+ },
76
+ } = useInteractionState(elementProps);
77
+
78
+ return (
79
+ <Text
80
+ {...elementProps}
81
+ {...interactionProps}
82
+ // @ts-expect-error web only event
83
+ onMouseEnter={(event: MouseEvent) => {
84
+ handleMouseEnter(event);
85
+ handleMouseEnterInteraction(event);
86
+ }}
87
+ onMouseLeave={(event: MouseEvent) => {
88
+ handleMouseLeave(event);
89
+ handleMouseLeaveInteraction(event);
90
+ }}
91
+ ref={actionRef}
92
+ role={getRole(actionProps)}
93
+ accessible
94
+ style={resolveStyle({
95
+ media,
96
+ interaction,
97
+ })}
98
+ >
99
+ {children}
100
+ </Text>
101
+ );
102
+ }
103
+
104
+ export default Link;
@@ -1,167 +1,167 @@
1
- import React, { useContext, useMemo } from 'react';
2
- import {
3
- Text,
4
- I18nManager,
5
- Pressable as BasePressable,
6
- PressableProps as BasePressableProps,
7
- View as BaseView,
8
- } from 'react-native';
9
- import TextStyleContext from '../style/TextStyleContext';
10
- import useModifier from '../hooks/useModifier';
11
- import useAction, { UseActionProps } from '../hooks/useAction';
12
- import useMedia from '../hooks/useMedia';
13
- import useStyle from '../hooks/useStyle';
14
- import useInteractionState from '../hooks/useInteractionState';
15
- import Caret, { CaretProps } from './Caret';
16
- import type {
17
- ExtendedViewStyle,
18
- ExtendedTextStyle,
19
- StyleProp,
20
- StyleName,
21
- UseActionableProps,
22
- } from '../types';
23
-
24
- export type PressableRef = BaseView;
25
-
26
- type CaretTypes = boolean | CaretProps;
27
-
28
- export interface PressableProps
29
- extends UseActionProps,
30
- UseActionableProps,
31
- Omit<BasePressableProps, 'children' | 'style'> {
32
- children?: React.ReactNode;
33
- caret?: CaretTypes;
34
- active?: boolean;
35
- style?: StyleProp<ExtendedViewStyle>;
36
- activeStyle?: StyleProp<ExtendedViewStyle>;
37
- textStyle?: StyleProp<ExtendedTextStyle>;
38
- activeTextStyle?: StyleProp<ExtendedTextStyle>;
39
- styleName?: StyleName;
40
- }
41
-
42
- // One of the following should be set for aria support:
43
- // 1) role
44
- // 2) aria-label + aria-hint
45
- // 3) accessibilityActions + onAccessibilityAction
46
- export const getRole = (
47
- props: Pick<PressableProps, 'role' | 'accessibilityActions' | 'aria-label'>,
48
- ) => {
49
- const { role, accessibilityActions } = props;
50
-
51
- if (role) {
52
- return role;
53
- }
54
-
55
- if (props['aria-label'] || accessibilityActions) {
56
- return undefined;
57
- }
58
-
59
- return 'button';
60
- };
61
-
62
- const applyCaret = (
63
- children: React.ReactNode,
64
- caret?: CaretTypes,
65
- ): React.ReactNode => {
66
- if (!caret) {
67
- return children;
68
- }
69
-
70
- const options = caret === true ? {} : caret;
71
-
72
- const element = <Caret color={options.color} direction={options.direction} />;
73
- const space = <Text> </Text>;
74
-
75
- const isLeftCaret =
76
- options.direction === (I18nManager.isRTL ? 'end' : 'start');
77
-
78
- if (isLeftCaret) {
79
- return (
80
- <>
81
- {element}
82
- {space}
83
- {children}
84
- </>
85
- );
86
- }
87
-
88
- return (
89
- <>
90
- {children}
91
- {space}
92
- {element}
93
- </>
94
- );
95
- };
96
-
97
- const Pressable = React.forwardRef<PressableRef, PressableProps>(
98
- (props, ref) => {
99
- const [modifierProps, modifierRef] = useModifier(
100
- 'useActionable',
101
- props,
102
- ref,
103
- );
104
- const [actionProps, actionRef] = useAction(modifierProps, modifierRef);
105
-
106
- const {
107
- children,
108
- caret = false,
109
- active = false,
110
- style,
111
- activeStyle,
112
- textStyle,
113
- activeTextStyle,
114
- styleName,
115
- ...elementProps
116
- } = actionProps;
117
-
118
- const media = useMedia();
119
- const context = useContext(TextStyleContext);
120
-
121
- const resolveStyle = useStyle(style, styleName);
122
- const resolveActiveStyle = useStyle(active && activeStyle);
123
- const resolveTextStyle = useStyle([context && context.style, textStyle]);
124
- const resolveActiveTextStyle = useStyle(active && activeTextStyle);
125
-
126
- const { interaction, interactionProps } = useInteractionState(elementProps);
127
-
128
- const hasTextStyle = (context && context.style) || textStyle;
129
- const wrappedChildren = applyCaret(children, caret);
130
-
131
- const contextValue = useMemo(
132
- () => ({
133
- style: [
134
- resolveTextStyle({ media, interaction }),
135
- resolveActiveTextStyle({ media, interaction }),
136
- ],
137
- hasAncestor: context && context.hasTextAncestor,
138
- }),
139
- [resolveTextStyle, resolveActiveTextStyle, media, interaction],
140
- );
141
-
142
- return (
143
- <BasePressable
144
- {...elementProps}
145
- {...interactionProps}
146
- ref={actionRef}
147
- role={getRole(actionProps)}
148
- style={[
149
- resolveStyle({ media, interaction }),
150
- resolveActiveStyle({ media, interaction }),
151
- ]}
152
- >
153
- {hasTextStyle ? (
154
- <TextStyleContext.Provider value={contextValue}>
155
- {wrappedChildren}
156
- </TextStyleContext.Provider>
157
- ) : (
158
- wrappedChildren
159
- )}
160
- </BasePressable>
161
- );
162
- },
163
- );
164
-
165
- Pressable.displayName = 'Pressable';
166
-
167
- export default Pressable;
1
+ import React, { useContext, useMemo } from 'react';
2
+ import {
3
+ Text,
4
+ I18nManager,
5
+ Pressable as BasePressable,
6
+ PressableProps as BasePressableProps,
7
+ View as BaseView,
8
+ } from 'react-native';
9
+ import TextStyleContext from '../style/TextStyleContext';
10
+ import useModifier from '../hooks/useModifier';
11
+ import useAction, { UseActionProps } from '../hooks/useAction';
12
+ import useMedia from '../hooks/useMedia';
13
+ import useStyle from '../hooks/useStyle';
14
+ import useInteractionState from '../hooks/useInteractionState';
15
+ import Caret, { CaretProps } from './Caret';
16
+ import type {
17
+ ExtendedViewStyle,
18
+ ExtendedTextStyle,
19
+ StyleProp,
20
+ StyleName,
21
+ UseActionableProps,
22
+ } from '../types';
23
+
24
+ export type PressableRef = BaseView;
25
+
26
+ type CaretTypes = boolean | CaretProps;
27
+
28
+ export interface PressableProps
29
+ extends
30
+ UseActionProps,
31
+ UseActionableProps,
32
+ Omit<BasePressableProps, 'children' | 'style'> {
33
+ children?: React.ReactNode;
34
+ caret?: CaretTypes;
35
+ active?: boolean;
36
+ style?: StyleProp<ExtendedViewStyle>;
37
+ activeStyle?: StyleProp<ExtendedViewStyle>;
38
+ textStyle?: StyleProp<ExtendedTextStyle>;
39
+ activeTextStyle?: StyleProp<ExtendedTextStyle>;
40
+ styleName?: StyleName;
41
+ }
42
+
43
+ // One of the following should be set for aria support:
44
+ // 1) role
45
+ // 2) aria-label + aria-hint
46
+ // 3) accessibilityActions + onAccessibilityAction
47
+ export const getRole = (
48
+ props: Pick<PressableProps, 'role' | 'accessibilityActions' | 'aria-label'>,
49
+ ) => {
50
+ const { role, accessibilityActions } = props;
51
+
52
+ if (role) {
53
+ return role;
54
+ }
55
+
56
+ if (props['aria-label'] || accessibilityActions) {
57
+ return undefined;
58
+ }
59
+
60
+ return 'button';
61
+ };
62
+
63
+ const applyCaret = (
64
+ children: React.ReactNode,
65
+ caret?: CaretTypes,
66
+ ): React.ReactNode => {
67
+ if (!caret) {
68
+ return children;
69
+ }
70
+
71
+ const options = caret === true ? {} : caret;
72
+
73
+ const element = <Caret color={options.color} direction={options.direction} />;
74
+ const space = <Text> </Text>;
75
+
76
+ const isLeftCaret =
77
+ options.direction === (I18nManager.isRTL ? 'end' : 'start');
78
+
79
+ if (isLeftCaret) {
80
+ return (
81
+ <>
82
+ {element}
83
+ {space}
84
+ {children}
85
+ </>
86
+ );
87
+ }
88
+
89
+ return (
90
+ <>
91
+ {children}
92
+ {space}
93
+ {element}
94
+ </>
95
+ );
96
+ };
97
+
98
+ function Pressable(
99
+ allProps: PressableProps & React.RefAttributes<PressableRef>,
100
+ ) {
101
+ const { ref, ...props } = allProps;
102
+ const [modifierProps, modifierRef] = useModifier(
103
+ 'useActionable',
104
+ props,
105
+ ref ?? null,
106
+ );
107
+ const [actionProps, actionRef] = useAction(modifierProps, modifierRef);
108
+
109
+ const {
110
+ children,
111
+ caret = false,
112
+ active = false,
113
+ style,
114
+ activeStyle,
115
+ textStyle,
116
+ activeTextStyle,
117
+ styleName,
118
+ ...elementProps
119
+ } = actionProps;
120
+
121
+ const media = useMedia();
122
+ const context = useContext(TextStyleContext);
123
+
124
+ const resolveStyle = useStyle(style, styleName);
125
+ const resolveActiveStyle = useStyle(active && activeStyle);
126
+ const resolveTextStyle = useStyle([context && context.style, textStyle]);
127
+ const resolveActiveTextStyle = useStyle(active && activeTextStyle);
128
+
129
+ const { interaction, interactionProps } = useInteractionState(elementProps);
130
+
131
+ const hasTextStyle = (context && context.style) || textStyle;
132
+ const wrappedChildren = applyCaret(children, caret);
133
+
134
+ const contextValue = useMemo(
135
+ () => ({
136
+ style: [
137
+ resolveTextStyle({ media, interaction }),
138
+ resolveActiveTextStyle({ media, interaction }),
139
+ ],
140
+ hasAncestor: context && context.hasTextAncestor,
141
+ }),
142
+ [resolveTextStyle, resolveActiveTextStyle, media, interaction],
143
+ );
144
+
145
+ return (
146
+ <BasePressable
147
+ {...elementProps}
148
+ {...interactionProps}
149
+ ref={actionRef}
150
+ role={getRole(actionProps)}
151
+ style={[
152
+ resolveStyle({ media, interaction }),
153
+ resolveActiveStyle({ media, interaction }),
154
+ ]}
155
+ >
156
+ {hasTextStyle ? (
157
+ <TextStyleContext.Provider value={contextValue}>
158
+ {wrappedChildren}
159
+ </TextStyleContext.Provider>
160
+ ) : (
161
+ wrappedChildren
162
+ )}
163
+ </BasePressable>
164
+ );
165
+ }
166
+
167
+ export default Pressable;