@pingux/astro 1.2.0-alpha.9 → 1.3.1
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 +81 -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/CheckboxField/CheckboxField.js +4 -1
- package/lib/cjs/components/CodeView/CodeView.js +3 -3
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
- package/lib/cjs/components/Input/Input.js +3 -11
- package/lib/cjs/components/Input/Input.test.js +14 -2
- 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/MultivaluesField/MultivaluesField.js +10 -2
- 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/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/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/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 +7 -2
- 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/recipes/ConditionalFilter.stories.js +7 -3
- package/lib/cjs/recipes/RadioButtonsWithLinks.stories.js +1 -1
- 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 +14 -25
- 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/CheckboxField/CheckboxField.js +4 -1
- package/lib/components/CodeView/CodeView.js +2 -2
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
- package/lib/components/Input/Input.js +2 -10
- package/lib/components/Input/Input.test.js +11 -2
- 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/MultivaluesField/MultivaluesField.js +9 -2
- 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/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/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/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 +7 -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/hooks/useRockerButton/useRockerButton.js +4 -6
- package/lib/index.js +2 -0
- package/lib/recipes/ConditionalFilter.stories.js +7 -3
- package/lib/recipes/RadioButtonsWithLinks.stories.js +1 -1
- 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 +14 -25
- 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 +4 -2
- 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/components/AccordionGridGroup/AccordionGridContext.js +0 -2
- package/lib/layouts/ListLayout.stories.js +0 -866
- package/lib/layouts/SchemaFormLayout.stories.js +0 -107
- package/lib/recipes/ArrayField.stories.js +0 -134
@@ -30,7 +30,7 @@ var _grid = require("@react-aria/grid");
|
|
30
30
|
|
31
31
|
var _utils = require("@react-aria/utils");
|
32
32
|
|
33
|
-
var _AccordionGridContext = require("
|
33
|
+
var _AccordionGridContext = require("../../context/AccordionGridContext");
|
34
34
|
|
35
35
|
var _Box = _interopRequireDefault(require("../Box"));
|
36
36
|
|
@@ -38,6 +38,8 @@ var _AccordionGridItemHeader = _interopRequireDefault(require("./AccordionGridIt
|
|
38
38
|
|
39
39
|
var _AccordionGridItemBody = _interopRequireDefault(require("./AccordionGridItemBody"));
|
40
40
|
|
41
|
+
var _hooks = require("../../hooks");
|
42
|
+
|
41
43
|
var _react2 = require("@emotion/react");
|
42
44
|
|
43
45
|
var AccordionGridItem = function AccordionGridItem(props) {
|
@@ -47,7 +49,8 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
47
49
|
headerProps = props.headerProps,
|
48
50
|
bodyProps = props.bodyProps,
|
49
51
|
children = props.children,
|
50
|
-
|
52
|
+
className = props.className,
|
53
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["item", "headerProps", "bodyProps", "children", "className"]);
|
51
54
|
|
52
55
|
var _React$Children$toArr = _react["default"].Children.toArray(children),
|
53
56
|
_React$Children$toArr2 = (0, _toArray2["default"])(_React$Children$toArr),
|
@@ -57,10 +60,18 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
57
60
|
|
58
61
|
var cellNode = (0, _concat["default"])(_context = []).call(_context, item.childNodes)[0];
|
59
62
|
|
60
|
-
var
|
61
|
-
state =
|
63
|
+
var _useAccordionGridCont = (0, _AccordionGridContext.useAccordionGridContext)(),
|
64
|
+
state = _useAccordionGridCont.state; // Treat first cell as a row, fixes focus and keyboard interactions
|
65
|
+
|
66
|
+
|
67
|
+
var isDisabled = state.disabledKeys.has(cellNode.key);
|
68
|
+
var isSelected = state.selectionManager.isSelected(cellNode.key); // Sync selection between the first cell and the row
|
62
69
|
|
63
|
-
|
70
|
+
(0, _react.useEffect)(function () {
|
71
|
+
if (isSelected !== state.selectionManager.isSelected(item.key)) {
|
72
|
+
state.selectionManager.toggleSelection(item.key);
|
73
|
+
}
|
74
|
+
}, [isSelected, state.selectionManager, item.key]);
|
64
75
|
var rowRef = (0, _react.useRef)();
|
65
76
|
var cellRef = (0, _react.useRef)();
|
66
77
|
var cellBodyRef = (0, _react.useRef)();
|
@@ -70,20 +81,24 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
70
81
|
}, state, rowRef),
|
71
82
|
rowProps = _useGridRow.rowProps;
|
72
83
|
|
73
|
-
var
|
74
|
-
|
75
|
-
as: "div",
|
84
|
+
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
85
|
+
isSelected: isSelected,
|
76
86
|
isDisabled: isDisabled
|
87
|
+
}),
|
88
|
+
classNames = _useStatusClasses.classNames;
|
89
|
+
|
90
|
+
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
91
|
+
as: "div"
|
77
92
|
}, (0, _utils.mergeProps)(rowProps, others), {
|
78
|
-
|
79
|
-
|
93
|
+
"aria-selected": isSelected,
|
94
|
+
className: classNames,
|
95
|
+
ref: rowRef
|
80
96
|
}), (0, _react2.jsx)(_AccordionGridItemHeader["default"], (0, _extends2["default"])({
|
81
97
|
item: item,
|
82
|
-
|
83
|
-
|
84
|
-
}, headerProps, {
|
98
|
+
ref: cellRef,
|
99
|
+
isDisabled: isDisabled,
|
85
100
|
isSelected: isSelected
|
86
|
-
}), header), (0, _react2.jsx)(_AccordionGridItemBody["default"], (0, _extends2["default"])({
|
101
|
+
}, headerProps), header), (0, _react2.jsx)(_AccordionGridItemBody["default"], (0, _extends2["default"])({
|
87
102
|
item: item,
|
88
103
|
ref: cellBodyRef,
|
89
104
|
isSelected: isSelected
|
@@ -16,6 +16,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
|
|
16
16
|
|
17
17
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
18
18
|
|
19
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
20
|
+
|
19
21
|
var _react = _interopRequireWildcard(require("react"));
|
20
22
|
|
21
23
|
var _utils = require("@react-aria/utils");
|
@@ -26,7 +28,7 @@ var _grid = require("@react-aria/grid");
|
|
26
28
|
|
27
29
|
var _interactions = require("@react-aria/interactions");
|
28
30
|
|
29
|
-
var _AccordionGridContext = require("
|
31
|
+
var _AccordionGridContext = require("../../context/AccordionGridContext");
|
30
32
|
|
31
33
|
var _Box = _interopRequireDefault(require("../Box"));
|
32
34
|
|
@@ -40,10 +42,11 @@ var AccordionGridItemBody = /*#__PURE__*/(0, _react.forwardRef)(function (props,
|
|
40
42
|
var item = props.item,
|
41
43
|
className = props.className,
|
42
44
|
children = props.children,
|
43
|
-
isSelected = props.isSelected
|
45
|
+
isSelected = props.isSelected,
|
46
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["item", "className", "children", "isSelected"]);
|
44
47
|
|
45
|
-
var
|
46
|
-
state =
|
48
|
+
var _useAccordionGridCont = (0, _AccordionGridContext.useAccordionGridContext)(),
|
49
|
+
state = _useAccordionGridCont.state;
|
47
50
|
|
48
51
|
var cellNode = (0, _concat["default"])(_context = []).call(_context, item.childNodes)[1];
|
49
52
|
|
@@ -78,7 +81,7 @@ var AccordionGridItemBody = /*#__PURE__*/(0, _react.forwardRef)(function (props,
|
|
78
81
|
isSelected: isSelected,
|
79
82
|
className: classNames,
|
80
83
|
"aria-label": ariaLabel
|
81
|
-
}), children);
|
84
|
+
}, others), children);
|
82
85
|
});
|
83
86
|
AccordionGridItemBody.propTypes = {
|
84
87
|
isSelected: _propTypes["default"].bool,
|
@@ -34,7 +34,7 @@ var _MenuDownIcon = _interopRequireDefault(require("mdi-react/MenuDownIcon"));
|
|
34
34
|
|
35
35
|
var _MenuUpIcon = _interopRequireDefault(require("mdi-react/MenuUpIcon"));
|
36
36
|
|
37
|
-
var _AccordionGridContext = require("
|
37
|
+
var _AccordionGridContext = require("../../context/AccordionGridContext");
|
38
38
|
|
39
39
|
var _Box = _interopRequireDefault(require("../Box"));
|
40
40
|
|
@@ -50,25 +50,36 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
50
50
|
var item = props.item,
|
51
51
|
className = props.className,
|
52
52
|
children = props.children,
|
53
|
-
key = props.key,
|
54
53
|
isSelected = props.isSelected,
|
55
|
-
others = (0, _objectWithoutProperties2["default"])(props, ["item", "className", "children", "
|
54
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["item", "className", "children", "isSelected"]);
|
56
55
|
|
57
|
-
var
|
58
|
-
state =
|
56
|
+
var _useAccordionGridCont = (0, _AccordionGridContext.useAccordionGridContext)(),
|
57
|
+
state = _useAccordionGridCont.state;
|
59
58
|
|
59
|
+
var cellRef = (0, _react.useRef)();
|
60
|
+
/* istanbul ignore next */
|
61
|
+
|
62
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
63
|
+
return cellRef.current;
|
64
|
+
});
|
60
65
|
var cellNode = (0, _concat["default"])(_context = []).call(_context, item.childNodes)[0];
|
61
66
|
|
62
67
|
var _useGridCell = (0, _grid.useGridCell)({
|
63
68
|
node: cellNode,
|
64
69
|
focusMode: 'cell'
|
65
|
-
}, state,
|
70
|
+
}, state, cellRef),
|
66
71
|
gridCellProps = _useGridCell.gridCellProps;
|
67
72
|
|
68
73
|
var _useHover = (0, _interactions.useHover)({}),
|
69
74
|
hoverProps = _useHover.hoverProps,
|
70
75
|
isHovered = _useHover.isHovered;
|
71
76
|
|
77
|
+
var _usePress = (0, _interactions.usePress)({
|
78
|
+
ref: cellRef
|
79
|
+
}),
|
80
|
+
pressProps = _usePress.pressProps,
|
81
|
+
isPressed = _usePress.isPressed;
|
82
|
+
|
72
83
|
var _useFocusRing = (0, _focus.useFocusRing)({
|
73
84
|
within: true
|
74
85
|
}),
|
@@ -78,14 +89,7 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
78
89
|
focusProps = _useFocusRing2.focusProps,
|
79
90
|
isFocusVisible = _useFocusRing2.isFocusVisible;
|
80
91
|
|
81
|
-
var
|
82
|
-
ref: ref,
|
83
|
-
isPressed: item.props.isPressed
|
84
|
-
}),
|
85
|
-
pressProps = _usePress.pressProps,
|
86
|
-
isPressed = _usePress.isPressed;
|
87
|
-
|
88
|
-
var mergedProps = (0, _utils.mergeProps)(gridCellProps, hoverProps, focusWithinProps, focusProps, pressProps);
|
92
|
+
var mergedProps = (0, _utils.mergeProps)(pressProps, gridCellProps, hoverProps, focusWithinProps, focusProps);
|
89
93
|
|
90
94
|
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
91
95
|
isPressed: isPressed,
|
@@ -98,9 +102,8 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
98
102
|
var ariaLabel = props['aria-label'];
|
99
103
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
100
104
|
as: "div",
|
101
|
-
ref:
|
105
|
+
ref: cellRef
|
102
106
|
}, mergedProps, {
|
103
|
-
role: "gridcell",
|
104
107
|
variant: "accordion.accordionGridHeader",
|
105
108
|
isFocused: isFocusVisible,
|
106
109
|
isSelected: isSelected,
|
@@ -123,8 +126,8 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
123
126
|
AccordionGridItemHeader.propTypes = {
|
124
127
|
'aria-label': _propTypes["default"].string,
|
125
128
|
isSelected: _propTypes["default"].bool,
|
126
|
-
key: _propTypes["default"].string,
|
127
129
|
item: _propTypes["default"].shape({
|
130
|
+
key: _propTypes["default"].string,
|
128
131
|
childNodes: _propTypes["default"].arrayOf(_propTypes["default"].shape({})),
|
129
132
|
props: _propTypes["default"].shape({
|
130
133
|
isPressed: _propTypes["default"].bool
|
@@ -57,8 +57,9 @@ var AccordionGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
57
57
|
|
58
58
|
var _useAccordion = (0, _accordion.useAccordion)(props, state, accordionRef),
|
59
59
|
accordionProps = _useAccordion.accordionProps;
|
60
|
-
/* istanbul ignore next */
|
61
60
|
|
61
|
+
delete accordionProps.onMouseDown;
|
62
|
+
/* istanbul ignore next */
|
62
63
|
|
63
64
|
(0, _react.useImperativeHandle)(ref, function () {
|
64
65
|
return accordionRef.current;
|
@@ -46,7 +46,11 @@ var getComponent = function getComponent() {
|
|
46
46
|
textValue: "Duplicate",
|
47
47
|
"data-id": "third",
|
48
48
|
label: "Accordion item"
|
49
|
-
}, (0, _react2.jsx)(
|
49
|
+
}, (0, _react2.jsx)(_index.TextField, {
|
50
|
+
role: "form",
|
51
|
+
label: "Example Label",
|
52
|
+
"data-testid": "testField"
|
53
|
+
}))));
|
50
54
|
};
|
51
55
|
|
52
56
|
var getComponentInOverlayPanel = function getComponentInOverlayPanel() {
|
@@ -280,6 +284,21 @@ test('expanded keys expands an accordion item', function () {
|
|
280
284
|
var selectedItem = buttons[0];
|
281
285
|
expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
|
282
286
|
});
|
287
|
+
test('able to click a textfield that is the rendered child of an accordion', function () {
|
288
|
+
getComponent({
|
289
|
+
expandedKeys: ['third']
|
290
|
+
});
|
291
|
+
|
292
|
+
var field = _testWrapper.screen.getByTestId('testField');
|
293
|
+
|
294
|
+
var input = _testWrapper.screen.getByRole('form');
|
295
|
+
|
296
|
+
_userEvent["default"].click(input);
|
297
|
+
|
298
|
+
_userEvent["default"].type(input, 'banana');
|
299
|
+
|
300
|
+
expect(field).toHaveClass('has-focus-within');
|
301
|
+
});
|
283
302
|
test('Item accepts a data-id and the data-id can be found in the DOM', function () {
|
284
303
|
getComponent();
|
285
304
|
|
@@ -0,0 +1,213 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard");
|
4
|
+
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
6
|
+
|
7
|
+
var _Object$defineProperty2 = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
8
|
+
|
9
|
+
_Object$defineProperty2(exports, "__esModule", {
|
10
|
+
value: true
|
11
|
+
});
|
12
|
+
|
13
|
+
exports["default"] = void 0;
|
14
|
+
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-property"));
|
16
|
+
|
17
|
+
var _defineProperties = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-properties"));
|
18
|
+
|
19
|
+
var _getOwnPropertyDescriptors = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors"));
|
20
|
+
|
21
|
+
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
|
22
|
+
|
23
|
+
var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor"));
|
24
|
+
|
25
|
+
var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
|
26
|
+
|
27
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
28
|
+
|
29
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
|
30
|
+
|
31
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
32
|
+
|
33
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
34
|
+
|
35
|
+
var _defineProperty3 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
36
|
+
|
37
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
38
|
+
|
39
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
40
|
+
|
41
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
42
|
+
|
43
|
+
var _react = _interopRequireWildcard(require("react"));
|
44
|
+
|
45
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
46
|
+
|
47
|
+
var _uuid = require("uuid");
|
48
|
+
|
49
|
+
var _Box = _interopRequireDefault(require("../Box"));
|
50
|
+
|
51
|
+
var _Button = _interopRequireDefault(require("../Button"));
|
52
|
+
|
53
|
+
var _FieldHelperText = _interopRequireDefault(require("../FieldHelperText"));
|
54
|
+
|
55
|
+
var _Text = _interopRequireDefault(require("../Text"));
|
56
|
+
|
57
|
+
var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
|
58
|
+
|
59
|
+
var _react2 = require("@emotion/react");
|
60
|
+
|
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; }
|
62
|
+
|
63
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context3; (0, _forEach["default"])(_context3 = ownKeys(Object(source), true)).call(_context3, function (key) { (0, _defineProperty3["default"])(target, key, source[key]); }); } else if (_getOwnPropertyDescriptors["default"]) { (0, _defineProperties["default"])(target, (0, _getOwnPropertyDescriptors["default"])(source)); } else { var _context4; (0, _forEach["default"])(_context4 = ownKeys(Object(source))).call(_context4, function (key) { (0, _defineProperty2["default"])(target, key, (0, _getOwnPropertyDescriptor["default"])(source, key)); }); } } return target; }
|
64
|
+
|
65
|
+
var ArrayField = function ArrayField(_ref) {
|
66
|
+
var _context2;
|
67
|
+
|
68
|
+
var addButtonLabel = _ref.addButtonLabel,
|
69
|
+
defaultValue = _ref.defaultValue,
|
70
|
+
value = _ref.value,
|
71
|
+
label = _ref.label,
|
72
|
+
helperText = _ref.helperText,
|
73
|
+
status = _ref.status,
|
74
|
+
onAdd = _ref.onAdd,
|
75
|
+
onChange = _ref.onChange,
|
76
|
+
onDelete = _ref.onDelete,
|
77
|
+
renderField = _ref.renderField,
|
78
|
+
others = (0, _objectWithoutProperties2["default"])(_ref, ["addButtonLabel", "defaultValue", "value", "label", "helperText", "status", "onAdd", "onChange", "onDelete", "renderField"]);
|
79
|
+
var isControlled = value !== undefined;
|
80
|
+
var createEmptyField = (0, _react.useCallback)(function () {
|
81
|
+
return {
|
82
|
+
id: (0, _uuid.v4)(),
|
83
|
+
value: ''
|
84
|
+
};
|
85
|
+
}, []);
|
86
|
+
|
87
|
+
var _useState = (0, _react.useState)(defaultValue || [createEmptyField()]),
|
88
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
89
|
+
fieldValues = _useState2[0],
|
90
|
+
setFieldValues = _useState2[1];
|
91
|
+
|
92
|
+
var mapArrayFieldWithNewValue = (0, _react.useCallback)(function (arrValues, newValue, fieldId) {
|
93
|
+
return (0, _map["default"])(arrValues).call(arrValues, function (fieldValue) {
|
94
|
+
if (fieldValue.id === fieldId) {
|
95
|
+
return _objectSpread(_objectSpread({}, fieldValue), {}, {
|
96
|
+
value: newValue
|
97
|
+
});
|
98
|
+
}
|
99
|
+
|
100
|
+
return fieldValue;
|
101
|
+
});
|
102
|
+
}, []);
|
103
|
+
var onFieldValueChange = (0, _react.useCallback)(function (event, fieldId) {
|
104
|
+
var tempValue = event; // Checks if value receieved is a key or event
|
105
|
+
|
106
|
+
if (typeof event !== 'string') {
|
107
|
+
tempValue = event.target.value;
|
108
|
+
}
|
109
|
+
|
110
|
+
if (isControlled) {
|
111
|
+
onChange(mapArrayFieldWithNewValue(value, tempValue, fieldId));
|
112
|
+
} else {
|
113
|
+
setFieldValues(function (oldValues) {
|
114
|
+
return mapArrayFieldWithNewValue(oldValues, tempValue, fieldId);
|
115
|
+
});
|
116
|
+
}
|
117
|
+
}, [isControlled, mapArrayFieldWithNewValue, onChange, value]);
|
118
|
+
var onFieldDelete = (0, _react.useCallback)(function (fieldId) {
|
119
|
+
if (isControlled) {
|
120
|
+
onDelete(fieldId);
|
121
|
+
} else {
|
122
|
+
setFieldValues(function (oldValues) {
|
123
|
+
return (0, _filter["default"])(oldValues).call(oldValues, function (_ref2) {
|
124
|
+
var id = _ref2.id;
|
125
|
+
return id !== fieldId;
|
126
|
+
});
|
127
|
+
});
|
128
|
+
}
|
129
|
+
}, [isControlled, onDelete]);
|
130
|
+
var onFieldAdd = (0, _react.useCallback)(function () {
|
131
|
+
if (onAdd) {
|
132
|
+
return onAdd();
|
133
|
+
}
|
134
|
+
|
135
|
+
return setFieldValues(function (oldValues) {
|
136
|
+
var _context;
|
137
|
+
|
138
|
+
return (0, _concat["default"])(_context = []).call(_context, oldValues, [createEmptyField()]);
|
139
|
+
});
|
140
|
+
}, [createEmptyField, onAdd]);
|
141
|
+
return (0, _react2.jsx)(_Box["default"], others, (0, _react2.jsx)(_Text["default"], {
|
142
|
+
variant: "label"
|
143
|
+
}, label), (0, _react2.jsx)(_Box["default"], {
|
144
|
+
as: "ul",
|
145
|
+
pl: "0"
|
146
|
+
}, (0, _map["default"])(_context2 = value || fieldValues).call(_context2, function (_ref3) {
|
147
|
+
var id = _ref3.id,
|
148
|
+
onComponentRender = _ref3.onComponentRender,
|
149
|
+
fieldValue = _ref3.fieldValue,
|
150
|
+
otherFieldProps = (0, _objectWithoutProperties2["default"])(_ref3, ["id", "onComponentRender", "fieldValue"]);
|
151
|
+
var isDisabled = (value || fieldValues).length === 1;
|
152
|
+
return (0, _react2.jsx)(_Box["default"], {
|
153
|
+
as: "li",
|
154
|
+
mb: "xs",
|
155
|
+
key: id
|
156
|
+
}, onComponentRender ? onComponentRender(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps) : renderField(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps));
|
157
|
+
})), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
|
158
|
+
status: status
|
159
|
+
}, helperText), (0, _react2.jsx)(_Button["default"], {
|
160
|
+
"aria-label": "Add field",
|
161
|
+
variant: "text",
|
162
|
+
onPress: onFieldAdd,
|
163
|
+
sx: {
|
164
|
+
width: 'fit-content'
|
165
|
+
}
|
166
|
+
}, (0, _react2.jsx)(_Text["default"], {
|
167
|
+
variant: "label",
|
168
|
+
color: "active"
|
169
|
+
}, addButtonLabel)));
|
170
|
+
};
|
171
|
+
|
172
|
+
ArrayField.propTypes = {
|
173
|
+
/** Label for add button */
|
174
|
+
addButtonLabel: _propTypes["default"].string,
|
175
|
+
|
176
|
+
/** The default value for the array input field (uncontrolled). */
|
177
|
+
defaultValue: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
178
|
+
id: _propTypes["default"].string,
|
179
|
+
value: _propTypes["default"].string
|
180
|
+
})),
|
181
|
+
|
182
|
+
/** The default value of the array input field (controlled). */
|
183
|
+
value: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
184
|
+
id: _propTypes["default"].string,
|
185
|
+
value: _propTypes["default"].string
|
186
|
+
})),
|
187
|
+
|
188
|
+
/** The rendered label for the field. */
|
189
|
+
label: _propTypes["default"].node,
|
190
|
+
|
191
|
+
/** Text to display before add button. Useful for errors or other info. */
|
192
|
+
helperText: _propTypes["default"].node,
|
193
|
+
|
194
|
+
/** Callback for changing array field data */
|
195
|
+
onChange: _propTypes["default"].func,
|
196
|
+
|
197
|
+
/** Callback for adding new empty field */
|
198
|
+
onAdd: _propTypes["default"].func,
|
199
|
+
|
200
|
+
/** Callback for deleting a field */
|
201
|
+
onDelete: _propTypes["default"].func,
|
202
|
+
|
203
|
+
/** Render prop to display an input field */
|
204
|
+
renderField: _propTypes["default"].func,
|
205
|
+
|
206
|
+
/** Determines the helper text styling. */
|
207
|
+
status: _propTypes["default"].oneOf((0, _values["default"])(_statuses["default"]))
|
208
|
+
};
|
209
|
+
ArrayField.defaultProps = {
|
210
|
+
addButtonLabel: '+ Add'
|
211
|
+
};
|
212
|
+
var _default = ArrayField;
|
213
|
+
exports["default"] = _default;
|