@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,107 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _throttle = _interopRequireDefault(require("lodash/throttle"));
11
+
12
+ var _useWindowSize = _interopRequireDefault(require("./useWindowSize"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ var verticalPositions = ['top', 'bottom'];
17
+ var horizontalPositions = ['left', 'right'];
18
+
19
+ var findCompatiblePositions = (primary, secondaryArray) => {
20
+ if (verticalPositions.includes(primary)) {
21
+ return secondaryArray.filter(secondary => horizontalPositions.includes(secondary));
22
+ }
23
+
24
+ if (horizontalPositions.includes(primary)) {
25
+ return secondaryArray.filter(secondary => verticalPositions.includes(secondary));
26
+ }
27
+
28
+ return [];
29
+ };
30
+
31
+ var useDynamicPosition = _ref => {
32
+ var {
33
+ elementRef,
34
+ parentRef,
35
+ preferredPrimaryOrder,
36
+ preferredSecondaryOrder,
37
+ // offsetYPx,
38
+ offsetXPx,
39
+ throttleMs = 200
40
+ } = _ref;
41
+ var isClient = typeof window === 'object';
42
+ var {
43
+ height: currentHeight,
44
+ width: currentWidth
45
+ } = (0, _useWindowSize.default)();
46
+ var [primaryPosition, setPrimaryPosition] = (0, _react.useState)(preferredPrimaryOrder[0]);
47
+ var compatibleSecondaryPositions = (0, _react.useMemo)(() => findCompatiblePositions(primaryPosition, preferredSecondaryOrder), [primaryPosition, preferredSecondaryOrder]);
48
+ var [secondaryPosition, setSecondaryPosition] = (0, _react.useState)(compatibleSecondaryPositions[0]);
49
+ var handle = (0, _react.useCallback)((0, _throttle.default)(() => {
50
+ var parentNode = parentRef === null || parentRef === void 0 ? void 0 : parentRef.current;
51
+ var elementNode = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current;
52
+ var {
53
+ top: parentTop,
54
+ bottom: parentBottom,
55
+ right: parentRight,
56
+ left: parentLeft
57
+ } = (parentNode === null || parentNode === void 0 ? void 0 : parentNode.getBoundingClientRect()) || {};
58
+ var {
59
+ width: elementWidth,
60
+ height: elementHeight
61
+ } = (elementNode === null || elementNode === void 0 ? void 0 : elementNode.getBoundingClientRect()) || {};
62
+ var availablePositions = {
63
+ top: parentTop >= elementHeight,
64
+ bottom: currentHeight - parentBottom >= elementHeight,
65
+ right: parentRight >= elementWidth,
66
+ left: currentWidth - parentLeft >= elementWidth
67
+ };
68
+
69
+ for (var i = 0; i < preferredPrimaryOrder.length; i += 1) {
70
+ var position = preferredPrimaryOrder[i];
71
+
72
+ if (availablePositions[position]) {
73
+ setPrimaryPosition(position);
74
+ break;
75
+ }
76
+ }
77
+
78
+ for (var _i = 0; _i < compatibleSecondaryPositions.length; _i += 1) {
79
+ var _position = compatibleSecondaryPositions[_i];
80
+
81
+ if (availablePositions[_position]) {
82
+ setSecondaryPosition(_position);
83
+ break;
84
+ }
85
+ }
86
+ }, throttleMs), [elementRef, offsetXPx, throttleMs]);
87
+ (0, _react.useEffect)(() => {
88
+ if (!isClient) {
89
+ return false;
90
+ }
91
+
92
+ handle();
93
+ window.addEventListener('scroll', handle);
94
+ window.addEventListener('resize', handle);
95
+ return () => {
96
+ window.removeEventListener('scroll', handle);
97
+ window.removeEventListener('resize', handle);
98
+ };
99
+ }, [handle]);
100
+ return {
101
+ primaryPosition,
102
+ secondaryPosition
103
+ };
104
+ };
105
+
106
+ var _default = useDynamicPosition;
107
+ exports.default = _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ var useWindowSize = function useWindowSize() {
15
+ var debounceMs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 700;
16
+ var isClient = typeof window === 'object';
17
+
18
+ var getSize = () => ({
19
+ width: isClient ? window.innerWidth : undefined,
20
+ height: isClient ? window.innerHeight : undefined
21
+ });
22
+
23
+ var [windowSize, setWindowSize] = (0, _react.useState)(getSize);
24
+ var handle = (0, _react.useCallback)((0, _debounce.default)(() => {
25
+ setWindowSize(getSize());
26
+ }, debounceMs));
27
+ (0, _react.useEffect)(() => {
28
+ if (!isClient) {
29
+ return false;
30
+ }
31
+
32
+ window.addEventListener('resize', handle);
33
+ return () => window.removeEventListener('resize', handle);
34
+ }, [getSize, handle, isClient]);
35
+ return windowSize;
36
+ };
37
+
38
+ var _default = useWindowSize;
39
+ exports.default = _default;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useWindowSize", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _hooks.useWindowSize;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useDynamicPosition", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _hooks.useDynamicPosition;
16
+ }
17
+ });
18
+
19
+ var _hooks = require("./hooks");
@@ -0,0 +1,55 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useLayoutEffect } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import styleNames from '@pareto-engineering/bem'; // Local Definitions
6
+
7
+ const baseClassName = styleNames.base;
8
+ const componentClassName = 'background-gradient';
9
+ /**
10
+ * This is the component description.
11
+ */
12
+
13
+ const BackgroundGradient = ({
14
+ id,
15
+ className: userClassName,
16
+ style,
17
+ height // ...otherProps
18
+
19
+ }) => {
20
+ useLayoutEffect(() => {
21
+ import("./styles.scss");
22
+ }, []);
23
+ return /*#__PURE__*/React.createElement("div", {
24
+ id: id,
25
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
26
+ style: { ...style,
27
+ '--gradient-height': height
28
+ }
29
+ });
30
+ };
31
+
32
+ BackgroundGradient.propTypes = {
33
+ /**
34
+ * The HTML id for this element
35
+ */
36
+ id: PropTypes.string,
37
+
38
+ /**
39
+ * The HTML class names for this element
40
+ */
41
+ className: PropTypes.string,
42
+
43
+ /**
44
+ * The React-written, css properties for this element.
45
+ */
46
+ style: PropTypes.objectOf(PropTypes.string),
47
+
48
+ /**
49
+ * The height of the shape.
50
+ */
51
+ height: PropTypes.string
52
+ };
53
+ BackgroundGradient.defaultProps = {// someProp: false,
54
+ };
55
+ export default BackgroundGradient;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as BackgroundGradient } from "./BackgroundGradient";
@@ -0,0 +1,16 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ @use "@pareto-engineering/bem";
3
+
4
+ .#{bem.$base}.background-gradient{
5
+ position: absolute;
6
+ top: 0;
7
+ left: 0;
8
+ width: 100%;
9
+ height: var(--gradient-height);
10
+ background-image: linear-gradient(var(--background1), var(--y) 25%, var(--light-y) 75%, var(--background1));
11
+ opacity: .4;
12
+ z-index: -1;
13
+ }
14
+
15
+
16
+
@@ -0,0 +1,67 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useLayoutEffect } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import styleNames from '@pareto-engineering/bem'; // Local Definitions
6
+
7
+ import { Tree, useContentTree } from "./common";
8
+ const baseClassName = styleNames.base;
9
+ const componentClassName = 'content-tree';
10
+ /**
11
+ * This is the component description.
12
+ */
13
+
14
+ const ContentTree = ({
15
+ id,
16
+ className: userClassName,
17
+ style,
18
+ target,
19
+ selectors // ...otherProps
20
+
21
+ }) => {
22
+ useLayoutEffect(() => {
23
+ import("./styles.scss");
24
+ }, []);
25
+ const contentTree = useContentTree(target, selectors);
26
+ return /*#__PURE__*/React.createElement("div", {
27
+ id: id,
28
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
29
+ style: style // {...otherProps}
30
+
31
+ }, /*#__PURE__*/React.createElement(Tree, {
32
+ tree: contentTree
33
+ }));
34
+ };
35
+
36
+ ContentTree.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 selectors to use to extract the navigation tree from the content.
54
+ */
55
+ selectors: PropTypes.arrayOf(PropTypes.string),
56
+
57
+ /**
58
+ * The reference to the parent element.
59
+ */
60
+ target: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
61
+ current: PropTypes.instanceOf(Element)
62
+ })])
63
+ };
64
+ ContentTree.defaultProps = {
65
+ selectors: ['h2', 'h3']
66
+ };
67
+ export default ContentTree;
@@ -0,0 +1,98 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useState, useEffect, useMemo } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import styleNames from '@pareto-engineering/bem'; // Local Definitions
6
+
7
+ import useFirstVisibleNode from "../useFirstVisibleNode";
8
+ const baseClassName = styleNames.base;
9
+ const componentClassName = 'tree';
10
+ /**
11
+ * This is the component description.
12
+ */
13
+
14
+ const Tree = ({
15
+ id,
16
+ className: userClassName,
17
+ style,
18
+ tree,
19
+ displayDepth // ...otherProps
20
+
21
+ }) => {
22
+ // The nodeIds to be used to get the first visible node
23
+ const [nodeIds, setNodeIds] = useState([]); // current visible nodeId
24
+
25
+ const visibleNodeId = useFirstVisibleNode(nodeIds);
26
+ useEffect(() => {
27
+ const node = document.getElementsByClassName(visibleNodeId)[0];
28
+ node === null || node === void 0 ? void 0 : node.classList.add(styleNames.modifierActive);
29
+ return () => {
30
+ node === null || node === void 0 ? void 0 : node.classList.remove(styleNames.modifierActive);
31
+ };
32
+ }, [visibleNodeId]); // Generate the tree structure from the content tree data depending on the display depth
33
+
34
+ const getNestedTree = (node, depth) => {
35
+ setNodeIds(prev => [...prev, node.id]);
36
+
37
+ if (depth <= 1) {
38
+ return /*#__PURE__*/React.createElement("li", {
39
+ key: node.id
40
+ }, /*#__PURE__*/React.createElement("a", {
41
+ className: node.id,
42
+ href: node.id
43
+ }, node.text));
44
+ }
45
+
46
+ return /*#__PURE__*/React.createElement("li", {
47
+ key: node.id
48
+ }, /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("a", {
49
+ href: node.id,
50
+ className: node.id
51
+ }, node.text)), node.children.length > 0 && /*#__PURE__*/React.createElement("ul", null, node.children.map(child => getNestedTree(child, depth - 1))));
52
+ };
53
+
54
+ const ContentTree = useMemo(() => tree.map(node => getNestedTree(node, displayDepth)), [tree]);
55
+ return /*#__PURE__*/React.createElement("ul", {
56
+ id: id,
57
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
58
+ style: style
59
+ }, ContentTree);
60
+ };
61
+
62
+ Tree.propTypes = {
63
+ /**
64
+ * The HTML id for this element
65
+ */
66
+ id: PropTypes.string,
67
+
68
+ /**
69
+ * The HTML class names for this element
70
+ */
71
+ className: PropTypes.string,
72
+
73
+ /**
74
+ * The React-written, css properties for this element.
75
+ */
76
+ style: PropTypes.objectOf(PropTypes.string),
77
+
78
+ /**
79
+ * The tree to render.
80
+ */
81
+ tree: PropTypes.arrayOf(PropTypes.shape({
82
+ text: PropTypes.string,
83
+ id: PropTypes.string,
84
+ children: PropTypes.arrayOf(PropTypes.shape({
85
+ text: PropTypes.string,
86
+ id: PropTypes.string
87
+ }))
88
+ })),
89
+
90
+ /**
91
+ * The levels of the tree to display.
92
+ */
93
+ displayDepth: PropTypes.number
94
+ };
95
+ Tree.defaultProps = {
96
+ displayDepth: 4
97
+ };
98
+ export default Tree;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as Tree } from "./Tree";
@@ -0,0 +1,3 @@
1
+ export { default as useContentTree } from "./useContentTree";
2
+ export { default as useFirstVisibleNode } from "./useFirstVisibleNode";
3
+ export { Tree } from "./Tree";
@@ -0,0 +1,74 @@
1
+ import { useState, useEffect, useCallback } from 'react';
2
+
3
+ const useContentTree = (target, selectors) => {
4
+ const [contentTree, setContentTree] = useState([]);
5
+ const getNodes = useCallback(parentTag => {
6
+ const nodeList = parentTag.querySelectorAll(selectors.join(', '));
7
+ const nodes = [];
8
+ nodeList.forEach(nodeNode => {
9
+ const {
10
+ id,
11
+ innerText,
12
+ tagName
13
+ } = nodeNode;
14
+ nodes.push({
15
+ id: `#${id}`,
16
+ text: innerText,
17
+ level: selectors.indexOf(tagName.toLowerCase())
18
+ });
19
+ });
20
+ return nodes;
21
+ }, [selectors]);
22
+ const buildTree = useCallback(nodes => {
23
+ // Track the nodes we've seen so far in the same level
24
+ const currentSameLevelNodes = []; // Track nodes of the next level which will be children of the current node
25
+
26
+ let nextLevelNodes = []; // Track the current node level
27
+
28
+ let lastLevel = -1; // If the nodes are empty, return an empty tree
29
+
30
+ if (nodes.length === 0) {
31
+ return [];
32
+ }
33
+
34
+ const buildSubTree = () => {
35
+ if (nextLevelNodes.length > 0) {
36
+ currentSameLevelNodes[currentSameLevelNodes.length - 1].children.push(...buildTree(nextLevelNodes));
37
+ }
38
+ };
39
+
40
+ nodes.forEach(node => {
41
+ // If the node is of a greater level, we need to build the sub tree
42
+ if (lastLevel !== -1 && lastLevel < node.level) {
43
+ nextLevelNodes.push(node);
44
+ return;
45
+ } // build a subtree
46
+
47
+
48
+ buildSubTree(); // reset the next level nodes
49
+
50
+ lastLevel = node.level; // add the current node to the current level nodes
51
+
52
+ currentSameLevelNodes.push({
53
+ id: node.id,
54
+ text: node.text,
55
+ children: []
56
+ }); // reset the next level nodes after building the subtree
57
+
58
+ nextLevelNodes = [];
59
+ }); // build subtree
60
+
61
+ buildSubTree();
62
+ return currentSameLevelNodes;
63
+ }, []);
64
+ useEffect(() => {
65
+ if (target.current) {
66
+ const nodes = getNodes(target.current);
67
+ const tree = buildTree(nodes);
68
+ setContentTree(tree);
69
+ }
70
+ }, [target.current]);
71
+ return contentTree;
72
+ };
73
+
74
+ export default useContentTree;
@@ -0,0 +1,54 @@
1
+ import { useState, useEffect, useMemo, useCallback } from 'react';
2
+ import debounce from 'lodash/debounce';
3
+
4
+ const useFirstVisibleNode = (nodeIds, config) => {
5
+ const [visibleNodeId, setVisibleNodeId] = useState(null);
6
+ const {
7
+ debounceMs = 25
8
+ } = config || {}; // get headlines nodes - Should only be recalculated when the ids change
9
+
10
+ const nodes = useMemo(() => {
11
+ if ((nodeIds === null || nodeIds === void 0 ? void 0 : nodeIds.length) > 0) {
12
+ return Array.from(document.querySelectorAll(nodeIds.join(',')));
13
+ }
14
+
15
+ return [];
16
+ }, [nodeIds]);
17
+ const getVisibleNodeId = useCallback(debounce(() => {
18
+ var _visibleNode$node;
19
+
20
+ // Get the top postion of each headline node relative to the viewport
21
+ const topOffsets = nodes.map(node => node.getBoundingClientRect().top); // Get the node closer to zero (the top of the viewport)
22
+ // We have the default offset as Infinity so it's always greater that the first node Y position
23
+
24
+ const visibleNode = topOffsets.reduce((prev, currentOffset, currentIndex) => {
25
+ const node = Math.abs(currentOffset - 0) < Math.abs(prev.offset - 0) ? {
26
+ node: nodes[currentIndex],
27
+ offset: currentOffset
28
+ } : prev;
29
+ return node;
30
+ }, {
31
+ node: nodes[0],
32
+ offset: Infinity
33
+ }); // Set the visible node id
34
+
35
+ setVisibleNodeId(`#${visibleNode === null || visibleNode === void 0 ? void 0 : (_visibleNode$node = visibleNode.node) === null || _visibleNode$node === void 0 ? void 0 : _visibleNode$node.id}`);
36
+ }, debounceMs), [nodes]); // Recalculate the visible node id when the page is scrolled
37
+
38
+ useEffect(() => {
39
+ window.addEventListener('scroll', getVisibleNodeId);
40
+ return () => {
41
+ window.removeEventListener('scroll', getVisibleNodeId);
42
+ };
43
+ }, [getVisibleNodeId]); // Recalculate the visible node id when the page is resized
44
+
45
+ useEffect(() => {
46
+ window.addEventListener('resize', getVisibleNodeId);
47
+ return () => {
48
+ window.removeEventListener('resize', getVisibleNodeId);
49
+ };
50
+ }, [getVisibleNodeId]);
51
+ return visibleNodeId;
52
+ };
53
+
54
+ export default useFirstVisibleNode;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as ContentTree } from "./ContentTree";
@@ -0,0 +1,33 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ @use "@pareto-engineering/bem";
3
+
4
+ $default-margin: 1em;
5
+ $default-padding: 1em;
6
+
7
+ .#{bem.$base}.content-tree{
8
+
9
+ ul {
10
+ list-style: none;
11
+ }
12
+
13
+ .#{bem.$base}.tree {
14
+ position: sticky;
15
+ top: 0;
16
+ padding: 0;
17
+
18
+ .#{bem.$modifier-active} {
19
+ color: var(--main2);
20
+ transition: color 0.2s;
21
+ }
22
+
23
+ li:not(:last-child) {
24
+ margin-bottom: $default-margin;
25
+ ul {
26
+ padding-left: $default-padding;
27
+ }
28
+ }
29
+ }
30
+ }
31
+
32
+
33
+
@@ -19,13 +19,13 @@ const Conversation = ({
19
19
  backgroundColor,
20
20
  ourColor,
21
21
  theirColor,
22
- children // ...otherProps
22
+ children,
23
+ hasTriangle // ...otherProps
23
24
 
24
25
  }) => {
25
26
  useLayoutEffect(() => {
26
27
  import("./styles.scss");
27
- }, []); // const messageColors = { ours: color, theirs: 'main2' }
28
-
28
+ }, []);
29
29
  return /*#__PURE__*/React.createElement(ConversationContext.Provider, {
30
30
  value: {
31
31
  ourColor,
@@ -33,7 +33,7 @@ const Conversation = ({
33
33
  }
34
34
  }, /*#__PURE__*/React.createElement("div", {
35
35
  id: id,
36
- className: [baseClassName, componentClassName, userClassName, `y-${backgroundColor}`, 'u1'].filter(e => e).join(' '),
36
+ className: [baseClassName, componentClassName, userClassName, hasTriangle && 'has-triangle', `y-${backgroundColor}`, 'u1'].filter(e => e).join(' '),
37
37
  style: style
38
38
  }, children));
39
39
  };
@@ -72,12 +72,18 @@ Conversation.propTypes = {
72
72
  /**
73
73
  * The children JSX
74
74
  */
75
- children: PropTypes.node
75
+ children: PropTypes.node,
76
+
77
+ /**
78
+ * whether to add triangle to bubble chats
79
+ */
80
+ hasTriangle: PropTypes.bool
76
81
  };
77
82
  Conversation.defaultProps = {
78
- backgroundColor: 'background',
79
- ourColor: 'main2',
80
- theirColor: 'background2'
83
+ backgroundColor: 'background2',
84
+ ourColor: 'background1',
85
+ theirColor: 'background1',
86
+ hasTriangle: false
81
87
  };
82
88
  Conversation.Message = Message;
83
89
  export default Conversation;