@pingux/astro 1.40.1-alpha.2 → 1.40.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.
@@ -2,12 +2,24 @@
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
4
 
5
- var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
6
6
 
7
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
7
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
8
+
9
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
8
10
 
9
11
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
10
12
 
13
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
14
+
15
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
16
+
17
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
18
+
19
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
20
+
21
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
22
+
11
23
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
24
 
13
25
  _Object$defineProperty(exports, "__esModule", {
@@ -22,6 +34,8 @@ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stabl
22
34
 
23
35
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
24
36
 
37
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
38
+
25
39
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
26
40
 
27
41
  var _react = _interopRequireWildcard(require("react"));
@@ -30,6 +44,8 @@ var _accordion = require("@react-aria/accordion");
30
44
 
31
45
  var _tree = require("@react-stately/tree");
32
46
 
47
+ var _utils = require("@react-aria/utils");
48
+
33
49
  var _propTypes = _interopRequireDefault(require("prop-types"));
34
50
 
35
51
  var _index = require("../../index");
@@ -42,12 +58,17 @@ var _isIterable = require("../../utils/devUtils/props/isIterable");
42
58
 
43
59
  var _react2 = require("@emotion/react");
44
60
 
45
- var _excluded = ["defaultExpandedKeys", "expandedKeys", "onExpandedChange"];
61
+ var _excluded = ["defaultExpandedKeys", "expandedKeys", "onExpandedChange"],
62
+ _excluded2 = ["onFocus"];
46
63
 
47
64
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
48
65
 
49
66
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
50
67
 
68
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
69
+
70
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
71
+
51
72
  /**
52
73
  * Component that allows for a child to be expanded and retracted.
53
74
  * Built on top of [React Aria useAccordion and useAccordionItem](https://reactspectrum.blob.core.windows.net/reactspectrum/d77b35e970e5549f66b47a83f07423f5c93b7297/docs/react-aria/useAccordion.html).
@@ -65,26 +86,28 @@ var AccordionGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
65
86
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
66
87
  var state = (0, _tree.useTreeState)(props);
67
88
  var accordionRef = (0, _react.useRef)();
89
+ /* `autoFocus: true` is what makes the initial focus only take one click vs two. */
68
90
 
69
- var _useAccordion = (0, _accordion.useAccordion)(props, state, accordionRef),
91
+ var _useAccordion = (0, _accordion.useAccordion)(_objectSpread({
92
+ autoFocus: true
93
+ }, props), state, accordionRef),
70
94
  accordionProps = _useAccordion.accordionProps;
71
95
 
72
96
  delete accordionProps.onMouseDown;
97
+ /* Splicing out the onFocus function is what allows subsequent focuses to only take one click. */
98
+
99
+ var onFocus = accordionProps.onFocus,
100
+ theseProps = (0, _objectWithoutProperties2["default"])(accordionProps, _excluded2);
73
101
  /* istanbul ignore next */
74
102
 
75
103
  (0, _react.useImperativeHandle)(ref, function () {
76
104
  return accordionRef.current;
77
105
  });
78
- (0, _react.useEffect)(function () {
79
- if (expandedKeys || defaultExpandedKeys) {
80
- state.selectionManager.setFocused(true);
81
- }
82
- }, [defaultExpandedKeys, expandedKeys, state.selectionManager]);
83
106
  return (0, _react2.jsx)(_AccordionContext.AccordionContext.Provider, {
84
107
  value: state
85
108
  }, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
86
109
  ref: accordionRef
87
- }, accordionProps, others), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
110
+ }, (0, _utils.mergeProps)(theseProps, others)), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
88
111
  return (0, _react2.jsx)(_AccordionItem["default"], {
89
112
  key: item.key,
90
113
  item: item,
@@ -26,6 +26,8 @@ var _Text = _interopRequireDefault(require("../Text"));
26
26
 
27
27
  var _Button = _interopRequireDefault(require("../Button"));
28
28
 
29
+ var _TextField = _interopRequireDefault(require("../TextField"));
30
+
29
31
  var _ = _interopRequireDefault(require("."));
30
32
 
31
33
  var _react2 = require("@emotion/react");
@@ -45,7 +47,7 @@ var itemArray = [{
45
47
  }, {
46
48
  key: 't3',
47
49
  label: 'Third Accordion',
48
- children: 'Child Renders Here'
50
+ children: (0, _react2.jsx)(_TextField["default"], null)
49
51
  }];
50
52
  var itemArrayDisabled = [{
51
53
  key: 't1',
@@ -132,7 +134,7 @@ var Multiple = function Multiple() {
132
134
  exports.Multiple = Multiple;
133
135
 
134
136
  var ControlledExpanded = function ControlledExpanded() {
135
- var _useState = (0, _react.useState)(['t1']),
137
+ var _useState = (0, _react.useState)(['t3']),
136
138
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
137
139
  expandedKeys = _useState2[0],
138
140
  setExpandedKeys = _useState2[1];
@@ -28,6 +28,16 @@ var testId = 'test-accordion';
28
28
  var defaultProps = {
29
29
  'data-testid': testId
30
30
  };
31
+ var items = [{
32
+ key: 'identityProvider',
33
+ label: 'some label1',
34
+ text: 'empty'
35
+ }, {
36
+ key: 'identityProvider1',
37
+ label: 'some label2',
38
+ text: 'empty'
39
+ }];
40
+ var selectedAccordionKeys = ['identityProvider', 'identityProvider1'];
31
41
 
32
42
  var getComponent = function getComponent() {
33
43
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -87,6 +97,73 @@ var getComponentWithInput = function getComponentWithInput() {
87
97
  }, (0, _react2.jsx)("input", {
88
98
  "data-testid": "testInput"
89
99
  }))));
100
+ };
101
+
102
+ var getComponentWithPopover = function getComponentWithPopover() {
103
+ return (0, _testWrapper.render)((0, _react2.jsx)(_index.Box, {
104
+ isRow: true,
105
+ alignItems: "center",
106
+ justifyContent: "space-between",
107
+ width: "50%"
108
+ }, (0, _react2.jsx)(_index.PopoverMenu, null, (0, _react2.jsx)(_index.Button, {
109
+ "data-testid": "popoverbutton"
110
+ }, "Click me"), (0, _react2.jsx)(_index.Menu, {
111
+ onAction: function onAction() {}
112
+ }, (0, _react2.jsx)(_collections.Item, {
113
+ key: "edit"
114
+ }, "Edit"), (0, _react2.jsx)(_collections.Item, {
115
+ key: "duplicate"
116
+ }, "Duplicate"), (0, _react2.jsx)(_collections.Item, {
117
+ key: "delete",
118
+ textValue: "delete"
119
+ }, (0, _react2.jsx)(_Text["default"], {
120
+ color: "critical.bright"
121
+ }, "Delete")))), (0, _react2.jsx)(_AccordionGroup["default"], {
122
+ items: items,
123
+ defaultExpandedKeys: selectedAccordionKeys
124
+ }, function (item) {
125
+ return (0, _react2.jsx)(_collections.Item, {
126
+ key: item.key,
127
+ textValue: item.label,
128
+ label: item.label
129
+ }, item.text);
130
+ })));
131
+ };
132
+
133
+ var getComponentWithMultipleAccordion = function getComponentWithMultipleAccordion() {
134
+ return (0, _testWrapper.render)((0, _react2.jsx)(_index.Box, {
135
+ alignItems: "center",
136
+ justifyContent: "space-between",
137
+ width: "50%"
138
+ }, (0, _react2.jsx)(_AccordionGroup["default"], {
139
+ defaultExpandedKeys: ['customConfiguration']
140
+ }, (0, _react2.jsx)(_collections.Item, {
141
+ key: "customConfiguration",
142
+ label: "connection.configuration",
143
+ regionProps: {
144
+ pt: 'sm'
145
+ },
146
+ containerProps: {
147
+ mb: 0
148
+ },
149
+ textValue: "connection.configuration"
150
+ }, (0, _react2.jsx)("form", {
151
+ "data-id": "connection-configuration-custom-form"
152
+ }, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_Text["default"], null, "other text"), (0, _react2.jsx)(_Text["default"], null, "another text"))))), (0, _react2.jsx)(_AccordionGroup["default"], {
153
+ defaultExpandedKeys: ['customConfiguration1']
154
+ }, (0, _react2.jsx)(_collections.Item, {
155
+ key: "customConfiguration",
156
+ label: "connection.configuration1",
157
+ regionProps: {
158
+ pt: 'sm'
159
+ },
160
+ containerProps: {
161
+ mb: 0
162
+ },
163
+ textValue: "connection.configuration1"
164
+ }, (0, _react2.jsx)("form", {
165
+ "data-id": "connection-configuration-custom-form"
166
+ }, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_Text["default"], null, "other text1"), (0, _react2.jsx)(_Text["default"], null, "another text1")))))));
90
167
  }; // Need to be added to each test file to test accessibility using axe.
91
168
 
92
169
 
@@ -329,4 +406,50 @@ test('items do not automatically expand if wrapped in an open OverlayPanel', fun
329
406
 
330
407
  var selectedItem = buttons[0];
331
408
  expect(selectedItem).not.toHaveAttribute('aria-expanded', 'true');
409
+ });
410
+ test('accordion is compatible with another component that uses an overlay', function () {
411
+ getComponentWithPopover();
412
+
413
+ var buttons = _testWrapper.screen.getAllByRole('button');
414
+
415
+ var popoverButton = _testWrapper.screen.getByTestId('popoverbutton');
416
+
417
+ _userEvent["default"].click(popoverButton);
418
+
419
+ var selectedItem = buttons[0];
420
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
421
+
422
+ _userEvent["default"].click(selectedItem);
423
+
424
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'false');
425
+
426
+ _userEvent["default"].click(selectedItem);
427
+
428
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
429
+ });
430
+ test('accordion works if there are multiple, controlled on the same implementation', function () {
431
+ getComponentWithMultipleAccordion();
432
+
433
+ var buttons = _testWrapper.screen.getAllByRole('button');
434
+
435
+ var selectedItem = buttons[0];
436
+ var secondSelectedItem = buttons[1];
437
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
438
+
439
+ _userEvent["default"].click(selectedItem);
440
+
441
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'false');
442
+
443
+ _userEvent["default"].click(selectedItem);
444
+
445
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
446
+ expect(secondSelectedItem).toHaveAttribute('aria-expanded', 'false');
447
+
448
+ _userEvent["default"].click(secondSelectedItem);
449
+
450
+ expect(secondSelectedItem).toHaveAttribute('aria-expanded', 'true');
451
+
452
+ _userEvent["default"].click(secondSelectedItem);
453
+
454
+ expect(secondSelectedItem).toHaveAttribute('aria-expanded', 'false');
332
455
  });
@@ -1,11 +1,27 @@
1
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
4
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
5
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
6
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
7
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
8
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
1
9
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
10
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
2
11
  import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["defaultExpandedKeys", "expandedKeys", "onExpandedChange"];
12
+ var _excluded = ["defaultExpandedKeys", "expandedKeys", "onExpandedChange"],
13
+ _excluded2 = ["onFocus"];
4
14
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
5
15
  import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
6
- import React, { forwardRef, useRef, useImperativeHandle, useEffect } from 'react';
16
+
17
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
20
+
21
+ import React, { forwardRef, useRef, useImperativeHandle } from 'react';
7
22
  import { useAccordion } from '@react-aria/accordion';
8
23
  import { useTreeState } from '@react-stately/tree';
24
+ import { mergeProps } from '@react-aria/utils';
9
25
  import PropTypes from 'prop-types';
10
26
  import { Box } from '../../index';
11
27
  import AccordionItem from '../AccordionItem';
@@ -31,26 +47,29 @@ var AccordionGroup = /*#__PURE__*/forwardRef(function (props, ref) {
31
47
 
32
48
  var state = useTreeState(props);
33
49
  var accordionRef = useRef();
50
+ /* `autoFocus: true` is what makes the initial focus only take one click vs two. */
34
51
 
35
- var _useAccordion = useAccordion(props, state, accordionRef),
52
+ var _useAccordion = useAccordion(_objectSpread({
53
+ autoFocus: true
54
+ }, props), state, accordionRef),
36
55
  accordionProps = _useAccordion.accordionProps;
37
56
 
38
57
  delete accordionProps.onMouseDown;
58
+ /* Splicing out the onFocus function is what allows subsequent focuses to only take one click. */
59
+
60
+ var onFocus = accordionProps.onFocus,
61
+ theseProps = _objectWithoutProperties(accordionProps, _excluded2);
39
62
  /* istanbul ignore next */
40
63
 
64
+
41
65
  useImperativeHandle(ref, function () {
42
66
  return accordionRef.current;
43
67
  });
44
- useEffect(function () {
45
- if (expandedKeys || defaultExpandedKeys) {
46
- state.selectionManager.setFocused(true);
47
- }
48
- }, [defaultExpandedKeys, expandedKeys, state.selectionManager]);
49
68
  return ___EmotionJSX(AccordionContext.Provider, {
50
69
  value: state
51
70
  }, ___EmotionJSX(Box, _extends({
52
71
  ref: accordionRef
53
- }, accordionProps, others), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item) {
72
+ }, mergeProps(theseProps, others)), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item) {
54
73
  return ___EmotionJSX(AccordionItem, {
55
74
  key: item.key,
56
75
  item: item,
@@ -3,6 +3,7 @@ import React, { useState } from 'react';
3
3
  import { Item } from '@react-stately/collections';
4
4
  import Text from '../Text';
5
5
  import Button from '../Button';
6
+ import TextField from '../TextField';
6
7
  import AccordionGroup from '.';
7
8
  import { jsx as ___EmotionJSX } from "@emotion/react";
8
9
  var itemArray = [{
@@ -16,7 +17,7 @@ var itemArray = [{
16
17
  }, {
17
18
  key: 't3',
18
19
  label: 'Third Accordion',
19
- children: 'Child Renders Here'
20
+ children: ___EmotionJSX(TextField, null)
20
21
  }];
21
22
  var itemArrayDisabled = [{
22
23
  key: 't1',
@@ -95,7 +96,7 @@ export var Multiple = function Multiple() {
95
96
  );
96
97
  };
97
98
  export var ControlledExpanded = function ControlledExpanded() {
98
- var _useState = useState(['t1']),
99
+ var _useState = useState(['t3']),
99
100
  _useState2 = _slicedToArray(_useState, 2),
100
101
  expandedKeys = _useState2[0],
101
102
  setExpandedKeys = _useState2[1];
@@ -7,12 +7,22 @@ import axeTest from '../../utils/testUtils/testAxe';
7
7
  import { act, fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
8
8
  import Text from '../Text';
9
9
  import AccordionGroup from '../AccordionGroup';
10
- import { OverlayPanel, TextField } from '../../index';
10
+ import { OverlayPanel, TextField, Box, Menu, Button, PopoverMenu } from '../../index';
11
11
  import { jsx as ___EmotionJSX } from "@emotion/react";
12
12
  var testId = 'test-accordion';
13
13
  var defaultProps = {
14
14
  'data-testid': testId
15
15
  };
16
+ var items = [{
17
+ key: 'identityProvider',
18
+ label: 'some label1',
19
+ text: 'empty'
20
+ }, {
21
+ key: 'identityProvider1',
22
+ label: 'some label2',
23
+ text: 'empty'
24
+ }];
25
+ var selectedAccordionKeys = ['identityProvider', 'identityProvider1'];
16
26
 
17
27
  var getComponent = function getComponent() {
18
28
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -72,6 +82,73 @@ var getComponentWithInput = function getComponentWithInput() {
72
82
  }, ___EmotionJSX("input", {
73
83
  "data-testid": "testInput"
74
84
  }))));
85
+ };
86
+
87
+ var getComponentWithPopover = function getComponentWithPopover() {
88
+ return render(___EmotionJSX(Box, {
89
+ isRow: true,
90
+ alignItems: "center",
91
+ justifyContent: "space-between",
92
+ width: "50%"
93
+ }, ___EmotionJSX(PopoverMenu, null, ___EmotionJSX(Button, {
94
+ "data-testid": "popoverbutton"
95
+ }, "Click me"), ___EmotionJSX(Menu, {
96
+ onAction: function onAction() {}
97
+ }, ___EmotionJSX(Item, {
98
+ key: "edit"
99
+ }, "Edit"), ___EmotionJSX(Item, {
100
+ key: "duplicate"
101
+ }, "Duplicate"), ___EmotionJSX(Item, {
102
+ key: "delete",
103
+ textValue: "delete"
104
+ }, ___EmotionJSX(Text, {
105
+ color: "critical.bright"
106
+ }, "Delete")))), ___EmotionJSX(AccordionGroup, {
107
+ items: items,
108
+ defaultExpandedKeys: selectedAccordionKeys
109
+ }, function (item) {
110
+ return ___EmotionJSX(Item, {
111
+ key: item.key,
112
+ textValue: item.label,
113
+ label: item.label
114
+ }, item.text);
115
+ })));
116
+ };
117
+
118
+ var getComponentWithMultipleAccordion = function getComponentWithMultipleAccordion() {
119
+ return render(___EmotionJSX(Box, {
120
+ alignItems: "center",
121
+ justifyContent: "space-between",
122
+ width: "50%"
123
+ }, ___EmotionJSX(AccordionGroup, {
124
+ defaultExpandedKeys: ['customConfiguration']
125
+ }, ___EmotionJSX(Item, {
126
+ key: "customConfiguration",
127
+ label: "connection.configuration",
128
+ regionProps: {
129
+ pt: 'sm'
130
+ },
131
+ containerProps: {
132
+ mb: 0
133
+ },
134
+ textValue: "connection.configuration"
135
+ }, ___EmotionJSX("form", {
136
+ "data-id": "connection-configuration-custom-form"
137
+ }, ___EmotionJSX(Box, null, ___EmotionJSX(Text, null, "other text"), ___EmotionJSX(Text, null, "another text"))))), ___EmotionJSX(AccordionGroup, {
138
+ defaultExpandedKeys: ['customConfiguration1']
139
+ }, ___EmotionJSX(Item, {
140
+ key: "customConfiguration",
141
+ label: "connection.configuration1",
142
+ regionProps: {
143
+ pt: 'sm'
144
+ },
145
+ containerProps: {
146
+ mb: 0
147
+ },
148
+ textValue: "connection.configuration1"
149
+ }, ___EmotionJSX("form", {
150
+ "data-id": "connection-configuration-custom-form"
151
+ }, ___EmotionJSX(Box, null, ___EmotionJSX(Text, null, "other text1"), ___EmotionJSX(Text, null, "another text1")))))));
75
152
  }; // Need to be added to each test file to test accessibility using axe.
76
153
 
77
154
 
@@ -253,4 +330,32 @@ test('items do not automatically expand if wrapped in an open OverlayPanel', fun
253
330
  var buttons = screen.getAllByRole('button');
254
331
  var selectedItem = buttons[0];
255
332
  expect(selectedItem).not.toHaveAttribute('aria-expanded', 'true');
333
+ });
334
+ test('accordion is compatible with another component that uses an overlay', function () {
335
+ getComponentWithPopover();
336
+ var buttons = screen.getAllByRole('button');
337
+ var popoverButton = screen.getByTestId('popoverbutton');
338
+ userEvent.click(popoverButton);
339
+ var selectedItem = buttons[0];
340
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
341
+ userEvent.click(selectedItem);
342
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'false');
343
+ userEvent.click(selectedItem);
344
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
345
+ });
346
+ test('accordion works if there are multiple, controlled on the same implementation', function () {
347
+ getComponentWithMultipleAccordion();
348
+ var buttons = screen.getAllByRole('button');
349
+ var selectedItem = buttons[0];
350
+ var secondSelectedItem = buttons[1];
351
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
352
+ userEvent.click(selectedItem);
353
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'false');
354
+ userEvent.click(selectedItem);
355
+ expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
356
+ expect(secondSelectedItem).toHaveAttribute('aria-expanded', 'false');
357
+ userEvent.click(secondSelectedItem);
358
+ expect(secondSelectedItem).toHaveAttribute('aria-expanded', 'true');
359
+ userEvent.click(secondSelectedItem);
360
+ expect(secondSelectedItem).toHaveAttribute('aria-expanded', 'false');
256
361
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "1.40.1-alpha.2",
3
+ "version": "1.40.1",
4
4
  "description": "PingUX themeable React component library",
5
5
  "repository": {
6
6
  "type": "git",