@hero-design/rn 7.3.2 → 7.6.0

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 (345) hide show
  1. package/.expo/README.md +15 -0
  2. package/.expo/packager-info.json +10 -0
  3. package/.expo/prebuild/cached-packages.json +4 -0
  4. package/.expo/settings.json +10 -0
  5. package/.expo/xcodebuild-error.log +2 -0
  6. package/.expo/xcodebuild.log +11199 -0
  7. package/.turbo/turbo-build.log +2 -2
  8. package/assets/fonts/hero-icons.ttf +0 -0
  9. package/es/index.js +7093 -5663
  10. package/lib/assets/fonts/hero-icons.ttf +0 -0
  11. package/lib/index.js +7101 -5662
  12. package/package.json +11 -9
  13. package/playground/.detoxrc.json +49 -0
  14. package/playground/.prettierrc.json +8 -0
  15. package/playground/.turbo/turbo-type-check.log +7 -0
  16. package/playground/app.json +9 -0
  17. package/playground/babel.config.js +63 -0
  18. package/playground/e2e/config.json +9 -0
  19. package/playground/e2e/environment.js +23 -0
  20. package/playground/e2e/firstTest.e2e.js +16 -0
  21. package/{expoEntry.js → playground/expoEntry.js} +1 -1
  22. package/playground/fonts/be-vietnam-pro-light.ttf +0 -0
  23. package/playground/fonts/be-vietnam-pro-regular.ttf +0 -0
  24. package/playground/fonts/be-vietnam-pro-semibold.ttf +0 -0
  25. package/playground/fonts/hero-icons.ttf +0 -0
  26. package/playground/index.js +7 -0
  27. package/playground/ios/MobileHeroDesignPlayground/AppDelegate.h +9 -0
  28. package/playground/ios/MobileHeroDesignPlayground/AppDelegate.m +75 -0
  29. package/playground/ios/MobileHeroDesignPlayground/Images.xcassets/AppIcon.appiconset/Contents.json +38 -0
  30. package/playground/ios/MobileHeroDesignPlayground/Images.xcassets/Contents.json +6 -0
  31. package/playground/ios/MobileHeroDesignPlayground/Images.xcassets/SplashScreenBackground.imageset/Contents.json +21 -0
  32. package/playground/ios/MobileHeroDesignPlayground/Images.xcassets/SplashScreenBackground.imageset/image.png +0 -0
  33. package/playground/ios/MobileHeroDesignPlayground/Info.plist +85 -0
  34. package/playground/ios/MobileHeroDesignPlayground/MobileHeroDesignPlayground-Bridging-Header.h +3 -0
  35. package/playground/ios/MobileHeroDesignPlayground/MobileHeroDesignPlayground.entitlements +8 -0
  36. package/playground/ios/MobileHeroDesignPlayground/SplashScreen.storyboard +40 -0
  37. package/playground/ios/MobileHeroDesignPlayground/Supporting/Expo.plist +16 -0
  38. package/playground/ios/MobileHeroDesignPlayground/main.m +10 -0
  39. package/playground/ios/MobileHeroDesignPlayground/noop-file.swift +4 -0
  40. package/playground/ios/MobileHeroDesignPlayground.xcodeproj/project.pbxproj +515 -0
  41. package/playground/ios/MobileHeroDesignPlayground.xcodeproj/xcshareddata/xcschemes/MobileHeroDesignPlayground.xcscheme +88 -0
  42. package/playground/ios/MobileHeroDesignPlayground.xcworkspace/contents.xcworkspacedata +10 -0
  43. package/playground/ios/MobileHeroDesignPlayground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  44. package/playground/ios/Podfile +49 -0
  45. package/playground/ios/Podfile.lock +478 -0
  46. package/playground/ios/Podfile.properties.json +3 -0
  47. package/{metro.config.js → playground/metro.config.js} +10 -2
  48. package/playground/package.json +63 -0
  49. package/playground/src/Alert.tsx +80 -0
  50. package/playground/{index.tsx → src/App.tsx} +69 -29
  51. package/playground/{components → src}/Avatar.tsx +1 -1
  52. package/playground/{components → src}/Badge.tsx +1 -1
  53. package/playground/{components → src}/BottomNavigation.tsx +1 -1
  54. package/playground/src/BottomSheet.tsx +43 -0
  55. package/playground/{components → src}/Button.tsx +1 -1
  56. package/playground/{components → src}/Card.tsx +1 -1
  57. package/playground/{components → src}/Collapse.tsx +1 -1
  58. package/playground/src/ContentNavigator.tsx +58 -0
  59. package/playground/{components → src}/Divider.tsx +1 -1
  60. package/playground/{components → src}/Drawer.tsx +1 -1
  61. package/playground/{components → src}/FAB.tsx +1 -1
  62. package/playground/{components → src}/Icon.tsx +7 -3
  63. package/playground/{components → src}/IconButton.tsx +12 -1
  64. package/playground/src/MultipleThemes.tsx +34 -0
  65. package/playground/{components → src}/Progress.tsx +1 -1
  66. package/playground/src/Radio.tsx +25 -0
  67. package/playground/src/SectionHeading.tsx +68 -0
  68. package/playground/src/Select.tsx +32 -0
  69. package/playground/src/Spinner.tsx +19 -0
  70. package/playground/src/Switch.tsx +80 -0
  71. package/playground/{components → src}/Tabs.tsx +1 -1
  72. package/playground/{components → src}/Tag.tsx +1 -1
  73. package/playground/src/TextInput.tsx +14 -0
  74. package/playground/{components → src}/Typography.tsx +1 -1
  75. package/playground/src/emotion.d.ts +7 -0
  76. package/playground/tsconfig.json +21 -0
  77. package/src/components/Alert/StyledAlert.tsx +48 -0
  78. package/src/components/Alert/__tests__/__snapshots__/index.spec.tsx.snap +686 -0
  79. package/src/components/Alert/__tests__/index.spec.tsx +83 -0
  80. package/src/components/Alert/index.tsx +109 -0
  81. package/src/components/BottomSheet/Footer.tsx +19 -0
  82. package/src/components/BottomSheet/Header.tsx +49 -0
  83. package/src/components/BottomSheet/StyledBottomSheet.tsx +75 -0
  84. package/src/components/BottomSheet/__tests__/__snapshots__/index.spec.tsx.snap +531 -0
  85. package/src/components/BottomSheet/__tests__/index.spec.tsx +107 -0
  86. package/src/components/BottomSheet/index.tsx +177 -0
  87. package/src/components/Button/IconButton.tsx +11 -1
  88. package/src/components/Collapse/StyledCollapse.tsx +11 -2
  89. package/src/components/Collapse/__tests__/__snapshots__/index.spec.tsx.snap +36 -31
  90. package/src/components/Collapse/__tests__/index.spec.tsx +1 -13
  91. package/src/components/Collapse/index.tsx +20 -50
  92. package/src/components/ContentNavigator/StyledContentNavigator.tsx +15 -0
  93. package/src/components/ContentNavigator/__tests__/StyledContentNavigator.spec.tsx +19 -0
  94. package/src/components/ContentNavigator/__tests__/__snapshots__/StyledContentNavigator.spec.tsx.snap +43 -0
  95. package/src/components/ContentNavigator/__tests__/__snapshots__/index.spec.tsx.snap +217 -0
  96. package/src/components/ContentNavigator/__tests__/index.spec.tsx +74 -0
  97. package/src/components/ContentNavigator/index.tsx +65 -0
  98. package/src/components/Icon/HeroIcon/index.tsx +13 -2
  99. package/src/components/Icon/HeroIcon/selection.json +1 -1
  100. package/src/components/Icon/IconList.ts +8 -0
  101. package/src/components/Icon/index.tsx +8 -1
  102. package/src/components/Radio/Radio.tsx +51 -0
  103. package/src/components/Radio/RadioGroup.tsx +74 -0
  104. package/src/components/Radio/StyledRadio.tsx +42 -0
  105. package/src/components/Radio/__tests__/Radio.spec.tsx +38 -0
  106. package/src/components/Radio/__tests__/RadioGroup.spec.tsx +36 -0
  107. package/src/components/Radio/__tests__/StyledRadio.spec.tsx +43 -0
  108. package/src/components/Radio/__tests__/__snapshots__/Radio.spec.tsx.snap +160 -0
  109. package/src/components/Radio/__tests__/__snapshots__/RadioGroup.spec.tsx.snap +248 -0
  110. package/src/components/Radio/__tests__/__snapshots__/StyledRadio.spec.tsx.snap +124 -0
  111. package/src/components/Radio/index.tsx +5 -0
  112. package/src/components/Radio/types.ts +1 -0
  113. package/src/components/SectionHeading/StyledHeading.tsx +24 -0
  114. package/src/components/SectionHeading/__tests__/StyledHeading.spec.tsx +28 -0
  115. package/src/components/SectionHeading/__tests__/__snapshots__/StyledHeading.spec.tsx.snap +48 -0
  116. package/src/components/SectionHeading/__tests__/__snapshots__/index.spec.tsx.snap +208 -0
  117. package/src/components/SectionHeading/__tests__/index.spec.tsx +39 -0
  118. package/src/components/SectionHeading/index.tsx +93 -0
  119. package/src/components/Select/MultiSelect/Footer.tsx +15 -0
  120. package/src/components/Select/MultiSelect/OptionList.tsx +76 -0
  121. package/src/components/Select/MultiSelect/StyledMultiSelect.tsx +30 -0
  122. package/src/components/Select/MultiSelect/__tests__/StyledMultiSelect.spec.tsx +49 -0
  123. package/src/components/Select/MultiSelect/__tests__/__snapshots__/StyledMultiSelect.spec.tsx.snap +108 -0
  124. package/src/components/Select/MultiSelect/__tests__/__snapshots__/index.spec.tsx.snap +1630 -0
  125. package/src/components/Select/MultiSelect/__tests__/index.spec.tsx +94 -0
  126. package/src/components/Select/MultiSelect/index.tsx +103 -0
  127. package/src/components/Select/MultiSelect/types.ts +1 -0
  128. package/src/components/Select/index.tsx +5 -0
  129. package/src/components/Spinner/AnimatedSpinner.tsx +55 -0
  130. package/src/components/Spinner/StyledSpinner.tsx +59 -0
  131. package/src/components/Spinner/__tests__/AnimatedSpinner.spec.tsx +11 -0
  132. package/src/components/Spinner/__tests__/StyledSpinner.spec.tsx +56 -0
  133. package/src/components/Spinner/__tests__/__snapshots__/AnimatedSpinner.spec.tsx.snap +118 -0
  134. package/src/components/Spinner/__tests__/__snapshots__/StyledSpinner.spec.tsx.snap +235 -0
  135. package/src/components/Spinner/__tests__/__snapshots__/index.spec.tsx.snap +141 -0
  136. package/src/components/Spinner/__tests__/index.spec.tsx +12 -0
  137. package/src/components/Spinner/index.tsx +22 -0
  138. package/src/components/Switch/StyledSwitch.tsx +50 -0
  139. package/src/components/Switch/__tests__/StyledHeading.spec.tsx +42 -0
  140. package/src/components/Switch/__tests__/__snapshots__/StyledHeading.spec.tsx.snap +74 -0
  141. package/src/components/Switch/__tests__/__snapshots__/index.spec.tsx.snap +129 -0
  142. package/src/components/Switch/__tests__/index.spec.tsx +24 -0
  143. package/src/components/Switch/index.tsx +87 -0
  144. package/src/components/TextInput/StyledTextInput.tsx +30 -0
  145. package/src/components/TextInput/__tests__/StyledTextInput.spec.tsx +27 -0
  146. package/src/components/TextInput/__tests__/__snapshots__/StyledTextInput.spec.tsx.snap +67 -0
  147. package/src/components/TextInput/__tests__/index.spec.tsx +17 -0
  148. package/src/components/TextInput/index.tsx +74 -0
  149. package/src/index.ts +18 -0
  150. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +174 -0
  151. package/src/theme/components/alert.ts +32 -0
  152. package/src/theme/components/bottomSheet.ts +34 -0
  153. package/src/theme/components/contentNavigator.ts +11 -0
  154. package/src/theme/components/icon.ts +1 -0
  155. package/src/theme/components/radio.ts +34 -0
  156. package/src/theme/components/sectionHeading.ts +18 -0
  157. package/src/theme/components/select.ts +23 -0
  158. package/src/theme/components/spinner.ts +21 -0
  159. package/src/theme/components/switch.ts +50 -0
  160. package/src/theme/components/textInput.ts +32 -0
  161. package/src/theme/global/borders.ts +6 -0
  162. package/src/theme/global/colors.ts +3 -0
  163. package/src/theme/index.ts +34 -7
  164. package/tsconfig.json +11 -3
  165. package/types/components/Alert/StyledAlert.d.ts +37 -0
  166. package/types/{src/components/Avatar → components/Alert}/__tests__/index.spec.d.ts +0 -0
  167. package/types/components/Alert/index.d.ts +42 -0
  168. package/types/{src/components → components}/Avatar/StyledAvatar.d.ts +0 -1
  169. package/types/{src/components → components}/Avatar/__tests__/StyledAvatar.spec.d.ts +0 -0
  170. package/types/{src/components/BottomNavigation → components/Avatar}/__tests__/index.spec.d.ts +0 -0
  171. package/types/{src/components → components}/Avatar/index.d.ts +0 -0
  172. package/types/{src/components → components}/Badge/Status.d.ts +0 -0
  173. package/types/{src/components → components}/Badge/StyledBadge.d.ts +0 -1
  174. package/types/{src/components → components}/Badge/__tests__/Badge.spec.d.ts +0 -0
  175. package/types/{src/components → components}/Badge/__tests__/Status.spec.d.ts +0 -0
  176. package/types/{src/components → components}/Badge/index.d.ts +0 -0
  177. package/types/{src/components → components}/BottomNavigation/StyledBottomNavigation.d.ts +0 -1
  178. package/types/{src/components/Button/LoadingIndicator → components/BottomNavigation}/__tests__/index.spec.d.ts +0 -0
  179. package/types/{src/components → components}/BottomNavigation/index.d.ts +0 -0
  180. package/types/components/BottomSheet/Footer.d.ts +6 -0
  181. package/types/components/BottomSheet/Header.d.ts +8 -0
  182. package/types/components/BottomSheet/StyledBottomSheet.d.ts +46 -0
  183. package/types/{src/components/Button → components/BottomSheet}/__tests__/index.spec.d.ts +0 -0
  184. package/types/components/BottomSheet/index.d.ts +55 -0
  185. package/types/{src/components → components}/Button/Button.d.ts +0 -0
  186. package/types/{src/components → components}/Button/IconButton.d.ts +5 -1
  187. package/types/{src/components → components}/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +0 -1
  188. package/types/{src/components → components}/Button/LoadingIndicator/__tests__/StyledLoadingIndicator.spec.d.ts +0 -0
  189. package/types/{src/components/Card → components/Button/LoadingIndicator}/__tests__/index.spec.d.ts +0 -0
  190. package/types/{src/components → components}/Button/LoadingIndicator/index.d.ts +0 -0
  191. package/types/{src/components → components}/Button/StyledButton.d.ts +0 -1
  192. package/types/{src/components → components}/Button/__tests__/Button.spec.d.ts +0 -0
  193. package/types/{src/components → components}/Button/__tests__/IconButton.spec.d.ts +0 -0
  194. package/types/{src/components → components}/Button/__tests__/StyledButton.spec.d.ts +0 -0
  195. package/types/{src/components → components}/Button/index.d.ts +0 -0
  196. package/types/{src/components → components}/Card/StyledCard.d.ts +0 -1
  197. package/types/{src/components → components}/Card/__tests__/StyledCard.spec.d.ts +0 -0
  198. package/types/{src/components/Collapse → components/Card}/__tests__/index.spec.d.ts +0 -0
  199. package/types/{src/components → components}/Card/index.d.ts +0 -0
  200. package/types/{src/components → components}/Collapse/StyledCollapse.d.ts +12 -2
  201. package/types/{src/components → components}/Collapse/__tests__/StyledCollapse.spec.d.ts +0 -0
  202. package/types/{src/components/Drawer → components/Collapse}/__tests__/index.spec.d.ts +0 -0
  203. package/types/{src/components → components}/Collapse/index.d.ts +1 -5
  204. package/types/components/ContentNavigator/StyledContentNavigator.d.ts +12 -0
  205. package/types/{src/components/Divider/__tests__/StyledDivider.spec.d.ts → components/ContentNavigator/__tests__/StyledContentNavigator.spec.d.ts} +0 -0
  206. package/types/{src/components/FAB → components/ContentNavigator}/__tests__/index.spec.d.ts +0 -0
  207. package/types/components/ContentNavigator/index.d.ts +33 -0
  208. package/types/{src/components → components}/Divider/StyledDivider.d.ts +0 -1
  209. package/types/{src/components/FAB/__tests__/AnimatedFABIcon.spec.d.ts → components/Divider/__tests__/StyledDivider.spec.d.ts} +0 -0
  210. package/types/{src/components → components}/Divider/index.d.ts +0 -0
  211. package/types/{src/components → components}/Drawer/StyledDrawer.d.ts +0 -1
  212. package/types/{src/components/Icon → components/Drawer}/__tests__/index.spec.d.ts +0 -0
  213. package/types/{src/components → components}/Drawer/index.d.ts +0 -0
  214. package/types/{src/components → components}/FAB/ActionGroup/ActionItem.d.ts +0 -0
  215. package/types/{src/components → components}/FAB/ActionGroup/StyledActionGroup.d.ts +0 -1
  216. package/types/{src/components → components}/FAB/ActionGroup/StyledActionItem.d.ts +0 -1
  217. package/types/{src/components → components}/FAB/ActionGroup/__tests__/index.spec.d.ts +0 -0
  218. package/types/{src/components → components}/FAB/ActionGroup/index.d.ts +0 -0
  219. package/types/{src/components → components}/FAB/AnimatedFABIcon.d.ts +0 -0
  220. package/types/{src/components → components}/FAB/FAB.d.ts +0 -0
  221. package/types/{src/components → components}/FAB/StyledFAB.d.ts +0 -1
  222. package/types/{src/components/FAB/__tests__/StyledFAB.spec.d.ts → components/FAB/__tests__/AnimatedFABIcon.spec.d.ts} +0 -0
  223. package/types/{src/components/Progress/__tests__/index.spec.d.ts → components/FAB/__tests__/StyledFAB.spec.d.ts} +0 -0
  224. package/types/{src/components/Tabs → components/FAB}/__tests__/index.spec.d.ts +0 -0
  225. package/types/{src/components → components}/FAB/index.d.ts +0 -0
  226. package/types/{src/components → components}/Icon/HeroIcon/index.d.ts +1 -2
  227. package/types/components/Icon/IconList.d.ts +2 -0
  228. package/types/{src/components/Typography/Text → components/Icon}/__tests__/index.spec.d.ts +0 -0
  229. package/types/{src/components → components}/Icon/index.d.ts +1 -1
  230. package/types/components/Icon/utils.d.ts +2 -0
  231. package/types/{src/components → components}/Progress/ProgressBar.d.ts +0 -0
  232. package/types/{src/components → components}/Progress/ProgressCircle.d.ts +0 -0
  233. package/types/{src/components → components}/Progress/StyledProgressBar.d.ts +0 -1
  234. package/types/{src/components → components}/Progress/StyledProgressCircle.d.ts +0 -1
  235. package/types/{src/theme → components/Progress}/__tests__/index.spec.d.ts +0 -0
  236. package/types/{src/components → components}/Progress/index.d.ts +0 -0
  237. package/types/{src/components → components}/Progress/types.d.ts +0 -0
  238. package/types/components/Radio/Radio.d.ts +26 -0
  239. package/types/components/Radio/RadioGroup.d.ts +32 -0
  240. package/types/components/Radio/StyledRadio.d.ts +30 -0
  241. package/types/{src/components/Tabs/__tests__/ScrollableTab.spec.d.ts → components/Radio/__tests__/Radio.spec.d.ts} +0 -0
  242. package/types/{src/components/Tabs/__tests__/ScrollableTabs.spec.d.ts → components/Radio/__tests__/RadioGroup.spec.d.ts} +0 -0
  243. package/types/{src/components/Tag/__tests__/Tag.spec.d.ts → components/Radio/__tests__/StyledRadio.spec.d.ts} +0 -0
  244. package/types/components/Radio/index.d.ts +4 -0
  245. package/types/components/Radio/types.d.ts +5 -0
  246. package/types/components/SectionHeading/StyledHeading.d.ts +20 -0
  247. package/types/{src/components/Typography/Text/__tests__/StyledText.spec.d.ts → components/SectionHeading/__tests__/StyledHeading.spec.d.ts} +0 -0
  248. package/types/{src/utils/__tests__/scale.spec.d.ts → components/SectionHeading/__tests__/index.spec.d.ts} +0 -0
  249. package/types/components/SectionHeading/index.d.ts +39 -0
  250. package/types/components/Select/MultiSelect/Footer.d.ts +5 -0
  251. package/types/components/Select/MultiSelect/OptionList.d.ts +3 -0
  252. package/types/components/Select/MultiSelect/StyledMultiSelect.d.ts +26 -0
  253. package/types/components/Select/MultiSelect/__tests__/StyledMultiSelect.spec.d.ts +1 -0
  254. package/types/components/Select/MultiSelect/__tests__/index.spec.d.ts +1 -0
  255. package/types/components/Select/MultiSelect/index.d.ts +39 -0
  256. package/types/components/Select/MultiSelect/types.d.ts +5 -0
  257. package/types/components/Select/index.d.ts +5 -0
  258. package/types/components/Spinner/AnimatedSpinner.d.ts +2 -0
  259. package/types/components/Spinner/StyledSpinner.d.ts +30 -0
  260. package/types/components/Spinner/__tests__/AnimatedSpinner.spec.d.ts +1 -0
  261. package/types/components/Spinner/__tests__/StyledSpinner.spec.d.ts +1 -0
  262. package/types/components/Spinner/__tests__/index.spec.d.ts +1 -0
  263. package/types/components/Spinner/index.d.ts +10 -0
  264. package/types/components/Switch/StyledSwitch.d.ts +36 -0
  265. package/types/components/Switch/__tests__/StyledHeading.spec.d.ts +1 -0
  266. package/types/components/Switch/__tests__/index.spec.d.ts +1 -0
  267. package/types/components/Switch/index.d.ts +30 -0
  268. package/types/{src/components → components}/Tabs/ActiveTabIndicator.d.ts +0 -0
  269. package/types/{src/components → components}/Tabs/ScrollableTabs.d.ts +0 -0
  270. package/types/{src/components → components}/Tabs/StyledScrollableTabs.d.ts +0 -1
  271. package/types/{src/components → components}/Tabs/StyledTabs.d.ts +0 -1
  272. package/types/components/Tabs/__tests__/ScrollableTabs.spec.d.ts +1 -0
  273. package/types/components/Tabs/__tests__/index.spec.d.ts +1 -0
  274. package/types/{src/components → components}/Tabs/index.d.ts +0 -0
  275. package/types/{src/components → components}/Tabs/utils.d.ts +0 -0
  276. package/types/{src/components → components}/Tag/StyledTag.d.ts +0 -1
  277. package/types/components/Tag/__tests__/Tag.spec.d.ts +1 -0
  278. package/types/{src/components → components}/Tag/index.d.ts +0 -0
  279. package/types/components/TextInput/StyledTextInput.d.ts +18 -0
  280. package/types/components/TextInput/__tests__/StyledTextInput.spec.d.ts +1 -0
  281. package/types/components/TextInput/__tests__/index.spec.d.ts +1 -0
  282. package/types/components/TextInput/index.d.ts +34 -0
  283. package/types/{src/components → components}/Typography/Text/StyledText.d.ts +0 -1
  284. package/types/components/Typography/Text/__tests__/StyledText.spec.d.ts +1 -0
  285. package/types/components/Typography/Text/__tests__/index.spec.d.ts +1 -0
  286. package/types/{src/components → components}/Typography/Text/index.d.ts +0 -0
  287. package/types/{src/components → components}/Typography/index.d.ts +0 -0
  288. package/types/{src/index.d.ts → index.d.ts} +10 -1
  289. package/types/{src/testHelpers → testHelpers}/renderWithTheme.d.ts +0 -0
  290. package/types/theme/__tests__/index.spec.d.ts +1 -0
  291. package/types/theme/components/alert.d.ts +23 -0
  292. package/types/{src/theme → theme}/components/avatar.d.ts +0 -0
  293. package/types/{src/theme → theme}/components/badge.d.ts +0 -0
  294. package/types/{src/theme → theme}/components/bottomNavigation.d.ts +0 -0
  295. package/types/theme/components/bottomSheet.d.ts +29 -0
  296. package/types/{src/theme → theme}/components/button.d.ts +0 -0
  297. package/types/{src/theme → theme}/components/card.d.ts +0 -0
  298. package/types/theme/components/contentNavigator.d.ts +7 -0
  299. package/types/{src/theme → theme}/components/divider.d.ts +0 -0
  300. package/types/{src/theme → theme}/components/drawer.d.ts +0 -0
  301. package/types/{src/theme → theme}/components/fab.d.ts +0 -0
  302. package/types/{src/theme → theme}/components/icon.d.ts +1 -0
  303. package/types/{src/theme → theme}/components/progress.d.ts +0 -0
  304. package/types/theme/components/radio.d.ts +25 -0
  305. package/types/theme/components/sectionHeading.d.ts +13 -0
  306. package/types/theme/components/select.d.ts +17 -0
  307. package/types/theme/components/spinner.d.ts +15 -0
  308. package/types/theme/components/switch.d.ts +32 -0
  309. package/types/{src/theme → theme}/components/tabs.d.ts +0 -0
  310. package/types/{src/theme → theme}/components/tag.d.ts +0 -0
  311. package/types/theme/components/textInput.d.ts +24 -0
  312. package/types/{src/theme → theme}/components/typography.d.ts +0 -0
  313. package/types/{src/theme → theme}/global/borders.d.ts +3 -0
  314. package/types/{src/theme → theme}/global/colors.d.ts +3 -0
  315. package/types/{src/theme → theme}/global/index.d.ts +3 -0
  316. package/types/{src/theme → theme}/global/scale.d.ts +0 -0
  317. package/types/{src/theme → theme}/global/space.d.ts +0 -0
  318. package/types/{src/theme → theme}/global/typography.d.ts +0 -0
  319. package/types/{src/theme → theme}/index.d.ts +23 -5
  320. package/types/{src/types.d.ts → types.d.ts} +0 -0
  321. package/types/utils/__tests__/scale.spec.d.ts +1 -0
  322. package/types/{src/utils → utils}/helpers.d.ts +0 -0
  323. package/types/{src/utils → utils}/hooks.d.ts +0 -0
  324. package/types/{src/utils → utils}/scale.d.ts +0 -0
  325. package/app.json +0 -8
  326. package/types/playground/components/Avatar.d.ts +0 -2
  327. package/types/playground/components/Badge.d.ts +0 -2
  328. package/types/playground/components/BottomNavigation.d.ts +0 -2
  329. package/types/playground/components/Button.d.ts +0 -2
  330. package/types/playground/components/Card.d.ts +0 -2
  331. package/types/playground/components/Collapse.d.ts +0 -2
  332. package/types/playground/components/Divider.d.ts +0 -2
  333. package/types/playground/components/Drawer.d.ts +0 -2
  334. package/types/playground/components/FAB.d.ts +0 -2
  335. package/types/playground/components/Icon.d.ts +0 -2
  336. package/types/playground/components/IconButton.d.ts +0 -2
  337. package/types/playground/components/Progress.d.ts +0 -2
  338. package/types/playground/components/Tabs.d.ts +0 -2
  339. package/types/playground/components/Tag.d.ts +0 -2
  340. package/types/playground/components/Typography.d.ts +0 -2
  341. package/types/playground/index.d.ts +0 -2
  342. package/types/src/components/Icon/IconList.d.ts +0 -2
  343. package/types/src/components/Icon/utils.d.ts +0 -2
  344. package/types/src/components/Tabs/ScrollableTab.d.ts +0 -3
  345. package/types/src/components/Tabs/StyledScrollableTab.d.ts +0 -61
@@ -5,7 +5,7 @@ import {
5
5
  createNativeStackNavigator,
6
6
  NativeStackScreenProps,
7
7
  } from '@react-navigation/native-stack';
8
- import { useFonts } from 'expo-font';
8
+ import { loadAsync } from 'expo-font';
9
9
  import { SafeAreaView, FlatList, View, TouchableOpacity } from 'react-native';
10
10
  import {
11
11
  ThemeProvider,
@@ -14,35 +14,49 @@ import {
14
14
  Typography,
15
15
  Icon,
16
16
  Divider,
17
- } from '../src/index';
18
- import AvatarPlayground from './components/Avatar';
19
- import BadgePlayground from './components/Badge';
20
- import BottomNavigation from './components/BottomNavigation';
21
- import Button from './components/Button';
22
- import CardPlayground from './components/Card';
23
- import CollapsePlayground from './components/Collapse';
24
- import DividerPlayground from './components/Divider';
25
- import DrawerPlayground from './components/Drawer';
26
- import FABPlayground from './components/FAB';
27
- import IconPlayground from './components/Icon';
28
- import IconButtonPlayground from './components/IconButton';
29
- import ProgressPlayground from './components/Progress';
30
- import TabsPlayground from './components/Tabs';
31
- import TagPlayground from './components/Tag';
32
- import TypographyPlayground from './components/Typography';
17
+ } from '@hero-design/rn';
33
18
 
34
- const heroIconFontPath = require('../assets/fonts/hero-icons.ttf');
35
- const beVietnamProLightFont = require('../assets/fonts/be-vietnam-pro-light.ttf');
36
- const beVietnamProRegularFont = require('../assets/fonts/be-vietnam-pro-regular.ttf');
37
- const beVietnamProSemiBoldFont = require('../assets/fonts/be-vietnam-pro-semibold.ttf');
19
+ import AlertPlayground from './Alert';
20
+ import AvatarPlayground from './Avatar';
21
+ import BadgePlayground from './Badge';
22
+ import BottomNavigation from './BottomNavigation';
23
+ import BottomSheet from './BottomSheet';
24
+ import Button from './Button';
25
+ import CardPlayground from './Card';
26
+ import CollapsePlayground from './Collapse';
27
+ import ContentNavigatorPlayground from './ContentNavigator';
28
+ import DividerPlayground from './Divider';
29
+ import DrawerPlayground from './Drawer';
30
+ import FABPlayground from './FAB';
31
+ import IconPlayground from './Icon';
32
+ import IconButtonPlayground from './IconButton';
33
+ import ProgressPlayground from './Progress';
34
+ import SpinnerPlayground from './Spinner';
35
+ import SectionHeadingPlayground from './SectionHeading';
36
+ import RadioPlayground from './Radio';
37
+ import SelectPlayground from './Select';
38
+ import SwitchPlayground from './Switch';
39
+ import TabsPlayground from './Tabs';
40
+ import TagPlayground from './Tag';
41
+ import TextInputPlayground from './TextInput';
42
+ import TypographyPlayground from './Typography';
43
+ import MultipleThemesPlayground from './MultipleThemes';
44
+
45
+ const heroIconFontPath = require('@hero-design/rn/assets/fonts/hero-icons.ttf');
46
+ const beVietnamProLightFont = require('@hero-design/rn/assets/fonts/be-vietnam-pro-light.ttf');
47
+ const beVietnamProRegularFont = require('@hero-design/rn/assets/fonts/be-vietnam-pro-regular.ttf');
48
+ const beVietnamProSemiBoldFont = require('@hero-design/rn/assets/fonts/be-vietnam-pro-semibold.ttf');
38
49
 
39
50
  type RootStackParamList = {
51
+ Alert: undefined;
40
52
  Avatar: undefined;
41
53
  Badge: undefined;
42
54
  BottomNavigation: undefined;
55
+ BottomSheet: undefined;
43
56
  Button: undefined;
44
57
  Card: undefined;
45
58
  Collapse: undefined;
59
+ ContentNavigator: undefined;
46
60
  Divider: undefined;
47
61
  Drawer: undefined;
48
62
  FAB: undefined;
@@ -50,9 +64,16 @@ type RootStackParamList = {
50
64
  Icon: undefined;
51
65
  IconButton: undefined;
52
66
  Progress: undefined;
67
+ Spinner: undefined;
68
+ Radio: undefined;
69
+ SectionHeading: undefined;
70
+ Select: undefined;
71
+ Switch: undefined;
53
72
  Tabs: undefined;
54
73
  Tag: undefined;
74
+ TextInput: undefined;
55
75
  Typography: undefined;
76
+ MultipleThemes: undefined;
56
77
  };
57
78
 
58
79
  type Navigation = NativeStackScreenProps<RootStackParamList>;
@@ -60,25 +81,36 @@ type Navigation = NativeStackScreenProps<RootStackParamList>;
60
81
  const Stack = createNativeStackNavigator<RootStackParamList>();
61
82
 
62
83
  const components = [
84
+ { name: 'Alert', component: AlertPlayground },
63
85
  { name: 'Avatar', component: AvatarPlayground },
64
86
  { name: 'Badge', component: BadgePlayground },
65
87
  { name: 'BottomNavigation', component: BottomNavigation },
88
+ { name: 'BottomSheet', component: BottomSheet },
66
89
  { name: 'Button', component: Button },
67
90
  { name: 'Card', component: CardPlayground },
68
91
  { name: 'Collapse', component: CollapsePlayground },
92
+ { name: 'ContentNavigator', component: ContentNavigatorPlayground },
69
93
  { name: 'Divider', component: DividerPlayground },
70
94
  { name: 'Drawer', component: DrawerPlayground },
71
95
  { name: 'FAB', component: FABPlayground },
72
96
  { name: 'Icon', component: IconPlayground },
73
97
  { name: 'IconButton', component: IconButtonPlayground },
74
98
  { name: 'Progress', component: ProgressPlayground },
99
+ { name: 'Spinner', component: SpinnerPlayground },
100
+ { name: 'Radio', component: RadioPlayground },
101
+ { name: 'SectionHeading', component: SectionHeadingPlayground },
102
+ { name: 'Select', component: SelectPlayground },
103
+ { name: 'Switch', component: SwitchPlayground },
75
104
  { name: 'Tabs', component: TabsPlayground },
76
105
  { name: 'Tag', component: TagPlayground },
106
+ { name: 'TextInput', component: TextInputPlayground },
77
107
  { name: 'Typography', component: TypographyPlayground },
108
+ { name: 'MultipleThemes', component: MultipleThemesPlayground },
78
109
  ] as const;
79
110
 
80
- const ComponentItem = ({ name }: { name: string }) => {
111
+ const ComponentItem = ({ name }: { name: string }): JSX.Element => {
81
112
  const hdTheme = useTheme();
113
+
82
114
  return (
83
115
  <View
84
116
  style={{
@@ -125,18 +157,26 @@ const App = () => {
125
157
  background: theme.colors.platformBackground,
126
158
  },
127
159
  };
160
+ const [fontsLoaded, setFontsLoaded] = React.useState(false);
161
+
162
+ React.useEffect(() => {
163
+ async function loadFonts() {
164
+ await loadAsync({
165
+ 'hero-icons': heroIconFontPath,
166
+ 'BeVietnamPro-Light': beVietnamProLightFont,
167
+ 'BeVietnamPro-Regular': beVietnamProRegularFont,
168
+ 'BeVietnamPro-SemiBold': beVietnamProSemiBoldFont,
169
+ }).catch(console.error);
128
170
 
129
- const [fontsLoaded] = useFonts({
130
- 'hero-icons': heroIconFontPath,
131
- 'BeVietnamPro-Light': beVietnamProLightFont,
132
- 'BeVietnamPro-Regular': beVietnamProRegularFont,
133
- 'BeVietnamPro-SemiBold': beVietnamProSemiBoldFont,
134
- });
171
+ setFontsLoaded(true);
172
+ }
173
+
174
+ loadFonts();
175
+ }, []);
135
176
 
136
177
  if (!fontsLoaded) {
137
178
  return null;
138
179
  }
139
-
140
180
  return (
141
181
  <ThemeProvider theme={theme}>
142
182
  <NavigationContainer theme={CustomNavigationTheme}>
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Alert, View } from 'react-native';
3
- import { Avatar, Typography, useTheme } from '../../src/index';
3
+ import { Avatar, Typography, useTheme } from '@hero-design/rn';
4
4
 
5
5
  const AvatarPlayground = () => {
6
6
  const theme = useTheme();
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Button, View } from 'react-native';
3
- import { Badge, Icon, Typography, useTheme } from '../../src/index';
3
+ import { Badge, Icon, Typography, useTheme } from '@hero-design/rn';
4
4
 
5
5
  const BadgePlayground = () => {
6
6
  const theme = useTheme();
@@ -4,7 +4,7 @@ import {
4
4
  BottomNavigation,
5
5
  Typography,
6
6
  BottomNavigationTabType,
7
- } from '../../src/index';
7
+ } from '@hero-design/rn';
8
8
 
9
9
  const HomeScreen = () => (
10
10
  <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
@@ -0,0 +1,43 @@
1
+ import React, { useState } from 'react';
2
+ import { View, Button } from 'react-native';
3
+
4
+ import { BottomSheet, Typography, useTheme } from '@hero-design/rn';
5
+
6
+ const Content = () => {
7
+ const theme = useTheme();
8
+
9
+ return (
10
+ <View style={{ padding: theme.space.medium }}>
11
+ <Typography.Text>Sheet Content</Typography.Text>
12
+ <Typography.Text>Sheet Content</Typography.Text>
13
+ <Typography.Text>Sheet Content</Typography.Text>
14
+ <Typography.Text>Sheet Content</Typography.Text>
15
+ <Typography.Text>Sheet Content</Typography.Text>
16
+ <Typography.Text>Sheet Content</Typography.Text>
17
+ <Typography.Text>Sheet Content</Typography.Text>
18
+ <Typography.Text>Sheet Content</Typography.Text>
19
+ <Typography.Text>Sheet Content</Typography.Text>
20
+ <Typography.Text>Sheet Content</Typography.Text>
21
+ </View>
22
+ );
23
+ };
24
+
25
+ const BottomSheetPlayground = (): JSX.Element => {
26
+ const [visible, setVisiblity] = useState(false);
27
+
28
+ return (
29
+ <View style={{ flex: 1, alignItems: 'center' }}>
30
+ <Button title="Toggle Bottom Sheet" onPress={() => setVisiblity(true)} />
31
+ <BottomSheet
32
+ open={visible}
33
+ header="Title"
34
+ footer={<Button title="Close" onPress={() => setVisiblity(false)} />}
35
+ onRequestClose={() => setVisiblity(false)}
36
+ >
37
+ <Content />
38
+ </BottomSheet>
39
+ </View>
40
+ );
41
+ };
42
+
43
+ export default BottomSheetPlayground;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ScrollView, View } from 'react-native';
3
3
 
4
- import { Button, Typography, useTheme } from '../../src/index';
4
+ import { Button, Typography, useTheme } from '@hero-design/rn';
5
5
 
6
6
  const ButtonPlayground = (): JSX.Element => {
7
7
  const theme = useTheme();
@@ -14,7 +14,7 @@ import {
14
14
  Icon,
15
15
  Divider,
16
16
  useTheme,
17
- } from '../../src/index';
17
+ } from '@hero-design/rn';
18
18
 
19
19
  type DashboardCardProps = ViewProps & {
20
20
  icon: ComponentProps<typeof Icon>['icon'];
@@ -8,7 +8,7 @@ import {
8
8
  Button,
9
9
  Card,
10
10
  Collapse,
11
- } from '../../src/index';
11
+ } from '@hero-design/rn';
12
12
 
13
13
  const CollapsePlayground = () => {
14
14
  const theme = useTheme();
@@ -0,0 +1,58 @@
1
+ import React, { useState } from 'react';
2
+ import { View } from 'react-native';
3
+ import { ContentNavigator, Typography, useTheme } from '@hero-design/rn';
4
+
5
+ function addDays(date: Date, numDays: number) {
6
+ const milliseconds = numDays * 24 * 60 * 60 * 1000;
7
+ return new Date(date.valueOf() + milliseconds);
8
+ }
9
+
10
+ function getMondayAndSunday(date: Date) {
11
+ const daysFromMonday = (date.getDay() || 7) - 1;
12
+ const monday = addDays(date, -daysFromMonday);
13
+ const sunday = addDays(monday, 6);
14
+
15
+ return { monday, sunday };
16
+ }
17
+
18
+ function formatDate(date: Date) {
19
+ return date.toLocaleDateString('en-US', {
20
+ year: 'numeric',
21
+ month: 'short',
22
+ day: 'numeric',
23
+ });
24
+ }
25
+
26
+ const ContentNavigatorPlayground = (): JSX.Element => {
27
+ const theme = useTheme();
28
+ const [age, setAge] = useState(20);
29
+ const [date, setDate] = useState(new Date());
30
+ const { monday, sunday } = getMondayAndSunday(date);
31
+
32
+ return (
33
+ <View style={{ margin: theme.space.medium }}>
34
+ <View style={{ flexDirection: 'row' }}>
35
+ <Typography.Text style={{ paddingRight: theme.space.medium }}>
36
+ Age (18 to 25):
37
+ </Typography.Text>
38
+ <ContentNavigator
39
+ value={age}
40
+ onPreviousPress={() => setAge(age - 1)}
41
+ onNextPress={() => setAge(age + 1)}
42
+ previousDisabled={age <= 18}
43
+ nextDisabled={age >= 25}
44
+ />
45
+ </View>
46
+ <Typography.Text>Week calendar:</Typography.Text>
47
+ <View style={{ flexDirection: 'row' }}>
48
+ <ContentNavigator
49
+ value={`${formatDate(monday)} - ${formatDate(sunday)}`}
50
+ onPreviousPress={() => setDate(addDays(date, -7))}
51
+ onNextPress={() => setDate(addDays(date, 7))}
52
+ />
53
+ </View>
54
+ </View>
55
+ );
56
+ };
57
+
58
+ export default ContentNavigatorPlayground;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { View } from 'react-native';
3
- import { Divider } from '../../src/index';
3
+ import { Divider } from '@hero-design/rn';
4
4
 
5
5
  const DividerPlayground = () => (
6
6
  <View>
@@ -1,7 +1,7 @@
1
1
  import { Button, SafeAreaView, Text, View } from 'react-native';
2
2
  import React, { useState } from 'react';
3
3
 
4
- import { Drawer } from '../../src/index';
4
+ import { Drawer } from '@hero-design/rn';
5
5
 
6
6
  const DrawerContent = () => (
7
7
  <View style={{ padding: 30 }}>
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
2
2
  import { TouchableHighlight } from 'react-native';
3
3
  /* eslint-disable import/no-extraneous-dependencies */
4
4
  import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
5
- import { FAB, Typography, useTheme } from '../../src/index';
5
+ import { FAB, Typography, useTheme } from '@hero-design/rn';
6
6
 
7
7
  const FABPlayground = (): JSX.Element => {
8
8
  const [active, setActive] = useState(false);
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ScrollView, View } from 'react-native';
3
- import { Typography, Icon, useTheme } from '../../src/index';
3
+ import { Typography, Icon, useTheme } from '@hero-design/rn';
4
4
 
5
5
  const IconPlayground = () => {
6
6
  const theme = useTheme();
@@ -94,9 +94,13 @@ const IconPlayground = () => {
94
94
  intent="success"
95
95
  style={{ marginEnd: theme.space.medium }}
96
96
  />
97
- <Icon icon="speaker" intent="warning" />
97
+ <Icon
98
+ icon="speaker"
99
+ intent="warning"
100
+ style={{ marginEnd: theme.space.medium }}
101
+ />
102
+ <Icon icon="arrow-right" intent="disabled-text" />
98
103
  </View>
99
-
100
104
  <Typography.Text style={{ marginBottom: theme.space.xsmall }}>
101
105
  Icon with different sizes
102
106
  </Typography.Text>
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { View } from 'react-native';
3
3
 
4
- import { Button, Typography, useTheme } from '../../src/index';
4
+ import { Button, Typography, useTheme } from '@hero-design/rn';
5
5
 
6
6
  const IconButtonPlayground = (): JSX.Element => {
7
7
  const theme = useTheme();
@@ -59,7 +59,18 @@ const IconButtonPlayground = (): JSX.Element => {
59
59
  onPress={() => {}}
60
60
  style={{ marginEnd: theme.space.medium }}
61
61
  />
62
+ <Button.Icon
63
+ icon="circle-add-outlined"
64
+ intent="disabled-text"
65
+ size="xlarge"
66
+ onPress={() => {}}
67
+ style={{ marginEnd: theme.space.medium }}
68
+ />
62
69
  </View>
70
+ <Typography.Text style={{ marginBottom: theme.space.xsmall }}>
71
+ Disabled state
72
+ </Typography.Text>
73
+ <Button.Icon icon="circle-add-outlined" disabled onPress={() => {}} />
63
74
  </View>
64
75
  );
65
76
  };
@@ -0,0 +1,34 @@
1
+ import { ThemeProvider, theme, Button } from '@hero-design/rn';
2
+
3
+ import React from 'react';
4
+ import { Alert } from 'react-native';
5
+
6
+ const CustomizedTheme = {
7
+ ...theme,
8
+ __hd__: {
9
+ ...theme.__hd__,
10
+ button: {
11
+ ...theme.__hd__.button,
12
+ colors: {
13
+ ...theme.__hd__.button.colors,
14
+ primary: '#000000',
15
+ },
16
+ },
17
+ },
18
+ };
19
+ const MutipleThemesPlayground = () => (
20
+ <>
21
+ <Button
22
+ text="Button with Origin theme"
23
+ onPress={() => Alert.alert('Button')}
24
+ />
25
+ <ThemeProvider theme={CustomizedTheme}>
26
+ <Button
27
+ text="Button with Customized theme"
28
+ onPress={() => Alert.alert('Button')}
29
+ />
30
+ </ThemeProvider>
31
+ </>
32
+ );
33
+
34
+ export default MutipleThemesPlayground;
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from 'react';
2
2
  import { View, Button } from 'react-native';
3
- import { Progress, Typography, useTheme } from '../../src/index';
3
+ import { Progress, Typography, useTheme } from '@hero-design/rn';
4
4
 
5
5
  const ProgressPlayground = () => {
6
6
  const [progress, setProgress] = useState(0);
@@ -0,0 +1,25 @@
1
+ import React, { useState } from 'react';
2
+ import { View } from 'react-native';
3
+ import { Radio, Typography, useTheme } from '@hero-design/rn';
4
+
5
+ const RadioPlayground = () => {
6
+ const theme = useTheme();
7
+ const [value, setValue] = useState('everything');
8
+
9
+ return (
10
+ <View style={{ padding: theme.space.medium }}>
11
+ <Typography.Text fontSize="xlarge">Radio.Group</Typography.Text>
12
+ <Radio.Group
13
+ options={[
14
+ { text: 'Everything', value: 'everything' },
15
+ { text: 'Direct mentions only', value: 'direct_mentions' },
16
+ { text: 'Nothing', value: 'nothing' },
17
+ ]}
18
+ value={value}
19
+ onPress={setValue}
20
+ />
21
+ </View>
22
+ );
23
+ };
24
+
25
+ export default RadioPlayground;
@@ -0,0 +1,68 @@
1
+ import React from 'react';
2
+ import { SectionList, Text, TouchableOpacity, View } from 'react-native';
3
+
4
+ import { SectionHeading, Typography, useTheme } from '@hero-design/rn';
5
+
6
+ const SectionHeadingPlayground = () => {
7
+ const theme = useTheme();
8
+
9
+ const sampleSections = [
10
+ {
11
+ title: 'Main dishes',
12
+ data: ['Pizza', 'Burger', 'Risotto'],
13
+ cta: () => {},
14
+ },
15
+ {
16
+ title: 'Sides',
17
+ data: ['French Fries', 'Onion Rings', 'Fried Shrimps'],
18
+ haveIcon: true,
19
+ },
20
+ ];
21
+
22
+ return (
23
+ <View
24
+ style={{
25
+ margin: theme.space.medium,
26
+ }}
27
+ >
28
+ <Typography.Text style={{ marginBottom: theme.space.xsmall }}>
29
+ Default section heading
30
+ </Typography.Text>
31
+ <SectionList
32
+ sections={sampleSections}
33
+ keyExtractor={(item, index) => item + index}
34
+ renderItem={({ item }) => (
35
+ <View
36
+ style={{
37
+ borderRadius: theme.radii.base,
38
+ borderWidth: theme.borderWidths.base,
39
+ borderColor: theme.colors.outline,
40
+ paddingVertical: theme.space.small,
41
+ paddingHorizontal: theme.space.medium,
42
+ marginBottom: theme.space.medium,
43
+ }}
44
+ >
45
+ <Text>{item}</Text>
46
+ </View>
47
+ )}
48
+ renderSectionHeader={({ section: { title, cta, haveIcon } }) => (
49
+ <SectionHeading
50
+ text={title}
51
+ icon={haveIcon ? 'document' : undefined}
52
+ rightChildren={
53
+ cta && (
54
+ <TouchableOpacity onPress={cta}>
55
+ <Typography.Text intent="primary" fontWeight="semi-bold">
56
+ Edit
57
+ </Typography.Text>
58
+ </TouchableOpacity>
59
+ )
60
+ }
61
+ />
62
+ )}
63
+ />
64
+ </View>
65
+ );
66
+ };
67
+
68
+ export default SectionHeadingPlayground;
@@ -0,0 +1,32 @@
1
+ import React, { useState } from 'react';
2
+ import { View } from 'react-native';
3
+ import { Select, useTheme } from '@hero-design/rn';
4
+
5
+ const SelectPlayground = (): JSX.Element => {
6
+ const theme = useTheme();
7
+ const options = [
8
+ { text: 'Monday', value: 'mon' },
9
+ { text: 'Tuesday', value: 'tue' },
10
+ { text: 'Wednesday', value: 'wed' },
11
+ { text: 'Thursday', value: 'thu' },
12
+ { text: 'Friday', value: 'fri' },
13
+ { text: 'Saturday', value: 'sat' },
14
+ { text: 'Sunday', value: 'sun' },
15
+ ];
16
+ const [value, setValue] = useState(['mon', 'tue']);
17
+
18
+ return (
19
+ <View style={{ margin: theme.space.medium }}>
20
+ <Select.Multi
21
+ label="Allow notifications"
22
+ footerLabel="Confirm"
23
+ options={options}
24
+ value={value}
25
+ onPress={setValue}
26
+ keyExtractor={opt => opt.value}
27
+ />
28
+ </View>
29
+ );
30
+ };
31
+
32
+ export default SelectPlayground;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { Spinner, useTheme } from '@hero-design/rn';
4
+
5
+ const SpinnerPlayground = (): JSX.Element => {
6
+ const theme = useTheme();
7
+ return (
8
+ <View
9
+ style={{
10
+ marginVertical: theme.space.medium,
11
+ marginHorizontal: theme.space.medium,
12
+ }}
13
+ >
14
+ <Spinner />
15
+ </View>
16
+ );
17
+ };
18
+
19
+ export default SpinnerPlayground;