@fountain-ui/core 3.0.0-alpha.5 → 3.0.0-alpha.50

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 (607) hide show
  1. package/build/commonjs/Accordion/Accordion.js +20 -13
  2. package/build/commonjs/Accordion/Accordion.js.map +1 -1
  3. package/build/commonjs/Accordion/AccordionProps.js.map +1 -1
  4. package/build/commonjs/Accordion/useVariantStyleMap.js +13 -6
  5. package/build/commonjs/Accordion/useVariantStyleMap.js.map +1 -1
  6. package/build/commonjs/AppBar/AppBar.js +1 -1
  7. package/build/commonjs/AppBar/AppBar.js.map +1 -1
  8. package/build/commonjs/AspectRatio/AspectRatioNative.js +1 -1
  9. package/build/commonjs/AspectRatio/AspectRatioNative.js.map +1 -1
  10. package/build/commonjs/AspectRatio/AspectRatioWeb.js +1 -1
  11. package/build/commonjs/AspectRatio/AspectRatioWeb.js.map +1 -1
  12. package/build/commonjs/Badge/Badge.js +4 -3
  13. package/build/commonjs/Badge/Badge.js.map +1 -1
  14. package/build/commonjs/Badge/BadgeProps.js.map +1 -1
  15. package/build/commonjs/BottomSheetTitle/BottomSheetTitle.js +7 -3
  16. package/build/commonjs/BottomSheetTitle/BottomSheetTitle.js.map +1 -1
  17. package/build/commonjs/BottomSheetTitle/BottomSheetTitleProps.js.map +1 -1
  18. package/build/commonjs/Button/Button.js +26 -12
  19. package/build/commonjs/Button/Button.js.map +1 -1
  20. package/build/commonjs/Button/ButtonProps.js.map +1 -1
  21. package/build/commonjs/Button/useVariantStyleMap.js +18 -0
  22. package/build/commonjs/Button/useVariantStyleMap.js.map +1 -1
  23. package/build/commonjs/ButtonBase/ButtonBase.js +1 -1
  24. package/build/commonjs/ButtonBase/ButtonBase.js.map +1 -1
  25. package/build/commonjs/ButtonBase/index.js +2 -2
  26. package/build/commonjs/ButtonBase/index.js.map +1 -1
  27. package/build/commonjs/Checkbox/Checkbox.js +4 -1
  28. package/build/commonjs/Checkbox/Checkbox.js.map +1 -1
  29. package/build/commonjs/Checkbox/useVariantStyleMap.js +6 -2
  30. package/build/commonjs/Checkbox/useVariantStyleMap.js.map +1 -1
  31. package/build/commonjs/Chip/Chip.js +27 -14
  32. package/build/commonjs/Chip/Chip.js.map +1 -1
  33. package/build/commonjs/Chip/ChipProps.js +5 -1
  34. package/build/commonjs/Chip/ChipProps.js.map +1 -1
  35. package/build/commonjs/Chip/index.js +12 -0
  36. package/build/commonjs/Chip/index.js.map +1 -1
  37. package/build/commonjs/Chip/useChipStyle.js +59 -32
  38. package/build/commonjs/Chip/useChipStyle.js.map +1 -1
  39. package/build/commonjs/Dialog/Dialog.js +11 -12
  40. package/build/commonjs/Dialog/Dialog.js.map +1 -1
  41. package/build/commonjs/Dialog/DialogProps.js +1 -1
  42. package/build/commonjs/Dialog/DialogProps.js.map +1 -1
  43. package/build/commonjs/Dialog/useDialogSectionStyle.js +6 -4
  44. package/build/commonjs/Dialog/useDialogSectionStyle.js.map +1 -1
  45. package/build/commonjs/Dialog/useDialogStyle.js +19 -8
  46. package/build/commonjs/Dialog/useDialogStyle.js.map +1 -1
  47. package/build/commonjs/DialogActions/DialogActions.js +0 -1
  48. package/build/commonjs/DialogActions/DialogActions.js.map +1 -1
  49. package/build/commonjs/DialogTitle/DialogLargeTitle.js +80 -0
  50. package/build/commonjs/DialogTitle/DialogLargeTitle.js.map +1 -0
  51. package/build/commonjs/DialogTitle/DialogTitle.js +8 -4
  52. package/build/commonjs/DialogTitle/DialogTitle.js.map +1 -1
  53. package/build/commonjs/Divider/Divider.js +17 -9
  54. package/build/commonjs/Divider/Divider.js.map +1 -1
  55. package/build/commonjs/Divider/DividerProps.js +1 -1
  56. package/build/commonjs/Divider/DividerProps.js.map +1 -1
  57. package/build/commonjs/Empty/Empty.js +1 -1
  58. package/build/commonjs/Empty/Empty.js.map +1 -1
  59. package/build/commonjs/Flexbox/Flexbox.js +2 -0
  60. package/build/commonjs/Flexbox/Flexbox.js.map +1 -1
  61. package/build/commonjs/Flexbox/FlexboxProps.js.map +1 -1
  62. package/build/commonjs/IconButton/IconButton.js +3 -0
  63. package/build/commonjs/IconButton/IconButton.js.map +1 -1
  64. package/build/commonjs/IconButton/IconButtonProps.js +1 -1
  65. package/build/commonjs/IconButton/IconButtonProps.js.map +1 -1
  66. package/build/commonjs/Image/Image.js +13 -4
  67. package/build/commonjs/Image/Image.js.map +1 -1
  68. package/build/commonjs/Image/ImageProps.js.map +1 -1
  69. package/build/commonjs/Image/OverlayCloseButton/OverlayCloseButton.js +46 -0
  70. package/build/commonjs/Image/OverlayCloseButton/OverlayCloseButton.js.map +1 -0
  71. package/build/commonjs/Image/OverlayCloseButton/OverlayCloseButtonProps.js +2 -0
  72. package/build/commonjs/Image/OverlayCloseButton/OverlayCloseButtonProps.js.map +1 -0
  73. package/build/commonjs/Image/OverlayCloseButton/index.js +16 -0
  74. package/build/commonjs/Image/OverlayCloseButton/index.js.map +1 -0
  75. package/build/commonjs/Image/preload.js +10 -0
  76. package/build/commonjs/Image/preload.js.map +1 -0
  77. package/build/commonjs/Image/preload.native.js +22 -0
  78. package/build/commonjs/Image/preload.native.js.map +1 -0
  79. package/build/commonjs/ImageCore/ImageCoreNative.js +13 -10
  80. package/build/commonjs/ImageCore/ImageCoreNative.js.map +1 -1
  81. package/build/commonjs/ImageCore/ImageCoreProps.js.map +1 -1
  82. package/build/commonjs/ListItem/ListItem.js +5 -15
  83. package/build/commonjs/ListItem/ListItem.js.map +1 -1
  84. package/build/commonjs/ListItemText/ListItemText.js +2 -2
  85. package/build/commonjs/ListItemText/ListItemText.js.map +1 -1
  86. package/build/commonjs/ListSubheader/ListSubheader.js +1 -1
  87. package/build/commonjs/ListSubheader/ListSubheader.js.map +1 -1
  88. package/build/commonjs/Modal/Modal.js +29 -20
  89. package/build/commonjs/Modal/Modal.js.map +1 -1
  90. package/build/commonjs/Modal/ModalProps.js.map +1 -1
  91. package/build/commonjs/Pagination/NumberPagination.js +4 -2
  92. package/build/commonjs/Pagination/NumberPagination.js.map +1 -1
  93. package/build/commonjs/Pagination/Pagination.js +2 -0
  94. package/build/commonjs/Pagination/Pagination.js.map +1 -1
  95. package/build/commonjs/Pagination/PaginationProps.js +3 -1
  96. package/build/commonjs/Pagination/PaginationProps.js.map +1 -1
  97. package/build/commonjs/Pagination/index.js +6 -0
  98. package/build/commonjs/Pagination/index.js.map +1 -1
  99. package/build/commonjs/PaginationItem/PaginationItem.js +32 -22
  100. package/build/commonjs/PaginationItem/PaginationItem.js.map +1 -1
  101. package/build/commonjs/PaginationItem/PaginationItemProps.js.map +1 -1
  102. package/build/commonjs/Radio/Radio.js +31 -8
  103. package/build/commonjs/Radio/Radio.js.map +1 -1
  104. package/build/commonjs/Radio/RadioProps.js.map +1 -1
  105. package/build/commonjs/RadioGroup/RadioGroup.js +2 -27
  106. package/build/commonjs/RadioGroup/RadioGroup.js.map +1 -1
  107. package/build/commonjs/ShadowView/ShadowView.native.js +1 -1
  108. package/build/commonjs/ShadowView/ShadowView.native.js.map +1 -1
  109. package/build/commonjs/Slider/Slider.js +22 -18
  110. package/build/commonjs/Slider/Slider.js.map +1 -1
  111. package/build/commonjs/SnackbarContent/SnackbarContent.js +24 -7
  112. package/build/commonjs/SnackbarContent/SnackbarContent.js.map +1 -1
  113. package/build/commonjs/Tab/Tab.js +21 -19
  114. package/build/commonjs/Tab/Tab.js.map +1 -1
  115. package/build/commonjs/Tab/TabProps.js +4 -2
  116. package/build/commonjs/Tab/TabProps.js.map +1 -1
  117. package/build/commonjs/Tab/index.js +14 -0
  118. package/build/commonjs/Tab/index.js.map +1 -1
  119. package/build/commonjs/Tab/useVariantStyleMap.js +57 -16
  120. package/build/commonjs/Tab/useVariantStyleMap.js.map +1 -1
  121. package/build/commonjs/TabBase/TabBase.js +1 -8
  122. package/build/commonjs/TabBase/TabBase.js.map +1 -1
  123. package/build/commonjs/TabBase/TabBaseProps.js.map +1 -1
  124. package/build/commonjs/Tabs/Tabs.js +32 -11
  125. package/build/commonjs/Tabs/Tabs.js.map +1 -1
  126. package/build/commonjs/Tabs/TabsProps.js.map +1 -1
  127. package/build/commonjs/Tabs/index.js.map +1 -1
  128. package/build/commonjs/Tabs/useTabsStyle.js +81 -0
  129. package/build/commonjs/Tabs/useTabsStyle.js.map +1 -0
  130. package/build/commonjs/TextField/TextField.js +99 -17
  131. package/build/commonjs/TextField/TextField.js.map +1 -1
  132. package/build/commonjs/TextField/TextFieldProps.js +3 -1
  133. package/build/commonjs/TextField/TextFieldProps.js.map +1 -1
  134. package/build/commonjs/TextField/useVariantStyleMap.js +50 -30
  135. package/build/commonjs/TextField/useVariantStyleMap.js.map +1 -1
  136. package/build/commonjs/Toolbar/BackButton/BackButton.js +47 -0
  137. package/build/commonjs/Toolbar/BackButton/BackButton.js.map +1 -0
  138. package/build/commonjs/Toolbar/BackButton/BackButtonProps.js +2 -0
  139. package/build/commonjs/Toolbar/BackButton/BackButtonProps.js.map +1 -0
  140. package/build/commonjs/Toolbar/BackButton/index.js +16 -0
  141. package/build/commonjs/Toolbar/BackButton/index.js.map +1 -0
  142. package/build/commonjs/Toolbar/Toolbar.js +22 -12
  143. package/build/commonjs/Toolbar/Toolbar.js.map +1 -1
  144. package/build/commonjs/Toolbar/ToolbarProps.js.map +1 -1
  145. package/build/commonjs/Tooltip/Beaks/index.js +32 -0
  146. package/build/commonjs/Tooltip/Beaks/index.js.map +1 -1
  147. package/build/commonjs/Tooltip/Tooltip.js +23 -23
  148. package/build/commonjs/Tooltip/Tooltip.js.map +1 -1
  149. package/build/commonjs/Tooltip/TooltipProps.js.map +1 -1
  150. package/build/commonjs/Tooltip/index.js +19 -0
  151. package/build/commonjs/Tooltip/index.js.map +1 -1
  152. package/build/commonjs/Typography/Typography.js +9 -2
  153. package/build/commonjs/Typography/Typography.js.map +1 -1
  154. package/build/commonjs/Typography/TypographyProps.js.map +1 -1
  155. package/build/commonjs/hooks/useCollapsibleAppBar.js +21 -13
  156. package/build/commonjs/hooks/useCollapsibleAppBar.js.map +1 -1
  157. package/build/commonjs/hooks/useContentContainerStyle.js +35 -17
  158. package/build/commonjs/hooks/useContentContainerStyle.js.map +1 -1
  159. package/build/commonjs/hooks/useFadeInAppBar.js +4 -4
  160. package/build/commonjs/hooks/useFadeInAppBar.js.map +1 -1
  161. package/build/commonjs/internal/icons/AppBarChevronLeft.js +23 -0
  162. package/build/commonjs/internal/icons/AppBarChevronLeft.js.map +1 -0
  163. package/build/commonjs/internal/icons/ChevronLeft.js +4 -2
  164. package/build/commonjs/internal/icons/ChevronLeft.js.map +1 -1
  165. package/build/commonjs/internal/icons/ChevronRight.js +4 -2
  166. package/build/commonjs/internal/icons/ChevronRight.js.map +1 -1
  167. package/build/commonjs/internal/icons/ChipClose.js +23 -0
  168. package/build/commonjs/internal/icons/ChipClose.js.map +1 -0
  169. package/build/commonjs/internal/icons/Clear.js +3 -3
  170. package/build/commonjs/internal/icons/Clear.js.map +1 -1
  171. package/build/commonjs/internal/icons/Close.js +4 -2
  172. package/build/commonjs/internal/icons/Close.js.map +1 -1
  173. package/build/commonjs/internal/icons/CloseCircleFillPierced.js +23 -0
  174. package/build/commonjs/internal/icons/CloseCircleFillPierced.js.map +1 -0
  175. package/build/commonjs/internal/icons/Search.js +2 -2
  176. package/build/commonjs/internal/icons/Search.js.map +1 -1
  177. package/build/commonjs/internal/icons/index.js +24 -0
  178. package/build/commonjs/internal/icons/index.js.map +1 -1
  179. package/build/module/Accordion/Accordion.js +20 -13
  180. package/build/module/Accordion/Accordion.js.map +1 -1
  181. package/build/module/Accordion/AccordionProps.js.map +1 -1
  182. package/build/module/Accordion/useVariantStyleMap.js +13 -6
  183. package/build/module/Accordion/useVariantStyleMap.js.map +1 -1
  184. package/build/module/AppBar/AppBar.js +1 -1
  185. package/build/module/AppBar/AppBar.js.map +1 -1
  186. package/build/module/AspectRatio/AspectRatioNative.js +1 -1
  187. package/build/module/AspectRatio/AspectRatioNative.js.map +1 -1
  188. package/build/module/AspectRatio/AspectRatioWeb.js +1 -1
  189. package/build/module/AspectRatio/AspectRatioWeb.js.map +1 -1
  190. package/build/module/Badge/Badge.js +4 -3
  191. package/build/module/Badge/Badge.js.map +1 -1
  192. package/build/module/Badge/BadgeProps.js.map +1 -1
  193. package/build/module/BottomSheetTitle/BottomSheetTitle.js +7 -3
  194. package/build/module/BottomSheetTitle/BottomSheetTitle.js.map +1 -1
  195. package/build/module/BottomSheetTitle/BottomSheetTitleProps.js.map +1 -1
  196. package/build/module/Button/Button.js +27 -13
  197. package/build/module/Button/Button.js.map +1 -1
  198. package/build/module/Button/ButtonProps.js.map +1 -1
  199. package/build/module/Button/useVariantStyleMap.js +18 -0
  200. package/build/module/Button/useVariantStyleMap.js.map +1 -1
  201. package/build/module/ButtonBase/ButtonBase.js +1 -1
  202. package/build/module/ButtonBase/ButtonBase.js.map +1 -1
  203. package/build/module/ButtonBase/index.js +1 -1
  204. package/build/module/ButtonBase/index.js.map +1 -1
  205. package/build/module/Checkbox/Checkbox.js +4 -1
  206. package/build/module/Checkbox/Checkbox.js.map +1 -1
  207. package/build/module/Checkbox/useVariantStyleMap.js +6 -2
  208. package/build/module/Checkbox/useVariantStyleMap.js.map +1 -1
  209. package/build/module/Chip/Chip.js +23 -13
  210. package/build/module/Chip/Chip.js.map +1 -1
  211. package/build/module/Chip/ChipProps.js +2 -0
  212. package/build/module/Chip/ChipProps.js.map +1 -1
  213. package/build/module/Chip/index.js +1 -1
  214. package/build/module/Chip/index.js.map +1 -1
  215. package/build/module/Chip/useChipStyle.js +59 -32
  216. package/build/module/Chip/useChipStyle.js.map +1 -1
  217. package/build/module/Dialog/Dialog.js +11 -11
  218. package/build/module/Dialog/Dialog.js.map +1 -1
  219. package/build/module/Dialog/DialogProps.js +1 -1
  220. package/build/module/Dialog/DialogProps.js.map +1 -1
  221. package/build/module/Dialog/useDialogSectionStyle.js +6 -4
  222. package/build/module/Dialog/useDialogSectionStyle.js.map +1 -1
  223. package/build/module/Dialog/useDialogStyle.js +18 -8
  224. package/build/module/Dialog/useDialogStyle.js.map +1 -1
  225. package/build/module/DialogActions/DialogActions.js +0 -1
  226. package/build/module/DialogActions/DialogActions.js.map +1 -1
  227. package/build/module/DialogTitle/DialogLargeTitle.js +65 -0
  228. package/build/module/DialogTitle/DialogLargeTitle.js.map +1 -0
  229. package/build/module/DialogTitle/DialogTitle.js +6 -3
  230. package/build/module/DialogTitle/DialogTitle.js.map +1 -1
  231. package/build/module/Divider/Divider.js +7 -0
  232. package/build/module/Divider/Divider.js.map +1 -1
  233. package/build/module/Divider/DividerProps.js +1 -1
  234. package/build/module/Divider/DividerProps.js.map +1 -1
  235. package/build/module/Empty/Empty.js +1 -1
  236. package/build/module/Empty/Empty.js.map +1 -1
  237. package/build/module/Flexbox/Flexbox.js +2 -0
  238. package/build/module/Flexbox/Flexbox.js.map +1 -1
  239. package/build/module/Flexbox/FlexboxProps.js.map +1 -1
  240. package/build/module/IconButton/IconButton.js +3 -0
  241. package/build/module/IconButton/IconButton.js.map +1 -1
  242. package/build/module/IconButton/IconButtonProps.js +1 -1
  243. package/build/module/IconButton/IconButtonProps.js.map +1 -1
  244. package/build/module/Image/Image.js +11 -4
  245. package/build/module/Image/Image.js.map +1 -1
  246. package/build/module/Image/ImageProps.js.map +1 -1
  247. package/build/module/Image/OverlayCloseButton/OverlayCloseButton.js +31 -0
  248. package/build/module/Image/OverlayCloseButton/OverlayCloseButton.js.map +1 -0
  249. package/build/module/Image/OverlayCloseButton/OverlayCloseButtonProps.js +2 -0
  250. package/build/module/Image/OverlayCloseButton/OverlayCloseButtonProps.js.map +1 -0
  251. package/build/module/Image/OverlayCloseButton/index.js +2 -0
  252. package/build/module/Image/OverlayCloseButton/index.js.map +1 -0
  253. package/build/module/Image/preload.js +3 -0
  254. package/build/module/Image/preload.js.map +1 -0
  255. package/build/module/Image/preload.native.js +12 -0
  256. package/build/module/Image/preload.native.js.map +1 -0
  257. package/build/module/ImageCore/ImageCoreNative.js +14 -10
  258. package/build/module/ImageCore/ImageCoreNative.js.map +1 -1
  259. package/build/module/ImageCore/ImageCoreProps.js.map +1 -1
  260. package/build/module/ListItem/ListItem.js +5 -15
  261. package/build/module/ListItem/ListItem.js.map +1 -1
  262. package/build/module/ListItemText/ListItemText.js +2 -2
  263. package/build/module/ListItemText/ListItemText.js.map +1 -1
  264. package/build/module/ListSubheader/ListSubheader.js +1 -1
  265. package/build/module/ListSubheader/ListSubheader.js.map +1 -1
  266. package/build/module/Modal/Modal.js +30 -21
  267. package/build/module/Modal/Modal.js.map +1 -1
  268. package/build/module/Modal/ModalProps.js.map +1 -1
  269. package/build/module/Pagination/NumberPagination.js +4 -2
  270. package/build/module/Pagination/NumberPagination.js.map +1 -1
  271. package/build/module/Pagination/Pagination.js +2 -0
  272. package/build/module/Pagination/Pagination.js.map +1 -1
  273. package/build/module/Pagination/PaginationProps.js +1 -0
  274. package/build/module/Pagination/PaginationProps.js.map +1 -1
  275. package/build/module/Pagination/index.js +1 -1
  276. package/build/module/Pagination/index.js.map +1 -1
  277. package/build/module/PaginationItem/PaginationItem.js +28 -21
  278. package/build/module/PaginationItem/PaginationItem.js.map +1 -1
  279. package/build/module/PaginationItem/PaginationItemProps.js.map +1 -1
  280. package/build/module/Radio/Radio.js +28 -8
  281. package/build/module/Radio/Radio.js.map +1 -1
  282. package/build/module/Radio/RadioProps.js.map +1 -1
  283. package/build/module/RadioGroup/RadioGroup.js +2 -20
  284. package/build/module/RadioGroup/RadioGroup.js.map +1 -1
  285. package/build/module/ShadowView/ShadowView.native.js +2 -2
  286. package/build/module/ShadowView/ShadowView.native.js.map +1 -1
  287. package/build/module/Slider/Slider.js +22 -18
  288. package/build/module/Slider/Slider.js.map +1 -1
  289. package/build/module/SnackbarContent/SnackbarContent.js +24 -7
  290. package/build/module/SnackbarContent/SnackbarContent.js.map +1 -1
  291. package/build/module/Tab/Tab.js +22 -19
  292. package/build/module/Tab/Tab.js.map +1 -1
  293. package/build/module/Tab/TabProps.js +2 -1
  294. package/build/module/Tab/TabProps.js.map +1 -1
  295. package/build/module/Tab/index.js +1 -0
  296. package/build/module/Tab/index.js.map +1 -1
  297. package/build/module/Tab/useVariantStyleMap.js +57 -16
  298. package/build/module/Tab/useVariantStyleMap.js.map +1 -1
  299. package/build/module/TabBase/TabBase.js +1 -8
  300. package/build/module/TabBase/TabBase.js.map +1 -1
  301. package/build/module/TabBase/TabBaseProps.js.map +1 -1
  302. package/build/module/Tabs/Tabs.js +31 -12
  303. package/build/module/Tabs/Tabs.js.map +1 -1
  304. package/build/module/Tabs/TabsProps.js.map +1 -1
  305. package/build/module/Tabs/index.js.map +1 -1
  306. package/build/module/Tabs/useTabsStyle.js +71 -0
  307. package/build/module/Tabs/useTabsStyle.js.map +1 -0
  308. package/build/module/TextField/TextField.js +99 -18
  309. package/build/module/TextField/TextField.js.map +1 -1
  310. package/build/module/TextField/TextFieldProps.js +1 -0
  311. package/build/module/TextField/TextFieldProps.js.map +1 -1
  312. package/build/module/TextField/useVariantStyleMap.js +49 -30
  313. package/build/module/TextField/useVariantStyleMap.js.map +1 -1
  314. package/build/module/Toolbar/BackButton/BackButton.js +32 -0
  315. package/build/module/Toolbar/BackButton/BackButton.js.map +1 -0
  316. package/build/module/Toolbar/BackButton/BackButtonProps.js +2 -0
  317. package/build/module/Toolbar/BackButton/BackButtonProps.js.map +1 -0
  318. package/build/module/Toolbar/BackButton/index.js +2 -0
  319. package/build/module/Toolbar/BackButton/index.js.map +1 -0
  320. package/build/module/Toolbar/Toolbar.js +20 -12
  321. package/build/module/Toolbar/Toolbar.js.map +1 -1
  322. package/build/module/Toolbar/ToolbarProps.js.map +1 -1
  323. package/build/module/Tooltip/Beaks/index.js +4 -0
  324. package/build/module/Tooltip/Beaks/index.js.map +1 -1
  325. package/build/module/Tooltip/Tooltip.js +17 -16
  326. package/build/module/Tooltip/Tooltip.js.map +1 -1
  327. package/build/module/Tooltip/TooltipProps.js.map +1 -1
  328. package/build/module/Tooltip/index.js +1 -0
  329. package/build/module/Tooltip/index.js.map +1 -1
  330. package/build/module/Typography/Typography.js +9 -2
  331. package/build/module/Typography/Typography.js.map +1 -1
  332. package/build/module/Typography/TypographyProps.js.map +1 -1
  333. package/build/module/hooks/useCollapsibleAppBar.js +22 -13
  334. package/build/module/hooks/useCollapsibleAppBar.js.map +1 -1
  335. package/build/module/hooks/useContentContainerStyle.js +32 -13
  336. package/build/module/hooks/useContentContainerStyle.js.map +1 -1
  337. package/build/module/hooks/useFadeInAppBar.js +4 -4
  338. package/build/module/hooks/useFadeInAppBar.js.map +1 -1
  339. package/build/module/internal/icons/AppBarChevronLeft.js +9 -0
  340. package/build/module/internal/icons/AppBarChevronLeft.js.map +1 -0
  341. package/build/module/internal/icons/ChevronLeft.js +4 -2
  342. package/build/module/internal/icons/ChevronLeft.js.map +1 -1
  343. package/build/module/internal/icons/ChevronRight.js +4 -2
  344. package/build/module/internal/icons/ChevronRight.js.map +1 -1
  345. package/build/module/internal/icons/ChipClose.js +9 -0
  346. package/build/module/internal/icons/ChipClose.js.map +1 -0
  347. package/build/module/internal/icons/Clear.js +3 -3
  348. package/build/module/internal/icons/Clear.js.map +1 -1
  349. package/build/module/internal/icons/Close.js +4 -2
  350. package/build/module/internal/icons/Close.js.map +1 -1
  351. package/build/module/internal/icons/CloseCircleFillPierced.js +9 -0
  352. package/build/module/internal/icons/CloseCircleFillPierced.js.map +1 -0
  353. package/build/module/internal/icons/Search.js +2 -2
  354. package/build/module/internal/icons/Search.js.map +1 -1
  355. package/build/module/internal/icons/index.js +3 -0
  356. package/build/module/internal/icons/index.js.map +1 -1
  357. package/build/typescript/Accordion/Accordion.d.ts +0 -1
  358. package/build/typescript/Accordion/AccordionProps.d.ts +4 -1
  359. package/build/typescript/Accordion/useVariantStyleMap.d.ts +1 -0
  360. package/build/typescript/AspectRatio/AspectRatioNative.d.ts +0 -1
  361. package/build/typescript/AspectRatio/AspectRatioWeb.d.ts +0 -1
  362. package/build/typescript/Avatar/Avatar.d.ts +0 -1
  363. package/build/typescript/Badge/Badge.d.ts +0 -1
  364. package/build/typescript/Badge/BadgeProps.d.ts +10 -5
  365. package/build/typescript/BottomSheetActions/BottomSheetActions.d.ts +0 -1
  366. package/build/typescript/BottomSheetContent/BottomSheetContent.d.ts +0 -1
  367. package/build/typescript/BottomSheetTitle/BottomSheetTitle.d.ts +0 -1
  368. package/build/typescript/BottomSheetTitle/BottomSheetTitleProps.d.ts +3 -3
  369. package/build/typescript/Button/Button.d.ts +0 -1
  370. package/build/typescript/Button/ButtonProps.d.ts +5 -0
  371. package/build/typescript/ButtonBase/ButtonBase.d.ts +0 -1
  372. package/build/typescript/ButtonBase/index.d.ts +1 -1
  373. package/build/typescript/ButtonSet/ButtonSet.d.ts +0 -1
  374. package/build/typescript/Card/Card.d.ts +0 -1
  375. package/build/typescript/CardActions/CardActions.d.ts +0 -1
  376. package/build/typescript/CardContent/CardContent.d.ts +0 -1
  377. package/build/typescript/CardMedia/CardMedia.d.ts +0 -1
  378. package/build/typescript/Checkbox/Checkbox.d.ts +0 -1
  379. package/build/typescript/Checkbox/useVariantStyleMap.d.ts +1 -0
  380. package/build/typescript/Chip/Chip.d.ts +0 -1
  381. package/build/typescript/Chip/ChipProps.d.ts +18 -4
  382. package/build/typescript/Chip/index.d.ts +2 -2
  383. package/build/typescript/Chip/useChipStyle.d.ts +6 -3
  384. package/build/typescript/CircularProgress/CircularProgress.d.ts +0 -1
  385. package/build/typescript/Column/Column.d.ts +0 -1
  386. package/build/typescript/Dialog/Dialog.d.ts +0 -1
  387. package/build/typescript/Dialog/DialogProps.d.ts +1 -6
  388. package/build/typescript/Dialog/useDialogSectionStyle.d.ts +1 -2
  389. package/build/typescript/Dialog/useDialogStyle.d.ts +1 -1
  390. package/build/typescript/DialogActions/DialogActions.d.ts +0 -1
  391. package/build/typescript/DialogContent/DialogContent.d.ts +0 -1
  392. package/build/typescript/DialogMedia/DialogMedia.d.ts +0 -1
  393. package/build/typescript/DialogTitle/DialogLargeTitle.d.ts +8 -0
  394. package/build/typescript/DialogTitle/DialogTitle.d.ts +6 -2
  395. package/build/typescript/Divider/Divider.d.ts +0 -1
  396. package/build/typescript/Divider/DividerProps.d.ts +1 -1
  397. package/build/typescript/Empty/Empty.d.ts +0 -1
  398. package/build/typescript/Fab/Fab.d.ts +0 -1
  399. package/build/typescript/Flexbox/Flexbox.d.ts +0 -1
  400. package/build/typescript/Flexbox/FlexboxProps.d.ts +4 -0
  401. package/build/typescript/IconButton/IconButton.d.ts +0 -1
  402. package/build/typescript/IconButton/IconButtonProps.d.ts +1 -1
  403. package/build/typescript/Image/Image.d.ts +6 -2
  404. package/build/typescript/Image/ImageProps.d.ts +6 -0
  405. package/build/typescript/Image/OverlayCloseButton/OverlayCloseButton.d.ts +2 -0
  406. package/build/typescript/Image/OverlayCloseButton/OverlayCloseButtonProps.d.ts +3 -0
  407. package/build/typescript/Image/OverlayCloseButton/index.d.ts +2 -0
  408. package/build/typescript/Image/preload.d.ts +2 -0
  409. package/build/typescript/Image/preload.native.d.ts +2 -0
  410. package/build/typescript/ImageCore/ImageCoreNative.d.ts +0 -1
  411. package/build/typescript/ImageCore/ImageCoreProps.d.ts +1 -0
  412. package/build/typescript/ImageCore/ImageCoreWeb.d.ts +0 -1
  413. package/build/typescript/Link/Link.d.ts +0 -1
  414. package/build/typescript/List/List.d.ts +0 -1
  415. package/build/typescript/ListItem/ListItem.d.ts +0 -1
  416. package/build/typescript/ListItemIcon/ListItemIcon.d.ts +0 -1
  417. package/build/typescript/ListItemSecondaryAction/ListItemSecondaryAction.d.ts +0 -1
  418. package/build/typescript/ListItemText/ListItemText.d.ts +0 -1
  419. package/build/typescript/ListSubheader/ListSubheader.d.ts +0 -1
  420. package/build/typescript/Menu/Menu.d.ts +0 -1
  421. package/build/typescript/MenuItem/MenuItem.d.ts +0 -1
  422. package/build/typescript/Modal/AnimatedContainer/index.d.ts +0 -1
  423. package/build/typescript/Modal/Modal.d.ts +0 -1
  424. package/build/typescript/Modal/ModalProps.d.ts +8 -0
  425. package/build/typescript/Pagination/NumberPagination.d.ts +0 -1
  426. package/build/typescript/Pagination/Pagination.d.ts +0 -1
  427. package/build/typescript/Pagination/PaginationProps.d.ts +12 -0
  428. package/build/typescript/Pagination/index.d.ts +2 -2
  429. package/build/typescript/PaginationItem/PaginationItemProps.d.ts +6 -0
  430. package/build/typescript/Portal/Portal.d.ts +0 -1
  431. package/build/typescript/Radio/Radio.d.ts +0 -1
  432. package/build/typescript/Radio/RadioProps.d.ts +4 -0
  433. package/build/typescript/RadioGroup/RadioGroup.d.ts +0 -1
  434. package/build/typescript/Row/Row.d.ts +0 -1
  435. package/build/typescript/Section/Section.d.ts +0 -1
  436. package/build/typescript/ShadowView/ShadowView.d.ts +0 -1
  437. package/build/typescript/ShadowView/ShadowView.native.d.ts +0 -1
  438. package/build/typescript/Slide/Slide.d.ts +0 -1
  439. package/build/typescript/Slider/Slider.d.ts +1 -1
  440. package/build/typescript/Snackbar/Snackbar.d.ts +0 -1
  441. package/build/typescript/SnackbarContent/SnackbarContent.d.ts +0 -1
  442. package/build/typescript/SnackbarContent/StatusIcon.d.ts +0 -1
  443. package/build/typescript/Spacer/Spacer.d.ts +0 -1
  444. package/build/typescript/SvgIcon/SvgIcon.d.ts +0 -1
  445. package/build/typescript/Switch/Switch.d.ts +0 -1
  446. package/build/typescript/Tab/Tab.d.ts +0 -1
  447. package/build/typescript/Tab/TabProps.d.ts +21 -2
  448. package/build/typescript/Tab/index.d.ts +2 -1
  449. package/build/typescript/Tab/useVariantStyleMap.d.ts +4 -2
  450. package/build/typescript/TabBase/TabBase.d.ts +0 -1
  451. package/build/typescript/TabBase/TabBaseProps.d.ts +0 -5
  452. package/build/typescript/Tabs/ScrollableTabsView.d.ts +0 -1
  453. package/build/typescript/Tabs/TabIndicator.d.ts +0 -1
  454. package/build/typescript/Tabs/Tabs.d.ts +1 -1
  455. package/build/typescript/Tabs/TabsProps.d.ts +6 -1
  456. package/build/typescript/Tabs/index.d.ts +1 -1
  457. package/build/typescript/Tabs/useTabsStyle.d.ts +8 -0
  458. package/build/typescript/TextField/TextFieldProps.d.ts +13 -0
  459. package/build/typescript/TextField/useVariantStyleMap.d.ts +4 -2
  460. package/build/typescript/Toggle/Toggle.d.ts +0 -1
  461. package/build/typescript/Toolbar/BackButton/BackButton.d.ts +2 -0
  462. package/build/typescript/Toolbar/BackButton/BackButtonProps.d.ts +4 -0
  463. package/build/typescript/Toolbar/BackButton/index.d.ts +2 -0
  464. package/build/typescript/Toolbar/Toolbar.d.ts +6 -2
  465. package/build/typescript/Toolbar/ToolbarProps.d.ts +0 -5
  466. package/build/typescript/Tooltip/Beaks/Beak.d.ts +0 -1
  467. package/build/typescript/Tooltip/Beaks/HorizontalLargeBeak.d.ts +0 -1
  468. package/build/typescript/Tooltip/Beaks/HorizontalSmallBeak.d.ts +0 -1
  469. package/build/typescript/Tooltip/Beaks/VerticalLargeBeak.d.ts +0 -1
  470. package/build/typescript/Tooltip/Beaks/VerticalSmallBeak.d.ts +0 -1
  471. package/build/typescript/Tooltip/Beaks/index.d.ts +4 -0
  472. package/build/typescript/Tooltip/Tooltip.d.ts +0 -1
  473. package/build/typescript/Tooltip/TooltipProps.d.ts +2 -2
  474. package/build/typescript/Tooltip/index.d.ts +1 -0
  475. package/build/typescript/Typography/TypographyProps.d.ts +4 -0
  476. package/build/typescript/animated/AnimatedAppBar.d.ts +1 -2
  477. package/build/typescript/animated/AnimatedFlatList.d.ts +1 -2
  478. package/build/typescript/animated/AnimatedTypography.d.ts +1 -2
  479. package/build/typescript/hooks/useCollapsibleAppBar.d.ts +2 -1
  480. package/build/typescript/hooks/useContentContainerStyle.d.ts +2 -1
  481. package/build/typescript/internal/icons/AppBarChevronLeft.d.ts +358 -0
  482. package/build/typescript/internal/icons/Check.d.ts +300 -73
  483. package/build/typescript/internal/icons/CheckCircle.d.ts +300 -73
  484. package/build/typescript/internal/icons/Checkbox.d.ts +300 -73
  485. package/build/typescript/internal/icons/CheckboxChecked.d.ts +300 -73
  486. package/build/typescript/internal/icons/CheckboxOn.d.ts +300 -73
  487. package/build/typescript/internal/icons/ChevronDown.d.ts +300 -73
  488. package/build/typescript/internal/icons/ChevronLeft.d.ts +300 -73
  489. package/build/typescript/internal/icons/ChevronRight.d.ts +300 -73
  490. package/build/typescript/internal/icons/ChipClose.d.ts +358 -0
  491. package/build/typescript/internal/icons/CircularProgress.d.ts +0 -1
  492. package/build/typescript/internal/icons/Clear.d.ts +300 -73
  493. package/build/typescript/internal/icons/Close.d.ts +300 -73
  494. package/build/typescript/internal/icons/CloseCircleFillPierced.d.ts +358 -0
  495. package/build/typescript/internal/icons/EyeOff.d.ts +300 -73
  496. package/build/typescript/internal/icons/EyeOn.d.ts +300 -73
  497. package/build/typescript/internal/icons/InfoCircle.d.ts +300 -73
  498. package/build/typescript/internal/icons/LoadingSpinner/index.d.ts +0 -1
  499. package/build/typescript/internal/icons/LoadingSpinner/index.native.d.ts +0 -1
  500. package/build/typescript/internal/icons/Radio.d.ts +300 -73
  501. package/build/typescript/internal/icons/RadioChecked.d.ts +300 -73
  502. package/build/typescript/internal/icons/Search.d.ts +300 -73
  503. package/build/typescript/internal/icons/index.d.ts +3 -0
  504. package/package.json +10 -10
  505. package/src/Accordion/Accordion.tsx +23 -14
  506. package/src/Accordion/AccordionProps.ts +4 -2
  507. package/src/Accordion/useVariantStyleMap.ts +12 -4
  508. package/src/AppBar/AppBar.tsx +2 -2
  509. package/src/AspectRatio/AspectRatioNative.tsx +2 -2
  510. package/src/AspectRatio/AspectRatioWeb.tsx +3 -3
  511. package/src/Badge/Badge.tsx +4 -3
  512. package/src/Badge/BadgeProps.ts +12 -6
  513. package/src/BottomSheetTitle/BottomSheetTitle.tsx +6 -2
  514. package/src/BottomSheetTitle/BottomSheetTitleProps.ts +3 -3
  515. package/src/Button/Button.tsx +28 -12
  516. package/src/Button/ButtonProps.ts +6 -0
  517. package/src/Button/useVariantStyleMap.ts +18 -0
  518. package/src/ButtonBase/ButtonBase.tsx +1 -1
  519. package/src/ButtonBase/index.ts +1 -1
  520. package/src/Checkbox/Checkbox.tsx +11 -8
  521. package/src/Checkbox/useVariantStyleMap.ts +6 -1
  522. package/src/Chip/Chip.tsx +27 -13
  523. package/src/Chip/ChipProps.ts +22 -4
  524. package/src/Chip/index.ts +2 -2
  525. package/src/Chip/useChipStyle.ts +75 -29
  526. package/src/Dialog/Dialog.tsx +13 -11
  527. package/src/Dialog/DialogProps.ts +1 -7
  528. package/src/Dialog/useDialogSectionStyle.ts +6 -4
  529. package/src/Dialog/useDialogStyle.ts +19 -7
  530. package/src/DialogActions/DialogActions.tsx +0 -1
  531. package/src/DialogTitle/DialogLargeTitle.tsx +95 -0
  532. package/src/DialogTitle/DialogTitle.tsx +6 -1
  533. package/src/Divider/Divider.tsx +5 -0
  534. package/src/Divider/DividerProps.ts +1 -1
  535. package/src/Empty/Empty.tsx +1 -1
  536. package/src/Flexbox/Flexbox.tsx +2 -0
  537. package/src/Flexbox/FlexboxProps.ts +5 -0
  538. package/src/IconButton/IconButton.tsx +2 -0
  539. package/src/IconButton/IconButtonProps.ts +1 -0
  540. package/src/Image/Image.tsx +13 -4
  541. package/src/Image/ImageProps.ts +7 -0
  542. package/src/Image/OverlayCloseButton/OverlayCloseButton.tsx +41 -0
  543. package/src/Image/OverlayCloseButton/OverlayCloseButtonProps.ts +3 -0
  544. package/src/Image/OverlayCloseButton/index.ts +2 -0
  545. package/src/Image/preload.native.ts +6 -0
  546. package/src/Image/preload.ts +5 -0
  547. package/src/ImageCore/ImageCoreNative.tsx +13 -10
  548. package/src/ImageCore/ImageCoreProps.ts +1 -0
  549. package/src/ListItem/ListItem.tsx +5 -15
  550. package/src/ListItemText/ListItemText.tsx +2 -2
  551. package/src/ListSubheader/ListSubheader.tsx +1 -1
  552. package/src/Modal/Modal.tsx +12 -4
  553. package/src/Modal/ModalProps.ts +9 -0
  554. package/src/Pagination/NumberPagination.tsx +7 -2
  555. package/src/Pagination/Pagination.tsx +3 -2
  556. package/src/Pagination/PaginationProps.ts +15 -0
  557. package/src/Pagination/index.ts +2 -2
  558. package/src/PaginationItem/PaginationItem.tsx +31 -24
  559. package/src/PaginationItem/PaginationItemProps.ts +7 -0
  560. package/src/Radio/Radio.tsx +46 -17
  561. package/src/Radio/RadioProps.ts +6 -0
  562. package/src/RadioGroup/RadioGroup.tsx +2 -28
  563. package/src/ShadowView/ShadowView.native.tsx +2 -2
  564. package/src/Slider/Slider.tsx +1 -0
  565. package/src/SnackbarContent/SnackbarContent.tsx +35 -14
  566. package/src/Tab/Tab.tsx +32 -22
  567. package/src/Tab/TabProps.ts +25 -2
  568. package/src/Tab/index.ts +2 -1
  569. package/src/Tab/useVariantStyleMap.ts +70 -17
  570. package/src/TabBase/TabBase.tsx +1 -9
  571. package/src/TabBase/TabBaseProps.ts +0 -6
  572. package/src/Tabs/Tabs.tsx +40 -13
  573. package/src/Tabs/TabsProps.ts +7 -1
  574. package/src/Tabs/index.ts +1 -1
  575. package/src/Tabs/useTabsStyle.ts +79 -0
  576. package/src/TextField/TextField.tsx +142 -47
  577. package/src/TextField/TextFieldProps.ts +16 -0
  578. package/src/TextField/useVariantStyleMap.ts +57 -30
  579. package/src/Toolbar/BackButton/BackButton.tsx +42 -0
  580. package/src/Toolbar/BackButton/BackButtonProps.ts +4 -0
  581. package/src/Toolbar/BackButton/index.ts +2 -0
  582. package/src/Toolbar/Toolbar.tsx +26 -17
  583. package/src/Toolbar/ToolbarProps.ts +0 -6
  584. package/src/Tooltip/Beaks/index.ts +4 -0
  585. package/src/Tooltip/Tooltip.tsx +16 -13
  586. package/src/Tooltip/TooltipProps.ts +2 -2
  587. package/src/Tooltip/index.ts +1 -0
  588. package/src/Typography/Typography.tsx +3 -1
  589. package/src/Typography/TypographyProps.ts +5 -0
  590. package/src/hooks/useCollapsibleAppBar.ts +27 -24
  591. package/src/hooks/useContentContainerStyle.ts +29 -12
  592. package/src/hooks/useFadeInAppBar.ts +4 -4
  593. package/src/internal/icons/AppBarChevronLeft.tsx +15 -0
  594. package/src/internal/icons/ChevronLeft.tsx +4 -1
  595. package/src/internal/icons/ChevronRight.tsx +4 -1
  596. package/src/internal/icons/ChipClose.tsx +13 -0
  597. package/src/internal/icons/Clear.tsx +3 -3
  598. package/src/internal/icons/Close.tsx +4 -1
  599. package/src/internal/icons/CloseCircleFillPierced.tsx +13 -0
  600. package/src/internal/icons/Search.tsx +2 -2
  601. package/src/internal/icons/index.ts +3 -0
  602. package/build/commonjs/ButtonBase/LegacyButtonBase.js +0 -126
  603. package/build/commonjs/ButtonBase/LegacyButtonBase.js.map +0 -1
  604. package/build/module/ButtonBase/LegacyButtonBase.js +0 -106
  605. package/build/module/ButtonBase/LegacyButtonBase.js.map +0 -1
  606. package/build/typescript/ButtonBase/LegacyButtonBase.d.ts +0 -5
  607. package/src/ButtonBase/LegacyButtonBase.tsx +0 -135
@@ -3,6 +3,30 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "HorizontalLargeBeak", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _HorizontalLargeBeak.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "HorizontalSmallBeak", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _HorizontalSmallBeak.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "VerticalLargeBeak", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _VerticalLargeBeak.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "VerticalSmallBeak", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _VerticalSmallBeak.default;
28
+ }
29
+ });
6
30
  Object.defineProperty(exports, "default", {
7
31
  enumerable: true,
8
32
  get: function () {
@@ -12,5 +36,13 @@ Object.defineProperty(exports, "default", {
12
36
 
13
37
  var _Beak = _interopRequireDefault(require("./Beak"));
14
38
 
39
+ var _HorizontalLargeBeak = _interopRequireDefault(require("./HorizontalLargeBeak"));
40
+
41
+ var _HorizontalSmallBeak = _interopRequireDefault(require("./HorizontalSmallBeak"));
42
+
43
+ var _VerticalLargeBeak = _interopRequireDefault(require("./VerticalLargeBeak"));
44
+
45
+ var _VerticalSmallBeak = _interopRequireDefault(require("./VerticalSmallBeak"));
46
+
15
47
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default } from './Beak';\nexport type { default as BeakProps } from './BeakProps';\n"],"mappings":";;;;;;;;;;;;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default } from './Beak';\nexport type { default as BeakProps } from './BeakProps';\nexport { default as HorizontalLargeBeak } from './HorizontalLargeBeak';\nexport { default as HorizontalSmallBeak } from './HorizontalSmallBeak';\nexport { default as VerticalLargeBeak } from './VerticalLargeBeak';\nexport { default as VerticalSmallBeak } from './VerticalSmallBeak';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA"}
@@ -11,11 +11,9 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
13
13
 
14
- var _styles = require("@fountain-ui/styles");
15
-
16
14
  var _ButtonBase = _interopRequireDefault(require("../ButtonBase"));
17
15
 
18
- var _styles2 = require("../styles");
16
+ var _styles = require("../styles");
19
17
 
20
18
  var _Beaks = _interopRequireDefault(require("./Beaks"));
21
19
 
@@ -25,6 +23,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
23
 
26
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
25
 
26
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
+
28
28
  const DEFAULT_BEAK_LAYOUT = {
29
29
  offset: 0,
30
30
  placement: 'middle'
@@ -57,7 +57,7 @@ const getFlexDirection = placement => {
57
57
  };
58
58
 
59
59
  const useStyles = function () {
60
- const theme = (0, _styles2.useTheme)();
60
+ const theme = (0, _styles.useTheme)();
61
61
  return {
62
62
  root: {
63
63
  position: 'absolute',
@@ -70,14 +70,14 @@ const useStyles = function () {
70
70
  },
71
71
  small: {
72
72
  borderRadius: theme.shape.radius.sm,
73
+ paddingBottom: theme.spacing(1.75),
73
74
  paddingHorizontal: theme.spacing(2),
74
- paddingVertical: theme.spacing(1.5)
75
+ paddingTop: theme.spacing(1.5)
75
76
  },
76
77
  large: {
77
78
  borderRadius: 5,
78
- paddingBottom: theme.spacing(2.5),
79
79
  paddingHorizontal: theme.spacing(4),
80
- paddingTop: theme.spacing(2)
80
+ paddingVertical: theme.spacing(2)
81
81
  }
82
82
  };
83
83
  };
@@ -97,13 +97,14 @@ function Tooltip(props) {
97
97
  title,
98
98
  tooltipStyle,
99
99
  verticalOffset = 4,
100
- visible = false
100
+ visible = false,
101
+ ...otherProps
101
102
  } = props;
102
103
  const {
103
104
  offset: beakOffset,
104
105
  placement: beakPlacement
105
106
  } = beakLayout;
106
- const theme = (0, _styles2.useTheme)();
107
+ const theme = (0, _styles.useTheme)();
107
108
  const styles = useStyles();
108
109
  const [layout, setLayout] = (0, _react.useState)(initialLayout);
109
110
  const scale = (0, _reactNativeReanimated.useSharedValue)(0);
@@ -111,7 +112,7 @@ function Tooltip(props) {
111
112
  transform: [{
112
113
  scale: scale.value
113
114
  }]
114
- }), []);
115
+ }), [scale]);
115
116
  const flexDirection = getFlexDirection(placement);
116
117
  const isVerticalPlacement = placement === 'top' || placement === 'bottom';
117
118
  const totalOffset = -((isVerticalPlacement ? layout.height : layout.width) + verticalOffset);
@@ -130,7 +131,7 @@ function Tooltip(props) {
130
131
  }),
131
132
  [placement]: totalOffset
132
133
  };
133
- const contentStyle = (0, _styles2.css)([styles.content, styles[size], isVerticalPlacement ? {
134
+ const contentStyle = (0, _styles.css)([styles.content, styles[size], isVerticalPlacement ? {
134
135
  width: '100%'
135
136
  } : {
136
137
  flexGrow: 1,
@@ -140,24 +141,23 @@ function Tooltip(props) {
140
141
  const nextScaleValue = visible ? 1 : 0;
141
142
  scale.value = (0, _reactNativeReanimated.withTiming)(nextScaleValue, ANIMATION_CONFIG);
142
143
  }, [visible]);
143
- const fontStyle = (0, _styles2.createFontStyle)(theme, {
144
- selector: typo => size === 'large' ? (0, _styles.typographyOf)({
145
- fontSize: 13,
146
- lineHeight: 19.5,
147
- fontFamily: 'PretendardStd-Regular',
148
- letterSpacing: 0
149
- }) : typo.caption2.regular,
144
+ const fontStyle = (0, _styles.createFontStyle)(theme, {
145
+ selector: typo => size === 'large' ? typo.body3.regular : typo.caption2.regular,
150
146
  color: theme.palette.text.strongInverse
151
147
  });
152
- const textStyle = (0, _styles2.css)([fontStyle, {
148
+ const textStyle = (0, _styles.css)([fontStyle, {
153
149
  flexShrink: 1
154
150
  }]);
155
- const beakStyle = (0, _styles2.css)({
151
+ const beakOverlapStyle = {
152
+ [placement === 'top' ? 'marginTop' : placement === 'bottom' ? 'marginBottom' : placement === 'left' ? 'marginLeft' : 'marginRight']: -_reactNative.StyleSheet.hairlineWidth
153
+ };
154
+ const beakStyle = (0, _styles.css)({
156
155
  transform: [isVerticalPlacement ? {
157
156
  translateX: beakOffset
158
157
  } : {
159
158
  translateY: beakOffset
160
- }]
159
+ }],
160
+ ...beakOverlapStyle
161
161
  });
162
162
 
163
163
  const buttonElem = /*#__PURE__*/_react.default.createElement(_ButtonBase.default, {
@@ -178,9 +178,9 @@ function Tooltip(props) {
178
178
  size: size
179
179
  }));
180
180
 
181
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
181
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
182
182
  style: style
183
- }, children, /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
183
+ }, otherProps), children, /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
184
184
  onLayout: event => {
185
185
  if (event.nativeEvent.layout.height === 0) {
186
186
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_BEAK_LAYOUT","offset","placement","INITIAL_LAYOUT","width","height","x","y","ANIMATION_CONFIG","duration","getFlexDirection","useStyles","theme","useTheme","root","position","zIndex","tooltip","content","backgroundColor","palette","fill","base","paddingHorizontal","spacing","paddingVertical","small","borderRadius","shape","radius","sm","large","paddingBottom","paddingTop","Tooltip","props","beakLayout","children","initialLayout","left","onClose","right","numberOfTitleLines","size","style","title","tooltipStyle","verticalOffset","visible","beakOffset","beakPlacement","styles","layout","setLayout","useState","scale","useSharedValue","animatedStyle","useAnimatedStyle","transform","value","flexDirection","isVerticalPlacement","totalOffset","tooltipLayoutStyle","alignItems","undefined","overflow","Platform","select","web","display","default","contentStyle","css","flexGrow","flexShrink","useEffect","nextScaleValue","withTiming","fontStyle","createFontStyle","selector","typo","typographyOf","fontSize","lineHeight","fontFamily","letterSpacing","caption2","regular","color","text","strongInverse","textStyle","beakStyle","translateX","translateY","buttonElem","beakElem","event","nativeEvent"],"sources":["Tooltip.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Platform, Text, View, ViewProps } from 'react-native';\nimport type { WithTimingConfig } from 'react-native-reanimated';\nimport Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';\nimport type { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport { typographyOf } from '@fountain-ui/styles';\nimport ButtonBase from '../ButtonBase';\nimport { createFontStyle, css, useTheme } from '../styles';\nimport type TooltipProps from './TooltipProps';\nimport type { TooltipBeakLayout, TooltipPlacement, TooltipSize } from './TooltipProps';\nimport Beak from './Beaks';\n\nconst DEFAULT_BEAK_LAYOUT: TooltipBeakLayout = {\n offset: 0,\n placement: 'middle',\n};\n\nconst INITIAL_LAYOUT = { width: 0, height: 0, x: 0, y: 0 };\n\nconst ANIMATION_CONFIG: Readonly<WithTimingConfig> = { duration: 150 };\n\ntype FlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\n\nconst getFlexDirection = (placement: TooltipPlacement): FlexDirection => {\n switch (placement) {\n case 'right':\n return 'row-reverse';\n case 'bottom':\n return 'column-reverse';\n case 'left':\n return 'row';\n case 'top':\n default:\n return 'column';\n }\n};\n\ntype TooltipStyles = NamedStylesStringUnion<'root' | 'content' | 'small' | 'large'>;\n\nconst useStyles: UseStyles<TooltipStyles> = function (): TooltipStyles {\n const theme = useTheme();\n\n return {\n root: {\n position: 'absolute',\n zIndex: theme.zIndex.tooltip,\n },\n content: {\n backgroundColor: theme.palette.fill.base,\n paddingHorizontal: theme.spacing(2),\n paddingVertical: theme.spacing(1.5),\n },\n small: {\n borderRadius: theme.shape.radius.sm,\n paddingHorizontal: theme.spacing(2),\n paddingVertical: theme.spacing(1.5),\n },\n large: {\n borderRadius: 5,\n paddingBottom: theme.spacing(2.5),\n paddingHorizontal: theme.spacing(4),\n paddingTop: theme.spacing(2),\n },\n };\n};\n\nexport default function Tooltip(props: TooltipProps) {\n const {\n beakLayout = DEFAULT_BEAK_LAYOUT,\n children,\n initialLayout = INITIAL_LAYOUT,\n left,\n onClose,\n placement = 'top' as TooltipPlacement,\n right,\n numberOfTitleLines = 1,\n size = 'small' as TooltipSize,\n style,\n title,\n tooltipStyle,\n verticalOffset = 4,\n visible = false,\n } = props;\n\n const {\n offset: beakOffset,\n placement: beakPlacement,\n } = beakLayout;\n\n const theme = useTheme();\n\n const styles = useStyles();\n\n const [layout, setLayout] = useState(initialLayout);\n\n const scale = useSharedValue(0);\n\n const animatedStyle = useAnimatedStyle(() => ({\n transform: [{ scale: scale.value }],\n }), []);\n\n const flexDirection = getFlexDirection(placement);\n\n const isVerticalPlacement = placement === 'top' || placement === 'bottom';\n\n const totalOffset = -((isVerticalPlacement ? layout.height : layout.width) + verticalOffset);\n const tooltipLayoutStyle: ViewProps['style'] = {\n alignItems: beakPlacement === 'start'\n ? 'flex-start'\n : beakPlacement === 'end'\n ? 'flex-end'\n : 'center',\n flexDirection,\n left,\n right,\n height: visible ? undefined : 0,\n overflow: visible ? undefined : 'hidden',\n ...Platform.select({\n web: {\n display: visible ? 'flex' : 'none',\n },\n default: {},\n }),\n [placement]: totalOffset,\n };\n\n const contentStyle = css([\n styles.content,\n styles[size],\n isVerticalPlacement\n ? { width: '100%' }\n : { flexGrow: 1, flexShrink: 1 },\n ]);\n\n useEffect(() => {\n const nextScaleValue = visible ? 1 : 0;\n\n scale.value = withTiming(nextScaleValue, ANIMATION_CONFIG);\n }, [visible]);\n\n const fontStyle = createFontStyle(theme, {\n selector: (typo) => size === 'large'\n ? typographyOf({\n fontSize: 13,\n lineHeight: 19.5,\n fontFamily: 'PretendardStd-Regular',\n letterSpacing: 0,\n })\n : typo.caption2.regular,\n color: theme.palette.text.strongInverse,\n });\n\n const textStyle = css([\n fontStyle,\n { flexShrink: 1 },\n ]);\n\n const beakStyle = css({\n transform: [isVerticalPlacement ? { translateX: beakOffset } : { translateY: beakOffset }],\n });\n\n const buttonElem = (\n <ButtonBase\n pressEffect={'none'}\n onPress={onClose}\n style={contentStyle}\n >\n <Text\n // TODO: Should we provide text prop customization?\n numberOfLines={numberOfTitleLines}\n style={textStyle}\n >\n {title}\n </Text>\n </ButtonBase>\n );\n\n const beakElem = (\n <View style={beakStyle}>\n <Beak\n fill={theme.palette.fill.base}\n placement={placement}\n size={size}\n />\n </View>\n );\n\n return (\n <View style={style}>\n {children}\n\n <Animated.View\n onLayout={(event) => {\n if (event.nativeEvent.layout.height === 0) {\n return;\n }\n\n setLayout(event.nativeEvent.layout);\n }}\n style={[\n styles.root,\n animatedStyle,\n tooltipLayoutStyle,\n tooltipStyle,\n ]}\n >\n {buttonElem}\n\n {beakElem}\n </Animated.View>\n </View>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["DEFAULT_BEAK_LAYOUT","offset","placement","INITIAL_LAYOUT","width","height","x","y","ANIMATION_CONFIG","duration","getFlexDirection","useStyles","theme","useTheme","root","position","zIndex","tooltip","content","backgroundColor","palette","fill","base","paddingHorizontal","spacing","paddingVertical","small","borderRadius","shape","radius","sm","paddingBottom","paddingTop","large","Tooltip","props","beakLayout","children","initialLayout","left","onClose","right","numberOfTitleLines","size","style","title","tooltipStyle","verticalOffset","visible","otherProps","beakOffset","beakPlacement","styles","layout","setLayout","useState","scale","useSharedValue","animatedStyle","useAnimatedStyle","transform","value","flexDirection","isVerticalPlacement","totalOffset","tooltipLayoutStyle","alignItems","undefined","overflow","Platform","select","web","display","default","contentStyle","css","flexGrow","flexShrink","useEffect","nextScaleValue","withTiming","fontStyle","createFontStyle","selector","typo","body3","regular","caption2","color","text","strongInverse","textStyle","beakOverlapStyle","StyleSheet","hairlineWidth","beakStyle","translateX","translateY","buttonElem","beakElem","event","nativeEvent"],"sources":["Tooltip.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Platform, StyleSheet, Text, View, ViewProps } from 'react-native';\nimport type { WithTimingConfig } from 'react-native-reanimated';\nimport Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';\nimport type { NamedStylesStringUnion, UseStyles } from '@fountain-ui/styles';\nimport ButtonBase from '../ButtonBase';\nimport { createFontStyle, css, useTheme } from '../styles';\nimport type TooltipProps from './TooltipProps';\nimport type { TooltipBeakLayout, TooltipPlacement, TooltipSize } from './TooltipProps';\nimport Beak from './Beaks';\n\nconst DEFAULT_BEAK_LAYOUT: TooltipBeakLayout = {\n offset: 0,\n placement: 'middle',\n};\n\nconst INITIAL_LAYOUT = { width: 0, height: 0, x: 0, y: 0 };\n\nconst ANIMATION_CONFIG: Readonly<WithTimingConfig> = { duration: 150 };\n\ntype FlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\n\nconst getFlexDirection = (placement: TooltipPlacement): FlexDirection => {\n switch (placement) {\n case 'right':\n return 'row-reverse';\n case 'bottom':\n return 'column-reverse';\n case 'left':\n return 'row';\n case 'top':\n default:\n return 'column';\n }\n};\n\ntype TooltipStyles = NamedStylesStringUnion<'root' | 'content' | 'small' | 'large'>;\n\nconst useStyles: UseStyles<TooltipStyles> = function (): TooltipStyles {\n const theme = useTheme();\n\n return {\n root: {\n position: 'absolute',\n zIndex: theme.zIndex.tooltip,\n },\n content: {\n backgroundColor: theme.palette.fill.base,\n paddingHorizontal: theme.spacing(2),\n paddingVertical: theme.spacing(1.5),\n },\n small: {\n borderRadius: theme.shape.radius.sm,\n paddingBottom: theme.spacing(1.75),\n paddingHorizontal: theme.spacing(2),\n paddingTop: theme.spacing(1.5),\n },\n large: {\n borderRadius: 5,\n paddingHorizontal: theme.spacing(4),\n paddingVertical: theme.spacing(2),\n },\n };\n};\n\nexport default function Tooltip(props: TooltipProps) {\n const {\n beakLayout = DEFAULT_BEAK_LAYOUT,\n children,\n initialLayout = INITIAL_LAYOUT,\n left,\n onClose,\n placement = 'top' as TooltipPlacement,\n right,\n numberOfTitleLines = 1,\n size = 'small' as TooltipSize,\n style,\n title,\n tooltipStyle,\n verticalOffset = 4,\n visible = false,\n ...otherProps\n } = props;\n\n const {\n offset: beakOffset,\n placement: beakPlacement,\n } = beakLayout;\n\n const theme = useTheme();\n\n const styles = useStyles();\n\n const [layout, setLayout] = useState(initialLayout);\n\n const scale = useSharedValue(0);\n\n const animatedStyle = useAnimatedStyle(() => ({\n transform: [{ scale: scale.value }],\n }), [scale]);\n\n const flexDirection = getFlexDirection(placement);\n\n const isVerticalPlacement = placement === 'top' || placement === 'bottom';\n\n const totalOffset = -((isVerticalPlacement ? layout.height : layout.width) + verticalOffset);\n const tooltipLayoutStyle: ViewProps['style'] = {\n alignItems: beakPlacement === 'start'\n ? 'flex-start'\n : beakPlacement === 'end'\n ? 'flex-end'\n : 'center',\n flexDirection,\n left,\n right,\n height: visible ? undefined : 0,\n overflow: visible ? undefined : 'hidden',\n ...Platform.select({\n web: {\n display: visible ? 'flex' : 'none',\n },\n default: {},\n }),\n [placement]: totalOffset,\n };\n\n const contentStyle = css([\n styles.content,\n styles[size],\n isVerticalPlacement\n ? { width: '100%' }\n : { flexGrow: 1, flexShrink: 1 },\n ]);\n\n useEffect(() => {\n const nextScaleValue = visible ? 1 : 0;\n\n scale.value = withTiming(nextScaleValue, ANIMATION_CONFIG);\n }, [visible]);\n\n const fontStyle = createFontStyle(theme, {\n selector: (typo) => size === 'large'\n ? typo.body3.regular\n : typo.caption2.regular,\n color: theme.palette.text.strongInverse,\n });\n\n const textStyle = css([\n fontStyle,\n { flexShrink: 1 },\n ]);\n\n const beakOverlapStyle = {\n [placement === 'top' ? 'marginTop' : placement === 'bottom' ? 'marginBottom' : placement === 'left' ? 'marginLeft' : 'marginRight']: -StyleSheet.hairlineWidth,\n };\n\n const beakStyle = css({\n transform: [isVerticalPlacement ? { translateX: beakOffset } : { translateY: beakOffset }],\n ...beakOverlapStyle,\n });\n\n const buttonElem = (\n <ButtonBase\n pressEffect={'none'}\n onPress={onClose}\n style={contentStyle}\n >\n <Text\n // TODO: Should we provide text prop customization?\n numberOfLines={numberOfTitleLines}\n style={textStyle}\n >\n {title}\n </Text>\n </ButtonBase>\n );\n\n const beakElem = (\n <View style={beakStyle}>\n <Beak\n fill={theme.palette.fill.base}\n placement={placement}\n size={size}\n />\n </View>\n );\n\n return (\n <View\n style={style}\n {...otherProps}\n >\n {children}\n\n <Animated.View\n onLayout={(event) => {\n if (event.nativeEvent.layout.height === 0) {\n return;\n }\n\n setLayout(event.nativeEvent.layout);\n }}\n style={[\n styles.root,\n animatedStyle,\n tooltipLayoutStyle,\n tooltipStyle,\n ]}\n >\n {buttonElem}\n\n {beakElem}\n </Animated.View>\n </View>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["tooltipPlacements","tooltipSizes","tooltipBeakPlacements"],"sources":["TooltipProps.ts"],"sourcesContent":["import React from 'react';\nimport type { TextProps, ViewProps } from 'react-native';\nimport type { ComponentProps } from '../types';\nimport type { ButtonProps } from '../Button';\n\nexport const tooltipPlacements = ['top', 'bottom', 'left', 'right'] as const;\nexport type TooltipPlacement = typeof tooltipPlacements[number];\n\nexport const tooltipSizes = ['small', 'large'] as const;\nexport type TooltipSize = typeof tooltipSizes[number];\n\nexport const tooltipBeakPlacements = ['start', 'middle', 'end'] as const;\nexport type TooltipBeakPlacement = typeof tooltipBeakPlacements[number];\n\nexport type TooltipBeakLayout = {\n placement: TooltipBeakPlacement;\n offset: number;\n};\n\nexport type TooltipInitialLayout = {\n height: number;\n width: number;\n x: number;\n y: number;\n};\n\nexport default interface TooltipProps extends ComponentProps<{\n /**\n * Tooltip reference element.\n */\n children: React.ReactNode;\n\n /**\n * Left position relative to reference element.\n */\n left?: number;\n\n /**\n * Callback fired when the component requests to be closed.\n */\n onClose?: () => void;\n\n /**\n * Tooltip placement.\n * @default 'top'\n */\n placement?: TooltipPlacement;\n\n /**\n * Right position relative to reference element.\n */\n right?: number;\n\n /**\n * Tooltip title.\n */\n title: ButtonProps['children'];\n\n /**\n * Additional style for tooltip wrapper.\n */\n tooltipStyle?: ViewProps['style'];\n\n /**\n * The additional amount to vertically shift.\n * @default 4\n */\n verticalOffset?: number;\n\n /**\n * If `true`, the tooltip is shown.\n * @default false\n */\n visible?: boolean;\n\n /**\n * Tooltip beak layout.\n * If 'undefined', the beak will be centered on tooltip.\n */\n beakLayout?: TooltipBeakLayout;\n\n /**\n * number of tooltip's title lines\n * @default 1\n */\n numberOfTitleLines?: TextProps['numberOfLines'];\n\n /**\n * position of tooltip before onLayout call\n * @default { height: 0, width: 0 , x: 0, y: 0}\n */\n initialLayout?: TooltipInitialLayout;\n\n /**\n * Determines the size of the tooltip.\n * @default 'small'\n */\n size?: TooltipSize;\n}> {}\n"],"mappings":";;;;;;AAKO,MAAMA,iBAAiB,GAAG,CAAC,KAAD,EAAQ,QAAR,EAAkB,MAAlB,EAA0B,OAA1B,CAA1B;;AAGA,MAAMC,YAAY,GAAG,CAAC,OAAD,EAAU,OAAV,CAArB;;AAGA,MAAMC,qBAAqB,GAAG,CAAC,OAAD,EAAU,QAAV,EAAoB,KAApB,CAA9B"}
1
+ {"version":3,"names":["tooltipPlacements","tooltipSizes","tooltipBeakPlacements"],"sources":["TooltipProps.ts"],"sourcesContent":["import React from 'react';\nimport type { TextProps, ViewProps } from 'react-native';\nimport type { ButtonProps } from '../Button';\nimport type { OverridableComponentProps } from '../types';\n\nexport const tooltipPlacements = ['top', 'bottom', 'left', 'right'] as const;\nexport type TooltipPlacement = typeof tooltipPlacements[number];\n\nexport const tooltipSizes = ['small', 'large'] as const;\nexport type TooltipSize = typeof tooltipSizes[number];\n\nexport const tooltipBeakPlacements = ['start', 'middle', 'end'] as const;\nexport type TooltipBeakPlacement = typeof tooltipBeakPlacements[number];\n\nexport type TooltipBeakLayout = {\n placement: TooltipBeakPlacement;\n offset: number;\n};\n\nexport type TooltipInitialLayout = {\n height: number;\n width: number;\n x: number;\n y: number;\n};\n\nexport default interface TooltipProps extends OverridableComponentProps<ViewProps, {\n /**\n * Tooltip reference element.\n */\n children: React.ReactNode;\n\n /**\n * Left position relative to reference element.\n */\n left?: number;\n\n /**\n * Callback fired when the component requests to be closed.\n */\n onClose?: () => void;\n\n /**\n * Tooltip placement.\n * @default 'top'\n */\n placement?: TooltipPlacement;\n\n /**\n * Right position relative to reference element.\n */\n right?: number;\n\n /**\n * Tooltip title.\n */\n title: ButtonProps['children'];\n\n /**\n * Additional style for tooltip wrapper.\n */\n tooltipStyle?: ViewProps['style'];\n\n /**\n * The additional amount to vertically shift.\n * @default 4\n */\n verticalOffset?: number;\n\n /**\n * If `true`, the tooltip is shown.\n * @default false\n */\n visible?: boolean;\n\n /**\n * Tooltip beak layout.\n * If 'undefined', the beak will be centered on tooltip.\n */\n beakLayout?: TooltipBeakLayout;\n\n /**\n * number of tooltip's title lines\n * @default 1\n */\n numberOfTitleLines?: TextProps['numberOfLines'];\n\n /**\n * position of tooltip before onLayout call\n * @default { height: 0, width: 0 , x: 0, y: 0}\n */\n initialLayout?: TooltipInitialLayout;\n\n /**\n * Determines the size of the tooltip.\n * @default 'small'\n */\n size?: TooltipSize;\n}> {}\n"],"mappings":";;;;;;AAKO,MAAMA,iBAAiB,GAAG,CAAC,KAAD,EAAQ,QAAR,EAAkB,MAAlB,EAA0B,OAA1B,CAA1B;;AAGA,MAAMC,YAAY,GAAG,CAAC,OAAD,EAAU,OAAV,CAArB;;AAGA,MAAMC,qBAAqB,GAAG,CAAC,OAAD,EAAU,QAAV,EAAoB,KAApB,CAA9B"}
@@ -3,6 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ tooltipBeakPlacements: true,
8
+ tooltipPlacements: true,
9
+ tooltipSizes: true
10
+ };
6
11
  Object.defineProperty(exports, "default", {
7
12
  enumerable: true,
8
13
  get: function () {
@@ -32,5 +37,19 @@ var _Tooltip = _interopRequireDefault(require("./Tooltip"));
32
37
 
33
38
  var _TooltipProps = require("./TooltipProps");
34
39
 
40
+ var _Beaks = require("./Beaks");
41
+
42
+ Object.keys(_Beaks).forEach(function (key) {
43
+ if (key === "default" || key === "__esModule") return;
44
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
45
+ if (key in exports && exports[key] === _Beaks[key]) return;
46
+ Object.defineProperty(exports, key, {
47
+ enumerable: true,
48
+ get: function () {
49
+ return _Beaks[key];
50
+ }
51
+ });
52
+ });
53
+
35
54
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default } from './Tooltip';\nexport type { default as TooltipProps, TooltipBeakLayout, TooltipBeakPlacement } from './TooltipProps';\nexport { tooltipBeakPlacements, tooltipPlacements, tooltipSizes } from './TooltipProps';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default } from './Tooltip';\nexport type { default as TooltipProps, TooltipBeakLayout, TooltipBeakPlacement } from './TooltipProps';\nexport { tooltipBeakPlacements, tooltipPlacements, tooltipSizes } from './TooltipProps';\nexport * from './Beaks';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -55,6 +55,7 @@ const Typography = /*#__PURE__*/_react.default.forwardRef(function Typography(pr
55
55
  color: colorProp = 'inherit',
56
56
  ellipsizeMode = 'tail',
57
57
  href,
58
+ lineHeight,
58
59
  numberOfLines,
59
60
  onPress,
60
61
  selectable,
@@ -66,7 +67,11 @@ const Typography = /*#__PURE__*/_react.default.forwardRef(function Typography(pr
66
67
  } = props;
67
68
  const theme = (0, _styles.useTheme)();
68
69
  const fontStyle = (0, _styles.createFontStyle)(theme, {
69
- selector: typography => typography[variant][weight],
70
+ selector: typography => {
71
+ var _typography$variant;
72
+
73
+ return (_typography$variant = typography[variant]) === null || _typography$variant === void 0 ? void 0 : _typography$variant[weight];
74
+ },
70
75
  color: selectColor(theme, colorProp)
71
76
  }); // To prevent white-space: pre, word-wrap:break-word style conflicting issue at safari browser.
72
77
 
@@ -75,7 +80,9 @@ const Typography = /*#__PURE__*/_react.default.forwardRef(function Typography(pr
75
80
  } : {};
76
81
  const textStyle = (0, _styles.css)([styles.root, {
77
82
  textAlign: align === 'inherit' ? 'auto' : align
78
- }, textWrapStyle, fontStyle, style]);
83
+ }, textWrapStyle, fontStyle, lineHeight ? {
84
+ lineHeight
85
+ } : undefined, style]);
79
86
  const accessibility = accessibilityMap[variant];
80
87
  const variantRole = href !== undefined ? 'link' : accessibility === null || accessibility === void 0 ? void 0 : accessibility.accessibilityRole;
81
88
  const variantLevel = accessibility === null || accessibility === void 0 ? void 0 : accessibility['area-level'];
@@ -1 +1 @@
1
- {"version":3,"names":["accessibilityMap","selectColor","theme","colorProp","Platform","OS","undefined","palette","text","styles","StyleSheet","create","root","flexShrink","maxWidth","Typography","React","forwardRef","props","ref","accessibilityRole","align","ariaLevel","disableFontScaling","children","color","ellipsizeMode","href","numberOfLines","onPress","selectable","style","variant","weight","onLayout","onTextLayout","useTheme","fontStyle","createFontStyle","selector","typography","textWrapStyle","wordWrap","textStyle","css","textAlign","accessibility","variantRole","variantLevel","memo"],"sources":["Typography.tsx"],"sourcesContent":["import React from 'react';\nimport type { TextProps, TextStyle } from 'react-native';\nimport { Platform, Text } from 'react-native';\nimport type { FontVariant, FontWeight, Theme } from '@fountain-ui/styles';\nimport { createFontStyle, css, StyleSheet, useTheme } from '../styles';\nimport type TypographyProps from './TypographyProps';\nimport type { AccessibilityMap, TypographyAlign, TypographyColor } from './TypographyProps';\n\nconst accessibilityMap: AccessibilityMap = {\n // TODO: set accessibilityRole.\n // h1: { accessibilityRole: 'header', 'aria-level': 1 },\n // h2: { accessibilityRole: 'header', 'aria-level': 2 },\n // h3: { accessibilityRole: 'header', 'aria-level': 3 },\n // subtitle1: { accessibilityRole: 'header', 'aria-level': 6 },\n // subtitle2: { accessibilityRole: 'header', 'aria-level': 6 },\n // body1: { accessibilityRole: 'text' },\n // body2: { accessibilityRole: 'text' },\n // caption1: { accessibilityRole: 'text' },\n // caption2: { accessibilityRole: 'text' },\n // flag: { accessibilityRole: 'text' },\n};\n\nfunction selectColor(theme: Theme, colorProp: TypographyColor): string | undefined {\n switch (colorProp) {\n case 'inherit':\n return Platform.OS === 'web' ? 'inherit' : undefined;\n default:\n return theme.palette.text[colorProp];\n }\n}\n\nconst styles = StyleSheet.create({\n root: {\n flexShrink: 1,\n ...(Platform.OS === 'web' ? { maxWidth: '100%' } : {}),\n },\n});\n\nconst Typography = React.forwardRef<Text, TypographyProps>(function Typography(props, ref) {\n const {\n accessibilityRole,\n align = 'inherit' as TypographyAlign,\n ariaLevel,\n disableFontScaling = false,\n children,\n color: colorProp = 'inherit' as TypographyColor,\n ellipsizeMode = 'tail' as TextProps['ellipsizeMode'],\n href,\n numberOfLines,\n onPress,\n selectable,\n style,\n variant = 'body1' as FontVariant,\n weight = 'medium' as FontWeight,\n onLayout,\n onTextLayout,\n } = props;\n\n const theme = useTheme();\n\n const fontStyle = createFontStyle(theme, {\n selector: (typography) => typography[variant][weight],\n color: selectColor(theme, colorProp),\n });\n\n // To prevent white-space: pre, word-wrap:break-word style conflicting issue at safari browser.\n const textWrapStyle = numberOfLines && numberOfLines > 0 && Platform.OS === 'web' ? { wordWrap: 'normal' } : {};\n\n const textStyle = css([\n styles.root,\n { textAlign: align === 'inherit' ? 'auto' : align },\n textWrapStyle as TextStyle,\n fontStyle,\n style,\n ]);\n\n const accessibility = accessibilityMap[variant];\n const variantRole = href !== undefined ? 'link' : accessibility?.accessibilityRole;\n const variantLevel = accessibility?.['area-level'];\n\n return (\n <Text\n ref={ref}\n accessibilityRole={accessibilityRole || variantRole}\n allowFontScaling={!disableFontScaling}\n aria-level={ariaLevel || variantLevel}\n children={children}\n ellipsizeMode={ellipsizeMode}\n // @ts-ignore\n href={href}\n numberOfLines={numberOfLines}\n onPress={onPress}\n selectable={selectable}\n style={textStyle}\n onLayout={onLayout}\n onTextLayout={onTextLayout}\n />\n );\n});\n\nexport default React.memo(Typography);\n"],"mappings":"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"}
1
+ {"version":3,"names":["accessibilityMap","selectColor","theme","colorProp","Platform","OS","undefined","palette","text","styles","StyleSheet","create","root","flexShrink","maxWidth","Typography","React","forwardRef","props","ref","accessibilityRole","align","ariaLevel","disableFontScaling","children","color","ellipsizeMode","href","lineHeight","numberOfLines","onPress","selectable","style","variant","weight","onLayout","onTextLayout","useTheme","fontStyle","createFontStyle","selector","typography","textWrapStyle","wordWrap","textStyle","css","textAlign","accessibility","variantRole","variantLevel","memo"],"sources":["Typography.tsx"],"sourcesContent":["import React from 'react';\nimport type { TextProps, TextStyle } from 'react-native';\nimport { Platform, Text } from 'react-native';\nimport type { FontVariant, FontWeight, Theme } from '@fountain-ui/styles';\nimport { createFontStyle, css, StyleSheet, useTheme } from '../styles';\nimport type TypographyProps from './TypographyProps';\nimport type { AccessibilityMap, TypographyAlign, TypographyColor } from './TypographyProps';\n\nconst accessibilityMap: AccessibilityMap = {\n // TODO: set accessibilityRole.\n // h1: { accessibilityRole: 'header', 'aria-level': 1 },\n // h2: { accessibilityRole: 'header', 'aria-level': 2 },\n // h3: { accessibilityRole: 'header', 'aria-level': 3 },\n // subtitle1: { accessibilityRole: 'header', 'aria-level': 6 },\n // subtitle2: { accessibilityRole: 'header', 'aria-level': 6 },\n // body1: { accessibilityRole: 'text' },\n // body2: { accessibilityRole: 'text' },\n // caption1: { accessibilityRole: 'text' },\n // caption2: { accessibilityRole: 'text' },\n // flag: { accessibilityRole: 'text' },\n};\n\nfunction selectColor(theme: Theme, colorProp: TypographyColor): string | undefined {\n switch (colorProp) {\n case 'inherit':\n return Platform.OS === 'web' ? 'inherit' : undefined;\n default:\n return theme.palette.text[colorProp];\n }\n}\n\nconst styles = StyleSheet.create({\n root: {\n flexShrink: 1,\n ...(Platform.OS === 'web' ? { maxWidth: '100%' } : {}),\n },\n});\n\nconst Typography = React.forwardRef<Text, TypographyProps>(function Typography(props, ref) {\n const {\n accessibilityRole,\n align = 'inherit' as TypographyAlign,\n ariaLevel,\n disableFontScaling = false,\n children,\n color: colorProp = 'inherit' as TypographyColor,\n ellipsizeMode = 'tail' as TextProps['ellipsizeMode'],\n href,\n lineHeight,\n numberOfLines,\n onPress,\n selectable,\n style,\n variant = 'body1' as FontVariant,\n weight = 'medium' as FontWeight,\n onLayout,\n onTextLayout,\n } = props;\n\n const theme = useTheme();\n\n const fontStyle = createFontStyle(theme, {\n selector: (typography) => typography[variant]?.[weight],\n color: selectColor(theme, colorProp),\n });\n\n // To prevent white-space: pre, word-wrap:break-word style conflicting issue at safari browser.\n const textWrapStyle = numberOfLines && numberOfLines > 0 && Platform.OS === 'web' ? { wordWrap: 'normal' } : {};\n\n const textStyle = css([\n styles.root,\n { textAlign: align === 'inherit' ? 'auto' : align },\n textWrapStyle as TextStyle,\n fontStyle,\n lineHeight ? { lineHeight } : undefined,\n style,\n ]);\n\n const accessibility = accessibilityMap[variant];\n const variantRole = href !== undefined ? 'link' : accessibility?.accessibilityRole;\n const variantLevel = accessibility?.['area-level'];\n\n return (\n <Text\n ref={ref}\n accessibilityRole={accessibilityRole || variantRole}\n allowFontScaling={!disableFontScaling}\n aria-level={ariaLevel || variantLevel}\n children={children}\n ellipsizeMode={ellipsizeMode}\n // @ts-ignore\n href={href}\n numberOfLines={numberOfLines}\n onPress={onPress}\n selectable={selectable}\n style={textStyle}\n onLayout={onLayout}\n onTextLayout={onTextLayout}\n />\n );\n});\n\nexport default React.memo(Typography);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["typographyColors"],"sources":["TypographyProps.ts"],"sourcesContent":["import React from 'react';\nimport type { AccessibilityProps, TextProps, TextStyle } from 'react-native';\nimport type { FontVariant, FontWeight } from '@fountain-ui/styles';\nimport type { ComponentProps } from '../types';\n\nexport type TypographyAlign = 'inherit' | TextStyle['textAlign'];\n\nexport const typographyColors = [\n 'inherit',\n 'accent',\n 'accentAlt',\n 'strong',\n 'strongInverse',\n 'base',\n 'baseInverse',\n 'baseOpacity',\n 'baseOpacityInverse',\n 'weak',\n 'weakOpacity',\n 'weakInverse',\n 'weakOpacityInverse',\n] as const;\n\nexport type TypographyColor = typeof typographyColors[number];\n\nexport interface Accessibility {\n accessibilityRole: AccessibilityProps['accessibilityRole'];\n 'area-level'?: number;\n}\n\nexport type AccessibilityMap = Partial<Record<FontVariant, Accessibility>>;\n\nexport default interface TypographyProps extends ComponentProps<{\n /**\n * Applies HTML tag at web and communicates purpose of component at app\n */\n accessibilityRole?: AccessibilityProps['accessibilityRole'];\n\n /**\n * Set the text-align on the component.\n * The value 'justify' is not supported on Android and fallbacks to left.\n * @default 'inherit'\n */\n align?: TypographyAlign;\n\n /**\n * Applies HTML heading level\n */\n ariaLevel?: number;\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings.\n * @default false\n */\n disableFontScaling?: boolean;\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode;\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'inherit'\n */\n color?: TypographyColor;\n\n /**\n * The text ellipsis mode.\n * @default 'tail'\n */\n ellipsizeMode?: TextProps['ellipsizeMode'];\n\n /**\n * Internal use only. The hyperlink of the text.\n */\n href?: string;\n\n /**\n * Used to truncate the text with an ellipsis after computing the text\n * layout, including line wrapping, such that the total number of lines\n * does not exceed this number.\n */\n numberOfLines?: TextProps['numberOfLines'];\n\n /**\n * Lets the user select text, to use the native copy and paste functionality.\n */\n onPress?: TextProps['onPress'];\n\n /**\n * Lets the user select text, to use the native copy and paste functionality.\n */\n selectable?: boolean;\n\n /**\n * Applies the theme typography styles.\n * @default 'body1'\n */\n variant?: FontVariant;\n\n /**\n * Determines the font weight.\n * @default 'medium'\n */\n weight?: FontWeight;\n\n /**\n * Callback that is called when the text layout has been calculated.\n */\n onTextLayout?: TextProps['onTextLayout'];\n\n /**\n * Callback that is called when the layout of the Text component changes.\n */\n onLayout?: TextProps['onLayout'];\n}> {}\n"],"mappings":";;;;;;AAOO,MAAMA,gBAAgB,GAAG,CAC5B,SAD4B,EAE5B,QAF4B,EAG5B,WAH4B,EAI5B,QAJ4B,EAK5B,eAL4B,EAM5B,MAN4B,EAO5B,aAP4B,EAQ5B,aAR4B,EAS5B,oBAT4B,EAU5B,MAV4B,EAW5B,aAX4B,EAY5B,aAZ4B,EAa5B,oBAb4B,CAAzB"}
1
+ {"version":3,"names":["typographyColors"],"sources":["TypographyProps.ts"],"sourcesContent":["import React from 'react';\nimport type { AccessibilityProps, TextProps, TextStyle } from 'react-native';\nimport type { FontVariant, FontWeight } from '@fountain-ui/styles';\nimport type { ComponentProps } from '../types';\n\nexport type TypographyAlign = 'inherit' | TextStyle['textAlign'];\n\nexport const typographyColors = [\n 'inherit',\n 'accent',\n 'accentAlt',\n 'strong',\n 'strongInverse',\n 'base',\n 'baseInverse',\n 'baseOpacity',\n 'baseOpacityInverse',\n 'weak',\n 'weakOpacity',\n 'weakInverse',\n 'weakOpacityInverse',\n] as const;\n\nexport type TypographyColor = typeof typographyColors[number];\n\nexport interface Accessibility {\n accessibilityRole: AccessibilityProps['accessibilityRole'];\n 'area-level'?: number;\n}\n\nexport type AccessibilityMap = Partial<Record<FontVariant, Accessibility>>;\n\nexport default interface TypographyProps extends ComponentProps<{\n /**\n * Applies HTML tag at web and communicates purpose of component at app\n */\n accessibilityRole?: AccessibilityProps['accessibilityRole'];\n\n /**\n * Set the text-align on the component.\n * The value 'justify' is not supported on Android and fallbacks to left.\n * @default 'inherit'\n */\n align?: TypographyAlign;\n\n /**\n * Applies HTML heading level\n */\n ariaLevel?: number;\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings.\n * @default false\n */\n disableFontScaling?: boolean;\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode;\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'inherit'\n */\n color?: TypographyColor;\n\n /**\n * The text ellipsis mode.\n * @default 'tail'\n */\n ellipsizeMode?: TextProps['ellipsizeMode'];\n\n /**\n * Internal use only. The hyperlink of the text.\n */\n href?: string;\n\n /**\n * Defines the vertical spacing between lines of text.\n */\n lineHeight?: TextStyle['lineHeight'];\n\n /**\n * Used to truncate the text with an ellipsis after computing the text\n * layout, including line wrapping, such that the total number of lines\n * does not exceed this number.\n */\n numberOfLines?: TextProps['numberOfLines'];\n\n /**\n * Lets the user select text, to use the native copy and paste functionality.\n */\n onPress?: TextProps['onPress'];\n\n /**\n * Lets the user select text, to use the native copy and paste functionality.\n */\n selectable?: boolean;\n\n /**\n * Applies the theme typography styles.\n * @default 'body1'\n */\n variant?: FontVariant;\n\n /**\n * Determines the font weight.\n * @default 'medium'\n */\n weight?: FontWeight;\n\n /**\n * Callback that is called when the text layout has been calculated.\n */\n onTextLayout?: TextProps['onTextLayout'];\n\n /**\n * Callback that is called when the layout of the Text component changes.\n */\n onLayout?: TextProps['onLayout'];\n}> {}\n"],"mappings":";;;;;;AAOO,MAAMA,gBAAgB,GAAG,CAC5B,SAD4B,EAE5B,QAF4B,EAG5B,WAH4B,EAI5B,QAJ4B,EAK5B,eAL4B,EAM5B,MAN4B,EAO5B,aAP4B,EAQ5B,aAR4B,EAS5B,oBAT4B,EAU5B,MAV4B,EAW5B,aAX4B,EAY5B,aAZ4B,EAa5B,oBAb4B,CAAzB"}
@@ -13,8 +13,6 @@ var _reactNativeReanimated = require("react-native-reanimated");
13
13
 
14
14
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
15
15
 
16
- var _styles = require("@fountain-ui/styles");
17
-
18
16
  var _hooks = require("../internal/hooks");
19
17
 
20
18
  var _useAppbarStyles = _interopRequireDefault(require("./useAppbarStyles"));
@@ -23,8 +21,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
21
 
24
22
  const defaultOptions = {
25
23
  keyboardDismissMode: 'none',
26
- dividerExposureMode: 'overlapped',
27
- supportsReverseScroll: true
24
+ supportsReverseScroll: true,
25
+ minVisibleHeight: 0
28
26
  };
29
27
  const ANIMATION_CONFIG = {
30
28
  duration: 100
@@ -38,8 +36,8 @@ function useCollapsibleAppBar() {
38
36
  let userOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultOptions;
39
37
  const {
40
38
  keyboardDismissMode,
41
- dividerExposureMode,
42
- supportsReverseScroll
39
+ supportsReverseScroll,
40
+ minVisibleHeight
43
41
  } = { ...defaultOptions,
44
42
  ...userOptions
45
43
  };
@@ -47,23 +45,23 @@ function useCollapsibleAppBar() {
47
45
  const safeAreaInsets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
48
46
  const [appBarHeight, onAppBarLayout] = (0, _hooks.useHeight)();
49
47
  const [collapsibleToolbarHeight, onCollapsibleToolbarLayout] = (0, _hooks.useHeight)();
50
- const maxTranslateY = (0, _reactNativeReanimated.useDerivedValue)(() => -collapsibleToolbarHeight, [collapsibleToolbarHeight]);
48
+ const maxTranslateY = (0, _reactNativeReanimated.useDerivedValue)(() => {
49
+ const safeMinVisibleHeight = Math.min(minVisibleHeight, collapsibleToolbarHeight);
50
+ return -(collapsibleToolbarHeight - safeMinVisibleHeight);
51
+ }, [collapsibleToolbarHeight, minVisibleHeight]);
51
52
  const translateY = (0, _reactNativeReanimated.useSharedValue)(0);
52
53
  const lastTranslateY = (0, _reactNativeReanimated.useSharedValue)(0);
53
54
  const lastOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
54
55
  const overlapped = (0, _reactNativeReanimated.useSharedValue)(false);
55
56
  const [isScrolled, setIsScrolled] = (0, _react.useState)(false);
56
- const theme = (0, _styles.useTheme)();
57
57
  const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
58
58
  const transform = [{
59
59
  translateY: translateY.value
60
60
  }];
61
61
  return {
62
- transform,
63
- borderColor: dividerExposureMode === 'always' || overlapped.value ? theme.palette.divider : TRANSPARENT,
64
- borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
62
+ transform
65
63
  };
66
- }, [theme, dividerExposureMode]);
64
+ }, [translateY]);
67
65
  const indexRef = (0, _react.useRef)(0);
68
66
  const offsetsRef = (0, _react.useRef)([]);
69
67
  const onScrollViewChanged = (0, _react.useCallback)(nextIndex => {
@@ -84,6 +82,15 @@ function useCollapsibleAppBar() {
84
82
  translateY.value = (0, _reactNativeReanimated.withTiming)(0, ANIMATION_CONFIG);
85
83
  }
86
84
  }, [appBarHeight]);
85
+ const recoverAppBar = (0, _react.useCallback)(() => {
86
+ const currentIndex = indexRef.current;
87
+ offsetsRef.current[currentIndex] = 0;
88
+ lastOffsetY.value = 0;
89
+ translateY.value = (0, _reactNativeReanimated.withTiming)(0, ANIMATION_CONFIG);
90
+ lastTranslateY.value = 0;
91
+ overlapped.value = false;
92
+ setIsScrolled(false);
93
+ }, []);
87
94
  const scrollHandler = (0, _reactNativeReanimated.useAnimatedScrollHandler)({
88
95
  onBeginDrag: () => {
89
96
  if (keyboardDismissMode === 'on-drag') {
@@ -141,7 +148,7 @@ function useCollapsibleAppBar() {
141
148
  overlapped.value = offsetY + nextTranslateY > 0;
142
149
  translateY.value = (0, _reactNativeReanimated.withTiming)(nextTranslateY, ANIMATION_CONFIG);
143
150
  }
144
- }, [keyboardDismissMode, appBarHeight, isScrolled]);
151
+ });
145
152
  const hasCollapsible = collapsibleToolbarHeight > 0;
146
153
  const appBarStyle = [animatedStyle, {
147
154
  paddingTop: safeAreaInsets.top
@@ -152,6 +159,7 @@ function useCollapsibleAppBar() {
152
159
  onCollapsibleToolbarLayout,
153
160
  onScroll: scrollHandler,
154
161
  onScrollViewChanged,
162
+ recoverAppBar,
155
163
  scrollContentInsets: {
156
164
  top: hasCollapsible ? appBarHeight : 0
157
165
  },
@@ -1 +1 @@
1
- {"version":3,"names":["defaultOptions","keyboardDismissMode","dividerExposureMode","supportsReverseScroll","ANIMATION_CONFIG","duration","TRANSPARENT","SUPPORTS_DRAG_DETECTION","Platform","OS","dismissKeyboard","Keyboard","dismiss","useCollapsibleAppBar","userOptions","styles","useAppbarStyles","safeAreaInsets","useSafeAreaInsets","appBarHeight","onAppBarLayout","useHeight","collapsibleToolbarHeight","onCollapsibleToolbarLayout","maxTranslateY","useDerivedValue","translateY","useSharedValue","lastTranslateY","lastOffsetY","overlapped","isScrolled","setIsScrolled","useState","theme","useTheme","animatedStyle","useAnimatedStyle","transform","value","borderColor","palette","divider","borderBottomWidth","StyleSheet","hairlineWidth","indexRef","useRef","offsetsRef","onScrollViewChanged","useCallback","nextIndex","prevIndex","current","savedOffsetY","withTiming","scrollHandler","useAnimatedScrollHandler","onBeginDrag","runOnJS","onMomentumBegin","onScroll","event","offsetY","contentOffset","y","maxTy","dy","Math","min","max","minOffsetY","maxOffsetY","contentSize","height","layoutMeasurement","safeOffsetY","safeLastOffsetY","newTranslateY","onEndDrag","onMomentumEnd","ty","threshold","nextTranslateY","hasCollapsible","appBarStyle","paddingTop","top","floating","undefined","scrollContentInsets"],"sources":["useCollapsibleAppBar.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport {\n Falsy,\n Keyboard,\n Platform,\n RegisteredStyle,\n ScrollViewProps,\n StyleSheet,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport type { WithTimingConfig } from 'react-native-reanimated';\nimport {\n runOnJS,\n useAnimatedScrollHandler,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useTheme } from '@fountain-ui/styles';\nimport { useHeight } from '../internal/hooks';\nimport useAppbarStyles from './useAppbarStyles';\n\ntype WebOnlyStyle = { boxShadow: any };\n\ntype ViewStyleProp = Array<ViewStyle | RegisteredStyle<ViewStyle> | WebOnlyStyle | Falsy>;\n\ntype OnScroll = ScrollViewProps['onScroll'];\n\ntype OnLayoutCallback = ViewProps['onLayout'];\n\nexport interface ContentInsets {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport interface Options {\n keyboardDismissMode?: 'none' | 'on-drag';\n dividerExposureMode?: 'always' | 'overlapped';\n supportsReverseScroll?: boolean;\n}\n\nexport interface CollapsibleAppBar {\n appBarStyle: ViewStyleProp;\n onAppBarLayout: OnLayoutCallback;\n onCollapsibleToolbarLayout: OnLayoutCallback;\n onScroll: OnScroll;\n onScrollViewChanged: (index: number) => void;\n scrollContentInsets: ContentInsets;\n isScrolled: boolean;\n}\n\nconst defaultOptions: Required<Options> = {\n keyboardDismissMode: 'none',\n dividerExposureMode: 'overlapped',\n supportsReverseScroll: true,\n};\n\nconst ANIMATION_CONFIG: Readonly<WithTimingConfig> = { duration: 100 };\nconst TRANSPARENT = '#FFFFFF00';\n\nconst SUPPORTS_DRAG_DETECTION = Platform.OS !== 'web';\nconst dismissKeyboard = () => Keyboard.dismiss();\n\nexport default function useCollapsibleAppBar(userOptions: Options = defaultOptions): CollapsibleAppBar {\n const { keyboardDismissMode, dividerExposureMode, supportsReverseScroll }: Required<Options> = {\n ...defaultOptions,\n ...userOptions,\n };\n\n const styles = useAppbarStyles();\n\n const safeAreaInsets = useSafeAreaInsets();\n\n const [appBarHeight, onAppBarLayout] = useHeight();\n const [collapsibleToolbarHeight, onCollapsibleToolbarLayout] = useHeight();\n\n const maxTranslateY = useDerivedValue(() => -collapsibleToolbarHeight, [collapsibleToolbarHeight]);\n\n const translateY = useSharedValue<number>(0);\n const lastTranslateY = useSharedValue<number>(0);\n const lastOffsetY = useSharedValue<number>(0);\n const overlapped = useSharedValue<boolean>(false);\n\n const [isScrolled, setIsScrolled] = useState<boolean>(false);\n\n const theme = useTheme();\n\n const animatedStyle = useAnimatedStyle(() => {\n const transform = [{ translateY: translateY.value }];\n\n return {\n transform,\n borderColor: dividerExposureMode === 'always' || overlapped.value ? theme.palette.divider : TRANSPARENT,\n borderBottomWidth: StyleSheet.hairlineWidth,\n };\n }, [\n theme,\n dividerExposureMode,\n ]);\n\n const indexRef = useRef<number>(0);\n const offsetsRef = useRef<Array<number>>([]);\n\n const onScrollViewChanged = useCallback((nextIndex: number) => {\n const prevIndex = indexRef.current;\n if (prevIndex === nextIndex) {\n return;\n }\n\n offsetsRef.current[prevIndex] = lastOffsetY.value;\n\n const savedOffsetY = offsetsRef.current[nextIndex] ?? 0;\n lastOffsetY.value = savedOffsetY;\n\n indexRef.current = nextIndex;\n\n // Determine whether to overlap every time index is changed.\n overlapped.value = savedOffsetY > 0;\n\n // If next ScrollView's offset is too short, expand app bar.\n if (translateY.value < 0 && savedOffsetY < appBarHeight) {\n translateY.value = withTiming(0, ANIMATION_CONFIG);\n }\n }, [appBarHeight]);\n\n const scrollHandler = useAnimatedScrollHandler({\n onBeginDrag: () => {\n if (keyboardDismissMode === 'on-drag') {\n runOnJS(dismissKeyboard)();\n }\n lastTranslateY.value = translateY.value;\n },\n onMomentumBegin: () => {\n lastTranslateY.value = translateY.value;\n },\n onScroll: (event) => {\n const offsetY = event.contentOffset.y;\n\n if (!isScrolled && offsetY > 0) {\n runOnJS(setIsScrolled)(true);\n } else if (isScrolled && offsetY <= 0) {\n runOnJS(setIsScrolled)(false);\n }\n\n const maxTy = maxTranslateY.value;\n\n if (SUPPORTS_DRAG_DETECTION) {\n const dy = offsetY - lastOffsetY.value;\n\n translateY.value = offsetY <= 0 ? 0 : Math.min(Math.max(lastTranslateY.value - dy, maxTy), 0);\n\n overlapped.value = offsetY + translateY.value > 0;\n } else {\n const minOffsetY = -maxTy;\n const maxOffsetY = event.contentSize.height - event.layoutMeasurement.height;\n\n const safeOffsetY = Math.min(Math.max(offsetY, minOffsetY), maxOffsetY);\n const safeLastOffsetY = Math.min(Math.max(lastOffsetY.value, minOffsetY), maxOffsetY);\n const dy = safeOffsetY - safeLastOffsetY;\n\n const newTranslateY = safeOffsetY <= minOffsetY\n ? 0\n : supportsReverseScroll\n ? dy === 0\n ? lastTranslateY.value\n : dy > 0\n ? maxTy\n : 0\n : maxTy;\n\n translateY.value = withTiming(newTranslateY, ANIMATION_CONFIG);\n lastTranslateY.value = newTranslateY;\n\n overlapped.value = offsetY > 0;\n\n lastOffsetY.value = offsetY;\n }\n },\n onEndDrag: (event) => {\n lastOffsetY.value = event.contentOffset.y;\n },\n onMomentumEnd: (event) => {\n const offsetY = event.contentOffset.y;\n\n lastOffsetY.value = offsetY;\n\n const ty = translateY.value;\n const maxTy = maxTranslateY.value;\n\n // If toolbar is already positioned on edge, do nothing.\n if (ty <= maxTy || ty >= 0) {\n return;\n }\n\n const threshold = maxTy * 0.5;\n\n const nextTranslateY = (ty > threshold || offsetY < appBarHeight) ? 0 : maxTy;\n\n overlapped.value = offsetY + nextTranslateY > 0;\n\n translateY.value = withTiming(nextTranslateY, ANIMATION_CONFIG);\n },\n }, [keyboardDismissMode, appBarHeight, isScrolled]);\n\n const hasCollapsible = collapsibleToolbarHeight > 0;\n\n const appBarStyle = [\n animatedStyle,\n { paddingTop: safeAreaInsets.top },\n hasCollapsible ? styles.floating : undefined,\n ];\n\n return {\n appBarStyle,\n onAppBarLayout,\n onCollapsibleToolbarLayout,\n onScroll: scrollHandler,\n onScrollViewChanged,\n scrollContentInsets: { top: hasCollapsible ? appBarHeight : 0 },\n isScrolled,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["defaultOptions","keyboardDismissMode","supportsReverseScroll","minVisibleHeight","ANIMATION_CONFIG","duration","TRANSPARENT","SUPPORTS_DRAG_DETECTION","Platform","OS","dismissKeyboard","Keyboard","dismiss","useCollapsibleAppBar","userOptions","styles","useAppbarStyles","safeAreaInsets","useSafeAreaInsets","appBarHeight","onAppBarLayout","useHeight","collapsibleToolbarHeight","onCollapsibleToolbarLayout","maxTranslateY","useDerivedValue","safeMinVisibleHeight","Math","min","translateY","useSharedValue","lastTranslateY","lastOffsetY","overlapped","isScrolled","setIsScrolled","useState","animatedStyle","useAnimatedStyle","transform","value","indexRef","useRef","offsetsRef","onScrollViewChanged","useCallback","nextIndex","prevIndex","current","savedOffsetY","withTiming","recoverAppBar","currentIndex","scrollHandler","useAnimatedScrollHandler","onBeginDrag","runOnJS","onMomentumBegin","onScroll","event","offsetY","contentOffset","y","maxTy","dy","max","minOffsetY","maxOffsetY","contentSize","height","layoutMeasurement","safeOffsetY","safeLastOffsetY","newTranslateY","onEndDrag","onMomentumEnd","ty","threshold","nextTranslateY","hasCollapsible","appBarStyle","paddingTop","top","floating","undefined","scrollContentInsets"],"sources":["useCollapsibleAppBar.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { Falsy, Keyboard, Platform, RegisteredStyle, ScrollViewProps, ViewProps, ViewStyle } from 'react-native';\nimport type { WithTimingConfig } from 'react-native-reanimated';\nimport {\n runOnJS,\n useAnimatedScrollHandler,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useHeight } from '../internal/hooks';\nimport useAppbarStyles from './useAppbarStyles';\n\ntype WebOnlyStyle = { boxShadow: any };\n\ntype ViewStyleProp = Array<ViewStyle | RegisteredStyle<ViewStyle> | WebOnlyStyle | Falsy>;\n\ntype OnScroll = ScrollViewProps['onScroll'];\n\ntype OnLayoutCallback = ViewProps['onLayout'];\n\nexport interface ContentInsets {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport interface Options {\n keyboardDismissMode?: 'none' | 'on-drag';\n supportsReverseScroll?: boolean;\n minVisibleHeight?: number;\n}\n\nexport interface CollapsibleAppBar {\n appBarStyle: ViewStyleProp;\n onAppBarLayout: OnLayoutCallback;\n onCollapsibleToolbarLayout: OnLayoutCallback;\n onScroll: OnScroll;\n onScrollViewChanged: (index: number) => void;\n recoverAppBar: () => void;\n scrollContentInsets: ContentInsets;\n isScrolled: boolean;\n}\n\nconst defaultOptions: Required<Options> = {\n keyboardDismissMode: 'none',\n supportsReverseScroll: true,\n minVisibleHeight: 0,\n};\n\nconst ANIMATION_CONFIG: Readonly<WithTimingConfig> = { duration: 100 };\nconst TRANSPARENT = '#FFFFFF00';\n\nconst SUPPORTS_DRAG_DETECTION = Platform.OS !== 'web';\nconst dismissKeyboard = () => Keyboard.dismiss();\n\nexport default function useCollapsibleAppBar(userOptions: Options = defaultOptions): CollapsibleAppBar {\n const { keyboardDismissMode, supportsReverseScroll, minVisibleHeight }: Required<Options> = {\n ...defaultOptions,\n ...userOptions,\n };\n\n const styles = useAppbarStyles();\n\n const safeAreaInsets = useSafeAreaInsets();\n\n const [appBarHeight, onAppBarLayout] = useHeight();\n const [collapsibleToolbarHeight, onCollapsibleToolbarLayout] = useHeight();\n\n const maxTranslateY = useDerivedValue(() => {\n const safeMinVisibleHeight = Math.min(minVisibleHeight, collapsibleToolbarHeight);\n return -(collapsibleToolbarHeight - safeMinVisibleHeight);\n }, [collapsibleToolbarHeight, minVisibleHeight]);\n\n const translateY = useSharedValue<number>(0);\n const lastTranslateY = useSharedValue<number>(0);\n const lastOffsetY = useSharedValue<number>(0);\n const overlapped = useSharedValue<boolean>(false);\n\n const [isScrolled, setIsScrolled] = useState<boolean>(false);\n\n const animatedStyle = useAnimatedStyle(() => {\n const transform = [{ translateY: translateY.value }];\n\n return {\n transform,\n };\n }, [translateY]);\n\n const indexRef = useRef<number>(0);\n const offsetsRef = useRef<Array<number>>([]);\n\n const onScrollViewChanged = useCallback((nextIndex: number) => {\n const prevIndex = indexRef.current;\n if (prevIndex === nextIndex) {\n return;\n }\n\n offsetsRef.current[prevIndex] = lastOffsetY.value;\n\n const savedOffsetY = offsetsRef.current[nextIndex] ?? 0;\n lastOffsetY.value = savedOffsetY;\n\n indexRef.current = nextIndex;\n\n // Determine whether to overlap every time index is changed.\n overlapped.value = savedOffsetY > 0;\n\n // If next ScrollView's offset is too short, expand app bar.\n if (translateY.value < 0 && savedOffsetY < appBarHeight) {\n translateY.value = withTiming(0, ANIMATION_CONFIG);\n }\n }, [appBarHeight]);\n\n const recoverAppBar = useCallback(() => {\n const currentIndex = indexRef.current;\n\n offsetsRef.current[currentIndex] = 0;\n\n lastOffsetY.value = 0;\n\n translateY.value = withTiming(0, ANIMATION_CONFIG);\n lastTranslateY.value = 0;\n\n overlapped.value = false;\n\n setIsScrolled(false);\n }, []);\n\n const scrollHandler = useAnimatedScrollHandler({\n onBeginDrag: () => {\n if (keyboardDismissMode === 'on-drag') {\n runOnJS(dismissKeyboard)();\n }\n lastTranslateY.value = translateY.value;\n },\n onMomentumBegin: () => {\n lastTranslateY.value = translateY.value;\n },\n onScroll: (event) => {\n const offsetY = event.contentOffset.y;\n\n if (!isScrolled && offsetY > 0) {\n runOnJS(setIsScrolled)(true);\n } else if (isScrolled && offsetY <= 0) {\n runOnJS(setIsScrolled)(false);\n }\n\n const maxTy = maxTranslateY.value;\n\n if (SUPPORTS_DRAG_DETECTION) {\n const dy = offsetY - lastOffsetY.value;\n\n translateY.value = offsetY <= 0 ? 0 : Math.min(Math.max(lastTranslateY.value - dy, maxTy), 0);\n\n overlapped.value = offsetY + translateY.value > 0;\n } else {\n const minOffsetY = -maxTy;\n const maxOffsetY = event.contentSize.height - event.layoutMeasurement.height;\n\n const safeOffsetY = Math.min(Math.max(offsetY, minOffsetY), maxOffsetY);\n const safeLastOffsetY = Math.min(Math.max(lastOffsetY.value, minOffsetY), maxOffsetY);\n const dy = safeOffsetY - safeLastOffsetY;\n\n const newTranslateY = safeOffsetY <= minOffsetY\n ? 0\n : supportsReverseScroll\n ? dy === 0\n ? lastTranslateY.value\n : dy > 0\n ? maxTy\n : 0\n : maxTy;\n\n translateY.value = withTiming(newTranslateY, ANIMATION_CONFIG);\n lastTranslateY.value = newTranslateY;\n\n overlapped.value = offsetY > 0;\n\n lastOffsetY.value = offsetY;\n }\n },\n onEndDrag: (event) => {\n lastOffsetY.value = event.contentOffset.y;\n },\n onMomentumEnd: (event) => {\n const offsetY = event.contentOffset.y;\n\n lastOffsetY.value = offsetY;\n\n const ty = translateY.value;\n const maxTy = maxTranslateY.value;\n\n // If toolbar is already positioned on edge, do nothing.\n if (ty <= maxTy || ty >= 0) {\n return;\n }\n\n const threshold = maxTy * 0.5;\n\n const nextTranslateY = (ty > threshold || offsetY < appBarHeight) ? 0 : maxTy;\n\n overlapped.value = offsetY + nextTranslateY > 0;\n\n translateY.value = withTiming(nextTranslateY, ANIMATION_CONFIG);\n },\n });\n\n const hasCollapsible = collapsibleToolbarHeight > 0;\n\n const appBarStyle = [\n animatedStyle,\n { paddingTop: safeAreaInsets.top },\n hasCollapsible ? styles.floating : undefined,\n ];\n\n return {\n appBarStyle,\n onAppBarLayout,\n onCollapsibleToolbarLayout,\n onScroll: scrollHandler,\n onScrollViewChanged,\n recoverAppBar,\n scrollContentInsets: { top: hasCollapsible ? appBarHeight : 0 },\n isScrolled,\n };\n};\n"],"mappings":"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"}
@@ -5,24 +5,40 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = useContentContainerStyle;
7
7
 
8
- var _styles = require("@fountain-ui/styles");
8
+ var _styles = require("../styles");
9
9
 
10
- var _styles2 = require("../styles");
11
-
12
- function getMaxWidth(theme, breakpoint) {
10
+ function getMaxWidth(theme, breakpoint, customMaxWidth) {
13
11
  switch (breakpoint) {
14
12
  case 'lg':
15
- return theme.breakpoints.values['lg'];
16
-
17
13
  case 'md':
18
- return theme.breakpoints.values['md'];
14
+ return customMaxWidth ?? theme.breakpoints.values[breakpoint];
15
+
16
+ default:
17
+ return undefined;
18
+ }
19
+ }
20
+
21
+ function getHomeScreenPaddingHorizontal(theme, breakpoint) {
22
+ switch (breakpoint) {
23
+ case 'xxs':
24
+ case 'xs':
25
+ return theme.spacing(3);
19
26
 
27
+ case 'sm':
28
+ return theme.spacing(6);
29
+
30
+ case 'md':
31
+ case 'lg':
20
32
  default:
21
- return 'none';
33
+ return theme.spacing(4);
22
34
  }
23
35
  }
24
36
 
25
- function getPaddingHorizontal(theme, breakpoint) {
37
+ function getPaddingHorizontal(theme, breakpoint, isHomeScreen) {
38
+ if (isHomeScreen) {
39
+ return getHomeScreenPaddingHorizontal(theme, breakpoint);
40
+ }
41
+
26
42
  switch (breakpoint) {
27
43
  case 'sm':
28
44
  return theme.spacing(6);
@@ -32,18 +48,20 @@ function getPaddingHorizontal(theme, breakpoint) {
32
48
  }
33
49
  }
34
50
 
35
- function useContentContainerStyle(config) {
51
+ function useContentContainerStyle() {
52
+ let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
53
  const {
37
- maxWidth,
38
- styleProvider
54
+ maxWidth: customMaxWidth,
55
+ styleProvider,
56
+ isHomeScreen = false
39
57
  } = config;
40
- const theme = (0, _styles2.useTheme)();
41
- const currentBreakpoint = (0, _styles.useBreakpointByWidth)();
58
+ const theme = (0, _styles.useTheme)();
59
+ const currentBreakpoint = theme.breakpoints.current;
42
60
  const additionalStyle = styleProvider === null || styleProvider === void 0 ? void 0 : styleProvider(theme);
43
- return (0, _styles2.css)([{
61
+ return (0, _styles.css)([{
44
62
  alignSelf: 'center',
45
- maxWidth: maxWidth ?? getMaxWidth(theme, currentBreakpoint),
46
- paddingHorizontal: getPaddingHorizontal(theme, currentBreakpoint),
63
+ maxWidth: getMaxWidth(theme, currentBreakpoint, customMaxWidth),
64
+ paddingHorizontal: getPaddingHorizontal(theme, currentBreakpoint, isHomeScreen),
47
65
  width: '100%'
48
66
  }, additionalStyle]);
49
67
  }