@gympass/yoga 7.36.0 → 7.37.2

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 (329) hide show
  1. package/cjs/AutoComplete/web/AutoComplete.js +5 -3
  2. package/cjs/AutoComplete/web/AutoComplete.test.js +152 -0
  3. package/cjs/Avatar/native/Avatar.test.js +1 -0
  4. package/cjs/Avatar/web/Avatar.test.js +72 -0
  5. package/cjs/Banner/native/Banner.js +1 -1
  6. package/cjs/Banner/native/Banner.test.js +1 -0
  7. package/cjs/Banner/web/Banner.js +4 -3
  8. package/cjs/Banner/web/Banner.test.js +121 -0
  9. package/cjs/BottomSheet/web/BottomSheet.test.js +46 -0
  10. package/cjs/Box/native/Box.test.js +1 -0
  11. package/cjs/Box/web/Box.test.js +23 -0
  12. package/cjs/Button/native/Button.test.js +1 -0
  13. package/cjs/Button/web/Button.test.js +778 -0
  14. package/cjs/Card/native/Card/Card.js +1 -1
  15. package/cjs/Card/native/Card/Card.test.js +1 -0
  16. package/cjs/Card/native/EventCard/EventCard.test.js +1 -0
  17. package/cjs/Card/native/GymCard/CheckIn/CheckIn.test.js +1 -0
  18. package/cjs/Card/native/PlanCard/PlanCard.test.js +1 -0
  19. package/cjs/Card/web/Card/Card.js +7 -3
  20. package/cjs/Card/web/Card/Card.test.js +22 -0
  21. package/cjs/Card/web/EventCard/EventCard.test.js +35 -0
  22. package/cjs/Card/web/PlanCard/PlanCard.test.js +95 -0
  23. package/cjs/Checkbox/native/Checkbox.test.js +1 -0
  24. package/cjs/Checkbox/native/Switch.test.js +1 -0
  25. package/cjs/Checkbox/web/Checkbox.test.js +161 -0
  26. package/cjs/Checkbox/web/Switch.test.js +65 -0
  27. package/cjs/Chips/native/Chips.js +1 -1
  28. package/cjs/Chips/native/Chips.test.js +1 -0
  29. package/cjs/Chips/web/Chips.js +4 -3
  30. package/cjs/Chips/web/Chips.test.js +138 -0
  31. package/cjs/Dialog/web/Dialog.test.js +70 -0
  32. package/cjs/Divider/native/Divider.js +1 -1
  33. package/cjs/Divider/native/Divider.test.js +1 -0
  34. package/cjs/Divider/web/Divider.js +5 -4
  35. package/cjs/Divider/web/Divider.test.js +36 -0
  36. package/cjs/Dropdown/native/Backdrop.test.js +1 -0
  37. package/cjs/Dropdown/native/Dropdown.js +1 -1
  38. package/cjs/Dropdown/native/Dropdown.test.js +1 -0
  39. package/cjs/Dropdown/web/Dropdown.js +6 -3
  40. package/cjs/Dropdown/web/Dropdown.test.js +102 -0
  41. package/cjs/Feedback/web/Feedback.test.js +89 -0
  42. package/cjs/Grid/web/Col.test.js +56 -0
  43. package/cjs/Grid/web/Container.test.js +22 -0
  44. package/cjs/Grid/web/Hide.test.js +39 -0
  45. package/cjs/Grid/web/Row.test.js +22 -0
  46. package/cjs/Header/web/Header.test.js +44 -0
  47. package/cjs/Heading/web/Heading.test.js +55 -0
  48. package/cjs/Icon/native/Icon.test.js +1 -0
  49. package/cjs/Icon/web/Icon.test.js +53 -0
  50. package/cjs/Input/native/Email.js +1 -1
  51. package/cjs/Input/native/Email.test.js +1 -0
  52. package/cjs/Input/native/Helper.js +1 -1
  53. package/cjs/Input/native/Input.js +1 -1
  54. package/cjs/Input/native/Input.test.js +1 -0
  55. package/cjs/Input/native/Number.js +1 -1
  56. package/cjs/Input/native/Number.test.js +1 -0
  57. package/cjs/Input/native/Password.js +1 -1
  58. package/cjs/Input/native/Password.test.js +1 -0
  59. package/cjs/Input/native/Tel.js +1 -1
  60. package/cjs/Input/native/Tel.test.js +1 -0
  61. package/cjs/Input/web/Email.js +5 -3
  62. package/cjs/Input/web/Email.test.js +20 -0
  63. package/cjs/Input/web/Field.js +1 -1
  64. package/cjs/Input/web/Input.test.js +161 -0
  65. package/cjs/Input/web/Legend.js +7 -3
  66. package/cjs/Input/web/Number.js +6 -4
  67. package/cjs/Input/web/Number.test.js +20 -0
  68. package/cjs/Input/web/Password.test.js +103 -0
  69. package/cjs/Input/web/Tel.js +5 -3
  70. package/cjs/Input/web/Tel.test.js +20 -0
  71. package/cjs/List/native/List.js +1 -1
  72. package/cjs/List/native/List.test.js +1 -0
  73. package/cjs/List/web/List.js +4 -3
  74. package/cjs/List/web/List.test.js +69 -0
  75. package/cjs/Progress/native/Progress.js +1 -1
  76. package/cjs/Progress/native/Progress.test.js +1 -0
  77. package/cjs/Progress/web/Progress.js +4 -3
  78. package/cjs/Progress/web/Progress.test.js +229 -0
  79. package/cjs/RadioGroup/native/Button/RadioButton.js +1 -1
  80. package/cjs/RadioGroup/native/Button/RadioButton.test.js +1 -0
  81. package/cjs/RadioGroup/native/Radio/Radio.js +1 -1
  82. package/cjs/RadioGroup/native/Radio/Radio.test.js +1 -0
  83. package/cjs/RadioGroup/native/RadioGroup.test.js +1 -0
  84. package/cjs/RadioGroup/web/Button/RadioButton.js +4 -3
  85. package/cjs/RadioGroup/web/Button/RadioButton.test.js +132 -0
  86. package/cjs/RadioGroup/web/Radio/Radio.js +4 -3
  87. package/cjs/RadioGroup/web/Radio/Radio.test.js +119 -0
  88. package/cjs/RadioGroup/web/RadioGroup.test.js +93 -0
  89. package/cjs/Rating/native/Rating.test.js +1 -0
  90. package/cjs/Rating/web/Rating.test.js +201 -0
  91. package/cjs/Result/native/Result.test.js +1 -0
  92. package/cjs/Slider/native/Slider.test.js +1 -0
  93. package/cjs/Slider/web/Slider.test.js +95 -0
  94. package/cjs/Snackbar/native/Snackbar.test.js +1 -0
  95. package/cjs/Snackbar/web/Snackbar.js +5 -11
  96. package/cjs/Snackbar/web/Snackbar.test.js +135 -0
  97. package/cjs/Stepper/native/Stepper.test.js +1 -0
  98. package/cjs/Stepper/web/Stepper.test.js +75 -0
  99. package/cjs/Tag/native/Tag.test.js +1 -0
  100. package/cjs/Tag/web/Tag.test.js +87 -0
  101. package/cjs/Text/native/Text.test.js +1 -0
  102. package/cjs/Text/sharedTextStyle.js +1 -1
  103. package/cjs/Text/textStyle.android.js +1 -1
  104. package/cjs/Text/textStyle.ios.js +1 -1
  105. package/cjs/Text/textStyle.web.js +1 -1
  106. package/cjs/Text/web/Text.test.js +157 -0
  107. package/cjs/TextArea/native/TextArea.test.js +1 -0
  108. package/cjs/TextArea/web/TextArea.test.js +18 -0
  109. package/cjs/Theme/Provider/web/FontLoader.test.js +19 -0
  110. package/cjs/Theme/Provider/web/GlobalStyle.test.js +27 -0
  111. package/cjs/Theme/helpers/themeReader/native/native.test.js +1 -0
  112. package/cjs/Theme/helpers/themeReader/web/web.test.js +54 -0
  113. package/esm/AutoComplete/web/AutoComplete.js +5 -4
  114. package/esm/AutoComplete/web/AutoComplete.test.js +135 -0
  115. package/esm/Avatar/index.native.js +4 -0
  116. package/esm/Avatar/native/Avatar.js +96 -0
  117. package/esm/Avatar/native/Avatar.test.js +46 -0
  118. package/esm/Avatar/native/AvatarCircle.js +24 -0
  119. package/esm/Avatar/web/Avatar.test.js +63 -0
  120. package/esm/Banner/index.native.js +2 -0
  121. package/esm/Banner/native/Banner.js +128 -0
  122. package/esm/Banner/native/Banner.test.js +103 -0
  123. package/esm/Banner/native/index.js +2 -0
  124. package/esm/Banner/web/Banner.js +4 -5
  125. package/esm/Banner/web/Banner.test.js +109 -0
  126. package/esm/BottomSheet/web/BottomSheet.test.js +33 -0
  127. package/esm/Box/index.native.js +2 -0
  128. package/esm/Box/native/Box.js +4 -0
  129. package/esm/Box/native/Box.test.js +16 -0
  130. package/esm/Box/native/index.js +2 -0
  131. package/esm/Box/web/Box.test.js +16 -0
  132. package/esm/Button/index.native.js +8 -0
  133. package/esm/Button/native/Button.js +110 -0
  134. package/esm/Button/native/Button.test.js +475 -0
  135. package/esm/Button/native/Icon.js +82 -0
  136. package/esm/Button/native/Link.js +35 -0
  137. package/esm/Button/native/Text.js +74 -0
  138. package/esm/Button/native/withTouchable.js +63 -0
  139. package/esm/Button/web/Button.test.js +764 -0
  140. package/esm/Card/index.native.js +2 -0
  141. package/esm/Card/native/Card/Actions.js +12 -0
  142. package/esm/Card/native/Card/Card.js +92 -0
  143. package/esm/Card/native/Card/Card.test.js +15 -0
  144. package/esm/Card/native/Card/Content.js +8 -0
  145. package/esm/Card/native/Card/Header.js +8 -0
  146. package/esm/Card/native/Card/index.js +8 -0
  147. package/esm/Card/native/EventCard/EventCard.js +169 -0
  148. package/esm/Card/native/EventCard/EventCard.test.js +65 -0
  149. package/esm/Card/native/EventCard/index.js +2 -0
  150. package/esm/Card/native/GymCard/CheckIn/Avatar.js +17 -0
  151. package/esm/Card/native/GymCard/CheckIn/CheckIn.js +66 -0
  152. package/esm/Card/native/GymCard/CheckIn/CheckIn.test.js +39 -0
  153. package/esm/Card/native/GymCard/CheckIn/Content.js +11 -0
  154. package/esm/Card/native/GymCard/CheckIn/Header.js +11 -0
  155. package/esm/Card/native/GymCard/CheckIn/index.js +2 -0
  156. package/esm/Card/native/GymCard/index.js +5 -0
  157. package/esm/Card/native/PlanCard/Actions.js +24 -0
  158. package/esm/Card/native/PlanCard/Content.js +82 -0
  159. package/esm/Card/native/PlanCard/List.js +73 -0
  160. package/esm/Card/native/PlanCard/PlanCard.js +54 -0
  161. package/esm/Card/native/PlanCard/PlanCard.test.js +84 -0
  162. package/esm/Card/native/PlanCard/Subtitle.js +15 -0
  163. package/esm/Card/native/PlanCard/Tag.js +33 -0
  164. package/esm/Card/native/PlanCard/index.js +15 -0
  165. package/esm/Card/native/index.js +5 -0
  166. package/esm/Card/web/Card/Card.js +7 -5
  167. package/esm/Card/web/Card/Card.test.js +14 -0
  168. package/esm/Card/web/EventCard/EventCard.test.js +27 -0
  169. package/esm/Card/web/PlanCard/PlanCard.test.js +85 -0
  170. package/esm/Checkbox/index.native.js +3 -0
  171. package/esm/Checkbox/native/Checkbox.js +179 -0
  172. package/esm/Checkbox/native/Checkbox.test.js +115 -0
  173. package/esm/Checkbox/native/Switch.js +115 -0
  174. package/esm/Checkbox/native/Switch.test.js +54 -0
  175. package/esm/Checkbox/native/index.js +3 -0
  176. package/esm/Checkbox/web/Checkbox.test.js +153 -0
  177. package/esm/Checkbox/web/Switch.test.js +56 -0
  178. package/esm/Chips/index.native.js +2 -0
  179. package/esm/Chips/native/Chips.js +104 -0
  180. package/esm/Chips/native/Chips.test.js +134 -0
  181. package/esm/Chips/native/Counter.js +20 -0
  182. package/esm/Chips/native/index.js +2 -0
  183. package/esm/Chips/web/Chips.js +4 -5
  184. package/esm/Chips/web/Chips.test.js +128 -0
  185. package/esm/Dialog/web/Dialog.test.js +54 -0
  186. package/esm/Divider/index.native.js +2 -0
  187. package/esm/Divider/native/Divider.js +29 -0
  188. package/esm/Divider/native/Divider.test.js +29 -0
  189. package/esm/Divider/native/index.js +2 -0
  190. package/esm/Divider/web/Divider.js +5 -6
  191. package/esm/Divider/web/Divider.test.js +29 -0
  192. package/esm/Dropdown/index.native.js +2 -0
  193. package/esm/Dropdown/native/Backdrop.js +93 -0
  194. package/esm/Dropdown/native/Backdrop.test.js +26 -0
  195. package/esm/Dropdown/native/Dropdown.js +142 -0
  196. package/esm/Dropdown/native/Dropdown.test.js +78 -0
  197. package/esm/Dropdown/native/Options.android.js +66 -0
  198. package/esm/Dropdown/native/Options.ios.js +71 -0
  199. package/esm/Dropdown/native/index.js +2 -0
  200. package/esm/Dropdown/web/Dropdown.js +5 -4
  201. package/esm/Dropdown/web/Dropdown.test.js +93 -0
  202. package/esm/Feedback/web/Feedback.test.js +83 -0
  203. package/esm/Grid/web/Col.test.js +48 -0
  204. package/esm/Grid/web/Container.test.js +14 -0
  205. package/esm/Grid/web/Hide.test.js +31 -0
  206. package/esm/Grid/web/Row.test.js +14 -0
  207. package/esm/Header/web/Header.test.js +34 -0
  208. package/esm/Heading/web/Heading.test.js +45 -0
  209. package/esm/Icon/index.native.js +2 -0
  210. package/esm/Icon/native/Icon.test.js +47 -0
  211. package/esm/Icon/native/index.js +2 -0
  212. package/esm/Icon/web/Icon.test.js +47 -0
  213. package/esm/Input/index.native.js +6 -0
  214. package/esm/Input/native/Email.js +15 -0
  215. package/esm/Input/native/Email.test.js +13 -0
  216. package/esm/Input/native/Helper.js +62 -0
  217. package/esm/Input/native/Input.js +234 -0
  218. package/esm/Input/native/Input.test.js +181 -0
  219. package/esm/Input/native/Number.js +12 -0
  220. package/esm/Input/native/Number.test.js +13 -0
  221. package/esm/Input/native/Password.js +112 -0
  222. package/esm/Input/native/Password.test.js +125 -0
  223. package/esm/Input/native/Tel.js +14 -0
  224. package/esm/Input/native/Tel.test.js +13 -0
  225. package/esm/Input/native/index.js +6 -0
  226. package/esm/Input/web/Email.js +5 -5
  227. package/esm/Input/web/Email.test.js +13 -0
  228. package/esm/Input/web/Field.js +1 -1
  229. package/esm/Input/web/Input.test.js +145 -0
  230. package/esm/Input/web/Legend.js +7 -5
  231. package/esm/Input/web/Number.js +6 -6
  232. package/esm/Input/web/Number.test.js +13 -0
  233. package/esm/Input/web/Password.test.js +90 -0
  234. package/esm/Input/web/Tel.js +5 -5
  235. package/esm/Input/web/Tel.test.js +13 -0
  236. package/esm/List/index.native.js +3 -0
  237. package/esm/List/native/List.js +22 -0
  238. package/esm/List/native/List.test.js +106 -0
  239. package/esm/List/native/ListItem.js +51 -0
  240. package/esm/List/native/index.js +3 -0
  241. package/esm/List/web/List.js +4 -4
  242. package/esm/List/web/List.test.js +62 -0
  243. package/esm/Progress/index.native.js +2 -0
  244. package/esm/Progress/native/Progress.js +103 -0
  245. package/esm/Progress/native/Progress.test.js +222 -0
  246. package/esm/Progress/native/index.js +2 -0
  247. package/esm/Progress/web/Progress.js +4 -4
  248. package/esm/Progress/web/Progress.test.js +222 -0
  249. package/esm/RadioGroup/index.native.js +4 -0
  250. package/esm/RadioGroup/native/Button/RadioButton.js +64 -0
  251. package/esm/RadioGroup/native/Button/RadioButton.test.js +94 -0
  252. package/esm/RadioGroup/native/Radio/Radio.js +88 -0
  253. package/esm/RadioGroup/native/Radio/Radio.test.js +102 -0
  254. package/esm/RadioGroup/native/RadioGroup.js +66 -0
  255. package/esm/RadioGroup/native/RadioGroup.test.js +48 -0
  256. package/esm/RadioGroup/native/index.js +4 -0
  257. package/esm/RadioGroup/web/Button/RadioButton.js +4 -4
  258. package/esm/RadioGroup/web/Button/RadioButton.test.js +121 -0
  259. package/esm/RadioGroup/web/Radio/Radio.js +4 -4
  260. package/esm/RadioGroup/web/Radio/Radio.test.js +108 -0
  261. package/esm/RadioGroup/web/RadioGroup.test.js +83 -0
  262. package/esm/Rating/index.native.js +2 -0
  263. package/esm/Rating/native/Rating.js +186 -0
  264. package/esm/Rating/native/Rating.test.js +121 -0
  265. package/esm/Rating/native/index.js +2 -0
  266. package/esm/Rating/web/Rating.test.js +184 -0
  267. package/esm/Result/index.native.js +8 -0
  268. package/esm/Result/native/Attendances.js +55 -0
  269. package/esm/Result/native/Details.js +97 -0
  270. package/esm/Result/native/Rate.js +35 -0
  271. package/esm/Result/native/Result.js +86 -0
  272. package/esm/Result/native/Result.test.js +107 -0
  273. package/esm/Result/native/ResultButton.js +13 -0
  274. package/esm/Result/native/Tags.js +41 -0
  275. package/esm/Result/native/TinyTextIcon.js +18 -0
  276. package/esm/Result/native/index.js +2 -0
  277. package/esm/Slider/index.native.js +2 -0
  278. package/esm/Slider/native/Label.js +19 -0
  279. package/esm/Slider/native/Marker.js +68 -0
  280. package/esm/Slider/native/Slider.js +156 -0
  281. package/esm/Slider/native/Slider.test.js +115 -0
  282. package/esm/Slider/native/Step.js +14 -0
  283. package/esm/Slider/native/Tooltip.js +90 -0
  284. package/esm/Slider/web/Slider.test.js +86 -0
  285. package/esm/Snackbar/index.native.js +2 -0
  286. package/esm/Snackbar/native/Snackbar.js +199 -0
  287. package/esm/Snackbar/native/Snackbar.test.js +98 -0
  288. package/esm/Snackbar/native/SnackbarAnimationWrapper.js +124 -0
  289. package/esm/Snackbar/native/index.js +2 -0
  290. package/esm/Snackbar/web/Snackbar.js +4 -12
  291. package/esm/Snackbar/web/Snackbar.test.js +116 -0
  292. package/esm/Stepper/index.native.js +3 -0
  293. package/esm/Stepper/native/Dots.js +45 -0
  294. package/esm/Stepper/native/Line.js +35 -0
  295. package/esm/Stepper/native/Step.js +19 -0
  296. package/esm/Stepper/native/Stepper.js +52 -0
  297. package/esm/Stepper/native/Stepper.test.js +68 -0
  298. package/esm/Stepper/native/index.js +3 -0
  299. package/esm/Stepper/web/Stepper.test.js +67 -0
  300. package/esm/Tag/index.native.js +4 -0
  301. package/esm/Tag/native/Informative.js +71 -0
  302. package/esm/Tag/native/Tag.js +75 -0
  303. package/esm/Tag/native/Tag.test.js +92 -0
  304. package/esm/Tag/native/index.js +2 -0
  305. package/esm/Tag/web/Tag.test.js +79 -0
  306. package/esm/Text/index.native.js +16 -0
  307. package/esm/Text/native/Text.js +69 -0
  308. package/esm/Text/native/Text.test.js +149 -0
  309. package/esm/Text/native/index.js +2 -0
  310. package/esm/Text/sharedTextStyle.js +1 -1
  311. package/esm/Text/textStyle.android.js +1 -1
  312. package/esm/Text/textStyle.ios.js +1 -1
  313. package/esm/Text/textStyle.web.js +1 -1
  314. package/esm/Text/web/Text.test.js +149 -0
  315. package/esm/TextArea/index.native.js +2 -0
  316. package/esm/TextArea/native/TextArea.js +59 -0
  317. package/esm/TextArea/native/TextArea.test.js +11 -0
  318. package/esm/TextArea/native/index.js +2 -0
  319. package/esm/TextArea/web/TextArea.test.js +11 -0
  320. package/esm/Theme/Provider/index.native.js +2 -0
  321. package/esm/Theme/Provider/native/index.js +2 -0
  322. package/esm/Theme/Provider/web/FontLoader.test.js +11 -0
  323. package/esm/Theme/Provider/web/GlobalStyle.test.js +17 -0
  324. package/esm/Theme/helpers/themeReader/native/native.test.js +53 -0
  325. package/esm/Theme/helpers/themeReader/web/web.test.js +41 -0
  326. package/esm/Theme/index.native.js +5 -0
  327. package/esm/index.native.js +24 -0
  328. package/esm/shared/index.native.js +2 -0
  329. package/package.json +6 -6
@@ -0,0 +1,93 @@
1
+ var _excluded = ["visible", "title", "children", "onClose", "theme"];
2
+
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
4
+
5
+ function _extends() { _extends = Object.assign || 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); }
6
+
7
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
8
+
9
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
10
+
11
+ import React, { useEffect, useState } from 'react';
12
+ import styled, { withTheme } from 'styled-components';
13
+ import { node, string, func, bool } from 'prop-types';
14
+ import { Animated, TouchableWithoutFeedback, Easing, Modal } from 'react-native';
15
+ import Text from '../../Text';
16
+ var ClosableArea = styled(Animated.View)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
17
+ var colors = _ref.theme.yoga.colors;
18
+ return "\n position: relative;\n width: 100%;\n height: 100%;\n\n background-color: " + colors.text.primary + ";\n ";
19
+ });
20
+ var ContentWrapper = styled(Animated.View)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n justify-content: flex-end;\n\n width: 100%;\n"])));
21
+ var Content = styled.View(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref2) {
22
+ var dropdown = _ref2.theme.yoga.components.dropdown;
23
+ return "\n justify-content: center;\n width: 100%;\n\n background-color: " + dropdown.backdrop.content.backgroundColor + ";\n border-top-left-radius: " + dropdown.backdrop.content.border.radius.topLeft + "px;\n border-top-right-radius: " + dropdown.backdrop.content.border.radius.topRight + "px;\n ";
24
+ });
25
+ var Title = styled(Text.Bold)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref3) {
26
+ var dropdown = _ref3.theme.yoga.components.dropdown;
27
+ return "\n width: 100%;\n padding:\n " + dropdown.backdrop.content.title.padding.top + "px\n " + dropdown.backdrop.content.title.padding.right + "px\n " + dropdown.backdrop.content.title.padding.bottom + "px\n " + dropdown.backdrop.content.title.padding.left + "px;\n\n font-size: " + dropdown.backdrop.content.title.font.size + "px;\n\n text-align: center;\n ";
28
+ });
29
+
30
+ var Backdrop = function Backdrop(_ref4) {
31
+ var visible = _ref4.visible,
32
+ title = _ref4.title,
33
+ children = _ref4.children,
34
+ onClose = _ref4.onClose,
35
+ _ref4$theme$yoga = _ref4.theme.yoga,
36
+ transition = _ref4$theme$yoga.transition,
37
+ dropdown = _ref4$theme$yoga.components.dropdown,
38
+ props = _objectWithoutPropertiesLoose(_ref4, _excluded);
39
+
40
+ var _useState = useState(visible),
41
+ isOpen = _useState[0],
42
+ toggleIsOpen = _useState[1];
43
+
44
+ var _useState2 = useState(new Animated.Value(0)),
45
+ backgroundAnimation = _useState2[0];
46
+
47
+ var _useState3 = useState(new Animated.Value(-dropdown.backdrop.content.height)),
48
+ contentAnimation = _useState3[0];
49
+
50
+ var animate = function animate(animation, toValue) {
51
+ return Animated.timing(animation, {
52
+ toValue: toValue,
53
+ duration: transition.duration[0],
54
+ easing: Easing.out(Easing.ease),
55
+ useNativeDriver: false
56
+ }).start(function () {
57
+ return !visible && toggleIsOpen(false);
58
+ });
59
+ };
60
+
61
+ useEffect(function () {
62
+ if (visible) toggleIsOpen(true);
63
+ animate(backgroundAnimation, visible ? 0.5 : 0);
64
+ animate(contentAnimation, visible ? 0 : -dropdown.backdrop.content.height);
65
+ }, [visible]);
66
+ return isOpen && /*#__PURE__*/React.createElement(Modal, _extends({}, props, {
67
+ transparent: true,
68
+ animationType: "none"
69
+ }), /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
70
+ onPress: onClose
71
+ }, /*#__PURE__*/React.createElement(ClosableArea, {
72
+ style: {
73
+ opacity: backgroundAnimation
74
+ }
75
+ })), /*#__PURE__*/React.createElement(ContentWrapper, {
76
+ style: {
77
+ bottom: contentAnimation
78
+ }
79
+ }, /*#__PURE__*/React.createElement(Content, null, title && /*#__PURE__*/React.createElement(Title, null, title), children)));
80
+ };
81
+
82
+ Backdrop.propTypes = {
83
+ visible: bool,
84
+ title: string,
85
+ children: node.isRequired,
86
+ onClose: func
87
+ };
88
+ Backdrop.defaultProps = {
89
+ visible: false,
90
+ title: null,
91
+ onClose: function onClose() {}
92
+ };
93
+ export default withTheme(Backdrop);
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import { ThemeProvider } from '../..';
4
+ import Backdrop from './Backdrop';
5
+ jest.useFakeTimers();
6
+ describe('<Backdrop />', function () {
7
+ describe('Snapshots', function () {
8
+ it('should match snapshot', function () {
9
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Backdrop, {
10
+ title: "Find an Activity"
11
+ }, "Some Content"))),
12
+ container = _render.container;
13
+
14
+ expect(container).toMatchSnapshot();
15
+ });
16
+ it('should match snapshot when visible', function () {
17
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Backdrop, {
18
+ visible: true,
19
+ title: "Find an Activity"
20
+ }, "Some Content"))),
21
+ container = _render2.container;
22
+
23
+ expect(container).toMatchSnapshot();
24
+ });
25
+ });
26
+ });
@@ -0,0 +1,142 @@
1
+ var _excluded = ["error", "label", "disabled", "full", "options", "cancelActionLabel", "confirmActionLabel", "onChange", "theme"];
2
+
3
+ var _templateObject, _templateObject2;
4
+
5
+ function _extends() { _extends = Object.assign || 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); }
6
+
7
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
8
+
9
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
10
+
11
+ import React, { useState } from 'react';
12
+ import styled, { withTheme } from 'styled-components';
13
+ import { arrayOf, func, shape, number, string, bool, oneOfType } from 'prop-types';
14
+ import { TouchableWithoutFeedback, View } from 'react-native';
15
+ import { ChevronDown } from '@gympass/yoga-icons';
16
+ import Options from './Options';
17
+ import Backdrop from './Backdrop';
18
+ import Text from '../../Text';
19
+ import Helper from '../../Input/native/Helper';
20
+ var Selector = styled.View(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
21
+ var disabled = _ref.disabled,
22
+ selected = _ref.selected,
23
+ error = _ref.error,
24
+ full = _ref.full,
25
+ _ref$theme$yoga = _ref.theme.yoga,
26
+ colors = _ref$theme$yoga.colors,
27
+ dropdown = _ref$theme$yoga.components.dropdown;
28
+ return "\n position: relative;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n\n width: " + (full ? '100%' : dropdown.width + "px") + ";\n padding: " + dropdown.selector.padding.top + "px\n " + dropdown.selector.padding.right + "px\n " + dropdown.selector.padding.bottom + "px\n " + dropdown.selector.padding.left + "px;\n\n background-color: " + dropdown.selector.background + ";\n border-radius: " + dropdown.selector.border.radius + "px;\n border-width: " + dropdown.selector.border.width + "px;\n border-style: solid;\n border-color: " + (error ? colors.feedback.attention[1] : dropdown.selector.border.color) + ";\n\n " + (disabled ? "border-color: " + dropdown.disabled.selector.border.color + ";" : '') + ";\n " + (selected ? "border-color: " + dropdown.selected.selector.border.color + ";" : '') + ";\n ";
29
+ });
30
+ var Label = styled(Text)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref2) {
31
+ var disabled = _ref2.disabled,
32
+ selected = _ref2.selected,
33
+ dropdown = _ref2.theme.yoga.components.dropdown;
34
+ return "\n color: " + dropdown.input.font.color + ";\n " + (disabled ? "color: " + dropdown.disabled.input.font.color + ";" : '') + "\n " + (selected ? "color: " + dropdown.selected.input.font.color + ";" : '') + "\n ";
35
+ });
36
+
37
+ var getSelectedOption = function getSelectedOption(options) {
38
+ return options.find(function (item) {
39
+ return item.selected === true;
40
+ });
41
+ };
42
+ /** Gympass Dropdown is a multiple choice type of menu. */
43
+
44
+
45
+ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
46
+ var error = _ref3.error,
47
+ label = _ref3.label,
48
+ disabled = _ref3.disabled,
49
+ full = _ref3.full,
50
+ options = _ref3.options,
51
+ cancelActionLabel = _ref3.cancelActionLabel,
52
+ confirmActionLabel = _ref3.confirmActionLabel,
53
+ onChange = _ref3.onChange,
54
+ dropdown = _ref3.theme.yoga.components.dropdown,
55
+ rest = _objectWithoutPropertiesLoose(_ref3, _excluded);
56
+
57
+ var _useState = useState(getSelectedOption(options)),
58
+ selected = _useState[0],
59
+ toggleIsSelected = _useState[1];
60
+
61
+ var _useState2 = useState(false),
62
+ isOpen = _useState2[0],
63
+ toggleIsOpen = _useState2[1];
64
+
65
+ var iconColor = function iconColor() {
66
+ if (disabled) return dropdown.disabled.arrow.fill;
67
+ if (selected) return dropdown.selected.arrow.fill;
68
+ return dropdown.arrow.fill;
69
+ };
70
+
71
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
72
+ accessibilityRole: "button",
73
+ onPress: function onPress() {
74
+ return !disabled && toggleIsOpen(true);
75
+ }
76
+ }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Selector, _extends({
77
+ full: full,
78
+ disabled: disabled,
79
+ selected: selected,
80
+ error: error
81
+ }, rest, {
82
+ ref: ref
83
+ }), /*#__PURE__*/React.createElement(Label, {
84
+ disabled: disabled,
85
+ selected: selected
86
+ }, selected && selected.label || label), /*#__PURE__*/React.createElement(ChevronDown, {
87
+ width: 20,
88
+ height: 20,
89
+ fill: iconColor()
90
+ })), error && !selected && /*#__PURE__*/React.createElement(Helper, {
91
+ error: error
92
+ }))), /*#__PURE__*/React.createElement(Backdrop, {
93
+ visible: isOpen,
94
+ title: label,
95
+ onClose: function onClose() {
96
+ return toggleIsOpen(false);
97
+ }
98
+ }, /*#__PURE__*/React.createElement(Options, {
99
+ options: options,
100
+ selectedOption: selected,
101
+ cancelActionLabel: cancelActionLabel,
102
+ confirmActionLabel: confirmActionLabel,
103
+ onClose: function onClose() {
104
+ return toggleIsOpen(false);
105
+ },
106
+ onSelect: function onSelect(item) {
107
+ toggleIsSelected(item);
108
+ onChange(item);
109
+ toggleIsOpen(false);
110
+ }
111
+ })));
112
+ });
113
+ Dropdown.propTypes = {
114
+ label: string,
115
+ disabled: bool,
116
+ error: string,
117
+ full: bool,
118
+
119
+ /** { label (string), value (string or number), selected: (boolean) } */
120
+ options: arrayOf(shape({
121
+ label: string,
122
+ value: oneOfType([string, number]),
123
+ selected: bool
124
+ })).isRequired,
125
+
126
+ /** Cancel label that will be shown in iOS option chooser */
127
+ cancelActionLabel: string,
128
+
129
+ /** Confirm label that will be shown in iOS option chooser */
130
+ confirmActionLabel: string,
131
+ onChange: func
132
+ };
133
+ Dropdown.defaultProps = {
134
+ label: '',
135
+ error: undefined,
136
+ full: false,
137
+ cancelActionLabel: 'Cancel',
138
+ confirmActionLabel: 'Confirm',
139
+ disabled: false,
140
+ onChange: function onChange() {}
141
+ };
142
+ export default withTheme(Dropdown);
@@ -0,0 +1,78 @@
1
+ function _extends() { _extends = Object.assign || 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); }
2
+
3
+ import React from 'react';
4
+ import { render } from '@testing-library/react-native';
5
+ import { ThemeProvider, Dropdown } from '../..';
6
+ jest.useFakeTimers();
7
+ var dropdownProps = {
8
+ label: 'Find an activity to love',
9
+ options: [{
10
+ label: 'Yoga',
11
+ value: 'yoga'
12
+ }, {
13
+ label: 'Crossfit',
14
+ value: 'crossfit'
15
+ }, {
16
+ label: 'Tenis',
17
+ value: 'tenis'
18
+ }, {
19
+ label: 'Soccer',
20
+ value: 'soccer'
21
+ }, {
22
+ label: 'Pilates',
23
+ value: 'pilates'
24
+ }, {
25
+ label: 'Run',
26
+ value: 'running'
27
+ }]
28
+ };
29
+ describe('<Dropdown />', function () {
30
+ describe('Snapshots', function () {
31
+ it('should match snapshot', function () {
32
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, dropdownProps))),
33
+ container = _render.container;
34
+
35
+ expect(container).toMatchSnapshot();
36
+ });
37
+ it('should match snapshot when disabled', function () {
38
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({
39
+ disabled: true
40
+ }, dropdownProps)))),
41
+ container = _render2.container;
42
+
43
+ expect(container).toMatchSnapshot();
44
+ });
45
+ it('should match snapshot when full', function () {
46
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({
47
+ full: true
48
+ }, dropdownProps)))),
49
+ container = _render3.container;
50
+
51
+ expect(container).toMatchSnapshot();
52
+ });
53
+ it('should match snapshot when has a selected value', function () {
54
+ var selectedOption = {
55
+ label: 'Swimming',
56
+ value: 'swimming',
57
+ selected: true
58
+ };
59
+ var props = dropdownProps;
60
+ props.options.push(selectedOption);
61
+
62
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({
63
+ disabled: true
64
+ }, props)))),
65
+ container = _render4.container;
66
+
67
+ expect(container).toMatchSnapshot();
68
+ });
69
+ it('should match snapshot with error', function () {
70
+ var _render5 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps, {
71
+ error: "Please, select one activity"
72
+ })))),
73
+ container = _render5.container;
74
+
75
+ expect(container).toMatchSnapshot();
76
+ });
77
+ });
78
+ });
@@ -0,0 +1,66 @@
1
+ var _templateObject, _templateObject2;
2
+
3
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
4
+
5
+ import React from 'react';
6
+ import styled from 'styled-components';
7
+ import { func, arrayOf, string, shape, number, oneOfType } from 'prop-types';
8
+ import { TouchableWithoutFeedback } from 'react-native';
9
+ import Text from '../../Text';
10
+ import List from '../../List';
11
+ var Option = styled(List.Item)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
12
+ var isSelected = _ref.isSelected,
13
+ dropdown = _ref.theme.yoga.components.dropdown;
14
+ return "\n padding:\n " + dropdown.backdrop.content.option.padding.top + "px\n " + dropdown.backdrop.content.option.padding.right + "px\n " + dropdown.backdrop.content.option.padding.bottom + "px\n " + dropdown.backdrop.content.option.padding.left + "px;\n\n border-bottom-width: " + dropdown.option.border.width + "px;\n background-color: " + (isSelected ? "" + dropdown.hover.option.backgroundColor : 'transparent') + ";\n ";
15
+ });
16
+ var OptionText = styled.Text(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref2) {
17
+ var isSelected = _ref2.isSelected,
18
+ dropdown = _ref2.theme.yoga.components.dropdown;
19
+ return "\n font-size: " + dropdown.option.font.size + "px;\n line-height: " + dropdown.option.font.lineHeight + "px;\n color: " + (isSelected ? "" + dropdown.selected.option.font.color : "" + dropdown.option.font.color) + ";\n ";
20
+ });
21
+
22
+ var Options = function Options(_ref3) {
23
+ var options = _ref3.options,
24
+ selectedOption = _ref3.selectedOption,
25
+ onSelect = _ref3.onSelect;
26
+ return /*#__PURE__*/React.createElement(List, {
27
+ style: {
28
+ height: 60 * 3.6
29
+ },
30
+ data: options.map(function (item) {
31
+ return item;
32
+ }),
33
+ keyExtractor: function keyExtractor(_, index) {
34
+ return index.toString();
35
+ },
36
+ renderItem: function renderItem(_ref4) {
37
+ var item = _ref4.item;
38
+ return /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
39
+ onPress: function onPress() {
40
+ return onSelect(item);
41
+ }
42
+ }, /*#__PURE__*/React.createElement(Option, {
43
+ key: item.value,
44
+ isSelected: selectedOption && selectedOption.value === item.value
45
+ }, /*#__PURE__*/React.createElement(OptionText, {
46
+ isSelected: selectedOption && selectedOption.value === item.value,
47
+ as: selectedOption && selectedOption.value === item.value ? Text.Bold : Text.Regular
48
+ }, item.label)));
49
+ }
50
+ });
51
+ };
52
+
53
+ var optionShape = {
54
+ label: string,
55
+ value: oneOfType([string, number])
56
+ };
57
+ Options.propTypes = {
58
+ options: arrayOf(shape(optionShape)).isRequired,
59
+ selectedOption: shape(optionShape),
60
+ onSelect: func
61
+ };
62
+ Options.defaultProps = {
63
+ selectedOption: null,
64
+ onSelect: function onSelect() {}
65
+ };
66
+ export default Options;
@@ -0,0 +1,71 @@
1
+ var _templateObject, _templateObject2;
2
+
3
+ function _extends() { _extends = Object.assign || 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); }
4
+
5
+ function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
6
+
7
+ import React, { useState } from 'react';
8
+ import styled, { withTheme } from 'styled-components';
9
+ import { func, arrayOf, string, shape, oneOfType, number } from 'prop-types';
10
+ import { Picker } from '@react-native-picker/picker';
11
+ import Button from '../../Button';
12
+ var PickerStyled = styled(Picker)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n width: 100%;\n height: 190px;\n"])));
13
+ var PickerActions = styled.View(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
14
+ var dropdown = _ref.theme.yoga.components.dropdown;
15
+ return "\n flex-direction: row;\n justify-content: space-between;\n\n padding:\n " + dropdown.backdrop.content.actions.padding.top + "px\n " + dropdown.backdrop.content.actions.padding.right + "px\n " + dropdown.backdrop.content.actions.padding.bottom + "px\n " + dropdown.backdrop.content.actions.padding.left + "px;\n ";
16
+ });
17
+
18
+ var Options = function Options(_ref2) {
19
+ var options = _ref2.options,
20
+ selectedOption = _ref2.selectedOption,
21
+ cancelActionLabel = _ref2.cancelActionLabel,
22
+ confirmActionLabel = _ref2.confirmActionLabel,
23
+ onSelect = _ref2.onSelect,
24
+ onClose = _ref2.onClose,
25
+ baseFont = _ref2.theme.yoga.baseFont;
26
+
27
+ var _useState = useState(selectedOption),
28
+ selected = _useState[0],
29
+ setSelected = _useState[1];
30
+
31
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PickerStyled, {
32
+ selectedValue: selected && selected.value,
33
+ onValueChange: function onValueChange(itemValue) {
34
+ return setSelected(options.find(function (option) {
35
+ return option.value === itemValue;
36
+ }));
37
+ },
38
+ itemStyle: {
39
+ fontFamily: baseFont.family
40
+ }
41
+ }, options.map(function (item) {
42
+ return /*#__PURE__*/React.createElement(Picker.Item, _extends({
43
+ key: item
44
+ }, item));
45
+ })), /*#__PURE__*/React.createElement(PickerActions, null, /*#__PURE__*/React.createElement(Button.Link, {
46
+ onPress: onClose
47
+ }, cancelActionLabel), /*#__PURE__*/React.createElement(Button.Link, {
48
+ onPress: function onPress() {
49
+ return onSelect(selected);
50
+ }
51
+ }, confirmActionLabel)));
52
+ };
53
+
54
+ var optionShape = {
55
+ label: string,
56
+ value: oneOfType([string, number])
57
+ };
58
+ Options.propTypes = {
59
+ options: arrayOf(shape(optionShape)).isRequired,
60
+ selectedOption: shape(optionShape),
61
+ cancelActionLabel: string.isRequired,
62
+ confirmActionLabel: string.isRequired,
63
+ onSelect: func,
64
+ onClose: func
65
+ };
66
+ Options.defaultProps = {
67
+ selectedOption: null,
68
+ onSelect: function onSelect() {},
69
+ onClose: function onClose() {}
70
+ };
71
+ export default withTheme(Options);
@@ -0,0 +1,2 @@
1
+ import Dropdown from './Dropdown';
2
+ export default Dropdown;
@@ -87,7 +87,7 @@ var getSelectedOption = function getSelectedOption(options) {
87
87
  /** Gympass Dropdown is a multiple choice type of menu. */
88
88
 
89
89
 
90
- var Dropdown = function Dropdown(_ref10) {
90
+ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref10, ref) {
91
91
  var error = _ref10.error,
92
92
  label = _ref10.label,
93
93
  disabled = _ref10.disabled,
@@ -96,6 +96,7 @@ var Dropdown = function Dropdown(_ref10) {
96
96
  onChange = _ref10.onChange,
97
97
  rest = _objectWithoutPropertiesLoose(_ref10, _excluded2);
98
98
 
99
+ var inputRef = ref || React.useRef(null);
99
100
  return /*#__PURE__*/React.createElement(Downshift, {
100
101
  initialSelectedItem: getSelectedOption(options),
101
102
  selectedItemChanged: function selectedItemChanged(prevItem, item) {
@@ -127,7 +128,8 @@ var Dropdown = function Dropdown(_ref10) {
127
128
  selected: selectedItem !== null,
128
129
  isOpen: isOpen,
129
130
  label: label,
130
- full: full
131
+ full: full,
132
+ ref: inputRef
131
133
  }, getInputProps())), /*#__PURE__*/React.createElement(Button, _extends({
132
134
  isOpen: isOpen,
133
135
  disabled: disabled
@@ -148,8 +150,7 @@ var Dropdown = function Dropdown(_ref10) {
148
150
  error: error
149
151
  }));
150
152
  });
151
- };
152
-
153
+ });
153
154
  Dropdown.propTypes = {
154
155
  label: string,
155
156
  disabled: bool,
@@ -0,0 +1,93 @@
1
+ function _extends() { _extends = Object.assign || 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); }
2
+
3
+ import React from 'react';
4
+ import { render, screen, fireEvent } from '@testing-library/react';
5
+ import { ThemeProvider, Dropdown } from '../..';
6
+ var dropdownProps = {
7
+ label: 'Find an activity to love',
8
+ options: [{
9
+ label: 'Yoga',
10
+ value: 'yoga'
11
+ }, {
12
+ label: 'Crossfit',
13
+ value: 'crossfit'
14
+ }, {
15
+ label: 'Tenis',
16
+ value: 'tenis'
17
+ }, {
18
+ label: 'Soccer',
19
+ value: 'soccer'
20
+ }, {
21
+ label: 'Pilates',
22
+ value: 'pilates'
23
+ }, {
24
+ label: 'Run',
25
+ value: 'running'
26
+ }]
27
+ };
28
+ describe('<Dropdown />', function () {
29
+ it('should match snapshot', function () {
30
+ var _render = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, dropdownProps))),
31
+ container = _render.container;
32
+
33
+ expect(container).toMatchSnapshot();
34
+ });
35
+ it('should match snapshot when disabled', function () {
36
+ var _render2 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps, {
37
+ disabled: true
38
+ })))),
39
+ container = _render2.container;
40
+
41
+ expect(container).toMatchSnapshot();
42
+ });
43
+ it('should match snapshot when full', function () {
44
+ var _render3 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps, {
45
+ full: true
46
+ })))),
47
+ container = _render3.container;
48
+
49
+ expect(container).toMatchSnapshot();
50
+ });
51
+ it('should match snapshot when has a selected value', function () {
52
+ var selectedOption = {
53
+ label: 'Swimming',
54
+ value: 'swimming',
55
+ selected: true
56
+ };
57
+ var props = dropdownProps;
58
+ props.options.push(selectedOption);
59
+
60
+ var _render4 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({}, props, {
61
+ disabled: true
62
+ })))),
63
+ container = _render4.container;
64
+
65
+ expect(container).toMatchSnapshot();
66
+ });
67
+ it('should match snapshot with error', function () {
68
+ var _render5 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps, {
69
+ error: "Please, select one activity"
70
+ })))),
71
+ container = _render5.container;
72
+
73
+ expect(container).toMatchSnapshot();
74
+ });
75
+ it('should make label visible when open dropdown', function () {
76
+ var _render6 = render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, dropdownProps))),
77
+ getByRole = _render6.getByRole;
78
+
79
+ fireEvent.click(getByRole('button'));
80
+ screen.getAllByText('Find an activity to love');
81
+ });
82
+ it('should make label visible when has a selected option', function () {
83
+ var selectedOption = {
84
+ label: 'Swimming',
85
+ value: 'swimming',
86
+ selected: true
87
+ };
88
+ var props = dropdownProps;
89
+ props.options.push(selectedOption);
90
+ render( /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Dropdown, props)));
91
+ screen.getAllByText('Find an activity to love');
92
+ });
93
+ });