@pareto-engineering/design-system 4.0.0-alpha.62 → 4.0.0-alpha.63

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 (192) hide show
  1. package/dist/cjs/f/FormInput/FormInput.js +43 -13
  2. package/dist/cjs/f/common/V2/Description/Description.js +76 -0
  3. package/dist/cjs/f/common/V2/Description/index.js +13 -0
  4. package/dist/cjs/f/common/V2/Description/styles.scss +10 -0
  5. package/dist/cjs/f/common/V2/Label/Label.js +84 -0
  6. package/dist/cjs/f/common/V2/Label/index.js +13 -0
  7. package/dist/cjs/f/common/V2/Label/styles.scss +9 -0
  8. package/dist/cjs/f/common/V2/index.js +19 -0
  9. package/dist/cjs/f/common/index.js +12 -0
  10. package/dist/cjs/f/fields/V2/Checkbox/Checkbox.js +122 -0
  11. package/dist/cjs/f/fields/V2/Checkbox/index.js +13 -0
  12. package/dist/cjs/f/fields/V2/Checkbox/styles.scss +16 -0
  13. package/dist/cjs/f/fields/V2/ChoicesInput/ChoicesInput.js +154 -0
  14. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/Choice.js +104 -0
  15. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/index.js +13 -0
  16. package/dist/cjs/f/fields/V2/ChoicesInput/common/index.js +12 -0
  17. package/dist/cjs/f/fields/V2/ChoicesInput/index.js +13 -0
  18. package/dist/cjs/f/fields/V2/ChoicesInput/styles.scss +79 -0
  19. package/dist/cjs/f/fields/V2/EditorInput/EditorInput.js +197 -0
  20. package/dist/cjs/f/fields/V2/EditorInput/common/Toolbar.js +257 -0
  21. package/dist/cjs/f/fields/V2/EditorInput/common/TreeViewPlugin.js +18 -0
  22. package/dist/cjs/f/fields/V2/EditorInput/common/index.js +20 -0
  23. package/dist/cjs/f/fields/V2/EditorInput/index.js +13 -0
  24. package/dist/cjs/f/fields/V2/EditorInput/styles.scss +149 -0
  25. package/dist/cjs/f/fields/V2/LinkInput/LinkInput.js +156 -0
  26. package/dist/cjs/f/fields/V2/LinkInput/index.js +13 -0
  27. package/dist/cjs/f/fields/V2/LinkInput/styles.scss +90 -0
  28. package/dist/cjs/f/fields/V2/QueryChoices/QueryChoices.js +137 -0
  29. package/dist/cjs/f/fields/V2/QueryChoices/index.js +13 -0
  30. package/dist/cjs/f/fields/V2/QueryCombobox/QueryCombobox.js +229 -0
  31. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +236 -0
  32. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/index.js +13 -0
  33. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/Menu.js +83 -0
  34. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/index.js +13 -0
  35. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +300 -0
  36. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +13 -0
  37. package/dist/cjs/f/fields/V2/QueryCombobox/common/index.js +26 -0
  38. package/dist/cjs/f/fields/V2/QueryCombobox/index.js +13 -0
  39. package/dist/cjs/f/fields/V2/QueryCombobox/styles.scss +127 -0
  40. package/dist/cjs/f/fields/V2/QuerySelect/QuerySelect.js +198 -0
  41. package/dist/cjs/f/fields/V2/QuerySelect/index.js +13 -0
  42. package/dist/cjs/f/fields/V2/RatingsInput/RatingsInput.js +130 -0
  43. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/Rating.js +117 -0
  44. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/index.js +13 -0
  45. package/dist/cjs/f/fields/V2/RatingsInput/common/index.js +12 -0
  46. package/dist/cjs/f/fields/V2/RatingsInput/index.js +13 -0
  47. package/dist/cjs/f/fields/V2/RatingsInput/styles.scss +48 -0
  48. package/dist/cjs/f/fields/V2/SelectInput/SelectInput.js +154 -0
  49. package/dist/cjs/f/fields/V2/SelectInput/index.js +13 -0
  50. package/dist/cjs/f/fields/V2/SelectInput/styles.scss +87 -0
  51. package/dist/cjs/f/fields/V2/TextInput/TextInput.js +155 -0
  52. package/dist/cjs/f/fields/V2/TextInput/index.js +13 -0
  53. package/dist/cjs/f/fields/V2/TextInput/styles.scss +78 -0
  54. package/dist/cjs/f/fields/V2/TextareaInput/TextareaInput.js +152 -0
  55. package/dist/cjs/f/fields/V2/TextareaInput/index.js +13 -0
  56. package/dist/cjs/f/fields/V2/TextareaInput/styles.scss +53 -0
  57. package/dist/cjs/f/fields/V2/index.js +82 -0
  58. package/dist/cjs/f/fields/index.js +26 -1
  59. package/dist/es/f/FormInput/FormInput.js +33 -3
  60. package/dist/es/f/common/V2/Description/Description.js +68 -0
  61. package/dist/es/f/common/V2/Description/index.js +2 -0
  62. package/dist/es/f/common/V2/Description/styles.scss +10 -0
  63. package/dist/es/f/common/V2/Label/Label.js +76 -0
  64. package/dist/es/f/common/V2/Label/index.js +2 -0
  65. package/dist/es/f/common/V2/Label/styles.scss +9 -0
  66. package/dist/es/f/common/V2/index.js +2 -0
  67. package/dist/es/f/common/index.js +2 -1
  68. package/dist/es/f/fields/V2/Checkbox/Checkbox.js +114 -0
  69. package/dist/es/f/fields/V2/Checkbox/index.js +2 -0
  70. package/dist/es/f/fields/V2/Checkbox/styles.scss +16 -0
  71. package/dist/es/f/fields/V2/ChoicesInput/ChoicesInput.js +148 -0
  72. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/Choice.js +97 -0
  73. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  74. package/dist/es/f/fields/V2/ChoicesInput/common/index.js +1 -0
  75. package/dist/es/f/fields/V2/ChoicesInput/index.js +2 -0
  76. package/dist/es/f/fields/V2/ChoicesInput/styles.scss +79 -0
  77. package/dist/es/f/fields/V2/EditorInput/EditorInput.js +192 -0
  78. package/dist/es/f/fields/V2/EditorInput/common/Toolbar.js +246 -0
  79. package/dist/es/f/fields/V2/EditorInput/common/TreeViewPlugin.js +11 -0
  80. package/dist/es/f/fields/V2/EditorInput/common/index.js +2 -0
  81. package/dist/es/f/fields/V2/EditorInput/index.js +2 -0
  82. package/dist/es/f/fields/V2/EditorInput/styles.scss +149 -0
  83. package/dist/es/f/fields/V2/LinkInput/LinkInput.js +148 -0
  84. package/dist/es/f/fields/V2/LinkInput/index.js +2 -0
  85. package/dist/es/f/fields/V2/LinkInput/styles.scss +90 -0
  86. package/dist/es/f/fields/V2/QueryChoices/QueryChoices.js +126 -0
  87. package/dist/es/f/fields/V2/QueryChoices/index.js +2 -0
  88. package/dist/es/f/fields/V2/QueryCombobox/QueryCombobox.js +221 -0
  89. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +229 -0
  90. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  91. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/Menu.js +73 -0
  92. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  93. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +293 -0
  94. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  95. package/dist/es/f/fields/V2/QueryCombobox/common/index.js +3 -0
  96. package/dist/es/f/fields/V2/QueryCombobox/index.js +2 -0
  97. package/dist/es/f/fields/V2/QueryCombobox/styles.scss +127 -0
  98. package/dist/es/f/fields/V2/QuerySelect/QuerySelect.js +186 -0
  99. package/dist/es/f/fields/V2/QuerySelect/index.js +2 -0
  100. package/dist/es/f/fields/V2/RatingsInput/RatingsInput.js +124 -0
  101. package/dist/es/f/fields/V2/RatingsInput/common/Rating/Rating.js +109 -0
  102. package/dist/es/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  103. package/dist/es/f/fields/V2/RatingsInput/common/index.js +1 -0
  104. package/dist/es/f/fields/V2/RatingsInput/index.js +2 -0
  105. package/dist/es/f/fields/V2/RatingsInput/styles.scss +48 -0
  106. package/dist/es/f/fields/V2/SelectInput/SelectInput.js +146 -0
  107. package/dist/es/f/fields/V2/SelectInput/index.js +2 -0
  108. package/dist/es/f/fields/V2/SelectInput/styles.scss +87 -0
  109. package/dist/es/f/fields/V2/TextInput/TextInput.js +147 -0
  110. package/dist/es/f/fields/V2/TextInput/index.js +2 -0
  111. package/dist/es/f/fields/V2/TextInput/styles.scss +78 -0
  112. package/dist/es/f/fields/V2/TextareaInput/TextareaInput.js +146 -0
  113. package/dist/es/f/fields/V2/TextareaInput/index.js +2 -0
  114. package/dist/es/f/fields/V2/TextareaInput/styles.scss +53 -0
  115. package/dist/es/f/fields/V2/index.js +11 -0
  116. package/dist/es/f/fields/index.js +2 -1
  117. package/package.json +3 -3
  118. package/src/stories/f/v2/Checkbox.stories.jsx +102 -0
  119. package/src/stories/f/v2/ChoicesInput.stories.jsx +139 -0
  120. package/src/stories/f/v2/EditorInput.stories.jsx +81 -0
  121. package/src/stories/f/v2/LinkInput.stories.jsx +93 -0
  122. package/src/stories/f/v2/QueryChoices.stories.jsx +144 -0
  123. package/src/stories/f/v2/QueryCombobox.stories.jsx +301 -0
  124. package/src/stories/f/v2/QuerySelect.stories.jsx +150 -0
  125. package/src/stories/f/v2/RatingsInput.stories.jsx +77 -0
  126. package/src/stories/f/v2/SelectInput.stories.jsx +95 -0
  127. package/src/stories/f/v2/TextInput.stories.jsx +120 -0
  128. package/src/stories/f/v2/TextareaInput.stories.jsx +107 -0
  129. package/src/stories/f/v2/__generated__/FormInputAllTaskStatusesQuery.graphql.js +122 -0
  130. package/src/stories/f/v2/__generated__/FormInputAllTeamsQuery.graphql.js +139 -0
  131. package/src/stories/f/v2/__generated__/QueryChoicesAllTaskStatusesQuery.graphql.js +122 -0
  132. package/src/stories/f/v2/__generated__/QueryComboboxAllTeamsQuery.graphql.js +139 -0
  133. package/src/stories/f/v2/__generated__/QuerySelectAllTaskStatusesQuery.graphql.js +122 -0
  134. package/src/ui/f/FormInput/FormInput.jsx +57 -12
  135. package/src/ui/f/common/V2/Description/Description.jsx +94 -0
  136. package/src/ui/f/common/V2/Description/index.js +2 -0
  137. package/src/ui/f/common/V2/Description/styles.scss +10 -0
  138. package/src/ui/f/common/V2/Label/Label.jsx +102 -0
  139. package/src/ui/f/common/V2/Label/index.js +2 -0
  140. package/src/ui/f/common/V2/Label/styles.scss +9 -0
  141. package/src/ui/f/common/V2/index.js +2 -0
  142. package/src/ui/f/common/index.js +1 -0
  143. package/src/ui/f/fields/V2/Checkbox/Checkbox.jsx +146 -0
  144. package/src/ui/f/fields/V2/Checkbox/index.js +2 -0
  145. package/src/ui/f/fields/V2/Checkbox/styles.scss +16 -0
  146. package/src/ui/f/fields/V2/ChoicesInput/ChoicesInput.jsx +183 -0
  147. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/Choice.jsx +125 -0
  148. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  149. package/src/ui/f/fields/V2/ChoicesInput/common/index.js +1 -0
  150. package/src/ui/f/fields/V2/ChoicesInput/index.js +2 -0
  151. package/src/ui/f/fields/V2/ChoicesInput/styles.scss +79 -0
  152. package/src/ui/f/fields/V2/EditorInput/EditorInput.jsx +244 -0
  153. package/src/ui/f/fields/V2/EditorInput/common/Toolbar.jsx +356 -0
  154. package/src/ui/f/fields/V2/EditorInput/common/TreeViewPlugin.jsx +16 -0
  155. package/src/ui/f/fields/V2/EditorInput/common/index.jsx +2 -0
  156. package/src/ui/f/fields/V2/EditorInput/index.js +2 -0
  157. package/src/ui/f/fields/V2/EditorInput/styles.scss +149 -0
  158. package/src/ui/f/fields/V2/LinkInput/LinkInput.jsx +187 -0
  159. package/src/ui/f/fields/V2/LinkInput/index.js +2 -0
  160. package/src/ui/f/fields/V2/LinkInput/styles.scss +90 -0
  161. package/src/ui/f/fields/V2/QueryChoices/QueryChoices.jsx +153 -0
  162. package/src/ui/f/fields/V2/QueryChoices/index.js +2 -0
  163. package/src/ui/f/fields/V2/QueryCombobox/QueryCombobox.jsx +254 -0
  164. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/Combobox.jsx +276 -0
  165. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  166. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/Menu.jsx +103 -0
  167. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  168. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +362 -0
  169. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  170. package/src/ui/f/fields/V2/QueryCombobox/common/index.js +3 -0
  171. package/src/ui/f/fields/V2/QueryCombobox/index.js +2 -0
  172. package/src/ui/f/fields/V2/QueryCombobox/styles.scss +127 -0
  173. package/src/ui/f/fields/V2/QuerySelect/QuerySelect.jsx +220 -0
  174. package/src/ui/f/fields/V2/QuerySelect/index.js +2 -0
  175. package/src/ui/f/fields/V2/RatingsInput/RatingsInput.jsx +152 -0
  176. package/src/ui/f/fields/V2/RatingsInput/common/Rating/Rating.jsx +142 -0
  177. package/src/ui/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  178. package/src/ui/f/fields/V2/RatingsInput/common/index.js +1 -0
  179. package/src/ui/f/fields/V2/RatingsInput/index.js +2 -0
  180. package/src/ui/f/fields/V2/RatingsInput/styles.scss +48 -0
  181. package/src/ui/f/fields/V2/SelectInput/SelectInput.jsx +187 -0
  182. package/src/ui/f/fields/V2/SelectInput/index.js +2 -0
  183. package/src/ui/f/fields/V2/SelectInput/styles.scss +87 -0
  184. package/src/ui/f/fields/V2/TextInput/TextInput.jsx +192 -0
  185. package/src/ui/f/fields/V2/TextInput/index.js +2 -0
  186. package/src/ui/f/fields/V2/TextInput/styles.scss +78 -0
  187. package/src/ui/f/fields/V2/TextareaInput/TextareaInput.jsx +180 -0
  188. package/src/ui/f/fields/V2/TextareaInput/index.js +2 -0
  189. package/src/ui/f/fields/V2/TextareaInput/styles.scss +53 -0
  190. package/src/ui/f/fields/V2/index.js +11 -0
  191. package/src/ui/f/fields/index.js +1 -0
  192. package/tests/__snapshots__/Storyshots.test.js.snap +5909 -0
@@ -0,0 +1,68 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useInsertionEffect } from 'react';
4
+ import { useField } from 'formik';
5
+ import PropTypes from 'prop-types';
6
+ import styleNames from '@pareto-engineering/bem/exports';
7
+
8
+ // Local Definitions
9
+
10
+ const baseClassName = styleNames.base;
11
+ const componentClassName = 'description';
12
+
13
+ /**
14
+ * This is the component description.
15
+ */
16
+ const Description = ({
17
+ id,
18
+ className: userClassName,
19
+ style,
20
+ description,
21
+ name,
22
+ color
23
+ // ...otherProps
24
+ }) => {
25
+ useInsertionEffect(() => {
26
+ import("./styles.scss");
27
+ }, []);
28
+ const [, meta] = useField(name);
29
+ const hasError = meta.touched && meta.error;
30
+ if (hasError || description) {
31
+ return /*#__PURE__*/React.createElement("div", {
32
+ id: id,
33
+ className: [baseClassName, componentClassName, userClassName, hasError ? 'x-error' : `x-${color}`].filter(e => e).join(' '),
34
+ style: style
35
+ }, hasError ? meta.error : description);
36
+ }
37
+ return null;
38
+ };
39
+ Description.propTypes = {
40
+ /**
41
+ * The HTML id for this element
42
+ */
43
+ id: PropTypes.string,
44
+ /**
45
+ * The HTML class names for this element
46
+ */
47
+ className: PropTypes.string,
48
+ /**
49
+ * The React-written, css properties for this element.
50
+ */
51
+ style: PropTypes.objectOf(PropTypes.string),
52
+ /**
53
+ * The base color for the description
54
+ */
55
+ color: PropTypes.string,
56
+ /**
57
+ * Input description - extra description to guide a use in filling the input
58
+ */
59
+ description: PropTypes.string,
60
+ /**
61
+ * The input name (html - and Formik state)
62
+ */
63
+ name: PropTypes.string.isRequired
64
+ };
65
+ Description.defaultProps = {
66
+ color: 'metadata'
67
+ };
68
+ export default Description;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as Description } from "./Description";
@@ -0,0 +1,10 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+
5
+
6
+ .#{bem.$base}.description {
7
+ color: var(--x);
8
+ }
9
+
10
+
@@ -0,0 +1,76 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useInsertionEffect } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import styleNames from '@pareto-engineering/bem/exports';
6
+
7
+ // Local Definitions
8
+
9
+ const baseClassName = styleNames.base;
10
+ const componentClassName = 'form-label';
11
+
12
+ /**
13
+ * This is the component description.
14
+ */
15
+ const Label = ({
16
+ id,
17
+ className: userClassName,
18
+ style,
19
+ children,
20
+ name,
21
+ color,
22
+ optional,
23
+ as: Wrapper
24
+ // ...otherProps
25
+ }) => {
26
+ useInsertionEffect(() => {
27
+ import("./styles.scss");
28
+ }, []);
29
+ return /*#__PURE__*/React.createElement(Wrapper, {
30
+ htmlFor: Wrapper === 'label' ? name : undefined,
31
+ id: id,
32
+ className: [baseClassName, componentClassName, userClassName, `x-${color}`].filter(e => e).join(' '),
33
+ style: style
34
+ // {...otherProps}
35
+ }, children, optional && ' (Optional)');
36
+ };
37
+ Label.propTypes = {
38
+ /**
39
+ * The HTML id for this element
40
+ */
41
+ id: PropTypes.string,
42
+ /**
43
+ * The HTML class names for this element
44
+ */
45
+ className: PropTypes.string,
46
+ /**
47
+ * The React-written, css properties for this element.
48
+ */
49
+ style: PropTypes.objectOf(PropTypes.string),
50
+ /**
51
+ * The children JSX
52
+ */
53
+ children: PropTypes.node,
54
+ /**
55
+ * The name of the input label
56
+ */
57
+ name: PropTypes.string,
58
+ /**
59
+ * The html tag that acts as an input label
60
+ */
61
+ as: PropTypes.node,
62
+ /**
63
+ * The default color of the label
64
+ */
65
+ color: PropTypes.string,
66
+ /**
67
+ * Whether the input should have an optional tag
68
+ */
69
+ optional: PropTypes.bool
70
+ };
71
+ Label.defaultProps = {
72
+ as: 'label',
73
+ color: 'paragraph',
74
+ optional: false
75
+ };
76
+ export default Label;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as Label } from "./Label";
@@ -0,0 +1,9 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+ @use "@pareto-engineering/styles/src/mixins";
5
+ @use "@pareto-engineering/styles/src/globals" as *;
6
+
7
+ .#{bem.$base}.form-label {
8
+ color: var(--x);
9
+ }
@@ -0,0 +1,2 @@
1
+ export { Label as FormLabelV2 } from "./Label";
2
+ export { Description as FormDescriptionV2 } from "./Description";
@@ -2,4 +2,5 @@ export { Label as FormLabel } from "./Label";
2
2
  export { Description as FormDescription } from "./Description";
3
3
  export { Debugger as FormDebugger } from "./Debugger";
4
4
  export { InputWrapper } from "./InputWrapper";
5
- export * from "./utils";
5
+ export * from "./utils";
6
+ export * from "./V2";
@@ -0,0 +1,114 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ /* @pareto-engineering/generator-front 1.0.12 */
3
+ import * as React from 'react';
4
+ import { useInsertionEffect } from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import styleNames from '@pareto-engineering/bem/exports';
7
+ import { useField } from 'formik';
8
+ import { FormLabelV2, FormDescriptionV2 } from "../../../common";
9
+
10
+ // Local Definitions
11
+
12
+ const baseClassName = styleNames.base;
13
+ const componentClassName = 'checkbox';
14
+
15
+ /**
16
+ * This is the component description.
17
+ */
18
+ const Checkbox = ({
19
+ id,
20
+ className: userClassName,
21
+ style,
22
+ name,
23
+ label,
24
+ description,
25
+ disabled,
26
+ optional,
27
+ labelColor
28
+ // ...otherProps
29
+ }) => {
30
+ useInsertionEffect(() => {
31
+ import("./styles.scss");
32
+ }, []);
33
+ const [field] = useField({
34
+ name,
35
+ type: 'checkbox'
36
+ });
37
+ return /*#__PURE__*/React.createElement("div", {
38
+ id: id,
39
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
40
+ style: style
41
+ }, label && /*#__PURE__*/React.createElement(FormLabelV2, {
42
+ name: name,
43
+ color: labelColor,
44
+ optional: optional
45
+ // {...otherProps}
46
+ }, label), /*#__PURE__*/React.createElement("input", _extends({
47
+ id: name,
48
+ className: "input",
49
+ type: "checkbox",
50
+ disabled: disabled
51
+ }, field)), /*#__PURE__*/React.createElement(FormDescriptionV2, {
52
+ className: "s-1",
53
+ description: description,
54
+ name: name
55
+ }));
56
+ };
57
+ Checkbox.propTypes = {
58
+ /**
59
+ * The HTML id for this element
60
+ */
61
+ id: PropTypes.string,
62
+ /**
63
+ * The HTML class names for this element
64
+ */
65
+ className: PropTypes.string,
66
+ /**
67
+ * The React-written, css properties for this element.
68
+ */
69
+ style: PropTypes.objectOf(PropTypes.string),
70
+ /**
71
+ * The input name (html - and Formik state)
72
+ */
73
+ name: PropTypes.string.isRequired,
74
+ /**
75
+ * The Input description to guide the user if it's not obvious
76
+ */
77
+ description: PropTypes.string,
78
+ /**
79
+ * Whether the input should be disabled
80
+ */
81
+ disabled: PropTypes.bool,
82
+ /**
83
+ * The color of the label
84
+ */
85
+ labelColor: PropTypes.string,
86
+ /**
87
+ * The input label
88
+ */
89
+ label: PropTypes.string,
90
+ /**
91
+ * The number of columns the label should span
92
+ */
93
+ labelSpan: PropTypes.number,
94
+ /**
95
+ * The number of columns the input should span
96
+ */
97
+ inputSpan: PropTypes.number,
98
+ /**
99
+ * The number of columns the label should span on desktop
100
+ */
101
+ desktopLabelSpan: PropTypes.number,
102
+ /**
103
+ * The number of columns the input should span on desktop
104
+ */
105
+ desktopInputSpan: PropTypes.number,
106
+ /**
107
+ * Whether the input should have an optional tag
108
+ */
109
+ optional: PropTypes.bool
110
+ };
111
+ Checkbox.defaultProps = {
112
+ disabled: false
113
+ };
114
+ export default Checkbox;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as Checkbox } from "./Checkbox";
@@ -0,0 +1,16 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+ @use "@pareto-engineering/styles/src/mixins";
5
+ @use "@pareto-engineering/styles/src/globals" as *;
6
+
7
+ .#{bem.$base}.checkbox {
8
+ align-items: flex-start;
9
+ display: flex;
10
+ flex-direction: column;
11
+ justify-content: center;
12
+
13
+ > .#{bem.$base}.form-label {
14
+ margin-bottom: var(--gap);
15
+ }
16
+ }
@@ -0,0 +1,148 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ /* @pareto-engineering/generator-front 1.0.12 */
3
+ import * as React from 'react';
4
+ import { useInsertionEffect, memo } from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import styleNames from '@pareto-engineering/bem/exports';
7
+
8
+ // Local Definitions
9
+
10
+ import { Choice } from "./common";
11
+ import { FormDescriptionV2, FormLabelV2 } from "../../../common";
12
+ const baseClassName = styleNames.base;
13
+ const componentClassName = 'choices-input';
14
+
15
+ /**
16
+ * This is the component description.
17
+ */
18
+ const ChoicesInput = ({
19
+ id,
20
+ className: userClassName,
21
+ style,
22
+ name,
23
+ validate,
24
+ options,
25
+ multiple,
26
+ color,
27
+ label,
28
+ labelColor,
29
+ optional,
30
+ disabled,
31
+ description,
32
+ spaceBetween,
33
+ ...otherProps
34
+ }) => {
35
+ useInsertionEffect(() => {
36
+ import("./styles.scss");
37
+ }, []);
38
+ return /*#__PURE__*/React.createElement("div", {
39
+ id: id,
40
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
41
+ style: style
42
+ }, label && /*#__PURE__*/React.createElement(FormLabelV2, {
43
+ name: name,
44
+ color: labelColor,
45
+ optional: optional
46
+ // {...otherProps}
47
+ }, label), /*#__PURE__*/React.createElement("div", {
48
+ className: ['choices', spaceBetween && 'space-between'].filter(Boolean).join(' ')
49
+ }, options.map(choice => /*#__PURE__*/React.createElement(Choice, _extends({
50
+ className: `x-${color}`,
51
+ key: choice.value,
52
+ name: name,
53
+ id: `${name}-${choice.value}`,
54
+ multiple: multiple,
55
+ validate: validate,
56
+ disabled: disabled
57
+ }, otherProps, choice)))), /*#__PURE__*/React.createElement(FormDescriptionV2, {
58
+ className: "s-1",
59
+ description: description,
60
+ name: name
61
+ }));
62
+ };
63
+ ChoicesInput.propTypes = {
64
+ /**
65
+ * The HTML id for this element
66
+ */
67
+ id: PropTypes.string,
68
+ /**
69
+ * The HTML class names for this element
70
+ */
71
+ className: PropTypes.string,
72
+ /**
73
+ * The React-written, css properties for this element.
74
+ */
75
+ style: PropTypes.objectOf(PropTypes.string),
76
+ /**
77
+ * The choices name
78
+ */
79
+ name: PropTypes.string.isRequired,
80
+ /**
81
+ * The input field validator function
82
+ */
83
+ validate: PropTypes.string,
84
+ /**
85
+ * The choices input options
86
+ */
87
+ options: PropTypes.arrayOf(PropTypes.shape({
88
+ value: PropTypes.string,
89
+ label: PropTypes.string
90
+ })),
91
+ /**
92
+ * If the input should be multiple - checkbox
93
+ */
94
+ multiple: PropTypes.bool,
95
+ /**
96
+ * how many columns should be displayed on the mobile grid
97
+ */
98
+ gridColumnsMobile: PropTypes.number,
99
+ /**
100
+ * The choice color
101
+ */
102
+ color: PropTypes.string,
103
+ /**
104
+ * The selected choice color
105
+ */
106
+ colorChecked: PropTypes.string,
107
+ /**
108
+ * The label of the choices input
109
+ */
110
+ label: PropTypes.string,
111
+ /**
112
+ * Whether all the Choices inputs should be disabled
113
+ */
114
+ disabled: PropTypes.bool,
115
+ /**
116
+ * Whether the input is optional or not
117
+ */
118
+ optional: PropTypes.bool,
119
+ /**
120
+ * The select input description
121
+ */
122
+ description: PropTypes.string,
123
+ /**
124
+ * The number of columns the label should span
125
+ */
126
+ labelSpan: PropTypes.number,
127
+ /**
128
+ * The number of columns the input should span
129
+ */
130
+ inputSpan: PropTypes.number,
131
+ /**
132
+ * The number of columns the label should span on desktop
133
+ */
134
+ desktopLabelSpan: PropTypes.number,
135
+ /**
136
+ * The number of columns the input should span on desktop
137
+ */
138
+ desktopInputSpan: PropTypes.number,
139
+ /**
140
+ * The color of the label
141
+ */
142
+ labelColor: PropTypes.string
143
+ };
144
+ ChoicesInput.defaultProps = {
145
+ color: 'interactive',
146
+ disabled: false
147
+ };
148
+ export default /*#__PURE__*/memo(ChoicesInput);
@@ -0,0 +1,97 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ /* @pareto-engineering/generator-front 1.0.12 */
3
+ import * as React from 'react';
4
+ import PropTypes from 'prop-types';
5
+
6
+ // Local Definitions
7
+ import { useField } from 'formik';
8
+ import styleNames from '@pareto-engineering/bem/exports';
9
+ const baseClassName = styleNames.base;
10
+ const componentClassName = 'choice';
11
+
12
+ /**
13
+ * This is the component description.
14
+ */
15
+ const Choice = ({
16
+ id,
17
+ className: userClassName,
18
+ style,
19
+ name,
20
+ label,
21
+ labelClassName,
22
+ labelStyle,
23
+ value,
24
+ multiple,
25
+ validate,
26
+ disabled
27
+ }) => {
28
+ const type = multiple ? 'checkbox' : 'radio';
29
+ const [field] = useField({
30
+ name,
31
+ validate,
32
+ type,
33
+ value
34
+ });
35
+ return /*#__PURE__*/React.createElement("div", {
36
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
37
+ style: style
38
+ }, /*#__PURE__*/React.createElement("input", _extends({
39
+ type: type,
40
+ id: id,
41
+ name: name
42
+ }, field, {
43
+ value: value,
44
+ disabled: disabled
45
+ })), /*#__PURE__*/React.createElement("label", {
46
+ htmlFor: id,
47
+ className: [labelClassName, disabled && 'disabled'].filter(e => e).join(' '),
48
+ style: labelStyle
49
+ }, label));
50
+ };
51
+ Choice.propTypes = {
52
+ /**
53
+ * The HTML id for this element
54
+ */
55
+ id: PropTypes.string,
56
+ /**
57
+ * The HTML class names for this element
58
+ */
59
+ className: PropTypes.string,
60
+ /**
61
+ * The React-written, css properties for this element.
62
+ */
63
+ style: PropTypes.objectOf(PropTypes.string),
64
+ /**
65
+ * The input name.
66
+ */
67
+ name: PropTypes.string.isRequired,
68
+ /**
69
+ * The input label.
70
+ */
71
+ label: PropTypes.string.isRequired,
72
+ /**
73
+ * The input label class name.
74
+ */
75
+ labelClassName: PropTypes.string,
76
+ /**
77
+ * The input label styles.
78
+ */
79
+ labelStyle: PropTypes.objectOf(PropTypes.string),
80
+ /**
81
+ * The input value.
82
+ */
83
+ value: PropTypes.string.isRequired,
84
+ /**
85
+ * If the input should be multiple - checkbox
86
+ */
87
+ multiple: PropTypes.bool,
88
+ /**
89
+ * The input field validator function
90
+ */
91
+ validate: PropTypes.func,
92
+ /**
93
+ * Whether the radio or checkbox choice should be disabled
94
+ */
95
+ disabled: PropTypes.bool
96
+ };
97
+ export default Choice;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as Choice } from "./Choice";
@@ -0,0 +1 @@
1
+ export { Choice } from "./Choice";
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as ChoicesInput } from "./ChoicesInput";
@@ -0,0 +1,79 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ /* stylelint-disable selector-max-compound-selectors -- exception */
3
+ /* stylelint-disable max-nesting-depth -- exception */
4
+
5
+ @use "@pareto-engineering/bem";
6
+ @use "@pareto-engineering/styles/src/mixins";
7
+ @use "@pareto-engineering/styles/src/globals" as *;
8
+
9
+ $default-flex-separator:calc(1em / 2) calc(.75em / 2);
10
+ $default-transition:var(--theme-default-transition);
11
+ $default-label-padding: .3em 1em calc(2em - .3em);
12
+ $default-label-height: .5em;
13
+ $default-input-border-radius: var(--theme-default-input-border-radius);
14
+ $default-border: var(--theme-default-input-border);
15
+ $hover-border: var(--theme-hover-input-border);
16
+ $focus-border: var(--theme-focus-input-border);
17
+ $default-background: var(--background-inputs);
18
+ $disabled-background: var(--background-inputs-30);
19
+
20
+ .#{bem.$base}.choices-input {
21
+ display: flex;
22
+ flex-direction: column;
23
+
24
+ > .#{bem.$base}.form-label {
25
+ margin-bottom: var(--gap);
26
+ }
27
+
28
+ > .choices {
29
+ display: flex;
30
+ flex-wrap: wrap;
31
+ gap: $default-flex-separator;
32
+
33
+ &.space-between {
34
+ justify-content: space-between;
35
+ }
36
+
37
+ >.choice {
38
+ display: flex;
39
+
40
+ input {
41
+ opacity: 0;
42
+ position: fixed;
43
+ visibility: none;
44
+ z-index: -1;
45
+ }
46
+
47
+ input:disabled + label {
48
+ background-color: $disabled-background;
49
+ }
50
+
51
+ > label {
52
+ background-color: $default-background;
53
+ border: $default-border;
54
+ border-radius: $default-input-border-radius;
55
+ color: var(--paragraph);
56
+ cursor: pointer;
57
+ display: block;
58
+ height: $default-label-height;
59
+ max-width: 100%;
60
+ padding: $default-label-padding;
61
+ position: relative;
62
+ transition: $default-transition;
63
+ white-space: nowrap;
64
+
65
+ &:not(.disabled) {
66
+ &:hover {
67
+ border: $hover-border;
68
+ }
69
+ }
70
+ }
71
+
72
+ input:checked + label {
73
+ background: var(--x);
74
+ color: var(--on-x);
75
+ }
76
+ }
77
+ }
78
+ }
79
+