@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.
- package/dist/cjs/f/FormInput/FormInput.js +43 -13
- package/dist/cjs/f/common/V2/Description/Description.js +76 -0
- package/dist/cjs/f/common/V2/Description/index.js +13 -0
- package/dist/cjs/f/common/V2/Description/styles.scss +10 -0
- package/dist/cjs/f/common/V2/Label/Label.js +84 -0
- package/dist/cjs/f/common/V2/Label/index.js +13 -0
- package/dist/cjs/f/common/V2/Label/styles.scss +9 -0
- package/dist/cjs/f/common/V2/index.js +19 -0
- package/dist/cjs/f/common/index.js +12 -0
- package/dist/cjs/f/fields/V2/Checkbox/Checkbox.js +122 -0
- package/dist/cjs/f/fields/V2/Checkbox/index.js +13 -0
- package/dist/cjs/f/fields/V2/Checkbox/styles.scss +16 -0
- package/dist/cjs/f/fields/V2/ChoicesInput/ChoicesInput.js +154 -0
- package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/Choice.js +104 -0
- package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/index.js +13 -0
- package/dist/cjs/f/fields/V2/ChoicesInput/common/index.js +12 -0
- package/dist/cjs/f/fields/V2/ChoicesInput/index.js +13 -0
- package/dist/cjs/f/fields/V2/ChoicesInput/styles.scss +79 -0
- package/dist/cjs/f/fields/V2/EditorInput/EditorInput.js +197 -0
- package/dist/cjs/f/fields/V2/EditorInput/common/Toolbar.js +257 -0
- package/dist/cjs/f/fields/V2/EditorInput/common/TreeViewPlugin.js +18 -0
- package/dist/cjs/f/fields/V2/EditorInput/common/index.js +20 -0
- package/dist/cjs/f/fields/V2/EditorInput/index.js +13 -0
- package/dist/cjs/f/fields/V2/EditorInput/styles.scss +149 -0
- package/dist/cjs/f/fields/V2/LinkInput/LinkInput.js +156 -0
- package/dist/cjs/f/fields/V2/LinkInput/index.js +13 -0
- package/dist/cjs/f/fields/V2/LinkInput/styles.scss +90 -0
- package/dist/cjs/f/fields/V2/QueryChoices/QueryChoices.js +137 -0
- package/dist/cjs/f/fields/V2/QueryChoices/index.js +13 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/QueryCombobox.js +229 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +236 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/index.js +13 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/Menu.js +83 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/index.js +13 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +300 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +13 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/common/index.js +26 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/index.js +13 -0
- package/dist/cjs/f/fields/V2/QueryCombobox/styles.scss +127 -0
- package/dist/cjs/f/fields/V2/QuerySelect/QuerySelect.js +198 -0
- package/dist/cjs/f/fields/V2/QuerySelect/index.js +13 -0
- package/dist/cjs/f/fields/V2/RatingsInput/RatingsInput.js +130 -0
- package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/Rating.js +117 -0
- package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/index.js +13 -0
- package/dist/cjs/f/fields/V2/RatingsInput/common/index.js +12 -0
- package/dist/cjs/f/fields/V2/RatingsInput/index.js +13 -0
- package/dist/cjs/f/fields/V2/RatingsInput/styles.scss +48 -0
- package/dist/cjs/f/fields/V2/SelectInput/SelectInput.js +154 -0
- package/dist/cjs/f/fields/V2/SelectInput/index.js +13 -0
- package/dist/cjs/f/fields/V2/SelectInput/styles.scss +87 -0
- package/dist/cjs/f/fields/V2/TextInput/TextInput.js +155 -0
- package/dist/cjs/f/fields/V2/TextInput/index.js +13 -0
- package/dist/cjs/f/fields/V2/TextInput/styles.scss +78 -0
- package/dist/cjs/f/fields/V2/TextareaInput/TextareaInput.js +152 -0
- package/dist/cjs/f/fields/V2/TextareaInput/index.js +13 -0
- package/dist/cjs/f/fields/V2/TextareaInput/styles.scss +53 -0
- package/dist/cjs/f/fields/V2/index.js +82 -0
- package/dist/cjs/f/fields/index.js +26 -1
- package/dist/es/f/FormInput/FormInput.js +33 -3
- package/dist/es/f/common/V2/Description/Description.js +68 -0
- package/dist/es/f/common/V2/Description/index.js +2 -0
- package/dist/es/f/common/V2/Description/styles.scss +10 -0
- package/dist/es/f/common/V2/Label/Label.js +76 -0
- package/dist/es/f/common/V2/Label/index.js +2 -0
- package/dist/es/f/common/V2/Label/styles.scss +9 -0
- package/dist/es/f/common/V2/index.js +2 -0
- package/dist/es/f/common/index.js +2 -1
- package/dist/es/f/fields/V2/Checkbox/Checkbox.js +114 -0
- package/dist/es/f/fields/V2/Checkbox/index.js +2 -0
- package/dist/es/f/fields/V2/Checkbox/styles.scss +16 -0
- package/dist/es/f/fields/V2/ChoicesInput/ChoicesInput.js +148 -0
- package/dist/es/f/fields/V2/ChoicesInput/common/Choice/Choice.js +97 -0
- package/dist/es/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
- package/dist/es/f/fields/V2/ChoicesInput/common/index.js +1 -0
- package/dist/es/f/fields/V2/ChoicesInput/index.js +2 -0
- package/dist/es/f/fields/V2/ChoicesInput/styles.scss +79 -0
- package/dist/es/f/fields/V2/EditorInput/EditorInput.js +192 -0
- package/dist/es/f/fields/V2/EditorInput/common/Toolbar.js +246 -0
- package/dist/es/f/fields/V2/EditorInput/common/TreeViewPlugin.js +11 -0
- package/dist/es/f/fields/V2/EditorInput/common/index.js +2 -0
- package/dist/es/f/fields/V2/EditorInput/index.js +2 -0
- package/dist/es/f/fields/V2/EditorInput/styles.scss +149 -0
- package/dist/es/f/fields/V2/LinkInput/LinkInput.js +148 -0
- package/dist/es/f/fields/V2/LinkInput/index.js +2 -0
- package/dist/es/f/fields/V2/LinkInput/styles.scss +90 -0
- package/dist/es/f/fields/V2/QueryChoices/QueryChoices.js +126 -0
- package/dist/es/f/fields/V2/QueryChoices/index.js +2 -0
- package/dist/es/f/fields/V2/QueryCombobox/QueryCombobox.js +221 -0
- package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +229 -0
- package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
- package/dist/es/f/fields/V2/QueryCombobox/common/Menu/Menu.js +73 -0
- package/dist/es/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
- package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +293 -0
- package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
- package/dist/es/f/fields/V2/QueryCombobox/common/index.js +3 -0
- package/dist/es/f/fields/V2/QueryCombobox/index.js +2 -0
- package/dist/es/f/fields/V2/QueryCombobox/styles.scss +127 -0
- package/dist/es/f/fields/V2/QuerySelect/QuerySelect.js +186 -0
- package/dist/es/f/fields/V2/QuerySelect/index.js +2 -0
- package/dist/es/f/fields/V2/RatingsInput/RatingsInput.js +124 -0
- package/dist/es/f/fields/V2/RatingsInput/common/Rating/Rating.js +109 -0
- package/dist/es/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
- package/dist/es/f/fields/V2/RatingsInput/common/index.js +1 -0
- package/dist/es/f/fields/V2/RatingsInput/index.js +2 -0
- package/dist/es/f/fields/V2/RatingsInput/styles.scss +48 -0
- package/dist/es/f/fields/V2/SelectInput/SelectInput.js +146 -0
- package/dist/es/f/fields/V2/SelectInput/index.js +2 -0
- package/dist/es/f/fields/V2/SelectInput/styles.scss +87 -0
- package/dist/es/f/fields/V2/TextInput/TextInput.js +147 -0
- package/dist/es/f/fields/V2/TextInput/index.js +2 -0
- package/dist/es/f/fields/V2/TextInput/styles.scss +78 -0
- package/dist/es/f/fields/V2/TextareaInput/TextareaInput.js +146 -0
- package/dist/es/f/fields/V2/TextareaInput/index.js +2 -0
- package/dist/es/f/fields/V2/TextareaInput/styles.scss +53 -0
- package/dist/es/f/fields/V2/index.js +11 -0
- package/dist/es/f/fields/index.js +2 -1
- package/package.json +3 -3
- package/src/stories/f/v2/Checkbox.stories.jsx +102 -0
- package/src/stories/f/v2/ChoicesInput.stories.jsx +139 -0
- package/src/stories/f/v2/EditorInput.stories.jsx +81 -0
- package/src/stories/f/v2/LinkInput.stories.jsx +93 -0
- package/src/stories/f/v2/QueryChoices.stories.jsx +144 -0
- package/src/stories/f/v2/QueryCombobox.stories.jsx +301 -0
- package/src/stories/f/v2/QuerySelect.stories.jsx +150 -0
- package/src/stories/f/v2/RatingsInput.stories.jsx +77 -0
- package/src/stories/f/v2/SelectInput.stories.jsx +95 -0
- package/src/stories/f/v2/TextInput.stories.jsx +120 -0
- package/src/stories/f/v2/TextareaInput.stories.jsx +107 -0
- package/src/stories/f/v2/__generated__/FormInputAllTaskStatusesQuery.graphql.js +122 -0
- package/src/stories/f/v2/__generated__/FormInputAllTeamsQuery.graphql.js +139 -0
- package/src/stories/f/v2/__generated__/QueryChoicesAllTaskStatusesQuery.graphql.js +122 -0
- package/src/stories/f/v2/__generated__/QueryComboboxAllTeamsQuery.graphql.js +139 -0
- package/src/stories/f/v2/__generated__/QuerySelectAllTaskStatusesQuery.graphql.js +122 -0
- package/src/ui/f/FormInput/FormInput.jsx +57 -12
- package/src/ui/f/common/V2/Description/Description.jsx +94 -0
- package/src/ui/f/common/V2/Description/index.js +2 -0
- package/src/ui/f/common/V2/Description/styles.scss +10 -0
- package/src/ui/f/common/V2/Label/Label.jsx +102 -0
- package/src/ui/f/common/V2/Label/index.js +2 -0
- package/src/ui/f/common/V2/Label/styles.scss +9 -0
- package/src/ui/f/common/V2/index.js +2 -0
- package/src/ui/f/common/index.js +1 -0
- package/src/ui/f/fields/V2/Checkbox/Checkbox.jsx +146 -0
- package/src/ui/f/fields/V2/Checkbox/index.js +2 -0
- package/src/ui/f/fields/V2/Checkbox/styles.scss +16 -0
- package/src/ui/f/fields/V2/ChoicesInput/ChoicesInput.jsx +183 -0
- package/src/ui/f/fields/V2/ChoicesInput/common/Choice/Choice.jsx +125 -0
- package/src/ui/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
- package/src/ui/f/fields/V2/ChoicesInput/common/index.js +1 -0
- package/src/ui/f/fields/V2/ChoicesInput/index.js +2 -0
- package/src/ui/f/fields/V2/ChoicesInput/styles.scss +79 -0
- package/src/ui/f/fields/V2/EditorInput/EditorInput.jsx +244 -0
- package/src/ui/f/fields/V2/EditorInput/common/Toolbar.jsx +356 -0
- package/src/ui/f/fields/V2/EditorInput/common/TreeViewPlugin.jsx +16 -0
- package/src/ui/f/fields/V2/EditorInput/common/index.jsx +2 -0
- package/src/ui/f/fields/V2/EditorInput/index.js +2 -0
- package/src/ui/f/fields/V2/EditorInput/styles.scss +149 -0
- package/src/ui/f/fields/V2/LinkInput/LinkInput.jsx +187 -0
- package/src/ui/f/fields/V2/LinkInput/index.js +2 -0
- package/src/ui/f/fields/V2/LinkInput/styles.scss +90 -0
- package/src/ui/f/fields/V2/QueryChoices/QueryChoices.jsx +153 -0
- package/src/ui/f/fields/V2/QueryChoices/index.js +2 -0
- package/src/ui/f/fields/V2/QueryCombobox/QueryCombobox.jsx +254 -0
- package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/Combobox.jsx +276 -0
- package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
- package/src/ui/f/fields/V2/QueryCombobox/common/Menu/Menu.jsx +103 -0
- package/src/ui/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
- package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +362 -0
- package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
- package/src/ui/f/fields/V2/QueryCombobox/common/index.js +3 -0
- package/src/ui/f/fields/V2/QueryCombobox/index.js +2 -0
- package/src/ui/f/fields/V2/QueryCombobox/styles.scss +127 -0
- package/src/ui/f/fields/V2/QuerySelect/QuerySelect.jsx +220 -0
- package/src/ui/f/fields/V2/QuerySelect/index.js +2 -0
- package/src/ui/f/fields/V2/RatingsInput/RatingsInput.jsx +152 -0
- package/src/ui/f/fields/V2/RatingsInput/common/Rating/Rating.jsx +142 -0
- package/src/ui/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
- package/src/ui/f/fields/V2/RatingsInput/common/index.js +1 -0
- package/src/ui/f/fields/V2/RatingsInput/index.js +2 -0
- package/src/ui/f/fields/V2/RatingsInput/styles.scss +48 -0
- package/src/ui/f/fields/V2/SelectInput/SelectInput.jsx +187 -0
- package/src/ui/f/fields/V2/SelectInput/index.js +2 -0
- package/src/ui/f/fields/V2/SelectInput/styles.scss +87 -0
- package/src/ui/f/fields/V2/TextInput/TextInput.jsx +192 -0
- package/src/ui/f/fields/V2/TextInput/index.js +2 -0
- package/src/ui/f/fields/V2/TextInput/styles.scss +78 -0
- package/src/ui/f/fields/V2/TextareaInput/TextareaInput.jsx +180 -0
- package/src/ui/f/fields/V2/TextareaInput/index.js +2 -0
- package/src/ui/f/fields/V2/TextareaInput/styles.scss +53 -0
- package/src/ui/f/fields/V2/index.js +11 -0
- package/src/ui/f/fields/index.js +1 -0
- 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,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;
|
|
@@ -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,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 @@
|
|
|
1
|
+
export { Choice } from "./Choice";
|
|
@@ -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
|
+
|