@pareto-engineering/design-system 2.0.0-alpha.4 → 2.0.0-alpha.42

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 (225) hide show
  1. package/dist/cjs/a/BackgroundGradient/BackgroundGradient.js +77 -0
  2. package/dist/cjs/a/BackgroundGradient/index.js +15 -0
  3. package/dist/cjs/a/BackgroundGradient/styles.scss +16 -0
  4. package/dist/cjs/a/ContentTree/ContentTree.js +83 -0
  5. package/dist/cjs/a/ContentTree/common/Tree/Tree.js +116 -0
  6. package/dist/cjs/a/ContentTree/common/Tree/index.js +15 -0
  7. package/dist/cjs/a/ContentTree/common/index.js +31 -0
  8. package/dist/cjs/a/ContentTree/common/useContentTree.js +82 -0
  9. package/dist/cjs/a/ContentTree/common/useFirstVisibleNode.js +65 -0
  10. package/dist/cjs/a/ContentTree/index.js +15 -0
  11. package/dist/cjs/a/ContentTree/styles.scss +33 -0
  12. package/dist/cjs/a/Conversation/Conversation.js +14 -8
  13. package/dist/cjs/a/Conversation/common/Message/Message.js +32 -6
  14. package/dist/cjs/a/Conversation/styles.scss +132 -33
  15. package/dist/cjs/a/OvalIllustration/OvalIllustration.js +133 -0
  16. package/dist/cjs/a/OvalIllustration/index.js +15 -0
  17. package/dist/cjs/a/OvalIllustration/styles.scss +102 -0
  18. package/dist/cjs/a/Popover/Popover.js +134 -0
  19. package/dist/cjs/a/Popover/common/Divider/Divider.js +67 -0
  20. package/dist/cjs/a/Popover/common/Divider/index.js +15 -0
  21. package/dist/cjs/a/Popover/common/Item/Item.js +67 -0
  22. package/dist/cjs/a/Popover/common/Item/index.js +15 -0
  23. package/dist/cjs/a/Popover/common/index.js +21 -0
  24. package/dist/cjs/a/Popover/index.js +15 -0
  25. package/dist/cjs/a/Popover/styles.scss +43 -0
  26. package/dist/cjs/a/Shapes/Shapes.js +39 -9
  27. package/dist/cjs/a/Shapes/styles.scss +78 -22
  28. package/dist/cjs/a/SnapScroller/SnapScroller.js +77 -0
  29. package/dist/cjs/a/SnapScroller/index.js +15 -0
  30. package/dist/cjs/a/SnapScroller/styles.scss +38 -0
  31. package/dist/cjs/a/index.js +49 -1
  32. package/dist/cjs/b/Button/Button.js +10 -4
  33. package/dist/cjs/b/Button/styles.scss +55 -10
  34. package/dist/cjs/b/Logo/Logo.js +41 -41
  35. package/dist/cjs/b/Logo/styles.scss +0 -138
  36. package/dist/cjs/b/Page/common/Section/Section.js +56 -5
  37. package/dist/cjs/b/Page/styles.scss +8 -2
  38. package/dist/cjs/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.js +16 -9
  39. package/dist/cjs/c/ContentSlides/common/Navigator/Navigator.js +4 -3
  40. package/dist/cjs/c/ContentSlides/styles.scss +10 -4
  41. package/dist/cjs/c/SocialMediaShareButton/SocialMediaShareButton.js +105 -0
  42. package/dist/cjs/c/SocialMediaShareButton/index.js +15 -0
  43. package/dist/cjs/c/SocialMediaShareButton/styles.scss +39 -0
  44. package/dist/cjs/c/index.js +9 -1
  45. package/dist/cjs/f/common/Debugger/Debugger.js +1 -1
  46. package/dist/cjs/f/common/Label/Label.js +1 -1
  47. package/dist/cjs/f/common/Label/styles.scss +1 -1
  48. package/dist/cjs/f/fields/ChoicesInput/ChoicesInput.js +1 -1
  49. package/dist/cjs/f/fields/ChoicesInput/styles.scss +17 -2
  50. package/dist/cjs/f/fields/RatingsInput/RatingsInput.js +39 -6
  51. package/dist/cjs/f/fields/RatingsInput/styles.scss +29 -20
  52. package/dist/cjs/f/fields/SelectInput/SelectInput.js +36 -10
  53. package/dist/cjs/f/fields/SelectInput/styles.scss +13 -8
  54. package/dist/cjs/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +1 -1
  55. package/dist/cjs/f/fields/TextInput/TextInput.js +35 -7
  56. package/dist/cjs/f/fields/TextInput/styles.scss +16 -7
  57. package/dist/cjs/f/fields/TextareaInput/TextareaInput.js +15 -8
  58. package/dist/cjs/f/fields/TextareaInput/styles.scss +19 -6
  59. package/dist/cjs/f/fields/index.js +0 -24
  60. package/dist/cjs/form-reset.scss +1 -1
  61. package/dist/cjs/index.js +13 -0
  62. package/dist/cjs/utils/hooks/index.js +23 -0
  63. package/dist/cjs/utils/hooks/useDynamicPosition.js +107 -0
  64. package/dist/cjs/utils/hooks/useWindowSize.js +39 -0
  65. package/dist/cjs/utils/index.js +19 -0
  66. package/dist/es/a/BackgroundGradient/BackgroundGradient.js +55 -0
  67. package/dist/es/a/BackgroundGradient/index.js +2 -0
  68. package/dist/es/a/BackgroundGradient/styles.scss +16 -0
  69. package/dist/es/a/ContentTree/ContentTree.js +67 -0
  70. package/dist/es/a/ContentTree/common/Tree/Tree.js +98 -0
  71. package/dist/es/a/ContentTree/common/Tree/index.js +2 -0
  72. package/dist/es/a/ContentTree/common/index.js +3 -0
  73. package/dist/es/a/ContentTree/common/useContentTree.js +74 -0
  74. package/dist/es/a/ContentTree/common/useFirstVisibleNode.js +54 -0
  75. package/dist/es/a/ContentTree/index.js +2 -0
  76. package/dist/es/a/ContentTree/styles.scss +33 -0
  77. package/dist/es/a/Conversation/Conversation.js +14 -8
  78. package/dist/es/a/Conversation/common/Message/Message.js +32 -6
  79. package/dist/es/a/Conversation/styles.scss +132 -33
  80. package/dist/es/a/OvalIllustration/OvalIllustration.js +111 -0
  81. package/dist/es/a/OvalIllustration/index.js +2 -0
  82. package/dist/es/a/OvalIllustration/styles.scss +102 -0
  83. package/dist/es/a/Popover/Popover.js +118 -0
  84. package/dist/es/a/Popover/common/Divider/Divider.js +47 -0
  85. package/dist/es/a/Popover/common/Divider/index.js +2 -0
  86. package/dist/es/a/Popover/common/Item/Item.js +47 -0
  87. package/dist/es/a/Popover/common/Item/index.js +2 -0
  88. package/dist/es/a/Popover/common/index.js +2 -0
  89. package/dist/es/a/Popover/index.js +2 -0
  90. package/dist/es/a/Popover/styles.scss +43 -0
  91. package/dist/es/a/Shapes/Shapes.js +39 -9
  92. package/dist/es/a/Shapes/styles.scss +78 -22
  93. package/dist/es/a/SnapScroller/SnapScroller.js +61 -0
  94. package/dist/es/a/SnapScroller/index.js +2 -0
  95. package/dist/es/a/SnapScroller/styles.scss +38 -0
  96. package/dist/es/a/index.js +7 -1
  97. package/dist/es/b/Button/Button.js +8 -2
  98. package/dist/es/b/Button/styles.scss +55 -10
  99. package/dist/es/b/Logo/Logo.js +41 -41
  100. package/dist/es/b/Logo/styles.scss +0 -138
  101. package/dist/es/b/Page/common/Section/Section.js +55 -4
  102. package/dist/es/b/Page/styles.scss +8 -2
  103. package/dist/es/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.js +16 -9
  104. package/dist/es/c/ContentSlides/common/Navigator/Navigator.js +4 -3
  105. package/dist/es/c/ContentSlides/styles.scss +10 -4
  106. package/dist/es/c/SocialMediaShareButton/SocialMediaShareButton.js +89 -0
  107. package/dist/es/c/SocialMediaShareButton/index.js +2 -0
  108. package/dist/es/c/SocialMediaShareButton/styles.scss +39 -0
  109. package/dist/es/c/index.js +2 -1
  110. package/dist/es/f/common/Debugger/Debugger.js +1 -1
  111. package/dist/es/f/common/Label/Label.js +1 -1
  112. package/dist/es/f/common/Label/styles.scss +1 -1
  113. package/dist/es/f/fields/ChoicesInput/ChoicesInput.js +1 -1
  114. package/dist/es/f/fields/ChoicesInput/styles.scss +17 -2
  115. package/dist/es/f/fields/RatingsInput/RatingsInput.js +38 -6
  116. package/dist/es/f/fields/RatingsInput/styles.scss +29 -20
  117. package/dist/es/f/fields/SelectInput/SelectInput.js +36 -10
  118. package/dist/es/f/fields/SelectInput/styles.scss +13 -8
  119. package/dist/es/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +1 -1
  120. package/dist/es/f/fields/TextInput/TextInput.js +35 -7
  121. package/dist/es/f/fields/TextInput/styles.scss +16 -7
  122. package/dist/es/f/fields/TextareaInput/TextareaInput.js +15 -8
  123. package/dist/es/f/fields/TextareaInput/styles.scss +19 -6
  124. package/dist/es/f/fields/index.js +0 -3
  125. package/dist/es/form-reset.scss +1 -1
  126. package/dist/es/index.js +2 -1
  127. package/dist/es/utils/hooks/index.js +2 -0
  128. package/dist/es/utils/hooks/useDynamicPosition.js +93 -0
  129. package/dist/es/utils/hooks/useWindowSize.js +27 -0
  130. package/dist/es/utils/index.js +1 -0
  131. package/package.json +4 -3
  132. package/src/__snapshots__/Storyshots.test.js.snap +4755 -1734
  133. package/src/local.scss +2 -0
  134. package/src/stories/StyleGuide/Sprites.stories.mdx +25 -0
  135. package/src/stories/StyleGuide/helpers.js +16 -0
  136. package/src/stories/a/BackgroundGradient.stories.jsx +38 -0
  137. package/src/stories/a/ContentTree.stories.jsx +662 -0
  138. package/src/stories/a/Conversation.stories.jsx +78 -1
  139. package/src/stories/a/OvalIllustration.stories.jsx +59 -0
  140. package/src/stories/a/Popover.stories.jsx +106 -0
  141. package/src/stories/a/Shapes.stories.jsx +143 -0
  142. package/src/stories/a/SnapScroller.stories.jsx +98 -0
  143. package/src/stories/b/Button.stories.jsx +27 -4
  144. package/src/stories/b/Logo.stories.jsx +17 -9
  145. package/src/stories/b/Page.stories.jsx +51 -1
  146. package/src/stories/c/ContentSlides.stories.jsx +154 -2
  147. package/src/stories/c/SocialMediaShareButton.stories.jsx +25 -0
  148. package/src/stories/f/RatingsInput.stories.jsx +3 -2
  149. package/src/stories/f/SelectInput.stories.jsx +36 -5
  150. package/src/stories/f/TextInput.stories.jsx +15 -4
  151. package/src/stories/f/TextareaInput.stories.jsx +42 -6
  152. package/src/stories/utils/lorem.js +15 -0
  153. package/src/ui/a/BackgroundGradient/BackgroundGradient.jsx +76 -0
  154. package/src/ui/a/BackgroundGradient/index.js +2 -0
  155. package/src/ui/a/BackgroundGradient/styles.scss +16 -0
  156. package/src/ui/a/ContentTree/ContentTree.jsx +88 -0
  157. package/src/ui/a/ContentTree/common/Tree/Tree.jsx +138 -0
  158. package/src/ui/a/ContentTree/common/Tree/index.js +2 -0
  159. package/src/ui/a/ContentTree/common/index.js +3 -0
  160. package/src/ui/a/ContentTree/common/useContentTree.js +83 -0
  161. package/src/ui/a/ContentTree/common/useFirstVisibleNode.js +59 -0
  162. package/src/ui/a/ContentTree/index.js +2 -0
  163. package/src/ui/a/ContentTree/styles.scss +33 -0
  164. package/src/ui/a/Conversation/Conversation.jsx +15 -7
  165. package/src/ui/a/Conversation/common/Message/Message.jsx +38 -6
  166. package/src/ui/a/Conversation/styles.scss +132 -33
  167. package/src/ui/a/OvalIllustration/OvalIllustration.jsx +134 -0
  168. package/src/ui/a/OvalIllustration/index.js +2 -0
  169. package/src/ui/a/OvalIllustration/styles.scss +102 -0
  170. package/src/ui/a/Popover/Popover.jsx +157 -0
  171. package/src/ui/a/Popover/index.js +2 -0
  172. package/src/ui/a/Popover/styles.scss +43 -0
  173. package/src/ui/a/Shapes/Shapes.jsx +191 -0
  174. package/src/ui/a/Shapes/index.js +2 -0
  175. package/src/ui/a/Shapes/styles.scss +255 -0
  176. package/src/ui/a/SnapScroller/SnapScroller.jsx +83 -0
  177. package/src/ui/a/SnapScroller/index.js +2 -0
  178. package/src/ui/a/SnapScroller/styles.scss +38 -0
  179. package/src/ui/a/index.js +6 -0
  180. package/src/ui/b/Button/Button.jsx +9 -1
  181. package/src/ui/b/Button/styles.scss +55 -10
  182. package/src/ui/b/Logo/Logo.jsx +41 -41
  183. package/src/ui/b/Logo/styles.scss +0 -138
  184. package/src/ui/b/Page/common/Section/Section.jsx +68 -2
  185. package/src/ui/b/Page/styles.scss +8 -2
  186. package/src/ui/c/ContentSlides/common/HorizontalMenu/HorizontalMenu.jsx +12 -5
  187. package/src/ui/c/ContentSlides/common/Navigator/Navigator.jsx +3 -2
  188. package/src/ui/c/ContentSlides/styles.scss +10 -4
  189. package/src/ui/c/SocialMediaShareButton/SocialMediaShareButton.jsx +113 -0
  190. package/src/ui/c/SocialMediaShareButton/index.js +2 -0
  191. package/src/ui/c/SocialMediaShareButton/styles.scss +39 -0
  192. package/src/ui/c/index.js +1 -0
  193. package/src/ui/f/common/Debugger/Debugger.jsx +1 -1
  194. package/src/ui/f/common/Label/Label.jsx +1 -1
  195. package/src/ui/f/common/Label/styles.scss +1 -1
  196. package/src/ui/f/fields/ChoicesInput/ChoicesInput.jsx +1 -1
  197. package/src/ui/f/fields/ChoicesInput/styles.scss +17 -2
  198. package/src/ui/f/fields/RatingsInput/RatingsInput.jsx +54 -19
  199. package/src/ui/f/fields/RatingsInput/styles.scss +29 -20
  200. package/src/ui/f/fields/SelectInput/SelectInput.jsx +43 -5
  201. package/src/ui/f/fields/SelectInput/styles.scss +13 -8
  202. package/src/ui/f/fields/TextInput/TextInput.jsx +31 -3
  203. package/src/ui/f/fields/TextInput/styles.scss +16 -7
  204. package/src/ui/f/fields/TextareaInput/TextareaInput.jsx +24 -13
  205. package/src/ui/f/fields/TextareaInput/styles.scss +19 -6
  206. package/src/ui/f/fields/index.js +0 -3
  207. package/src/ui/form-reset.scss +1 -1
  208. package/src/ui/index.js +1 -0
  209. package/src/ui/utils/hooks/index.js +2 -0
  210. package/src/ui/utils/hooks/useDynamicPosition.js +104 -0
  211. package/src/ui/utils/hooks/useWindowSize.js +32 -0
  212. package/src/ui/utils/index.js +1 -0
  213. package/stylelint.config.js +13 -13
  214. package/src/stories/f/CheckboxInput.stories.jsx +0 -37
  215. package/src/stories/f/RadioInput.stories.jsx +0 -37
  216. package/src/stories/f/TaskRecommendationInput.stories.jsx +0 -38
  217. package/src/ui/f/fields/CheckboxInput/CheckboxInput.jsx +0 -107
  218. package/src/ui/f/fields/CheckboxInput/index.js +0 -2
  219. package/src/ui/f/fields/CheckboxInput/styles.scss +0 -28
  220. package/src/ui/f/fields/RadioInput/RadioInput.jsx +0 -112
  221. package/src/ui/f/fields/RadioInput/index.js +0 -2
  222. package/src/ui/f/fields/RadioInput/styles.scss +0 -26
  223. package/src/ui/f/fields/TaskRecommendationInput/TaskRecommendationInput.jsx +0 -130
  224. package/src/ui/f/fields/TaskRecommendationInput/index.js +0 -2
  225. package/src/ui/f/fields/TaskRecommendationInput/styles.scss +0 -41
@@ -0,0 +1,104 @@
1
+ import {
2
+ useState, useEffect, useMemo, useCallback,
3
+ } from 'react'
4
+ import throttle from 'lodash/throttle'
5
+ import useWindowSize from './useWindowSize'
6
+
7
+ const verticalPositions = ['top', 'bottom']
8
+ const horizontalPositions = ['left', 'right']
9
+
10
+ const findCompatiblePositions = (primary, secondaryArray) => {
11
+ if (verticalPositions.includes(primary)) {
12
+ return secondaryArray.filter((secondary) => horizontalPositions.includes(secondary))
13
+ } if (horizontalPositions.includes(primary)) {
14
+ return secondaryArray.filter((secondary) => verticalPositions.includes(secondary))
15
+ }
16
+ return []
17
+ }
18
+
19
+ const useDynamicPosition = ({
20
+ elementRef,
21
+ parentRef,
22
+ preferredPrimaryOrder,
23
+ preferredSecondaryOrder,
24
+ // offsetYPx,
25
+ offsetXPx,
26
+ throttleMs = 200,
27
+ }) => {
28
+ const isClient = typeof window === 'object'
29
+ const {
30
+ height:currentHeight,
31
+ width:currentWidth,
32
+ } = useWindowSize()
33
+
34
+ const [primaryPosition, setPrimaryPosition] = useState(preferredPrimaryOrder[0])
35
+ const compatibleSecondaryPositions = useMemo(
36
+ () => findCompatiblePositions(
37
+ primaryPosition,
38
+ preferredSecondaryOrder,
39
+ ), [primaryPosition, preferredSecondaryOrder],
40
+ )
41
+ const [secondaryPosition, setSecondaryPosition] = useState(compatibleSecondaryPositions[0])
42
+
43
+ const handle = useCallback(
44
+ throttle(() => {
45
+ const parentNode = parentRef?.current
46
+ const elementNode = elementRef?.current
47
+
48
+ const {
49
+ top:parentTop,
50
+ bottom: parentBottom,
51
+ right: parentRight,
52
+ left: parentLeft,
53
+ } = parentNode?.getBoundingClientRect() || {}
54
+
55
+ const {
56
+ width:elementWidth,
57
+ height:elementHeight,
58
+ } = elementNode?.getBoundingClientRect() || {}
59
+
60
+ const availablePositions = {
61
+ top :parentTop >= elementHeight,
62
+ bottom:currentHeight - parentBottom >= elementHeight,
63
+ right :parentRight >= elementWidth,
64
+ left :currentWidth - parentLeft >= elementWidth,
65
+ }
66
+
67
+ for (let i = 0; i < preferredPrimaryOrder.length; i += 1) {
68
+ const position = preferredPrimaryOrder[i]
69
+ if (availablePositions[position]) {
70
+ setPrimaryPosition(position)
71
+ break
72
+ }
73
+ }
74
+
75
+ for (let i = 0; i < compatibleSecondaryPositions.length; i += 1) {
76
+ const position = compatibleSecondaryPositions[i]
77
+ if (availablePositions[position]) {
78
+ setSecondaryPosition(position)
79
+ break
80
+ }
81
+ }
82
+ }, throttleMs),
83
+ [elementRef, offsetXPx, throttleMs],
84
+ )
85
+
86
+ useEffect(() => {
87
+ if (!isClient) {
88
+ return false
89
+ }
90
+
91
+ handle()
92
+ window.addEventListener('scroll', handle)
93
+ window.addEventListener('resize', handle)
94
+
95
+ return () => {
96
+ window.removeEventListener('scroll', handle)
97
+ window.removeEventListener('resize', handle)
98
+ }
99
+ }, [handle])
100
+
101
+ return { primaryPosition, secondaryPosition }
102
+ }
103
+
104
+ export default useDynamicPosition
@@ -0,0 +1,32 @@
1
+ import { useCallback, useState, useEffect } from 'react'
2
+ import debounce from 'lodash/debounce'
3
+
4
+ const useWindowSize = (debounceMs = 700) => {
5
+ const isClient = typeof window === 'object'
6
+
7
+ const getSize = () => ({
8
+ width :isClient ? window.innerWidth : undefined,
9
+ height:isClient ? window.innerHeight : undefined,
10
+ })
11
+
12
+ const [windowSize, setWindowSize] = useState(getSize)
13
+
14
+ const handle = useCallback(
15
+ debounce(() => {
16
+ setWindowSize(getSize())
17
+ }, debounceMs),
18
+ )
19
+
20
+ useEffect(() => {
21
+ if (!isClient) {
22
+ return false
23
+ }
24
+
25
+ window.addEventListener('resize', handle)
26
+ return () => window.removeEventListener('resize', handle)
27
+ }, [getSize, handle, isClient])
28
+
29
+ return windowSize
30
+ }
31
+
32
+ export default useWindowSize
@@ -0,0 +1 @@
1
+ export { useWindowSize, useDynamicPosition } from './hooks'
@@ -1,24 +1,24 @@
1
1
  module.exports = {
2
- extends: [
2
+ extends:[
3
3
  'stylelint-config-palantir',
4
4
  'stylelint-config-palantir/sass.js',
5
5
  ],
6
- rules: {
7
- indentation: 2,
8
- 'number-leading-zero': 'never',
9
- 'at-rule-no-unknown': [true,
6
+ rules:{
7
+ indentation :2,
8
+ 'number-leading-zero':'never',
9
+ 'at-rule-no-unknown' :[true,
10
10
  {
11
- ignoreAtRules: [
11
+ ignoreAtRules:[
12
12
  // additional scss at-rules:
13
13
  'content', 'each', 'else', 'error', 'extend', 'for', 'function', 'if', 'include', 'mixin', 'return', 'use', 'forward',
14
14
  ],
15
15
  },
16
16
  ],
17
- 'at-rule-empty-line-before': ['always', {
18
- except: ['after-same-name', 'inside-block'],
19
- ignoreAtRules: ['include', 'mixin', 'function'],
17
+ 'at-rule-empty-line-before':['always', {
18
+ except :['after-same-name', 'inside-block'],
19
+ ignoreAtRules:['include', 'mixin', 'function'],
20
20
  }],
21
- 'order/order': [
21
+ 'order/order':[
22
22
  [
23
23
  'custom-properties',
24
24
  'at-variables',
@@ -34,12 +34,12 @@ module.exports = {
34
34
  ],
35
35
  { unspecified: 'ignore' },
36
36
  ],
37
- 'property-no-unknown': [
37
+ 'property-no-unknown':[
38
38
  true,
39
39
  {
40
- ignoreProperties: ['text-stroke', 'font-smooth'],
40
+ ignoreProperties:['text-stroke', 'font-smooth'],
41
41
  },
42
42
  ],
43
- 'max-nesting-depth': 5,
43
+ 'max-nesting-depth':5,
44
44
  },
45
45
  }
@@ -1,37 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
- import * as React from 'react'
3
- import { Formik, Form } from 'formik'
4
-
5
- import { CheckboxInput, FormDebugger } from 'ui'
6
-
7
- export default {
8
- title :'f/fields/CheckboxInput',
9
- component :CheckboxInput,
10
- subcomponents:{
11
- // Item:CheckboxInput.Item
12
- },
13
- decorators:[
14
- (storyfn) => (
15
- <Formik
16
- initialValues={{ businessTypes: [] }}
17
- >
18
- <Form>
19
- { storyfn() }
20
- </Form>
21
- </Formik>
22
- ),
23
- ],
24
- argTypes:{
25
- backgroundColor:{ control: 'color' },
26
- },
27
- }
28
-
29
- export const Base = () => (
30
- <div className="y-background1 b-y">
31
- <CheckboxInput value="Business to customer" name="businessTypes">Business to customer</CheckboxInput>
32
- <CheckboxInput value="Business to business" name="businessTypes">Business to business</CheckboxInput>
33
- <CheckboxInput value="E-commerce" name="businessTypes">E-commerce</CheckboxInput>
34
- <CheckboxInput value="Marketplace" name="businessTypes">Marketplace</CheckboxInput>
35
- <FormDebugger />
36
- </div>
37
- )
@@ -1,37 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
- import * as React from 'react'
3
- import { Formik, Form } from 'formik'
4
-
5
- import { RadioInput, FormDebugger } from 'ui'
6
-
7
- export default {
8
- title :'f/fields/RadioInput',
9
- component :RadioInput,
10
- subcomponents:{
11
- // Item:RadioInput.Item
12
- },
13
- decorators:[
14
- (storyfn) => (
15
- <Formik
16
- initialValues={{ companySize: '' }}
17
- >
18
- <Form>
19
- { storyfn() }
20
- </Form>
21
- </Formik>
22
- ),
23
- ],
24
- argTypes:{
25
- backgroundColor:{ control: 'color' },
26
- },
27
- }
28
-
29
- export const Base = () => (
30
- <>
31
- <RadioInput value="1-3" name="companySize">1-3</RadioInput>
32
- <RadioInput value="4-7" name="companySize">4-7</RadioInput>
33
- <RadioInput value="8-10" name="companySize">8-10</RadioInput>
34
- <RadioInput value="11-20" name="companySize">11-20</RadioInput>
35
- <FormDebugger />
36
- </>
37
- )
@@ -1,38 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
- import * as React from 'react'
3
- import { Formik, Form } from 'formik'
4
- import { TaskRecommendationInput } from 'ui'
5
-
6
- export default {
7
- title :'f/fields/TaskRecommendationInput',
8
- component :TaskRecommendationInput,
9
- subcomponents:{
10
- // Item:TaskRecommendation.Item
11
- },
12
- decorators:[
13
- (storyfn) => (
14
- <Formik
15
- initialValues={{ taskRecommendations: [] }}
16
- >
17
- <Form>
18
- { storyfn() }
19
- </Form>
20
- </Formik>
21
- ),
22
- ],
23
- argTypes:{
24
- backgroundColor:{ control: 'color' },
25
- },
26
- }
27
-
28
- export const Base = () => (
29
- <div className="y-background1 b-y v2 p-v" style={{ height: '100%' }}>
30
- <TaskRecommendationInput
31
- name="taskRecommendations"
32
- value="businessTypes"
33
- oneLiner="Build a list of contacts at businesses based on my criteria for potential customers"
34
- label="Find potential business customers"
35
- image="/Fundraising.svg"
36
- />
37
- </div>
38
- )
@@ -1,107 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
- import * as React from 'react'
3
-
4
- import { useLayoutEffect, memo } from 'react'
5
-
6
- import { useField } from 'formik'
7
-
8
- import PropTypes from 'prop-types'
9
-
10
- import styleNames from '@pareto-engineering/bem'
11
-
12
- import { FormLabel, FormDescription } from '../../common'
13
-
14
- // Local Definitions
15
-
16
- const baseClassName = styleNames.base
17
-
18
- const componentClassName = 'checkbox-input'
19
-
20
- /**
21
- * This is the component description.
22
- */
23
- const CheckboxInput = ({
24
- id,
25
- className:userClassName,
26
- style,
27
- children,
28
- value,
29
- name,
30
- // ...otherProps
31
- }) => {
32
- useLayoutEffect(() => {
33
- import('./styles.scss')
34
- }, [])
35
-
36
- const [field, meta] = useField(name)
37
-
38
- const isOptionSelected = !!(field.value?.length > 0 && field.value.includes(value))
39
-
40
- return (
41
- <div
42
- id={id}
43
- className={[
44
-
45
- baseClassName,
46
-
47
- componentClassName,
48
- userClassName,
49
- ]
50
- .filter((e) => e)
51
- .join(' ')}
52
- style={style}
53
- // {...otherProps}
54
- >
55
- <div
56
- className={`${isOptionSelected ? 'selected' : 'not-selected'} input-content uc v1 pv-v`}
57
- >
58
- <FormLabel name={name}>
59
- <input {...field} id={name} value={value} className="input" type="checkbox" />
60
- <span>
61
- {children}
62
- </span>
63
- </FormLabel>
64
- </div>
65
- {meta.error && meta.touched && <FormDescription error>{meta.error}</FormDescription>}
66
-
67
- </div>
68
- )
69
- }
70
-
71
- CheckboxInput.propTypes = {
72
- /**
73
- * The HTML id for this element
74
- */
75
- id:PropTypes.string,
76
-
77
- /**
78
- * The HTML class names for this element
79
- */
80
- className:PropTypes.string,
81
-
82
- /**
83
- * The input name (html - and Formik state)
84
- */
85
- name:PropTypes.string.isRequired,
86
-
87
- /**
88
- * The input value
89
- */
90
- value:PropTypes.string.isRequired,
91
-
92
- /**
93
- * The React-written, css properties for this element.
94
- */
95
- style:PropTypes.objectOf(PropTypes.string),
96
-
97
- /**
98
- * The children JSX
99
- */
100
- children:PropTypes.node,
101
- }
102
-
103
- CheckboxInput.defaultProps = {
104
- // someProp:false
105
- }
106
-
107
- export default memo(CheckboxInput)
@@ -1,2 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
- export { default as CheckboxInput } from './CheckboxInput'
@@ -1,28 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
-
3
- @use "@pareto-engineering/bem";
4
- @use "../../../form.scss";
5
-
6
-
7
- .#{bem.$base}.checkbox-input {
8
- height: 100%;
9
-
10
- .input-content {
11
- border-radius: var(--theme-border-radius);
12
- height: 100%;
13
- }
14
-
15
- .input {
16
- @include form.radio-checkbox-input;
17
- }
18
-
19
-
20
- .not-selected {
21
- @include form.radio-checkbox-input-not-selected;
22
- }
23
-
24
-
25
- .selected {
26
- @include form.radio-checkbox-input-selected;
27
- }
28
- }
@@ -1,112 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
- import * as React from 'react'
3
-
4
- import { useLayoutEffect, memo } from 'react'
5
-
6
- import { useField } from 'formik'
7
-
8
- import PropTypes from 'prop-types'
9
-
10
- import styleNames from '@pareto-engineering/bem'
11
-
12
- import { FormLabel, FormDescription } from '../../common'
13
-
14
- // Local Definitions
15
-
16
- const baseClassName = styleNames.base
17
-
18
- const componentClassName = 'radio-input'
19
-
20
- /**
21
- * This is the component description.
22
- */
23
- const RadioInput = ({
24
- id,
25
- className:userClassName,
26
- children,
27
- style,
28
- name,
29
- value,
30
- // ...otherProps
31
- }) => {
32
- useLayoutEffect(() => {
33
- import('./styles.scss')
34
- }, [])
35
-
36
- const [field, meta] = useField(name)
37
- const isOptionSelected = field.value === value
38
-
39
- return (
40
- <div
41
- id={id}
42
- className={[
43
-
44
- baseClassName,
45
-
46
- componentClassName,
47
- userClassName,
48
- ]
49
- .filter((e) => e)
50
- .join(' ')}
51
- style={style}
52
- // {...otherProps}
53
- >
54
-
55
- <div
56
- className={`${isOptionSelected ? 'selected' : 'not-selected'} uc v1 pv-v`}
57
- >
58
- <FormLabel name={name}>
59
- <input {...field} id={name} className="input" type="radio" value={value} />
60
- <span className="text">
61
- {children}
62
- </span>
63
- </FormLabel>
64
- </div>
65
- {meta.error && meta.touched && <FormDescription error>{meta.error}</FormDescription>}
66
- </div>
67
- )
68
- }
69
-
70
- RadioInput.propTypes = {
71
- /**
72
- * The HTML id for this element
73
- */
74
- id:PropTypes.string,
75
-
76
- /**
77
- * The HTML class names for this element
78
- */
79
- className:PropTypes.string,
80
-
81
- /**
82
- * The React-written, css properties for this element.
83
- */
84
- style:PropTypes.objectOf(PropTypes.string),
85
-
86
- /**
87
- * The children JSX
88
- */
89
- children:PropTypes.node,
90
-
91
- /**
92
- * The name of the radio input
93
- */
94
- name:PropTypes.string,
95
-
96
- /**
97
- * The value of the radio input
98
- */
99
- value:PropTypes.string,
100
-
101
- /**
102
- * The label of the radio input
103
- */
104
- label:PropTypes.string,
105
-
106
- }
107
-
108
- RadioInput.defaultProps = {
109
- // someProp:false
110
- }
111
-
112
- export default memo(RadioInput)
@@ -1,2 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
- export { default as RadioInput } from './RadioInput'
@@ -1,26 +0,0 @@
1
- /* @pareto-engineering/generator-front 1.0.12 */
2
-
3
- @use "@pareto-engineering/bem";
4
- @use "../../../form.scss";
5
-
6
-
7
- .#{bem.$base}.radio-input {
8
- .input {
9
- @include form.radio-checkbox-input;
10
- }
11
-
12
- .not-selected {
13
- @include form.radio-checkbox-input-not-selected;
14
- }
15
-
16
-
17
- .selected {
18
- @include form.radio-checkbox-input-selected;
19
- }
20
-
21
- .text {
22
- color: inherit;
23
- }
24
- }
25
-
26
-