@pareto-engineering/design-system 2.0.0-alpha.41 → 2.0.0-alpha.44

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 (256) 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/GradientBackground/GradientBackground.js +140 -0
  5. package/dist/cjs/a/GradientBackground/index.js +15 -0
  6. package/dist/cjs/a/GradientBackground/styles.scss +191 -0
  7. package/dist/cjs/a/Popover/Popover.js +134 -0
  8. package/dist/cjs/a/Popover/common/Divider/Divider.js +67 -0
  9. package/dist/cjs/a/Popover/common/Divider/index.js +15 -0
  10. package/dist/cjs/a/Popover/common/Item/Item.js +67 -0
  11. package/dist/cjs/a/Popover/common/Item/index.js +15 -0
  12. package/dist/cjs/a/Popover/common/index.js +21 -0
  13. package/dist/cjs/a/Popover/index.js +15 -0
  14. package/dist/cjs/a/Popover/styles.scss +33 -0
  15. package/dist/cjs/a/index.js +9 -1
  16. package/dist/cjs/c/AcceptCookies/AcceptCookies.js +134 -0
  17. package/dist/cjs/c/AcceptCookies/index.js +15 -0
  18. package/dist/cjs/c/AcceptCookies/styles.scss +49 -0
  19. package/dist/cjs/c/BlogCategoryButton/BlogCategoryButton.js +95 -0
  20. package/dist/cjs/c/BlogCategoryButton/index.js +15 -0
  21. package/dist/cjs/c/BlogContext/BlogContextProvider.js +63 -0
  22. package/dist/cjs/c/BlogContext/Context.js +16 -0
  23. package/dist/cjs/c/BlogContext/ContextProvider.js +63 -0
  24. package/dist/cjs/c/BlogContext/index.js +31 -0
  25. package/dist/cjs/c/BlogContext/useBlog.js +16 -0
  26. package/dist/cjs/c/BlogPost/BlogPost.js +147 -0
  27. package/dist/cjs/c/BlogPost/index.js +15 -0
  28. package/dist/cjs/c/BlogPost/styles.scss +33 -0
  29. package/dist/cjs/c/BlogPostsList/BlogPostsList.js +73 -0
  30. package/dist/cjs/c/BlogPostsList/common/Card/Card.js +170 -0
  31. package/dist/cjs/c/BlogPostsList/common/Card/index.js +15 -0
  32. package/dist/cjs/c/BlogPostsList/common/index.js +13 -0
  33. package/dist/cjs/c/BlogPostsList/index.js +15 -0
  34. package/dist/cjs/c/BlogPostsList/styles.scss +72 -0
  35. package/dist/cjs/c/SiteFooter/SiteFooter.js +73 -0
  36. package/dist/cjs/c/SiteFooter/common/Section/Section.js +95 -0
  37. package/dist/cjs/c/SiteFooter/common/Section/index.js +15 -0
  38. package/dist/cjs/c/SiteFooter/common/index.js +13 -0
  39. package/dist/cjs/c/SiteFooter/index.js +15 -0
  40. package/dist/cjs/c/SiteFooter/styles.scss +34 -0
  41. package/dist/cjs/c/SiteHeaderCTA/SiteHeaderCTA.js +108 -0
  42. package/dist/cjs/c/SiteHeaderCTA/index.js +15 -0
  43. package/dist/cjs/c/SiteHeaderCTA/styles.scss +44 -0
  44. package/dist/cjs/c/SiteMission/SiteMission.js +113 -0
  45. package/dist/cjs/c/SiteMission/index.js +15 -0
  46. package/dist/cjs/c/SiteMission/styles.scss +30 -0
  47. package/dist/cjs/c/SiteNavigation/SiteNavigation.js +130 -0
  48. package/dist/cjs/c/SiteNavigation/index.js +15 -0
  49. package/dist/cjs/c/SiteNavigation/styles.scss +118 -0
  50. package/dist/cjs/c/SiteOnboardingStep/SiteOnboardingStep.js +98 -0
  51. package/dist/cjs/c/SiteOnboardingStep/index.js +15 -0
  52. package/dist/cjs/c/SiteOnboardingStep/styles.scss +51 -0
  53. package/dist/cjs/c/SitePricing/SitePricing.js +108 -0
  54. package/dist/cjs/c/SitePricing/index.js +15 -0
  55. package/dist/cjs/c/SitePricing/styles.scss +73 -0
  56. package/dist/cjs/c/SiteServices/SiteServices.js +211 -0
  57. package/dist/cjs/c/SiteServices/index.js +15 -0
  58. package/dist/cjs/c/SiteServices/styles.scss +138 -0
  59. package/dist/cjs/c/TeamGallery/TeamGallery.js +80 -0
  60. package/dist/cjs/c/TeamGallery/common/PersonCard/PersonCard.js +84 -0
  61. package/dist/cjs/c/TeamGallery/common/PersonCard/index.js +15 -0
  62. package/dist/cjs/c/TeamGallery/common/index.js +13 -0
  63. package/dist/cjs/c/TeamGallery/index.js +15 -0
  64. package/dist/cjs/c/TeamGallery/styles.scss +100 -0
  65. package/dist/cjs/c/Testimonials/Testimonials.js +119 -0
  66. package/dist/cjs/c/Testimonials/index.js +15 -0
  67. package/dist/cjs/c/Testimonials/styles.scss +112 -0
  68. package/dist/cjs/experimental/GradientBackground/GradientBackground.js +98 -0
  69. package/dist/cjs/experimental/GradientBackground/index.js +15 -0
  70. package/dist/cjs/experimental/GradientBackground/styles.scss +64 -0
  71. package/dist/cjs/experimental/index.js +13 -0
  72. package/dist/cjs/f/FormInput/FormInput.js +5 -2
  73. package/dist/cjs/f/FormInput/styles.scss +11 -0
  74. package/dist/cjs/f/fields/CheckboxInput/CheckboxInput.js +105 -0
  75. package/dist/cjs/f/fields/CheckboxInput/index.js +15 -0
  76. package/dist/cjs/f/fields/CheckboxInput/styles.scss +28 -0
  77. package/dist/cjs/f/fields/QueryCombobox/QueryCombobox.js +222 -0
  78. package/dist/cjs/f/fields/QueryCombobox/common/Combobox/Combobox.js +148 -0
  79. package/dist/cjs/f/fields/QueryCombobox/common/Combobox/index.js +15 -0
  80. package/dist/cjs/f/fields/QueryCombobox/common/Menu/Menu.js +103 -0
  81. package/dist/cjs/f/fields/QueryCombobox/common/Menu/index.js +15 -0
  82. package/dist/cjs/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +229 -0
  83. package/dist/cjs/f/fields/QueryCombobox/common/MultipleCombobox/index.js +15 -0
  84. package/dist/cjs/f/fields/QueryCombobox/common/index.js +29 -0
  85. package/dist/cjs/f/fields/QueryCombobox/index.js +15 -0
  86. package/dist/cjs/f/fields/QueryCombobox/styles.scss +65 -0
  87. package/dist/cjs/f/fields/RadioInput/RadioInput.js +110 -0
  88. package/dist/cjs/f/fields/RadioInput/index.js +15 -0
  89. package/dist/cjs/f/fields/RadioInput/styles.scss +26 -0
  90. package/dist/cjs/f/fields/SelectInput/SelectInput.js +0 -1
  91. package/dist/cjs/f/fields/SelectInput/styles.scss +8 -6
  92. package/dist/cjs/f/fields/TaskRecommendation/TaskRecommendation.js +129 -0
  93. package/dist/cjs/f/fields/TaskRecommendation/index.js +15 -0
  94. package/dist/cjs/f/fields/TaskRecommendation/styles.scss +37 -0
  95. package/dist/cjs/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +131 -0
  96. package/dist/cjs/f/fields/TaskRecommendationInput/index.js +15 -0
  97. package/dist/cjs/f/fields/TaskRecommendationInput/styles.scss +41 -0
  98. package/dist/cjs/f/fields/TextArea/TextArea.js +141 -0
  99. package/dist/cjs/f/fields/TextArea/index.js +15 -0
  100. package/dist/cjs/f/fields/TextArea/styles.scss +19 -0
  101. package/dist/cjs/index.js +26 -0
  102. package/dist/cjs/test/QueryLoader/QueryLoader.js +41 -0
  103. package/dist/cjs/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +71 -0
  104. package/dist/cjs/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.js +49 -0
  105. package/dist/cjs/test/QueryLoader/common/PreloadedTestData/index.js +15 -0
  106. package/dist/cjs/test/QueryLoader/common/index.js +13 -0
  107. package/dist/cjs/test/QueryLoader/index.js +15 -0
  108. package/dist/cjs/test/QueryLoader/styles.scss +9 -0
  109. package/dist/cjs/test/index.js +13 -0
  110. package/dist/cjs/utils/hooks/index.js +23 -0
  111. package/dist/cjs/utils/hooks/useDynamicPosition.js +107 -0
  112. package/dist/cjs/utils/hooks/useWindowSize.js +39 -0
  113. package/dist/cjs/utils/index.js +19 -0
  114. package/dist/es/a/GradientBackground/GradientBackground.js +118 -0
  115. package/dist/es/a/GradientBackground/index.js +2 -0
  116. package/dist/es/a/GradientBackground/styles.scss +191 -0
  117. package/dist/es/a/Popover/Popover.js +118 -0
  118. package/dist/es/a/Popover/common/Divider/Divider.js +47 -0
  119. package/dist/es/a/Popover/common/Divider/index.js +2 -0
  120. package/dist/es/a/Popover/common/Item/Item.js +47 -0
  121. package/dist/es/a/Popover/common/Item/index.js +2 -0
  122. package/dist/es/a/Popover/common/index.js +2 -0
  123. package/dist/es/a/Popover/index.js +2 -0
  124. package/dist/es/a/Popover/styles.scss +33 -0
  125. package/dist/es/a/index.js +2 -1
  126. package/dist/es/c/AcceptCookies/AcceptCookies.js +117 -0
  127. package/dist/es/c/AcceptCookies/index.js +2 -0
  128. package/dist/es/c/AcceptCookies/styles.scss +49 -0
  129. package/dist/es/c/BlogCategoryButton/BlogCategoryButton.js +68 -0
  130. package/dist/es/c/BlogCategoryButton/index.js +2 -0
  131. package/dist/es/c/BlogContext/BlogContextProvider.js +45 -0
  132. package/dist/es/c/BlogContext/Context.js +2 -0
  133. package/dist/es/c/BlogContext/ContextProvider.js +45 -0
  134. package/dist/es/c/BlogContext/index.js +4 -0
  135. package/dist/es/c/BlogContext/useBlog.js +3 -0
  136. package/dist/es/c/BlogPost/BlogPost.js +128 -0
  137. package/dist/es/c/BlogPost/index.js +2 -0
  138. package/dist/es/c/BlogPost/styles.scss +33 -0
  139. package/dist/es/c/BlogPostsList/BlogPostsList.js +56 -0
  140. package/dist/es/c/BlogPostsList/common/Card/Card.js +143 -0
  141. package/dist/es/c/BlogPostsList/common/Card/index.js +2 -0
  142. package/dist/es/c/BlogPostsList/common/index.js +1 -0
  143. package/dist/es/c/BlogPostsList/index.js +2 -0
  144. package/dist/es/c/BlogPostsList/styles.scss +72 -0
  145. package/dist/es/c/SiteFooter/SiteFooter.js +56 -0
  146. package/dist/es/c/SiteFooter/common/Section/Section.js +73 -0
  147. package/dist/es/c/SiteFooter/common/Section/index.js +2 -0
  148. package/dist/es/c/SiteFooter/common/index.js +1 -0
  149. package/dist/es/c/SiteFooter/index.js +2 -0
  150. package/dist/es/c/SiteFooter/styles.scss +34 -0
  151. package/dist/es/c/SiteHeaderCTA/SiteHeaderCTA.js +92 -0
  152. package/dist/es/c/SiteHeaderCTA/index.js +2 -0
  153. package/dist/es/c/SiteHeaderCTA/styles.scss +44 -0
  154. package/dist/es/c/SiteMission/SiteMission.js +96 -0
  155. package/dist/es/c/SiteMission/index.js +2 -0
  156. package/dist/es/c/SiteMission/styles.scss +30 -0
  157. package/dist/es/c/SiteNavigation/SiteNavigation.js +111 -0
  158. package/dist/es/c/SiteNavigation/index.js +2 -0
  159. package/dist/es/c/SiteNavigation/styles.scss +118 -0
  160. package/dist/es/c/SiteOnboardingStep/SiteOnboardingStep.js +81 -0
  161. package/dist/es/c/SiteOnboardingStep/index.js +2 -0
  162. package/dist/es/c/SiteOnboardingStep/styles.scss +51 -0
  163. package/dist/es/c/SitePricing/SitePricing.js +91 -0
  164. package/dist/es/c/SitePricing/index.js +2 -0
  165. package/dist/es/c/SitePricing/styles.scss +73 -0
  166. package/dist/es/c/SiteServices/SiteServices.js +195 -0
  167. package/dist/es/c/SiteServices/index.js +2 -0
  168. package/dist/es/c/SiteServices/styles.scss +138 -0
  169. package/dist/es/c/TeamGallery/TeamGallery.js +64 -0
  170. package/dist/es/c/TeamGallery/common/PersonCard/PersonCard.js +64 -0
  171. package/dist/es/c/TeamGallery/common/PersonCard/index.js +2 -0
  172. package/dist/es/c/TeamGallery/common/index.js +1 -0
  173. package/dist/es/c/TeamGallery/index.js +2 -0
  174. package/dist/es/c/TeamGallery/styles.scss +100 -0
  175. package/dist/es/c/Testimonials/Testimonials.js +99 -0
  176. package/dist/es/c/Testimonials/index.js +2 -0
  177. package/dist/es/c/Testimonials/styles.scss +112 -0
  178. package/dist/es/experimental/GradientBackground/GradientBackground.js +76 -0
  179. package/dist/es/experimental/GradientBackground/index.js +2 -0
  180. package/dist/es/experimental/GradientBackground/styles.scss +64 -0
  181. package/dist/es/experimental/index.js +1 -0
  182. package/dist/es/f/FormInput/FormInput.js +4 -1
  183. package/dist/es/f/FormInput/styles.scss +11 -0
  184. package/dist/es/f/fields/CheckboxInput/CheckboxInput.js +85 -0
  185. package/dist/es/f/fields/CheckboxInput/index.js +2 -0
  186. package/dist/es/f/fields/CheckboxInput/styles.scss +28 -0
  187. package/dist/es/f/fields/QueryCombobox/QueryCombobox.js +197 -0
  188. package/dist/es/f/fields/QueryCombobox/common/Combobox/Combobox.js +129 -0
  189. package/dist/es/f/fields/QueryCombobox/common/Combobox/index.js +2 -0
  190. package/dist/es/f/fields/QueryCombobox/common/Menu/Menu.js +77 -0
  191. package/dist/es/f/fields/QueryCombobox/common/Menu/index.js +2 -0
  192. package/dist/es/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +202 -0
  193. package/dist/es/f/fields/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  194. package/dist/es/f/fields/QueryCombobox/common/index.js +3 -0
  195. package/dist/es/f/fields/QueryCombobox/index.js +2 -0
  196. package/dist/es/f/fields/QueryCombobox/styles.scss +65 -0
  197. package/dist/es/f/fields/RadioInput/RadioInput.js +90 -0
  198. package/dist/es/f/fields/RadioInput/index.js +2 -0
  199. package/dist/es/f/fields/RadioInput/styles.scss +26 -0
  200. package/dist/es/f/fields/SelectInput/SelectInput.js +0 -1
  201. package/dist/es/f/fields/SelectInput/styles.scss +8 -6
  202. package/dist/es/f/fields/TaskRecommendation/TaskRecommendation.js +111 -0
  203. package/dist/es/f/fields/TaskRecommendation/index.js +2 -0
  204. package/dist/es/f/fields/TaskRecommendation/styles.scss +37 -0
  205. package/dist/es/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +111 -0
  206. package/dist/es/f/fields/TaskRecommendationInput/index.js +2 -0
  207. package/dist/es/f/fields/TaskRecommendationInput/styles.scss +41 -0
  208. package/dist/es/f/fields/TextArea/TextArea.js +124 -0
  209. package/dist/es/f/fields/TextArea/index.js +2 -0
  210. package/dist/es/f/fields/TextArea/styles.scss +19 -0
  211. package/dist/es/index.js +3 -1
  212. package/dist/es/test/QueryLoader/QueryLoader.js +29 -0
  213. package/dist/es/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +71 -0
  214. package/dist/es/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.js +31 -0
  215. package/dist/es/test/QueryLoader/common/PreloadedTestData/index.js +2 -0
  216. package/dist/es/test/QueryLoader/common/index.js +1 -0
  217. package/dist/es/test/QueryLoader/index.js +2 -0
  218. package/dist/es/test/QueryLoader/styles.scss +9 -0
  219. package/dist/es/test/index.js +1 -0
  220. package/dist/es/utils/hooks/index.js +2 -0
  221. package/dist/es/utils/hooks/useDynamicPosition.js +93 -0
  222. package/dist/es/utils/hooks/useWindowSize.js +27 -0
  223. package/dist/es/utils/index.js +1 -0
  224. package/package.json +14 -2
  225. package/relay.config.js +12 -0
  226. package/schema.graphql +4075 -0
  227. package/scripts/fetchSchema.js +74 -0
  228. package/src/__snapshots__/Storyshots.test.js.snap +422 -8
  229. package/src/stories/a/Popover.stories.jsx +106 -0
  230. package/src/stories/test/QueryLoader.stories.jsx +36 -0
  231. package/src/stories/utils/lorem.js +15 -0
  232. package/src/stories/utils/relay/EnvironmentProvider.jsx +14 -0
  233. package/src/stories/utils/relay/environment.js +5 -0
  234. package/src/stories/utils/relay/index.js +4 -0
  235. package/src/stories/utils/relay/mockRelayOperation.js +14 -0
  236. package/src/stories/utils/relay/mockResolvers.js +299 -0
  237. package/src/ui/a/Popover/Popover.jsx +157 -0
  238. package/src/ui/a/Popover/index.js +2 -0
  239. package/src/ui/a/Popover/styles.scss +33 -0
  240. package/src/ui/a/index.js +1 -0
  241. package/src/ui/f/FormInput/FormInput.jsx +5 -1
  242. package/src/ui/f/FormInput/styles.scss +11 -0
  243. package/src/ui/f/fields/SelectInput/SelectInput.jsx +1 -1
  244. package/src/ui/f/fields/SelectInput/styles.scss +8 -6
  245. package/src/ui/index.js +2 -0
  246. package/src/ui/test/QueryLoader/QueryLoader.jsx +41 -0
  247. package/src/ui/test/QueryLoader/__generated__/QueryLoaderHelloQuery.graphql.js +68 -0
  248. package/src/ui/test/QueryLoader/common/PreloadedTestData/PreloadedTestData.jsx +51 -0
  249. package/src/ui/test/QueryLoader/common/PreloadedTestData/index.js +2 -0
  250. package/src/ui/test/QueryLoader/common/index.js +1 -0
  251. package/src/ui/test/QueryLoader/index.js +2 -0
  252. package/src/ui/test/index.js +1 -0
  253. package/src/ui/utils/hooks/index.js +2 -0
  254. package/src/ui/utils/hooks/useDynamicPosition.js +104 -0
  255. package/src/ui/utils/hooks/useWindowSize.js +32 -0
  256. package/src/ui/utils/index.js +1 -0
@@ -1,7 +1,7 @@
1
1
  /* @pareto-engineering/generator-front 1.0.12 */
2
2
  import * as React from 'react'
3
3
 
4
- import { memo } from 'react'
4
+ import { memo, useLayoutEffect } from 'react'
5
5
 
6
6
  import PropTypes from 'prop-types'
7
7
 
@@ -28,6 +28,10 @@ const FormInput = ({
28
28
  disabled,
29
29
  ...otherProps
30
30
  }) => {
31
+ useLayoutEffect(() => {
32
+ import('./styles.scss')
33
+ }, [])
34
+
31
35
  const newClassName = [
32
36
  className,
33
37
  componentClassName,
@@ -0,0 +1,11 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+
5
+ $default-margin: 1em;
6
+
7
+ .#{bem.$base}.form-input {
8
+ &+& {
9
+ margin-top: $default-margin;
10
+ }
11
+ }
@@ -55,7 +55,7 @@ const SelectInput = ({
55
55
  style={style}
56
56
  // {...otherProps}
57
57
  >
58
- <FormLabel className="input-label" name={name}>{label}</FormLabel>
58
+ <FormLabel name={name}>{label}</FormLabel>
59
59
  <select className="input" {...field} value={field.value || ''} id={name} disabled={disabled}>
60
60
  {
61
61
  options.map((option) => {
@@ -6,24 +6,27 @@
6
6
 
7
7
 
8
8
  $default-padding: 0.75em;
9
-
9
+ $default-margin: 1em;
10
10
 
11
11
  .#{bem.$base}.select-input {
12
12
  display: flex;
13
13
  flex-direction: column;
14
14
 
15
+ .#{bem.$base}.label {
16
+ margin-bottom: $default-margin
17
+ }
15
18
 
16
19
  .input {
17
20
  border: var(--theme-border-style) var(--dark-y);
18
21
  background: var(--light-y);
19
- color:var(--on-y);
22
+ color: var(--on-y);
20
23
  padding: $default-padding;
21
24
 
22
- &:not(:disabled):hover{
25
+ &:not(:disabled):hover {
23
26
  border: var(--theme-border-style) var(--light-background4);
24
27
  }
25
28
 
26
- &:disabled {
29
+ &:disabled {
27
30
  background-color: var(--dark-y);
28
31
  }
29
32
 
@@ -31,5 +34,4 @@ $default-padding: 0.75em;
31
34
  background: var(--y);
32
35
  }
33
36
  }
34
- }
35
-
37
+ }
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'