@pareto-engineering/design-system 2.0.0-alpha.6 → 2.0.0-alpha.60

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 (373) 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/Alert/Alert.js +141 -0
  5. package/dist/cjs/a/Alert/index.js +15 -0
  6. package/dist/cjs/a/Alert/styles.scss +74 -0
  7. package/dist/cjs/a/AppContext/Context.js +16 -0
  8. package/dist/cjs/a/AppContext/ContextProvider.js +96 -0
  9. package/dist/cjs/a/AppContext/index.js +39 -0
  10. package/dist/cjs/a/AppContext/useApp.js +16 -0
  11. package/dist/cjs/a/AppContext/useTheme.js +45 -0
  12. package/dist/cjs/a/BackgroundGradient/BackgroundGradient.js +77 -0
  13. package/dist/cjs/a/BackgroundGradient/index.js +15 -0
  14. package/dist/cjs/a/BackgroundGradient/styles.scss +16 -0
  15. package/dist/cjs/a/ContentTree/ContentTree.js +83 -0
  16. package/dist/cjs/a/ContentTree/common/Tree/Tree.js +116 -0
  17. package/dist/cjs/a/ContentTree/common/Tree/index.js +15 -0
  18. package/dist/cjs/a/ContentTree/common/index.js +31 -0
  19. package/dist/cjs/a/ContentTree/common/useContentTree.js +82 -0
  20. package/dist/cjs/a/ContentTree/common/useFirstVisibleNode.js +65 -0
  21. package/dist/cjs/a/ContentTree/index.js +15 -0
  22. package/dist/cjs/a/ContentTree/styles.scss +33 -0
  23. package/dist/cjs/a/Conversation/Conversation.js +14 -8
  24. package/dist/cjs/a/Conversation/common/Message/Message.js +32 -6
  25. package/dist/cjs/a/Conversation/styles.scss +132 -33
  26. package/dist/cjs/a/OvalIllustration/OvalIllustration.js +133 -0
  27. package/dist/cjs/a/OvalIllustration/index.js +15 -0
  28. package/dist/cjs/a/OvalIllustration/styles.scss +102 -0
  29. package/dist/cjs/a/Popover/Popover.js +134 -0
  30. package/dist/cjs/a/Popover/common/Divider/Divider.js +67 -0
  31. package/dist/cjs/a/Popover/common/Divider/index.js +15 -0
  32. package/dist/cjs/a/Popover/common/Item/Item.js +67 -0
  33. package/dist/cjs/a/Popover/common/Item/index.js +15 -0
  34. package/dist/cjs/a/Popover/common/index.js +21 -0
  35. package/dist/cjs/a/Popover/index.js +15 -0
  36. package/dist/cjs/a/Popover/styles.scss +33 -0
  37. package/dist/cjs/a/Shapes/Shapes.js +9 -1
  38. package/dist/cjs/a/Shapes/styles.scss +42 -9
  39. package/dist/cjs/a/SnapScroller/SnapScroller.js +77 -0
  40. package/dist/cjs/a/SnapScroller/index.js +15 -0
  41. package/dist/cjs/a/SnapScroller/styles.scss +38 -0
  42. package/dist/cjs/a/index.js +57 -9
  43. package/dist/cjs/b/Button/Button.js +10 -4
  44. package/dist/cjs/b/Button/styles.scss +55 -10
  45. package/dist/cjs/b/Logo/Logo.js +41 -41
  46. package/dist/cjs/b/Logo/styles.scss +0 -138
  47. package/dist/cjs/b/Page/common/PageHelmet/PageHelmet.js +1 -1
  48. package/dist/cjs/b/Page/common/Section/Section.js +17 -3
  49. package/dist/cjs/b/SocialMediaButton/SocialMediaButton.js +4 -4
  50. package/dist/cjs/b/ThemeSelector/ThemeSelector.js +1 -1
  51. package/dist/cjs/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.js +16 -9
  52. package/dist/cjs/c/ContentSlides/common/Navigator/Navigator.js +4 -3
  53. package/dist/cjs/c/ContentSlides/styles.scss +10 -4
  54. package/dist/cjs/c/SocialMediaShareButton/SocialMediaShareButton.js +111 -0
  55. package/dist/cjs/c/SocialMediaShareButton/index.js +15 -0
  56. package/dist/cjs/c/SocialMediaShareButton/styles.scss +39 -0
  57. package/dist/cjs/c/index.js +9 -1
  58. package/dist/cjs/f/FormInput/FormInput.js +26 -3
  59. package/dist/cjs/f/FormInput/styles.scss +11 -0
  60. package/dist/cjs/f/common/Debugger/Debugger.js +1 -1
  61. package/dist/cjs/f/common/Description/Description.js +20 -14
  62. package/dist/cjs/f/common/Label/Label.js +1 -1
  63. package/dist/cjs/f/common/Label/styles.scss +1 -1
  64. package/dist/cjs/f/fields/ChoicesInput/ChoicesInput.js +2 -2
  65. package/dist/cjs/f/fields/ChoicesInput/common/Choice/Choice.js +5 -2
  66. package/dist/cjs/f/fields/ChoicesInput/styles.scss +17 -2
  67. package/dist/cjs/f/fields/IntlTelInput/IntlTelInput.js +170 -0
  68. package/dist/cjs/f/fields/IntlTelInput/index.js +15 -0
  69. package/dist/cjs/f/fields/IntlTelInput/styles.scss +37 -0
  70. package/dist/cjs/f/fields/PhoneIntlTelInput/PhoneIntlTelInput.js +180 -0
  71. package/dist/cjs/f/fields/PhoneIntlTelInput/index.js +15 -0
  72. package/dist/cjs/f/fields/PhoneIntlTelInput/styles.scss +43 -0
  73. package/dist/cjs/f/fields/QueryCombobox/QueryCombobox.js +235 -0
  74. package/dist/cjs/f/fields/QueryCombobox/common/Combobox/Combobox.js +208 -0
  75. package/dist/cjs/f/fields/QueryCombobox/common/Combobox/index.js +15 -0
  76. package/dist/cjs/f/fields/QueryCombobox/common/Menu/Menu.js +103 -0
  77. package/dist/cjs/f/fields/QueryCombobox/common/Menu/index.js +15 -0
  78. package/dist/cjs/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +307 -0
  79. package/dist/cjs/f/fields/QueryCombobox/common/MultipleCombobox/index.js +15 -0
  80. package/dist/cjs/f/fields/QueryCombobox/common/index.js +29 -0
  81. package/dist/cjs/f/fields/QueryCombobox/index.js +15 -0
  82. package/dist/cjs/f/fields/QueryCombobox/styles.scss +90 -0
  83. package/dist/cjs/f/fields/QuerySelect/QuerySelect.js +201 -0
  84. package/dist/cjs/f/fields/QuerySelect/index.js +15 -0
  85. package/dist/cjs/f/fields/QuerySelect/styles.scss +21 -0
  86. package/dist/cjs/f/fields/RatingsInput/RatingsInput.js +39 -6
  87. package/dist/cjs/f/fields/RatingsInput/styles.scss +29 -20
  88. package/dist/cjs/f/fields/SelectInput/SelectInput.js +59 -14
  89. package/dist/cjs/f/fields/SelectInput/styles.scss +33 -13
  90. package/dist/cjs/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +1 -1
  91. package/dist/cjs/f/fields/TextInput/TextInput.js +50 -13
  92. package/dist/cjs/f/fields/TextInput/styles.scss +16 -7
  93. package/dist/cjs/f/fields/TextareaInput/TextareaInput.js +41 -15
  94. package/dist/cjs/f/fields/TextareaInput/styles.scss +19 -6
  95. package/dist/cjs/f/fields/index.js +15 -23
  96. package/dist/cjs/form-reset.scss +1 -1
  97. package/dist/cjs/index.js +26 -0
  98. package/dist/cjs/test/QueryLoader/QueryLoader.js +41 -0
  99. package/dist/cjs/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +71 -0
  100. package/dist/cjs/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.js +49 -0
  101. package/dist/cjs/test/QueryLoader/common/PreloadedTestData/index.js +15 -0
  102. package/dist/cjs/test/QueryLoader/common/index.js +13 -0
  103. package/dist/cjs/test/QueryLoader/index.js +15 -0
  104. package/dist/cjs/test/QueryLoader/styles.scss +9 -0
  105. package/dist/cjs/test/index.js +13 -0
  106. package/dist/cjs/utils/hooks/index.js +23 -0
  107. package/dist/cjs/utils/hooks/useDynamicPosition.js +107 -0
  108. package/dist/cjs/utils/hooks/useWindowSize.js +39 -0
  109. package/dist/cjs/utils/index.js +19 -0
  110. package/dist/es/a/Alert/Alert.js +118 -0
  111. package/dist/es/a/Alert/index.js +2 -0
  112. package/dist/es/a/Alert/styles.scss +74 -0
  113. package/dist/es/a/AppContext/Context.js +2 -0
  114. package/dist/es/a/AppContext/ContextProvider.js +78 -0
  115. package/dist/es/a/AppContext/index.js +5 -0
  116. package/dist/es/a/AppContext/useApp.js +3 -0
  117. package/dist/es/a/AppContext/useTheme.js +34 -0
  118. package/dist/es/a/BackgroundGradient/BackgroundGradient.js +55 -0
  119. package/dist/es/a/BackgroundGradient/index.js +2 -0
  120. package/dist/es/a/BackgroundGradient/styles.scss +16 -0
  121. package/dist/es/a/ContentTree/ContentTree.js +67 -0
  122. package/dist/es/a/ContentTree/common/Tree/Tree.js +98 -0
  123. package/dist/es/a/ContentTree/common/Tree/index.js +2 -0
  124. package/dist/es/a/ContentTree/common/index.js +3 -0
  125. package/dist/es/a/ContentTree/common/useContentTree.js +74 -0
  126. package/dist/es/a/ContentTree/common/useFirstVisibleNode.js +54 -0
  127. package/dist/es/a/ContentTree/index.js +2 -0
  128. package/dist/es/a/ContentTree/styles.scss +33 -0
  129. package/dist/es/a/Conversation/Conversation.js +14 -8
  130. package/dist/es/a/Conversation/common/Message/Message.js +32 -6
  131. package/dist/es/a/Conversation/styles.scss +132 -33
  132. package/dist/es/a/OvalIllustration/OvalIllustration.js +111 -0
  133. package/dist/es/a/OvalIllustration/index.js +2 -0
  134. package/dist/es/a/OvalIllustration/styles.scss +102 -0
  135. package/dist/es/a/Popover/Popover.js +118 -0
  136. package/dist/es/a/Popover/common/Divider/Divider.js +47 -0
  137. package/dist/es/a/Popover/common/Divider/index.js +2 -0
  138. package/dist/es/a/Popover/common/Item/Item.js +47 -0
  139. package/dist/es/a/Popover/common/Item/index.js +2 -0
  140. package/dist/es/a/Popover/common/index.js +2 -0
  141. package/dist/es/a/Popover/index.js +2 -0
  142. package/dist/es/a/Popover/styles.scss +33 -0
  143. package/dist/es/a/Shapes/Shapes.js +9 -1
  144. package/dist/es/a/Shapes/styles.scss +42 -9
  145. package/dist/es/a/SnapScroller/SnapScroller.js +61 -0
  146. package/dist/es/a/SnapScroller/index.js +2 -0
  147. package/dist/es/a/SnapScroller/styles.scss +38 -0
  148. package/dist/es/a/index.js +8 -2
  149. package/dist/es/b/Button/Button.js +8 -2
  150. package/dist/es/b/Button/styles.scss +55 -10
  151. package/dist/es/b/Logo/Logo.js +41 -41
  152. package/dist/es/b/Logo/styles.scss +0 -138
  153. package/dist/es/b/Page/common/PageHelmet/PageHelmet.js +2 -2
  154. package/dist/es/b/Page/common/Section/Section.js +17 -3
  155. package/dist/es/b/SocialMediaButton/SocialMediaButton.js +5 -5
  156. package/dist/es/b/ThemeSelector/ThemeSelector.js +2 -2
  157. package/dist/es/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.js +16 -9
  158. package/dist/es/c/ContentSlides/common/Navigator/Navigator.js +4 -3
  159. package/dist/es/c/ContentSlides/styles.scss +10 -4
  160. package/dist/es/c/SocialMediaShareButton/SocialMediaShareButton.js +95 -0
  161. package/dist/es/c/SocialMediaShareButton/index.js +2 -0
  162. package/dist/es/c/SocialMediaShareButton/styles.scss +39 -0
  163. package/dist/es/c/index.js +2 -1
  164. package/dist/es/f/FormInput/FormInput.js +26 -3
  165. package/dist/es/f/FormInput/styles.scss +11 -0
  166. package/dist/es/f/common/Debugger/Debugger.js +1 -1
  167. package/dist/es/f/common/Description/Description.js +19 -14
  168. package/dist/es/f/common/Label/Label.js +1 -1
  169. package/dist/es/f/common/Label/styles.scss +1 -1
  170. package/dist/es/f/fields/ChoicesInput/ChoicesInput.js +2 -2
  171. package/dist/es/f/fields/ChoicesInput/common/Choice/Choice.js +5 -2
  172. package/dist/es/f/fields/ChoicesInput/styles.scss +17 -2
  173. package/dist/es/f/fields/IntlTelInput/IntlTelInput.js +152 -0
  174. package/dist/es/f/fields/IntlTelInput/index.js +2 -0
  175. package/dist/es/f/fields/IntlTelInput/styles.scss +37 -0
  176. package/dist/es/f/fields/PhoneIntlTelInput/PhoneIntlTelInput.js +163 -0
  177. package/dist/es/f/fields/PhoneIntlTelInput/index.js +2 -0
  178. package/dist/es/f/fields/PhoneIntlTelInput/styles.scss +43 -0
  179. package/dist/es/f/fields/QueryCombobox/QueryCombobox.js +212 -0
  180. package/dist/es/f/fields/QueryCombobox/common/Combobox/Combobox.js +188 -0
  181. package/dist/es/f/fields/QueryCombobox/common/Combobox/index.js +2 -0
  182. package/dist/es/f/fields/QueryCombobox/common/Menu/Menu.js +77 -0
  183. package/dist/es/f/fields/QueryCombobox/common/Menu/index.js +2 -0
  184. package/dist/es/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +279 -0
  185. package/dist/es/f/fields/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  186. package/dist/es/f/fields/QueryCombobox/common/index.js +3 -0
  187. package/dist/es/f/fields/QueryCombobox/index.js +2 -0
  188. package/dist/es/f/fields/QueryCombobox/styles.scss +90 -0
  189. package/dist/es/f/fields/QuerySelect/QuerySelect.js +179 -0
  190. package/dist/es/f/fields/QuerySelect/index.js +2 -0
  191. package/dist/es/f/fields/QuerySelect/styles.scss +21 -0
  192. package/dist/es/f/fields/RatingsInput/RatingsInput.js +38 -6
  193. package/dist/es/f/fields/RatingsInput/styles.scss +29 -20
  194. package/dist/es/f/fields/SelectInput/SelectInput.js +58 -14
  195. package/dist/es/f/fields/SelectInput/styles.scss +33 -13
  196. package/dist/es/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +1 -1
  197. package/dist/es/f/fields/TextInput/TextInput.js +50 -13
  198. package/dist/es/f/fields/TextInput/styles.scss +16 -7
  199. package/dist/es/f/fields/TextareaInput/TextareaInput.js +41 -15
  200. package/dist/es/f/fields/TextareaInput/styles.scss +19 -6
  201. package/dist/es/f/fields/index.js +3 -4
  202. package/dist/es/form-reset.scss +1 -1
  203. package/dist/es/index.js +3 -1
  204. package/dist/es/test/QueryLoader/QueryLoader.js +29 -0
  205. package/dist/es/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +71 -0
  206. package/dist/es/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.js +31 -0
  207. package/dist/es/test/QueryLoader/common/PreloadedTestData/index.js +2 -0
  208. package/dist/es/test/QueryLoader/common/index.js +1 -0
  209. package/dist/es/test/QueryLoader/index.js +2 -0
  210. package/dist/es/test/QueryLoader/styles.scss +9 -0
  211. package/dist/es/test/index.js +1 -0
  212. package/dist/es/utils/hooks/index.js +2 -0
  213. package/dist/es/utils/hooks/useDynamicPosition.js +93 -0
  214. package/dist/es/utils/hooks/useWindowSize.js +27 -0
  215. package/dist/es/utils/index.js +1 -0
  216. package/package.json +18 -4
  217. package/relay.config.js +12 -0
  218. package/schema.graphql +4075 -0
  219. package/scripts/fetchSchema.js +74 -0
  220. package/src/__snapshots__/Storyshots.test.js.snap +10152 -5495
  221. package/src/local.scss +4 -2
  222. package/src/stories/StyleGuide/Sprites.stories.mdx +25 -0
  223. package/src/stories/StyleGuide/helpers.js +16 -0
  224. package/src/stories/a/Alert.stories.jsx +75 -0
  225. package/src/stories/a/{SiteContext.stories.jsx → AppContext.stories.jsx} +8 -8
  226. package/src/stories/a/BackgroundGradient.stories.jsx +38 -0
  227. package/src/stories/a/ContentTree.stories.jsx +662 -0
  228. package/src/stories/a/Conversation.stories.jsx +78 -1
  229. package/src/stories/a/DotInfo.stories.jsx +14 -13
  230. package/src/stories/a/OvalIllustration.stories.jsx +59 -0
  231. package/src/stories/a/Popover.stories.jsx +106 -0
  232. package/src/stories/a/ProgressBar.stories.jsx +16 -7
  233. package/src/stories/a/Shapes.stories.jsx +18 -0
  234. package/src/stories/a/SnapScroller.stories.jsx +98 -0
  235. package/src/stories/a/Timestamp.stories.jsx +35 -39
  236. package/src/stories/b/Button.stories.jsx +27 -4
  237. package/src/stories/b/Logo.stories.jsx +23 -14
  238. package/src/stories/b/Page.stories.jsx +25 -1
  239. package/src/stories/b/QuestionDropdown.stories.jsx +20 -30
  240. package/src/stories/b/SocialMediaButton.stories.jsx +36 -53
  241. package/src/stories/b/ThemeSelector.stories.jsx +5 -5
  242. package/src/stories/b/Title.stories.jsx +13 -15
  243. package/src/stories/c/ContentSlides.stories.jsx +35 -151
  244. package/src/stories/c/Shortener.stories.jsx +9 -3
  245. package/src/stories/c/SocialMediaShareButton.stories.jsx +33 -0
  246. package/src/stories/f/ChoicesInput.stories.jsx +91 -129
  247. package/src/stories/f/Description.stories.jsx +22 -4
  248. package/src/stories/f/FormInput.stories.jsx +259 -0
  249. package/src/stories/f/QueryCombobox.stories.jsx +273 -0
  250. package/src/stories/f/QuerySelect.stories.jsx +135 -0
  251. package/src/stories/f/RatingsInput.stories.jsx +29 -22
  252. package/src/stories/f/SelectInput.stories.jsx +41 -49
  253. package/src/stories/f/TextInput.stories.jsx +63 -43
  254. package/src/stories/f/TextareaInput.stories.jsx +63 -19
  255. package/src/stories/f/__generated__/FormInputAllTaskStatusesQuery.graphql.js +122 -0
  256. package/src/stories/f/__generated__/FormInputAllTeamsQuery.graphql.js +139 -0
  257. package/src/stories/f/__generated__/QueryComboboxAllTeamsQuery.graphql.js +139 -0
  258. package/src/stories/f/__generated__/QuerySelectAllTaskStatusesQuery.graphql.js +122 -0
  259. package/src/stories/test/QueryLoader.stories.jsx +36 -0
  260. package/src/stories/utils/generateNodeId.js +12 -0
  261. package/src/stories/utils/lorem.js +15 -0
  262. package/src/stories/utils/relay/EnvironmentProvider.jsx +14 -0
  263. package/src/stories/utils/relay/environment.js +5 -0
  264. package/src/stories/utils/relay/index.js +4 -0
  265. package/src/stories/utils/relay/mockRelayOperation.js +14 -0
  266. package/src/stories/utils/relay/mockResolvers.js +299 -0
  267. package/src/stories/utils/testData.js +63 -0
  268. package/src/ui/a/Alert/Alert.jsx +144 -0
  269. package/src/ui/a/Alert/index.js +2 -0
  270. package/src/ui/a/Alert/styles.scss +74 -0
  271. package/src/ui/a/{SiteContext → AppContext}/Context.js +0 -0
  272. package/src/ui/a/{SiteContext → AppContext}/ContextProvider.jsx +8 -7
  273. package/src/ui/a/AppContext/index.js +5 -0
  274. package/src/ui/a/{SiteContext/useSite.js → AppContext/useApp.js} +0 -0
  275. package/src/ui/a/{SiteContext → AppContext}/useTheme.js +0 -0
  276. package/src/ui/a/BackgroundGradient/BackgroundGradient.jsx +76 -0
  277. package/src/ui/a/BackgroundGradient/index.js +2 -0
  278. package/src/ui/a/BackgroundGradient/styles.scss +16 -0
  279. package/src/ui/a/ContentTree/ContentTree.jsx +88 -0
  280. package/src/ui/a/ContentTree/common/Tree/Tree.jsx +138 -0
  281. package/src/ui/a/ContentTree/common/Tree/index.js +2 -0
  282. package/src/ui/a/ContentTree/common/index.js +3 -0
  283. package/src/ui/a/ContentTree/common/useContentTree.js +83 -0
  284. package/src/ui/a/ContentTree/common/useFirstVisibleNode.js +59 -0
  285. package/src/ui/a/ContentTree/index.js +2 -0
  286. package/src/ui/a/ContentTree/styles.scss +33 -0
  287. package/src/ui/a/Conversation/Conversation.jsx +15 -7
  288. package/src/ui/a/Conversation/common/Message/Message.jsx +38 -6
  289. package/src/ui/a/Conversation/styles.scss +132 -33
  290. package/src/ui/a/OvalIllustration/OvalIllustration.jsx +134 -0
  291. package/src/ui/a/OvalIllustration/index.js +2 -0
  292. package/src/ui/a/OvalIllustration/styles.scss +102 -0
  293. package/src/ui/a/Popover/Popover.jsx +157 -0
  294. package/src/ui/a/Popover/index.js +2 -0
  295. package/src/ui/a/Popover/styles.scss +33 -0
  296. package/src/ui/a/Shapes/Shapes.jsx +10 -0
  297. package/src/ui/a/Shapes/styles.scss +42 -9
  298. package/src/ui/a/SnapScroller/SnapScroller.jsx +83 -0
  299. package/src/ui/a/SnapScroller/index.js +2 -0
  300. package/src/ui/a/SnapScroller/styles.scss +38 -0
  301. package/src/ui/a/index.js +10 -4
  302. package/src/ui/b/Button/Button.jsx +9 -1
  303. package/src/ui/b/Button/styles.scss +55 -10
  304. package/src/ui/b/Logo/Logo.jsx +41 -41
  305. package/src/ui/b/Logo/styles.scss +0 -138
  306. package/src/ui/b/Page/common/PageHelmet/PageHelmet.jsx +2 -2
  307. package/src/ui/b/Page/common/Section/Section.jsx +19 -2
  308. package/src/ui/b/SocialMediaButton/SocialMediaButton.jsx +4 -4
  309. package/src/ui/b/ThemeSelector/ThemeSelector.jsx +2 -2
  310. package/src/ui/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.jsx +12 -5
  311. package/src/ui/c/ContentSlides/common/Navigator/Navigator.jsx +3 -2
  312. package/src/ui/c/ContentSlides/styles.scss +10 -4
  313. package/src/ui/c/SocialMediaShareButton/SocialMediaShareButton.jsx +121 -0
  314. package/src/ui/c/SocialMediaShareButton/index.js +2 -0
  315. package/src/ui/c/SocialMediaShareButton/styles.scss +39 -0
  316. package/src/ui/c/index.js +1 -0
  317. package/src/ui/f/FormInput/FormInput.jsx +38 -1
  318. package/src/ui/f/FormInput/styles.scss +11 -0
  319. package/src/ui/f/common/Debugger/Debugger.jsx +1 -1
  320. package/src/ui/f/common/Description/Description.jsx +34 -29
  321. package/src/ui/f/common/Label/Label.jsx +1 -1
  322. package/src/ui/f/common/Label/styles.scss +1 -1
  323. package/src/ui/f/fields/ChoicesInput/ChoicesInput.jsx +2 -2
  324. package/src/ui/f/fields/ChoicesInput/common/Choice/Choice.jsx +10 -2
  325. package/src/ui/f/fields/ChoicesInput/styles.scss +17 -2
  326. package/src/ui/f/fields/QueryCombobox/QueryCombobox.jsx +227 -0
  327. package/src/ui/f/fields/QueryCombobox/common/Combobox/Combobox.jsx +218 -0
  328. package/src/ui/f/fields/QueryCombobox/common/Combobox/index.js +2 -0
  329. package/src/ui/f/fields/QueryCombobox/common/Menu/Menu.jsx +103 -0
  330. package/src/ui/f/fields/QueryCombobox/common/Menu/index.js +2 -0
  331. package/src/ui/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +314 -0
  332. package/src/ui/f/fields/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  333. package/src/ui/f/fields/QueryCombobox/common/index.js +3 -0
  334. package/src/ui/f/fields/QueryCombobox/index.js +2 -0
  335. package/src/ui/f/fields/QueryCombobox/styles.scss +90 -0
  336. package/src/ui/f/fields/QuerySelect/QuerySelect.jsx +200 -0
  337. package/src/ui/f/fields/QuerySelect/index.js +2 -0
  338. package/src/ui/f/fields/RatingsInput/RatingsInput.jsx +54 -19
  339. package/src/ui/f/fields/RatingsInput/styles.scss +29 -20
  340. package/src/ui/f/fields/SelectInput/SelectInput.jsx +66 -8
  341. package/src/ui/f/fields/SelectInput/styles.scss +33 -13
  342. package/src/ui/f/fields/TextInput/TextInput.jsx +44 -10
  343. package/src/ui/f/fields/TextInput/styles.scss +16 -7
  344. package/src/ui/f/fields/TextareaInput/TextareaInput.jsx +42 -21
  345. package/src/ui/f/fields/TextareaInput/styles.scss +19 -6
  346. package/src/ui/f/fields/index.js +2 -3
  347. package/src/ui/form-reset.scss +1 -1
  348. package/src/ui/index.js +2 -0
  349. package/src/ui/test/QueryLoader/QueryLoader.jsx +41 -0
  350. package/src/ui/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +68 -0
  351. package/src/ui/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.jsx +51 -0
  352. package/src/ui/test/QueryLoader/common/PreloadedTestData/index.js +2 -0
  353. package/src/ui/test/QueryLoader/common/index.js +1 -0
  354. package/src/ui/test/QueryLoader/index.js +2 -0
  355. package/src/ui/test/index.js +1 -0
  356. package/src/ui/utils/hooks/index.js +2 -0
  357. package/src/ui/utils/hooks/useDynamicPosition.js +104 -0
  358. package/src/ui/utils/hooks/useWindowSize.js +32 -0
  359. package/src/ui/utils/index.js +1 -0
  360. package/stylelint.config.js +13 -13
  361. package/src/stories/f/CheckboxInput.stories.jsx +0 -37
  362. package/src/stories/f/RadioInput.stories.jsx +0 -37
  363. package/src/stories/f/TaskRecommendationInput.stories.jsx +0 -38
  364. package/src/ui/a/SiteContext/index.js +0 -5
  365. package/src/ui/f/fields/CheckboxInput/CheckboxInput.jsx +0 -107
  366. package/src/ui/f/fields/CheckboxInput/index.js +0 -2
  367. package/src/ui/f/fields/CheckboxInput/styles.scss +0 -28
  368. package/src/ui/f/fields/RadioInput/RadioInput.jsx +0 -112
  369. package/src/ui/f/fields/RadioInput/index.js +0 -2
  370. package/src/ui/f/fields/RadioInput/styles.scss +0 -26
  371. package/src/ui/f/fields/TaskRecommendationInput/TaskRecommendationInput.jsx +0 -130
  372. package/src/ui/f/fields/TaskRecommendationInput/index.js +0 -2
  373. package/src/ui/f/fields/TaskRecommendationInput/styles.scss +0 -41
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactIntlTelInput = _interopRequireDefault(require("react-intl-tel-input"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _bem = _interopRequireDefault(require("@pareto-engineering/bem"));
15
+
16
+ var _formik = require("formik");
17
+
18
+ var _common = require("../../common");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ var baseClassName = _bem.default.base;
27
+ var componentClassName = 'phone-intl-tel-input';
28
+ /**
29
+ * This is the component description.
30
+ */
31
+
32
+ var PhoneIntlTelInput = _ref => {
33
+ var {
34
+ id,
35
+ className: userClassName,
36
+ style,
37
+ name,
38
+ label,
39
+ color,
40
+ labelColor,
41
+ oneInputLabel,
42
+ description,
43
+ disabled,
44
+ placeholder,
45
+ optional,
46
+ autoComplete,
47
+ validate,
48
+ errorMessage // ...otherProps
49
+
50
+ } = _ref;
51
+ (0, React.useLayoutEffect)(() => {
52
+ Promise.resolve().then(() => _interopRequireWildcard(require("./styles.scss")));
53
+ Promise.resolve().then(() => _interopRequireWildcard(require('react-intl-tel-input/dist/main.css')));
54
+ }, []);
55
+ var [field,, helpers] = (0, _formik.useField)({
56
+ name,
57
+ validate
58
+ });
59
+ var {
60
+ setValue
61
+ } = helpers;
62
+ var [intlInputError, setIntlInputError] = (0, React.useState)('');
63
+ return /*#__PURE__*/React.createElement("div", {
64
+ id: id,
65
+ className: [baseClassName, componentClassName, userClassName, "y-".concat(color), intlInputError && 'error'].filter(e => e).join(' '),
66
+ style: style // {...otherProps}
67
+
68
+ }, /*#__PURE__*/React.createElement(_common.FormLabel, {
69
+ className: [oneInputLabel ? 'md-s2 s0 v1 mb-v' : 'v50 mb-v'].filter(e => e).join(' '),
70
+ name: name,
71
+ color: labelColor,
72
+ optional: optional
73
+ }, label), /*#__PURE__*/React.createElement(_reactIntlTelInput.default, {
74
+ inputClassName: "input",
75
+ customContainer: "input-wrapper",
76
+ placeholder: placeholder,
77
+ disabled: disabled,
78
+ value: field.value,
79
+ fieldName: field.name,
80
+ onPhoneNumberChange: (isValid, value) => {
81
+ setValue(value);
82
+
83
+ if (value && !isValid) {
84
+ setIntlInputError(errorMessage);
85
+ } else {
86
+ setIntlInputError('');
87
+ }
88
+ },
89
+ autoComplete: autoComplete
90
+ }), /*#__PURE__*/React.createElement(_common.FormDescription, {
91
+ className: "v50 mt-v s-1",
92
+ description: intlInputError || description,
93
+ name: name
94
+ }));
95
+ };
96
+
97
+ PhoneIntlTelInput.propTypes = {
98
+ /**
99
+ * The HTML id for this element
100
+ */
101
+ id: _propTypes.default.string,
102
+
103
+ /**
104
+ * The HTML class names for this element
105
+ */
106
+ className: _propTypes.default.string,
107
+
108
+ /**
109
+ * The React-written, css properties for this element.
110
+ */
111
+ style: _propTypes.default.objectOf(_propTypes.default.string),
112
+
113
+ /**
114
+ * The input name (html - and Formik state)
115
+ */
116
+ name: _propTypes.default.string.isRequired,
117
+
118
+ /**
119
+ * The input label
120
+ */
121
+ label: _propTypes.default.string.isRequired,
122
+
123
+ /**
124
+ * The input label color
125
+ */
126
+ labelColor: _propTypes.default.string,
127
+
128
+ /**
129
+ * If the slide will only have one input
130
+ */
131
+ oneInputLabel: _propTypes.default.bool,
132
+
133
+ /**
134
+ * Input description
135
+ */
136
+ description: _propTypes.default.string,
137
+
138
+ /**
139
+ * Whether the text input should be disabled
140
+ */
141
+ disabled: _propTypes.default.bool,
142
+
143
+ /**
144
+ * The placeholder text for the input
145
+ */
146
+ placeholder: _propTypes.default.string,
147
+
148
+ /**
149
+ * The text input color
150
+ */
151
+ color: _propTypes.default.string,
152
+
153
+ /**
154
+ * Whether the input is optional or not
155
+ */
156
+ optional: _propTypes.default.bool,
157
+
158
+ /**
159
+ * The autoComplete value that the browser should watch for the input
160
+ * `https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete`
161
+ */
162
+ autoComplete: _propTypes.default.string,
163
+
164
+ /**
165
+ * The error message to be siplayed when the input is invalid
166
+ */
167
+ errorMessage: _propTypes.default.string,
168
+
169
+ /**
170
+ * The input field validator function
171
+ */
172
+ validate: _propTypes.default.func
173
+ };
174
+ PhoneIntlTelInput.defaultProps = {
175
+ color: 'background2',
176
+ disabled: false,
177
+ errorMessage: 'Please enter a valid phone number'
178
+ };
179
+ var _default = PhoneIntlTelInput;
180
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "PhoneIntlTelInput", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _PhoneIntlTelInput.default;
10
+ }
11
+ });
12
+
13
+ var _PhoneIntlTelInput = _interopRequireDefault(require("./PhoneIntlTelInput"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,43 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ @use "@pareto-engineering/bem";
3
+
4
+ $default-padding: 0.75em 0.75em 0.55em;
5
+
6
+ .#{bem.$base}.phone-intl-tel-input {
7
+ display: flex;
8
+ flex-direction: column;
9
+
10
+ &.error {
11
+ >.#{bem.$base}.description {
12
+ color: var(--error);
13
+ }
14
+ }
15
+
16
+ .input-wrapper {
17
+ width: 100%;
18
+ }
19
+
20
+ .input {
21
+ border: var(--theme-border-style) var(--dark-y);
22
+ background: var(--light-y);
23
+ color: var(--on-y);
24
+ padding: $default-padding;
25
+ width: 100%;
26
+
27
+ &::placeholder {
28
+ color: var(--metadata);
29
+ }
30
+
31
+ &:not(:disabled):hover {
32
+ border: var(--theme-border-style) var(--light-background4);
33
+ }
34
+
35
+ &:disabled {
36
+ background-color: var(--dark-y);
37
+ }
38
+
39
+ &:focus {
40
+ background: var(--light-background4);
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _formik = require("formik");
11
+
12
+ var _reactRelay = require("react-relay");
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _common = require("./common");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ /**
31
+ * This is the component description.
32
+ */
33
+ var QueryCombobox = _ref => {
34
+ var {
35
+ id,
36
+ style,
37
+ className,
38
+ query,
39
+ multiple,
40
+ name,
41
+ label,
42
+ color,
43
+ description,
44
+ disabled,
45
+ debounceMs,
46
+ searchVariable,
47
+ extraVariables,
48
+ optionsKeyMap,
49
+ minLength,
50
+ transformSearch // ...otherProps
51
+
52
+ } = _ref;
53
+ (0, React.useLayoutEffect)(() => {
54
+ Promise.resolve().then(() => _interopRequireWildcard(require("./styles.scss")));
55
+ }, []);
56
+ var [, meta, helpers] = (0, _formik.useField)(name);
57
+ var {
58
+ setValue,
59
+ setError
60
+ } = helpers;
61
+ var {
62
+ value
63
+ } = meta;
64
+ var environment = (0, _reactRelay.useRelayEnvironment)();
65
+ var [isFetching, setIsFetching] = (0, React.useState)(false);
66
+ var [options, setOptions] = (0, React.useState)([]);
67
+ var {
68
+ graphql,
69
+ accessor
70
+ } = query;
71
+
72
+ var getOptions = inputValue => {
73
+ if (isFetching) return;
74
+ var variables = {
75
+ [searchVariable]: inputValue
76
+ };
77
+
78
+ if (extraVariables) {
79
+ variables = _objectSpread(_objectSpread({}, variables), extraVariables);
80
+ }
81
+
82
+ (0, _reactRelay.fetchQuery)(environment, graphql, variables).subscribe({
83
+ start: () => {
84
+ setIsFetching(true);
85
+ },
86
+ complete: () => {
87
+ setIsFetching(false);
88
+ },
89
+ error: fetchError => {
90
+ setIsFetching(false);
91
+ if (setError) setError(fetchError.message);
92
+ },
93
+ next: data => {
94
+ setOptions(data[accessor].edges.map(_ref2 => {
95
+ var {
96
+ node
97
+ } = _ref2;
98
+ return {
99
+ value: node[optionsKeyMap.value],
100
+ label: optionsKeyMap.getLabel(node)
101
+ };
102
+ }));
103
+ }
104
+ });
105
+ };
106
+
107
+ var comboboxProps = {
108
+ id,
109
+ style,
110
+ options,
111
+ getOptions,
112
+ debounceMs,
113
+ disabled,
114
+ name,
115
+ label,
116
+ description,
117
+ setValue,
118
+ value,
119
+ color,
120
+ isFetching,
121
+ className,
122
+ minLength,
123
+ transformSearch
124
+ };
125
+ var Input = multiple ? _common.MultipleCombobox : _common.Combobox;
126
+ return /*#__PURE__*/React.createElement(Input, comboboxProps);
127
+ };
128
+
129
+ QueryCombobox.propTypes = {
130
+ /**
131
+ * The HTML id for this element
132
+ */
133
+ id: _propTypes.default.string,
134
+
135
+ /**
136
+ * The HTML class names for this element
137
+ */
138
+ className: _propTypes.default.string,
139
+
140
+ /**
141
+ * The React-written, css properties for this element.
142
+ */
143
+ style: _propTypes.default.objectOf(_propTypes.default.string),
144
+
145
+ /**
146
+ * The name of the custom select input
147
+ */
148
+ name: _propTypes.default.string,
149
+
150
+ /**
151
+ * The label of the custom select input
152
+ */
153
+ label: _propTypes.default.string,
154
+
155
+ /**
156
+ * The custom select input description
157
+ */
158
+ description: _propTypes.default.string,
159
+
160
+ /**
161
+ * Whether the input should be disabled
162
+ */
163
+ disabled: _propTypes.default.bool,
164
+
165
+ /**
166
+ * The base color of the custom select input
167
+ */
168
+ color: _propTypes.default.string,
169
+
170
+ /**
171
+ * The debounce time in milliseconds
172
+ */
173
+ debounceMs: _propTypes.default.number,
174
+
175
+ /**
176
+ * The graphql query to fetch the options and the accessor to destructure the results from
177
+ */
178
+ query: _propTypes.default.shape({
179
+ accessor: _propTypes.default.string,
180
+ graphql: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]).isRequired
181
+ }),
182
+
183
+ /**
184
+ * The extra variables required to be used in the query.
185
+ */
186
+ extraVariables: _propTypes.default.objectOf(_propTypes.default.string),
187
+
188
+ /**
189
+ * The select option keys to be used to map the data to the select options.
190
+ * i.e `{ value: 'id', label: 'name' }`
191
+ */
192
+ optionsKeyMap: _propTypes.default.shape({
193
+ value: _propTypes.default.string.isRequired,
194
+ getLabel: _propTypes.default.func.isRequired
195
+ }),
196
+
197
+ /**
198
+ * Whether to allow multiple items selection
199
+ */
200
+ multiple: _propTypes.default.bool,
201
+
202
+ /**
203
+ * The graphql node to be used to destructure the fetched data
204
+ */
205
+ graphQlNode: _propTypes.default.string.isRequired,
206
+
207
+ /**
208
+ * The variable to be used to search the data
209
+ */
210
+ searchVariable: _propTypes.default.string,
211
+
212
+ /**
213
+ * The minimum length of the search input to start fetching the options
214
+ */
215
+ minLength: _propTypes.default.number,
216
+
217
+ /**
218
+ * The function to transform the search input
219
+ */
220
+ transformSearch: _propTypes.default.func
221
+ };
222
+ QueryCombobox.defaultProps = {
223
+ optionsKeyMap: {
224
+ value: 'id',
225
+ getLabel: node => node.name
226
+ },
227
+ multiple: false,
228
+ color: 'background2',
229
+ searchVariable: 'search',
230
+ transformSearch: search => search,
231
+ minLength: 2,
232
+ disabled: false
233
+ };
234
+ var _default = QueryCombobox;
235
+ exports.default = _default;
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _downshift = require("downshift");
13
+
14
+ var _bem = _interopRequireDefault(require("@pareto-engineering/bem"));
15
+
16
+ var _ = require("../../../..");
17
+
18
+ var _a = require("../../../../../a");
19
+
20
+ var _Menu = require("../Menu");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ 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); }
29
+
30
+ var baseClassName = _bem.default.base;
31
+ var componentClassName = 'combobox';
32
+ /**
33
+ * This is the component description.
34
+ */
35
+
36
+ var Combobox = _ref => {
37
+ var {
38
+ id,
39
+ className: userClassName,
40
+ style,
41
+ label,
42
+ name,
43
+ options: items,
44
+ getOptions,
45
+ setValue,
46
+ description,
47
+ value,
48
+ color,
49
+ minLength,
50
+ isFetching,
51
+ transformSearch,
52
+ disabled // ...otherProps
53
+
54
+ } = _ref;
55
+ var {
56
+ isOpen,
57
+ selectItem,
58
+ selectedItem,
59
+ getLabelProps,
60
+ getMenuProps,
61
+ getInputProps,
62
+ highlightedIndex,
63
+ getComboboxProps,
64
+ getItemProps
65
+ } = (0, _downshift.useCombobox)({
66
+ items,
67
+ initialSelectedItem: value,
68
+ itemToString: item => item ? item.label : '',
69
+ onInputValueChange: _ref2 => {
70
+ var {
71
+ inputValue
72
+ } = _ref2;
73
+ var transformedInput = transformSearch(inputValue);
74
+
75
+ if (transformedInput.length > minLength) {
76
+ getOptions(transformedInput);
77
+ }
78
+ }
79
+ }); // If the user has selected an item, we'll set the value of the field
80
+ // or if the combobox state has a selected item, we'll set the value to the formik state
81
+
82
+ (0, React.useEffect)(() => {
83
+ if (selectedItem) {
84
+ setValue(selectedItem);
85
+ }
86
+ }, [selectedItem]); // If the formik state has a value, we'll set the selected item to the combobox state
87
+
88
+ (0, React.useEffect)(() => {
89
+ if ((value === null || value === void 0 ? void 0 : value.value) !== (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value)) {
90
+ selectItem(value);
91
+ }
92
+ }, [value]);
93
+ var parentRef = (0, React.useRef)(null);
94
+ return /*#__PURE__*/React.createElement("div", {
95
+ id: id,
96
+ className: [baseClassName, componentClassName, userClassName, "y-".concat(color)].filter(e => e).join(' '),
97
+ style: style,
98
+ ref: parentRef
99
+ }, /*#__PURE__*/React.createElement(_.FormLabel, _extends({}, getLabelProps(), {
100
+ name: name
101
+ }), label), /*#__PURE__*/React.createElement("div", _extends({}, getComboboxProps(), {
102
+ className: "input-wrapper"
103
+ }), /*#__PURE__*/React.createElement("input", _extends({}, getInputProps(), {
104
+ className: "input",
105
+ disabled: disabled
106
+ })), isFetching && /*#__PURE__*/React.createElement(_a.LoadingCircle, {
107
+ className: "x-main2"
108
+ })), /*#__PURE__*/React.createElement(_a.Popover, {
109
+ isOpen: isOpen,
110
+ parentRef: parentRef
111
+ }, /*#__PURE__*/React.createElement(_Menu.Menu, _extends({
112
+ isOpen: isOpen,
113
+ getItemProps: getItemProps,
114
+ highlightedIndex: highlightedIndex,
115
+ items: items
116
+ }, getMenuProps()))), /*#__PURE__*/React.createElement(_.FormDescription, {
117
+ className: "v50 mt-v s-1",
118
+ description: description,
119
+ name: name
120
+ }));
121
+ };
122
+
123
+ Combobox.propTypes = {
124
+ /**
125
+ * The HTML id for this element
126
+ */
127
+ id: _propTypes.default.string,
128
+
129
+ /**
130
+ * The HTML class names for this element
131
+ */
132
+ className: _propTypes.default.string,
133
+
134
+ /**
135
+ * The React-written, css properties for this element.
136
+ */
137
+ style: _propTypes.default.objectOf(_propTypes.default.string),
138
+
139
+ /**
140
+ * The label of the custom select input
141
+ */
142
+ label: _propTypes.default.string,
143
+
144
+ /**
145
+ * The custom select input options from the backend
146
+ */
147
+ options: _propTypes.default.arrayOf(_propTypes.default.shape({
148
+ value: _propTypes.default.string,
149
+ label: _propTypes.default.string
150
+ })),
151
+
152
+ /**
153
+ * The name of the custom select input
154
+ */
155
+ name: _propTypes.default.string,
156
+
157
+ /**
158
+ * The function to fetch the options from the backend
159
+ */
160
+ getOptions: _propTypes.default.func,
161
+
162
+ /**
163
+ * The function to set the value of the custom select input
164
+ */
165
+ setValue: _propTypes.default.func.isRequired,
166
+
167
+ /**
168
+ * The custom select input description
169
+ */
170
+ description: _propTypes.default.string,
171
+
172
+ /**
173
+ * The value of the custom select input
174
+ */
175
+ value: _propTypes.default.shape({
176
+ value: _propTypes.default.string,
177
+ label: _propTypes.default.string
178
+ }),
179
+
180
+ /**
181
+ * The base color of the combobox custom select input
182
+ */
183
+ color: _propTypes.default.string,
184
+
185
+ /**
186
+ * Whether the query getting the combobox options is inFlight
187
+ */
188
+ isFetching: _propTypes.default.bool.isRequired,
189
+
190
+ /**
191
+ * The minimum length of the search input to start fetching the options
192
+ */
193
+ minLength: _propTypes.default.number,
194
+
195
+ /**
196
+ * The function to transform the search input
197
+ */
198
+ transformSearch: _propTypes.default.func,
199
+
200
+ /**
201
+ * Whether the input filed shpuld be disabled
202
+ */
203
+ disabled: _propTypes.default.bool
204
+ };
205
+ Combobox.defaultProps = {// someProp: false
206
+ };
207
+ var _default = Combobox;
208
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Combobox", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Combobox.default;
10
+ }
11
+ });
12
+
13
+ var _Combobox = _interopRequireDefault(require("./Combobox"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }