@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,11 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+
5
+ $default-margin: 1em;
6
+
7
+ .#{bem.$base}.form-input {
8
+ &+& {
9
+ margin-top: $default-margin;
10
+ }
11
+ }
@@ -31,7 +31,7 @@ const Debugger = ({
31
31
  style: style
32
32
  }, /*#__PURE__*/React.createElement(Button, {
33
33
  onClick: toggleDebugger,
34
- color: "main1"
34
+ color: "main2"
35
35
  }, isOpen ? 'Close FormDebugger' : 'Open FormDebugger'), isOpen && /*#__PURE__*/React.createElement("pre", {
36
36
  className: "debuger-content"
37
37
  }, JSON.stringify(formikContext, null, 2)));
@@ -71,6 +71,6 @@ Label.propTypes = {
71
71
  Label.defaultProps = {
72
72
  // someProp:false
73
73
  as: 'label',
74
- color: 'main1'
74
+ color: 'main2'
75
75
  };
76
76
  export default Label;
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
  .#{bem.$base}.label {
8
- color: var(--x);
8
+ color: var(--dark-x);
9
9
  }
10
10
 
11
11
 
@@ -129,7 +129,7 @@ ChoicesInput.defaultProps = {
129
129
  gridColumnsMobile: 2,
130
130
  gridColumnsDesktop: 3,
131
131
  color: 'background2',
132
- colorChecked: 'main1',
132
+ colorChecked: 'main2',
133
133
  disabled: false
134
134
  };
135
135
  export default /*#__PURE__*/memo(ChoicesInput);
@@ -29,10 +29,21 @@ $default-transition:all .3s;
29
29
  z-index: -1;
30
30
  }
31
31
 
32
+ input:disabled + label {
33
+ background-color: var(--dark-x);
34
+ }
35
+
36
+ input:not(:disabled) + label {
37
+ &:hover {
38
+ border-color: var(--light-y);
39
+ }
40
+ }
41
+
32
42
  label {
33
- background: var(--x);
34
- border-radius: var(--theme-border-radius);
43
+ border: var(--theme-border-style) var(--dark-x);
44
+ background: var(--light-x);
35
45
  color: var(--on-x);
46
+ border-radius: var(--theme-border-radius);
36
47
  display: block;
37
48
  height: 100%;
38
49
  padding: $default-padding;
@@ -44,6 +55,10 @@ $default-transition:all .3s;
44
55
  input:checked + label {
45
56
  background: var(--y);
46
57
  color: var(--on-y);
58
+
59
+ &:hover {
60
+ border-color: var(--y);
61
+ }
47
62
  }
48
63
  }
49
64
  }
@@ -0,0 +1,213 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useState, useLayoutEffect } from 'react';
4
+ import { useField } from 'formik';
5
+ import { useRelayEnvironment, fetchQuery } from 'react-relay';
6
+ import PropTypes from 'prop-types'; // Local Definitions
7
+
8
+ import { Combobox, MultipleCombobox } from "./common";
9
+ /**
10
+ * This is the component description.
11
+ */
12
+
13
+ const QueryCombobox = ({
14
+ id,
15
+ style,
16
+ className,
17
+ query,
18
+ multiple,
19
+ name,
20
+ label,
21
+ color,
22
+ description,
23
+ disabled,
24
+ debounceMs,
25
+ searchVariable,
26
+ extraVariables,
27
+ optionsKeyMap,
28
+ minLength,
29
+ transformSearch // ...otherProps
30
+
31
+ }) => {
32
+ useLayoutEffect(() => {
33
+ import("./styles.scss");
34
+ }, []);
35
+ const [, meta, helpers] = useField(name);
36
+ const {
37
+ setValue,
38
+ setError
39
+ } = helpers;
40
+ const {
41
+ error,
42
+ value
43
+ } = meta;
44
+ const environment = useRelayEnvironment();
45
+ const [isFetching, setIsFetching] = useState(false);
46
+ const [options, setOptions] = useState([]);
47
+ const {
48
+ graphql,
49
+ accessor
50
+ } = query;
51
+
52
+ const getOptions = inputValue => {
53
+ if (isFetching) return;
54
+ let variables = {
55
+ [searchVariable]: inputValue
56
+ };
57
+
58
+ if (extraVariables) {
59
+ variables = { ...variables,
60
+ ...extraVariables
61
+ };
62
+ }
63
+
64
+ fetchQuery(environment, graphql, variables).subscribe({
65
+ start: () => {
66
+ setIsFetching(true);
67
+ },
68
+ complete: () => {
69
+ setIsFetching(false);
70
+ },
71
+ error: fetchError => {
72
+ setIsFetching(false);
73
+ if (setError) setError(fetchError.message);
74
+ },
75
+ next: data => {
76
+ setOptions(data[accessor].edges.map(({
77
+ node
78
+ }) => ({
79
+ value: node[optionsKeyMap.value],
80
+ label: optionsKeyMap.getLabel(node)
81
+ })));
82
+ }
83
+ });
84
+ };
85
+
86
+ const comboboxProps = {
87
+ id,
88
+ style,
89
+ options,
90
+ getOptions,
91
+ debounceMs,
92
+ disabled,
93
+ name,
94
+ label,
95
+ description,
96
+ setValue,
97
+ error,
98
+ value,
99
+ color,
100
+ isFetching,
101
+ className,
102
+ minLength,
103
+ transformSearch
104
+ };
105
+ const Input = multiple ? MultipleCombobox : Combobox;
106
+ return /*#__PURE__*/React.createElement(Input, comboboxProps);
107
+ };
108
+
109
+ QueryCombobox.propTypes = {
110
+ /**
111
+ * The HTML id for this element
112
+ */
113
+ id: PropTypes.string,
114
+
115
+ /**
116
+ * The HTML class names for this element
117
+ */
118
+ className: PropTypes.string,
119
+
120
+ /**
121
+ * The React-written, css properties for this element.
122
+ */
123
+ style: PropTypes.objectOf(PropTypes.string),
124
+
125
+ /**
126
+ * The name of the custom select input
127
+ */
128
+ name: PropTypes.string,
129
+
130
+ /**
131
+ * The label of the custom select input
132
+ */
133
+ label: PropTypes.string,
134
+
135
+ /**
136
+ * The custom select input description
137
+ */
138
+ description: PropTypes.string,
139
+
140
+ /**
141
+ * Whether the input should be disabled
142
+ */
143
+ disabled: PropTypes.bool,
144
+
145
+ /**
146
+ * The base color of the custom select input
147
+ */
148
+ color: PropTypes.string,
149
+
150
+ /**
151
+ * The debounce time in milliseconds
152
+ */
153
+ debounceMs: PropTypes.number,
154
+
155
+ /**
156
+ * The graphql query to fetch the options and the accessor to destructure the results from
157
+ */
158
+ query: PropTypes.shape({
159
+ accessor: PropTypes.string,
160
+ graphql: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired
161
+ }),
162
+
163
+ /**
164
+ * The extra variables required to be used in the query.
165
+ */
166
+ extraVariables: PropTypes.objectOf(PropTypes.string),
167
+
168
+ /**
169
+ * The select option keys to be used to map the data to the select options.
170
+ * i.e `{ value: 'id', label: 'name' }`
171
+ */
172
+ optionsKeyMap: PropTypes.shape({
173
+ value: PropTypes.string.isRequired,
174
+ getLabel: PropTypes.func.isRequired
175
+ }),
176
+
177
+ /**
178
+ * Whether to allow multiple items selection
179
+ */
180
+ multiple: PropTypes.bool,
181
+
182
+ /**
183
+ * The graphql node to be used to destructure the fetched data
184
+ */
185
+ graphQlNode: PropTypes.string.isRequired,
186
+
187
+ /**
188
+ * The variable to be used to search the data
189
+ */
190
+ searchVariable: PropTypes.string,
191
+
192
+ /**
193
+ * The minimum length of the search input to start fetching the options
194
+ */
195
+ minLength: PropTypes.number,
196
+
197
+ /**
198
+ * The function to transform the search input
199
+ */
200
+ transformSearch: PropTypes.func
201
+ };
202
+ QueryCombobox.defaultProps = {
203
+ optionsKeyMap: {
204
+ value: 'id',
205
+ getLabel: node => node.name
206
+ },
207
+ multiple: false,
208
+ color: 'background2',
209
+ searchVariable: 'search',
210
+ transformSearch: search => search,
211
+ minLength: 2
212
+ };
213
+ export default QueryCombobox;
@@ -0,0 +1,185 @@
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
+ /* @pareto-engineering/generator-front 1.0.12 */
4
+ import * as React from 'react';
5
+ import { useEffect, useRef } from 'react';
6
+ import PropTypes from 'prop-types';
7
+ import { useCombobox } from 'downshift';
8
+ import styleNames from '@pareto-engineering/bem';
9
+ import { FormLabel, FormDescription } from "../../../..";
10
+ import { Popover, LoadingCircle } from "../../../../../a"; // Local Definitions
11
+
12
+ import { Menu } from "../Menu";
13
+ const baseClassName = styleNames.base;
14
+ const componentClassName = 'combobox';
15
+ /**
16
+ * This is the component description.
17
+ */
18
+
19
+ const Combobox = ({
20
+ id,
21
+ className: userClassName,
22
+ style,
23
+ label,
24
+ name,
25
+ options: items,
26
+ getOptions,
27
+ setValue,
28
+ error,
29
+ description,
30
+ value,
31
+ color,
32
+ minLength,
33
+ isFetching,
34
+ transformSearch // ...otherProps
35
+
36
+ }) => {
37
+ const {
38
+ isOpen,
39
+ selectItem,
40
+ selectedItem,
41
+ getLabelProps,
42
+ getMenuProps,
43
+ getInputProps,
44
+ highlightedIndex,
45
+ getComboboxProps,
46
+ getItemProps
47
+ } = useCombobox({
48
+ items,
49
+ initialSelectedItem: value,
50
+ itemToString: item => item ? item.label : '',
51
+ onInputValueChange: ({
52
+ inputValue
53
+ }) => {
54
+ const transformedInput = transformSearch(inputValue);
55
+
56
+ if (transformedInput.length > minLength) {
57
+ getOptions(transformedInput);
58
+ }
59
+ }
60
+ }); // If the user has selected an item, we'll set the value of the field
61
+ // or if the combobox state has a selected item, we'll set the value to the formik state
62
+
63
+ useEffect(() => {
64
+ if (selectedItem) {
65
+ setValue(selectedItem);
66
+ }
67
+ }, [selectedItem]); // If the formik state has a value, we'll set the selected item to the combobox state
68
+
69
+ useEffect(() => {
70
+ if ((value === null || value === void 0 ? void 0 : value.value) !== (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value)) {
71
+ selectItem(value);
72
+ }
73
+ }, [value]);
74
+ const parentRef = useRef(null);
75
+ return /*#__PURE__*/React.createElement("div", {
76
+ id: id,
77
+ className: [baseClassName, componentClassName, userClassName, `y-${color}`].filter(e => e).join(' '),
78
+ style: style,
79
+ ref: parentRef
80
+ }, /*#__PURE__*/React.createElement(FormLabel, _extends({}, getLabelProps(), {
81
+ name: name
82
+ }), label), /*#__PURE__*/React.createElement("div", _extends({}, getComboboxProps(), {
83
+ className: "input-wrapper"
84
+ }), /*#__PURE__*/React.createElement("input", _extends({}, getInputProps(), {
85
+ className: "input"
86
+ })), isFetching && /*#__PURE__*/React.createElement(LoadingCircle, {
87
+ className: "x-main2"
88
+ })), /*#__PURE__*/React.createElement(Popover, {
89
+ isOpen: isOpen,
90
+ parentRef: parentRef
91
+ }, /*#__PURE__*/React.createElement(Menu, _extends({
92
+ isOpen: isOpen,
93
+ getItemProps: getItemProps,
94
+ highlightedIndex: highlightedIndex,
95
+ items: items
96
+ }, getMenuProps()))), (description || error) && /*#__PURE__*/React.createElement(FormDescription, {
97
+ isError: !!error
98
+ }, error || description));
99
+ };
100
+
101
+ Combobox.propTypes = {
102
+ /**
103
+ * The HTML id for this element
104
+ */
105
+ id: PropTypes.string,
106
+
107
+ /**
108
+ * The HTML class names for this element
109
+ */
110
+ className: PropTypes.string,
111
+
112
+ /**
113
+ * The React-written, css properties for this element.
114
+ */
115
+ style: PropTypes.objectOf(PropTypes.string),
116
+
117
+ /**
118
+ * The label of the custom select input
119
+ */
120
+ label: PropTypes.string,
121
+
122
+ /**
123
+ * The custom select input options from the backend
124
+ */
125
+ options: PropTypes.arrayOf(PropTypes.shape({
126
+ value: PropTypes.string,
127
+ label: PropTypes.string
128
+ })),
129
+
130
+ /**
131
+ * The name of the custom select input
132
+ */
133
+ name: PropTypes.string,
134
+
135
+ /**
136
+ * The function to fetch the options from the backend
137
+ */
138
+ getOptions: PropTypes.func,
139
+
140
+ /**
141
+ * The function to set the value of the custom select input
142
+ */
143
+ setValue: PropTypes.func.isRequired,
144
+
145
+ /**
146
+ * The custom select input description
147
+ */
148
+ description: PropTypes.string,
149
+
150
+ /**
151
+ * The error object
152
+ */
153
+ error: PropTypes.objectOf(PropTypes.string),
154
+
155
+ /**
156
+ * The value of the custom select input
157
+ */
158
+ value: PropTypes.shape({
159
+ value: PropTypes.string,
160
+ label: PropTypes.string
161
+ }),
162
+
163
+ /**
164
+ * The base color of the combobox custom select input
165
+ */
166
+ color: PropTypes.string,
167
+
168
+ /**
169
+ * Whether the query getting the combobox options is inFlight
170
+ */
171
+ isFetching: PropTypes.bool.isRequired,
172
+
173
+ /**
174
+ * The minimum length of the search input to start fetching the options
175
+ */
176
+ minLength: PropTypes.number,
177
+
178
+ /**
179
+ * The function to transform the search input
180
+ */
181
+ transformSearch: PropTypes.func
182
+ };
183
+ Combobox.defaultProps = {// someProp: false
184
+ };
185
+ export default Combobox;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as Combobox } from "./Combobox";
@@ -0,0 +1,77 @@
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
+ /* @pareto-engineering/generator-front 1.0.12 */
4
+ import * as React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import styleNames from '@pareto-engineering/bem'; // Local Definitions
7
+
8
+ const baseClassName = styleNames.base;
9
+ const componentClassName = 'menu';
10
+ /**
11
+ * This is the component description.
12
+ */
13
+
14
+ const Menu = /*#__PURE__*/React.forwardRef(({
15
+ id,
16
+ className: userClassName,
17
+ style,
18
+ items,
19
+ isOpen,
20
+ highlightedIndex,
21
+ getItemProps,
22
+ ...otherProps
23
+ }, ref) => /*#__PURE__*/React.createElement("ul", _extends({
24
+ id: id,
25
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
26
+ style: style,
27
+ ref: ref
28
+ }, otherProps), isOpen && items.map((item, index) => /*#__PURE__*/React.createElement("li", _extends({
29
+ key: item.label
30
+ }, getItemProps({
31
+ item,
32
+ index
33
+ }), {
34
+ className: ['item', highlightedIndex === index && styleNames.modifierActive].filter(Boolean).join(' ')
35
+ }), /*#__PURE__*/React.createElement("p", null, item.label)))));
36
+ Menu.propTypes = {
37
+ /**
38
+ * The HTML id for this element
39
+ */
40
+ id: PropTypes.string,
41
+
42
+ /**
43
+ * The HTML class names for this element
44
+ */
45
+ className: PropTypes.string,
46
+
47
+ /**
48
+ * The React-written, css properties for this element.
49
+ */
50
+ style: PropTypes.objectOf(PropTypes.string),
51
+
52
+ /**
53
+ * The items to be displayed in the menu
54
+ */
55
+ items: PropTypes.arrayOf(PropTypes.shape({
56
+ value: PropTypes.string,
57
+ label: PropTypes.string
58
+ })),
59
+
60
+ /**
61
+ * Whether or not the menu is open
62
+ */
63
+ isOpen: PropTypes.bool,
64
+
65
+ /**
66
+ * The index of the highlighted item
67
+ */
68
+ highlightedIndex: PropTypes.number,
69
+
70
+ /**
71
+ * The function to get the item props
72
+ */
73
+ getItemProps: PropTypes.func
74
+ };
75
+ Menu.defaultProps = {// someProp:false
76
+ };
77
+ export default Menu;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as Menu } from "./Menu";