@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
@@ -27,10 +27,14 @@ const TextInput = ({
27
27
  type,
28
28
  name,
29
29
  label,
30
+ color,
31
+ labelColor,
30
32
  validate,
31
33
  oneInputLabel,
32
34
  description,
33
35
  disabled,
36
+ placeholder,
37
+ optional,
34
38
  // ...otherProps
35
39
  }) => {
36
40
  useLayoutEffect(() => {
@@ -46,6 +50,7 @@ const TextInput = ({
46
50
  baseClassName,
47
51
  componentClassName,
48
52
  userClassName,
53
+ `y-${color}`,
49
54
  ]
50
55
  .filter((e) => e)
51
56
  .join(' ')}
@@ -53,19 +58,21 @@ const TextInput = ({
53
58
  // {...otherProps}
54
59
  >
55
60
  <FormLabel
56
- className={[
57
- 'input-label', oneInputLabel ? 'md-s2 s0 v1 mb-v' : 'v50 mb-v']
61
+ className={[oneInputLabel ? 'md-s2 s0 v1 mb-v' : 'v50 mb-v']
58
62
  .filter((e) => e)
59
63
  .join(' ')}
60
64
  name={name}
65
+ color={labelColor}
66
+ optional={optional}
61
67
  >
62
68
  { label }
63
69
  </FormLabel>
64
70
  <input
65
71
  id={name}
66
- className={`input ${meta.touched && meta.error ? 'input-border-error' : 'input-border'}`}
72
+ className="input"
67
73
  type={type}
68
74
  disabled={disabled}
75
+ placeholder={placeholder}
69
76
  {...field}
70
77
  />
71
78
  {(description || (meta.touched && meta.error))
@@ -104,6 +111,11 @@ TextInput.propTypes = {
104
111
  */
105
112
  label:PropTypes.string.isRequired,
106
113
 
114
+ /**
115
+ * The input label color
116
+ */
117
+ labelColor:PropTypes.string,
118
+
107
119
  /**
108
120
  * The type of the input (html)
109
121
  */
@@ -136,10 +148,26 @@ TextInput.propTypes = {
136
148
  * Whether the text input should be disabled
137
149
  */
138
150
  disabled :PropTypes.bool,
151
+
152
+ /**
153
+ * The placeholder text for the input
154
+ */
155
+ placeholder:PropTypes.string,
156
+
157
+ /**
158
+ * The text input color
159
+ */
160
+ color:PropTypes.string,
161
+
162
+ /**
163
+ * Whether the input is optional or not
164
+ */
165
+ optional:PropTypes.bool,
139
166
  }
140
167
 
141
168
  TextInput.defaultProps = {
142
169
  type :'text',
170
+ color :'background2',
143
171
  disabled:false,
144
172
  }
145
173
 
@@ -9,17 +9,26 @@ $default-padding: 0.75em 0.75em 0.55em;
9
9
  display: flex;
10
10
  flex-direction: column;
11
11
 
12
- .input-label {
13
- color: var(--main1);
14
- }
15
-
16
12
  .input {
17
- background: var(--light-background1);
18
- color: var(--on-background1);
13
+ border: var(--theme-border-style) var(--dark-y);
14
+ background: var(--light-y);
15
+ color: var(--on-y);
19
16
  padding: $default-padding;
20
17
 
18
+ &::placeholder{
19
+ color: var(--metadata);
20
+ }
21
+
22
+ &:not(:disabled):hover{
23
+ border: var(--theme-border-style) var(--light-background4);
24
+ }
25
+
26
+ &:disabled {
27
+ background-color: var(--dark-y);
28
+ }
29
+
21
30
  &:focus {
22
- background: var(--dark-background1);
31
+ background: var(--light-background4);
23
32
  }
24
33
  }
25
34
  }
@@ -34,6 +34,7 @@ const TextareaInput = ({
34
34
  labelColor,
35
35
  description,
36
36
  disabled,
37
+ placeholder,
37
38
  // ...otherProps
38
39
  }) => {
39
40
  useLayoutEffect(() => {
@@ -51,8 +52,7 @@ const TextareaInput = ({
51
52
 
52
53
  componentClassName,
53
54
  userClassName,
54
- `x-${textAreaColor}`,
55
- `y-${labelColor}`,
55
+ `y-${textAreaColor}`,
56
56
  ]
57
57
  .filter((e) => e)
58
58
  .join(' ')}
@@ -60,18 +60,19 @@ const TextareaInput = ({
60
60
  // {...otherProps}
61
61
  >
62
62
  <FormLabel
63
- className={[
64
- 'c-y', labelAsDescription ? 'md-s2 s0 v1 mb-v' : 'v50 mb-v']
63
+ className={[labelAsDescription ? 'md-s2 s0 v1 mb-v' : 'v50 mb-v']
65
64
  .filter((e) => e)
66
65
  .join(' ')}
67
66
  name={name}
67
+ color={labelColor}
68
68
  >
69
69
  { label }
70
70
  </FormLabel>
71
71
  <textarea
72
72
  id={textAreaId}
73
- className={`textarea v50 pv-v ${meta.touched && meta.error ? 'input-border-error' : 'input-border'}`}
73
+ className="textarea"
74
74
  {...field}
75
+ placeholder={placeholder}
75
76
  rows={rows}
76
77
  disabled={disabled}
77
78
  >
@@ -123,36 +124,46 @@ TextareaInput.propTypes = {
123
124
  * If the text area depends on it's label's text as the default description
124
125
  */
125
126
  labelAsDescription:PropTypes.bool,
127
+
126
128
  /**
127
129
  * The textarea id
128
130
  */
129
- textAreaId :PropTypes.string,
131
+ textAreaId:PropTypes.string,
132
+
130
133
  /**
131
134
  * The number of rows int the text area
132
135
  */
133
- rows :PropTypes.number,
136
+ rows:PropTypes.number,
137
+
134
138
  /**
135
139
  * Text area base color
136
140
  */
137
- textAreaColor :PropTypes.string,
141
+ textAreaColor:PropTypes.string,
142
+
138
143
  /**
139
144
  * Label base color
140
145
  */
141
- labelColor :PropTypes.string,
146
+ labelColor:PropTypes.string,
147
+
142
148
  /**
143
149
  * Text area description
144
150
  */
145
- description :PropTypes.string,
151
+ description:PropTypes.string,
152
+
146
153
  /**
147
154
  * Whether the text area should be disabled
148
155
  */
149
- disabled :PropTypes.bool,
156
+ disabled:PropTypes.bool,
157
+
158
+ /**
159
+ * The textarea placeholder text
160
+ */
161
+ placeholder:PropTypes.string,
150
162
  }
151
163
 
152
164
  TextareaInput.defaultProps = {
153
165
  rows :3,
154
- textAreaColor:'background1',
155
- labelColor :'main1',
166
+ textAreaColor:'background2',
156
167
  disabled :false,
157
168
  }
158
169
 
@@ -1,19 +1,32 @@
1
1
  /* @pareto-engineering/generator-front 1.0.12 */
2
2
  @use "@pareto-engineering/bem";
3
3
 
4
+ $default-padding: .5em;
5
+
4
6
  .#{bem.$base}.text-area-input{
5
7
  display: flex;
6
8
  flex-direction: column;
7
9
 
8
10
  .textarea {
9
- background: var(--light-x);
10
- color: var(--on-x);
11
+ border: var(--theme-border-style) var(--dark-y);
12
+ background: var(--light-y);
13
+ color: var(--on-y);
14
+ padding: $default-padding;
11
15
 
12
- &:focus {
13
- background: var(--dark-x);
16
+ &::placeholder{
17
+ color: var(--metadata);
14
18
  }
15
- }
16
- }
17
19
 
20
+ &:not(:disabled):hover{
21
+ border: var(--theme-border-style) var(--light-background4);
22
+ }
18
23
 
24
+ &:disabled {
25
+ background-color: var(--dark-y);
26
+ }
19
27
 
28
+ &:focus {
29
+ background: var(--light-background4);
30
+ }
31
+ }
32
+ }
@@ -1,8 +1,7 @@
1
1
  export { TextInput } from './TextInput'
2
2
  export { SelectInput } from './SelectInput'
3
- export { RadioInput } from './RadioInput'
4
- export { CheckboxInput } from './CheckboxInput'
5
- export { TaskRecommendationInput } from './TaskRecommendationInput'
6
3
  export { ChoicesInput } from './ChoicesInput'
7
4
  export { TextareaInput } from './TextareaInput'
8
5
  export { RatingsInput } from './RatingsInput'
6
+ export { QueryCombobox } from './QueryCombobox'
7
+ export { QuerySelect } from './QuerySelect'
@@ -19,7 +19,7 @@ button,
19
19
  textarea,
20
20
  label,
21
21
  select {
22
- background-color: inherit;
22
+ // background-color: inherit;
23
23
  border: 0;
24
24
  display: inline-block;
25
25
  font: inherit;
package/src/ui/index.js CHANGED
@@ -4,3 +4,5 @@ export * from './b'
4
4
  export * from './c'
5
5
  export * from './d'
6
6
  export * from './f'
7
+ export * from './utils'
8
+ export * from './test'
@@ -0,0 +1,41 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react'
3
+
4
+ import { useEffect, Suspense } from 'react'
5
+
6
+ import { useQueryLoader } from 'react-relay'
7
+
8
+ // Local Definitions
9
+
10
+ import { PreloadedTestData } from './common'
11
+
12
+ const testQuery = graphql`
13
+ query QueryLoaderHelloQuery {
14
+ hello
15
+ }
16
+ `
17
+
18
+ /**
19
+ * This is the component description.
20
+ */
21
+ const QueryLoader = () => {
22
+ const [queryReference, loadQuery] = useQueryLoader(testQuery)
23
+
24
+ useEffect(() => {
25
+ loadQuery({})
26
+ }, [])
27
+
28
+ return (
29
+ <Suspense fallback="loading">
30
+ {queryReference ? (
31
+ <PreloadedTestData queryReference={queryReference} query={testQuery} />
32
+ ) : null}
33
+ </Suspense>
34
+ )
35
+ }
36
+
37
+ QueryLoader.defaultProps = {
38
+ // someProp:false
39
+ }
40
+
41
+ export default QueryLoader
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @flow
3
+ */
4
+
5
+ /* eslint-disable */
6
+
7
+ 'use strict';
8
+
9
+ /*::
10
+ import type { ConcreteRequest } from 'relay-runtime';
11
+ export type QueryLoaderHelloQueryVariables = {||};
12
+ export type QueryLoaderHelloQueryResponse = {|
13
+ +hello: ?string
14
+ |};
15
+ export type QueryLoaderHelloQuery = {|
16
+ variables: QueryLoaderHelloQueryVariables,
17
+ response: QueryLoaderHelloQueryResponse,
18
+ |};
19
+ */
20
+
21
+
22
+ /*
23
+ query QueryLoaderHelloQuery {
24
+ hello
25
+ }
26
+ */
27
+
28
+ const node/*: ConcreteRequest*/ = (function(){
29
+ var v0 = [
30
+ {
31
+ "alias": null,
32
+ "args": null,
33
+ "kind": "ScalarField",
34
+ "name": "hello",
35
+ "storageKey": null
36
+ }
37
+ ];
38
+ return {
39
+ "fragment": {
40
+ "argumentDefinitions": [],
41
+ "kind": "Fragment",
42
+ "metadata": null,
43
+ "name": "QueryLoaderHelloQuery",
44
+ "selections": (v0/*: any*/),
45
+ "type": "Query",
46
+ "abstractKey": null
47
+ },
48
+ "kind": "Request",
49
+ "operation": {
50
+ "argumentDefinitions": [],
51
+ "kind": "Operation",
52
+ "name": "QueryLoaderHelloQuery",
53
+ "selections": (v0/*: any*/)
54
+ },
55
+ "params": {
56
+ "cacheID": "463f9ee8a82dd6ec8dedeb28649cce74",
57
+ "id": null,
58
+ "metadata": {},
59
+ "name": "QueryLoaderHelloQuery",
60
+ "operationKind": "query",
61
+ "text": "query QueryLoaderHelloQuery {\n hello\n}\n"
62
+ }
63
+ };
64
+ })();
65
+ // prettier-ignore
66
+ (node/*: any*/).hash = 'b92d001ab0208bd484a99f77c274d5ef';
67
+
68
+ module.exports = node;
@@ -0,0 +1,51 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react'
3
+
4
+ import PropTypes from 'prop-types'
5
+
6
+ import { usePreloadedQuery } from 'react-relay'
7
+
8
+ /**
9
+ * This is the component description.
10
+ */
11
+ const PreloadedTestData = ({
12
+ query,
13
+ queryReference,
14
+ // ...otherProps
15
+ }) => {
16
+ const data = usePreloadedQuery(query, queryReference)
17
+
18
+ return (
19
+ <pre>
20
+ {JSON.stringify(data, null, 2)}
21
+ </pre>
22
+ )
23
+ }
24
+
25
+ PreloadedTestData.propTypes = {
26
+ /**
27
+ * The query to be used to query the test data
28
+ */
29
+ query:PropTypes.objectOf(
30
+ PropTypes.PropTypes.oneOfType([
31
+ PropTypes.string,
32
+ PropTypes.object,
33
+ ]),
34
+ ),
35
+
36
+ /**
37
+ * The query reference to be used to access the preloaded data
38
+ */
39
+ queryReference:PropTypes.objectOf(
40
+ PropTypes.PropTypes.oneOfType([
41
+ PropTypes.string,
42
+ PropTypes.object,
43
+ ]),
44
+ ),
45
+ }
46
+
47
+ PreloadedTestData.defaultProps = {
48
+ // someProp:false
49
+ }
50
+
51
+ export default PreloadedTestData
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as PreloadedTestData } from './PreloadedTestData'
@@ -0,0 +1 @@
1
+ export { PreloadedTestData } from './PreloadedTestData'
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as QueryLoader } from './QueryLoader'
@@ -0,0 +1 @@
1
+ export { QueryLoader } from './QueryLoader'
@@ -0,0 +1,2 @@
1
+ export { default as useWindowSize } from './useWindowSize'
2
+ export { default as useDynamicPosition } from './useDynamicPosition'
@@ -0,0 +1,104 @@
1
+ import {
2
+ useState, useEffect, useMemo, useCallback,
3
+ } from 'react'
4
+ import throttle from 'lodash/throttle'
5
+ import useWindowSize from './useWindowSize'
6
+
7
+ const verticalPositions = ['top', 'bottom']
8
+ const horizontalPositions = ['left', 'right']
9
+
10
+ const findCompatiblePositions = (primary, secondaryArray) => {
11
+ if (verticalPositions.includes(primary)) {
12
+ return secondaryArray.filter((secondary) => horizontalPositions.includes(secondary))
13
+ } if (horizontalPositions.includes(primary)) {
14
+ return secondaryArray.filter((secondary) => verticalPositions.includes(secondary))
15
+ }
16
+ return []
17
+ }
18
+
19
+ const useDynamicPosition = ({
20
+ elementRef,
21
+ parentRef,
22
+ preferredPrimaryOrder,
23
+ preferredSecondaryOrder,
24
+ // offsetYPx,
25
+ offsetXPx,
26
+ throttleMs = 200,
27
+ }) => {
28
+ const isClient = typeof window === 'object'
29
+ const {
30
+ height:currentHeight,
31
+ width:currentWidth,
32
+ } = useWindowSize()
33
+
34
+ const [primaryPosition, setPrimaryPosition] = useState(preferredPrimaryOrder[0])
35
+ const compatibleSecondaryPositions = useMemo(
36
+ () => findCompatiblePositions(
37
+ primaryPosition,
38
+ preferredSecondaryOrder,
39
+ ), [primaryPosition, preferredSecondaryOrder],
40
+ )
41
+ const [secondaryPosition, setSecondaryPosition] = useState(compatibleSecondaryPositions[0])
42
+
43
+ const handle = useCallback(
44
+ throttle(() => {
45
+ const parentNode = parentRef?.current
46
+ const elementNode = elementRef?.current
47
+
48
+ const {
49
+ top:parentTop,
50
+ bottom: parentBottom,
51
+ right: parentRight,
52
+ left: parentLeft,
53
+ } = parentNode?.getBoundingClientRect() || {}
54
+
55
+ const {
56
+ width:elementWidth,
57
+ height:elementHeight,
58
+ } = elementNode?.getBoundingClientRect() || {}
59
+
60
+ const availablePositions = {
61
+ top :parentTop >= elementHeight,
62
+ bottom:currentHeight - parentBottom >= elementHeight,
63
+ right :parentRight >= elementWidth,
64
+ left :currentWidth - parentLeft >= elementWidth,
65
+ }
66
+
67
+ for (let i = 0; i < preferredPrimaryOrder.length; i += 1) {
68
+ const position = preferredPrimaryOrder[i]
69
+ if (availablePositions[position]) {
70
+ setPrimaryPosition(position)
71
+ break
72
+ }
73
+ }
74
+
75
+ for (let i = 0; i < compatibleSecondaryPositions.length; i += 1) {
76
+ const position = compatibleSecondaryPositions[i]
77
+ if (availablePositions[position]) {
78
+ setSecondaryPosition(position)
79
+ break
80
+ }
81
+ }
82
+ }, throttleMs),
83
+ [elementRef, offsetXPx, throttleMs],
84
+ )
85
+
86
+ useEffect(() => {
87
+ if (!isClient) {
88
+ return false
89
+ }
90
+
91
+ handle()
92
+ window.addEventListener('scroll', handle)
93
+ window.addEventListener('resize', handle)
94
+
95
+ return () => {
96
+ window.removeEventListener('scroll', handle)
97
+ window.removeEventListener('resize', handle)
98
+ }
99
+ }, [handle])
100
+
101
+ return { primaryPosition, secondaryPosition }
102
+ }
103
+
104
+ export default useDynamicPosition
@@ -0,0 +1,32 @@
1
+ import { useCallback, useState, useEffect } from 'react'
2
+ import debounce from 'lodash/debounce'
3
+
4
+ const useWindowSize = (debounceMs = 700) => {
5
+ const isClient = typeof window === 'object'
6
+
7
+ const getSize = () => ({
8
+ width :isClient ? window.innerWidth : undefined,
9
+ height:isClient ? window.innerHeight : undefined,
10
+ })
11
+
12
+ const [windowSize, setWindowSize] = useState(getSize)
13
+
14
+ const handle = useCallback(
15
+ debounce(() => {
16
+ setWindowSize(getSize())
17
+ }, debounceMs),
18
+ )
19
+
20
+ useEffect(() => {
21
+ if (!isClient) {
22
+ return false
23
+ }
24
+
25
+ window.addEventListener('resize', handle)
26
+ return () => window.removeEventListener('resize', handle)
27
+ }, [getSize, handle, isClient])
28
+
29
+ return windowSize
30
+ }
31
+
32
+ export default useWindowSize
@@ -0,0 +1 @@
1
+ export { useWindowSize, useDynamicPosition } from './hooks'
@@ -1,24 +1,24 @@
1
1
  module.exports = {
2
- extends: [
2
+ extends:[
3
3
  'stylelint-config-palantir',
4
4
  'stylelint-config-palantir/sass.js',
5
5
  ],
6
- rules: {
7
- indentation: 2,
8
- 'number-leading-zero': 'never',
9
- 'at-rule-no-unknown': [true,
6
+ rules:{
7
+ indentation :2,
8
+ 'number-leading-zero':'never',
9
+ 'at-rule-no-unknown' :[true,
10
10
  {
11
- ignoreAtRules: [
11
+ ignoreAtRules:[
12
12
  // additional scss at-rules:
13
13
  'content', 'each', 'else', 'error', 'extend', 'for', 'function', 'if', 'include', 'mixin', 'return', 'use', 'forward',
14
14
  ],
15
15
  },
16
16
  ],
17
- 'at-rule-empty-line-before': ['always', {
18
- except: ['after-same-name', 'inside-block'],
19
- ignoreAtRules: ['include', 'mixin', 'function'],
17
+ 'at-rule-empty-line-before':['always', {
18
+ except :['after-same-name', 'inside-block'],
19
+ ignoreAtRules:['include', 'mixin', 'function'],
20
20
  }],
21
- 'order/order': [
21
+ 'order/order':[
22
22
  [
23
23
  'custom-properties',
24
24
  'at-variables',
@@ -34,12 +34,12 @@ module.exports = {
34
34
  ],
35
35
  { unspecified: 'ignore' },
36
36
  ],
37
- 'property-no-unknown': [
37
+ 'property-no-unknown':[
38
38
  true,
39
39
  {
40
- ignoreProperties: ['text-stroke', 'font-smooth'],
40
+ ignoreProperties:['text-stroke', 'font-smooth'],
41
41
  },
42
42
  ],
43
- 'max-nesting-depth': 5,
43
+ 'max-nesting-depth':5,
44
44
  },
45
45
  }
@@ -1,37 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
- import * as React from 'react'
3
- import { Formik, Form } from 'formik'
4
-
5
- import { CheckboxInput, FormDebugger } from 'ui'
6
-
7
- export default {
8
- title :'f/fields/CheckboxInput',
9
- component :CheckboxInput,
10
- subcomponents:{
11
- // Item:CheckboxInput.Item
12
- },
13
- decorators:[
14
- (storyfn) => (
15
- <Formik
16
- initialValues={{ businessTypes: [] }}
17
- >
18
- <Form>
19
- { storyfn() }
20
- </Form>
21
- </Formik>
22
- ),
23
- ],
24
- argTypes:{
25
- backgroundColor:{ control: 'color' },
26
- },
27
- }
28
-
29
- export const Base = () => (
30
- <div className="y-background1 b-y">
31
- <CheckboxInput value="Business to customer" name="businessTypes">Business to customer</CheckboxInput>
32
- <CheckboxInput value="Business to business" name="businessTypes">Business to business</CheckboxInput>
33
- <CheckboxInput value="E-commerce" name="businessTypes">E-commerce</CheckboxInput>
34
- <CheckboxInput value="Marketplace" name="businessTypes">Marketplace</CheckboxInput>
35
- <FormDebugger />
36
- </div>
37
- )