@pingux/astro 1.2.1 → 1.3.2-alpha.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 +38 -0
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +8 -2
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +5 -2
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +8 -3
- 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/CheckboxField/CheckboxField.js +4 -1
- package/lib/cjs/components/CodeView/CodeView.js +3 -3
- package/lib/cjs/components/Input/Input.js +3 -11
- package/lib/cjs/components/Input/Input.test.js +14 -2
- package/lib/cjs/components/ListView/ListView.stories.js +3 -0
- 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 +11 -66
- package/lib/cjs/components/MultivaluesField/MultivaluesField.js +20 -10
- package/lib/cjs/components/MultivaluesField/MultivaluesField.test.js +74 -0
- 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/NumberField/NumberField.js +30 -10
- package/lib/cjs/components/NumberField/NumberField.test.js +7 -0
- package/lib/cjs/components/PageHeader/PageHeader.js +3 -0
- package/lib/cjs/components/PageHeader/PageHeader.stories.js +6 -1
- package/lib/cjs/components/RadioGroupField/RadioGroupField.js +9 -5
- package/lib/cjs/components/SelectField/SelectField.stories.js +3 -55
- package/lib/cjs/components/SelectFieldBase/SelectFieldBase.js +8 -1
- package/lib/cjs/components/Tabs/Tabs.stories.js +1 -15
- package/lib/cjs/context/NavBarContext/index.js +20 -0
- package/lib/cjs/hooks/index.js +9 -0
- package/lib/cjs/hooks/useField/useField.js +2 -2
- package/lib/cjs/hooks/useNavBarPress/index.js +18 -0
- package/lib/cjs/hooks/useNavBarPress/useNavBarPress.js +38 -0
- package/lib/cjs/hooks/useNavBarPress/useNavBarPress.test.js +42 -0
- package/lib/cjs/index.js +80 -58
- package/lib/cjs/styles/forms/checkbox.js +0 -1
- package/lib/cjs/styles/forms/input.js +1 -1
- package/lib/cjs/styles/forms/label.js +3 -0
- package/lib/cjs/styles/forms/radio.js +1 -1
- package/lib/cjs/styles/forms/switch.js +3 -1
- package/lib/cjs/styles/variants/accordion.js +39 -7
- package/lib/cjs/styles/variants/boxes.js +5 -25
- package/lib/cjs/styles/variants/buttons.js +7 -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 +7 -2
- package/lib/components/AccordionGridItem/AccordionGridItemBody.js +4 -2
- package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +9 -4
- 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/CheckboxField/CheckboxField.js +4 -1
- package/lib/components/CodeView/CodeView.js +2 -2
- package/lib/components/Input/Input.js +2 -10
- package/lib/components/Input/Input.test.js +11 -2
- package/lib/components/ListView/ListView.stories.js +3 -0
- package/lib/components/Loader/Loader.stories.js +1 -1
- package/lib/components/Modal/Modal.js +4 -1
- package/lib/components/Modal/Modal.stories.js +10 -59
- package/lib/components/MultivaluesField/MultivaluesField.js +19 -9
- package/lib/components/MultivaluesField/MultivaluesField.test.js +52 -0
- 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/NumberField/NumberField.js +32 -12
- package/lib/components/NumberField/NumberField.test.js +5 -0
- package/lib/components/PageHeader/PageHeader.js +2 -0
- package/lib/components/PageHeader/PageHeader.stories.js +5 -1
- package/lib/components/RadioGroupField/RadioGroupField.js +9 -5
- package/lib/components/SelectField/SelectField.stories.js +2 -50
- package/lib/components/SelectFieldBase/SelectFieldBase.js +8 -1
- package/lib/components/Tabs/Tabs.stories.js +0 -11
- package/lib/context/NavBarContext/index.js +5 -0
- package/lib/hooks/index.js +1 -0
- package/lib/hooks/useField/useField.js +2 -2
- 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/index.js +2 -0
- package/lib/styles/forms/checkbox.js +0 -1
- package/lib/styles/forms/input.js +1 -1
- package/lib/styles/forms/label.js +3 -0
- package/lib/styles/forms/radio.js +1 -1
- package/lib/styles/forms/switch.js +3 -1
- package/lib/styles/variants/accordion.js +26 -5
- package/lib/styles/variants/boxes.js +5 -25
- package/lib/styles/variants/buttons.js +7 -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 +3 -1
- package/lib/cjs/layouts/ListLayout.stories.js +0 -895
- package/lib/cjs/layouts/SchemaFormLayout.stories.js +0 -139
- package/lib/cjs/recipes/ArrayField.stories.js +0 -169
- package/lib/layouts/ListLayout.stories.js +0 -866
- package/lib/layouts/SchemaFormLayout.stories.js +0 -107
- package/lib/recipes/ArrayField.stories.js +0 -134
@@ -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"));
|
@@ -105,7 +105,10 @@ var CheckboxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
105
105
|
}, fieldLabelProps), (0, _react2.jsx)(_Checkbox["default"], (0, _extends2["default"])({
|
106
106
|
ref: checkboxRef
|
107
107
|
}, fieldControlProps)), label), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
|
108
|
-
status: status
|
108
|
+
status: status,
|
109
|
+
sx: {
|
110
|
+
pt: 7
|
111
|
+
}
|
109
112
|
}, helperText));
|
110
113
|
});
|
111
114
|
CheckboxField.propTypes = {
|
@@ -50,12 +50,12 @@ var _utils = require("@react-aria/utils");
|
|
50
50
|
|
51
51
|
var _prismReactRenderer = _interopRequireWildcard(require("prism-react-renderer"));
|
52
52
|
|
53
|
-
var _github = _interopRequireDefault(require("prism-react-renderer/themes/github"));
|
54
|
-
|
55
53
|
var _hooks = require("../../hooks");
|
56
54
|
|
57
55
|
var _ = require("../..");
|
58
56
|
|
57
|
+
var _codeView = _interopRequireDefault(require("../../styles/variants/codeView"));
|
58
|
+
|
59
59
|
var _react2 = require("@emotion/react");
|
60
60
|
|
61
61
|
function ownKeys(object, enumerableOnly) { var keys = (0, _keys["default"])(object); if (_getOwnPropertySymbols["default"]) { var symbols = (0, _getOwnPropertySymbols["default"])(object); if (enumerableOnly) symbols = (0, _filter["default"])(symbols).call(symbols, function (sym) { return (0, _getOwnPropertyDescriptor["default"])(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
@@ -96,7 +96,7 @@ var CodeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
96
96
|
};
|
97
97
|
|
98
98
|
var content = (0, _react2.jsx)(_prismReactRenderer["default"], (0, _extends2["default"])({}, _prismReactRenderer.defaultProps, {
|
99
|
-
theme:
|
99
|
+
theme: _codeView["default"].theme,
|
100
100
|
code: (children === null || children === void 0 ? void 0 : (0, _trim["default"])(children).call(children)) || '',
|
101
101
|
language: language
|
102
102
|
}), function (_ref) {
|
@@ -14,6 +14,8 @@ exports["default"] = void 0;
|
|
14
14
|
|
15
15
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
16
16
|
|
17
|
+
var _isInteger = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/number/is-integer"));
|
18
|
+
|
17
19
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
18
20
|
|
19
21
|
var _react = _interopRequireWildcard(require("react"));
|
@@ -22,8 +24,6 @@ var _themeUi = require("theme-ui");
|
|
22
24
|
|
23
25
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
24
26
|
|
25
|
-
var _hooks = require("../../hooks");
|
26
|
-
|
27
27
|
var _isValidPositiveInt = _interopRequireDefault(require("../../utils/devUtils/props/isValidPositiveInt"));
|
28
28
|
|
29
29
|
var _react2 = require("@emotion/react");
|
@@ -41,19 +41,11 @@ var Input = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
41
41
|
placeholder = props.placeholder,
|
42
42
|
maxLength = props.maxLength,
|
43
43
|
others = (0, _objectWithoutProperties2["default"])(props, ["name", "placeholder", "maxLength"]);
|
44
|
-
var ariaLabel = props['aria-label'] || name;
|
45
|
-
(0, _hooks.useAriaLabelWarning)('Input', ariaLabel || placeholder);
|
46
|
-
|
47
|
-
if (!ariaLabel && !placeholder) {
|
48
|
-
ariaLabel = 'Input';
|
49
|
-
}
|
50
|
-
|
51
44
|
return (0, _react2.jsx)(_themeUi.Input, (0, _extends2["default"])({
|
52
|
-
"aria-label": ariaLabel,
|
53
45
|
ref: ref,
|
54
46
|
name: name,
|
55
47
|
placeholder: placeholder,
|
56
|
-
maxLength: maxLength
|
48
|
+
maxLength: (0, _isInteger["default"])(maxLength) && maxLength > 0 ? maxLength : undefined
|
57
49
|
}, others));
|
58
50
|
});
|
59
51
|
Input.displayName = 'Input';
|
@@ -18,7 +18,8 @@ var _react3 = require("@emotion/react");
|
|
18
18
|
|
19
19
|
var testId = 'test-input';
|
20
20
|
var defaultProps = {
|
21
|
-
'data-testid': testId
|
21
|
+
'data-testid': testId,
|
22
|
+
'aria-label': 'My Input'
|
22
23
|
};
|
23
24
|
|
24
25
|
var getComponent = function getComponent() {
|
@@ -56,7 +57,7 @@ test('maxlength field with a set maxlength', function () {
|
|
56
57
|
|
57
58
|
expect(input.value.length).toBe(3);
|
58
59
|
});
|
59
|
-
test('maxlength field set as
|
60
|
+
test('maxlength field is not set as null', function () {
|
60
61
|
getComponent({
|
61
62
|
maxLength: null
|
62
63
|
});
|
@@ -65,5 +66,16 @@ test('maxlength field set as a negative number or zero', function () {
|
|
65
66
|
|
66
67
|
_userEvent["default"].type(input, 'banana');
|
67
68
|
|
69
|
+
expect(input.value.length).toBe(6);
|
70
|
+
});
|
71
|
+
test('maxlength field is not set as zero', function () {
|
72
|
+
getComponent({
|
73
|
+
maxLength: 0
|
74
|
+
});
|
75
|
+
|
76
|
+
var input = _react2.screen.getByTestId(testId);
|
77
|
+
|
78
|
+
_userEvent["default"].type(input, 'banana');
|
79
|
+
|
68
80
|
expect(input.value.length).toBe(6);
|
69
81
|
});
|
@@ -773,6 +773,9 @@ InfiniteLoadingList.parameters = {
|
|
773
773
|
description: {
|
774
774
|
story: 'Note: Keep in mind the maxHeight may impact when the scroll callback is triggered. If you notice it\'s being called too often, try adjusting that value or loading more objects to prevent this behavior.'
|
775
775
|
}
|
776
|
+
},
|
777
|
+
chromatic: {
|
778
|
+
delay: 5000
|
776
779
|
}
|
777
780
|
};
|
778
781
|
|
@@ -8,7 +8,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
9
9
|
});
|
10
10
|
|
11
|
-
exports.
|
11
|
+
exports.CustomColor = exports.Default = exports["default"] = void 0;
|
12
12
|
|
13
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
14
14
|
|
@@ -54,10 +54,10 @@ var Default = function Default(args) {
|
|
54
54
|
|
55
55
|
exports.Default = Default;
|
56
56
|
|
57
|
-
var
|
57
|
+
var CustomColor = function CustomColor() {
|
58
58
|
return (0, _react2.jsx)(_["default"], {
|
59
59
|
color: "neutral.60"
|
60
60
|
});
|
61
61
|
};
|
62
62
|
|
63
|
-
exports.
|
63
|
+
exports.CustomColor = CustomColor;
|
@@ -121,6 +121,9 @@ var Modal = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
121
121
|
}),
|
122
122
|
classNames = _useStatusClasses.classNames;
|
123
123
|
|
124
|
+
(0, _hooks.useDeprecationWarning)('The "dark" variant for Modal will be deprecated in Astro-UI 2.0.0.', {
|
125
|
+
isActive: others.variant === 'modal.dark'
|
126
|
+
});
|
124
127
|
return (0, _react2.jsx)(_overlays.OverlayContainer, null, (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
125
128
|
className: classNames,
|
126
129
|
variant: "modal.container"
|
@@ -1,7 +1,5 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard");
|
4
|
-
|
5
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
6
4
|
|
7
5
|
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
@@ -10,13 +8,11 @@ _Object$defineProperty(exports, "__esModule", {
|
|
10
8
|
value: true
|
11
9
|
});
|
12
10
|
|
13
|
-
exports.
|
11
|
+
exports.Default = exports["default"] = void 0;
|
14
12
|
|
15
13
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
16
14
|
|
17
|
-
var
|
18
|
-
|
19
|
-
var _react = _interopRequireWildcard(require("react"));
|
15
|
+
var _react = _interopRequireDefault(require("react"));
|
20
16
|
|
21
17
|
var _hooks = require("../../hooks");
|
22
18
|
|
@@ -32,7 +28,7 @@ var _default = {
|
|
32
28
|
control: {
|
33
29
|
type: 'text'
|
34
30
|
},
|
35
|
-
defaultValue: '
|
31
|
+
defaultValue: 'Continue'
|
36
32
|
},
|
37
33
|
role: {},
|
38
34
|
id: {
|
@@ -40,7 +36,9 @@ var _default = {
|
|
40
36
|
type: 'text'
|
41
37
|
}
|
42
38
|
},
|
43
|
-
hasCloseButton: {
|
39
|
+
hasCloseButton: {
|
40
|
+
defaultValue: true
|
41
|
+
},
|
44
42
|
isClosedOnBlur: {},
|
45
43
|
isDismissable: {},
|
46
44
|
isKeyboardDismissDisabled: {},
|
@@ -90,16 +88,6 @@ exports["default"] = _default;
|
|
90
88
|
|
91
89
|
var Default = function Default(args) {
|
92
90
|
var state = (0, _hooks.useModalState)();
|
93
|
-
|
94
|
-
var _useState = (0, _react.useState)(''),
|
95
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
96
|
-
inputValue = _useState2[0],
|
97
|
-
setInputValue = _useState2[1];
|
98
|
-
|
99
|
-
var onTextFieldChange = (0, _react.useCallback)(function (_ref) {
|
100
|
-
var value = _ref.target.value;
|
101
|
-
setInputValue(value.toUpperCase());
|
102
|
-
}, []);
|
103
91
|
return (// Application must be wrapped in an OverlayProvider so that it can be hidden from screen
|
104
92
|
// readers when an overlay opens.
|
105
93
|
(0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.Button, {
|
@@ -110,59 +98,16 @@ var Default = function Default(args) {
|
|
110
98
|
onClose: state.close
|
111
99
|
}), (0, _react2.jsx)(_index.Text, {
|
112
100
|
pt: "lg"
|
113
|
-
}, "
|
114
|
-
pt: "lg"
|
115
|
-
}, "Type the word DELETE to confirm deletion of this group"), (0, _react2.jsx)(_index.TextField, {
|
116
|
-
value: inputValue,
|
117
|
-
onChange: onTextFieldChange,
|
118
|
-
"aria-label": "user input"
|
119
|
-
}), (0, _react2.jsx)(_index.Box, {
|
120
|
-
isRow: true,
|
121
|
-
pt: "lg",
|
122
|
-
mr: "auto"
|
123
|
-
}, (0, _react2.jsx)(_index.Button, {
|
124
|
-
variant: "critical",
|
125
|
-
onPress: state.close,
|
126
|
-
mr: "md",
|
127
|
-
isDisabled: Boolean(inputValue !== 'DELETE'),
|
128
|
-
"aria-label": "Delete"
|
129
|
-
}, "Delete"), (0, _react2.jsx)(_index.Button, {
|
130
|
-
onPress: state.close,
|
131
|
-
"aria-label": "Cancel"
|
132
|
-
}, "Cancel"))))
|
133
|
-
);
|
134
|
-
};
|
135
|
-
|
136
|
-
exports.Default = Default;
|
137
|
-
|
138
|
-
var DarkVariant = function DarkVariant() {
|
139
|
-
var state = (0, _hooks.useModalState)();
|
140
|
-
return (// Application must be wrapped in an OverlayProvider so that it can be hidden from screen
|
141
|
-
// readers when a modal opens.
|
142
|
-
(0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.Button, {
|
143
|
-
onPress: state.open,
|
144
|
-
"aria-label": "Open modal"
|
145
|
-
}, "Open Modal"), state.isOpen && (0, _react2.jsx)(_index.Modal, {
|
146
|
-
variant: "modal.dark",
|
147
|
-
title: "Question",
|
148
|
-
isOpen: state.isOpen,
|
149
|
-
onClose: state.close,
|
150
|
-
isDismissable: true,
|
151
|
-
hasCloseButton: true
|
152
|
-
}, (0, _react2.jsx)(_index.Text, {
|
153
|
-
variant: "subtitle",
|
154
|
-
color: "white",
|
155
|
-
pt: "lg"
|
156
|
-
}, "Would you ever really just click a button?"), (0, _react2.jsx)(_index.Box, {
|
101
|
+
}, "Do you want to continue with this action that you\u2018re performing?"), (0, _react2.jsx)(_index.Box, {
|
157
102
|
isRow: true,
|
158
103
|
pt: "lg",
|
159
104
|
mr: "auto"
|
160
105
|
}, (0, _react2.jsx)(_index.Button, {
|
161
106
|
variant: "primary",
|
162
|
-
mr: "md",
|
163
107
|
onPress: state.close,
|
164
|
-
|
165
|
-
|
108
|
+
mr: "md",
|
109
|
+
"aria-label": "Continue"
|
110
|
+
}, "Continue"), (0, _react2.jsx)(_index.Button, {
|
166
111
|
variant: "link",
|
167
112
|
onPress: state.close,
|
168
113
|
"aria-label": "Cancel"
|
@@ -170,4 +115,4 @@ var DarkVariant = function DarkVariant() {
|
|
170
115
|
);
|
171
116
|
};
|
172
117
|
|
173
|
-
exports.
|
118
|
+
exports.Default = Default;
|
@@ -60,8 +60,6 @@ var _overlays = require("@react-aria/overlays");
|
|
60
60
|
|
61
61
|
var _utils = require("@react-aria/utils");
|
62
62
|
|
63
|
-
var _uuid = require("uuid");
|
64
|
-
|
65
63
|
var _ = require("../..");
|
66
64
|
|
67
65
|
var _ListBox = _interopRequireDefault(require("../ListBox"));
|
@@ -94,6 +92,7 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
94
92
|
disabledKeys = _props$disabledKeys === void 0 ? [] : _props$disabledKeys,
|
95
93
|
hasAutoFocus = props.hasAutoFocus,
|
96
94
|
hasNoStatusIndicator = props.hasNoStatusIndicator,
|
95
|
+
customInputProps = props.inputProps,
|
97
96
|
isDisabled = props.isDisabled,
|
98
97
|
isNotFlippable = props.isNotFlippable,
|
99
98
|
isReadOnly = props.isReadOnly,
|
@@ -261,13 +260,17 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
261
260
|
} else if (hasCustomValue) {
|
262
261
|
var _context3;
|
263
262
|
|
264
|
-
var
|
265
|
-
|
266
|
-
selectionManager.
|
263
|
+
var _key2 = e.target.value;
|
264
|
+
|
265
|
+
if (state.selectionManager.isSelected(_key2)) {
|
266
|
+
return;
|
267
|
+
}
|
268
|
+
|
269
|
+
selectionManager.toggleSelection(_key2);
|
267
270
|
setCustomItems((0, _concat["default"])(_context3 = []).call(_context3, customItems, [{
|
268
|
-
id:
|
269
|
-
key:
|
270
|
-
name:
|
271
|
+
id: _key2,
|
272
|
+
key: _key2,
|
273
|
+
name: _key2
|
271
274
|
}]));
|
272
275
|
setFilterString('');
|
273
276
|
}
|
@@ -359,7 +362,8 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
359
362
|
})), (0, _react2.jsx)(_overlays.DismissButton, {
|
360
363
|
onDismiss: close
|
361
364
|
}));
|
362
|
-
|
365
|
+
|
366
|
+
var inputProps = _objectSpread(_objectSpread({}, customInputProps), {}, {
|
363
367
|
controlProps: {
|
364
368
|
'aria-expanded': isOpen,
|
365
369
|
role: 'combobox'
|
@@ -375,7 +379,8 @@ var MultivaluesField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
375
379
|
ref: inputRef,
|
376
380
|
variant: 'forms.input.multivaluesWrapper'
|
377
381
|
}
|
378
|
-
};
|
382
|
+
});
|
383
|
+
|
379
384
|
return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.TextField, (0, _extends2["default"])({
|
380
385
|
onBlur: function onBlur(e) {
|
381
386
|
setIsOpen(false);
|
@@ -425,6 +430,11 @@ MultivaluesField.propTypes = {
|
|
425
430
|
/** Whether the field has a status indicator. */
|
426
431
|
hasNoStatusIndicator: _propTypes["default"].bool,
|
427
432
|
|
433
|
+
/**
|
434
|
+
* Props that get passed as-is to the underlying TextField element
|
435
|
+
*/
|
436
|
+
inputProps: _propTypes["default"].shape({}),
|
437
|
+
|
428
438
|
/** Whether the input is disabled. */
|
429
439
|
isDisabled: _propTypes["default"].bool,
|
430
440
|
|