@pareto-engineering/design-system 2.0.0-alpha.5 → 2.0.0-alpha.52

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 (309) hide show
  1. package/.env.scripts.example +4 -0
  2. package/.eslintrc.js +25 -1
  3. package/babel.config.js +1 -0
  4. package/dist/cjs/a/BackgroundGradient/BackgroundGradient.js +77 -0
  5. package/dist/cjs/a/BackgroundGradient/index.js +15 -0
  6. package/dist/cjs/a/BackgroundGradient/styles.scss +16 -0
  7. package/dist/cjs/a/ContentTree/ContentTree.js +83 -0
  8. package/dist/cjs/a/ContentTree/common/Tree/Tree.js +116 -0
  9. package/dist/cjs/a/ContentTree/common/Tree/index.js +15 -0
  10. package/dist/cjs/a/ContentTree/common/index.js +31 -0
  11. package/dist/cjs/a/ContentTree/common/useContentTree.js +82 -0
  12. package/dist/cjs/a/ContentTree/common/useFirstVisibleNode.js +65 -0
  13. package/dist/cjs/a/ContentTree/index.js +15 -0
  14. package/dist/cjs/a/ContentTree/styles.scss +33 -0
  15. package/dist/cjs/a/Conversation/Conversation.js +14 -8
  16. package/dist/cjs/a/Conversation/common/Message/Message.js +32 -6
  17. package/dist/cjs/a/Conversation/styles.scss +132 -33
  18. package/dist/cjs/a/OvalIllustration/OvalIllustration.js +133 -0
  19. package/dist/cjs/a/OvalIllustration/index.js +15 -0
  20. package/dist/cjs/a/OvalIllustration/styles.scss +102 -0
  21. package/dist/cjs/a/Popover/Popover.js +134 -0
  22. package/dist/cjs/a/Popover/common/Divider/Divider.js +67 -0
  23. package/dist/cjs/a/Popover/common/Divider/index.js +15 -0
  24. package/dist/cjs/a/Popover/common/Item/Item.js +67 -0
  25. package/dist/cjs/a/Popover/common/Item/index.js +15 -0
  26. package/dist/cjs/a/Popover/common/index.js +21 -0
  27. package/dist/cjs/a/Popover/index.js +15 -0
  28. package/dist/cjs/a/Popover/styles.scss +33 -0
  29. package/dist/cjs/a/Shapes/Shapes.js +39 -9
  30. package/dist/cjs/a/Shapes/styles.scss +79 -23
  31. package/dist/cjs/a/SnapScroller/SnapScroller.js +77 -0
  32. package/dist/cjs/a/SnapScroller/index.js +15 -0
  33. package/dist/cjs/a/SnapScroller/styles.scss +38 -0
  34. package/dist/cjs/a/index.js +41 -1
  35. package/dist/cjs/b/Button/Button.js +10 -4
  36. package/dist/cjs/b/Button/styles.scss +55 -10
  37. package/dist/cjs/b/Logo/Logo.js +41 -41
  38. package/dist/cjs/b/Logo/styles.scss +0 -138
  39. package/dist/cjs/b/Page/common/Section/Section.js +35 -7
  40. package/dist/cjs/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.js +16 -9
  41. package/dist/cjs/c/ContentSlides/common/Navigator/Navigator.js +4 -3
  42. package/dist/cjs/c/ContentSlides/styles.scss +10 -4
  43. package/dist/cjs/c/SocialMediaShareButton/SocialMediaShareButton.js +111 -0
  44. package/dist/cjs/c/SocialMediaShareButton/index.js +15 -0
  45. package/dist/cjs/c/SocialMediaShareButton/styles.scss +39 -0
  46. package/dist/cjs/c/index.js +9 -1
  47. package/dist/cjs/f/FormInput/FormInput.js +20 -3
  48. package/dist/cjs/f/FormInput/styles.scss +11 -0
  49. package/dist/cjs/f/common/Debugger/Debugger.js +1 -1
  50. package/dist/cjs/f/common/Label/Label.js +1 -1
  51. package/dist/cjs/f/common/Label/styles.scss +1 -1
  52. package/dist/cjs/f/fields/ChoicesInput/ChoicesInput.js +1 -1
  53. package/dist/cjs/f/fields/ChoicesInput/styles.scss +17 -2
  54. package/dist/cjs/f/fields/QueryCombobox/QueryCombobox.js +236 -0
  55. package/dist/cjs/f/fields/QueryCombobox/common/Combobox/Combobox.js +205 -0
  56. package/dist/cjs/f/fields/QueryCombobox/common/Combobox/index.js +15 -0
  57. package/dist/cjs/f/fields/QueryCombobox/common/Menu/Menu.js +103 -0
  58. package/dist/cjs/f/fields/QueryCombobox/common/Menu/index.js +15 -0
  59. package/dist/cjs/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +304 -0
  60. package/dist/cjs/f/fields/QueryCombobox/common/MultipleCombobox/index.js +15 -0
  61. package/dist/cjs/f/fields/QueryCombobox/common/index.js +29 -0
  62. package/dist/cjs/f/fields/QueryCombobox/index.js +15 -0
  63. package/dist/cjs/f/fields/QueryCombobox/styles.scss +90 -0
  64. package/dist/cjs/f/fields/QuerySelect/QuerySelect.js +201 -0
  65. package/dist/cjs/f/fields/QuerySelect/index.js +15 -0
  66. package/dist/cjs/f/fields/QuerySelect/styles.scss +21 -0
  67. package/dist/cjs/f/fields/RatingsInput/RatingsInput.js +39 -6
  68. package/dist/cjs/f/fields/RatingsInput/styles.scss +29 -20
  69. package/dist/cjs/f/fields/SelectInput/SelectInput.js +50 -13
  70. package/dist/cjs/f/fields/SelectInput/styles.scss +33 -13
  71. package/dist/cjs/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +1 -1
  72. package/dist/cjs/f/fields/TextInput/TextInput.js +35 -7
  73. package/dist/cjs/f/fields/TextInput/styles.scss +16 -7
  74. package/dist/cjs/f/fields/TextareaInput/TextareaInput.js +15 -8
  75. package/dist/cjs/f/fields/TextareaInput/styles.scss +19 -6
  76. package/dist/cjs/f/fields/index.js +15 -23
  77. package/dist/cjs/form-reset.scss +1 -1
  78. package/dist/cjs/index.js +26 -0
  79. package/dist/cjs/test/QueryLoader/QueryLoader.js +41 -0
  80. package/dist/cjs/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +71 -0
  81. package/dist/cjs/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.js +49 -0
  82. package/dist/cjs/test/QueryLoader/common/PreloadedTestData/index.js +15 -0
  83. package/dist/cjs/test/QueryLoader/common/index.js +13 -0
  84. package/dist/cjs/test/QueryLoader/index.js +15 -0
  85. package/dist/cjs/test/QueryLoader/styles.scss +9 -0
  86. package/dist/cjs/test/index.js +13 -0
  87. package/dist/cjs/utils/hooks/index.js +23 -0
  88. package/dist/cjs/utils/hooks/useDynamicPosition.js +107 -0
  89. package/dist/cjs/utils/hooks/useWindowSize.js +39 -0
  90. package/dist/cjs/utils/index.js +19 -0
  91. package/dist/es/a/BackgroundGradient/BackgroundGradient.js +55 -0
  92. package/dist/es/a/BackgroundGradient/index.js +2 -0
  93. package/dist/es/a/BackgroundGradient/styles.scss +16 -0
  94. package/dist/es/a/ContentTree/ContentTree.js +67 -0
  95. package/dist/es/a/ContentTree/common/Tree/Tree.js +98 -0
  96. package/dist/es/a/ContentTree/common/Tree/index.js +2 -0
  97. package/dist/es/a/ContentTree/common/index.js +3 -0
  98. package/dist/es/a/ContentTree/common/useContentTree.js +74 -0
  99. package/dist/es/a/ContentTree/common/useFirstVisibleNode.js +54 -0
  100. package/dist/es/a/ContentTree/index.js +2 -0
  101. package/dist/es/a/ContentTree/styles.scss +33 -0
  102. package/dist/es/a/Conversation/Conversation.js +14 -8
  103. package/dist/es/a/Conversation/common/Message/Message.js +32 -6
  104. package/dist/es/a/Conversation/styles.scss +132 -33
  105. package/dist/es/a/OvalIllustration/OvalIllustration.js +111 -0
  106. package/dist/es/a/OvalIllustration/index.js +2 -0
  107. package/dist/es/a/OvalIllustration/styles.scss +102 -0
  108. package/dist/es/a/Popover/Popover.js +118 -0
  109. package/dist/es/a/Popover/common/Divider/Divider.js +47 -0
  110. package/dist/es/a/Popover/common/Divider/index.js +2 -0
  111. package/dist/es/a/Popover/common/Item/Item.js +47 -0
  112. package/dist/es/a/Popover/common/Item/index.js +2 -0
  113. package/dist/es/a/Popover/common/index.js +2 -0
  114. package/dist/es/a/Popover/index.js +2 -0
  115. package/dist/es/a/Popover/styles.scss +33 -0
  116. package/dist/es/a/Shapes/Shapes.js +39 -9
  117. package/dist/es/a/Shapes/styles.scss +79 -23
  118. package/dist/es/a/SnapScroller/SnapScroller.js +61 -0
  119. package/dist/es/a/SnapScroller/index.js +2 -0
  120. package/dist/es/a/SnapScroller/styles.scss +38 -0
  121. package/dist/es/a/index.js +6 -1
  122. package/dist/es/b/Button/Button.js +8 -2
  123. package/dist/es/b/Button/styles.scss +55 -10
  124. package/dist/es/b/Logo/Logo.js +41 -41
  125. package/dist/es/b/Logo/styles.scss +0 -138
  126. package/dist/es/b/Page/common/Section/Section.js +34 -6
  127. package/dist/es/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.js +16 -9
  128. package/dist/es/c/ContentSlides/common/Navigator/Navigator.js +4 -3
  129. package/dist/es/c/ContentSlides/styles.scss +10 -4
  130. package/dist/es/c/SocialMediaShareButton/SocialMediaShareButton.js +95 -0
  131. package/dist/es/c/SocialMediaShareButton/index.js +2 -0
  132. package/dist/es/c/SocialMediaShareButton/styles.scss +39 -0
  133. package/dist/es/c/index.js +2 -1
  134. package/dist/es/f/FormInput/FormInput.js +20 -3
  135. package/dist/es/f/FormInput/styles.scss +11 -0
  136. package/dist/es/f/common/Debugger/Debugger.js +1 -1
  137. package/dist/es/f/common/Label/Label.js +1 -1
  138. package/dist/es/f/common/Label/styles.scss +1 -1
  139. package/dist/es/f/fields/ChoicesInput/ChoicesInput.js +1 -1
  140. package/dist/es/f/fields/ChoicesInput/styles.scss +17 -2
  141. package/dist/es/f/fields/QueryCombobox/QueryCombobox.js +213 -0
  142. package/dist/es/f/fields/QueryCombobox/common/Combobox/Combobox.js +185 -0
  143. package/dist/es/f/fields/QueryCombobox/common/Combobox/index.js +2 -0
  144. package/dist/es/f/fields/QueryCombobox/common/Menu/Menu.js +77 -0
  145. package/dist/es/f/fields/QueryCombobox/common/Menu/index.js +2 -0
  146. package/dist/es/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +276 -0
  147. package/dist/es/f/fields/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  148. package/dist/es/f/fields/QueryCombobox/common/index.js +3 -0
  149. package/dist/es/f/fields/QueryCombobox/index.js +2 -0
  150. package/dist/es/f/fields/QueryCombobox/styles.scss +90 -0
  151. package/dist/es/f/fields/QuerySelect/QuerySelect.js +179 -0
  152. package/dist/es/f/fields/QuerySelect/index.js +2 -0
  153. package/dist/es/f/fields/QuerySelect/styles.scss +21 -0
  154. package/dist/es/f/fields/RatingsInput/RatingsInput.js +38 -6
  155. package/dist/es/f/fields/RatingsInput/styles.scss +29 -20
  156. package/dist/es/f/fields/SelectInput/SelectInput.js +49 -13
  157. package/dist/es/f/fields/SelectInput/styles.scss +33 -13
  158. package/dist/es/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +1 -1
  159. package/dist/es/f/fields/TextInput/TextInput.js +35 -7
  160. package/dist/es/f/fields/TextInput/styles.scss +16 -7
  161. package/dist/es/f/fields/TextareaInput/TextareaInput.js +15 -8
  162. package/dist/es/f/fields/TextareaInput/styles.scss +19 -6
  163. package/dist/es/f/fields/index.js +3 -4
  164. package/dist/es/form-reset.scss +1 -1
  165. package/dist/es/index.js +3 -1
  166. package/dist/es/test/QueryLoader/QueryLoader.js +29 -0
  167. package/dist/es/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +71 -0
  168. package/dist/es/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.js +31 -0
  169. package/dist/es/test/QueryLoader/common/PreloadedTestData/index.js +2 -0
  170. package/dist/es/test/QueryLoader/common/index.js +1 -0
  171. package/dist/es/test/QueryLoader/index.js +2 -0
  172. package/dist/es/test/QueryLoader/styles.scss +9 -0
  173. package/dist/es/test/index.js +1 -0
  174. package/dist/es/utils/hooks/index.js +2 -0
  175. package/dist/es/utils/hooks/useDynamicPosition.js +93 -0
  176. package/dist/es/utils/hooks/useWindowSize.js +27 -0
  177. package/dist/es/utils/index.js +1 -0
  178. package/package.json +18 -4
  179. package/relay.config.js +12 -0
  180. package/schema.graphql +4075 -0
  181. package/scripts/fetchSchema.js +74 -0
  182. package/src/__snapshots__/Storyshots.test.js.snap +7018 -3507
  183. package/src/local.scss +4 -2
  184. package/src/stories/StyleGuide/Sprites.stories.mdx +25 -0
  185. package/src/stories/StyleGuide/helpers.js +16 -0
  186. package/src/stories/a/BackgroundGradient.stories.jsx +38 -0
  187. package/src/stories/a/ContentTree.stories.jsx +662 -0
  188. package/src/stories/a/Conversation.stories.jsx +78 -1
  189. package/src/stories/a/OvalIllustration.stories.jsx +59 -0
  190. package/src/stories/a/Popover.stories.jsx +106 -0
  191. package/src/stories/a/Shapes.stories.jsx +74 -43
  192. package/src/stories/a/SnapScroller.stories.jsx +98 -0
  193. package/src/stories/b/Button.stories.jsx +27 -4
  194. package/src/stories/b/Logo.stories.jsx +17 -9
  195. package/src/stories/b/Page.stories.jsx +27 -2
  196. package/src/stories/c/ContentSlides.stories.jsx +154 -2
  197. package/src/stories/c/SocialMediaShareButton.stories.jsx +25 -0
  198. package/src/stories/f/FormInput.stories.jsx +233 -0
  199. package/src/stories/f/QueryCombobox.stories.jsx +269 -0
  200. package/src/stories/f/QuerySelect.stories.jsx +134 -0
  201. package/src/stories/f/RatingsInput.stories.jsx +3 -2
  202. package/src/stories/f/SelectInput.stories.jsx +36 -5
  203. package/src/stories/f/TextInput.stories.jsx +15 -4
  204. package/src/stories/f/TextareaInput.stories.jsx +42 -6
  205. package/src/stories/f/__generated__/FormInputAllTaskStatusesQuery.graphql.js +122 -0
  206. package/src/stories/f/__generated__/FormInputAllTeamsQuery.graphql.js +139 -0
  207. package/src/stories/f/__generated__/QueryComboboxAllTeamsQuery.graphql.js +139 -0
  208. package/src/stories/f/__generated__/QuerySelectAllTaskStatusesQuery.graphql.js +122 -0
  209. package/src/stories/test/QueryLoader.stories.jsx +36 -0
  210. package/src/stories/utils/generateNodeId.js +12 -0
  211. package/src/stories/utils/lorem.js +15 -0
  212. package/src/stories/utils/relay/EnvironmentProvider.jsx +14 -0
  213. package/src/stories/utils/relay/environment.js +5 -0
  214. package/src/stories/utils/relay/index.js +4 -0
  215. package/src/stories/utils/relay/mockRelayOperation.js +14 -0
  216. package/src/stories/utils/relay/mockResolvers.js +299 -0
  217. package/src/stories/utils/testData.js +63 -0
  218. package/src/ui/a/BackgroundGradient/BackgroundGradient.jsx +76 -0
  219. package/src/ui/a/BackgroundGradient/index.js +2 -0
  220. package/src/ui/a/BackgroundGradient/styles.scss +16 -0
  221. package/src/ui/a/ContentTree/ContentTree.jsx +88 -0
  222. package/src/ui/a/ContentTree/common/Tree/Tree.jsx +138 -0
  223. package/src/ui/a/ContentTree/common/Tree/index.js +2 -0
  224. package/src/ui/a/ContentTree/common/index.js +3 -0
  225. package/src/ui/a/ContentTree/common/useContentTree.js +83 -0
  226. package/src/ui/a/ContentTree/common/useFirstVisibleNode.js +59 -0
  227. package/src/ui/a/ContentTree/index.js +2 -0
  228. package/src/ui/a/ContentTree/styles.scss +33 -0
  229. package/src/ui/a/Conversation/Conversation.jsx +15 -7
  230. package/src/ui/a/Conversation/common/Message/Message.jsx +38 -6
  231. package/src/ui/a/Conversation/styles.scss +132 -33
  232. package/src/ui/a/OvalIllustration/OvalIllustration.jsx +134 -0
  233. package/src/ui/a/OvalIllustration/index.js +2 -0
  234. package/src/ui/a/OvalIllustration/styles.scss +102 -0
  235. package/src/ui/a/Popover/Popover.jsx +157 -0
  236. package/src/ui/a/Popover/index.js +2 -0
  237. package/src/ui/a/Popover/styles.scss +33 -0
  238. package/src/ui/a/Shapes/Shapes.jsx +44 -7
  239. package/src/ui/a/Shapes/styles.scss +79 -23
  240. package/src/ui/a/SnapScroller/SnapScroller.jsx +83 -0
  241. package/src/ui/a/SnapScroller/index.js +2 -0
  242. package/src/ui/a/SnapScroller/styles.scss +38 -0
  243. package/src/ui/a/index.js +5 -0
  244. package/src/ui/b/Button/Button.jsx +9 -1
  245. package/src/ui/b/Button/styles.scss +55 -10
  246. package/src/ui/b/Logo/Logo.jsx +41 -41
  247. package/src/ui/b/Logo/styles.scss +0 -138
  248. package/src/ui/b/Page/common/Section/Section.jsx +39 -5
  249. package/src/ui/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.jsx +12 -5
  250. package/src/ui/c/ContentSlides/common/Navigator/Navigator.jsx +3 -2
  251. package/src/ui/c/ContentSlides/styles.scss +10 -4
  252. package/src/ui/c/SocialMediaShareButton/SocialMediaShareButton.jsx +121 -0
  253. package/src/ui/c/SocialMediaShareButton/index.js +2 -0
  254. package/src/ui/c/SocialMediaShareButton/styles.scss +39 -0
  255. package/src/ui/c/index.js +1 -0
  256. package/src/ui/f/FormInput/FormInput.jsx +26 -1
  257. package/src/ui/f/FormInput/styles.scss +11 -0
  258. package/src/ui/f/common/Debugger/Debugger.jsx +1 -1
  259. package/src/ui/f/common/Label/Label.jsx +1 -1
  260. package/src/ui/f/common/Label/styles.scss +1 -1
  261. package/src/ui/f/fields/ChoicesInput/ChoicesInput.jsx +1 -1
  262. package/src/ui/f/fields/ChoicesInput/styles.scss +17 -2
  263. package/src/ui/f/fields/QueryCombobox/QueryCombobox.jsx +227 -0
  264. package/src/ui/f/fields/QueryCombobox/common/Combobox/Combobox.jsx +222 -0
  265. package/src/ui/f/fields/QueryCombobox/common/Combobox/index.js +2 -0
  266. package/src/ui/f/fields/QueryCombobox/common/Menu/Menu.jsx +103 -0
  267. package/src/ui/f/fields/QueryCombobox/common/Menu/index.js +2 -0
  268. package/src/ui/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +318 -0
  269. package/src/ui/f/fields/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  270. package/src/ui/f/fields/QueryCombobox/common/index.js +3 -0
  271. package/src/ui/f/fields/QueryCombobox/index.js +2 -0
  272. package/src/ui/f/fields/QueryCombobox/styles.scss +90 -0
  273. package/src/ui/f/fields/QuerySelect/QuerySelect.jsx +200 -0
  274. package/src/ui/f/fields/QuerySelect/index.js +2 -0
  275. package/src/ui/f/fields/RatingsInput/RatingsInput.jsx +54 -19
  276. package/src/ui/f/fields/RatingsInput/styles.scss +29 -20
  277. package/src/ui/f/fields/SelectInput/SelectInput.jsx +59 -8
  278. package/src/ui/f/fields/SelectInput/styles.scss +33 -13
  279. package/src/ui/f/fields/TextInput/TextInput.jsx +31 -3
  280. package/src/ui/f/fields/TextInput/styles.scss +16 -7
  281. package/src/ui/f/fields/TextareaInput/TextareaInput.jsx +24 -13
  282. package/src/ui/f/fields/TextareaInput/styles.scss +19 -6
  283. package/src/ui/f/fields/index.js +2 -3
  284. package/src/ui/form-reset.scss +1 -1
  285. package/src/ui/index.js +2 -0
  286. package/src/ui/test/QueryLoader/QueryLoader.jsx +41 -0
  287. package/src/ui/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +68 -0
  288. package/src/ui/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.jsx +51 -0
  289. package/src/ui/test/QueryLoader/common/PreloadedTestData/index.js +2 -0
  290. package/src/ui/test/QueryLoader/common/index.js +1 -0
  291. package/src/ui/test/QueryLoader/index.js +2 -0
  292. package/src/ui/test/index.js +1 -0
  293. package/src/ui/utils/hooks/index.js +2 -0
  294. package/src/ui/utils/hooks/useDynamicPosition.js +104 -0
  295. package/src/ui/utils/hooks/useWindowSize.js +32 -0
  296. package/src/ui/utils/index.js +1 -0
  297. package/stylelint.config.js +13 -13
  298. package/src/stories/f/CheckboxInput.stories.jsx +0 -37
  299. package/src/stories/f/RadioInput.stories.jsx +0 -37
  300. package/src/stories/f/TaskRecommendationInput.stories.jsx +0 -38
  301. package/src/ui/f/fields/CheckboxInput/CheckboxInput.jsx +0 -107
  302. package/src/ui/f/fields/CheckboxInput/index.js +0 -2
  303. package/src/ui/f/fields/CheckboxInput/styles.scss +0 -28
  304. package/src/ui/f/fields/RadioInput/RadioInput.jsx +0 -112
  305. package/src/ui/f/fields/RadioInput/index.js +0 -2
  306. package/src/ui/f/fields/RadioInput/styles.scss +0 -26
  307. package/src/ui/f/fields/TaskRecommendationInput/TaskRecommendationInput.jsx +0 -130
  308. package/src/ui/f/fields/TaskRecommendationInput/index.js +0 -2
  309. package/src/ui/f/fields/TaskRecommendationInput/styles.scss +0 -41
@@ -0,0 +1,269 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react'
3
+
4
+ import { Formik, Form, useField } from 'formik'
5
+
6
+ import { Button, FormDebugger, QueryCombobox } from 'ui'
7
+
8
+ import { fruits } from '../utils/testData'
9
+
10
+ import generateNodeId from '../utils/generateNodeId'
11
+
12
+ import {
13
+ RelayEnvironmentProvider,
14
+ mockRelayOperation,
15
+ // environment,
16
+ } from '../utils/relay'
17
+
18
+ export default {
19
+ title :'f/fields/QueryCombobox',
20
+ component :QueryCombobox,
21
+ subcomponents:{
22
+ // Item:QueryCombobox.Item
23
+ },
24
+ decorators:[
25
+ (storyfn) => (
26
+ <RelayEnvironmentProvider>
27
+ { storyfn() }
28
+ </RelayEnvironmentProvider>
29
+ ),
30
+ ],
31
+ argTypes:{
32
+ backgroundColor:{ control: 'color' },
33
+ },
34
+ }
35
+
36
+ const allTeamsMockData = {
37
+ PageInfo() {
38
+ return {
39
+ hasNextPage :true,
40
+ hasPreviousPage:true,
41
+ }
42
+ },
43
+ TeamNodeConnection:(args) => {
44
+ const edges = fruits.map((fruit) => ({
45
+ node:{
46
+ id :generateNodeId('TeamNode'),
47
+ name:fruit,
48
+ },
49
+ }))
50
+
51
+ // eslint-disable-next-line camelcase
52
+ const { name_Icontains } = args?.args || {}
53
+
54
+ return ({
55
+ pageInfo:{
56
+ hasNextPage :true,
57
+ hasPreviousPage:true,
58
+ },
59
+ // eslint-disable-next-line camelcase
60
+ edges:name_Icontains?.trim()
61
+ ? edges.filter(({ node }) => node.name
62
+ .toLowerCase()
63
+ .includes(name_Icontains.toLowerCase()))
64
+ : [],
65
+ })
66
+ },
67
+ }
68
+
69
+ const FETCH_TEAMS_QUERY = graphql`
70
+ query QueryComboboxAllTeamsQuery($name_Icontains: String) {
71
+ allTeams(name_Icontains: $name_Icontains) {
72
+ edges {
73
+ node {
74
+ id
75
+ name
76
+ }
77
+ }
78
+ }
79
+ }
80
+ `
81
+
82
+ // eslint-disable-next-line react/prop-types
83
+ const ResolvedTemplate = ({ multiple, defaultFormikState }) => {
84
+ mockRelayOperation(allTeamsMockData)
85
+ mockRelayOperation(allTeamsMockData)
86
+ mockRelayOperation(allTeamsMockData)
87
+
88
+ const Content = () => {
89
+ const name = multiple ? 'teams' : 'team'
90
+
91
+ const [, meta, helpers] = useField(name)
92
+
93
+ const { value } = meta
94
+
95
+ const { setValue } = helpers
96
+
97
+ const updateFormikState = () => {
98
+ if (multiple) {
99
+ setValue([
100
+ ...(value || []),
101
+ {
102
+ value:'VGVhbU5vZGU6MDAxZTIyOGEtYzA5My00MGI0LWE1MTUtYTNkMTM1NTE1MDNk',
103
+ label:'Matomoko',
104
+ },
105
+ {
106
+ value:'VGVhbU5vZGU6MDAxZTIyOGEtYzA5My00MGI0LWE1MTUtYTNkMTM1NTE1MDNp',
107
+ label:'Chungwa',
108
+ },
109
+ ])
110
+ } else {
111
+ setValue({
112
+ value:'VGVhbU5vZGU6MDAxZTIyOGEtYzA5My00MGI0LWE1MTUtYTNkMTM1NTE1MDNk',
113
+ label:'Kafagoho',
114
+ })
115
+ }
116
+ }
117
+
118
+ return (
119
+ <>
120
+ <QueryCombobox
121
+ label="Search for a team"
122
+ optionsKeyMap={{
123
+ value :'id',
124
+ getLabel:(node) => node.name,
125
+ }}
126
+ query={{
127
+ graphql :FETCH_TEAMS_QUERY,
128
+ accessor:'allTeams',
129
+ }}
130
+ name={name}
131
+ multiple={multiple}
132
+ searchVariable="name_Icontains"
133
+ />
134
+ <div
135
+ style={{
136
+ display :'flex',
137
+ alignItems :'flex-end',
138
+ flexDirection:'column',
139
+ }}
140
+ >
141
+ <FormDebugger />
142
+ <Button
143
+ onClick={updateFormikState}
144
+ >
145
+ {multiple ? 'Add formik values' : 'Replace formik value'}
146
+ </Button>
147
+ </div>
148
+ </>
149
+ )
150
+ }
151
+
152
+ let initialValues = defaultFormikState
153
+
154
+ if (!defaultFormikState && multiple) {
155
+ initialValues = []
156
+ } else if (!defaultFormikState && !multiple) {
157
+ initialValues = {}
158
+ }
159
+
160
+ return (
161
+ <Formik
162
+ initialValues={initialValues}
163
+ >
164
+ <Form>
165
+ <Content />
166
+ </Form>
167
+ </Formik>
168
+ )
169
+ }
170
+
171
+ export const SingleSelect = ResolvedTemplate.bind({})
172
+ SingleSelect.args = {
173
+ multiple:false,
174
+ }
175
+
176
+ export const SingleSelectWithDefaultFormikState = ResolvedTemplate.bind({})
177
+ SingleSelectWithDefaultFormikState.args = {
178
+ multiple :false,
179
+ defaultFormikState:{
180
+ team:{
181
+ value:'VGVhbU5vZGU6MDAxZTIyOGEtYzA5My00MGI0LWE1MTUtYTNkMTM1NTE1MDNl',
182
+ label:'Apple',
183
+ },
184
+ },
185
+ }
186
+
187
+ export const MultipleSelect = ResolvedTemplate.bind({})
188
+ MultipleSelect.args = {
189
+ multiple :true,
190
+ defaultFormikState:{ teams: [] },
191
+ }
192
+
193
+ export const MultipleSelectWithDefaultFormikState = ResolvedTemplate.bind({})
194
+ MultipleSelectWithDefaultFormikState.args = {
195
+ multiple :true,
196
+ defaultFormikState:{
197
+ teams:[
198
+ {
199
+ value:'VGVhbU5vZGU6MDAxZTIyOGEtYzA5My00MGI0LWE1MTUtYTNkMTM1NTE1MDNl',
200
+ label:'Apple',
201
+ },
202
+ {
203
+ value:'VGVhbU5vZGU6MDA0N2U4MzktODY0Zi00N2U5LTg3ZjgtZGUwMmM2Yzg1YWJm',
204
+ label:'Pear',
205
+ },
206
+ ],
207
+ },
208
+ }
209
+
210
+ // eslint-disable-next-line react/prop-types
211
+ // const RejectedTemplate = ({ multiple }) => {
212
+ // const Content = () => {
213
+ // environment.mock.queuePendingOperation(
214
+ // FETCH_TEAMS_QUERY,
215
+ // { name_Icontains: 'a' },
216
+ // )
217
+
218
+ // environment.mock.rejectMostRecentOperation('An error has occured while fetching the teams')
219
+
220
+ // const name = multiple ? 'teams' : 'team'
221
+
222
+ // const [, meta, helpers] = useField(name)
223
+
224
+ // const { setValue, setError } = helpers
225
+
226
+ // const { error } = meta
227
+
228
+ // return (
229
+ // <>
230
+ // <QueryCombobox
231
+ // query={FETCH_TEAMS_QUERY}
232
+ // label="Search for a team"
233
+ // optionsKeyMap={{
234
+ // value:'id',
235
+ // label:'name',
236
+ // }}
237
+ // error={error}
238
+ // setValue={setValue}
239
+ // setError={setError}
240
+ // name={name}
241
+ // multiple={multiple}
242
+ // graphQlNode="allTeams"
243
+ // searchVariable="name_Icontains"
244
+ // />
245
+ // <FormDebugger />
246
+ // </>
247
+ // )
248
+ // }
249
+
250
+ // return (
251
+ // <Formik
252
+ // initialValues={{ team: '' }}
253
+ // >
254
+ // <Form>
255
+ // <Content />
256
+ // </Form>
257
+ // </Formik>
258
+ // )
259
+ // }
260
+
261
+ // export const SingleSelectWithError = RejectedTemplate.bind({})
262
+ // SingleSelectWithError.args = {
263
+ // multiple:false,
264
+ // }
265
+
266
+ // export const MultipleSelectWithError = RejectedTemplate.bind({})
267
+ // MultipleSelectWithError.args = {
268
+ // multiple:true,
269
+ // }
@@ -0,0 +1,134 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react'
3
+
4
+ import { QuerySelect, FormDebugger } from 'ui'
5
+
6
+ import { Formik, Form } from 'formik'
7
+
8
+ import generateNodeId from '../utils/generateNodeId'
9
+
10
+ import {
11
+ RelayEnvironmentProvider,
12
+ mockRelayOperation,
13
+ environment,
14
+ } from '../utils/relay'
15
+
16
+ export default {
17
+ title :'f/fields/QuerySelect',
18
+ component :QuerySelect,
19
+ subcomponents:{
20
+ // Item:QuerySelect.Item
21
+ },
22
+ decorators:[
23
+ // storyfn => <div className="">{ storyfn() }</div>,
24
+ (storyfn) => (
25
+ <RelayEnvironmentProvider>
26
+ { storyfn() }
27
+ </RelayEnvironmentProvider>
28
+ ),
29
+ ],
30
+ argTypes:{
31
+ backgroundColor:{ control: 'color' },
32
+ },
33
+ }
34
+ const statuses = [
35
+ 'Backlog',
36
+ 'In Review',
37
+ 'In Progress',
38
+ 'Requested',
39
+ 'Blocked',
40
+ 'Completed',
41
+ ]
42
+ const allTaskStatusesMockData = {
43
+ PageInfo() {
44
+ return {
45
+ hasNextPage :true,
46
+ hasPreviousPage:true,
47
+ }
48
+ },
49
+ TaskStatusNodeConnection:() => ({
50
+ pageInfo:{
51
+ hasNextPage :true,
52
+ hasPreviousPage:true,
53
+ },
54
+
55
+ edges:statuses.map((status) => ({
56
+ node:{
57
+ id:generateNodeId('TaskStatusNode'),
58
+ status,
59
+ },
60
+ })),
61
+ }),
62
+ }
63
+
64
+ const FETCH_ALL_TASK_STATUSES = graphql`
65
+ query QuerySelectAllTaskStatusesQuery {
66
+ allTaskStatuses {
67
+ edges {
68
+ node {
69
+ id
70
+ status
71
+ }
72
+ }
73
+ }
74
+ }
75
+ `
76
+
77
+ // eslint-disable-next-line react/prop-types
78
+ const Template = ({ isLoading, defaultFormikState }) => {
79
+ if (isLoading) {
80
+ setTimeout(() => {
81
+ mockRelayOperation(allTaskStatusesMockData)
82
+ environment.mock.queuePendingOperation(
83
+ FETCH_ALL_TASK_STATUSES,
84
+ )
85
+ }, 500)
86
+ } else {
87
+ mockRelayOperation(allTaskStatusesMockData)
88
+ environment.mock.queuePendingOperation(
89
+ FETCH_ALL_TASK_STATUSES,
90
+ )
91
+ }
92
+
93
+ const Content = () => (
94
+ <>
95
+ <QuerySelect
96
+ name="status"
97
+ label="Select Task Status"
98
+ query={{
99
+ graphql :FETCH_ALL_TASK_STATUSES,
100
+ accessor:'allTaskStatuses',
101
+ }}
102
+ optionsKeyMap={{
103
+ value :'id',
104
+ getLabel:(node) => node.status,
105
+ }}
106
+ />
107
+ <FormDebugger />
108
+ </>
109
+ )
110
+
111
+ const initialValues = defaultFormikState ?? { status: '' }
112
+
113
+ return (
114
+ <Formik
115
+ initialValues={initialValues}
116
+ >
117
+ <Form>
118
+ <Content />
119
+ </Form>
120
+ </Formik>
121
+ )
122
+ }
123
+
124
+ export const Base = Template.bind({})
125
+ export const WithDefaultValue = Template.bind({})
126
+ WithDefaultValue.args = {
127
+ defaultFormikState:{
128
+ status:'VGFza1N0YXR1c05vZGU6NGRiYjNlMmItMGIxYy00ZjIxLTk0MmUtZTNjZGQwMjdiNjU3',
129
+ },
130
+ }
131
+ export const LoadingOptions = Template.bind({})
132
+ LoadingOptions.args = {
133
+ isLoading:true,
134
+ }
@@ -29,14 +29,14 @@ export default {
29
29
 
30
30
  export const Base = () => (
31
31
  <>
32
- <RatingsInput ratingCount={5} name="ratings" />
32
+ <RatingsInput ratingCount={5} name="ratings" label="Your Rating" />
33
33
  <FormDebugger />
34
34
  </>
35
35
  )
36
36
 
37
37
  export const Numbers = () => (
38
38
  <>
39
- <RatingsInput ratingCount={10} name="ratings" showRatingValue />
39
+ <RatingsInput ratingCount={10} name="ratings" showRatingValue label="Your Rating" />
40
40
  <FormDebugger />
41
41
  </>
42
42
  )
@@ -44,6 +44,7 @@ export const Numbers = () => (
44
44
  export const Labels = () => (
45
45
  <>
46
46
  <RatingsInput
47
+ label="Your Rating"
47
48
  labelMax="very satisfied."
48
49
  labelMin="not satisfied."
49
50
  ratingCount={10}
@@ -13,10 +13,9 @@ export default {
13
13
  decorators:[
14
14
  (storyfn) => (
15
15
  <Formik
16
- initialValues={{ workType: 'Work' }}
16
+ initialValues={{ workType: '' }}
17
17
  >
18
18
  <Form>
19
-
20
19
  { storyfn() }
21
20
  </Form>
22
21
  </Formik>
@@ -32,18 +31,46 @@ export const Base = () => (
32
31
  <SelectInput
33
32
  name="workType"
34
33
  label="Work Type"
35
- options={['Work', 'Managing', 'Training']}
34
+ options={[{ value: '', label: 'Select an option', disabled: true }, 'Work', 'Managing', 'Training']}
36
35
  />
37
36
  <FormDebugger />
38
37
  </>
39
38
  )
40
39
 
40
+ export const RequiredSelect = () => {
41
+ const requiredInput = (inputValue) => {
42
+ let error = ''
43
+
44
+ if (!inputValue || !inputValue?.length === 0) {
45
+ error = 'This information is required'
46
+ }
47
+ return error
48
+ }
49
+
50
+ return (
51
+ <>
52
+ <SelectInput
53
+ validate={requiredInput}
54
+ name="activity"
55
+ label="Activity Type"
56
+ options={[
57
+ { value: '', label: 'Select an option', disabled: true },
58
+ { value: 'review', label: 'Review' },
59
+ { value: 'Approve', label: 'Approve' },
60
+ ]}
61
+ />
62
+ <FormDebugger />
63
+ </>
64
+ )
65
+ }
66
+
41
67
  export const Objects = () => (
42
68
  <>
43
69
  <SelectInput
44
70
  name="workType"
45
71
  label="Work Type"
46
72
  options={[
73
+ { value: '', label: 'Select an option', disabled: true },
47
74
  { value: '20th Aug 2020 to 19th Sept, 2020', label: '20th Aug 2020 to 19th Sept, 2020' },
48
75
  { value: '20th Sept 2020 to 19th Oct, 2020', label: '20th Sept 2020 to 19th Oct, 2020' },
49
76
  ]}
@@ -57,7 +84,9 @@ export const StringAndObjects = () => (
57
84
  <SelectInput
58
85
  name="workType"
59
86
  label="Work Type"
60
- options={['Work', 'Managing', 'Training',
87
+ options={[
88
+ { value: '', label: 'Select an option', disabled: true },
89
+ 'Work', 'Managing', 'Training',
61
90
  { value: '20th Aug 2020 to 19th Sept, 2020', label: '20th Aug 2020 to 19th Sept, 2020' },
62
91
  { value: '20th Sept 2020 to 19th Oct, 2020', label: '20th Sept 2020 to 19th Oct, 2020' },
63
92
  ]}
@@ -70,7 +99,9 @@ export const DisabledSelectInput = () => (
70
99
  <SelectInput
71
100
  name="workType"
72
101
  label="Work Type"
73
- options={['Work', 'Managing', 'Training',
102
+ options={[
103
+ { value: '', label: 'Select an option', disabled: true },
104
+ 'Work', 'Managing', 'Training',
74
105
  { value: '20th Aug 2020 to 19th Sept, 2020', label: '20th Aug 2020 to 19th Sept, 2020' },
75
106
  { value: '20th Sept 2020 to 19th Oct, 2020', label: '20th Sept 2020 to 19th Oct, 2020' },
76
107
  ]}
@@ -41,7 +41,7 @@ export const Base = () => {
41
41
  return errorMessage
42
42
  }
43
43
  return (
44
- <div className="y-background1 b-dark-y u2 pb-u">
44
+ <div className=" u2 pb-u">
45
45
  <TextInput
46
46
  name="firstName"
47
47
  label="What's your first name ?"
@@ -52,8 +52,19 @@ export const Base = () => {
52
52
  )
53
53
  }
54
54
 
55
- export const DisabledTextInput = () => (
56
- <div className="y-background1 b-dark-y u2 pb-u">
55
+ export const Placeholder = () => (
56
+ <div className="u2 pb-u">
57
+ <TextInput
58
+ name="firstName"
59
+ label="What's your first name ?"
60
+ placeholder="First Name"
61
+ />
62
+ <FormDebugger />
63
+ </div>
64
+ )
65
+
66
+ export const Disabled = () => (
67
+ <div className="u2 pb-u">
57
68
  <TextInput
58
69
  name="firstName"
59
70
  label="What's your first name ?"
@@ -63,7 +74,7 @@ export const DisabledTextInput = () => (
63
74
  )
64
75
 
65
76
  export const DateTime = () => (
66
- <div className="y-background1 b-dark-y">
77
+ <div>
67
78
  <TextInput
68
79
  name="date"
69
80
  label="Select date"
@@ -14,7 +14,7 @@ export default {
14
14
  decorators:[
15
15
  (storyfn) => (
16
16
  <Formik
17
- initialValues={{ feedBack: '' }}
17
+ initialValues={{ feedback: '' }}
18
18
  >
19
19
  <Form>
20
20
 
@@ -29,18 +29,54 @@ export default {
29
29
  }
30
30
 
31
31
  export const Base = () => (
32
- <div className="y-background1 b-dark-y">
32
+ <div>
33
33
  <TextareaInput
34
- name="feedBack"
34
+ name="feedback"
35
35
  label="What can we improve on?"
36
36
  />
37
37
  <FormDebugger />
38
38
  </div>
39
39
  )
40
- export const DisabledTextareaInput = () => (
41
- <div className="y-background1 b-dark-y">
40
+
41
+ export const Placeholder = () => (
42
+ <div>
43
+ <TextareaInput
44
+ name="feedback"
45
+ label="What can we improve on?"
46
+ placeholder="Type your feedback here..."
47
+ />
48
+ <FormDebugger />
49
+ </div>
50
+ )
51
+
52
+ export const Validation = () => {
53
+ const validate = (value) => {
54
+ let errorMessage = ''
55
+ const isValid = value.length > 3
56
+
57
+ if (!isValid) {
58
+ errorMessage = 'Value should be greater than 3 characters'
59
+ }
60
+ return errorMessage
61
+ }
62
+
63
+ return (
64
+ <div>
65
+ <TextareaInput
66
+ name="feedback"
67
+ label="What can we improve on?"
68
+ placeholder="Type your feedback here..."
69
+ validate={validate}
70
+ />
71
+ <FormDebugger />
72
+ </div>
73
+ )
74
+ }
75
+
76
+ export const Disabled = () => (
77
+ <div>
42
78
  <TextareaInput
43
- name="feedBack"
79
+ name="feedback"
44
80
  label="What can we improve on?"
45
81
  disabled
46
82
  />