@pareto-engineering/design-system 4.0.0-alpha.61 → 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 (198) hide show
  1. package/dist/cjs/a/TextSteps/TextSteps.js +4 -4
  2. package/dist/cjs/a/TextSteps/styles.scss +1 -1
  3. package/dist/cjs/f/FormInput/FormInput.js +43 -13
  4. package/dist/cjs/f/common/V2/Description/Description.js +76 -0
  5. package/dist/cjs/f/common/V2/Description/index.js +13 -0
  6. package/dist/cjs/f/common/V2/Description/styles.scss +10 -0
  7. package/dist/cjs/f/common/V2/Label/Label.js +84 -0
  8. package/dist/cjs/f/common/V2/Label/index.js +13 -0
  9. package/dist/cjs/f/common/V2/Label/styles.scss +9 -0
  10. package/dist/cjs/f/common/V2/index.js +19 -0
  11. package/dist/cjs/f/common/index.js +12 -0
  12. package/dist/cjs/f/fields/V2/Checkbox/Checkbox.js +122 -0
  13. package/dist/cjs/f/fields/V2/Checkbox/index.js +13 -0
  14. package/dist/cjs/f/fields/V2/Checkbox/styles.scss +16 -0
  15. package/dist/cjs/f/fields/V2/ChoicesInput/ChoicesInput.js +154 -0
  16. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/Choice.js +104 -0
  17. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/index.js +13 -0
  18. package/dist/cjs/f/fields/V2/ChoicesInput/common/index.js +12 -0
  19. package/dist/cjs/f/fields/V2/ChoicesInput/index.js +13 -0
  20. package/dist/cjs/f/fields/V2/ChoicesInput/styles.scss +79 -0
  21. package/dist/cjs/f/fields/V2/EditorInput/EditorInput.js +197 -0
  22. package/dist/cjs/f/fields/V2/EditorInput/common/Toolbar.js +257 -0
  23. package/dist/cjs/f/fields/V2/EditorInput/common/TreeViewPlugin.js +18 -0
  24. package/dist/cjs/f/fields/V2/EditorInput/common/index.js +20 -0
  25. package/dist/cjs/f/fields/V2/EditorInput/index.js +13 -0
  26. package/dist/cjs/f/fields/V2/EditorInput/styles.scss +149 -0
  27. package/dist/cjs/f/fields/V2/LinkInput/LinkInput.js +156 -0
  28. package/dist/cjs/f/fields/V2/LinkInput/index.js +13 -0
  29. package/dist/cjs/f/fields/V2/LinkInput/styles.scss +90 -0
  30. package/dist/cjs/f/fields/V2/QueryChoices/QueryChoices.js +137 -0
  31. package/dist/cjs/f/fields/V2/QueryChoices/index.js +13 -0
  32. package/dist/cjs/f/fields/V2/QueryCombobox/QueryCombobox.js +229 -0
  33. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +236 -0
  34. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/index.js +13 -0
  35. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/Menu.js +83 -0
  36. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/index.js +13 -0
  37. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +300 -0
  38. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +13 -0
  39. package/dist/cjs/f/fields/V2/QueryCombobox/common/index.js +26 -0
  40. package/dist/cjs/f/fields/V2/QueryCombobox/index.js +13 -0
  41. package/dist/cjs/f/fields/V2/QueryCombobox/styles.scss +127 -0
  42. package/dist/cjs/f/fields/V2/QuerySelect/QuerySelect.js +198 -0
  43. package/dist/cjs/f/fields/V2/QuerySelect/index.js +13 -0
  44. package/dist/cjs/f/fields/V2/RatingsInput/RatingsInput.js +130 -0
  45. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/Rating.js +117 -0
  46. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/index.js +13 -0
  47. package/dist/cjs/f/fields/V2/RatingsInput/common/index.js +12 -0
  48. package/dist/cjs/f/fields/V2/RatingsInput/index.js +13 -0
  49. package/dist/cjs/f/fields/V2/RatingsInput/styles.scss +48 -0
  50. package/dist/cjs/f/fields/V2/SelectInput/SelectInput.js +154 -0
  51. package/dist/cjs/f/fields/V2/SelectInput/index.js +13 -0
  52. package/dist/cjs/f/fields/V2/SelectInput/styles.scss +87 -0
  53. package/dist/cjs/f/fields/V2/TextInput/TextInput.js +155 -0
  54. package/dist/cjs/f/fields/V2/TextInput/index.js +13 -0
  55. package/dist/cjs/f/fields/V2/TextInput/styles.scss +78 -0
  56. package/dist/cjs/f/fields/V2/TextareaInput/TextareaInput.js +152 -0
  57. package/dist/cjs/f/fields/V2/TextareaInput/index.js +13 -0
  58. package/dist/cjs/f/fields/V2/TextareaInput/styles.scss +53 -0
  59. package/dist/cjs/f/fields/V2/index.js +82 -0
  60. package/dist/cjs/f/fields/index.js +26 -1
  61. package/dist/es/a/TextSteps/TextSteps.js +4 -4
  62. package/dist/es/a/TextSteps/styles.scss +1 -1
  63. package/dist/es/f/FormInput/FormInput.js +33 -3
  64. package/dist/es/f/common/V2/Description/Description.js +68 -0
  65. package/dist/es/f/common/V2/Description/index.js +2 -0
  66. package/dist/es/f/common/V2/Description/styles.scss +10 -0
  67. package/dist/es/f/common/V2/Label/Label.js +76 -0
  68. package/dist/es/f/common/V2/Label/index.js +2 -0
  69. package/dist/es/f/common/V2/Label/styles.scss +9 -0
  70. package/dist/es/f/common/V2/index.js +2 -0
  71. package/dist/es/f/common/index.js +2 -1
  72. package/dist/es/f/fields/V2/Checkbox/Checkbox.js +114 -0
  73. package/dist/es/f/fields/V2/Checkbox/index.js +2 -0
  74. package/dist/es/f/fields/V2/Checkbox/styles.scss +16 -0
  75. package/dist/es/f/fields/V2/ChoicesInput/ChoicesInput.js +148 -0
  76. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/Choice.js +97 -0
  77. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  78. package/dist/es/f/fields/V2/ChoicesInput/common/index.js +1 -0
  79. package/dist/es/f/fields/V2/ChoicesInput/index.js +2 -0
  80. package/dist/es/f/fields/V2/ChoicesInput/styles.scss +79 -0
  81. package/dist/es/f/fields/V2/EditorInput/EditorInput.js +192 -0
  82. package/dist/es/f/fields/V2/EditorInput/common/Toolbar.js +246 -0
  83. package/dist/es/f/fields/V2/EditorInput/common/TreeViewPlugin.js +11 -0
  84. package/dist/es/f/fields/V2/EditorInput/common/index.js +2 -0
  85. package/dist/es/f/fields/V2/EditorInput/index.js +2 -0
  86. package/dist/es/f/fields/V2/EditorInput/styles.scss +149 -0
  87. package/dist/es/f/fields/V2/LinkInput/LinkInput.js +148 -0
  88. package/dist/es/f/fields/V2/LinkInput/index.js +2 -0
  89. package/dist/es/f/fields/V2/LinkInput/styles.scss +90 -0
  90. package/dist/es/f/fields/V2/QueryChoices/QueryChoices.js +126 -0
  91. package/dist/es/f/fields/V2/QueryChoices/index.js +2 -0
  92. package/dist/es/f/fields/V2/QueryCombobox/QueryCombobox.js +221 -0
  93. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +229 -0
  94. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  95. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/Menu.js +73 -0
  96. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  97. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +293 -0
  98. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  99. package/dist/es/f/fields/V2/QueryCombobox/common/index.js +3 -0
  100. package/dist/es/f/fields/V2/QueryCombobox/index.js +2 -0
  101. package/dist/es/f/fields/V2/QueryCombobox/styles.scss +127 -0
  102. package/dist/es/f/fields/V2/QuerySelect/QuerySelect.js +186 -0
  103. package/dist/es/f/fields/V2/QuerySelect/index.js +2 -0
  104. package/dist/es/f/fields/V2/RatingsInput/RatingsInput.js +124 -0
  105. package/dist/es/f/fields/V2/RatingsInput/common/Rating/Rating.js +109 -0
  106. package/dist/es/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  107. package/dist/es/f/fields/V2/RatingsInput/common/index.js +1 -0
  108. package/dist/es/f/fields/V2/RatingsInput/index.js +2 -0
  109. package/dist/es/f/fields/V2/RatingsInput/styles.scss +48 -0
  110. package/dist/es/f/fields/V2/SelectInput/SelectInput.js +146 -0
  111. package/dist/es/f/fields/V2/SelectInput/index.js +2 -0
  112. package/dist/es/f/fields/V2/SelectInput/styles.scss +87 -0
  113. package/dist/es/f/fields/V2/TextInput/TextInput.js +147 -0
  114. package/dist/es/f/fields/V2/TextInput/index.js +2 -0
  115. package/dist/es/f/fields/V2/TextInput/styles.scss +78 -0
  116. package/dist/es/f/fields/V2/TextareaInput/TextareaInput.js +146 -0
  117. package/dist/es/f/fields/V2/TextareaInput/index.js +2 -0
  118. package/dist/es/f/fields/V2/TextareaInput/styles.scss +53 -0
  119. package/dist/es/f/fields/V2/index.js +11 -0
  120. package/dist/es/f/fields/index.js +2 -1
  121. package/package.json +3 -3
  122. package/src/stories/f/v2/Checkbox.stories.jsx +102 -0
  123. package/src/stories/f/v2/ChoicesInput.stories.jsx +139 -0
  124. package/src/stories/f/v2/EditorInput.stories.jsx +81 -0
  125. package/src/stories/f/v2/LinkInput.stories.jsx +93 -0
  126. package/src/stories/f/v2/QueryChoices.stories.jsx +144 -0
  127. package/src/stories/f/v2/QueryCombobox.stories.jsx +301 -0
  128. package/src/stories/f/v2/QuerySelect.stories.jsx +150 -0
  129. package/src/stories/f/v2/RatingsInput.stories.jsx +77 -0
  130. package/src/stories/f/v2/SelectInput.stories.jsx +95 -0
  131. package/src/stories/f/v2/TextInput.stories.jsx +120 -0
  132. package/src/stories/f/v2/TextareaInput.stories.jsx +107 -0
  133. package/src/stories/f/v2/__generated__/FormInputAllTaskStatusesQuery.graphql.js +122 -0
  134. package/src/stories/f/v2/__generated__/FormInputAllTeamsQuery.graphql.js +139 -0
  135. package/src/stories/f/v2/__generated__/QueryChoicesAllTaskStatusesQuery.graphql.js +122 -0
  136. package/src/stories/f/v2/__generated__/QueryComboboxAllTeamsQuery.graphql.js +139 -0
  137. package/src/stories/f/v2/__generated__/QuerySelectAllTaskStatusesQuery.graphql.js +122 -0
  138. package/src/ui/a/TextSteps/TextSteps.jsx +4 -4
  139. package/src/ui/a/TextSteps/styles.scss +1 -1
  140. package/src/ui/f/FormInput/FormInput.jsx +57 -12
  141. package/src/ui/f/common/V2/Description/Description.jsx +94 -0
  142. package/src/ui/f/common/V2/Description/index.js +2 -0
  143. package/src/ui/f/common/V2/Description/styles.scss +10 -0
  144. package/src/ui/f/common/V2/Label/Label.jsx +102 -0
  145. package/src/ui/f/common/V2/Label/index.js +2 -0
  146. package/src/ui/f/common/V2/Label/styles.scss +9 -0
  147. package/src/ui/f/common/V2/index.js +2 -0
  148. package/src/ui/f/common/index.js +1 -0
  149. package/src/ui/f/fields/V2/Checkbox/Checkbox.jsx +146 -0
  150. package/src/ui/f/fields/V2/Checkbox/index.js +2 -0
  151. package/src/ui/f/fields/V2/Checkbox/styles.scss +16 -0
  152. package/src/ui/f/fields/V2/ChoicesInput/ChoicesInput.jsx +183 -0
  153. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/Choice.jsx +125 -0
  154. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  155. package/src/ui/f/fields/V2/ChoicesInput/common/index.js +1 -0
  156. package/src/ui/f/fields/V2/ChoicesInput/index.js +2 -0
  157. package/src/ui/f/fields/V2/ChoicesInput/styles.scss +79 -0
  158. package/src/ui/f/fields/V2/EditorInput/EditorInput.jsx +244 -0
  159. package/src/ui/f/fields/V2/EditorInput/common/Toolbar.jsx +356 -0
  160. package/src/ui/f/fields/V2/EditorInput/common/TreeViewPlugin.jsx +16 -0
  161. package/src/ui/f/fields/V2/EditorInput/common/index.jsx +2 -0
  162. package/src/ui/f/fields/V2/EditorInput/index.js +2 -0
  163. package/src/ui/f/fields/V2/EditorInput/styles.scss +149 -0
  164. package/src/ui/f/fields/V2/LinkInput/LinkInput.jsx +187 -0
  165. package/src/ui/f/fields/V2/LinkInput/index.js +2 -0
  166. package/src/ui/f/fields/V2/LinkInput/styles.scss +90 -0
  167. package/src/ui/f/fields/V2/QueryChoices/QueryChoices.jsx +153 -0
  168. package/src/ui/f/fields/V2/QueryChoices/index.js +2 -0
  169. package/src/ui/f/fields/V2/QueryCombobox/QueryCombobox.jsx +254 -0
  170. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/Combobox.jsx +276 -0
  171. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  172. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/Menu.jsx +103 -0
  173. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  174. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +362 -0
  175. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  176. package/src/ui/f/fields/V2/QueryCombobox/common/index.js +3 -0
  177. package/src/ui/f/fields/V2/QueryCombobox/index.js +2 -0
  178. package/src/ui/f/fields/V2/QueryCombobox/styles.scss +127 -0
  179. package/src/ui/f/fields/V2/QuerySelect/QuerySelect.jsx +220 -0
  180. package/src/ui/f/fields/V2/QuerySelect/index.js +2 -0
  181. package/src/ui/f/fields/V2/RatingsInput/RatingsInput.jsx +152 -0
  182. package/src/ui/f/fields/V2/RatingsInput/common/Rating/Rating.jsx +142 -0
  183. package/src/ui/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  184. package/src/ui/f/fields/V2/RatingsInput/common/index.js +1 -0
  185. package/src/ui/f/fields/V2/RatingsInput/index.js +2 -0
  186. package/src/ui/f/fields/V2/RatingsInput/styles.scss +48 -0
  187. package/src/ui/f/fields/V2/SelectInput/SelectInput.jsx +187 -0
  188. package/src/ui/f/fields/V2/SelectInput/index.js +2 -0
  189. package/src/ui/f/fields/V2/SelectInput/styles.scss +87 -0
  190. package/src/ui/f/fields/V2/TextInput/TextInput.jsx +192 -0
  191. package/src/ui/f/fields/V2/TextInput/index.js +2 -0
  192. package/src/ui/f/fields/V2/TextInput/styles.scss +78 -0
  193. package/src/ui/f/fields/V2/TextareaInput/TextareaInput.jsx +180 -0
  194. package/src/ui/f/fields/V2/TextareaInput/index.js +2 -0
  195. package/src/ui/f/fields/V2/TextareaInput/styles.scss +53 -0
  196. package/src/ui/f/fields/V2/index.js +11 -0
  197. package/src/ui/f/fields/index.js +1 -0
  198. package/tests/__snapshots__/Storyshots.test.js.snap +5910 -1
@@ -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
+
@@ -0,0 +1,192 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ /* eslint-disable import/no-extraneous-dependencies -- required here */
3
+ import * as React from 'react';
4
+ import { useInsertionEffect, memo } from 'react';
5
+ import { useFormikContext } from 'formik';
6
+ import { LexicalComposer } from '@lexical/react/LexicalComposer';
7
+ import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';
8
+ import { ContentEditable } from '@lexical/react/LexicalContentEditable';
9
+ import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';
10
+ import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';
11
+ import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';
12
+ import { ListPlugin } from '@lexical/react/LexicalListPlugin';
13
+ import { TabIndentationPlugin } from '@lexical/react/LexicalTabIndentationPlugin';
14
+ import { AutoLinkNode, LinkNode } from '@lexical/link';
15
+ import { ListItemNode, ListNode } from '@lexical/list';
16
+ import PropTypes from 'prop-types';
17
+ import styleNames from '@pareto-engineering/bem/exports';
18
+
19
+ // Local Definitions
20
+
21
+ import { FormLabelV2, FormDescriptionV2 } from "../../../common";
22
+ import { Toolbar, TreeViewPlugin } from "./common";
23
+ const baseClassName = styleNames.base;
24
+ const componentClassName = 'editor-input';
25
+
26
+ /**
27
+ * This is the component description.
28
+ */
29
+ const EditorInput = ({
30
+ id,
31
+ className: userClassName,
32
+ style,
33
+ name,
34
+ label,
35
+ // validate,
36
+ resize,
37
+ color,
38
+ rows,
39
+ optional,
40
+ labelColor,
41
+ description,
42
+ disabled,
43
+ showDebugger
44
+ // ...otherProps
45
+ }) => {
46
+ useInsertionEffect(() => {
47
+ import("./styles.scss");
48
+ }, []);
49
+ const formik = useFormikContext();
50
+ const setInitialValue = () => {
51
+ const value = formik.values[name];
52
+ try {
53
+ JSON.parse(value);
54
+ return value;
55
+ } catch {
56
+ const defaultValue = {
57
+ root: {
58
+ children: [{
59
+ children: [{
60
+ detail: 0,
61
+ format: 0,
62
+ mode: 'normal',
63
+ style: '',
64
+ text: '',
65
+ type: 'text',
66
+ version: 1
67
+ }],
68
+ direction: 'ltr',
69
+ format: '',
70
+ indent: 0,
71
+ type: 'paragraph',
72
+ version: 1
73
+ }],
74
+ direction: 'ltr',
75
+ format: '',
76
+ indent: 0,
77
+ type: 'root',
78
+ version: 1
79
+ }
80
+ };
81
+ defaultValue.root.children[0].children[0].text = value;
82
+ return JSON.stringify(defaultValue);
83
+ }
84
+ };
85
+ const onChange = state => {
86
+ formik.setValues({
87
+ ...formik.values,
88
+ [name]: JSON.stringify(state)
89
+ });
90
+ };
91
+ const initialConfig = {
92
+ nameSpace: name,
93
+ editable: !disabled,
94
+ editorState: setInitialValue(),
95
+ theme: {
96
+ text: {
97
+ italic: 'italic',
98
+ strikethrough: 'strikethrough',
99
+ underline: 'underlined'
100
+ }
101
+ },
102
+ nodes: [AutoLinkNode, LinkNode, ListNode, ListItemNode]
103
+ };
104
+ return /*#__PURE__*/React.createElement(LexicalComposer, {
105
+ initialConfig: initialConfig
106
+ }, /*#__PURE__*/React.createElement("div", {
107
+ id: id,
108
+ className: [baseClassName, componentClassName, userClassName, `y-${color}`, disabled && 'disabled'].filter(e => e).join(' '),
109
+ style: {
110
+ ...style,
111
+ '--resize': resize,
112
+ '--rows': `${rows}em`
113
+ }
114
+ }, /*#__PURE__*/React.createElement(FormLabelV2, {
115
+ name: name,
116
+ color: labelColor,
117
+ optional: optional
118
+ }, label), !disabled && /*#__PURE__*/React.createElement(Toolbar, null), /*#__PURE__*/React.createElement(RichTextPlugin, {
119
+ contentEditable: /*#__PURE__*/React.createElement(ContentEditable, {
120
+ id: name,
121
+ className: "content-editable"
122
+ })
123
+ }), /*#__PURE__*/React.createElement(OnChangePlugin, {
124
+ onChange: onChange
125
+ }), /*#__PURE__*/React.createElement(LinkPlugin, null), /*#__PURE__*/React.createElement(ListPlugin, null), /*#__PURE__*/React.createElement(TabIndentationPlugin, null), /*#__PURE__*/React.createElement(HistoryPlugin, null), /*#__PURE__*/React.createElement(FormDescriptionV2, {
126
+ className: "s-1",
127
+ description: description,
128
+ name: name
129
+ }), showDebugger && /*#__PURE__*/React.createElement(TreeViewPlugin, null)));
130
+ };
131
+ EditorInput.propTypes = {
132
+ /**
133
+ * The HTML id for this element
134
+ */
135
+ id: PropTypes.string,
136
+ /**
137
+ * The HTML class names for this element
138
+ */
139
+ className: PropTypes.string,
140
+ /**
141
+ * The React-written, css properties for this element.
142
+ */
143
+ style: PropTypes.objectOf(PropTypes.string),
144
+ /**
145
+ * The input name (html - and Formik state)
146
+ */
147
+ name: PropTypes.string.isRequired,
148
+ /**
149
+ * The input label
150
+ */
151
+ label: PropTypes.string.isRequired,
152
+ /**
153
+ * The input value validator function
154
+ */
155
+ // validate:PropTypes.func,
156
+
157
+ /**
158
+ * The number of rows int the text area
159
+ */
160
+ rows: PropTypes.number,
161
+ /**
162
+ * Color of the text
163
+ */
164
+ color: PropTypes.string,
165
+ /**
166
+ * Label base color
167
+ */
168
+ labelColor: PropTypes.string,
169
+ /**
170
+ * Text area description
171
+ */
172
+ description: PropTypes.string,
173
+ /**
174
+ * Whether the text area should be disabled
175
+ */
176
+ disabled: PropTypes.bool,
177
+ /**
178
+ * Whether the input is optional or not
179
+ */
180
+ optional: PropTypes.bool,
181
+ /**
182
+ * The resize property of the text area
183
+ */
184
+ resize: PropTypes.oneOf(['none', 'both', 'horizontal', 'vertical'])
185
+ };
186
+ EditorInput.defaultProps = {
187
+ rows: 10,
188
+ disabled: false,
189
+ color: 'paragraph',
190
+ resize: 'vertical'
191
+ };
192
+ export default /*#__PURE__*/memo(EditorInput);