@gympass/yoga 7.88.0 → 7.88.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/cjs/Accordion/Accordion.theme.js +46 -0
  2. package/cjs/Accordion/index.js +35 -0
  3. package/cjs/ActionRequirement/ActionRequirement.theme.js +25 -0
  4. package/cjs/ActionRequirement/index.js +35 -0
  5. package/cjs/ActionRequirement/index.native.js +35 -0
  6. package/cjs/AutoComplete/AutoComplete.theme.js +77 -0
  7. package/cjs/AutoComplete/index.js +35 -0
  8. package/cjs/Avatar/Avatar.theme.js +25 -0
  9. package/cjs/Avatar/index.js +37 -0
  10. package/cjs/Avatar/index.native.js +37 -0
  11. package/cjs/Banner/Banner.theme.js +30 -0
  12. package/cjs/Banner/index.js +35 -0
  13. package/cjs/Banner/index.native.js +35 -0
  14. package/cjs/BottomSheet/BottomSheet.theme.js +44 -0
  15. package/cjs/BottomSheet/index.js +35 -0
  16. package/cjs/Box/index.js +35 -0
  17. package/cjs/Box/index.native.js +35 -0
  18. package/cjs/Button/Button.theme.js +157 -0
  19. package/cjs/Button/index.js +43 -0
  20. package/cjs/Button/index.native.js +41 -0
  21. package/cjs/Card/Card.native.theme.js +64 -0
  22. package/cjs/Card/Card.theme.js +177 -0
  23. package/cjs/Card/Card.web.theme.js +61 -0
  24. package/cjs/Card/index.js +32 -0
  25. package/cjs/Card/index.native.js +34 -0
  26. package/cjs/Checkbox/CheckIcon.js +25 -0
  27. package/cjs/Checkbox/Checkbox.theme.js +68 -0
  28. package/cjs/Checkbox/CheckboxSwitch.theme.js +90 -0
  29. package/cjs/Checkbox/index.js +26 -0
  30. package/cjs/Checkbox/index.native.js +26 -0
  31. package/cjs/Chips/index.js +35 -0
  32. package/cjs/Chips/index.native.js +35 -0
  33. package/cjs/Datepicker/Datepicker.theme.js +32 -0
  34. package/cjs/Datepicker/index.js +35 -0
  35. package/cjs/Dialog/Dialog.theme.js +43 -0
  36. package/cjs/Dialog/index.js +35 -0
  37. package/cjs/Divider/Divider.theme.js +25 -0
  38. package/cjs/Divider/index.js +35 -0
  39. package/cjs/Divider/index.native.js +35 -0
  40. package/cjs/Drawer/Drawer.theme.js +35 -0
  41. package/cjs/Drawer/index.js +35 -0
  42. package/cjs/Dropdown/Dropdown.theme.js +205 -0
  43. package/cjs/Dropdown/index.js +35 -0
  44. package/cjs/Dropdown/index.native.js +35 -0
  45. package/cjs/Feedback/Feedback.theme.js +29 -0
  46. package/cjs/Feedback/index.js +35 -0
  47. package/cjs/Grid/Grid.theme.js +43 -0
  48. package/cjs/Grid/index.js +34 -0
  49. package/cjs/Header/Header.theme.js +34 -0
  50. package/cjs/Header/index.js +35 -0
  51. package/cjs/Heading/Heading.theme.js +38 -0
  52. package/cjs/Heading/index.js +35 -0
  53. package/cjs/Icon/Icon.js +193 -0
  54. package/cjs/Icon/Icon.theme.js +25 -0
  55. package/cjs/Icon/index.js +35 -0
  56. package/cjs/Icon/index.native.js +35 -0
  57. package/cjs/Input/Input.theme.js +86 -0
  58. package/cjs/Input/index.js +30 -0
  59. package/cjs/Input/index.native.js +29 -0
  60. package/cjs/List/List.theme.js +49 -0
  61. package/cjs/List/index.js +27 -0
  62. package/cjs/List/index.native.js +26 -0
  63. package/cjs/Menu/Menu.theme.js +63 -0
  64. package/cjs/Menu/index.js +41 -0
  65. package/cjs/Popover/Popover.theme.js +25 -0
  66. package/cjs/Popover/index.js +35 -0
  67. package/cjs/Progress/Progress.theme.js +38 -0
  68. package/cjs/Progress/index.js +35 -0
  69. package/cjs/Progress/index.native.js +35 -0
  70. package/cjs/RadioGroup/RadioGroup.theme.js +76 -0
  71. package/cjs/RadioGroup/RadioGroupContext.js +26 -0
  72. package/cjs/RadioGroup/index.js +27 -0
  73. package/cjs/RadioGroup/index.native.js +27 -0
  74. package/cjs/Rating/Rating.theme.js +31 -0
  75. package/cjs/Rating/index.js +35 -0
  76. package/cjs/Rating/index.native.js +35 -0
  77. package/cjs/Result/Result.theme.js +25 -0
  78. package/cjs/Result/index.native.js +41 -0
  79. package/cjs/Skeleton/Skeleton.theme.js +42 -0
  80. package/cjs/Skeleton/index.js +35 -0
  81. package/cjs/Skeleton/index.native.js +35 -0
  82. package/cjs/Slider/Slider.theme.js +95 -0
  83. package/cjs/Slider/index.js +35 -0
  84. package/cjs/Slider/index.native.js +35 -0
  85. package/cjs/Snackbar/Snackbar.theme.js +81 -0
  86. package/cjs/Snackbar/index.js +35 -0
  87. package/cjs/Snackbar/index.native.js +35 -0
  88. package/cjs/Spinner/Spinner.theme.js +25 -0
  89. package/cjs/Spinner/index.js +35 -0
  90. package/cjs/Stepper/Stepper.theme.js +56 -0
  91. package/cjs/Stepper/activeDot.js +25 -0
  92. package/cjs/Stepper/index.js +26 -0
  93. package/cjs/Stepper/index.native.js +26 -0
  94. package/cjs/Tag/Tag.theme.js +58 -0
  95. package/cjs/Tag/index.js +37 -0
  96. package/cjs/Tag/index.native.js +37 -0
  97. package/cjs/Text/Text.theme.js +93 -0
  98. package/cjs/Text/index.js +39 -0
  99. package/cjs/Text/index.native.js +39 -0
  100. package/cjs/Text/sharedTextStyle.js +64 -0
  101. package/cjs/Text/textStyle.android.js +57 -0
  102. package/cjs/Text/textStyle.ios.js +39 -0
  103. package/cjs/Text/textStyle.web.js +47 -0
  104. package/cjs/TextArea/TextArea.theme.js +36 -0
  105. package/cjs/TextArea/index.js +35 -0
  106. package/cjs/TextArea/index.native.js +35 -0
  107. package/cjs/Theme/Provider/Provider.js +103 -0
  108. package/cjs/Theme/Provider/index.js +30 -0
  109. package/cjs/Theme/Provider/index.native.js +35 -0
  110. package/cjs/Theme/Provider/native/index.js +35 -0
  111. package/cjs/Theme/Provider/web/FontLoader.js +51 -0
  112. package/cjs/Theme/Provider/web/FontLoader.test.js +39 -0
  113. package/cjs/Theme/Provider/web/GlobalStyle.js +38 -0
  114. package/cjs/Theme/Provider/web/GlobalStyle.test.js +44 -0
  115. package/cjs/Theme/Provider/web/ThemeProvider.js +78 -0
  116. package/cjs/Theme/Provider/web/expectCssMatches.js +34 -0
  117. package/cjs/Theme/Provider/web/index.js +41 -0
  118. package/cjs/Theme/helpers/themeGenerator/index.js +35 -0
  119. package/cjs/Theme/helpers/themeGenerator/themeGenerator.js +33 -0
  120. package/cjs/Theme/helpers/themeGenerator/themeGenerator.test.js +43 -0
  121. package/cjs/Theme/helpers/themeReader/base.test.js +96 -0
  122. package/cjs/Theme/helpers/themeReader/index.js +56 -0
  123. package/cjs/Theme/helpers/themeReader/native/native.test.js +61 -0
  124. package/cjs/Theme/helpers/themeReader/web/web.test.js +55 -0
  125. package/cjs/Theme/index.js +48 -0
  126. package/cjs/Theme/index.native.js +46 -0
  127. package/cjs/Theme/theme/index.js +35 -0
  128. package/cjs/Theme/theme/theme.js +109 -0
  129. package/cjs/hooks/index.js +26 -0
  130. package/cjs/hooks/useCombinedRefs.js +44 -0
  131. package/cjs/hooks/useKeyPress.js +50 -0
  132. package/cjs/hooks/usePortal.js +63 -0
  133. package/cjs/index.js +164 -0
  134. package/cjs/index.native.js +122 -0
  135. package/cjs/shared/HiddenInput.js +45 -0
  136. package/cjs/shared/index.js +49 -0
  137. package/cjs/shared/index.native.js +36 -0
  138. package/cjs/shared/propTypes/charLength.js +36 -0
  139. package/cjs/shared/propTypes/deprecated.js +34 -0
  140. package/cjs/shared/propTypes/index.js +50 -0
  141. package/cjs/shared/propTypes/limitChildren.js +35 -0
  142. package/cjs/shared/propTypes/max.js +35 -0
  143. package/cjs/shared/propTypes/typeof.js +47 -0
  144. package/esm/Accordion/Accordion.theme.js +26 -0
  145. package/esm/Accordion/index.js +5 -0
  146. package/esm/ActionRequirement/ActionRequirement.theme.js +5 -0
  147. package/esm/ActionRequirement/index.js +5 -0
  148. package/esm/ActionRequirement/index.native.js +5 -0
  149. package/esm/ActionRequirement/native/ActionRequirement.js +57 -0
  150. package/esm/ActionRequirement/native/ActionRequirement.test.js +49 -0
  151. package/esm/ActionRequirement/native/ActionRequirementStyles.js +69 -0
  152. package/esm/ActionRequirement/native/index.js +13 -0
  153. package/esm/AutoComplete/AutoComplete.theme.js +49 -0
  154. package/esm/AutoComplete/index.js +5 -0
  155. package/esm/Avatar/Avatar.theme.js +5 -0
  156. package/esm/Avatar/index.js +7 -0
  157. package/esm/Avatar/index.native.js +7 -0
  158. package/esm/Avatar/native/Avatar.js +141 -0
  159. package/esm/Avatar/native/Avatar.test.js +39 -0
  160. package/esm/Avatar/native/AvatarCircle.js +54 -0
  161. package/esm/Banner/Banner.theme.js +10 -0
  162. package/esm/Banner/index.js +5 -0
  163. package/esm/Banner/index.native.js +5 -0
  164. package/esm/Banner/native/Banner.js +160 -0
  165. package/esm/Banner/native/Banner.test.js +113 -0
  166. package/esm/Banner/native/index.js +5 -0
  167. package/esm/BottomSheet/BottomSheet.theme.js +24 -0
  168. package/esm/BottomSheet/index.js +5 -0
  169. package/esm/Box/index.js +5 -0
  170. package/esm/Box/index.native.js +5 -0
  171. package/esm/Box/native/Box.js +7 -0
  172. package/esm/Box/native/Box.test.js +21 -0
  173. package/esm/Box/native/index.js +5 -0
  174. package/esm/Button/Button.theme.js +137 -0
  175. package/esm/Button/index.js +13 -0
  176. package/esm/Button/index.native.js +11 -0
  177. package/esm/Button/native/Button.js +198 -0
  178. package/esm/Button/native/Button.test.js +342 -0
  179. package/esm/Button/native/Icon.js +156 -0
  180. package/esm/Button/native/Link.js +64 -0
  181. package/esm/Button/native/Text.js +130 -0
  182. package/esm/Button/native/withTouchable.js +89 -0
  183. package/esm/Card/Card.native.theme.js +44 -0
  184. package/esm/Card/Card.theme.js +157 -0
  185. package/esm/Card/Card.web.theme.js +41 -0
  186. package/esm/Card/index.js +6 -0
  187. package/esm/Card/index.native.js +7 -0
  188. package/esm/Card/native/Card/Actions.js +11 -0
  189. package/esm/Card/native/Card/Card.js +181 -0
  190. package/esm/Card/native/Card/Card.test.js +20 -0
  191. package/esm/Card/native/Card/Content.js +7 -0
  192. package/esm/Card/native/Card/Header.js +7 -0
  193. package/esm/Card/native/Card/index.js +11 -0
  194. package/esm/Card/native/EventCard/EventCard.js +212 -0
  195. package/esm/Card/native/EventCard/EventCard.test.js +73 -0
  196. package/esm/Card/native/EventCard/index.js +5 -0
  197. package/esm/Card/native/GymCard/CheckIn/Avatar.js +47 -0
  198. package/esm/Card/native/GymCard/CheckIn/CheckIn.js +113 -0
  199. package/esm/Card/native/GymCard/CheckIn/CheckIn.test.js +46 -0
  200. package/esm/Card/native/GymCard/CheckIn/Content.js +21 -0
  201. package/esm/Card/native/GymCard/CheckIn/Header.js +24 -0
  202. package/esm/Card/native/GymCard/CheckIn/index.js +5 -0
  203. package/esm/Card/native/GymCard/index.js +8 -0
  204. package/esm/Card/native/PlanCard/Actions.js +27 -0
  205. package/esm/Card/native/PlanCard/Content.js +134 -0
  206. package/esm/Card/native/PlanCard/List.js +113 -0
  207. package/esm/Card/native/PlanCard/PlanCard.js +114 -0
  208. package/esm/Card/native/PlanCard/PlanCard.test.js +100 -0
  209. package/esm/Card/native/PlanCard/Subtitle.js +25 -0
  210. package/esm/Card/native/PlanCard/Tag.js +62 -0
  211. package/esm/Card/native/PlanCard/index.js +18 -0
  212. package/esm/Card/native/index.js +10 -0
  213. package/esm/Checkbox/CheckIcon.js +5 -0
  214. package/esm/Checkbox/Checkbox.theme.js +48 -0
  215. package/esm/Checkbox/CheckboxSwitch.theme.js +70 -0
  216. package/esm/Checkbox/index.js +6 -0
  217. package/esm/Checkbox/index.native.js +6 -0
  218. package/esm/Checkbox/native/Checkbox.js +276 -0
  219. package/esm/Checkbox/native/Checkbox.test.js +108 -0
  220. package/esm/Checkbox/native/Switch.js +166 -0
  221. package/esm/Checkbox/native/Switch.test.js +50 -0
  222. package/esm/Checkbox/native/index.js +6 -0
  223. package/esm/Chips/index.js +5 -0
  224. package/esm/Chips/index.native.js +5 -0
  225. package/esm/Chips/native/Chips.js +182 -0
  226. package/esm/Chips/native/Chips.test.js +108 -0
  227. package/esm/Chips/native/Counter.js +36 -0
  228. package/esm/Chips/native/index.js +5 -0
  229. package/esm/Datepicker/Datepicker.theme.js +12 -0
  230. package/esm/Datepicker/index.js +5 -0
  231. package/esm/Dialog/Dialog.theme.js +23 -0
  232. package/esm/Dialog/index.js +5 -0
  233. package/esm/Divider/Divider.theme.js +5 -0
  234. package/esm/Divider/index.js +5 -0
  235. package/esm/Divider/index.native.js +5 -0
  236. package/esm/Divider/native/Divider.js +33 -0
  237. package/esm/Divider/native/Divider.test.js +44 -0
  238. package/esm/Divider/native/index.js +5 -0
  239. package/esm/Drawer/Drawer.theme.js +15 -0
  240. package/esm/Drawer/index.js +5 -0
  241. package/esm/Dropdown/Dropdown.theme.js +185 -0
  242. package/esm/Dropdown/index.js +5 -0
  243. package/esm/Dropdown/index.native.js +5 -0
  244. package/esm/Dropdown/native/Backdrop.js +157 -0
  245. package/esm/Dropdown/native/Backdrop.test.js +22 -0
  246. package/esm/Dropdown/native/Dropdown.js +220 -0
  247. package/esm/Dropdown/native/Dropdown.test.js +76 -0
  248. package/esm/Dropdown/native/Options.android.js +81 -0
  249. package/esm/Dropdown/native/Options.ios.js +97 -0
  250. package/esm/Dropdown/native/index.js +5 -0
  251. package/esm/Feedback/Feedback.theme.js +9 -0
  252. package/esm/Feedback/index.js +5 -0
  253. package/esm/Grid/Grid.theme.js +23 -0
  254. package/esm/Grid/index.js +7 -0
  255. package/esm/Header/Header.theme.js +14 -0
  256. package/esm/Header/index.js +5 -0
  257. package/esm/Heading/Heading.theme.js +18 -0
  258. package/esm/Heading/index.js +5 -0
  259. package/esm/Icon/Icon.js +172 -0
  260. package/esm/Icon/Icon.theme.js +5 -0
  261. package/esm/Icon/index.js +5 -0
  262. package/esm/Icon/index.native.js +5 -0
  263. package/esm/Icon/native/Icon.test.js +69 -0
  264. package/esm/Icon/native/index.js +5 -0
  265. package/esm/Input/Input.theme.js +66 -0
  266. package/esm/Input/index.js +10 -0
  267. package/esm/Input/index.native.js +9 -0
  268. package/esm/Input/native/Email.js +37 -0
  269. package/esm/Input/native/Email.test.js +14 -0
  270. package/esm/Input/native/Helper.js +87 -0
  271. package/esm/Input/native/Input.js +365 -0
  272. package/esm/Input/native/Input.test.js +132 -0
  273. package/esm/Input/native/Number.js +29 -0
  274. package/esm/Input/native/Number.test.js +14 -0
  275. package/esm/Input/native/Password.js +166 -0
  276. package/esm/Input/native/Password.test.js +109 -0
  277. package/esm/Input/native/Tel.js +36 -0
  278. package/esm/Input/native/Tel.test.js +14 -0
  279. package/esm/Input/native/index.js +12 -0
  280. package/esm/List/List.theme.js +29 -0
  281. package/esm/List/index.js +7 -0
  282. package/esm/List/index.native.js +6 -0
  283. package/esm/List/native/List.js +43 -0
  284. package/esm/List/native/List.test.js +88 -0
  285. package/esm/List/native/ListItem.js +109 -0
  286. package/esm/List/native/index.js +6 -0
  287. package/esm/Menu/Menu.theme.js +43 -0
  288. package/esm/Menu/index.js +11 -0
  289. package/esm/Popover/Popover.theme.js +5 -0
  290. package/esm/Popover/index.js +5 -0
  291. package/esm/Progress/Progress.theme.js +18 -0
  292. package/esm/Progress/index.js +5 -0
  293. package/esm/Progress/index.native.js +5 -0
  294. package/esm/Progress/native/Progress.js +198 -0
  295. package/esm/Progress/native/Progress.test.js +134 -0
  296. package/esm/Progress/native/index.js +5 -0
  297. package/esm/RadioGroup/RadioGroup.theme.js +56 -0
  298. package/esm/RadioGroup/RadioGroupContext.js +6 -0
  299. package/esm/RadioGroup/index.js +7 -0
  300. package/esm/RadioGroup/index.native.js +7 -0
  301. package/esm/RadioGroup/native/Button/RadioButton.js +113 -0
  302. package/esm/RadioGroup/native/Button/RadioButton.test.js +70 -0
  303. package/esm/RadioGroup/native/Radio/Radio.js +171 -0
  304. package/esm/RadioGroup/native/Radio/Radio.test.js +74 -0
  305. package/esm/RadioGroup/native/RadioGroup.js +107 -0
  306. package/esm/RadioGroup/native/RadioGroup.test.js +56 -0
  307. package/esm/RadioGroup/native/index.js +8 -0
  308. package/esm/Rating/Rating.theme.js +11 -0
  309. package/esm/Rating/index.js +5 -0
  310. package/esm/Rating/index.native.js +5 -0
  311. package/esm/Rating/native/Rating.js +197 -0
  312. package/esm/Rating/native/Rating.test.js +91 -0
  313. package/esm/Rating/native/index.js +5 -0
  314. package/esm/Result/Result.theme.js +5 -0
  315. package/esm/Result/index.native.js +11 -0
  316. package/esm/Result/native/Attendances.js +54 -0
  317. package/esm/Result/native/Details.js +130 -0
  318. package/esm/Result/native/Rate.js +39 -0
  319. package/esm/Result/native/Result.js +98 -0
  320. package/esm/Result/native/Result.test.js +128 -0
  321. package/esm/Result/native/ResultButton.js +20 -0
  322. package/esm/Result/native/Tags.js +65 -0
  323. package/esm/Result/native/TinyTextIcon.js +29 -0
  324. package/esm/Result/native/index.js +5 -0
  325. package/esm/Skeleton/Skeleton.theme.js +22 -0
  326. package/esm/Skeleton/index.js +5 -0
  327. package/esm/Skeleton/index.native.js +5 -0
  328. package/esm/Skeleton/native/Skeleton.js +142 -0
  329. package/esm/Skeleton/native/Skeleton.test.js +40 -0
  330. package/esm/Skeleton/native/index.js +5 -0
  331. package/esm/Slider/Slider.theme.js +75 -0
  332. package/esm/Slider/index.js +5 -0
  333. package/esm/Slider/index.native.js +5 -0
  334. package/esm/Slider/native/Label.js +33 -0
  335. package/esm/Slider/native/Marker.js +84 -0
  336. package/esm/Slider/native/Slider.js +169 -0
  337. package/esm/Slider/native/Slider.test.js +105 -0
  338. package/esm/Slider/native/Step.js +27 -0
  339. package/esm/Slider/native/Tooltip.js +177 -0
  340. package/esm/Snackbar/Snackbar.theme.js +61 -0
  341. package/esm/Snackbar/index.js +5 -0
  342. package/esm/Snackbar/index.native.js +5 -0
  343. package/esm/Snackbar/native/Snackbar.js +246 -0
  344. package/esm/Snackbar/native/Snackbar.test.js +108 -0
  345. package/esm/Snackbar/native/SnackbarAnimationWrapper.js +114 -0
  346. package/esm/Snackbar/native/index.js +5 -0
  347. package/esm/Spinner/Spinner.theme.js +5 -0
  348. package/esm/Spinner/index.js +5 -0
  349. package/esm/Stepper/Stepper.theme.js +36 -0
  350. package/esm/Stepper/activeDot.js +5 -0
  351. package/esm/Stepper/index.js +6 -0
  352. package/esm/Stepper/index.native.js +6 -0
  353. package/esm/Stepper/native/Dots.js +75 -0
  354. package/esm/Stepper/native/Line.js +68 -0
  355. package/esm/Stepper/native/Step.js +33 -0
  356. package/esm/Stepper/native/Stepper.js +97 -0
  357. package/esm/Stepper/native/Stepper.test.js +64 -0
  358. package/esm/Stepper/native/index.js +6 -0
  359. package/esm/Tag/Tag.theme.js +38 -0
  360. package/esm/Tag/index.js +7 -0
  361. package/esm/Tag/index.native.js +7 -0
  362. package/esm/Tag/native/Informative.js +127 -0
  363. package/esm/Tag/native/Tag.js +121 -0
  364. package/esm/Tag/native/Tag.test.js +74 -0
  365. package/esm/Tag/native/index.js +5 -0
  366. package/esm/Text/Text.theme.js +73 -0
  367. package/esm/Text/index.js +35 -0
  368. package/esm/Text/index.native.js +35 -0
  369. package/esm/Text/native/Text.js +123 -0
  370. package/esm/Text/native/Text.test.js +150 -0
  371. package/esm/Text/native/index.js +34 -0
  372. package/esm/Text/sharedTextStyle.js +44 -0
  373. package/esm/Text/textStyle.android.js +27 -0
  374. package/esm/Text/textStyle.ios.js +9 -0
  375. package/esm/Text/textStyle.web.js +17 -0
  376. package/esm/TextArea/TextArea.theme.js +6 -0
  377. package/esm/TextArea/index.js +5 -0
  378. package/esm/TextArea/index.native.js +5 -0
  379. package/esm/TextArea/native/TextArea.js +64 -0
  380. package/esm/TextArea/native/TextArea.test.js +12 -0
  381. package/esm/TextArea/native/index.js +5 -0
  382. package/esm/Theme/Provider/Provider.js +75 -0
  383. package/esm/Theme/Provider/index.js +5 -0
  384. package/esm/Theme/Provider/index.native.js +5 -0
  385. package/esm/Theme/Provider/native/index.js +5 -0
  386. package/esm/Theme/Provider/web/FontLoader.js +21 -0
  387. package/esm/Theme/Provider/web/FontLoader.test.js +16 -0
  388. package/esm/Theme/Provider/web/GlobalStyle.js +18 -0
  389. package/esm/Theme/Provider/web/GlobalStyle.test.js +21 -0
  390. package/esm/Theme/Provider/web/ThemeProvider.js +50 -0
  391. package/esm/Theme/Provider/web/expectCssMatches.js +14 -0
  392. package/esm/Theme/Provider/web/index.js +6 -0
  393. package/esm/Theme/helpers/themeGenerator/index.js +5 -0
  394. package/esm/Theme/helpers/themeGenerator/themeGenerator.js +13 -0
  395. package/esm/Theme/helpers/themeGenerator/themeGenerator.test.js +20 -0
  396. package/esm/Theme/helpers/themeReader/base.test.js +73 -0
  397. package/esm/Theme/helpers/themeReader/index.js +26 -0
  398. package/esm/Theme/helpers/themeReader/native/native.test.js +38 -0
  399. package/esm/Theme/helpers/themeReader/web/web.test.js +32 -0
  400. package/esm/Theme/index.js +11 -0
  401. package/esm/Theme/index.native.js +10 -0
  402. package/esm/Theme/theme/index.js +5 -0
  403. package/esm/Theme/theme/theme.js +81 -0
  404. package/esm/hooks/index.js +3 -0
  405. package/esm/hooks/useCombinedRefs.js +20 -0
  406. package/esm/hooks/useKeyPress.js +26 -0
  407. package/esm/hooks/usePortal.js +39 -0
  408. package/esm/index.js +90 -0
  409. package/esm/index.native.js +58 -0
  410. package/esm/shared/HiddenInput.js +15 -0
  411. package/esm/shared/index.js +16 -0
  412. package/esm/shared/index.native.js +14 -0
  413. package/esm/shared/propTypes/charLength.js +16 -0
  414. package/esm/shared/propTypes/deprecated.js +14 -0
  415. package/esm/shared/propTypes/index.js +12 -0
  416. package/esm/shared/propTypes/limitChildren.js +15 -0
  417. package/esm/shared/propTypes/max.js +15 -0
  418. package/esm/shared/propTypes/typeof.js +17 -0
  419. package/package.json +2 -2
@@ -0,0 +1,21 @@
1
+ import { Fragment, jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import GoogleFontLoader from "react-google-font-loader";
4
+ import { withTheme } from "styled-components";
5
+ const FontLoader = ({
6
+ theme: {
7
+ yoga: {
8
+ baseFont: { family, weight }
9
+ }
10
+ }
11
+ }) => /* @__PURE__ */ jsx(Fragment, { children: typeof window !== "undefined" ? /* @__PURE__ */ jsx(GoogleFontLoader, { fonts: [{ font: family, weights: weight }] }) : /* @__PURE__ */ jsx(
12
+ "link",
13
+ {
14
+ rel: "stylesheet",
15
+ href: `https://fonts.googleapis.com/css?family=${family}:${weight.join()}`
16
+ }
17
+ ) });
18
+ var FontLoader_default = withTheme(FontLoader);
19
+ export {
20
+ FontLoader_default as default
21
+ };
@@ -0,0 +1,16 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { render } from "@testing-library/react";
4
+ import FontLoader from "./FontLoader";
5
+ import ThemeProvider from "./ThemeProvider";
6
+ describe("FontLoader component", () => {
7
+ it("Should create standard font link", () => {
8
+ render(
9
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(FontLoader, {}) })
10
+ );
11
+ const link = document.getElementsByTagName("link").item(0).outerHTML;
12
+ expect(link).toContain(
13
+ `<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rubik:300,400,500,700,900,300i,400i,500i,700i,900i">`
14
+ );
15
+ });
16
+ });
@@ -0,0 +1,18 @@
1
+ import { createGlobalStyle } from "styled-components";
2
+ const GlobalStyle = createGlobalStyle`
3
+ ${({
4
+ theme: {
5
+ yoga: {
6
+ baseFont: { family }
7
+ }
8
+ }
9
+ }) => `
10
+ body {
11
+ font-family: "${family}";
12
+ }
13
+ `}
14
+ `;
15
+ var GlobalStyle_default = GlobalStyle;
16
+ export {
17
+ GlobalStyle_default as default
18
+ };
@@ -0,0 +1,21 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { render } from "@testing-library/react";
4
+ import tokens from "@gympass/yoga-tokens";
5
+ import theme from "../../theme";
6
+ import GlobalStyle from "./GlobalStyle";
7
+ import ThemeProvider from "./ThemeProvider";
8
+ import expectCSSMatches from "./expectCssMatches";
9
+ const { baseFont } = theme(tokens);
10
+ describe("GlobalStyle component", () => {
11
+ it("Should use standard font in the body", () => {
12
+ render(
13
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(GlobalStyle, {}) })
14
+ );
15
+ expectCSSMatches(
16
+ `body {
17
+ font-family: "${baseFont.family}";
18
+ }`
19
+ );
20
+ });
21
+ });
@@ -0,0 +1,50 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { jsx, jsxs } from "react/jsx-runtime";
33
+ import React from "react";
34
+ import { node } from "prop-types";
35
+ import Provider from "../Provider";
36
+ import GlobalStyle from "./GlobalStyle";
37
+ const ThemeProvider = (_a) => {
38
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
39
+ return /* @__PURE__ */ jsxs(Provider, __spreadProps(__spreadValues({}, rest), { children: [
40
+ /* @__PURE__ */ jsx(GlobalStyle, {}),
41
+ children
42
+ ] }));
43
+ };
44
+ ThemeProvider.propTypes = {
45
+ children: node.isRequired
46
+ };
47
+ var ThemeProvider_default = ThemeProvider;
48
+ export {
49
+ ThemeProvider_default as default
50
+ };
@@ -0,0 +1,14 @@
1
+ const normalizeCSS = (rule) => rule.join("\n").replace(/(?:\r\n|\r|\n)/g, "").replace(/ {\s+/g, "{").replace(/\s+ }/g, "}").replace(/,\s+/g, ",").replace(/;\s+/g, ";").replace(/:\s+/g, ":").replace(/:\s+;/g, ":;");
2
+ const getCSS = (scope) => normalizeCSS(
3
+ Array.from(scope.querySelectorAll("style")).map((tag) => tag.innerHTML)
4
+ );
5
+ const expectCSSMatches = (expectation) => {
6
+ const _expectation = normalizeCSS(expectation.split("\n"));
7
+ const css = getCSS(document);
8
+ expect(css).toContain(_expectation);
9
+ return css;
10
+ };
11
+ var expectCssMatches_default = expectCSSMatches;
12
+ export {
13
+ expectCssMatches_default as default
14
+ };
@@ -0,0 +1,6 @@
1
+ import ThemeProvider from "./ThemeProvider";
2
+ import FontLoader from "./FontLoader";
3
+ export {
4
+ FontLoader,
5
+ ThemeProvider
6
+ };
@@ -0,0 +1,5 @@
1
+ import createTheme from "./themeGenerator";
2
+ var themeGenerator_default = createTheme;
3
+ export {
4
+ themeGenerator_default as default
5
+ };
@@ -0,0 +1,13 @@
1
+ function createTheme(themeVars) {
2
+ if (typeof themeVars !== "function")
3
+ throw new TypeError(
4
+ `Invalid param 'themeVars', expected 'function', received '${typeof themeVars}'.`
5
+ );
6
+ const themeBuilder = themeVars.bind({});
7
+ themeBuilder.isFromThemeBuilder = true;
8
+ return themeBuilder;
9
+ }
10
+ var themeGenerator_default = createTheme;
11
+ export {
12
+ themeGenerator_default as default
13
+ };
@@ -0,0 +1,20 @@
1
+ import * as tokens from "@gympass/yoga-tokens";
2
+ import createTheme from "./index";
3
+ describe("given theme generator:createTheme()", () => {
4
+ it("should generate a callable theme which overrides only received tokens", () => {
5
+ const generatedTheme = createTheme((yogaTokens) => ({
6
+ colors: {
7
+ primary: yogaTokens.colors.stamina
8
+ }
9
+ }));
10
+ expect(typeof generatedTheme === "function");
11
+ expect(generatedTheme(tokens.default)).toEqual({
12
+ colors: {
13
+ primary: "#231B22"
14
+ }
15
+ });
16
+ });
17
+ it("should not accept invalid parameters", () => {
18
+ expect(() => createTheme(true)).toThrow(TypeError);
19
+ });
20
+ });
@@ -0,0 +1,73 @@
1
+ import ProxyPolyfillBuilder from "proxy-polyfill/src/proxy";
2
+ import theme from "./index";
3
+ describe("themeReader - base specs", () => {
4
+ beforeAll(() => {
5
+ global.Proxy = ProxyPolyfillBuilder();
6
+ });
7
+ it("should return a function", () => {
8
+ expect(theme).toBeInstanceOf(Function);
9
+ });
10
+ it("should return undefined if key does not exist on the theme", () => {
11
+ expect(typeof theme.colors.randomValue).toBe("undefined");
12
+ expect(typeof theme.randomValue).toBe("undefined");
13
+ });
14
+ it("should have theme.yoga as the base path", () => {
15
+ const yoga = "wow cool theme, such tokens";
16
+ const obj = { theme: { yoga } };
17
+ expect(theme(obj)).toBe(yoga);
18
+ });
19
+ it("should be able to get fields with keys", () => {
20
+ const value = "deep!";
21
+ const obj = {
22
+ theme: {
23
+ yoga: {
24
+ breakpoints: {
25
+ xs: {
26
+ margin: value
27
+ }
28
+ }
29
+ }
30
+ }
31
+ };
32
+ expect(theme.breakpoints.xs.margin(obj)).toBe(value);
33
+ });
34
+ it("should be able to get fields with array position", () => {
35
+ const array = ["nice", "array", "bro"];
36
+ const obj = {
37
+ theme: {
38
+ yoga: {
39
+ borders: array
40
+ }
41
+ }
42
+ };
43
+ array.forEach((val, i) => {
44
+ expect(theme.borders[i](obj)).toBe(val);
45
+ });
46
+ });
47
+ it("should be destructible", () => {
48
+ const baseFontSizeValue = "nice size";
49
+ const primaryValue = "very primary";
50
+ const lgValue = "much large";
51
+ const obj = {
52
+ theme: {
53
+ yoga: {
54
+ baseFontSize: baseFontSizeValue,
55
+ colors: {
56
+ primary: primaryValue
57
+ },
58
+ breakpoints: {
59
+ lg: lgValue
60
+ }
61
+ }
62
+ }
63
+ };
64
+ const {
65
+ baseFontSize,
66
+ colors: { primary },
67
+ breakpoints
68
+ } = theme;
69
+ expect(primary(obj)).toBe(primaryValue);
70
+ expect(breakpoints.lg(obj)).toBe(lgValue);
71
+ expect(baseFontSize(obj)).toBe(baseFontSizeValue);
72
+ });
73
+ });
@@ -0,0 +1,26 @@
1
+ import "proxy-polyfill";
2
+ import tokens from "@gympass/yoga-tokens";
3
+ import theme from "../../theme";
4
+ const skeleton = theme(tokens);
5
+ const CACHE_PLACEHOLDER = null;
6
+ const withoutKey = (fn, key) => !{}.hasOwnProperty.call(fn, key) || key === "prototype";
7
+ const createFakeObj = (paths, object) => {
8
+ const fn = (props) => paths.reduce((acc, path) => acc[path], props);
9
+ Object.keys(object).forEach((key) => {
10
+ fn[key] = CACHE_PLACEHOLDER;
11
+ });
12
+ return new Proxy(fn, {
13
+ get(target, key) {
14
+ if (withoutKey(fn, key))
15
+ return target[key];
16
+ if (fn[key])
17
+ return fn[key];
18
+ fn[key] = createFakeObj([...paths, key], object[key]);
19
+ return fn[key];
20
+ }
21
+ });
22
+ };
23
+ var themeReader_default = createFakeObj(["theme", "yoga"], skeleton);
24
+ export {
25
+ themeReader_default as default
26
+ };
@@ -0,0 +1,38 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import styled, { css } from "styled-components";
4
+ import { render } from "@testing-library/react-native";
5
+ import ThemeProvider, { theme } from "../../../index.native";
6
+ import "../base.test";
7
+ describe("themeReader - web specs", () => {
8
+ it("should render", () => {
9
+ const Component = styled.View`
10
+ border: ${theme.borders.small}px solid;
11
+ `;
12
+ const { toJSON } = render(
13
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(Component, { testID: "component", children: "Teste" }) })
14
+ );
15
+ expect(toJSON().props.style).toEqual([
16
+ { borderWidth: 1, borderColor: "black", borderStyle: "solid" }
17
+ ]);
18
+ });
19
+ it("should render with conditional", () => {
20
+ const Component = styled.View`
21
+ border: ${({ borders }) => borders ? css`
22
+ ${theme.borders.small}px solid
23
+ ` : "none"};
24
+ `;
25
+ const { toJSON, rerender } = render(
26
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(Component, { borders: false, testID: "component", children: "Teste" }) })
27
+ );
28
+ expect(toJSON().props.style).toEqual([
29
+ { borderWidth: 0, borderColor: "black", borderStyle: "solid" }
30
+ ]);
31
+ rerender(
32
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(Component, { borders: true, "data-testid": "component" }) })
33
+ );
34
+ expect(toJSON().props.style).toEqual([
35
+ { borderWidth: 1, borderColor: "black", borderStyle: "solid" }
36
+ ]);
37
+ });
38
+ });
@@ -0,0 +1,32 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import styled, { css } from "styled-components";
4
+ import { render } from "@testing-library/react";
5
+ import ThemeProvider, { theme } from "../../../index";
6
+ import "../base.test";
7
+ describe("themeReader - web specs", () => {
8
+ it("should render", () => {
9
+ const Component = styled.div`
10
+ border: ${theme.borders.small}px solid;
11
+ `;
12
+ const { getByTestId } = render(
13
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(Component, { "data-testid": "component" }) })
14
+ );
15
+ expect(getByTestId("component")).toHaveStyleRule("border", "1px solid");
16
+ });
17
+ it("should render with conditional", () => {
18
+ const Component = styled.div`
19
+ border: ${({ borders }) => borders ? css`
20
+ ${theme.borders.small}px solid
21
+ ` : "none"};
22
+ `;
23
+ const { getByTestId, rerender } = render(
24
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(Component, { borders: false, "data-testid": "component" }) })
25
+ );
26
+ expect(getByTestId("component")).toHaveStyleRule("border", "none");
27
+ rerender(
28
+ /* @__PURE__ */ jsx(ThemeProvider, { children: /* @__PURE__ */ jsx(Component, { borders: true, "data-testid": "component" }) })
29
+ );
30
+ expect(getByTestId("component")).toHaveStyleRule("border", "1px solid");
31
+ });
32
+ });
@@ -0,0 +1,11 @@
1
+ import { ThemeProvider, FontLoader } from "./Provider";
2
+ import yogaTheme from "./theme";
3
+ import theme from "./helpers/themeReader";
4
+ import createTheme from "./helpers/themeGenerator";
5
+ export {
6
+ FontLoader,
7
+ createTheme,
8
+ ThemeProvider as default,
9
+ theme,
10
+ yogaTheme
11
+ };
@@ -0,0 +1,10 @@
1
+ import ThemeProvider from "./Provider";
2
+ import yogaTheme from "./theme";
3
+ import theme from "./helpers/themeReader";
4
+ import createTheme from "./helpers/themeGenerator";
5
+ export {
6
+ createTheme,
7
+ ThemeProvider as default,
8
+ theme,
9
+ yogaTheme
10
+ };
@@ -0,0 +1,5 @@
1
+ import theme from "./theme";
2
+ var theme_default = theme;
3
+ export {
4
+ theme_default as default
5
+ };
@@ -0,0 +1,81 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { merge } from "@gympass/yoga-common";
21
+ import * as componentThemes from "../../**/*.theme.js";
22
+ const getComponentThemes = (tokens) => {
23
+ const { colors, baseFont, baseFontSize } = tokens;
24
+ const components = Object.entries(componentThemes).reduce(
25
+ (componentsStyles, [names, themed]) => {
26
+ const [, name] = names.toLowerCase().split("$");
27
+ return __spreadProps(__spreadValues({}, componentsStyles), {
28
+ [name]: themed(__spreadProps(__spreadValues({}, tokens), {
29
+ colors,
30
+ baseFont,
31
+ baseFontSize
32
+ }))
33
+ });
34
+ },
35
+ {}
36
+ );
37
+ return { components };
38
+ };
39
+ const theme = (tokens) => {
40
+ const baseFont = tokens.fonts.rubik;
41
+ const baseFontSize = tokens.fontSizes.medium;
42
+ const colors = __spreadProps(__spreadValues({}, tokens.colors), {
43
+ primary: tokens.colors.vibin,
44
+ secondary: tokens.colors.stamina,
45
+ feedback: {
46
+ success: [tokens.colors.success, tokens.colors.hope],
47
+ informative: [tokens.colors.neutral, tokens.colors.relax],
48
+ attention: [tokens.colors.attention, tokens.colors.verve],
49
+ neutral: [tokens.colors.light, tokens.colors.medium]
50
+ },
51
+ text: {
52
+ primary: tokens.colors.stamina,
53
+ secondary: tokens.colors.deep,
54
+ disabled: tokens.colors.light
55
+ },
56
+ elements: {
57
+ selectionAndIcons: tokens.colors.medium,
58
+ lineAndBorders: tokens.colors.light,
59
+ backgroundAndDisabled: tokens.colors.clear
60
+ }
61
+ });
62
+ [colors.feedback.success.light, colors.feedback.success.dark] = colors.feedback.success;
63
+ [colors.feedback.informative.light, colors.feedback.informative.dark] = colors.feedback.informative;
64
+ [colors.feedback.attention.light, colors.feedback.attention.dark] = colors.feedback.attention;
65
+ [colors.feedback.neutral.light, colors.feedback.neutral.dark] = colors.feedback.neutral;
66
+ return __spreadProps(__spreadValues({}, tokens), {
67
+ colors,
68
+ baseFont,
69
+ baseFontSize
70
+ });
71
+ };
72
+ const composeTheme = (tokens, customTheming = {}) => {
73
+ const baseTheme = theme(tokens);
74
+ const customTheme = merge(baseTheme, customTheming);
75
+ const componentTheming = getComponentThemes(customTheme);
76
+ return merge(customTheme, componentTheming);
77
+ };
78
+ var theme_default = composeTheme;
79
+ export {
80
+ theme_default as default
81
+ };
@@ -0,0 +1,3 @@
1
+ export * from "./usePortal";
2
+ export * from "./useKeyPress";
3
+ export * from "./useCombinedRefs";
@@ -0,0 +1,20 @@
1
+ import { useEffect, useRef } from "react";
2
+ const useCombinedRefs = (...refs) => {
3
+ const targetRef = useRef(null);
4
+ useEffect(() => {
5
+ for (let i = 0; i < refs.length; i++) {
6
+ const ref = refs[i];
7
+ if (!ref)
8
+ return;
9
+ if (typeof ref === "function") {
10
+ ref(targetRef.current);
11
+ } else {
12
+ ref.current = targetRef.current;
13
+ }
14
+ }
15
+ }, [refs]);
16
+ return targetRef;
17
+ };
18
+ export {
19
+ useCombinedRefs
20
+ };
@@ -0,0 +1,26 @@
1
+ import { useEffect, useState } from "react";
2
+ const useKeyPress = (targetKey) => {
3
+ const [keyPressed, setKeyPressed] = useState(false);
4
+ useEffect(() => {
5
+ function downHandler({ key }) {
6
+ if (key === targetKey) {
7
+ setKeyPressed(true);
8
+ }
9
+ }
10
+ function upHandler({ key }) {
11
+ if (key === targetKey) {
12
+ setKeyPressed(false);
13
+ }
14
+ }
15
+ window.addEventListener("keydown", downHandler);
16
+ window.addEventListener("keyup", upHandler);
17
+ return () => {
18
+ window.removeEventListener("keydown", downHandler);
19
+ window.removeEventListener("keyup", upHandler);
20
+ };
21
+ }, [targetKey]);
22
+ return keyPressed;
23
+ };
24
+ export {
25
+ useKeyPress
26
+ };
@@ -0,0 +1,39 @@
1
+ import { useRef, useEffect } from "react";
2
+ const createRootElement = (id) => {
3
+ const rootContainer = document.createElement("div");
4
+ rootContainer.setAttribute("id", id);
5
+ return rootContainer;
6
+ };
7
+ const addRootElement = (rootElement) => {
8
+ document.body.insertBefore(
9
+ rootElement,
10
+ document.body.lastElementChild.nextElementSibling
11
+ );
12
+ };
13
+ const usePortal = (id) => {
14
+ const rootElementRef = useRef(null);
15
+ useEffect(() => {
16
+ const existingParent = document.getElementById(id);
17
+ const parentElem = existingParent || createRootElement(id);
18
+ if (!existingParent) {
19
+ addRootElement(parentElem);
20
+ }
21
+ parentElem.appendChild(rootElementRef.current);
22
+ return function removeElement() {
23
+ rootElementRef.current.remove();
24
+ if (!parentElem.childElementCount) {
25
+ parentElem.remove();
26
+ }
27
+ };
28
+ }, [id]);
29
+ const getRootElemement = () => {
30
+ if (!rootElementRef.current) {
31
+ rootElementRef.current = document.createElement("div");
32
+ }
33
+ return rootElementRef.current;
34
+ };
35
+ return getRootElemement();
36
+ };
37
+ export {
38
+ usePortal
39
+ };
package/esm/index.js ADDED
@@ -0,0 +1,90 @@
1
+ import ThemeProvider, {
2
+ FontLoader,
3
+ yogaTheme,
4
+ theme,
5
+ createTheme
6
+ } from "./Theme";
7
+ import Accordion from "./Accordion";
8
+ import Button from "./Button";
9
+ import List from "./List";
10
+ import Checkbox from "./Checkbox";
11
+ import Slider from "./Slider";
12
+ import RadioGroup from "./RadioGroup";
13
+ import { Card, PlanCard, EventCard } from "./Card";
14
+ import Stepper from "./Stepper";
15
+ import { Container, Row, Col, Hide } from "./Grid";
16
+ import Text from "./Text";
17
+ import Rating from "./Rating";
18
+ import Tag from "./Tag";
19
+ import Input from "./Input";
20
+ import Progress from "./Progress";
21
+ import Dropdown from "./Dropdown";
22
+ import TextArea from "./TextArea";
23
+ import AutoComplete from "./AutoComplete";
24
+ import Icon from "./Icon";
25
+ import Chips from "./Chips";
26
+ import Box from "./Box";
27
+ import Snackbar from "./Snackbar";
28
+ import Avatar from "./Avatar";
29
+ import BottomSheet from "./BottomSheet";
30
+ import Dialog from "./Dialog";
31
+ import Divider from "./Divider";
32
+ import Header from "./Header";
33
+ import Menu from "./Menu";
34
+ import Banner from "./Banner";
35
+ import Heading from "./Heading";
36
+ import Feedback from "./Feedback";
37
+ import Datepicker from "./Datepicker";
38
+ import Drawer from "./Drawer";
39
+ import Skeleton from "./Skeleton";
40
+ import ActionRequirement from "./ActionRequirement";
41
+ import Popover from "./Popover";
42
+ import Spinner from "./Spinner";
43
+ export {
44
+ Accordion,
45
+ ActionRequirement,
46
+ AutoComplete,
47
+ Avatar,
48
+ Banner,
49
+ BottomSheet,
50
+ Box,
51
+ Button,
52
+ Card,
53
+ Checkbox,
54
+ Chips,
55
+ Col,
56
+ Container,
57
+ Datepicker,
58
+ Dialog,
59
+ Divider,
60
+ Drawer,
61
+ Dropdown,
62
+ EventCard,
63
+ Feedback,
64
+ FontLoader,
65
+ Header,
66
+ Heading,
67
+ Hide,
68
+ Icon,
69
+ Input,
70
+ List,
71
+ Menu,
72
+ PlanCard,
73
+ Popover,
74
+ Progress,
75
+ RadioGroup,
76
+ Rating,
77
+ Row,
78
+ Skeleton,
79
+ Slider,
80
+ Snackbar,
81
+ Spinner,
82
+ Stepper,
83
+ Tag,
84
+ Text,
85
+ TextArea,
86
+ ThemeProvider,
87
+ createTheme,
88
+ theme,
89
+ yogaTheme
90
+ };