@pingux/astro 1.2.0-alpha.8 → 1.3.0
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/CHANGELOG.md +64 -0
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +35 -22
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +148 -169
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +25 -30
- package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +29 -14
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +8 -5
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +20 -17
- package/lib/cjs/components/AccordionGroup/AccordionGroup.js +2 -1
- package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +20 -1
- package/lib/cjs/components/ArrayField/ArrayField.js +213 -0
- package/lib/cjs/components/ArrayField/ArrayField.stories.js +223 -0
- package/lib/cjs/components/ArrayField/ArrayField.test.js +208 -0
- package/lib/cjs/components/ArrayField/ArrayFieldDeleteButton.js +61 -0
- package/lib/cjs/components/ArrayField/index.js +27 -0
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
- package/lib/cjs/components/Button/Button.js +14 -2
- package/lib/cjs/components/Button/Button.stories.js +33 -33
- package/lib/cjs/components/CodeView/CodeView.js +3 -3
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
- package/lib/cjs/components/Link/Link.js +2 -1
- package/lib/cjs/components/ListView/ListView.js +9 -13
- package/lib/cjs/components/ListView/ListView.stories.js +3 -0
- package/lib/cjs/components/ListViewItem/ListViewItem.js +15 -3
- package/lib/cjs/components/Loader/Loader.stories.js +3 -3
- package/lib/cjs/components/Modal/Modal.js +3 -0
- package/lib/cjs/components/Modal/Modal.stories.js +12 -67
- package/lib/cjs/components/NavBar/NavBar.js +30 -4
- package/lib/cjs/components/NavBar/NavBar.stories.js +70 -463
- package/lib/cjs/components/NavBar/NavBar.test.js +51 -1
- package/lib/cjs/components/NavBarSection/NavBarItem.js +137 -0
- package/lib/cjs/components/NavBarSection/NavBarItemButton.js +96 -0
- package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +1 -1
- package/lib/cjs/components/NavBarSection/NavBarItemLink.js +98 -0
- package/lib/cjs/components/NavBarSection/NavBarSection.js +10 -8
- package/lib/cjs/components/NavBarSection/index.js +28 -1
- package/lib/cjs/components/OverlayPanel/OverlayPanel.js +2 -16
- package/lib/cjs/components/OverlayPanel/OverlayPanel.test.js +44 -0
- package/lib/cjs/components/RockerButton/RockerButton.js +14 -22
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.stories.js +4 -22
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -14
- package/lib/cjs/components/SearchField/SearchField.stories.js +1 -15
- package/lib/cjs/components/SelectFieldBase/SelectFieldBase.js +8 -1
- package/lib/cjs/components/TextAreaField/TextAreaField.js +54 -9
- package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +31 -52
- package/lib/cjs/components/TextAreaField/TextAreaField.test.js +12 -0
- package/lib/cjs/context/AccordionGridContext/index.js +20 -0
- package/lib/cjs/context/NavBarContext/index.js +20 -0
- package/lib/cjs/hooks/index.js +9 -0
- package/lib/cjs/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
- package/lib/cjs/hooks/useField/useField.js +5 -0
- package/lib/cjs/{components/AccordionGridGroup/AccordionGridContext.js → hooks/useNavBarPress/index.js} +7 -6
- package/lib/cjs/hooks/useNavBarPress/useNavBarPress.js +38 -0
- package/lib/cjs/hooks/useNavBarPress/useNavBarPress.test.js +42 -0
- package/lib/cjs/hooks/useRockerButton/useRockerButton.js +4 -6
- package/lib/cjs/index.js +80 -58
- package/lib/cjs/layouts/ListLayout.stories.js +6 -6
- package/lib/cjs/recipes/ConditionalFilter.stories.js +7 -3
- package/lib/cjs/recipes/RadioButtonsWithLinks.stories.js +1 -1
- package/lib/cjs/styles/variants/accordion.js +39 -7
- package/lib/cjs/styles/variants/boxes.js +10 -24
- package/lib/cjs/styles/variants/buttons.js +27 -1
- package/lib/cjs/styles/variants/codeView.js +91 -0
- package/lib/cjs/styles/variants/navBar.js +68 -0
- package/lib/cjs/styles/variants/separator.js +2 -1
- package/lib/cjs/styles/variants/text.js +3 -1
- package/lib/cjs/styles/variants/variants.js +3 -0
- package/lib/components/AccordionGridGroup/AccordionGridGroup.js +35 -22
- package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +143 -166
- package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -25
- package/lib/components/AccordionGridItem/AccordionGridItem.js +29 -15
- package/lib/components/AccordionGridItem/AccordionGridItemBody.js +8 -6
- package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +22 -18
- package/lib/components/AccordionGroup/AccordionGroup.js +2 -1
- package/lib/components/AccordionGroup/AccordionGroup.test.js +16 -2
- package/lib/components/ArrayField/ArrayField.js +179 -0
- package/lib/components/ArrayField/ArrayField.stories.js +196 -0
- package/lib/components/ArrayField/ArrayField.test.js +185 -0
- package/lib/components/ArrayField/ArrayFieldDeleteButton.js +43 -0
- package/lib/components/ArrayField/index.js +2 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
- package/lib/components/Button/Button.js +15 -3
- package/lib/components/Button/Button.stories.js +17 -15
- package/lib/components/CodeView/CodeView.js +2 -2
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
- package/lib/components/Link/Link.js +2 -1
- package/lib/components/ListView/ListView.js +9 -12
- package/lib/components/ListView/ListView.stories.js +3 -0
- package/lib/components/ListViewItem/ListViewItem.js +14 -3
- package/lib/components/Loader/Loader.stories.js +1 -1
- package/lib/components/Modal/Modal.js +4 -1
- package/lib/components/Modal/Modal.stories.js +11 -60
- package/lib/components/NavBar/NavBar.js +25 -4
- package/lib/components/NavBar/NavBar.stories.js +71 -462
- package/lib/components/NavBar/NavBar.test.js +39 -2
- package/lib/components/NavBarSection/NavBarItem.js +111 -0
- package/lib/components/NavBarSection/NavBarItemButton.js +69 -0
- package/lib/components/NavBarSection/NavBarItemHeader.js +1 -1
- package/lib/components/NavBarSection/NavBarItemLink.js +71 -0
- package/lib/components/NavBarSection/NavBarSection.js +9 -8
- package/lib/components/NavBarSection/index.js +4 -1
- package/lib/components/OverlayPanel/OverlayPanel.js +3 -16
- package/lib/components/OverlayPanel/OverlayPanel.test.js +38 -0
- package/lib/components/RockerButton/RockerButton.js +14 -21
- package/lib/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
- package/lib/components/RockerButtonGroup/RockerButtonGroup.stories.js +2 -17
- package/lib/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -11
- package/lib/components/SearchField/SearchField.stories.js +0 -11
- package/lib/components/SelectFieldBase/SelectFieldBase.js +8 -1
- package/lib/components/TextAreaField/TextAreaField.js +54 -10
- package/lib/components/TextAreaField/TextAreaField.stories.js +26 -42
- package/lib/components/TextAreaField/TextAreaField.test.js +13 -0
- package/lib/context/AccordionGridContext/index.js +5 -0
- package/lib/context/NavBarContext/index.js +5 -0
- package/lib/hooks/index.js +1 -0
- package/lib/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
- package/lib/hooks/useField/useField.js +5 -0
- package/lib/hooks/useNavBarPress/index.js +1 -0
- package/lib/hooks/useNavBarPress/useNavBarPress.js +27 -0
- package/lib/hooks/useNavBarPress/useNavBarPress.test.js +36 -0
- package/lib/hooks/useRockerButton/useRockerButton.js +4 -6
- package/lib/index.js +2 -0
- package/lib/layouts/ListLayout.stories.js +6 -6
- package/lib/recipes/ConditionalFilter.stories.js +7 -3
- package/lib/recipes/RadioButtonsWithLinks.stories.js +1 -1
- package/lib/styles/variants/accordion.js +26 -5
- package/lib/styles/variants/boxes.js +10 -24
- package/lib/styles/variants/buttons.js +27 -1
- package/lib/styles/variants/codeView.js +91 -0
- package/lib/styles/variants/navBar.js +46 -0
- package/lib/styles/variants/separator.js +2 -1
- package/lib/styles/variants/text.js +3 -1
- package/lib/styles/variants/variants.js +2 -0
- package/package.json +5 -3
- package/lib/cjs/recipes/ArrayField.stories.js +0 -169
- package/lib/components/AccordionGridGroup/AccordionGridContext.js +0 -2
- package/lib/recipes/ArrayField.stories.js +0 -134
@@ -0,0 +1,223 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
|
7
|
+
_Object$defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
|
11
|
+
exports.Controlled = exports.Uncontrolled = exports["default"] = void 0;
|
12
|
+
|
13
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
14
|
+
|
15
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
16
|
+
|
17
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
18
|
+
|
19
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
20
|
+
|
21
|
+
var _react = _interopRequireDefault(require("react"));
|
22
|
+
|
23
|
+
var _overlays = require("@react-aria/overlays");
|
24
|
+
|
25
|
+
var _uuid = require("uuid");
|
26
|
+
|
27
|
+
var _index = require("../../index");
|
28
|
+
|
29
|
+
var _react2 = require("@emotion/react");
|
30
|
+
|
31
|
+
var _default = {
|
32
|
+
title: 'Form/ArrayField',
|
33
|
+
parameters: {
|
34
|
+
actions: {
|
35
|
+
argTypesRegex: '^on.*'
|
36
|
+
},
|
37
|
+
docs: {
|
38
|
+
source: {
|
39
|
+
type: 'code'
|
40
|
+
}
|
41
|
+
}
|
42
|
+
},
|
43
|
+
argTypes: {
|
44
|
+
label: {
|
45
|
+
defaultValue: 'Array field label',
|
46
|
+
control: {
|
47
|
+
type: 'text'
|
48
|
+
}
|
49
|
+
},
|
50
|
+
helperText: {
|
51
|
+
defaultValue: 'Helper text info...',
|
52
|
+
control: {
|
53
|
+
type: 'text'
|
54
|
+
}
|
55
|
+
},
|
56
|
+
addButtonLabel: {
|
57
|
+
defaultValue: '+ Add field',
|
58
|
+
control: {
|
59
|
+
type: 'text'
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
};
|
64
|
+
exports["default"] = _default;
|
65
|
+
var defaultData = [{
|
66
|
+
id: (0, _uuid.v4)(),
|
67
|
+
value: 'Hello'
|
68
|
+
}, {
|
69
|
+
id: (0, _uuid.v4)(),
|
70
|
+
value: 'World'
|
71
|
+
}];
|
72
|
+
|
73
|
+
var Uncontrolled = function Uncontrolled(_ref) {
|
74
|
+
var args = (0, _extends2["default"])({}, _ref);
|
75
|
+
return (0, _react2.jsx)(_index.ArrayField, (0, _extends2["default"])({
|
76
|
+
defaultValue: defaultData,
|
77
|
+
renderField: function renderField(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps) {
|
78
|
+
return (0, _react2.jsx)(_index.TextField, (0, _extends2["default"])({
|
79
|
+
"aria-label": "Text field",
|
80
|
+
value: fieldValue,
|
81
|
+
onChange: function onChange(e) {
|
82
|
+
return onFieldValueChange(e, id);
|
83
|
+
},
|
84
|
+
mr: "xs",
|
85
|
+
slots: {
|
86
|
+
inContainer: (0, _react2.jsx)(_index.ArrayFieldDeleteButton, {
|
87
|
+
isDisabled: isDisabled,
|
88
|
+
onDelete: function onDelete() {
|
89
|
+
return onFieldDelete(id);
|
90
|
+
}
|
91
|
+
})
|
92
|
+
}
|
93
|
+
}, otherFieldProps));
|
94
|
+
},
|
95
|
+
sx: {
|
96
|
+
width: '400px'
|
97
|
+
}
|
98
|
+
}, args));
|
99
|
+
};
|
100
|
+
|
101
|
+
exports.Uncontrolled = Uncontrolled;
|
102
|
+
|
103
|
+
var Controlled = function Controlled() {
|
104
|
+
var defaultDataSelectField = [{
|
105
|
+
id: (0, _uuid.v4)(),
|
106
|
+
fieldValue: 'red',
|
107
|
+
onComponentRender: function onComponentRender(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps) {
|
108
|
+
return (0, _react2.jsx)(_overlays.OverlayProvider, null, (0, _react2.jsx)(_index.SelectField, (0, _extends2["default"])({
|
109
|
+
defaultSelectedKey: fieldValue,
|
110
|
+
onSelectionChange: function onSelectionChange(e) {
|
111
|
+
return onFieldValueChange(e, id);
|
112
|
+
},
|
113
|
+
width: "100%",
|
114
|
+
slots: {
|
115
|
+
inContainer: (0, _react2.jsx)(_index.ArrayFieldDeleteButton, {
|
116
|
+
isDisabled: isDisabled,
|
117
|
+
onDelete: function onDelete() {
|
118
|
+
return onFieldDelete(id);
|
119
|
+
}
|
120
|
+
})
|
121
|
+
}
|
122
|
+
}, otherFieldProps), (0, _react2.jsx)(_index.Item, {
|
123
|
+
key: "red"
|
124
|
+
}, "Red"), (0, _react2.jsx)(_index.Item, {
|
125
|
+
key: "blue"
|
126
|
+
}, "Blue"), (0, _react2.jsx)(_index.Item, {
|
127
|
+
key: "yellow"
|
128
|
+
}, "Yellow")));
|
129
|
+
}
|
130
|
+
}, {
|
131
|
+
id: (0, _uuid.v4)(),
|
132
|
+
fieldValue: 'black',
|
133
|
+
onComponentRender: function onComponentRender(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps) {
|
134
|
+
return (0, _react2.jsx)(_overlays.OverlayProvider, null, (0, _react2.jsx)(_index.SelectField, (0, _extends2["default"])({
|
135
|
+
defaultSelectedKey: fieldValue,
|
136
|
+
onSelectionChange: function onSelectionChange(key) {
|
137
|
+
return onFieldValueChange(key, id);
|
138
|
+
},
|
139
|
+
width: "100%",
|
140
|
+
slots: {
|
141
|
+
inContainer: (0, _react2.jsx)(_index.ArrayFieldDeleteButton, {
|
142
|
+
isDisabled: isDisabled,
|
143
|
+
onDelete: function onDelete() {
|
144
|
+
return onFieldDelete(id);
|
145
|
+
}
|
146
|
+
})
|
147
|
+
}
|
148
|
+
}, otherFieldProps), (0, _react2.jsx)(_index.Item, {
|
149
|
+
key: "orange"
|
150
|
+
}, "Orange"), (0, _react2.jsx)(_index.Item, {
|
151
|
+
key: "purple"
|
152
|
+
}, "Purple"), (0, _react2.jsx)(_index.Item, {
|
153
|
+
key: "black"
|
154
|
+
}, "Black")));
|
155
|
+
}
|
156
|
+
}];
|
157
|
+
var defaultEmptyField = {
|
158
|
+
id: (0, _uuid.v4)(),
|
159
|
+
fieldValue: 'blue',
|
160
|
+
onComponentRender: function onComponentRender(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps) {
|
161
|
+
return (0, _react2.jsx)(_overlays.OverlayProvider, null, (0, _react2.jsx)(_index.SelectField, (0, _extends2["default"])({
|
162
|
+
defaultSelectedKey: fieldValue,
|
163
|
+
onSelectionChange: function onSelectionChange(e) {
|
164
|
+
return onFieldValueChange(e, id);
|
165
|
+
},
|
166
|
+
width: "100%",
|
167
|
+
slots: {
|
168
|
+
inContainer: (0, _react2.jsx)(_index.ArrayFieldDeleteButton, {
|
169
|
+
isDisabled: isDisabled,
|
170
|
+
onDelete: function onDelete() {
|
171
|
+
return onFieldDelete(id);
|
172
|
+
}
|
173
|
+
})
|
174
|
+
}
|
175
|
+
}, otherFieldProps), (0, _react2.jsx)(_index.Item, {
|
176
|
+
key: "blue"
|
177
|
+
}, "Blue"), (0, _react2.jsx)(_index.Item, {
|
178
|
+
key: "teal"
|
179
|
+
}, "Teal"), (0, _react2.jsx)(_index.Item, {
|
180
|
+
key: "turquoise"
|
181
|
+
}, "Turquoise")));
|
182
|
+
}
|
183
|
+
};
|
184
|
+
|
185
|
+
var _React$useState = _react["default"].useState(defaultDataSelectField),
|
186
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
187
|
+
fieldValues = _React$useState2[0],
|
188
|
+
setFieldValues = _React$useState2[1];
|
189
|
+
|
190
|
+
function handleOnChange(values) {
|
191
|
+
setFieldValues(values);
|
192
|
+
}
|
193
|
+
|
194
|
+
function handleOnAdd() {
|
195
|
+
setFieldValues(function (oldValues) {
|
196
|
+
var _context;
|
197
|
+
|
198
|
+
return (0, _concat["default"])(_context = []).call(_context, oldValues, [defaultEmptyField]);
|
199
|
+
});
|
200
|
+
}
|
201
|
+
|
202
|
+
function handleOnDelete(fieldId) {
|
203
|
+
setFieldValues(function (oldValues) {
|
204
|
+
return (0, _filter["default"])(oldValues).call(oldValues, function (_ref2) {
|
205
|
+
var id = _ref2.id;
|
206
|
+
return id !== fieldId;
|
207
|
+
});
|
208
|
+
});
|
209
|
+
}
|
210
|
+
|
211
|
+
return (0, _react2.jsx)(_index.ArrayField, {
|
212
|
+
value: fieldValues,
|
213
|
+
helperText: "Here is some helpful text...",
|
214
|
+
onAdd: handleOnAdd,
|
215
|
+
onChange: handleOnChange,
|
216
|
+
onDelete: handleOnDelete,
|
217
|
+
sx: {
|
218
|
+
width: '400px'
|
219
|
+
}
|
220
|
+
});
|
221
|
+
};
|
222
|
+
|
223
|
+
exports.Controlled = Controlled;
|
@@ -0,0 +1,208 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
6
|
+
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
8
|
+
|
9
|
+
var _ArrayField = _interopRequireDefault(require("./ArrayField"));
|
10
|
+
|
11
|
+
var _ArrayFieldDeleteButton = _interopRequireDefault(require("./ArrayFieldDeleteButton"));
|
12
|
+
|
13
|
+
var _TextField = _interopRequireDefault(require("../TextField"));
|
14
|
+
|
15
|
+
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
16
|
+
|
17
|
+
var _react2 = require("@emotion/react");
|
18
|
+
|
19
|
+
jest.mock('uuid', function () {
|
20
|
+
return {
|
21
|
+
v4: function v4() {
|
22
|
+
return 'testid';
|
23
|
+
}
|
24
|
+
};
|
25
|
+
});
|
26
|
+
var defaultData = [{
|
27
|
+
id: '1',
|
28
|
+
value: 'Hello'
|
29
|
+
}, {
|
30
|
+
id: '2',
|
31
|
+
value: 'World'
|
32
|
+
}];
|
33
|
+
var defaultProps = {
|
34
|
+
defaultValue: defaultData
|
35
|
+
};
|
36
|
+
|
37
|
+
var getComponent = function getComponent() {
|
38
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
39
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_ArrayField["default"], (0, _extends2["default"])({}, defaultProps, props)));
|
40
|
+
};
|
41
|
+
|
42
|
+
var renderField = function renderField(id, value, onFieldValueChange, onFieldDelete, otherFieldProps) {
|
43
|
+
return (0, _react2.jsx)(_TextField["default"], (0, _extends2["default"])({
|
44
|
+
label: "Text field",
|
45
|
+
value: value,
|
46
|
+
onChange: function onChange(e) {
|
47
|
+
return onFieldValueChange(e, id);
|
48
|
+
},
|
49
|
+
mr: "xs",
|
50
|
+
slots: {
|
51
|
+
inContainer: (0, _react2.jsx)(_ArrayFieldDeleteButton["default"], {
|
52
|
+
isDisabled: false,
|
53
|
+
onDelete: function onDelete() {
|
54
|
+
return onFieldDelete(id);
|
55
|
+
}
|
56
|
+
})
|
57
|
+
}
|
58
|
+
}, otherFieldProps));
|
59
|
+
};
|
60
|
+
|
61
|
+
test('displays multiple text fields', function () {
|
62
|
+
var onChange = jest.fn();
|
63
|
+
getComponent({
|
64
|
+
onChange: onChange,
|
65
|
+
renderField: renderField
|
66
|
+
});
|
67
|
+
expect(_testWrapper.screen.getAllByLabelText('Text field')).toHaveLength(2);
|
68
|
+
});
|
69
|
+
test('adds one text field and new empty field is added', function () {
|
70
|
+
getComponent({
|
71
|
+
renderField: renderField
|
72
|
+
});
|
73
|
+
|
74
|
+
_testWrapper.fireEvent.click(_testWrapper.screen.getByText('+ Add'));
|
75
|
+
|
76
|
+
expect(_testWrapper.screen.getAllByLabelText('Text field')).toHaveLength(3);
|
77
|
+
});
|
78
|
+
test('onAdd callback is fired when adding field', function () {
|
79
|
+
var onAdd = jest.fn();
|
80
|
+
getComponent({
|
81
|
+
onAdd: onAdd,
|
82
|
+
renderField: renderField
|
83
|
+
});
|
84
|
+
|
85
|
+
_testWrapper.fireEvent.click(_testWrapper.screen.getByText('+ Add'));
|
86
|
+
|
87
|
+
expect(onAdd).toHaveBeenCalled();
|
88
|
+
});
|
89
|
+
test('deletes one text field and only one field is left', function () {
|
90
|
+
getComponent({
|
91
|
+
renderField: renderField
|
92
|
+
});
|
93
|
+
|
94
|
+
_testWrapper.fireEvent.click(_testWrapper.screen.getAllByRole('button')[0]);
|
95
|
+
|
96
|
+
expect(_testWrapper.screen.getByLabelText('Text field')).toBeInTheDocument();
|
97
|
+
});
|
98
|
+
test('onDelete callback is fired when deleting field', function () {
|
99
|
+
var onDelete = jest.fn();
|
100
|
+
var value = defaultData;
|
101
|
+
var defaultValue = null;
|
102
|
+
getComponent({
|
103
|
+
value: value,
|
104
|
+
defaultValue: defaultValue,
|
105
|
+
onDelete: onDelete,
|
106
|
+
renderField: renderField
|
107
|
+
});
|
108
|
+
|
109
|
+
_testWrapper.fireEvent.click(_testWrapper.screen.getAllByRole('button')[0]);
|
110
|
+
|
111
|
+
expect(onDelete).toHaveBeenCalled();
|
112
|
+
});
|
113
|
+
test('Values are changed in text field', function () {
|
114
|
+
getComponent({
|
115
|
+
renderField: renderField
|
116
|
+
});
|
117
|
+
|
118
|
+
_testWrapper.fireEvent.change(_testWrapper.screen.getAllByLabelText('Text field')[0], {
|
119
|
+
target: {
|
120
|
+
value: '123'
|
121
|
+
}
|
122
|
+
});
|
123
|
+
|
124
|
+
expect(_testWrapper.screen.getByDisplayValue('123')).toBeInTheDocument();
|
125
|
+
});
|
126
|
+
test('onChange gets called when field values are changed', function () {
|
127
|
+
var onChange = jest.fn();
|
128
|
+
var value = defaultData;
|
129
|
+
var defaultValue = null;
|
130
|
+
getComponent({
|
131
|
+
value: value,
|
132
|
+
onChange: onChange,
|
133
|
+
renderField: renderField,
|
134
|
+
defaultValue: defaultValue
|
135
|
+
});
|
136
|
+
|
137
|
+
_testWrapper.fireEvent.change(_testWrapper.screen.getAllByLabelText('Text field')[0], {
|
138
|
+
target: {
|
139
|
+
value: '123'
|
140
|
+
}
|
141
|
+
});
|
142
|
+
|
143
|
+
expect(onChange).toHaveBeenNthCalledWith(1, [{
|
144
|
+
id: '1',
|
145
|
+
value: '123'
|
146
|
+
}, {
|
147
|
+
id: '2',
|
148
|
+
value: 'World'
|
149
|
+
}]);
|
150
|
+
});
|
151
|
+
test('onComponentRender displays fields correctly', function () {
|
152
|
+
var onChange = jest.fn();
|
153
|
+
var componentRenderData = [{
|
154
|
+
id: '1',
|
155
|
+
value: 'Hello',
|
156
|
+
onComponentRender: function onComponentRender(id, value, onFieldValueChange, onFieldDelete, otherFieldProps) {
|
157
|
+
return (0, _react2.jsx)(_TextField["default"], (0, _extends2["default"])({
|
158
|
+
label: "Text field",
|
159
|
+
value: value,
|
160
|
+
onChange: function onChange(e) {
|
161
|
+
return onFieldValueChange(e, id);
|
162
|
+
},
|
163
|
+
mr: "xs",
|
164
|
+
slots: {
|
165
|
+
inContainer: (0, _react2.jsx)(_ArrayFieldDeleteButton["default"], {
|
166
|
+
isDisabled: false,
|
167
|
+
onDelete: function onDelete() {
|
168
|
+
return onFieldDelete(id);
|
169
|
+
}
|
170
|
+
})
|
171
|
+
}
|
172
|
+
}, otherFieldProps));
|
173
|
+
}
|
174
|
+
}, {
|
175
|
+
id: '2',
|
176
|
+
value: 'World',
|
177
|
+
onComponentRender: function onComponentRender(id, value, onFieldValueChange, onFieldDelete, otherFieldProps) {
|
178
|
+
return (0, _react2.jsx)(_TextField["default"], (0, _extends2["default"])({
|
179
|
+
label: "Text field 2",
|
180
|
+
value: value,
|
181
|
+
onChange: function onChange(e) {
|
182
|
+
return onFieldValueChange(e, id);
|
183
|
+
},
|
184
|
+
mr: "xs",
|
185
|
+
slots: {
|
186
|
+
inContainer: (0, _react2.jsx)(_ArrayFieldDeleteButton["default"], {
|
187
|
+
isDisabled: false,
|
188
|
+
onDelete: function onDelete() {
|
189
|
+
return onFieldDelete(id);
|
190
|
+
}
|
191
|
+
})
|
192
|
+
}
|
193
|
+
}, otherFieldProps));
|
194
|
+
}
|
195
|
+
}];
|
196
|
+
(0, _testWrapper.render)((0, _react2.jsx)(_ArrayField["default"], {
|
197
|
+
defaultValue: componentRenderData,
|
198
|
+
onChange: onChange
|
199
|
+
}));
|
200
|
+
expect(_testWrapper.screen.getByLabelText('Text field')).toBeInTheDocument();
|
201
|
+
expect(_testWrapper.screen.getByLabelText('Text field 2')).toBeInTheDocument();
|
202
|
+
});
|
203
|
+
test('creates empty field when no data passed', function () {
|
204
|
+
(0, _testWrapper.render)((0, _react2.jsx)(_ArrayField["default"], {
|
205
|
+
renderField: renderField
|
206
|
+
}));
|
207
|
+
expect(_testWrapper.screen.getByLabelText('Text field')).toBeInTheDocument();
|
208
|
+
});
|
@@ -0,0 +1,61 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
|
7
|
+
_Object$defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
|
11
|
+
exports["default"] = void 0;
|
12
|
+
|
13
|
+
var _react = _interopRequireDefault(require("react"));
|
14
|
+
|
15
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
16
|
+
|
17
|
+
var _TrashIcon = _interopRequireDefault(require("mdi-react/TrashIcon"));
|
18
|
+
|
19
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
20
|
+
|
21
|
+
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
22
|
+
|
23
|
+
var _react2 = require("@emotion/react");
|
24
|
+
|
25
|
+
var ArrayFieldDeleteButton = function ArrayFieldDeleteButton(_ref) {
|
26
|
+
var label = _ref.label,
|
27
|
+
isDisabled = _ref.isDisabled,
|
28
|
+
id = _ref.id,
|
29
|
+
onDelete = _ref.onDelete;
|
30
|
+
return (0, _react2.jsx)(_IconButton["default"], {
|
31
|
+
onPress: function onPress() {
|
32
|
+
return onDelete(id);
|
33
|
+
},
|
34
|
+
isDisabled: isDisabled,
|
35
|
+
sx: {
|
36
|
+
position: 'absolute',
|
37
|
+
right: -35,
|
38
|
+
width: 32,
|
39
|
+
height: 32,
|
40
|
+
top: 5,
|
41
|
+
cursor: 'pointer'
|
42
|
+
},
|
43
|
+
title: label
|
44
|
+
}, (0, _react2.jsx)(_Icon["default"], {
|
45
|
+
icon: _TrashIcon["default"],
|
46
|
+
size: 20,
|
47
|
+
color: "neutral.40"
|
48
|
+
}));
|
49
|
+
};
|
50
|
+
|
51
|
+
ArrayFieldDeleteButton.propTypes = {
|
52
|
+
label: _propTypes["default"].string,
|
53
|
+
id: _propTypes["default"].number,
|
54
|
+
isDisabled: _propTypes["default"].bool,
|
55
|
+
onDelete: _propTypes["default"].func
|
56
|
+
};
|
57
|
+
ArrayFieldDeleteButton.defaultProps = {
|
58
|
+
label: 'Delete field'
|
59
|
+
};
|
60
|
+
var _default = ArrayFieldDeleteButton;
|
61
|
+
exports["default"] = _default;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
|
7
|
+
_Object$defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
|
11
|
+
_Object$defineProperty(exports, "default", {
|
12
|
+
enumerable: true,
|
13
|
+
get: function get() {
|
14
|
+
return _ArrayField["default"];
|
15
|
+
}
|
16
|
+
});
|
17
|
+
|
18
|
+
_Object$defineProperty(exports, "ArrayFieldDeleteButton", {
|
19
|
+
enumerable: true,
|
20
|
+
get: function get() {
|
21
|
+
return _ArrayFieldDeleteButton["default"];
|
22
|
+
}
|
23
|
+
});
|
24
|
+
|
25
|
+
var _ArrayField = _interopRequireDefault(require("./ArrayField"));
|
26
|
+
|
27
|
+
var _ArrayFieldDeleteButton = _interopRequireDefault(require("./ArrayFieldDeleteButton"));
|
@@ -63,15 +63,15 @@ var Default = function Default(args) {
|
|
63
63
|
onAction: onAction
|
64
64
|
}, args), (0, _react2.jsx)(_collections.Item, {
|
65
65
|
key: "home",
|
66
|
-
variant: "
|
66
|
+
variant: "link",
|
67
67
|
"data-id": "home"
|
68
68
|
}, "Home"), (0, _react2.jsx)(_collections.Item, {
|
69
69
|
key: "trendy",
|
70
|
-
variant: "
|
70
|
+
variant: "link",
|
71
71
|
"data-id": "trendy"
|
72
72
|
}, "Trendy"), (0, _react2.jsx)(_collections.Item, {
|
73
73
|
key: "march 2020 assets",
|
74
|
-
variant: "
|
74
|
+
variant: "link",
|
75
75
|
"data-id": "march"
|
76
76
|
}, "March 2020 Assets"));
|
77
77
|
};
|
@@ -71,7 +71,8 @@ var Button = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
71
71
|
onPressChange = props.onPressChange,
|
72
72
|
onPressUp = props.onPressUp,
|
73
73
|
children = props.children,
|
74
|
-
|
74
|
+
variant = props.variant,
|
75
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["className", "isDisabled", "isLoading", "onHoverStart", "onHoverChange", "onHoverEnd", "onPress", "onPressStart", "onPressEnd", "onPressChange", "onPressUp", "children", "variant"]);
|
75
76
|
var buttonRef = (0, _react.useRef)();
|
76
77
|
(0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
|
77
78
|
/* istanbul ignore next */
|
@@ -102,7 +103,17 @@ var Button = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
102
103
|
}),
|
103
104
|
classNames = _useStatusClasses.classNames;
|
104
105
|
|
106
|
+
(0, _hooks.useDeprecationWarning)('The "icon" variant for `Button` is deprecated in Astro-UI 1.0.0, use the `IconButton` component instead.', {
|
107
|
+
isActive: props.variant === 'icon'
|
108
|
+
});
|
109
|
+
(0, _hooks.useDeprecationWarning)('The "danger" variant for `Button` will be deprecated in Astro-UI 2.0.0, use the `critical` variant instead.', {
|
110
|
+
isActive: props.variant === 'danger'
|
111
|
+
});
|
112
|
+
(0, _hooks.useDeprecationWarning)('The "text" variant for `Button` will be deprecated in Astro-UI 2.0.0, use the `link` variant instead.', {
|
113
|
+
isActive: props.variant === 'text'
|
114
|
+
});
|
105
115
|
var ariaLabel = props['aria-label'];
|
116
|
+
(0, _hooks.useAriaLabelWarning)('Button', ariaLabel, variant === 'filter');
|
106
117
|
return (0, _react2.jsx)(_themeUi.Button, (0, _extends2["default"])({
|
107
118
|
"aria-label": ariaLabel,
|
108
119
|
ref: buttonRef,
|
@@ -113,7 +124,8 @@ var Button = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
113
124
|
display: 'flex',
|
114
125
|
justifyContent: 'center',
|
115
126
|
alignItems: 'center'
|
116
|
-
}
|
127
|
+
},
|
128
|
+
variant: variant
|
117
129
|
}, others, (0, _utils.mergeProps)(hoverProps, focusProps, buttonProps)), isLoading ? (0, _react2.jsx)("span", {
|
118
130
|
style: {
|
119
131
|
visibility: 'hidden'
|