@fattureincloud-mobile/fic-mobile-ds 1.0.0 → 1.2.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 (469) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +31 -0
  3. package/lib/commonjs/components/Tag/Tag.js +44 -0
  4. package/lib/commonjs/components/Tag/Tag.js.map +1 -0
  5. package/lib/commonjs/components/Tag/index.js +14 -0
  6. package/lib/commonjs/components/Tag/index.js.map +1 -0
  7. package/lib/commonjs/components/Touchable/Touchable.js +79 -0
  8. package/lib/commonjs/components/Touchable/Touchable.js.map +1 -0
  9. package/lib/commonjs/components/Touchable/index.js +14 -0
  10. package/lib/commonjs/components/Touchable/index.js.map +1 -0
  11. package/lib/commonjs/components/base/DatePicker/DatePicker.js +257 -0
  12. package/lib/commonjs/components/base/DatePicker/DatePicker.js.map +1 -0
  13. package/lib/commonjs/components/base/DatePicker/index.js +14 -0
  14. package/lib/commonjs/components/base/DatePicker/index.js.map +1 -0
  15. package/lib/commonjs/components/base/HeaderArrows/HeaderArrows.js +77 -0
  16. package/lib/commonjs/components/base/HeaderArrows/HeaderArrows.js.map +1 -0
  17. package/lib/commonjs/components/base/HeaderArrows/index.js +14 -0
  18. package/lib/commonjs/components/base/HeaderArrows/index.js.map +1 -0
  19. package/lib/commonjs/components/buttons/FicButton/FicButton.js +42 -0
  20. package/lib/commonjs/components/buttons/FicButton/FicButton.js.map +1 -0
  21. package/lib/commonjs/components/buttons/FicButton/FicButton.types.js +6 -0
  22. package/lib/commonjs/components/buttons/FicButton/FicButton.types.js.map +1 -0
  23. package/lib/commonjs/components/buttons/FicButton/FicButtonIcon.js +104 -0
  24. package/lib/commonjs/components/buttons/FicButton/FicButtonIcon.js.map +1 -0
  25. package/lib/commonjs/components/buttons/FicButton/FicButtonPrimary.js +121 -0
  26. package/lib/commonjs/components/buttons/FicButton/FicButtonPrimary.js.map +1 -0
  27. package/lib/commonjs/components/buttons/FicButton/FicButtonSecondary.js +123 -0
  28. package/lib/commonjs/components/buttons/FicButton/FicButtonSecondary.js.map +1 -0
  29. package/lib/commonjs/components/buttons/FicButton/FicButtonTertiary.js +144 -0
  30. package/lib/commonjs/components/buttons/FicButton/FicButtonTertiary.js.map +1 -0
  31. package/lib/commonjs/components/buttons/FicButton/constants.js +23 -0
  32. package/lib/commonjs/components/buttons/FicButton/constants.js.map +1 -0
  33. package/lib/commonjs/components/buttons/FicButton/index.js +14 -0
  34. package/lib/commonjs/components/buttons/FicButton/index.js.map +1 -0
  35. package/lib/commonjs/components/buttons/FicButton/themes/dark.js +291 -0
  36. package/lib/commonjs/components/buttons/FicButton/themes/dark.js.map +1 -0
  37. package/lib/commonjs/components/buttons/FicButton/themes/index.js +14 -0
  38. package/lib/commonjs/components/buttons/FicButton/themes/index.js.map +1 -0
  39. package/lib/commonjs/components/buttons/FicButton/themes/light.js +311 -0
  40. package/lib/commonjs/components/buttons/FicButton/themes/light.js.map +1 -0
  41. package/lib/commonjs/components/buttons/FicButtonGroup/FicButtonGroup.js +54 -0
  42. package/lib/commonjs/components/buttons/FicButtonGroup/FicButtonGroup.js.map +1 -0
  43. package/lib/commonjs/components/buttons/FicButtonGroup/FicButtonGroup.types.js +6 -0
  44. package/lib/commonjs/components/buttons/FicButtonGroup/FicButtonGroup.types.js.map +1 -0
  45. package/lib/commonjs/components/buttons/FicButtonGroup/index.js +14 -0
  46. package/lib/commonjs/components/buttons/FicButtonGroup/index.js.map +1 -0
  47. package/lib/commonjs/components/notifications/Banner/Banner.js +96 -0
  48. package/lib/commonjs/components/notifications/Banner/Banner.js.map +1 -0
  49. package/lib/commonjs/components/notifications/Banner/Banner.types.js +6 -0
  50. package/lib/commonjs/components/notifications/Banner/Banner.types.js.map +1 -0
  51. package/lib/commonjs/components/notifications/Banner/index.js +14 -0
  52. package/lib/commonjs/components/notifications/Banner/index.js.map +1 -0
  53. package/lib/commonjs/components/notifications/Banner/themes/dark.js +47 -0
  54. package/lib/commonjs/components/notifications/Banner/themes/dark.js.map +1 -0
  55. package/lib/commonjs/components/notifications/Banner/themes/index.js +21 -0
  56. package/lib/commonjs/components/notifications/Banner/themes/index.js.map +1 -0
  57. package/lib/commonjs/components/notifications/Banner/themes/light.js +47 -0
  58. package/lib/commonjs/components/notifications/Banner/themes/light.js.map +1 -0
  59. package/lib/commonjs/components/typographies/Body/Body.js +35 -0
  60. package/lib/commonjs/components/typographies/Body/Body.js.map +1 -0
  61. package/lib/commonjs/components/typographies/Body/index.js +14 -0
  62. package/lib/commonjs/components/typographies/Body/index.js.map +1 -0
  63. package/lib/commonjs/components/typographies/ButtonTitle/ButtonTitle.js +45 -0
  64. package/lib/commonjs/components/typographies/ButtonTitle/ButtonTitle.js.map +1 -0
  65. package/lib/commonjs/components/typographies/ButtonTitle/index.js +14 -0
  66. package/lib/commonjs/components/typographies/ButtonTitle/index.js.map +1 -0
  67. package/lib/commonjs/components/typographies/Callout/Callout.js +35 -0
  68. package/lib/commonjs/components/typographies/Callout/Callout.js.map +1 -0
  69. package/lib/commonjs/components/typographies/Callout/index.js +14 -0
  70. package/lib/commonjs/components/typographies/Callout/index.js.map +1 -0
  71. package/lib/commonjs/components/typographies/CaptionOne/CaptionOne.js +35 -0
  72. package/lib/commonjs/components/typographies/CaptionOne/CaptionOne.js.map +1 -0
  73. package/lib/commonjs/components/typographies/CaptionOne/index.js +14 -0
  74. package/lib/commonjs/components/typographies/CaptionOne/index.js.map +1 -0
  75. package/lib/commonjs/components/typographies/CaptionTwo/CaptionTwo.js +35 -0
  76. package/lib/commonjs/components/typographies/CaptionTwo/CaptionTwo.js.map +1 -0
  77. package/lib/commonjs/components/typographies/CaptionTwo/index.js +14 -0
  78. package/lib/commonjs/components/typographies/CaptionTwo/index.js.map +1 -0
  79. package/lib/commonjs/components/typographies/Footnote/Footnote.js +35 -0
  80. package/lib/commonjs/components/typographies/Footnote/Footnote.js.map +1 -0
  81. package/lib/commonjs/components/typographies/Footnote/index.js +14 -0
  82. package/lib/commonjs/components/typographies/Footnote/index.js.map +1 -0
  83. package/lib/commonjs/components/typographies/Headline/Headline.js +35 -0
  84. package/lib/commonjs/components/typographies/Headline/Headline.js.map +1 -0
  85. package/lib/commonjs/components/typographies/Headline/index.js +14 -0
  86. package/lib/commonjs/components/typographies/Headline/index.js.map +1 -0
  87. package/lib/commonjs/components/typographies/LargeTitle/LargeTitle.js +35 -0
  88. package/lib/commonjs/components/typographies/LargeTitle/LargeTitle.js.map +1 -0
  89. package/lib/commonjs/components/typographies/LargeTitle/index.js +14 -0
  90. package/lib/commonjs/components/typographies/LargeTitle/index.js.map +1 -0
  91. package/lib/commonjs/components/typographies/README.md +22 -0
  92. package/lib/commonjs/components/typographies/Subhead/Subhead.js +35 -0
  93. package/lib/commonjs/components/typographies/Subhead/Subhead.js.map +1 -0
  94. package/lib/commonjs/components/typographies/Subhead/index.js +14 -0
  95. package/lib/commonjs/components/typographies/Subhead/index.js.map +1 -0
  96. package/lib/commonjs/components/typographies/TitleOne/TitleOne.js +35 -0
  97. package/lib/commonjs/components/typographies/TitleOne/TitleOne.js.map +1 -0
  98. package/lib/commonjs/components/typographies/TitleOne/index.js +14 -0
  99. package/lib/commonjs/components/typographies/TitleOne/index.js.map +1 -0
  100. package/lib/commonjs/components/typographies/TitleThree/TitleThree.js +35 -0
  101. package/lib/commonjs/components/typographies/TitleThree/TitleThree.js.map +1 -0
  102. package/lib/commonjs/components/typographies/TitleThree/index.js +14 -0
  103. package/lib/commonjs/components/typographies/TitleThree/index.js.map +1 -0
  104. package/lib/commonjs/components/typographies/TitleTwo/TitleTwo.js +35 -0
  105. package/lib/commonjs/components/typographies/TitleTwo/TitleTwo.js.map +1 -0
  106. package/lib/commonjs/components/typographies/TitleTwo/index.js +14 -0
  107. package/lib/commonjs/components/typographies/TitleTwo/index.js.map +1 -0
  108. package/lib/commonjs/components/typographies/font.js +33 -0
  109. package/lib/commonjs/components/typographies/font.js.map +1 -0
  110. package/lib/commonjs/hooks/useTheme.js +24 -0
  111. package/lib/commonjs/hooks/useTheme.js.map +1 -0
  112. package/lib/commonjs/index.js +206 -0
  113. package/lib/commonjs/index.js.map +1 -0
  114. package/lib/commonjs/providers/DesignSystemProvider/DesignSystemProvider.js +30 -0
  115. package/lib/commonjs/providers/DesignSystemProvider/DesignSystemProvider.js.map +1 -0
  116. package/lib/commonjs/providers/DesignSystemProvider/index.js +14 -0
  117. package/lib/commonjs/providers/DesignSystemProvider/index.js.map +1 -0
  118. package/lib/commonjs/providers/IconProvider/IconProvider.js +35 -0
  119. package/lib/commonjs/providers/IconProvider/IconProvider.js.map +1 -0
  120. package/lib/commonjs/providers/IconProvider/index.js +20 -0
  121. package/lib/commonjs/providers/IconProvider/index.js.map +1 -0
  122. package/lib/commonjs/providers/ThemeProvider/ThemeProvider.js +20 -0
  123. package/lib/commonjs/providers/ThemeProvider/ThemeProvider.js.map +1 -0
  124. package/lib/commonjs/styles/calendarTheme.js +6 -0
  125. package/lib/commonjs/styles/calendarTheme.js.map +1 -0
  126. package/lib/commonjs/styles/colors.js +109 -0
  127. package/lib/commonjs/styles/colors.js.map +1 -0
  128. package/lib/commonjs/styles/globalStyles.js +41 -0
  129. package/lib/commonjs/styles/globalStyles.js.map +1 -0
  130. package/lib/commonjs/styles/space.js +34 -0
  131. package/lib/commonjs/styles/space.js.map +1 -0
  132. package/lib/commonjs/styles/theme.js +421 -0
  133. package/lib/commonjs/styles/theme.js.map +1 -0
  134. package/lib/commonjs/utils/locale.js +50 -0
  135. package/lib/commonjs/utils/locale.js.map +1 -0
  136. package/lib/module/components/Tag/Tag.js +37 -0
  137. package/lib/module/components/Tag/Tag.js.map +1 -0
  138. package/lib/module/components/Tag/index.js +3 -0
  139. package/lib/module/components/Tag/index.js.map +1 -0
  140. package/lib/module/components/Touchable/Touchable.js +72 -0
  141. package/lib/module/components/Touchable/Touchable.js.map +1 -0
  142. package/lib/module/components/Touchable/index.js +3 -0
  143. package/lib/module/components/Touchable/index.js.map +1 -0
  144. package/lib/module/components/base/DatePicker/DatePicker.js +251 -0
  145. package/lib/module/components/base/DatePicker/DatePicker.js.map +1 -0
  146. package/lib/module/components/base/DatePicker/index.js +3 -0
  147. package/lib/module/components/base/DatePicker/index.js.map +1 -0
  148. package/lib/module/components/base/HeaderArrows/HeaderArrows.js +70 -0
  149. package/lib/module/components/base/HeaderArrows/HeaderArrows.js.map +1 -0
  150. package/lib/module/components/base/HeaderArrows/index.js +3 -0
  151. package/lib/module/components/base/HeaderArrows/index.js.map +1 -0
  152. package/lib/module/components/buttons/FicButton/FicButton.js +36 -0
  153. package/lib/module/components/buttons/FicButton/FicButton.js.map +1 -0
  154. package/lib/module/components/buttons/FicButton/FicButton.types.js +2 -0
  155. package/lib/module/components/buttons/FicButton/FicButton.types.js.map +1 -0
  156. package/lib/module/components/buttons/FicButton/FicButtonIcon.js +96 -0
  157. package/lib/module/components/buttons/FicButton/FicButtonIcon.js.map +1 -0
  158. package/lib/module/components/buttons/FicButton/FicButtonPrimary.js +114 -0
  159. package/lib/module/components/buttons/FicButton/FicButtonPrimary.js.map +1 -0
  160. package/lib/module/components/buttons/FicButton/FicButtonSecondary.js +116 -0
  161. package/lib/module/components/buttons/FicButton/FicButtonSecondary.js.map +1 -0
  162. package/lib/module/components/buttons/FicButton/FicButtonTertiary.js +137 -0
  163. package/lib/module/components/buttons/FicButton/FicButtonTertiary.js.map +1 -0
  164. package/lib/module/components/buttons/FicButton/constants.js +17 -0
  165. package/lib/module/components/buttons/FicButton/constants.js.map +1 -0
  166. package/lib/module/components/buttons/FicButton/index.js +3 -0
  167. package/lib/module/components/buttons/FicButton/index.js.map +1 -0
  168. package/lib/module/components/buttons/FicButton/themes/dark.js +285 -0
  169. package/lib/module/components/buttons/FicButton/themes/dark.js.map +1 -0
  170. package/lib/module/components/buttons/FicButton/themes/index.js +3 -0
  171. package/lib/module/components/buttons/FicButton/themes/index.js.map +1 -0
  172. package/lib/module/components/buttons/FicButton/themes/light.js +305 -0
  173. package/lib/module/components/buttons/FicButton/themes/light.js.map +1 -0
  174. package/lib/module/components/buttons/FicButtonGroup/FicButtonGroup.js +47 -0
  175. package/lib/module/components/buttons/FicButtonGroup/FicButtonGroup.js.map +1 -0
  176. package/lib/module/components/buttons/FicButtonGroup/FicButtonGroup.types.js +2 -0
  177. package/lib/module/components/buttons/FicButtonGroup/FicButtonGroup.types.js.map +1 -0
  178. package/lib/module/components/buttons/FicButtonGroup/index.js +3 -0
  179. package/lib/module/components/buttons/FicButtonGroup/index.js.map +1 -0
  180. package/lib/module/components/notifications/Banner/Banner.js +89 -0
  181. package/lib/module/components/notifications/Banner/Banner.js.map +1 -0
  182. package/lib/module/components/notifications/Banner/Banner.types.js +2 -0
  183. package/lib/module/components/notifications/Banner/Banner.types.js.map +1 -0
  184. package/lib/module/components/notifications/Banner/index.js +3 -0
  185. package/lib/module/components/notifications/Banner/index.js.map +1 -0
  186. package/lib/module/components/notifications/Banner/themes/dark.js +41 -0
  187. package/lib/module/components/notifications/Banner/themes/dark.js.map +1 -0
  188. package/lib/module/components/notifications/Banner/themes/index.js +4 -0
  189. package/lib/module/components/notifications/Banner/themes/index.js.map +1 -0
  190. package/lib/module/components/notifications/Banner/themes/light.js +41 -0
  191. package/lib/module/components/notifications/Banner/themes/light.js.map +1 -0
  192. package/lib/module/components/typographies/Body/Body.js +29 -0
  193. package/lib/module/components/typographies/Body/Body.js.map +1 -0
  194. package/lib/module/components/typographies/Body/index.js +3 -0
  195. package/lib/module/components/typographies/Body/index.js.map +1 -0
  196. package/lib/module/components/typographies/ButtonTitle/ButtonTitle.js +39 -0
  197. package/lib/module/components/typographies/ButtonTitle/ButtonTitle.js.map +1 -0
  198. package/lib/module/components/typographies/ButtonTitle/index.js +3 -0
  199. package/lib/module/components/typographies/ButtonTitle/index.js.map +1 -0
  200. package/lib/module/components/typographies/Callout/Callout.js +29 -0
  201. package/lib/module/components/typographies/Callout/Callout.js.map +1 -0
  202. package/lib/module/components/typographies/Callout/index.js +3 -0
  203. package/lib/module/components/typographies/Callout/index.js.map +1 -0
  204. package/lib/module/components/typographies/CaptionOne/CaptionOne.js +29 -0
  205. package/lib/module/components/typographies/CaptionOne/CaptionOne.js.map +1 -0
  206. package/lib/module/components/typographies/CaptionOne/index.js +3 -0
  207. package/lib/module/components/typographies/CaptionOne/index.js.map +1 -0
  208. package/lib/module/components/typographies/CaptionTwo/CaptionTwo.js +29 -0
  209. package/lib/module/components/typographies/CaptionTwo/CaptionTwo.js.map +1 -0
  210. package/lib/module/components/typographies/CaptionTwo/index.js +3 -0
  211. package/lib/module/components/typographies/CaptionTwo/index.js.map +1 -0
  212. package/lib/module/components/typographies/Footnote/Footnote.js +29 -0
  213. package/lib/module/components/typographies/Footnote/Footnote.js.map +1 -0
  214. package/lib/module/components/typographies/Footnote/index.js +3 -0
  215. package/lib/module/components/typographies/Footnote/index.js.map +1 -0
  216. package/lib/module/components/typographies/Headline/Headline.js +29 -0
  217. package/lib/module/components/typographies/Headline/Headline.js.map +1 -0
  218. package/lib/module/components/typographies/Headline/index.js +3 -0
  219. package/lib/module/components/typographies/Headline/index.js.map +1 -0
  220. package/lib/module/components/typographies/LargeTitle/LargeTitle.js +29 -0
  221. package/lib/module/components/typographies/LargeTitle/LargeTitle.js.map +1 -0
  222. package/lib/module/components/typographies/LargeTitle/index.js +3 -0
  223. package/lib/module/components/typographies/LargeTitle/index.js.map +1 -0
  224. package/lib/module/components/typographies/README.md +22 -0
  225. package/lib/module/components/typographies/Subhead/Subhead.js +29 -0
  226. package/lib/module/components/typographies/Subhead/Subhead.js.map +1 -0
  227. package/lib/module/components/typographies/Subhead/index.js +3 -0
  228. package/lib/module/components/typographies/Subhead/index.js.map +1 -0
  229. package/lib/module/components/typographies/TitleOne/TitleOne.js +29 -0
  230. package/lib/module/components/typographies/TitleOne/TitleOne.js.map +1 -0
  231. package/lib/module/components/typographies/TitleOne/index.js +3 -0
  232. package/lib/module/components/typographies/TitleOne/index.js.map +1 -0
  233. package/lib/module/components/typographies/TitleThree/TitleThree.js +29 -0
  234. package/lib/module/components/typographies/TitleThree/TitleThree.js.map +1 -0
  235. package/lib/module/components/typographies/TitleThree/index.js +3 -0
  236. package/lib/module/components/typographies/TitleThree/index.js.map +1 -0
  237. package/lib/module/components/typographies/TitleTwo/TitleTwo.js +29 -0
  238. package/lib/module/components/typographies/TitleTwo/TitleTwo.js.map +1 -0
  239. package/lib/module/components/typographies/TitleTwo/index.js +3 -0
  240. package/lib/module/components/typographies/TitleTwo/index.js.map +1 -0
  241. package/lib/module/components/typographies/font.js +26 -0
  242. package/lib/module/components/typographies/font.js.map +1 -0
  243. package/lib/module/hooks/useTheme.js +16 -0
  244. package/lib/module/hooks/useTheme.js.map +1 -0
  245. package/lib/module/index.js +26 -0
  246. package/lib/module/index.js.map +1 -0
  247. package/lib/module/providers/DesignSystemProvider/DesignSystemProvider.js +22 -0
  248. package/lib/module/providers/DesignSystemProvider/DesignSystemProvider.js.map +1 -0
  249. package/lib/module/providers/DesignSystemProvider/index.js +3 -0
  250. package/lib/module/providers/DesignSystemProvider/index.js.map +1 -0
  251. package/lib/module/providers/IconProvider/IconProvider.js +27 -0
  252. package/lib/module/providers/IconProvider/IconProvider.js.map +1 -0
  253. package/lib/module/providers/IconProvider/index.js +3 -0
  254. package/lib/module/providers/IconProvider/index.js.map +1 -0
  255. package/lib/module/providers/ThemeProvider/ThemeProvider.js +13 -0
  256. package/lib/module/providers/ThemeProvider/ThemeProvider.js.map +1 -0
  257. package/lib/module/styles/calendarTheme.js +2 -0
  258. package/lib/module/styles/calendarTheme.js.map +1 -0
  259. package/lib/module/styles/colors.js +103 -0
  260. package/lib/module/styles/colors.js.map +1 -0
  261. package/lib/module/styles/globalStyles.js +35 -0
  262. package/lib/module/styles/globalStyles.js.map +1 -0
  263. package/lib/module/styles/space.js +28 -0
  264. package/lib/module/styles/space.js.map +1 -0
  265. package/lib/module/styles/theme.js +414 -0
  266. package/lib/module/styles/theme.js.map +1 -0
  267. package/lib/module/utils/locale.js +42 -0
  268. package/lib/module/utils/locale.js.map +1 -0
  269. package/lib/package.json +138 -0
  270. package/lib/typescript/components/Tag/Tag.d.ts +13 -0
  271. package/lib/typescript/components/Tag/Tag.d.ts.map +1 -0
  272. package/lib/typescript/components/Tag/index.d.ts +3 -0
  273. package/lib/typescript/components/Tag/index.d.ts.map +1 -0
  274. package/lib/typescript/components/Touchable/Touchable.d.ts +16 -0
  275. package/lib/typescript/components/Touchable/Touchable.d.ts.map +1 -0
  276. package/lib/typescript/components/Touchable/index.d.ts +3 -0
  277. package/lib/typescript/components/Touchable/index.d.ts.map +1 -0
  278. package/lib/typescript/components/base/DatePicker/DatePicker.d.ts +60 -0
  279. package/lib/typescript/components/base/DatePicker/DatePicker.d.ts.map +1 -0
  280. package/lib/typescript/components/base/DatePicker/index.d.ts +4 -0
  281. package/lib/typescript/components/base/DatePicker/index.d.ts.map +1 -0
  282. package/lib/typescript/components/base/HeaderArrows/HeaderArrows.d.ts +16 -0
  283. package/lib/typescript/components/base/HeaderArrows/HeaderArrows.d.ts.map +1 -0
  284. package/lib/typescript/components/base/HeaderArrows/index.d.ts +3 -0
  285. package/lib/typescript/components/base/HeaderArrows/index.d.ts.map +1 -0
  286. package/lib/typescript/components/buttons/FicButton/FicButton.d.ts +5 -0
  287. package/lib/typescript/components/buttons/FicButton/FicButton.d.ts.map +1 -0
  288. package/lib/typescript/components/buttons/FicButton/FicButton.types.d.ts +87 -0
  289. package/lib/typescript/components/buttons/FicButton/FicButton.types.d.ts.map +1 -0
  290. package/lib/typescript/components/buttons/FicButton/FicButtonIcon.d.ts +5 -0
  291. package/lib/typescript/components/buttons/FicButton/FicButtonIcon.d.ts.map +1 -0
  292. package/lib/typescript/components/buttons/FicButton/FicButtonPrimary.d.ts +5 -0
  293. package/lib/typescript/components/buttons/FicButton/FicButtonPrimary.d.ts.map +1 -0
  294. package/lib/typescript/components/buttons/FicButton/FicButtonSecondary.d.ts +5 -0
  295. package/lib/typescript/components/buttons/FicButton/FicButtonSecondary.d.ts.map +1 -0
  296. package/lib/typescript/components/buttons/FicButton/FicButtonTertiary.d.ts +5 -0
  297. package/lib/typescript/components/buttons/FicButton/FicButtonTertiary.d.ts.map +1 -0
  298. package/lib/typescript/components/buttons/FicButton/constants.d.ts +13 -0
  299. package/lib/typescript/components/buttons/FicButton/constants.d.ts.map +1 -0
  300. package/lib/typescript/components/buttons/FicButton/index.d.ts +5 -0
  301. package/lib/typescript/components/buttons/FicButton/index.d.ts.map +1 -0
  302. package/lib/typescript/components/buttons/FicButton/themes/dark.d.ts +4 -0
  303. package/lib/typescript/components/buttons/FicButton/themes/dark.d.ts.map +1 -0
  304. package/lib/typescript/components/buttons/FicButton/themes/index.d.ts +3 -0
  305. package/lib/typescript/components/buttons/FicButton/themes/index.d.ts.map +1 -0
  306. package/lib/typescript/components/buttons/FicButton/themes/light.d.ts +4 -0
  307. package/lib/typescript/components/buttons/FicButton/themes/light.d.ts.map +1 -0
  308. package/lib/typescript/components/buttons/FicButtonGroup/FicButtonGroup.d.ts +5 -0
  309. package/lib/typescript/components/buttons/FicButtonGroup/FicButtonGroup.d.ts.map +1 -0
  310. package/lib/typescript/components/buttons/FicButtonGroup/FicButtonGroup.types.d.ts +10 -0
  311. package/lib/typescript/components/buttons/FicButtonGroup/FicButtonGroup.types.d.ts.map +1 -0
  312. package/lib/typescript/components/buttons/FicButtonGroup/index.d.ts +3 -0
  313. package/lib/typescript/components/buttons/FicButtonGroup/index.d.ts.map +1 -0
  314. package/lib/typescript/components/notifications/Banner/Banner.d.ts +5 -0
  315. package/lib/typescript/components/notifications/Banner/Banner.d.ts.map +1 -0
  316. package/lib/typescript/components/notifications/Banner/Banner.types.d.ts +50 -0
  317. package/lib/typescript/components/notifications/Banner/Banner.types.d.ts.map +1 -0
  318. package/lib/typescript/components/notifications/Banner/index.d.ts +3 -0
  319. package/lib/typescript/components/notifications/Banner/index.d.ts.map +1 -0
  320. package/lib/typescript/components/notifications/Banner/themes/dark.d.ts +4 -0
  321. package/lib/typescript/components/notifications/Banner/themes/dark.d.ts.map +1 -0
  322. package/lib/typescript/components/notifications/Banner/themes/index.d.ts +4 -0
  323. package/lib/typescript/components/notifications/Banner/themes/index.d.ts.map +1 -0
  324. package/lib/typescript/components/notifications/Banner/themes/light.d.ts +4 -0
  325. package/lib/typescript/components/notifications/Banner/themes/light.d.ts.map +1 -0
  326. package/lib/typescript/components/typographies/Body/Body.d.ts +12 -0
  327. package/lib/typescript/components/typographies/Body/Body.d.ts.map +1 -0
  328. package/lib/typescript/components/typographies/Body/index.d.ts +3 -0
  329. package/lib/typescript/components/typographies/Body/index.d.ts.map +1 -0
  330. package/lib/typescript/components/typographies/ButtonTitle/ButtonTitle.d.ts +10 -0
  331. package/lib/typescript/components/typographies/ButtonTitle/ButtonTitle.d.ts.map +1 -0
  332. package/lib/typescript/components/typographies/ButtonTitle/index.d.ts +3 -0
  333. package/lib/typescript/components/typographies/ButtonTitle/index.d.ts.map +1 -0
  334. package/lib/typescript/components/typographies/Callout/Callout.d.ts +12 -0
  335. package/lib/typescript/components/typographies/Callout/Callout.d.ts.map +1 -0
  336. package/lib/typescript/components/typographies/Callout/index.d.ts +3 -0
  337. package/lib/typescript/components/typographies/Callout/index.d.ts.map +1 -0
  338. package/lib/typescript/components/typographies/CaptionOne/CaptionOne.d.ts +12 -0
  339. package/lib/typescript/components/typographies/CaptionOne/CaptionOne.d.ts.map +1 -0
  340. package/lib/typescript/components/typographies/CaptionOne/index.d.ts +3 -0
  341. package/lib/typescript/components/typographies/CaptionOne/index.d.ts.map +1 -0
  342. package/lib/typescript/components/typographies/CaptionTwo/CaptionTwo.d.ts +12 -0
  343. package/lib/typescript/components/typographies/CaptionTwo/CaptionTwo.d.ts.map +1 -0
  344. package/lib/typescript/components/typographies/CaptionTwo/index.d.ts +3 -0
  345. package/lib/typescript/components/typographies/CaptionTwo/index.d.ts.map +1 -0
  346. package/lib/typescript/components/typographies/Footnote/Footnote.d.ts +12 -0
  347. package/lib/typescript/components/typographies/Footnote/Footnote.d.ts.map +1 -0
  348. package/lib/typescript/components/typographies/Footnote/index.d.ts +3 -0
  349. package/lib/typescript/components/typographies/Footnote/index.d.ts.map +1 -0
  350. package/lib/typescript/components/typographies/Headline/Headline.d.ts +12 -0
  351. package/lib/typescript/components/typographies/Headline/Headline.d.ts.map +1 -0
  352. package/lib/typescript/components/typographies/Headline/index.d.ts +3 -0
  353. package/lib/typescript/components/typographies/Headline/index.d.ts.map +1 -0
  354. package/lib/typescript/components/typographies/LargeTitle/LargeTitle.d.ts +12 -0
  355. package/lib/typescript/components/typographies/LargeTitle/LargeTitle.d.ts.map +1 -0
  356. package/lib/typescript/components/typographies/LargeTitle/index.d.ts +3 -0
  357. package/lib/typescript/components/typographies/LargeTitle/index.d.ts.map +1 -0
  358. package/lib/typescript/components/typographies/Subhead/Subhead.d.ts +12 -0
  359. package/lib/typescript/components/typographies/Subhead/Subhead.d.ts.map +1 -0
  360. package/lib/typescript/components/typographies/Subhead/index.d.ts +3 -0
  361. package/lib/typescript/components/typographies/Subhead/index.d.ts.map +1 -0
  362. package/lib/typescript/components/typographies/TitleOne/TitleOne.d.ts +12 -0
  363. package/lib/typescript/components/typographies/TitleOne/TitleOne.d.ts.map +1 -0
  364. package/lib/typescript/components/typographies/TitleOne/index.d.ts +3 -0
  365. package/lib/typescript/components/typographies/TitleOne/index.d.ts.map +1 -0
  366. package/lib/typescript/components/typographies/TitleThree/TitleThree.d.ts +12 -0
  367. package/lib/typescript/components/typographies/TitleThree/TitleThree.d.ts.map +1 -0
  368. package/lib/typescript/components/typographies/TitleThree/index.d.ts +3 -0
  369. package/lib/typescript/components/typographies/TitleThree/index.d.ts.map +1 -0
  370. package/lib/typescript/components/typographies/TitleTwo/TitleTwo.d.ts +12 -0
  371. package/lib/typescript/components/typographies/TitleTwo/TitleTwo.d.ts.map +1 -0
  372. package/lib/typescript/components/typographies/TitleTwo/index.d.ts +3 -0
  373. package/lib/typescript/components/typographies/TitleTwo/index.d.ts.map +1 -0
  374. package/lib/typescript/components/typographies/font.d.ts +9 -0
  375. package/lib/typescript/components/typographies/font.d.ts.map +1 -0
  376. package/lib/typescript/hooks/useTheme.d.ts +3 -0
  377. package/lib/typescript/hooks/useTheme.d.ts.map +1 -0
  378. package/lib/typescript/index.d.ts +31 -0
  379. package/lib/typescript/index.d.ts.map +1 -0
  380. package/lib/typescript/providers/DesignSystemProvider/DesignSystemProvider.d.ts +10 -0
  381. package/lib/typescript/providers/DesignSystemProvider/DesignSystemProvider.d.ts.map +1 -0
  382. package/lib/typescript/providers/DesignSystemProvider/index.d.ts +3 -0
  383. package/lib/typescript/providers/DesignSystemProvider/index.d.ts.map +1 -0
  384. package/lib/typescript/providers/IconProvider/IconProvider.d.ts +21 -0
  385. package/lib/typescript/providers/IconProvider/IconProvider.d.ts.map +1 -0
  386. package/lib/typescript/providers/IconProvider/index.d.ts +4 -0
  387. package/lib/typescript/providers/IconProvider/index.d.ts.map +1 -0
  388. package/lib/typescript/providers/ThemeProvider/ThemeProvider.d.ts +9 -0
  389. package/lib/typescript/providers/ThemeProvider/ThemeProvider.d.ts.map +1 -0
  390. package/lib/typescript/styles/calendarTheme.d.ts +24 -0
  391. package/lib/typescript/styles/calendarTheme.d.ts.map +1 -0
  392. package/lib/typescript/styles/colors.d.ts +100 -0
  393. package/lib/typescript/styles/colors.d.ts.map +1 -0
  394. package/lib/typescript/styles/globalStyles.d.ts +33 -0
  395. package/lib/typescript/styles/globalStyles.d.ts.map +1 -0
  396. package/lib/typescript/styles/space.d.ts +19 -0
  397. package/lib/typescript/styles/space.d.ts.map +1 -0
  398. package/lib/typescript/styles/theme.d.ts +183 -0
  399. package/lib/typescript/styles/theme.d.ts.map +1 -0
  400. package/lib/typescript/utils/locale.d.ts +15 -0
  401. package/lib/typescript/utils/locale.d.ts.map +1 -0
  402. package/package.json +30 -43
  403. package/src/components/Tag/Tag.tsx +59 -0
  404. package/src/components/Tag/index.ts +3 -0
  405. package/src/components/Touchable/Touchable.tsx +110 -0
  406. package/src/components/Touchable/index.ts +3 -0
  407. package/src/components/base/DatePicker/DatePicker.tsx +427 -0
  408. package/src/components/base/DatePicker/index.ts +4 -0
  409. package/src/components/base/HeaderArrows/HeaderArrows.tsx +93 -0
  410. package/src/components/base/HeaderArrows/index.ts +3 -0
  411. package/src/components/buttons/FicButton/FicButton.tsx +41 -0
  412. package/src/components/buttons/FicButton/FicButton.types.ts +114 -0
  413. package/src/components/buttons/FicButton/FicButtonIcon.tsx +161 -0
  414. package/src/components/buttons/FicButton/FicButtonPrimary.tsx +167 -0
  415. package/src/components/buttons/FicButton/FicButtonSecondary.tsx +168 -0
  416. package/src/components/buttons/FicButton/FicButtonTertiary.tsx +188 -0
  417. package/src/components/buttons/FicButton/constants.ts +23 -0
  418. package/src/components/buttons/FicButton/index.ts +5 -0
  419. package/src/components/buttons/FicButton/themes/dark.ts +273 -0
  420. package/src/components/buttons/FicButton/themes/index.ts +3 -0
  421. package/src/components/buttons/FicButton/themes/light.ts +293 -0
  422. package/src/components/buttons/FicButtonGroup/FicButtonGroup.tsx +40 -0
  423. package/src/components/buttons/FicButtonGroup/FicButtonGroup.types.ts +11 -0
  424. package/src/components/buttons/FicButtonGroup/index.ts +2 -0
  425. package/src/components/notifications/Banner/Banner.tsx +105 -0
  426. package/src/components/notifications/Banner/Banner.types.ts +69 -0
  427. package/src/components/notifications/Banner/index.ts +3 -0
  428. package/src/components/notifications/Banner/themes/dark.ts +43 -0
  429. package/src/components/notifications/Banner/themes/index.ts +4 -0
  430. package/src/components/notifications/Banner/themes/light.ts +43 -0
  431. package/src/components/typographies/Body/Body.tsx +38 -0
  432. package/src/components/typographies/Body/index.ts +3 -0
  433. package/src/components/typographies/ButtonTitle/ButtonTitle.tsx +51 -0
  434. package/src/components/typographies/ButtonTitle/index.ts +3 -0
  435. package/src/components/typographies/Callout/Callout.tsx +38 -0
  436. package/src/components/typographies/Callout/index.ts +3 -0
  437. package/src/components/typographies/CaptionOne/CaptionOne.tsx +38 -0
  438. package/src/components/typographies/CaptionOne/index.ts +4 -0
  439. package/src/components/typographies/CaptionTwo/CaptionTwo.tsx +38 -0
  440. package/src/components/typographies/CaptionTwo/index.ts +4 -0
  441. package/src/components/typographies/Footnote/Footnote.tsx +38 -0
  442. package/src/components/typographies/Footnote/index.ts +4 -0
  443. package/src/components/typographies/Headline/Headline.tsx +38 -0
  444. package/src/components/typographies/Headline/index.ts +4 -0
  445. package/src/components/typographies/LargeTitle/LargeTitle.tsx +38 -0
  446. package/src/components/typographies/LargeTitle/index.ts +3 -0
  447. package/src/components/typographies/README.md +22 -0
  448. package/src/components/typographies/Subhead/Subhead.tsx +38 -0
  449. package/src/components/typographies/Subhead/index.ts +4 -0
  450. package/src/components/typographies/TitleOne/TitleOne.tsx +38 -0
  451. package/src/components/typographies/TitleOne/index.ts +4 -0
  452. package/src/components/typographies/TitleThree/TitleThree.tsx +38 -0
  453. package/src/components/typographies/TitleThree/index.ts +4 -0
  454. package/src/components/typographies/TitleTwo/TitleTwo.tsx +38 -0
  455. package/src/components/typographies/TitleTwo/index.ts +4 -0
  456. package/src/components/typographies/font.ts +25 -0
  457. package/src/hooks/useTheme.ts +17 -0
  458. package/src/index.tsx +47 -0
  459. package/src/providers/DesignSystemProvider/DesignSystemProvider.tsx +31 -0
  460. package/src/providers/DesignSystemProvider/index.ts +3 -0
  461. package/src/providers/IconProvider/IconProvider.tsx +46 -0
  462. package/src/providers/IconProvider/index.ts +4 -0
  463. package/src/providers/ThemeProvider/ThemeProvider.tsx +17 -0
  464. package/src/styles/calendarTheme.ts +24 -0
  465. package/src/styles/colors.ts +119 -0
  466. package/src/styles/globalStyles.ts +36 -0
  467. package/src/styles/space.ts +27 -0
  468. package/src/styles/theme.ts +609 -0
  469. package/src/utils/locale.ts +50 -0
@@ -0,0 +1,427 @@
1
+ import { capitalize } from 'lodash';
2
+ import moment from 'moment';
3
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
4
+ // @ts-ignore
5
+ import { ViewProps } from 'react-native';
6
+ import { Calendar, DateData } from 'react-native-calendars';
7
+ import { Direction } from 'react-native-calendars/src/types';
8
+ import { useTheme } from '../../../hooks/useTheme';
9
+ import { Icon, IconProps } from '../../../providers/IconProvider';
10
+ import { CalendarTheme } from '../../../styles/calendarTheme';
11
+ import { Colors } from '../../../styles/colors';
12
+ import { DEFAULT_ICON_SIZE } from '../../buttons/FicButton/constants';
13
+ import { Body } from '../../typographies/Body';
14
+ import { FontWeight } from '../../typographies/font';
15
+ import { HeaderArrows } from '../HeaderArrows';
16
+
17
+ type CustomIconNames = {
18
+ left: string;
19
+ right: string;
20
+ };
21
+
22
+ export interface IDatePickerProps {
23
+ onDatePicked: (date: string) => void;
24
+ value?: string;
25
+ /**
26
+ * Use this value when you want to use a period picker, it is used to show the starting date of the period when picking the ending one.
27
+ * Must be formatted following the current Locale.
28
+ */
29
+ startingDate?: string;
30
+ /**
31
+ * Use this value when you want to use a period picker, it is used to show the ending date of the period when picking the starting one.
32
+ * Must be formatted following the current Locale.
33
+ */
34
+ endingDate?: string;
35
+ /**
36
+ * Minimum selectable date, dates before this one will be disabled.
37
+ * Must be formatted following the current Locale.
38
+ */
39
+ minDate?: string;
40
+ /**
41
+ * Maximum selectable date, dates after this one will be disabled.
42
+ * Must be formatted following the current Locale.
43
+ */
44
+ maxDate?: string;
45
+ /**
46
+ * Always show six weeks on each month (only when hideExtraDays = false)
47
+ */
48
+ showSixWeeks?: boolean | undefined;
49
+ /**
50
+ * Do not show days of other months in month page
51
+ */
52
+ hideExtraDays?: boolean;
53
+ /**
54
+ * Icon names for the month and year arrows
55
+ * If not provided, default icons will be used
56
+ */
57
+ monthIconNames?: CustomIconNames;
58
+ yearIconNames?: CustomIconNames;
59
+ format?: string;
60
+ firstDay?: number;
61
+ theme?: CalendarTheme;
62
+ withYearSelector?: boolean;
63
+ headerIconProps?: HeaderIconProps;
64
+ }
65
+
66
+ export type CalendarUnit = 'month' | 'year';
67
+
68
+ export type IconComponent = {
69
+ component: JSX.Element;
70
+ calendarUnit: CalendarUnit;
71
+ };
72
+
73
+ export type HeaderIconProps = Omit<
74
+ IconProps,
75
+ 'name' | 'size' | keyof ViewProps
76
+ >;
77
+
78
+ const DatePicker: React.FC<IDatePickerProps> = (props: IDatePickerProps) => {
79
+ const { datePickers } = useTheme();
80
+
81
+ const {
82
+ onDatePicked,
83
+ value,
84
+ startingDate,
85
+ endingDate,
86
+ minDate,
87
+ maxDate,
88
+ showSixWeeks = true,
89
+ hideExtraDays = false,
90
+ format = moment.localeData().longDateFormat('L'),
91
+ firstDay,
92
+ theme = datePickers,
93
+ withYearSelector = false,
94
+ monthIconNames,
95
+ yearIconNames,
96
+ headerIconProps,
97
+ } = props;
98
+
99
+ // The style for selected days in period 💄
100
+ const periodMarkingStyle = useMemo(
101
+ () => ({
102
+ color: theme.selectedDayBackgroundColor,
103
+ textColor: theme.selectedDayTextColor,
104
+ }),
105
+ [theme.selectedDayBackgroundColor, theme.selectedDayTextColor]
106
+ );
107
+
108
+ const formattedStartingDay =
109
+ startingDate && moment(startingDate, format).format('YYYY-MM-DD');
110
+ const formattedEndingDay =
111
+ endingDate && moment(endingDate, format).format('YYYY-MM-DD');
112
+ const selectedDate =
113
+ value && moment(value, format).isValid()
114
+ ? moment(value, format).format('YYYY-MM-DD')
115
+ : undefined;
116
+
117
+ const [currentYear, setCurrentYear] = useState(
118
+ value
119
+ ? moment(value, format).year()
120
+ : maxDate
121
+ ? moment(maxDate, format).year()
122
+ : moment().year()
123
+ );
124
+ const [currentMonth, setCurrentMonth] = useState(
125
+ value
126
+ ? moment(value, format).month() + 1
127
+ : maxDate
128
+ ? moment(maxDate, format).month() + 1
129
+ : moment().month() + 1
130
+ );
131
+
132
+ useEffect(() => {
133
+ if (value !== undefined) {
134
+ // Improved efficiency. No need to update the state if the value is the same.
135
+ const newMonthFromValue = moment(value, format).month() + 1;
136
+ const newYearFromValue = moment(value, format).year();
137
+ if (currentMonth !== newMonthFromValue) {
138
+ setCurrentMonth(newMonthFromValue);
139
+ }
140
+ if (currentYear !== newYearFromValue) {
141
+ setCurrentYear(newYearFromValue);
142
+ }
143
+ }
144
+ }, [value]);
145
+
146
+ const currentDate = useMemo(
147
+ () =>
148
+ moment(`${currentYear}-${currentMonth}`, 'YYYY-M').format('YYYY-MM-DD'),
149
+ [currentYear, currentMonth]
150
+ );
151
+
152
+ // Creates the object with all the days between startDate and endDate styled correctly
153
+ const createDatePeriod = useCallback(
154
+ (startDate: string, endDate: string) => {
155
+ const dateRange = {
156
+ [startDate]: { startingDay: true, ...periodMarkingStyle },
157
+ [endDate]: { endingDay: true, ...periodMarkingStyle },
158
+ };
159
+
160
+ if (startDate && endDate) {
161
+ let start = moment(startDate).startOf('day').add(1, 'days');
162
+ const end = moment(endDate).startOf('day');
163
+
164
+ while (end.isAfter(start)) {
165
+ Object.assign(dateRange, {
166
+ [start.format('YYYY-MM-DD')]: periodMarkingStyle,
167
+ });
168
+ start = start.add(1, 'days');
169
+ }
170
+ }
171
+
172
+ return dateRange;
173
+ },
174
+ [periodMarkingStyle]
175
+ );
176
+
177
+ const onDateSelected = useCallback(
178
+ (date: DateData) => onDatePicked(moment(date.dateString).format(format)),
179
+ [format, onDatePicked]
180
+ );
181
+
182
+ const markingType =
183
+ (!!formattedStartingDay && formattedStartingDay !== selectedDate) ||
184
+ (!!formattedEndingDay && formattedEndingDay !== selectedDate)
185
+ ? 'period'
186
+ : undefined;
187
+
188
+ const formattedMinDate =
189
+ minDate && moment(minDate, format).format('YYYY-MM-DD');
190
+ const formattedMaxDate =
191
+ maxDate && moment(maxDate, format).format('YYYY-MM-DD');
192
+
193
+ const isTodayBetweenStartingDayAndSelected =
194
+ !!selectedDate &&
195
+ !!formattedStartingDay &&
196
+ moment().isBetween(
197
+ moment(formattedStartingDay).startOf('day'),
198
+ moment(selectedDate).endOf('day')
199
+ );
200
+ const isTodayBetweenSelectedAndEndingDay =
201
+ !!selectedDate &&
202
+ !!formattedEndingDay &&
203
+ moment().isBetween(
204
+ moment(selectedDate).startOf('day'),
205
+ moment(formattedEndingDay).endOf('day')
206
+ );
207
+ const isSelectedDateToday =
208
+ !!selectedDate && moment().isSame(moment(selectedDate), 'day');
209
+ const isTodayInRange =
210
+ !!selectedDate &&
211
+ (isTodayBetweenStartingDayAndSelected ||
212
+ isTodayBetweenSelectedAndEndingDay ||
213
+ isSelectedDateToday);
214
+
215
+ const {
216
+ todayBackgroundColor,
217
+ todayTextColor,
218
+ arrowColor,
219
+ monthTextColor,
220
+ textMonthFontWeight,
221
+ ...restTheme
222
+ } = theme;
223
+
224
+ const markedDates: any = useMemo(() => {
225
+ const toReturn: any = {};
226
+
227
+ // Filling markedDates for the calendar
228
+ if (!!formattedStartingDay) {
229
+ // If startingDay is defined, treat this calendar as a period picker for the endingDay
230
+ if (!!selectedDate) {
231
+ if (formattedStartingDay === selectedDate) {
232
+ toReturn[formattedStartingDay] = { selected: true };
233
+ } else {
234
+ // Sets all the days between the selected dates with the selected style
235
+ Object.assign(
236
+ toReturn,
237
+ createDatePeriod(formattedStartingDay, selectedDate)
238
+ );
239
+ }
240
+ } else {
241
+ toReturn[formattedStartingDay] = {
242
+ startingDay: true,
243
+ ...periodMarkingStyle,
244
+ };
245
+ }
246
+ } else if (!!formattedEndingDay) {
247
+ // If endingDay is defined, treat this calendar as a period picker for the startingDay
248
+ if (!!selectedDate) {
249
+ if (formattedEndingDay === selectedDate) {
250
+ toReturn[formattedEndingDay] = { selected: true };
251
+ } else {
252
+ // Sets all the days between the selected dates with the selected style
253
+ Object.assign(
254
+ toReturn,
255
+ createDatePeriod(selectedDate, formattedEndingDay)
256
+ );
257
+ }
258
+ } else {
259
+ toReturn[formattedEndingDay] = {
260
+ endingDay: true,
261
+ ...periodMarkingStyle,
262
+ };
263
+ }
264
+ } else if (!!selectedDate) {
265
+ // Simple picker
266
+ toReturn[selectedDate] = { selected: true };
267
+ }
268
+
269
+ // If today is not selected, we want to style the day with the todayBackgroundColor
270
+ if (!isTodayInRange) {
271
+ if (markingType === 'period') {
272
+ // Whether today is after the starting date or before the ending date
273
+ const isAfterStartingDate =
274
+ !!formattedStartingDay &&
275
+ moment().isAfter(moment(formattedStartingDay).startOf('day'));
276
+ const isBeforeEndingDate =
277
+ !!formattedEndingDay &&
278
+ moment().isBefore(moment(formattedEndingDay).endOf('day'));
279
+ const isSelectable = isAfterStartingDate || isBeforeEndingDate;
280
+
281
+ if (isSelectable) {
282
+ toReturn[moment().format('YYYY-MM-DD')] = {
283
+ startingDay: true,
284
+ endingDay: true,
285
+ color: todayBackgroundColor,
286
+ textColor: todayTextColor,
287
+ };
288
+ }
289
+ } else {
290
+ toReturn[moment().format('YYYY-MM-DD')] = {
291
+ color: todayBackgroundColor,
292
+ textColor: todayTextColor,
293
+ };
294
+ }
295
+ }
296
+
297
+ return toReturn;
298
+ }, [
299
+ formattedStartingDay,
300
+ formattedEndingDay,
301
+ periodMarkingStyle,
302
+ selectedDate,
303
+ createDatePeriod,
304
+ isTodayInRange,
305
+ markingType,
306
+ todayBackgroundColor,
307
+ todayTextColor,
308
+ ]);
309
+
310
+ const onPreviousYearPress = () => {
311
+ setCurrentYear(currentYear - 1);
312
+ };
313
+
314
+ const onPreviousMonthPress = () => {
315
+ if (currentMonth === 1) {
316
+ setCurrentYear(currentYear - 1);
317
+ setCurrentMonth(12);
318
+ } else {
319
+ setCurrentMonth(currentMonth - 1);
320
+ }
321
+ };
322
+
323
+ const onNextYearPress = () => {
324
+ setCurrentYear(currentYear + 1);
325
+ };
326
+
327
+ const onNextMonthPress = () => {
328
+ if (currentMonth === 12) {
329
+ setCurrentYear(currentYear + 1);
330
+ setCurrentMonth(1);
331
+ } else {
332
+ setCurrentMonth(currentMonth + 1);
333
+ }
334
+ };
335
+
336
+ const Arrows = ({ direction }: { direction: Direction }) => {
337
+ const createIconComponent = (
338
+ name: string,
339
+ calendarUnit: CalendarUnit
340
+ ): IconComponent => ({
341
+ component: (
342
+ <Icon
343
+ name={name}
344
+ size={DEFAULT_ICON_SIZE}
345
+ color={arrowColor || Colors.BLUE}
346
+ {...headerIconProps}
347
+ />
348
+ ),
349
+ calendarUnit,
350
+ });
351
+
352
+ const _monthIconName = monthIconNames
353
+ ? direction === 'left'
354
+ ? monthIconNames.left
355
+ : monthIconNames.right
356
+ : `chevron-${direction}`;
357
+ const _yearIconName = yearIconNames
358
+ ? direction === 'left'
359
+ ? yearIconNames.left
360
+ : yearIconNames.right
361
+ : `chevron-double-${direction}`;
362
+
363
+ const monthIconComponent = createIconComponent(_monthIconName, 'month');
364
+ const yearIconComponent = createIconComponent(_yearIconName, 'year');
365
+
366
+ return (
367
+ <HeaderArrows
368
+ withYearSelector={withYearSelector}
369
+ monthIconComponent={monthIconComponent}
370
+ yearIconComponent={yearIconComponent}
371
+ onPreviousMonthPress={onPreviousMonthPress}
372
+ onPreviousYearPress={onPreviousYearPress}
373
+ onNextMonthPress={onNextMonthPress}
374
+ onNextYearPress={onNextYearPress}
375
+ direction={direction}
376
+ />
377
+ );
378
+ };
379
+
380
+ // Memoized Header
381
+ const Header = useMemo(
382
+ () => (
383
+ <Body
384
+ color={monthTextColor || Colors.BLUE}
385
+ weight={FontWeight.SEMIBOLD}
386
+ style={{
387
+ fontWeight: textMonthFontWeight,
388
+ }}
389
+ >
390
+ {capitalize(
391
+ moment(`${currentMonth}-${currentYear}`, 'M-YYYY').format('MMMM YYYY')
392
+ )}
393
+ </Body>
394
+ ),
395
+ [currentMonth, currentYear]
396
+ );
397
+
398
+ return (
399
+ <Calendar
400
+ disableArrowLeft
401
+ disableArrowRight
402
+ key={`${currentYear}-${currentMonth}`}
403
+ renderArrow={(direction: Direction) => <Arrows direction={direction} />}
404
+ renderHeader={() => Header}
405
+ onDayPress={onDateSelected}
406
+ current={
407
+ currentDate ||
408
+ selectedDate ||
409
+ formattedStartingDay ||
410
+ formattedEndingDay ||
411
+ formattedMinDate ||
412
+ formattedMaxDate
413
+ }
414
+ hideExtraDays={hideExtraDays}
415
+ // @ts-ignore
416
+ showSixWeeks={showSixWeeks as any}
417
+ markingType={markingType as 'custom'}
418
+ markedDates={markedDates}
419
+ minDate={formattedMinDate || formattedStartingDay}
420
+ maxDate={formattedMaxDate || formattedEndingDay}
421
+ firstDay={firstDay}
422
+ theme={isTodayInRange ? restTheme : theme}
423
+ />
424
+ );
425
+ };
426
+
427
+ export default DatePicker;
@@ -0,0 +1,4 @@
1
+ import DatePicker, { IDatePickerProps } from './DatePicker';
2
+
3
+ export { DatePicker };
4
+ export type { IDatePickerProps };
@@ -0,0 +1,93 @@
1
+ import React, { FunctionComponent } from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import { Direction } from 'react-native-calendars/src/types';
4
+ import { Touchable } from '../../Touchable';
5
+ import { CalendarUnit, IconComponent } from '../DatePicker/DatePicker';
6
+
7
+ interface IHeaderArrowsProps {
8
+ withYearSelector: boolean;
9
+ direction: Direction;
10
+ monthIconComponent: IconComponent;
11
+ yearIconComponent: IconComponent;
12
+ onPreviousYearPress: () => void;
13
+ onPreviousMonthPress: () => void;
14
+ onNextYearPress: () => void;
15
+ onNextMonthPress: () => void;
16
+ }
17
+
18
+ const HeaderArrows: FunctionComponent<IHeaderArrowsProps> = ({
19
+ withYearSelector,
20
+ direction,
21
+ monthIconComponent,
22
+ yearIconComponent,
23
+ onPreviousMonthPress,
24
+ onPreviousYearPress,
25
+ onNextMonthPress,
26
+ onNextYearPress,
27
+ }) => {
28
+ const iconSet: IconComponent[] = withYearSelector
29
+ ? [monthIconComponent, yearIconComponent]
30
+ : [monthIconComponent];
31
+
32
+ const iconsToBeRendered: IconComponent[] =
33
+ direction === 'left' ? iconSet.reverse() : iconSet;
34
+
35
+ const actions: { [key in Direction]: { [key in CalendarUnit]: () => void } } =
36
+ {
37
+ left: {
38
+ month: onPreviousMonthPress,
39
+ year: onPreviousYearPress,
40
+ },
41
+ right: {
42
+ month: onNextMonthPress,
43
+ year: onNextYearPress,
44
+ },
45
+ };
46
+
47
+ const handleAction = (calendarUnit: CalendarUnit): void =>
48
+ actions?.[direction]?.[calendarUnit]?.();
49
+
50
+ return (
51
+ <View style={styles.container}>
52
+ {iconsToBeRendered.map(({ calendarUnit, component }, idx) => (
53
+ <Touchable
54
+ key={idx}
55
+ style={[
56
+ styles.iconContainer,
57
+ direction === 'left' && styles.iconContainerLeft,
58
+ direction === 'right' && styles.iconContainerRight,
59
+ ]}
60
+ hitSlop={{ top: 8, right: 8, bottom: 8, left: 8 }}
61
+ onPress={() => handleAction(calendarUnit)}
62
+ >
63
+ {component}
64
+ </Touchable>
65
+ ))}
66
+ </View>
67
+ );
68
+ };
69
+
70
+ const styles = StyleSheet.create({
71
+ // For some reasons if we display custom arrows a horizontal padding of 10px is applied to the header container
72
+ container: {
73
+ alignItems: 'center',
74
+ flexDirection: 'row',
75
+ marginLeft: -10,
76
+ marginRight: -10,
77
+ },
78
+ iconContainer: {
79
+ flexDirection: 'row',
80
+ alignItems: 'center',
81
+ padding: 5,
82
+ },
83
+ iconContainerLeft: {
84
+ marginRight: 16,
85
+ marginLeft: 0,
86
+ },
87
+ iconContainerRight: {
88
+ marginRight: 0,
89
+ marginLeft: 16,
90
+ },
91
+ });
92
+
93
+ export default HeaderArrows;
@@ -0,0 +1,3 @@
1
+ import HeaderArrows from './HeaderArrows';
2
+
3
+ export { HeaderArrows };
@@ -0,0 +1,41 @@
1
+ // @ts-ignore TS6133
2
+ import React from 'react';
3
+ import { FicButtonProps } from './FicButton.types';
4
+ import FicButtonIcon from './FicButtonIcon';
5
+ import FicButtonPrimary from './FicButtonPrimary';
6
+ import FicButtonSecondary from './FicButtonSecondary';
7
+ import FicButtonTertiary from './FicButtonTertiary';
8
+
9
+ const FicButton: React.FC<FicButtonProps> = ({
10
+ type = 'primary',
11
+ ...commonProps
12
+ }) => {
13
+ const _iconPosition = commonProps.iconPosition
14
+ ? commonProps.iconPosition
15
+ : commonProps.iconName
16
+ ? 'left'
17
+ : undefined;
18
+
19
+ const FButton = () => {
20
+ switch (type) {
21
+ case 'icon':
22
+ return <FicButtonIcon isPressable {...commonProps} />;
23
+ case 'secondary':
24
+ return (
25
+ <FicButtonSecondary iconPosition={_iconPosition} {...commonProps} />
26
+ );
27
+ case 'tertiary':
28
+ return (
29
+ <FicButtonTertiary iconPosition={_iconPosition} {...commonProps} />
30
+ );
31
+ default:
32
+ return (
33
+ <FicButtonPrimary iconPosition={_iconPosition} {...commonProps} />
34
+ );
35
+ }
36
+ };
37
+
38
+ return <FButton />;
39
+ };
40
+
41
+ export default FicButton;
@@ -0,0 +1,114 @@
1
+ import { GestureResponderEvent, StyleProp, TextStyle, ViewStyle } from 'react-native';
2
+ import { Colors } from '../../../styles/colors';
3
+
4
+ export type FicButtonType = 'primary' | 'secondary' | 'tertiary' | 'icon';
5
+
6
+ export type FicButtonProps = {
7
+ /**
8
+ * Button error status
9
+ */
10
+ error?: boolean;
11
+
12
+ /**
13
+ * Button is disabled
14
+ */
15
+ disabled?: boolean;
16
+
17
+ /**
18
+ * Button Icon name
19
+ */
20
+ iconName?: string;
21
+
22
+ /**
23
+ * Button Icon position
24
+ */
25
+ iconPosition?: 'right' | 'left';
26
+
27
+ /**
28
+ * Button Icon position
29
+ */
30
+ iconSize?: number;
31
+
32
+ /**
33
+ * Button dimension -> small
34
+ */
35
+ small?: boolean;
36
+
37
+ /**
38
+ * Button is fullWidth
39
+ */
40
+ fullWidth?: boolean;
41
+
42
+ /**
43
+ * Button action title
44
+ */
45
+ title?: string;
46
+
47
+ /**
48
+ * Button action type
49
+ */
50
+ type?: FicButtonType;
51
+
52
+ /**
53
+ * Button aptic feedback
54
+ */
55
+ hapticFeedback?: boolean;
56
+
57
+ onPress?: ((event: GestureResponderEvent | undefined) => void) | null | undefined;
58
+
59
+ onPressIn?: ((event: GestureResponderEvent | undefined) => void) | null | undefined;
60
+
61
+ onPressOut?: ((event: GestureResponderEvent | undefined) => void) | null | undefined;
62
+
63
+ containerStyle?: StyleProp<ViewStyle>;
64
+
65
+ customPressedIconAreaSize?: number;
66
+
67
+ colorContrastForLightTheme?: boolean;
68
+
69
+ solid?: boolean;
70
+
71
+ light?: boolean;
72
+
73
+ regular?: boolean;
74
+
75
+ duotone?: boolean;
76
+ };
77
+
78
+ export type FicButtonTextProps = Omit<FicButtonProps, 'type'>;
79
+
80
+ export type FicIconProps = Omit<FicButtonProps, 'type' | 'iconPosition' | 'small' | 'title'> & {
81
+ isPressable?: boolean;
82
+ };
83
+
84
+ export type GenericViewStyle = Omit<ViewStyle, 'backgroundColor' | 'borderColor' | 'color' | 'iconSize'>;
85
+ export type GenericTextStyle = Omit<TextStyle, 'textDecorationLine' | 'color' | 'fontSize'>;
86
+
87
+ export type FicButtonStateProps = {
88
+ container: {
89
+ backgroundColor?: Colors;
90
+ borderColor?: Colors;
91
+ } & GenericViewStyle;
92
+ text: {
93
+ textDecorationLine?: any;
94
+ color?: Colors;
95
+ fontSize?: number;
96
+ colorContrastForLightTheme?: Colors;
97
+ } & GenericTextStyle;
98
+ icon: {
99
+ color?: Colors;
100
+ iconSize?: number;
101
+ colorContrastForLightTheme?: Colors;
102
+ } & GenericViewStyle;
103
+ pressedStyle?: Omit<FicButtonStateProps, 'pressedStyle'>;
104
+ };
105
+
106
+ export type FicButtonThemeProps = {
107
+ default: FicButtonStateProps;
108
+ disabled: FicButtonStateProps;
109
+ error: FicButtonStateProps;
110
+ };
111
+
112
+ export type FicButtonTheme = Record<FicButtonType, FicButtonThemeProps>;
113
+
114
+ export type onPressType = ((e?: GestureResponderEvent) => void) | (() => void);