@pingux/astro 1.30.0-alpha.4 → 1.30.0-alpha.6

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,30 +2,52 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
5
7
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
8
 
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
7
13
  _Object$defineProperty(exports, "__esModule", {
8
14
  value: true
9
15
  });
10
16
 
11
17
  exports["default"] = void 0;
12
18
 
19
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
20
+
21
+ var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
22
+
23
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
24
+
13
25
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
14
26
 
15
- var _react = _interopRequireDefault(require("react"));
27
+ var _react = _interopRequireWildcard(require("react"));
16
28
 
17
29
  var _propTypes = _interopRequireDefault(require("prop-types"));
18
30
 
31
+ var _focus = require("@react-aria/focus");
32
+
33
+ var _interactions = require("@react-aria/interactions");
34
+
19
35
  var _index = require("../../index");
20
36
 
21
37
  var _NavBarItemBody = _interopRequireDefault(require("./NavBarItemBody"));
22
38
 
23
39
  var _NavBarItemHeader = _interopRequireDefault(require("./NavBarItemHeader"));
24
40
 
41
+ var _NavBarContext = require("../../context/NavBarContext");
42
+
25
43
  var _react2 = require("@emotion/react");
26
44
 
45
+ 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); }
46
+
47
+ 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; }
48
+
27
49
  /**
28
- * Composed component that creates an AccordionGrid group
50
+ * Composed component that creates a group
29
51
  * with title, and separator options.
30
52
  *
31
53
  */
@@ -33,28 +55,27 @@ var NavBarSection = function NavBarSection(props) {
33
55
  var hasSeparator = props.hasSeparator,
34
56
  title = props.title,
35
57
  items = props.items;
58
+ var ref = (0, _react.useRef)();
59
+ var childrenItems = (0, _filter["default"])(items).call(items, function (i) {
60
+ return i.children;
61
+ });
36
62
  return (0, _react2.jsx)(_react["default"].Fragment, null, title && (0, _react2.jsx)(_index.Text, {
37
63
  variant: "text.navBarSubtitle"
38
- }, title), (0, _react2.jsx)(_index.AccordionGridGroup, {
39
- items: (0, _filter["default"])(items).call(items, function (i) {
40
- return i.children;
41
- })
42
- }, function (item) {
43
- return (0, _react2.jsx)(_index.Item, {
44
- headerProps: {
45
- variant: 'accordion.accordionGridHeaderNav',
46
- hasCaret: false
47
- },
48
- bodyProps: {
49
- variant: 'navBar.sectionBody'
50
- },
51
- textValue: item
52
- }, (0, _react2.jsx)(_NavBarItemHeader["default"], {
53
- item: item
54
- }), (0, _react2.jsx)(_NavBarItemBody["default"], {
64
+ }, title), (0, _react2.jsx)("ul", {
65
+ ref: ref,
66
+ style: {
67
+ margin: 0,
68
+ padding: 0,
69
+ listStyle: 'none'
70
+ }
71
+ }, (0, _map["default"])(childrenItems).call(childrenItems, function (item) {
72
+ return (0, _react2.jsx)("li", {
73
+ key: item.key
74
+ }, (0, _react2.jsx)(SectionItem, {
75
+ key: item.key,
55
76
  item: item
56
77
  }));
57
- }), hasSeparator && (0, _react2.jsx)(_index.Box, {
78
+ })), hasSeparator && (0, _react2.jsx)(_index.Box, {
58
79
  sx: {
59
80
  pl: '15px',
60
81
  pr: '15px',
@@ -67,6 +88,92 @@ var NavBarSection = function NavBarSection(props) {
67
88
  })));
68
89
  };
69
90
 
91
+ var SectionItem = function SectionItem(_ref) {
92
+ var item = _ref.item;
93
+ var key = item.key,
94
+ children = item.children;
95
+ var headerButtonRef = (0, _react.useRef)();
96
+ var navBarState = (0, _NavBarContext.useNavBarContext)();
97
+ var expandedKeys = navBarState.expandedKeys,
98
+ setExpandedKeys = navBarState.setExpandedKeys;
99
+ var isExpanded = expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.has(key);
100
+ var firstChildKey = children.length ? children[0].key : null;
101
+ var lastChildKey = children.length ? children[children.length - 1].key : null;
102
+
103
+ var onExpandedChange = function onExpandedChange(isOpen) {
104
+ if (isOpen) {
105
+ expandedKeys.add(key);
106
+ } else {
107
+ expandedKeys["delete"](key);
108
+ }
109
+
110
+ setExpandedKeys(new _set["default"](expandedKeys));
111
+ };
112
+
113
+ var focusManager = (0, _focus.useFocusManager)();
114
+
115
+ var _onKeyDown = function onKeyDown(e, childKey) {
116
+ var _e$target;
117
+
118
+ switch (e.which) {
119
+ case 39:
120
+ case 40:
121
+ if (childKey !== lastChildKey) {
122
+ focusManager.focusNext();
123
+ }
124
+
125
+ e.preventDefault();
126
+ break;
127
+
128
+ case 37:
129
+ case 38:
130
+ if (childKey !== firstChildKey) {
131
+ focusManager.focusPrevious();
132
+ }
133
+
134
+ e.preventDefault();
135
+ break;
136
+
137
+ case 27:
138
+ onExpandedChange(false);
139
+ headerButtonRef.current.focus();
140
+ break;
141
+
142
+ case 32:
143
+ if (childKey && (_e$target = e.target) !== null && _e$target !== void 0 && _e$target.href) {
144
+ e.target.click();
145
+ }
146
+
147
+ break;
148
+
149
+ default:
150
+ break;
151
+ }
152
+ };
153
+
154
+ var _useKeyboard = (0, _interactions.useKeyboard)({
155
+ onKeyDown: function onKeyDown(e) {
156
+ _onKeyDown(e);
157
+
158
+ e.continuePropagation();
159
+ }
160
+ }),
161
+ keyboardProps = _useKeyboard.keyboardProps;
162
+
163
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
164
+ ref: headerButtonRef,
165
+ variant: "navBarSectionButton",
166
+ onPress: function onPress() {
167
+ return onExpandedChange(!isExpanded);
168
+ }
169
+ }, keyboardProps), (0, _react2.jsx)(_NavBarItemHeader["default"], {
170
+ item: item
171
+ })), isExpanded && (0, _react2.jsx)(_NavBarItemBody["default"], {
172
+ item: item,
173
+ onKeyDown: _onKeyDown
174
+ }));
175
+ };
176
+
70
177
  NavBarSection.defaultProps = {
71
178
  hasSeparator: false
72
179
  };
@@ -83,5 +190,22 @@ NavBarSection.propTypes = {
83
190
  */
84
191
  items: _propTypes["default"].arrayOf(_propTypes["default"].shape({}))
85
192
  };
193
+ SectionItem.propTypes = {
194
+ item: _propTypes["default"].shape({
195
+ key: _propTypes["default"].string,
196
+ children: _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object])),
197
+ 'aria-label': _propTypes["default"].string
198
+ }),
199
+ state: _propTypes["default"].shape({
200
+ collection: _propTypes["default"].shape({}),
201
+ selectedKey: _propTypes["default"].string,
202
+ setSelectedKey: _propTypes["default"].func,
203
+ selectionManager: _propTypes["default"].shape({
204
+ focusedKey: _propTypes["default"].string,
205
+ setFocusedKey: _propTypes["default"].func
206
+ })
207
+ }),
208
+ menuProps: _propTypes["default"].shape({})
209
+ };
86
210
  var _default = NavBarSection;
87
211
  exports["default"] = _default;
@@ -1,35 +1,12 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
3
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
4
 
7
- var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
8
-
9
- var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
10
-
11
- var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
12
-
13
- var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
14
-
15
- var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
16
-
17
- var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
18
-
19
- var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
20
-
21
5
  _Object$defineProperty(exports, "__esModule", {
22
6
  value: true
23
7
  });
24
8
 
25
9
  exports["default"] = void 0;
26
-
27
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
28
-
29
- 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; }
30
-
31
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
32
-
33
10
  var accordionTitle = {
34
11
  display: 'inline-block !important',
35
12
  overflowWrap: 'break-word',
@@ -89,42 +66,6 @@ var accordionGridHeader = {
89
66
  }
90
67
  }
91
68
  };
92
- var accordionGridHeaderNav = {
93
- cursor: 'pointer',
94
- minHeight: '40px',
95
- lineHeight: '30px',
96
- outline: 'none',
97
- display: 'flex',
98
- justifyContent: 'flex-start',
99
- flexShrink: 0,
100
- wordBreak: 'inherit',
101
- whiteSpace: 'nowrap',
102
- color: 'neutral.95',
103
- flexGrow: 1,
104
- fontWeight: 0,
105
- fontSize: '16px',
106
- '&.is-focused': {
107
- outline: 'none',
108
- boxShadow: 'focus',
109
- WebkitBoxShadow: 'focus',
110
- MozBoxShadow: 'focus'
111
- },
112
- '&.is-hovered': {
113
- backgroundColor: 'accent.10'
114
- },
115
- '&.is-pressed': {
116
- backgroundColor: 'accent.5'
117
- }
118
- };
119
-
120
- var accordionGridNavItem = _objectSpread(_objectSpread({}, accordionGridHeaderNav), {}, {
121
- padding: '10px 15px 10px 15px',
122
- '&.is-selected': {
123
- backgroundColor: 'accent.5',
124
- boxShadow: 'inset 2px 0 0 0 white'
125
- }
126
- });
127
-
128
69
  var accordionGridBody = {
129
70
  display: 'none !important',
130
71
  pl: 'sm',
@@ -147,8 +88,6 @@ var _default = {
147
88
  accordionTitle: accordionTitle,
148
89
  accordion: accordion,
149
90
  accordionBody: accordionBody,
150
- accordionGridHeaderNav: accordionGridHeaderNav,
151
- accordionGridNavItem: accordionGridNavItem,
152
91
  accordionGridItem: accordionGridItem
153
92
  };
154
93
  exports["default"] = _default;
@@ -95,7 +95,10 @@ var navItemButton = {
95
95
  maxWidth: '100%',
96
96
  wordWrap: 'break-word',
97
97
  wordBreak: 'break-word',
98
- '&.is-focused': _objectSpread({}, defaultFocus),
98
+ '&.is-focused': {
99
+ outline: '1px solid',
100
+ outlineColor: '#D033FF'
101
+ },
99
102
  '&.is-hovered': {
100
103
  bg: 'accent.10'
101
104
  },
@@ -704,6 +707,20 @@ var menuTab = _objectSpread(_objectSpread({}, quiet), {}, {
704
707
  }
705
708
  });
706
709
 
710
+ var navBarSectionButton = _objectSpread(_objectSpread({}, quiet), {}, {
711
+ width: '100%',
712
+ '&.is-focused': {
713
+ outline: '1px solid',
714
+ outlineColor: '#D033FF'
715
+ },
716
+ '&.is-hovered': {
717
+ backgroundColor: 'accent.10'
718
+ },
719
+ '&.is-pressed': {
720
+ backgroundColor: 'accent.5'
721
+ }
722
+ });
723
+
707
724
  var _default = {
708
725
  accordionHeader: accordionHeader,
709
726
  chipDeleteButton: chipDeleteButton,
@@ -739,6 +756,7 @@ var _default = {
739
756
  helpHint: helpHint,
740
757
  modalCloseButton: modalCloseButton,
741
758
  navItemButton: navItemButton,
759
+ navBarSectionButton: navBarSectionButton,
742
760
  applicationPortalPinned: applicationPortalPinned,
743
761
  applicationPortal: applicationPortal,
744
762
  square: square,
@@ -155,11 +155,12 @@ var wrapper = {
155
155
  var lineNo = {
156
156
  display: 'table-cell',
157
157
  userSelect: 'none',
158
- p: 5,
158
+ px: 5,
159
159
  m: '0 10px 0 0',
160
160
  bg: 'accent.30',
161
161
  minWidth: 26,
162
- color: 'white'
162
+ color: 'white',
163
+ lineHeight: '20px'
163
164
  };
164
165
  var _default = {
165
166
  theme: theme,
@@ -60,17 +60,48 @@ var sectionContainer = {
60
60
  pt: '10px',
61
61
  height: '100%',
62
62
  maxHeight: '100%',
63
- overflowY: 'overlay !important'
63
+ overflowY: 'auto'
64
64
  };
65
65
 
66
66
  var sectionBody = _objectSpread(_objectSpread({}, _accordion["default"].accordionGridBody), {}, {
67
67
  pl: '0'
68
68
  });
69
69
 
70
+ var navItem = {
71
+ cursor: 'pointer',
72
+ minHeight: '40px',
73
+ lineHeight: '30px',
74
+ padding: '10px 15px 10px 15px',
75
+ outline: 'none',
76
+ display: 'flex',
77
+ justifyContent: 'flex-start',
78
+ flexShrink: 0,
79
+ wordBreak: 'inherit',
80
+ whiteSpace: 'nowrap',
81
+ color: 'neutral.95',
82
+ flexGrow: 1,
83
+ fontWeight: 0,
84
+ fontSize: '16px',
85
+ '&.is-focused': {
86
+ outline: '1px solid',
87
+ outlineColor: '#D033FF'
88
+ },
89
+ '&.is-hovered': {
90
+ backgroundColor: 'accent.10'
91
+ },
92
+ '&.is-pressed': {
93
+ backgroundColor: 'accent.5'
94
+ },
95
+ '&.is-selected': {
96
+ backgroundColor: 'accent.5',
97
+ boxShadow: 'inset 2px 0 0 0 white'
98
+ }
99
+ };
70
100
  var _default = {
71
101
  container: container,
72
102
  itemHeaderContainer: itemHeaderContainer,
73
103
  sectionContainer: sectionContainer,
74
- sectionBody: sectionBody
104
+ sectionBody: sectionBody,
105
+ navItem: navItem
75
106
  };
76
107
  exports["default"] = _default;
@@ -189,7 +189,8 @@ var navBarHeaderText = _objectSpread(_objectSpread({}, wordWrap), {}, {
189
189
  lineHeight: '13px',
190
190
  fontSize: '13px',
191
191
  fontWeight: 1,
192
- maxWidth: '150px'
192
+ maxWidth: '150px',
193
+ color: 'white'
193
194
  });
194
195
 
195
196
  var collapsiblePanellItem = _objectSpread(_objectSpread({}, wordWrap), {}, {
@@ -1,6 +1,11 @@
1
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
2
+ import _Array$isArray from "@babel/runtime-corejs3/core-js-stable/array/is-array";
3
+ import _Set from "@babel/runtime-corejs3/core-js-stable/set";
1
4
  import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
2
- import React, { useState } from 'react';
5
+ import React, { useMemo, useState } from 'react';
3
6
  import PropTypes from 'prop-types';
7
+ import { v4 as uuid } from 'uuid';
8
+ import { FocusScope, useFocusManager } from '@react-aria/focus';
4
9
  import { NavBarContext } from '../../context/NavBarContext';
5
10
  import { isIterableProp } from '../../utils/devUtils/props/isIterable';
6
11
  import Box from '../Box/Box';
@@ -10,9 +15,8 @@ import useProgressiveState from '../../hooks/useProgressiveState';
10
15
  *
11
16
  * This component is built to have the NavBarSection component passed into it.
12
17
  *
13
- * NavBarSection is an iterative component that
14
- * will build an AccordionGridGroup using
15
- * the array of objects that is passed into it.
18
+ * NavBarSection is an iterative component that using
19
+ * an array of objects that is passed into it.
16
20
  *
17
21
  */
18
22
 
@@ -22,9 +26,10 @@ var NavBar = function NavBar(props) {
22
26
  var defaultSelectedKeys = props.defaultSelectedKeys,
23
27
  selectedKeysProp = props.selectedKeys,
24
28
  setSelectedKeysProp = props.setSelectedKeys,
25
- defaultExpandedKeys = props.defaultExpandedKeys;
29
+ defaultExpandedKeys = props.defaultExpandedKeys,
30
+ children = props.children;
26
31
 
27
- var _useState = useState(defaultExpandedKeys),
32
+ var _useState = useState(new _Set(defaultExpandedKeys)),
28
33
  _useState2 = _slicedToArray(_useState, 2),
29
34
  expandedKeys = _useState2[0],
30
35
  setExpandedKeys = _useState2[1];
@@ -34,6 +39,17 @@ var NavBar = function NavBar(props) {
34
39
  selectedKeys = _useProgressiveState2[0],
35
40
  setSelectedKeys = _useProgressiveState2[1];
36
41
 
42
+ var items = useMemo(function () {
43
+ return _Array$isArray(children) ? _mapInstanceProperty(children).call(children, function (child) {
44
+ return {
45
+ item: child,
46
+ key: uuid()
47
+ };
48
+ }) : [{
49
+ item: children,
50
+ key: uuid()
51
+ }];
52
+ }, [children]);
37
53
  return ___EmotionJSX(NavBarContext.Provider, {
38
54
  value: {
39
55
  selectedKey: selectedKeys,
@@ -45,7 +61,44 @@ var NavBar = function NavBar(props) {
45
61
  variant: "navBar.container",
46
62
  role: "navigation",
47
63
  as: "nav"
48
- }, props.children));
64
+ }, items.length ? ___EmotionJSX(FocusScope, {
65
+ restoreFocus: true,
66
+ autoFocus: true
67
+ }, _mapInstanceProperty(items).call(items, function (_ref) {
68
+ var item = _ref.item,
69
+ key = _ref.key;
70
+ return ___EmotionJSX(FocusableItem, {
71
+ key: key
72
+ }, item);
73
+ })) : null));
74
+ };
75
+
76
+ var FocusableItem = function FocusableItem(props) {
77
+ var focusManager = useFocusManager();
78
+
79
+ var onKeyDown = function onKeyDown(e) {
80
+ switch (e.key) {
81
+ case 'ArrowRight':
82
+ case 'ArrowDown':
83
+ e.preventDefault();
84
+ focusManager.focusNext();
85
+ break;
86
+
87
+ case 'ArrowLeft':
88
+ case 'ArrowUp':
89
+ e.preventDefault();
90
+ focusManager.focusPrevious();
91
+ break;
92
+
93
+ default:
94
+ break;
95
+ }
96
+ };
97
+
98
+ var childWithFocusHandle = /*#__PURE__*/React.cloneElement(props.children, {
99
+ onKeyDown: onKeyDown
100
+ });
101
+ return childWithFocusHandle;
49
102
  };
50
103
 
51
104
  NavBar.propTypes = {