@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.
Files changed (167) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +35 -22
  3. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +148 -169
  4. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +25 -30
  5. package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +29 -14
  6. package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +8 -5
  7. package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +20 -17
  8. package/lib/cjs/components/AccordionGroup/AccordionGroup.js +2 -1
  9. package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +20 -1
  10. package/lib/cjs/components/ArrayField/ArrayField.js +213 -0
  11. package/lib/cjs/components/ArrayField/ArrayField.stories.js +223 -0
  12. package/lib/cjs/components/ArrayField/ArrayField.test.js +208 -0
  13. package/lib/cjs/components/ArrayField/ArrayFieldDeleteButton.js +61 -0
  14. package/lib/cjs/components/ArrayField/index.js +27 -0
  15. package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
  16. package/lib/cjs/components/Button/Button.js +14 -2
  17. package/lib/cjs/components/Button/Button.stories.js +33 -33
  18. package/lib/cjs/components/CheckboxField/CheckboxField.js +4 -1
  19. package/lib/cjs/components/CodeView/CodeView.js +3 -3
  20. package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
  21. package/lib/cjs/components/Input/Input.js +3 -11
  22. package/lib/cjs/components/Input/Input.test.js +14 -2
  23. package/lib/cjs/components/Link/Link.js +2 -1
  24. package/lib/cjs/components/ListView/ListView.js +9 -13
  25. package/lib/cjs/components/ListView/ListView.stories.js +3 -0
  26. package/lib/cjs/components/ListViewItem/ListViewItem.js +15 -3
  27. package/lib/cjs/components/Loader/Loader.stories.js +3 -3
  28. package/lib/cjs/components/Modal/Modal.js +3 -0
  29. package/lib/cjs/components/Modal/Modal.stories.js +12 -67
  30. package/lib/cjs/components/MultivaluesField/MultivaluesField.js +10 -2
  31. package/lib/cjs/components/NavBar/NavBar.js +30 -4
  32. package/lib/cjs/components/NavBar/NavBar.stories.js +70 -463
  33. package/lib/cjs/components/NavBar/NavBar.test.js +51 -1
  34. package/lib/cjs/components/NavBarSection/NavBarItem.js +137 -0
  35. package/lib/cjs/components/NavBarSection/NavBarItemButton.js +96 -0
  36. package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +1 -1
  37. package/lib/cjs/components/NavBarSection/NavBarItemLink.js +98 -0
  38. package/lib/cjs/components/NavBarSection/NavBarSection.js +10 -8
  39. package/lib/cjs/components/NavBarSection/index.js +28 -1
  40. package/lib/cjs/components/NumberField/NumberField.js +30 -10
  41. package/lib/cjs/components/NumberField/NumberField.test.js +7 -0
  42. package/lib/cjs/components/PageHeader/PageHeader.js +3 -0
  43. package/lib/cjs/components/PageHeader/PageHeader.stories.js +6 -1
  44. package/lib/cjs/components/RadioGroupField/RadioGroupField.js +9 -5
  45. package/lib/cjs/components/RockerButton/RockerButton.js +14 -22
  46. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
  47. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.stories.js +4 -22
  48. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -14
  49. package/lib/cjs/components/SearchField/SearchField.stories.js +1 -15
  50. package/lib/cjs/components/SelectField/SelectField.stories.js +3 -55
  51. package/lib/cjs/components/SelectFieldBase/SelectFieldBase.js +8 -1
  52. package/lib/cjs/components/Tabs/Tabs.stories.js +1 -15
  53. package/lib/cjs/components/TextAreaField/TextAreaField.js +54 -9
  54. package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +31 -52
  55. package/lib/cjs/components/TextAreaField/TextAreaField.test.js +12 -0
  56. package/lib/cjs/context/AccordionGridContext/index.js +20 -0
  57. package/lib/cjs/context/NavBarContext/index.js +20 -0
  58. package/lib/cjs/hooks/index.js +9 -0
  59. package/lib/cjs/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
  60. package/lib/cjs/hooks/useField/useField.js +7 -2
  61. package/lib/cjs/{components/AccordionGridGroup/AccordionGridContext.js → hooks/useNavBarPress/index.js} +7 -6
  62. package/lib/cjs/hooks/useNavBarPress/useNavBarPress.js +38 -0
  63. package/lib/cjs/hooks/useNavBarPress/useNavBarPress.test.js +42 -0
  64. package/lib/cjs/hooks/useRockerButton/useRockerButton.js +4 -6
  65. package/lib/cjs/index.js +80 -58
  66. package/lib/cjs/recipes/ConditionalFilter.stories.js +7 -3
  67. package/lib/cjs/recipes/RadioButtonsWithLinks.stories.js +1 -1
  68. package/lib/cjs/styles/forms/checkbox.js +0 -1
  69. package/lib/cjs/styles/forms/input.js +1 -1
  70. package/lib/cjs/styles/forms/label.js +3 -0
  71. package/lib/cjs/styles/forms/radio.js +1 -1
  72. package/lib/cjs/styles/forms/switch.js +3 -1
  73. package/lib/cjs/styles/variants/accordion.js +39 -7
  74. package/lib/cjs/styles/variants/boxes.js +14 -25
  75. package/lib/cjs/styles/variants/buttons.js +27 -1
  76. package/lib/cjs/styles/variants/codeView.js +91 -0
  77. package/lib/cjs/styles/variants/navBar.js +68 -0
  78. package/lib/cjs/styles/variants/separator.js +2 -1
  79. package/lib/cjs/styles/variants/text.js +3 -1
  80. package/lib/cjs/styles/variants/variants.js +3 -0
  81. package/lib/components/AccordionGridGroup/AccordionGridGroup.js +35 -22
  82. package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +143 -166
  83. package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -25
  84. package/lib/components/AccordionGridItem/AccordionGridItem.js +29 -15
  85. package/lib/components/AccordionGridItem/AccordionGridItemBody.js +8 -6
  86. package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +22 -18
  87. package/lib/components/AccordionGroup/AccordionGroup.js +2 -1
  88. package/lib/components/AccordionGroup/AccordionGroup.test.js +16 -2
  89. package/lib/components/ArrayField/ArrayField.js +179 -0
  90. package/lib/components/ArrayField/ArrayField.stories.js +196 -0
  91. package/lib/components/ArrayField/ArrayField.test.js +185 -0
  92. package/lib/components/ArrayField/ArrayFieldDeleteButton.js +43 -0
  93. package/lib/components/ArrayField/index.js +2 -0
  94. package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
  95. package/lib/components/Button/Button.js +15 -3
  96. package/lib/components/Button/Button.stories.js +17 -15
  97. package/lib/components/CheckboxField/CheckboxField.js +4 -1
  98. package/lib/components/CodeView/CodeView.js +2 -2
  99. package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
  100. package/lib/components/Input/Input.js +2 -10
  101. package/lib/components/Input/Input.test.js +11 -2
  102. package/lib/components/Link/Link.js +2 -1
  103. package/lib/components/ListView/ListView.js +9 -12
  104. package/lib/components/ListView/ListView.stories.js +3 -0
  105. package/lib/components/ListViewItem/ListViewItem.js +14 -3
  106. package/lib/components/Loader/Loader.stories.js +1 -1
  107. package/lib/components/Modal/Modal.js +4 -1
  108. package/lib/components/Modal/Modal.stories.js +11 -60
  109. package/lib/components/MultivaluesField/MultivaluesField.js +9 -2
  110. package/lib/components/NavBar/NavBar.js +25 -4
  111. package/lib/components/NavBar/NavBar.stories.js +71 -462
  112. package/lib/components/NavBar/NavBar.test.js +39 -2
  113. package/lib/components/NavBarSection/NavBarItem.js +111 -0
  114. package/lib/components/NavBarSection/NavBarItemButton.js +69 -0
  115. package/lib/components/NavBarSection/NavBarItemHeader.js +1 -1
  116. package/lib/components/NavBarSection/NavBarItemLink.js +71 -0
  117. package/lib/components/NavBarSection/NavBarSection.js +9 -8
  118. package/lib/components/NavBarSection/index.js +4 -1
  119. package/lib/components/NumberField/NumberField.js +32 -12
  120. package/lib/components/NumberField/NumberField.test.js +5 -0
  121. package/lib/components/PageHeader/PageHeader.js +2 -0
  122. package/lib/components/PageHeader/PageHeader.stories.js +5 -1
  123. package/lib/components/RadioGroupField/RadioGroupField.js +9 -5
  124. package/lib/components/RockerButton/RockerButton.js +14 -21
  125. package/lib/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
  126. package/lib/components/RockerButtonGroup/RockerButtonGroup.stories.js +2 -17
  127. package/lib/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -11
  128. package/lib/components/SearchField/SearchField.stories.js +0 -11
  129. package/lib/components/SelectField/SelectField.stories.js +2 -50
  130. package/lib/components/SelectFieldBase/SelectFieldBase.js +8 -1
  131. package/lib/components/Tabs/Tabs.stories.js +0 -11
  132. package/lib/components/TextAreaField/TextAreaField.js +54 -10
  133. package/lib/components/TextAreaField/TextAreaField.stories.js +26 -42
  134. package/lib/components/TextAreaField/TextAreaField.test.js +13 -0
  135. package/lib/context/AccordionGridContext/index.js +5 -0
  136. package/lib/context/NavBarContext/index.js +5 -0
  137. package/lib/hooks/index.js +1 -0
  138. package/lib/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
  139. package/lib/hooks/useField/useField.js +7 -2
  140. package/lib/hooks/useNavBarPress/index.js +1 -0
  141. package/lib/hooks/useNavBarPress/useNavBarPress.js +27 -0
  142. package/lib/hooks/useNavBarPress/useNavBarPress.test.js +36 -0
  143. package/lib/hooks/useRockerButton/useRockerButton.js +4 -6
  144. package/lib/index.js +2 -0
  145. package/lib/recipes/ConditionalFilter.stories.js +7 -3
  146. package/lib/recipes/RadioButtonsWithLinks.stories.js +1 -1
  147. package/lib/styles/forms/checkbox.js +0 -1
  148. package/lib/styles/forms/input.js +1 -1
  149. package/lib/styles/forms/label.js +3 -0
  150. package/lib/styles/forms/radio.js +1 -1
  151. package/lib/styles/forms/switch.js +3 -1
  152. package/lib/styles/variants/accordion.js +26 -5
  153. package/lib/styles/variants/boxes.js +14 -25
  154. package/lib/styles/variants/buttons.js +27 -1
  155. package/lib/styles/variants/codeView.js +91 -0
  156. package/lib/styles/variants/navBar.js +46 -0
  157. package/lib/styles/variants/separator.js +2 -1
  158. package/lib/styles/variants/text.js +3 -1
  159. package/lib/styles/variants/variants.js +2 -0
  160. package/package.json +4 -2
  161. package/lib/cjs/layouts/ListLayout.stories.js +0 -895
  162. package/lib/cjs/layouts/SchemaFormLayout.stories.js +0 -139
  163. package/lib/cjs/recipes/ArrayField.stories.js +0 -169
  164. package/lib/components/AccordionGridGroup/AccordionGridContext.js +0 -2
  165. package/lib/layouts/ListLayout.stories.js +0 -866
  166. package/lib/layouts/SchemaFormLayout.stories.js +0 -107
  167. 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("../AccordionGridGroup/AccordionGridContext");
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
- others = (0, _objectWithoutProperties2["default"])(props, ["item", "headerProps", "bodyProps", "children"]);
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 _useContext = (0, _react.useContext)(_AccordionGridContext.AccordionGridContext),
61
- state = _useContext.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
- var isDisabled = state.disabledKeys.has(item.key);
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 isSelected = state.selectionManager.isSelected(item.key);
74
- return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
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
- ref: rowRef,
79
- role: "row"
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
- cellNode: cellNode,
83
- ref: cellRef
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("../AccordionGridGroup/AccordionGridContext");
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 _useContext = (0, _react.useContext)(_AccordionGridContext.AccordionGridContext),
46
- state = _useContext.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("../AccordionGridGroup/AccordionGridContext");
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", "key", "isSelected"]);
54
+ others = (0, _objectWithoutProperties2["default"])(props, ["item", "className", "children", "isSelected"]);
56
55
 
57
- var _useContext = (0, _react.useContext)(_AccordionGridContext.AccordionGridContext),
58
- state = _useContext.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, ref),
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 _usePress = (0, _interactions.usePress)({
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: 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)(_Text["default"], null, "Render me!"))));
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;