@pingux/astro 1.0.0-alpha.9 → 1.1.0-alpha.10
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 +257 -0
- package/README.md +5 -0
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +4 -11
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -0
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +1 -1
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +1 -1
- package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +33 -1
- package/lib/cjs/components/AccordionItem/AccordionItem.js +5 -4
- package/lib/cjs/components/Button/Button.js +6 -26
- package/lib/cjs/components/Button/Button.stories.js +7 -12
- package/lib/cjs/components/Button/Button.test.js +2 -25
- package/lib/cjs/components/Chip/Chip.js +26 -10
- package/lib/cjs/components/Chip/Chip.stories.js +44 -5
- package/lib/cjs/components/Chip/Chip.test.js +9 -0
- package/lib/cjs/components/{DropdownField/index.js → Chip/ChipContext.js} +8 -7
- package/lib/cjs/components/ColorField/ColorField.js +1 -0
- package/lib/cjs/components/ComboBoxField/ComboBoxField.js +7 -0
- package/lib/cjs/components/ComboBoxField/ComboBoxField.stories.js +25 -1
- package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +44 -0
- package/lib/cjs/components/FileInputField/FileItem.js +2 -1
- package/lib/cjs/components/IconButton/IconButton.js +17 -7
- package/lib/cjs/components/IconButton/IconButton.stories.js +8 -17
- package/lib/cjs/components/IconButton/IconButton.test.js +4 -6
- package/lib/cjs/components/ImageUploadField/ImagePreviewButton.js +2 -1
- package/lib/cjs/components/List/List.js +3 -0
- package/lib/cjs/components/List/List.stories.js +7 -2
- package/lib/cjs/components/ListBox/ListBox.js +3 -6
- package/lib/cjs/components/ListBox/ListBox.test.js +2 -0
- package/lib/cjs/components/ListBox/Option.js +6 -0
- package/lib/cjs/components/ListItem/ListItem.stories.js +0 -2
- package/lib/cjs/components/ListView/ListView.js +4 -3
- package/lib/cjs/components/ListView/ListView.stories.js +580 -39
- package/lib/cjs/components/ListViewItem/ListViewItem.js +3 -6
- package/lib/cjs/components/Messages/Message.js +2 -2
- package/lib/cjs/components/MultivaluesField/MultivaluesField.js +3 -2
- package/lib/cjs/components/OverlayPanel/OverlayPanel.stories.js +15 -14
- package/lib/cjs/components/PopoverContainer/PopoverContainer.test.js +15 -0
- package/lib/cjs/components/Stepper/Stepper.js +1 -0
- package/lib/cjs/components/Tab/Tab.js +5 -3
- package/lib/cjs/components/Tabs/Tabs.js +3 -0
- package/lib/cjs/components/Tabs/Tabs.stories.js +3 -4
- package/lib/cjs/components/Tabs/Tabs.test.js +44 -15
- package/lib/cjs/components/TextArea/TextArea.js +5 -1
- package/lib/cjs/components/TextAreaField/TextAreaField.test.js +10 -0
- package/lib/cjs/components/TooltipTrigger/TooltipTrigger.stories.js +45 -2
- package/lib/cjs/index.js +48 -136
- package/lib/cjs/layouts/ListLayout.stories.js +2 -1
- package/lib/cjs/layouts/SchemaFormLayout.stories.js +2 -21
- package/lib/cjs/recipes/ArrayField.stories.js +3 -3
- package/lib/cjs/styles/forms/input.js +4 -0
- package/lib/cjs/styles/theme.js +0 -3
- package/lib/cjs/styles/variants/accordion.js +7 -9
- package/lib/cjs/styles/variants/boxes.js +22 -19
- package/lib/cjs/styles/variants/buttons.js +48 -29
- package/lib/cjs/styles/variants/variants.js +0 -3
- package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +4 -11
- package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +23 -1
- package/lib/components/AccordionGridItem/AccordionGridItemBody.js +1 -1
- package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +1 -1
- package/lib/components/AccordionGroup/AccordionGroup.test.js +30 -1
- package/lib/components/AccordionItem/AccordionItem.js +6 -5
- package/lib/components/Button/Button.js +8 -26
- package/lib/components/Button/Button.stories.js +7 -11
- package/lib/components/Button/Button.test.js +2 -21
- package/lib/components/Chip/Chip.js +25 -10
- package/lib/components/Chip/Chip.stories.js +41 -5
- package/lib/components/Chip/Chip.test.js +9 -0
- package/lib/components/Chip/ChipContext.js +3 -0
- package/lib/components/ColorField/ColorField.js +1 -0
- package/lib/components/ComboBoxField/ComboBoxField.js +7 -0
- package/lib/components/ComboBoxField/ComboBoxField.stories.js +21 -0
- package/lib/components/ComboBoxField/ComboBoxField.test.js +35 -0
- package/lib/components/FileInputField/FileItem.js +2 -1
- package/lib/components/IconButton/IconButton.js +17 -9
- package/lib/components/IconButton/IconButton.stories.js +7 -13
- package/lib/components/IconButton/IconButton.test.js +4 -6
- package/lib/components/ImageUploadField/ImagePreviewButton.js +2 -1
- package/lib/components/List/List.js +2 -0
- package/lib/components/List/List.stories.js +6 -2
- package/lib/components/ListBox/ListBox.js +3 -5
- package/lib/components/ListBox/ListBox.test.js +2 -0
- package/lib/components/ListBox/Option.js +6 -0
- package/lib/components/ListItem/ListItem.stories.js +0 -2
- package/lib/components/ListView/ListView.js +4 -3
- package/lib/components/ListView/ListView.stories.js +577 -39
- package/lib/components/ListViewItem/ListViewItem.js +3 -5
- package/lib/components/Messages/Message.js +2 -2
- package/lib/components/MultivaluesField/MultivaluesField.js +3 -2
- package/lib/components/OverlayPanel/OverlayPanel.stories.js +7 -5
- package/lib/components/PopoverContainer/PopoverContainer.test.js +16 -1
- package/lib/components/Stepper/Stepper.js +1 -0
- package/lib/components/Tab/Tab.js +5 -3
- package/lib/components/Tabs/Tabs.js +3 -0
- package/lib/components/Tabs/Tabs.stories.js +3 -4
- package/lib/components/Tabs/Tabs.test.js +40 -15
- package/lib/components/TextArea/TextArea.js +5 -1
- package/lib/components/TextAreaField/TextAreaField.test.js +8 -0
- package/lib/components/TooltipTrigger/TooltipTrigger.stories.js +33 -1
- package/lib/index.js +0 -8
- package/lib/layouts/ListLayout.stories.js +2 -1
- package/lib/layouts/SchemaFormLayout.stories.js +2 -19
- package/lib/recipes/ArrayField.stories.js +3 -3
- package/lib/styles/forms/input.js +4 -0
- package/lib/styles/theme.js +0 -3
- package/lib/styles/variants/accordion.js +7 -9
- package/lib/styles/variants/boxes.js +21 -19
- package/lib/styles/variants/buttons.js +47 -29
- package/lib/styles/variants/variants.js +0 -2
- package/package.json +1 -1
- package/lib/cjs/components/Dropdown/Dropdown.js +0 -112
- package/lib/cjs/components/Dropdown/Dropdown.test.js +0 -80
- package/lib/cjs/components/Dropdown/index.js +0 -18
- package/lib/cjs/components/DropdownField/DropdownField.js +0 -187
- package/lib/cjs/components/DropdownField/DropdownField.stories.js +0 -278
- package/lib/cjs/components/DropdownField/DropdownField.test.js +0 -80
- package/lib/cjs/components/Panel/Panel.js +0 -101
- package/lib/cjs/components/Panel/Panel.stories.js +0 -57
- package/lib/cjs/components/Panel/Panel.test.js +0 -72
- package/lib/cjs/components/Panel/index.js +0 -18
- package/lib/cjs/components/Popover/Popover.js +0 -87
- package/lib/cjs/components/Popover/Popover.stories.js +0 -80
- package/lib/cjs/components/Popover/Popover.test.js +0 -91
- package/lib/cjs/components/Popover/index.js +0 -18
- package/lib/cjs/recipes/InputBoxWithLinkedChip.stories.js +0 -67
- package/lib/cjs/styles/variants/popover.js +0 -86
- package/lib/components/Dropdown/Dropdown.js +0 -90
- package/lib/components/Dropdown/Dropdown.test.js +0 -62
- package/lib/components/Dropdown/index.js +0 -1
- package/lib/components/DropdownField/DropdownField.js +0 -155
- package/lib/components/DropdownField/DropdownField.stories.js +0 -222
- package/lib/components/DropdownField/DropdownField.test.js +0 -60
- package/lib/components/DropdownField/index.js +0 -1
- package/lib/components/Panel/Panel.js +0 -71
- package/lib/components/Panel/Panel.stories.js +0 -35
- package/lib/components/Panel/Panel.test.js +0 -52
- package/lib/components/Panel/index.js +0 -1
- package/lib/components/Popover/Popover.js +0 -65
- package/lib/components/Popover/Popover.stories.js +0 -52
- package/lib/components/Popover/Popover.test.js +0 -75
- package/lib/components/Popover/index.js +0 -2
- package/lib/recipes/InputBoxWithLinkedChip.stories.js +0 -43
- package/lib/styles/variants/popover.js +0 -76
@@ -18,6 +18,8 @@ var _react = _interopRequireDefault(require("react"));
|
|
18
18
|
|
19
19
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
20
20
|
|
21
|
+
var _ChipContext = require("./ChipContext");
|
22
|
+
|
21
23
|
var _Box = _interopRequireDefault(require("../Box/Box"));
|
22
24
|
|
23
25
|
var _Text = _interopRequireDefault(require("../Text/Text"));
|
@@ -32,21 +34,31 @@ var _react2 = require("@emotion/react");
|
|
32
34
|
* available [props from Theme-UI](https://theme-ui.com/sx-prop).
|
33
35
|
*/
|
34
36
|
var Chip = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
35
|
-
var
|
37
|
+
var bg = props.bg,
|
38
|
+
children = props.children,
|
36
39
|
textColor = props.textColor,
|
37
40
|
textProps = props.textProps,
|
38
|
-
label = props.label
|
39
|
-
|
41
|
+
label = props.label,
|
42
|
+
isUppercase = props.isUppercase;
|
43
|
+
return (0, _react2.jsx)(_ChipContext.ChipContext.Provider, {
|
44
|
+
value: {
|
45
|
+
bg: bg
|
46
|
+
}
|
47
|
+
}, (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
40
48
|
isRow: true,
|
41
49
|
variant: "boxes.chip",
|
50
|
+
sx: isUppercase && {
|
51
|
+
paddingBottom: '3px'
|
52
|
+
},
|
42
53
|
ref: ref
|
43
54
|
}, props), (0, _react2.jsx)(_Text["default"], (0, _extends2["default"])({
|
44
55
|
variant: "label",
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
56
|
+
color: textColor,
|
57
|
+
sx: isUppercase && {
|
58
|
+
textTransform: 'uppercase',
|
59
|
+
fontSize: '11px'
|
60
|
+
}
|
61
|
+
}, textProps), label), children));
|
50
62
|
});
|
51
63
|
|
52
64
|
Chip.propTypes = {
|
@@ -60,11 +72,15 @@ Chip.propTypes = {
|
|
60
72
|
label: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
61
73
|
|
62
74
|
/** Props object that is spread directly into the textfield. */
|
63
|
-
textProps: _propTypes["default"].shape({})
|
75
|
+
textProps: _propTypes["default"].shape({}),
|
76
|
+
|
77
|
+
/** When true, display chip label as uppercase. */
|
78
|
+
isUppercase: _propTypes["default"].bool
|
64
79
|
};
|
65
80
|
Chip.defaultProps = {
|
66
81
|
textColor: 'white',
|
67
|
-
bg: colors.neutral[10]
|
82
|
+
bg: colors.neutral[10],
|
83
|
+
isUppercase: false
|
68
84
|
};
|
69
85
|
var _default = Chip;
|
70
86
|
exports["default"] = _default;
|
@@ -20,9 +20,15 @@ var _react = _interopRequireDefault(require("react"));
|
|
20
20
|
|
21
21
|
var _CloseIcon = _interopRequireDefault(require("mdi-react/CloseIcon"));
|
22
22
|
|
23
|
-
var
|
23
|
+
var _ContentCopyIcon = _interopRequireDefault(require("mdi-react/ContentCopyIcon"));
|
24
24
|
|
25
|
-
var
|
25
|
+
var _EarthIcon = _interopRequireDefault(require("mdi-react/EarthIcon"));
|
26
|
+
|
27
|
+
var _Chip = _interopRequireDefault(require("../Chip"));
|
28
|
+
|
29
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
30
|
+
|
31
|
+
var _IconButton = _interopRequireDefault(require("../IconButton"));
|
26
32
|
|
27
33
|
var _colors = require("../../styles/colors.js");
|
28
34
|
|
@@ -61,6 +67,12 @@ var _default = {
|
|
61
67
|
control: {
|
62
68
|
type: 'text'
|
63
69
|
}
|
70
|
+
},
|
71
|
+
isUppercase: {
|
72
|
+
defaultValue: false,
|
73
|
+
control: {
|
74
|
+
type: 'boolean'
|
75
|
+
}
|
64
76
|
}
|
65
77
|
}
|
66
78
|
};
|
@@ -87,15 +99,42 @@ var ChipWithCustomColors = function ChipWithCustomColors() {
|
|
87
99
|
exports.ChipWithCustomColors = ChipWithCustomColors;
|
88
100
|
|
89
101
|
var ChipWithIcon = function ChipWithIcon() {
|
90
|
-
return (0, _react2.jsx)(_Chip["default"], {
|
91
|
-
label: "Chip with Icon",
|
102
|
+
return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_Chip["default"], {
|
103
|
+
label: "Chip with Icon Button",
|
92
104
|
bg: "navy"
|
105
|
+
}, (0, _react2.jsx)(_IconButton["default"], {
|
106
|
+
"aria-label": "Clear Chip with Icon Button",
|
107
|
+
variant: "inverted"
|
93
108
|
}, (0, _react2.jsx)(_Icon["default"], {
|
94
109
|
icon: _CloseIcon["default"],
|
95
110
|
ml: "xs",
|
111
|
+
size: "14px"
|
112
|
+
}))), (0, _react2.jsx)("div", {
|
113
|
+
style: {
|
114
|
+
padding: '5px'
|
115
|
+
}
|
116
|
+
}), (0, _react2.jsx)(_Chip["default"], {
|
117
|
+
label: "Chip with Icon Button"
|
118
|
+
}, (0, _react2.jsx)(_IconButton["default"], {
|
119
|
+
"aria-label": "Clear Chip with Icon Button",
|
120
|
+
variant: "inverted"
|
121
|
+
}, (0, _react2.jsx)(_Icon["default"], {
|
122
|
+
icon: _EarthIcon["default"],
|
123
|
+
ml: "xs",
|
124
|
+
size: "14px"
|
125
|
+
}))), (0, _react2.jsx)("div", {
|
126
|
+
style: {
|
127
|
+
padding: '5px'
|
128
|
+
}
|
129
|
+
}), (0, _react2.jsx)(_Chip["default"], {
|
130
|
+
label: "Chip with Icon",
|
131
|
+
bg: "green"
|
132
|
+
}, (0, _react2.jsx)(_Icon["default"], {
|
133
|
+
icon: _ContentCopyIcon["default"],
|
134
|
+
ml: "xs",
|
96
135
|
size: "14px",
|
97
136
|
color: "white"
|
98
|
-
}));
|
137
|
+
})));
|
99
138
|
};
|
100
139
|
|
101
140
|
exports.ChipWithIcon = ChipWithIcon;
|
@@ -45,4 +45,13 @@ test('renders children within Chip component', function () {
|
|
45
45
|
var mockedChildren = _react2.screen.getByRole('button');
|
46
46
|
|
47
47
|
expect(mockedChildren).toBeInTheDocument();
|
48
|
+
});
|
49
|
+
test('renders Chip component with uppercase', function () {
|
50
|
+
var label = 'uppercase';
|
51
|
+
var isUppercase = true;
|
52
|
+
getComponent({
|
53
|
+
label: label,
|
54
|
+
isUppercase: isUppercase
|
55
|
+
});
|
56
|
+
expect(_react2.screen.queryByText('uppercase')).toHaveStyleRule('text-transform', 'uppercase');
|
48
57
|
});
|
@@ -8,11 +8,12 @@ _Object$defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
9
9
|
});
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
exports.ChipContext = void 0;
|
12
|
+
|
13
|
+
var _react = _interopRequireDefault(require("react"));
|
14
|
+
|
15
|
+
var defaultValue = 'inherit';
|
16
|
+
|
17
|
+
var ChipContext = /*#__PURE__*/_react["default"].createContext(defaultValue);
|
17
18
|
|
18
|
-
|
19
|
+
exports.ChipContext = ChipContext;
|
@@ -149,6 +149,7 @@ var ColorField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
149
149
|
return (0, _concat["default"])(_context2 = (0, _concat["default"])(_context3 = (0, _concat["default"])(_context4 = "rgba(".concat(colorValue === null || colorValue === void 0 ? void 0 : colorValue.red, ", ")).call(_context4, colorValue === null || colorValue === void 0 ? void 0 : colorValue.green, ", ")).call(_context3, colorValue === null || colorValue === void 0 ? void 0 : colorValue.blue, ", ")).call(_context2, colorValue === null || colorValue === void 0 ? void 0 : colorValue.alpha, ")");
|
150
150
|
}, []);
|
151
151
|
return (0, _react2.jsx)(_index.Box, fieldContainerProps, label && (0, _react2.jsx)(_index.Label, fieldLabelProps), (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
|
152
|
+
"aria-label": "Select color",
|
152
153
|
bg: getRgbaFromState(state),
|
153
154
|
onPress: handleButtonPress,
|
154
155
|
ref: triggerRef,
|
@@ -157,6 +157,12 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
157
157
|
(0, _react.useImperativeHandle)(ref, function () {
|
158
158
|
return inputRef.current;
|
159
159
|
});
|
160
|
+
/* istanbul ignore next */
|
161
|
+
|
162
|
+
var onSelectionChangeHandler = function onSelectionChangeHandler(key) {
|
163
|
+
var newVal = key || selectedKey || '';
|
164
|
+
if (onSelectionChange) onSelectionChange(newVal);
|
165
|
+
};
|
160
166
|
|
161
167
|
var _useFilter = (0, _i18n.useFilter)({
|
162
168
|
sensitivity: 'base'
|
@@ -164,6 +170,7 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
164
170
|
contains = _useFilter.contains;
|
165
171
|
|
166
172
|
var state = (0, _combobox2.useComboBoxState)(_objectSpread(_objectSpread({}, comboBoxOptions), {}, {
|
173
|
+
onSelectionChange: hasCustomValue ? onSelectionChangeHandler : onSelectionChange,
|
167
174
|
defaultFilter: contains
|
168
175
|
}));
|
169
176
|
|
@@ -10,7 +10,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
10
10
|
value: true
|
11
11
|
});
|
12
12
|
|
13
|
-
exports.WithCustomHeight = exports.WithoutStatusIndicator = exports.Required = exports.HelperText = exports.Disabled = exports.FocusMenuTrigger = exports.DisabledKeys = exports.AllowCustomValue = exports.ControlledFiltering = exports.ControlledSelection = exports.ControlledMenu = exports.ControlledInput = exports.AsyncLoading = exports.WithSections = exports.Default = exports["default"] = void 0;
|
13
|
+
exports.WithCustomHeight = exports.WithoutStatusIndicator = exports.Required = exports.HelperText = exports.Disabled = exports.FocusMenuTrigger = exports.DisabledKeys = exports.AllowCustomValue = exports.ControlledWithCustomValue = exports.ControlledFiltering = exports.ControlledSelection = exports.ControlledMenu = exports.ControlledInput = exports.AsyncLoading = exports.WithSections = exports.Default = exports["default"] = void 0;
|
14
14
|
|
15
15
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
16
16
|
|
@@ -383,6 +383,30 @@ var ControlledFiltering = function ControlledFiltering() {
|
|
383
383
|
|
384
384
|
exports.ControlledFiltering = ControlledFiltering;
|
385
385
|
|
386
|
+
var ControlledWithCustomValue = function ControlledWithCustomValue() {
|
387
|
+
var _useState9 = (0, _react.useState)(''),
|
388
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
389
|
+
inputValue = _useState10[0],
|
390
|
+
setInputValue = _useState10[1];
|
391
|
+
|
392
|
+
return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_ComboBoxField["default"], (0, _extends2["default"])({
|
393
|
+
label: "Example label",
|
394
|
+
defaultItems: items
|
395
|
+
}, actions, {
|
396
|
+
inputValue: inputValue,
|
397
|
+
selectedKey: inputValue,
|
398
|
+
onInputChange: setInputValue,
|
399
|
+
onSelectionChange: setInputValue,
|
400
|
+
hasCustomValue: true
|
401
|
+
}), function (item) {
|
402
|
+
return (0, _react2.jsx)(_index.Item, {
|
403
|
+
key: item.name
|
404
|
+
}, item.name);
|
405
|
+
}));
|
406
|
+
};
|
407
|
+
|
408
|
+
exports.ControlledWithCustomValue = ControlledWithCustomValue;
|
409
|
+
|
386
410
|
var AllowCustomValue = function AllowCustomValue() {
|
387
411
|
return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_ComboBoxField["default"], (0, _extends2["default"])({
|
388
412
|
label: "Example label",
|
@@ -772,6 +772,50 @@ test('two listbox can not be open at the same time', function () {
|
|
772
772
|
name: 'Tango'
|
773
773
|
})).toBeInTheDocument();
|
774
774
|
});
|
775
|
+
test('should handle selecting custom option', function () {
|
776
|
+
getComponent({
|
777
|
+
hasCustomValue: true
|
778
|
+
});
|
779
|
+
|
780
|
+
var input = _testWrapper.screen.queryByRole('combobox');
|
781
|
+
|
782
|
+
expect(input).toHaveValue(''); // type something
|
783
|
+
|
784
|
+
_userEvent["default"].type(input, 'custom'); // set input value as selected
|
785
|
+
|
786
|
+
|
787
|
+
_userEvent["default"].type(input, '{enter}', {
|
788
|
+
skipClick: true
|
789
|
+
});
|
790
|
+
|
791
|
+
expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
|
792
|
+
expect(_testWrapper.screen.queryByRole('combobox')).toHaveValue('custom'); // blur input
|
793
|
+
|
794
|
+
_userEvent["default"].tab();
|
795
|
+
|
796
|
+
expect(input).toHaveValue('custom');
|
797
|
+
});
|
798
|
+
test('onSelectionChange works properly with custom value', function () {
|
799
|
+
var onSelectionChange = jest.fn();
|
800
|
+
getComponent({
|
801
|
+
hasCustomValue: true,
|
802
|
+
onSelectionChange: onSelectionChange,
|
803
|
+
onInputChange: onSelectionChange
|
804
|
+
});
|
805
|
+
|
806
|
+
var input = _testWrapper.screen.queryByRole('combobox');
|
807
|
+
|
808
|
+
expect(input).toHaveValue('');
|
809
|
+
expect(onSelectionChange).not.toHaveBeenCalled(); // Should fire when input value was typed, and enter was pressed
|
810
|
+
|
811
|
+
_userEvent["default"].type(input, 'custom{enter}');
|
812
|
+
|
813
|
+
expect(onSelectionChange).toHaveBeenCalledWith('custom'); // Should fire when input is cleared
|
814
|
+
|
815
|
+
_userEvent["default"].type(input, '{selectall}{backspace}{enter}');
|
816
|
+
|
817
|
+
expect(onSelectionChange).toHaveBeenCalledWith('');
|
818
|
+
});
|
775
819
|
test('should have no accessibility violations', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
776
820
|
var _getComponent6, container, results;
|
777
821
|
|
@@ -40,6 +40,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
40
40
|
|
41
41
|
var _themeUi = require("theme-ui");
|
42
42
|
|
43
|
+
var _button = require("@react-aria/button");
|
44
|
+
|
43
45
|
var _focus = require("@react-aria/focus");
|
44
46
|
|
45
47
|
var _interactions = require("@react-aria/interactions");
|
@@ -48,6 +50,8 @@ var _utils = require("@react-aria/utils");
|
|
48
50
|
|
49
51
|
var _hooks = require("../../hooks");
|
50
52
|
|
53
|
+
var _ChipContext = require("../Chip/ChipContext");
|
54
|
+
|
51
55
|
var _TooltipTrigger = _interopRequireWildcard(require("../TooltipTrigger"));
|
52
56
|
|
53
57
|
var _react2 = require("@emotion/react");
|
@@ -82,11 +86,12 @@ var IconButton = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
82
86
|
return buttonRef.current;
|
83
87
|
});
|
84
88
|
|
85
|
-
var
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
89
|
+
var _useButton = (0, _button.useButton)(_objectSpread({}, props), buttonRef),
|
90
|
+
buttonProps = _useButton.buttonProps,
|
91
|
+
isPressed = _useButton.isPressed;
|
92
|
+
|
93
|
+
var _useContext = (0, _react.useContext)(_ChipContext.ChipContext),
|
94
|
+
chipBg = _useContext.bg;
|
90
95
|
|
91
96
|
var _useHover = (0, _interactions.useHover)(props),
|
92
97
|
hoverProps = _useHover.hoverProps,
|
@@ -110,8 +115,13 @@ var IconButton = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
110
115
|
tabIndex: 0,
|
111
116
|
ref: buttonRef,
|
112
117
|
className: classNames,
|
113
|
-
"aria-label": ariaLabel
|
114
|
-
|
118
|
+
"aria-label": ariaLabel,
|
119
|
+
sx: chipBg && isHovered && {
|
120
|
+
'path': {
|
121
|
+
fill: chipBg
|
122
|
+
}
|
123
|
+
}
|
124
|
+
}, (0, _utils.mergeProps)(hoverProps, focusProps, buttonProps, others)), children);
|
115
125
|
|
116
126
|
if (title) {
|
117
127
|
return (0, _react2.jsx)(_TooltipTrigger["default"], {
|
@@ -8,7 +8,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
9
9
|
});
|
10
10
|
|
11
|
-
exports.Disabled = exports.WithTooltip = exports.
|
11
|
+
exports.Disabled = exports.WithTooltip = exports.Default = exports["default"] = void 0;
|
12
12
|
|
13
13
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
14
14
|
|
@@ -53,8 +53,10 @@ var _default = {
|
|
53
53
|
isDisabled: {},
|
54
54
|
variant: {
|
55
55
|
control: {
|
56
|
-
type: '
|
57
|
-
|
56
|
+
type: 'select',
|
57
|
+
options: ['iconButton', 'inverted', 'square', 'invertedSquare']
|
58
|
+
},
|
59
|
+
defaultValue: 'iconButton'
|
58
60
|
}
|
59
61
|
}
|
60
62
|
};
|
@@ -62,7 +64,7 @@ exports["default"] = _default;
|
|
62
64
|
|
63
65
|
var Default = function Default(args) {
|
64
66
|
return (0, _react2.jsx)(_["default"], (0, _extends2["default"])({
|
65
|
-
"aria-label": "
|
67
|
+
"aria-label": "default icon button"
|
66
68
|
}, args), (0, _react2.jsx)(_Icon["default"], {
|
67
69
|
icon: _CreateIcon["default"]
|
68
70
|
}));
|
@@ -70,20 +72,9 @@ var Default = function Default(args) {
|
|
70
72
|
|
71
73
|
exports.Default = Default;
|
72
74
|
|
73
|
-
var Inverted = function Inverted() {
|
74
|
-
return (0, _react2.jsx)(_["default"], {
|
75
|
-
"aria-label": "my-label",
|
76
|
-
variant: "inverted"
|
77
|
-
}, (0, _react2.jsx)(_Icon["default"], {
|
78
|
-
icon: _CreateIcon["default"]
|
79
|
-
}));
|
80
|
-
};
|
81
|
-
|
82
|
-
exports.Inverted = Inverted;
|
83
|
-
|
84
75
|
var WithTooltip = function WithTooltip() {
|
85
76
|
return (0, _react2.jsx)(_["default"], {
|
86
|
-
"aria-label": "
|
77
|
+
"aria-label": "icon button with tooltip",
|
87
78
|
title: "Edit"
|
88
79
|
}, (0, _react2.jsx)(_Icon["default"], {
|
89
80
|
icon: _CreateIcon["default"]
|
@@ -94,7 +85,7 @@ exports.WithTooltip = WithTooltip;
|
|
94
85
|
|
95
86
|
var Disabled = function Disabled() {
|
96
87
|
return (0, _react2.jsx)(_["default"], {
|
97
|
-
"aria-label": "
|
88
|
+
"aria-label": "disabled icon button",
|
98
89
|
isDisabled: true
|
99
90
|
}, (0, _react2.jsx)(_Icon["default"], {
|
100
91
|
icon: _CreateIcon["default"]
|
@@ -29,7 +29,8 @@ var Icon = function Icon(props) {
|
|
29
29
|
var testId = 'test-button';
|
30
30
|
var defaultProps = {
|
31
31
|
'data-testid': testId,
|
32
|
-
icon: Icon
|
32
|
+
icon: Icon,
|
33
|
+
'aria-label': 'Create'
|
33
34
|
};
|
34
35
|
|
35
36
|
var getComponent = function getComponent() {
|
@@ -46,7 +47,6 @@ test('default icon button', function () {
|
|
46
47
|
|
47
48
|
expect(button).toHaveAttribute('data-testid', testId);
|
48
49
|
expect(button).toBeInstanceOf(HTMLButtonElement);
|
49
|
-
expect(button).toHaveAttribute('tabindex', '0');
|
50
50
|
expect(button).toBeInTheDocument();
|
51
51
|
});
|
52
52
|
test('icon button hover', function () {
|
@@ -163,10 +163,8 @@ test('tooltip is not shown on hover or focus when prop is not passed', function
|
|
163
163
|
expect(_testWrapper.screen.queryByRole('tooltip')).not.toBeInTheDocument();
|
164
164
|
});
|
165
165
|
test('the button should be getting aria label attribute', function () {
|
166
|
-
var testLabel = '
|
167
|
-
getComponent(
|
168
|
-
'aria-label': testLabel
|
169
|
-
});
|
166
|
+
var testLabel = defaultProps['aria-label'];
|
167
|
+
getComponent();
|
170
168
|
expect(_testWrapper.screen.getByLabelText(testLabel)).toBeInTheDocument();
|
171
169
|
});
|
172
170
|
test('show button isDisabled status', function () {
|
@@ -113,7 +113,8 @@ var ImagePreviewButton = /*#__PURE__*/(0, _react.forwardRef)(function (props, re
|
|
113
113
|
ref: buttonRef,
|
114
114
|
variant: "imageUpload",
|
115
115
|
sx: widthHeightSx,
|
116
|
-
"data-testid": "image-preview-button"
|
116
|
+
"data-testid": "image-preview-button",
|
117
|
+
"aria-label": "Image preview"
|
117
118
|
}, (0, _utils.mergeProps)(focusProps, others)), previewImage && isImageType ? imagePreview : noImagePreview, isLoading && loadingPreview, (isHovered || isFocusVisible) && !isLoading && hoveredPreview));
|
118
119
|
});
|
119
120
|
ImagePreviewButton.propTypes = {
|
@@ -20,6 +20,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
20
20
|
|
21
21
|
var _Box = _interopRequireDefault(require("../Box/Box"));
|
22
22
|
|
23
|
+
var _hooks = require("../../hooks");
|
24
|
+
|
23
25
|
var _react2 = require("@emotion/react");
|
24
26
|
|
25
27
|
/**
|
@@ -29,6 +31,7 @@ var _react2 = require("@emotion/react");
|
|
29
31
|
var List = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
30
32
|
var children = props.children,
|
31
33
|
others = (0, _objectWithoutProperties2["default"])(props, ["children"]);
|
34
|
+
(0, _hooks.useDeprecationWarning)('The List component will be deprecated in Astro-UI 2.0.0, use ListView instead.');
|
32
35
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
33
36
|
ref: ref,
|
34
37
|
role: "list",
|
@@ -20,11 +20,16 @@ var _Text = _interopRequireDefault(require("../Text"));
|
|
20
20
|
|
21
21
|
var _Separator = _interopRequireDefault(require("../Separator"));
|
22
22
|
|
23
|
+
var _withDeprecationWarning = _interopRequireDefault(require("../../utils/devUtils/decorators/withDeprecationWarning"));
|
24
|
+
|
23
25
|
var _react2 = require("@emotion/react");
|
24
26
|
|
25
27
|
var _default = {
|
26
|
-
title: 'List',
|
27
|
-
component: [_["default"], _ListItem["default"]]
|
28
|
+
title: 'Deprecated/List',
|
29
|
+
component: [_["default"], _ListItem["default"]],
|
30
|
+
decorators: [function (Story, context) {
|
31
|
+
return (0, _withDeprecationWarning["default"])(Story, context, 'The `List` component will be deprecated in Astro-UI 2.0.0, use `ListView` instead.');
|
32
|
+
}]
|
28
33
|
};
|
29
34
|
exports["default"] = _default;
|
30
35
|
|
@@ -55,8 +55,6 @@ var _ListBoxContext = require("./ListBoxContext");
|
|
55
55
|
|
56
56
|
var _index = require("./index.js");
|
57
57
|
|
58
|
-
var _hooks = require("../../hooks");
|
59
|
-
|
60
58
|
var _isIterable = require("../../utils/devUtils/props/isIterable");
|
61
59
|
|
62
60
|
var _Loader = _interopRequireDefault(require("../Loader"));
|
@@ -120,12 +118,11 @@ var ListBox = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
120
118
|
selectedKeys = props.selectedKeys,
|
121
119
|
selectionMode = props.selectionMode,
|
122
120
|
state = props.state,
|
121
|
+
ariaLabel = props['aria-label'],
|
123
122
|
ariaLabelledby = props['aria-labelledby'],
|
124
123
|
ariaDescribedby = props['aria-describedby'],
|
125
124
|
ariaDetails = props['aria-details'],
|
126
|
-
others = (0, _objectWithoutProperties2["default"])(props, ["defaultSelectedKeys", "disabledKeys", "hasAutoFocus", "hasFocusWrap", "hasNoEmptySelection", "hasVirtualFocus", "id", "isLoading", "isFocusedOnHover", "isSelectedOnPressUp", "isVirtualized", "items", "keyboardDelegate", "label", "onLoadMore", "onScroll", "onSelectionChange", "renderEmptyState", "selectedKeys", "selectionMode", "state", "aria-labelledby", "aria-describedby", "aria-details"]);
|
127
|
-
var ariaLabel = props['aria-label'];
|
128
|
-
(0, _hooks.useAriaLabelWarning)('ListBox', ariaLabel);
|
125
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["defaultSelectedKeys", "disabledKeys", "hasAutoFocus", "hasFocusWrap", "hasNoEmptySelection", "hasVirtualFocus", "id", "isLoading", "isFocusedOnHover", "isSelectedOnPressUp", "isVirtualized", "items", "keyboardDelegate", "label", "onLoadMore", "onScroll", "onSelectionChange", "renderEmptyState", "selectedKeys", "selectionMode", "state", "aria-label", "aria-labelledby", "aria-describedby", "aria-details"]);
|
129
126
|
var focusStrategy = state.focusStrategy; // Object matching React Aria API with all options
|
130
127
|
|
131
128
|
var listBoxOptions = {
|
@@ -149,7 +146,7 @@ var ListBox = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
149
146
|
shouldFocusWrap: hasFocusWrap,
|
150
147
|
shouldSelectOnPressUp: isSelectedOnPressUp,
|
151
148
|
shouldUseVirtualFocus: hasVirtualFocus,
|
152
|
-
'aria-label': ariaLabel
|
149
|
+
'aria-label': ariaLabel,
|
153
150
|
'aria-labelledby': ariaLabelledby,
|
154
151
|
'aria-describedby': ariaDescribedby,
|
155
152
|
'aria-details': ariaDetails
|
@@ -44,11 +44,13 @@ var itemsWithSections = [{
|
|
44
44
|
}];
|
45
45
|
var defaultProps = {
|
46
46
|
'data-testid': testId,
|
47
|
+
'aria-label': 'listbox',
|
47
48
|
'aria-labelledby': 'label',
|
48
49
|
items: items
|
49
50
|
};
|
50
51
|
var defaultWithSectionsProps = {
|
51
52
|
'data-testid': testId,
|
53
|
+
'aria-label': 'listbox',
|
52
54
|
'aria-labelledby': 'label',
|
53
55
|
items: itemsWithSections
|
54
56
|
};
|
@@ -96,7 +96,13 @@ var Option = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
96
96
|
isSelected: isSelected
|
97
97
|
}),
|
98
98
|
classNames = _useStatusClasses.classNames;
|
99
|
+
/* Related to UIP-4992
|
100
|
+
* Need to remove these properties to avoid errors in the console on the external app.
|
101
|
+
* By the way, these properties return "undefined", so it shouldn't create issues */
|
99
102
|
|
103
|
+
|
104
|
+
delete optionProps.onPressStart;
|
105
|
+
delete optionProps.onPressUp;
|
100
106
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
101
107
|
as: "li",
|
102
108
|
isRow: true,
|
@@ -56,7 +56,6 @@ var Default = function Default(args) {
|
|
56
56
|
isRow: true,
|
57
57
|
alignSelf: "center"
|
58
58
|
}, (0, _react2.jsx)(_IconButton["default"], {
|
59
|
-
variant: "icon",
|
60
59
|
size: 26
|
61
60
|
}, (0, _react2.jsx)(_Icon["default"], {
|
62
61
|
icon: _MoreVertIcon["default"],
|
@@ -91,7 +90,6 @@ var WithSubtitle = function WithSubtitle(args) {
|
|
91
90
|
isRow: true,
|
92
91
|
alignSelf: "center"
|
93
92
|
}, (0, _react2.jsx)(_IconButton["default"], {
|
94
|
-
variant: "icon",
|
95
93
|
size: 26
|
96
94
|
}, (0, _react2.jsx)(_Icon["default"], {
|
97
95
|
icon: _MoreVertIcon["default"],
|
@@ -81,18 +81,19 @@ var collectionTypes = {
|
|
81
81
|
exports.collectionTypes = collectionTypes;
|
82
82
|
|
83
83
|
function useListLayout(state) {
|
84
|
+
var ROW_HEIGHT = 81;
|
84
85
|
var collator = (0, _i18n.useCollator)({
|
85
86
|
usage: 'search',
|
86
87
|
sensitivity: 'base'
|
87
88
|
});
|
88
89
|
var layout = (0, _react.useMemo)(function () {
|
89
90
|
return new _layout.ListLayout({
|
90
|
-
estimatedRowHeight:
|
91
|
+
estimatedRowHeight: ROW_HEIGHT,
|
91
92
|
estimatedHeadingHeight: 26,
|
92
93
|
paddingRight: 4,
|
93
94
|
paddingLeft: 4,
|
94
|
-
loaderHeight:
|
95
|
-
placeholderHeight:
|
95
|
+
loaderHeight: ROW_HEIGHT,
|
96
|
+
placeholderHeight: ROW_HEIGHT,
|
96
97
|
collator: collator
|
97
98
|
});
|
98
99
|
}, [collator]);
|