@pingux/astro 2.4.2-alpha.0 → 2.5.0-alpha.0

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 (35) hide show
  1. package/lib/cjs/components/Button/Buttons.styles.js +14 -0
  2. package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +95 -48
  3. package/lib/cjs/components/Input/Input.styles.js +4 -1
  4. package/lib/cjs/components/NavBar/NavBar.js +22 -7
  5. package/lib/cjs/components/NavBar/NavBar.styles.js +126 -1
  6. package/lib/cjs/components/NavBarSection/NavBarItem.js +2 -2
  7. package/lib/cjs/components/NavBarSection/NavBarItemBody.js +3 -4
  8. package/lib/cjs/components/NavBarSection/NavBarItemBody.test.js +3 -2
  9. package/lib/cjs/components/NavBarSection/NavBarItemButton.js +2 -17
  10. package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +19 -11
  11. package/lib/cjs/components/NavBarSection/NavBarItemLink.js +1 -1
  12. package/lib/cjs/components/NavBarSection/NavBarSection.js +20 -7
  13. package/lib/cjs/hooks/useNavBarStyling/index.js +14 -0
  14. package/lib/cjs/hooks/useNavBarStyling/useNavBarStyling.js +49 -0
  15. package/lib/cjs/hooks/useNavBarStyling/useNavBarStyling.test.js +45 -0
  16. package/lib/cjs/recipes/MultipagePopup.stories.js +378 -0
  17. package/lib/cjs/styles/templates/Nav/HeaderBar.js +1 -1
  18. package/lib/components/Button/Buttons.styles.js +14 -0
  19. package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +93 -47
  20. package/lib/components/Input/Input.styles.js +4 -1
  21. package/lib/components/NavBar/NavBar.js +22 -7
  22. package/lib/components/NavBar/NavBar.styles.js +126 -1
  23. package/lib/components/NavBarSection/NavBarItem.js +2 -2
  24. package/lib/components/NavBarSection/NavBarItemBody.js +3 -4
  25. package/lib/components/NavBarSection/NavBarItemBody.test.js +3 -2
  26. package/lib/components/NavBarSection/NavBarItemButton.js +2 -18
  27. package/lib/components/NavBarSection/NavBarItemHeader.js +19 -11
  28. package/lib/components/NavBarSection/NavBarItemLink.js +1 -1
  29. package/lib/components/NavBarSection/NavBarSection.js +21 -8
  30. package/lib/hooks/useNavBarStyling/index.js +1 -0
  31. package/lib/hooks/useNavBarStyling/useNavBarStyling.js +41 -0
  32. package/lib/hooks/useNavBarStyling/useNavBarStyling.test.js +42 -0
  33. package/lib/recipes/MultipagePopup.stories.js +365 -0
  34. package/lib/styles/templates/Nav/HeaderBar.js +1 -1
  35. package/package.json +1 -1
@@ -42,7 +42,8 @@ var NavBarSectionItemHeader = function NavBarSectionItemHeader(props) {
42
42
  var navBarState = (0, _NavBarContext.useNavBarContext)();
43
43
  var selectedKey = navBarState.selectedKey,
44
44
  setExpandedKeys = navBarState.setExpandedKeys,
45
- expandedKeys = navBarState.expandedKeys;
45
+ expandedKeys = navBarState.expandedKeys,
46
+ navStyles = navBarState.navStyles;
46
47
  var isExpanded = (0, _includes["default"])(expandedKeys).call(expandedKeys, key);
47
48
  var array = (0, _map["default"])(_context = item.children).call(_context, function (i) {
48
49
  return i.key;
@@ -58,9 +59,14 @@ var NavBarSectionItemHeader = function NavBarSectionItemHeader(props) {
58
59
  isSelected: childSelected && !isExpanded
59
60
  }),
60
61
  classNames = _useStatusClasses.classNames;
61
- var color = childSelected && !isExpanded ? 'white' : 'neutral.95';
62
+ var getIconColor = function getIconColor() {
63
+ if (navStyles.navBarItemHeader === 'navBar.popUpItemHeaderContainer') {
64
+ return childSelected && !isExpanded ? 'white' : 'text.primary';
65
+ }
66
+ return childSelected && !isExpanded ? 'white' : 'neutral.95';
67
+ };
62
68
  return (0, _react2.jsx)(_index.Box, {
63
- variant: "navBar.itemHeaderContainer",
69
+ variant: navStyles.navBarItemHeader,
64
70
  className: classNames,
65
71
  isRow: true,
66
72
  "data-testid": heading
@@ -69,12 +75,12 @@ var NavBarSectionItemHeader = function NavBarSectionItemHeader(props) {
69
75
  size: "sm",
70
76
  sx: {
71
77
  mr: 'sm',
72
- color: color,
73
- fill: color
78
+ color: getIconColor(),
79
+ fill: getIconColor()
74
80
  },
75
81
  "aria-hidden": "true"
76
82
  }), (0, _react2.jsx)(_index.Text, {
77
- variant: "variants.navBar.headerText"
83
+ variant: navStyles.navBarItemHeaderText
78
84
  }, heading), (0, _react2.jsx)(_index.Box, {
79
85
  isRow: true,
80
86
  alignItems: "center",
@@ -83,10 +89,10 @@ var NavBarSectionItemHeader = function NavBarSectionItemHeader(props) {
83
89
  }
84
90
  }, (0, _react2.jsx)(_index.Icon, {
85
91
  icon: isExpanded ? _MenuUpIcon["default"] : _MenuDownIcon["default"],
86
- size: "sm",
92
+ size: navStyles.navBarItemHeaderIconSize,
87
93
  sx: {
88
- color: color,
89
- fill: color
94
+ color: getIconColor(),
95
+ fill: getIconColor()
90
96
  },
91
97
  "aria-label": isExpanded ? 'Menu up' : 'Menu down'
92
98
  })));
@@ -97,8 +103,10 @@ var NavBarPrimaryItemHeader = function NavBarPrimaryItemHeader(_ref) {
97
103
  className = item.className,
98
104
  heading = item.heading,
99
105
  customIcon = item.customIcon;
106
+ var navBarState = (0, _NavBarContext.useNavBarContext)();
107
+ var navStyles = navBarState.navStyles;
100
108
  return (0, _react2.jsx)(_index.Box, {
101
- variant: "navBar.itemHeaderContainer",
109
+ variant: navStyles.navBarItemHeader,
102
110
  className: className,
103
111
  isRow: true,
104
112
  "data-testid": heading
@@ -112,7 +120,7 @@ var NavBarPrimaryItemHeader = function NavBarPrimaryItemHeader(_ref) {
112
120
  },
113
121
  "aria-hidden": "true"
114
122
  }), (0, _react2.jsx)(_index.Text, {
115
- variant: "variants.navBar.headerText"
123
+ variant: navStyles.navBarItemHeaderText
116
124
  }, heading), (0, _react2.jsx)(_index.Box, {
117
125
  isRow: true,
118
126
  alignItems: "center",
@@ -43,7 +43,7 @@ var NavBarItemLink = function NavBarItemLink(props) {
43
43
  classNames = _useStatusClasses.classNames;
44
44
  return (0, _react2.jsx)(_index.Link, (0, _extends2["default"])({
45
45
  id: key,
46
- variant: "variants.navBar.itemButton",
46
+ variant: state.navStyles.navBarItemLink,
47
47
  className: classNames,
48
48
  onPress: onNavPress,
49
49
  color: isSelected ? 'white' : undefined
@@ -24,7 +24,7 @@ var _NavBarContext = require("../../context/NavBarContext");
24
24
  var _NavBarItemBody = _interopRequireDefault(require("./NavBarItemBody"));
25
25
  var _NavBarItemHeader = _interopRequireDefault(require("./NavBarItemHeader"));
26
26
  var _react2 = require("@emotion/react");
27
- var _excluded = ["hasSeparator", "title", "items"],
27
+ var _excluded = ["hasSeparator", "title", "items", "onKeyDown"],
28
28
  _excluded2 = ["key", "children"];
29
29
  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); }
30
30
  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; }
@@ -38,11 +38,13 @@ var NavBarSection = function NavBarSection(_ref) {
38
38
  var hasSeparator = _ref.hasSeparator,
39
39
  title = _ref.title,
40
40
  items = _ref.items,
41
+ onKeyDown = _ref.onKeyDown,
41
42
  others = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
42
43
  var ref = (0, _react.useRef)();
43
44
  var childrenItems = (0, _filter["default"])(items).call(items, function (item) {
44
45
  return item.children || item.href;
45
46
  });
47
+ var state = (0, _NavBarContext.useNavBarContext)();
46
48
  return (0, _react2.jsx)(_react["default"].Fragment, null, hasSeparator && (0, _react2.jsx)(_.Separator, {
47
49
  variant: "separator.navBarSeparator"
48
50
  }), title && (0, _react2.jsx)(_.Text, {
@@ -56,19 +58,23 @@ var NavBarSection = function NavBarSection(_ref) {
56
58
  listStyle: 'none'
57
59
  }
58
60
  }, others), (0, _map["default"])(childrenItems).call(childrenItems, function (item) {
59
- return (0, _react2.jsx)("li", {
60
- key: item.key
61
+ return (0, _react2.jsx)(_.Box, {
62
+ as: "li",
63
+ key: item.key,
64
+ variant: state.navStyles.navBarItemHeaderListItem
61
65
  }, !item.children && item.href ? (0, _react2.jsx)(PrimaryItem, {
62
66
  key: item.key,
63
67
  item: item
64
68
  }) : (0, _react2.jsx)(SectionItem, {
65
69
  key: item.key,
66
- item: item
70
+ item: item,
71
+ onKeyDown: onKeyDown
67
72
  }));
68
73
  })));
69
74
  };
70
75
  var SectionItem = function SectionItem(_ref2) {
71
- var item = _ref2.item;
76
+ var item = _ref2.item,
77
+ onKeyDownProp = _ref2.onKeyDown;
72
78
  var key = item.key,
73
79
  children = item.children,
74
80
  others = (0, _objectWithoutProperties2["default"])(item, _excluded2);
@@ -119,6 +125,9 @@ var SectionItem = function SectionItem(_ref2) {
119
125
  default:
120
126
  break;
121
127
  }
128
+ if (onKeyDownProp) {
129
+ onKeyDownProp(e);
130
+ }
122
131
  };
123
132
  var _useKeyboard = (0, _interactions.useKeyboard)({
124
133
  onKeyDown: function onKeyDown(e) {
@@ -128,7 +137,7 @@ var SectionItem = function SectionItem(_ref2) {
128
137
  }),
129
138
  keyboardProps = _useKeyboard.keyboardProps;
130
139
  return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.Button, (0, _extends2["default"])({
131
- variant: "variants.navBar.sectionButton",
140
+ variant: navBarState.navStyles.sectionItem,
132
141
  onPress: function onPress() {
133
142
  return onExpandedChange(!isExpanded);
134
143
  }
@@ -141,8 +150,9 @@ var SectionItem = function SectionItem(_ref2) {
141
150
  };
142
151
  var PrimaryItem = function PrimaryItem(_ref3) {
143
152
  var item = _ref3.item;
153
+ var state = (0, _NavBarContext.useNavBarContext)();
144
154
  return (0, _react2.jsx)(_.Link, {
145
- variant: "variants.navBar.sectionButton",
155
+ variant: state.navStyles.primaryItem,
146
156
  href: item.href,
147
157
  target: "_blank"
148
158
  }, (0, _react2.jsx)(_NavBarItemHeader["default"], {
@@ -155,6 +165,8 @@ NavBarSection.defaultProps = {
155
165
  NavBarSection.propTypes = {
156
166
  /** If true, a separator will render at the end of the section */
157
167
  hasSeparator: _propTypes["default"].bool,
168
+ /** callback that runs on key down */
169
+ onKeyDown: _propTypes["default"].func,
158
170
  /** If present, this string will render at the top of the section */
159
171
  title: _propTypes["default"].string,
160
172
  /**
@@ -164,6 +176,7 @@ NavBarSection.propTypes = {
164
176
  items: _propTypes["default"].arrayOf(_propTypes["default"].shape({}))
165
177
  };
166
178
  SectionItem.propTypes = {
179
+ onKeyDown: _propTypes["default"].func,
167
180
  item: _propTypes["default"].shape({
168
181
  key: _propTypes["default"].string,
169
182
  children: _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object])),
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ _Object$defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _useNavBarStyling["default"];
12
+ }
13
+ });
14
+ var _useNavBarStyling = _interopRequireDefault(require("./useNavBarStyling"));
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ /**
9
+ * Generates the necessary props to be used in field components.
10
+ * @param {String} variant Variant for the overall NavBar
11
+ * @returns {Object} Prop object that distributes styling to various sub-components.
12
+ */
13
+
14
+ var useNavBarStyling = function useNavBarStyling(variant) {
15
+ switch (variant) {
16
+ case 'popupNav':
17
+ return {
18
+ navBar: 'navBar.popUpContainer',
19
+ primaryItem: 'variants.navBar.popUpSectionButton',
20
+ sectionItem: 'variants.navBar.popUpSectionButton',
21
+ navBarItemHeader: 'navBar.popUpItemHeaderContainer',
22
+ navBarItemHeaderText: 'variants.navBar.popUpHeaderText',
23
+ navBarItemButton: 'variants.navBar.popUpItemButton',
24
+ navBarItemLink: 'variants.navBar.popUpItemButton',
25
+ navBarItem: 'navBar.popUpItem',
26
+ navBarItemText: 'variants.navBar.popUpHeaderText',
27
+ navBarItemHeaderListItem: 'variants.navBar.popUpItemListItem',
28
+ navBarItemBody: 'variants.navBar.popUpNavBarItemBody',
29
+ navBarItemHeaderIconSize: 'xs'
30
+ };
31
+ default:
32
+ return {
33
+ navBar: 'navBar.container',
34
+ primaryItem: 'variants.navBar.sectionButton',
35
+ sectionItem: 'variants.navBar.sectionButton',
36
+ navBarItemHeader: 'navBar.itemHeaderContainer',
37
+ navBarItemHeaderText: 'variants.navBar.headerText',
38
+ navBarItemButton: 'variants.navBar.itemButton',
39
+ navBarItemLink: 'variants.navBar.itemButton',
40
+ navBarItem: 'navBar.item',
41
+ navBarItemText: 'variants.navBar.headerText',
42
+ navBarItemHeaderListItem: null,
43
+ navBarItemBody: 'variants.navBar.navBarItemBody',
44
+ navBarItemHeaderIconSize: 'sm'
45
+ };
46
+ }
47
+ };
48
+ var _default = useNavBarStyling;
49
+ exports["default"] = _default;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ var _reactHooks = require("@testing-library/react-hooks");
5
+ var _ = _interopRequireDefault(require("."));
6
+ test('popUpNav variant returns the correct variants', function () {
7
+ var _renderHook = (0, _reactHooks.renderHook)(function () {
8
+ return (0, _["default"])('popupNav');
9
+ }),
10
+ result = _renderHook.result;
11
+ expect(result.current).toMatchObject({
12
+ navBar: 'navBar.popUpContainer',
13
+ primaryItem: 'variants.navBar.popUpSectionButton',
14
+ sectionItem: 'variants.navBar.popUpSectionButton',
15
+ navBarItemHeader: 'navBar.popUpItemHeaderContainer',
16
+ navBarItemHeaderText: 'variants.navBar.popUpHeaderText',
17
+ navBarItemButton: 'variants.navBar.popUpItemButton',
18
+ navBarItemLink: 'variants.navBar.popUpItemButton',
19
+ navBarItem: 'navBar.popUpItem',
20
+ navBarItemText: 'variants.navBar.popUpHeaderText',
21
+ navBarItemHeaderListItem: 'variants.navBar.popUpItemListItem',
22
+ navBarItemBody: 'variants.navBar.popUpNavBarItemBody',
23
+ navBarItemHeaderIconSize: 'xs'
24
+ });
25
+ });
26
+ test('default prop returns standard nav variants', function () {
27
+ var _renderHook2 = (0, _reactHooks.renderHook)(function () {
28
+ return (0, _["default"])('');
29
+ }),
30
+ result = _renderHook2.result;
31
+ expect(result.current).toMatchObject({
32
+ navBar: 'navBar.container',
33
+ primaryItem: 'variants.navBar.sectionButton',
34
+ sectionItem: 'variants.navBar.sectionButton',
35
+ navBarItemHeader: 'navBar.itemHeaderContainer',
36
+ navBarItemHeaderText: 'variants.navBar.headerText',
37
+ navBarItemButton: 'variants.navBar.itemButton',
38
+ navBarItemLink: 'variants.navBar.itemButton',
39
+ navBarItem: 'navBar.item',
40
+ navBarItemText: 'variants.navBar.headerText',
41
+ navBarItemHeaderListItem: null,
42
+ navBarItemBody: 'variants.navBar.navBarItemBody',
43
+ navBarItemHeaderIconSize: 'sm'
44
+ });
45
+ });
@@ -0,0 +1,378 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
6
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
9
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
10
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
11
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
12
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
13
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
14
+ _Object$defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ exports["default"] = exports.Default = void 0;
18
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
20
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
21
+ var _react = _interopRequireWildcard(require("react"));
22
+ var _reactAria = require("react-aria");
23
+ var _reactStately = require("react-stately");
24
+ var _utils = require("@react-aria/utils");
25
+ var _CompassOutlineIcon = _interopRequireDefault(require("mdi-react/CompassOutlineIcon"));
26
+ var _GlobeIcon = _interopRequireDefault(require("mdi-react/GlobeIcon"));
27
+ var _HelpCircleOutlineIcon = _interopRequireDefault(require("mdi-react/HelpCircleOutlineIcon"));
28
+ var _MenuDownIcon = _interopRequireDefault(require("mdi-react/MenuDownIcon"));
29
+ var _MenuUpIcon = _interopRequireDefault(require("mdi-react/MenuUpIcon"));
30
+ var _index = require("../index");
31
+ var _NavData = require("../styles/templates/Nav/NavData");
32
+ var _react2 = require("@emotion/react");
33
+ 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); }
34
+ 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; }
35
+ 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; }
36
+ 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; }
37
+ var _default = {
38
+ title: 'Recipes/Multipage Popup',
39
+ parameters: {
40
+ backgrounds: {
41
+ "default": 'accent',
42
+ values: [{
43
+ name: 'accent',
44
+ value: 'accent.99'
45
+ }]
46
+ }
47
+ }
48
+ };
49
+ exports["default"] = _default;
50
+ var dataPopUp = [{
51
+ 'data-id': 'orchestrate',
52
+ key: 'Orchestrate',
53
+ heading: 'Orchestrate',
54
+ children: [(0, _react2.jsx)(_index.NavBarItemButton, {
55
+ key: "PingOne DaVinci",
56
+ id: "PingOne DaVinci"
57
+ }, (0, _react2.jsx)("b", null, "PingOne "), "DaVinci")]
58
+ }];
59
+ var secondDataPopUp = [{
60
+ 'data-id': 'threat-protection',
61
+ key: 'Threat Protection',
62
+ heading: 'Threat Protection',
63
+ children: [(0, _react2.jsx)(_index.NavBarItemButton, {
64
+ key: "protect",
65
+ id: "protect"
66
+ }, (0, _react2.jsx)("b", null, "PingOne "), "Risk"), (0, _react2.jsx)(_index.NavBarItemButton, {
67
+ key: "Api Intel",
68
+ id: "Api Intel"
69
+ }, (0, _react2.jsx)("b", null, "PingOne "), "API Intelligence"), (0, _react2.jsx)(_index.NavBarItemButton, {
70
+ key: "Intel for Api",
71
+ id: "Intel for Api"
72
+ }, (0, _react2.jsx)("b", null, "Ping "), "Intelligence for APIs")]
73
+ }];
74
+ var thirdDataPopUp = [{
75
+ 'data-id': 'threat-protection',
76
+ key: 'Identity',
77
+ heading: 'Identity',
78
+ children: [(0, _react2.jsx)(_index.NavBarItemButton, {
79
+ key: "verify",
80
+ id: "verify"
81
+ }, (0, _react2.jsx)("b", null, "PingOne "), "Verify"), (0, _react2.jsx)(_index.NavBarItemButton, {
82
+ key: "credentials",
83
+ id: "credentials"
84
+ }, (0, _react2.jsx)("b", null, "PingOne "), "Crendentials"), (0, _react2.jsx)(_index.NavBarItemButton, {
85
+ key: "directory",
86
+ id: "directory"
87
+ }, (0, _react2.jsx)("b", null, "Ping"), "Directory"), (0, _react2.jsx)(_index.NavBarItemButton, {
88
+ key: "sso1",
89
+ id: "sso1"
90
+ }, (0, _react2.jsx)("b", null, "Ping One "), "SSO")]
91
+ }];
92
+ var fourthDataPopUp = [{
93
+ 'data-id': 'threat-protection',
94
+ key: 'Authenticate',
95
+ heading: 'Authenticate',
96
+ children: [(0, _react2.jsx)(_index.NavBarItemButton, {
97
+ key: "sso",
98
+ id: "sso"
99
+ }, (0, _react2.jsx)("b", null, "PingOne "), "SSO"), (0, _react2.jsx)(_index.NavBarItemButton, {
100
+ key: "federate",
101
+ id: "federate"
102
+ }, (0, _react2.jsx)("b", null, "Ping"), "Federate"), (0, _react2.jsx)(_index.NavBarItemButton, {
103
+ key: "MFA",
104
+ id: "MFA"
105
+ }, (0, _react2.jsx)("b", null, "PingOne "), "MFA"), (0, _react2.jsx)(_index.NavBarItemButton, {
106
+ key: "id",
107
+ id: "id"
108
+ }, (0, _react2.jsx)("b", null, "Ping"), "ID"), (0, _react2.jsx)(_index.NavBarItemButton, {
109
+ key: "central",
110
+ id: "central"
111
+ }, (0, _react2.jsx)("b", null, "Ping"), "Central")]
112
+ }];
113
+ var fifthDataPopUp = [{
114
+ 'data-id': 'authorize',
115
+ key: 'Authorize',
116
+ heading: 'Authorize',
117
+ children: [(0, _react2.jsx)(_index.NavBarItemButton, {
118
+ key: "PingOne Authorize",
119
+ id: "PingOne Authorize"
120
+ }, (0, _react2.jsx)("b", null, "PingOne "), "Authorize"), (0, _react2.jsx)(_index.NavBarItemButton, {
121
+ key: "Ping Authorize",
122
+ id: "Ping Authorize"
123
+ }, (0, _react2.jsx)("b", null, "Ping"), "Authorize"), (0, _react2.jsx)(_index.NavBarItemButton, {
124
+ key: "Ping Access",
125
+ id: "Ping Access"
126
+ }, (0, _react2.jsx)("b", null, "Ping"), "Access")]
127
+ }];
128
+ var SideNav = function SideNav(_ref) {
129
+ var setSelectedKey = _ref.setSelectedKey,
130
+ selectedKey = _ref.selectedKey;
131
+ return (0, _react2.jsx)(_index.NavBar, {
132
+ setSelectedKey: setSelectedKey,
133
+ selectedKey: selectedKey
134
+ }, (0, _react2.jsx)(_index.Box, {
135
+ padding: "md",
136
+ key: "top-logo-parent"
137
+ }, (0, _react2.jsx)(_index.Link, {
138
+ href: "https://pingidentity.com",
139
+ target: "_blank",
140
+ "aria-label": "home link"
141
+ }, _NavData.logo)), (0, _react2.jsx)(_index.Separator, {
142
+ marginTop: "lg",
143
+ marginBottom: "sm"
144
+ }), (0, _react2.jsx)(_index.Box, {
145
+ variant: "navBar.sectionContainer",
146
+ paddingBottom: "xl",
147
+ key: "first-section-container"
148
+ }, (0, _react2.jsx)(_index.NavBarItem, {
149
+ id: "Overview",
150
+ key: "Overview",
151
+ text: "Overview",
152
+ icon: _GlobeIcon["default"]
153
+ }), (0, _react2.jsx)(_index.NavBarSection, {
154
+ items: _NavData.data,
155
+ hasSeparator: true
156
+ }), (0, _react2.jsx)(_index.NavBarSection, {
157
+ items: _NavData.secondData,
158
+ hasSeparator: true,
159
+ title: "PingOne Services"
160
+ }), (0, _react2.jsx)(_index.NavBarSection, {
161
+ items: _NavData.thirdData
162
+ })));
163
+ };
164
+ var CustomPopover = function CustomPopover() {
165
+ var _useState = (0, _react.useState)('PingOne DaVinci'),
166
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
167
+ selectedKey = _useState2[0],
168
+ setSelectedKey = _useState2[1];
169
+ var triggerRef = (0, _react.useRef)();
170
+ var overlayRef = (0, _react.useRef)();
171
+ var state = (0, _reactStately.useOverlayTriggerState)({});
172
+ var _useOverlayTrigger = (0, _reactAria.useOverlayTrigger)({
173
+ type: 'dialog'
174
+ }, state, triggerRef),
175
+ triggerProps = _useOverlayTrigger.triggerProps,
176
+ overlayProps = _useOverlayTrigger.overlayProps;
177
+ var _useOverlayPosition = (0, _reactAria.useOverlayPosition)({
178
+ targetRef: triggerRef,
179
+ overlayRef: overlayRef,
180
+ placement: 'bottom right',
181
+ isOpen: state.isOpen,
182
+ offset: 6
183
+ }),
184
+ positionProps = _useOverlayPosition.overlayProps,
185
+ placement = _useOverlayPosition.placement,
186
+ updatePosition = _useOverlayPosition.updatePosition;
187
+ (0, _utils.useLayoutEffect)(function () {
188
+ requestAnimationFrame(function () {
189
+ updatePosition();
190
+ });
191
+ }, [updatePosition]);
192
+ var style = _objectSpread(_objectSpread({}, positionProps.style), {}, {
193
+ width: '760px',
194
+ minWidth: '760px',
195
+ height: '800px',
196
+ boxShadow: 'none !important'
197
+ });
198
+ var onEscCloseNav = function onEscCloseNav(e) {
199
+ if (e.key === 'Escape') {
200
+ state.close();
201
+ }
202
+ };
203
+ return (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
204
+ ref: triggerRef,
205
+ variant: "headerBar"
206
+ }, triggerProps), (0, _react2.jsx)(_index.Box, {
207
+ isRow: true,
208
+ alignItems: "center"
209
+ }, (0, _react2.jsx)(_index.Icon, {
210
+ icon: _CompassOutlineIcon["default"],
211
+ size: "sm"
212
+ }), (0, _react2.jsx)(_index.Text, {
213
+ color: "neutral.30",
214
+ fontSize: "md",
215
+ fontWeight: 1,
216
+ mx: 7,
217
+ variant: "textEllipsis"
218
+ }, "Explore"), (0, _react2.jsx)(_index.Icon, {
219
+ icon: state.isOpen ? _MenuUpIcon["default"] : _MenuDownIcon["default"],
220
+ mr: "sm",
221
+ size: "sm"
222
+ }))), (0, _react2.jsx)(_index.PopoverContainer, (0, _extends2["default"])({}, overlayProps, positionProps, {
223
+ isOpen: state.isOpen,
224
+ hasNoArrow: true,
225
+ ref: overlayRef,
226
+ placement: placement,
227
+ style: style,
228
+ onClose: state.close,
229
+ isDismissable: true,
230
+ isNotClosedOnBlur: true
231
+ }), (0, _react2.jsx)(_reactAria.FocusScope, {
232
+ autoFocus: true,
233
+ contain: true,
234
+ restoreFocus: true
235
+ }, (0, _react2.jsx)(_index.Box, {
236
+ sx: {
237
+ height: '100%'
238
+ }
239
+ }, (0, _react2.jsx)(_index.NavBar, {
240
+ variant: "popupNav",
241
+ hasRestoreFocus: false,
242
+ setSelectedKey: setSelectedKey,
243
+ selectedKey: selectedKey
244
+ }, (0, _react2.jsx)(_index.Box, {
245
+ variant: "navBar.popUpSectionContainer",
246
+ paddingBottom: "xl",
247
+ key: "first-section-container"
248
+ }, (0, _react2.jsx)(_index.NavBarSection, {
249
+ items: dataPopUp,
250
+ "data-id": "third-nav-bar-section",
251
+ onKeyDown: onEscCloseNav
252
+ }), (0, _react2.jsx)(_index.NavBarSection, {
253
+ items: secondDataPopUp,
254
+ "data-id": "third-nav-bar-section",
255
+ onKeyDown: onEscCloseNav
256
+ }), (0, _react2.jsx)(_index.NavBarSection, {
257
+ items: thirdDataPopUp,
258
+ "data-id": "third-nav-bar-section",
259
+ onKeyDown: onEscCloseNav
260
+ }), (0, _react2.jsx)(_index.NavBarSection, {
261
+ items: fourthDataPopUp,
262
+ "data-id": "third-nav-bar-section",
263
+ onKeyDown: onEscCloseNav
264
+ }), (0, _react2.jsx)(_index.NavBarSection, {
265
+ items: fifthDataPopUp,
266
+ "data-id": "third-nav-bar-section",
267
+ onKeyDown: onEscCloseNav
268
+ }))), (0, _react2.jsx)(_index.Box, {
269
+ sx: {
270
+ marginLeft: '185px',
271
+ height: '100%',
272
+ width: 'calc(100% - 185px)',
273
+ backgroundColor: 'white',
274
+ padding: 'lg'
275
+ }
276
+ }, (0, _react2.jsx)(_index.Text, {
277
+ as: "h2",
278
+ variant: "H2"
279
+ }, selectedKey), (0, _react2.jsx)("br", null), (0, _react2.jsx)(_index.Button, null, "Example of focusable element in the body"))))));
280
+ };
281
+ var CustomPopoverMenu = function CustomPopoverMenu() {
282
+ var _useState3 = (0, _react.useState)(false),
283
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
284
+ isOpen = _useState4[0],
285
+ setIsOpen = _useState4[1];
286
+ return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.PopoverMenu, {
287
+ onOpenChange: setIsOpen
288
+ }, (0, _react2.jsx)(_index.IconButton, {
289
+ "aria-label": "default icon button"
290
+ }, (0, _react2.jsx)(_index.Icon, {
291
+ icon: _MenuDownIcon["default"],
292
+ size: "xs",
293
+ color: "neutral.30",
294
+ sx: isOpen ? {
295
+ transform: 'rotate(180deg)'
296
+ } : null
297
+ })), (0, _react2.jsx)(_index.Menu, null, (0, _react2.jsx)(_index.Item, {
298
+ key: "option1"
299
+ }, "First Option"), (0, _react2.jsx)(_index.Item, {
300
+ key: "option2"
301
+ }, "Second Option"), (0, _react2.jsx)(_index.Item, {
302
+ key: "option3"
303
+ }, "Third Option"))));
304
+ };
305
+ var HeaderBar = function HeaderBar() {
306
+ var Rectangle = function Rectangle() {
307
+ return (0, _react2.jsx)(_index.Box, {
308
+ width: "1px",
309
+ height: 30,
310
+ bg: "neutral.80",
311
+ mx: 25
312
+ });
313
+ };
314
+ return (0, _react2.jsx)(_index.Box, {
315
+ ml: 230,
316
+ px: "md",
317
+ bg: "white",
318
+ height: "40px",
319
+ isRow: true,
320
+ alignItems: "center",
321
+ justifyContent: "space-between"
322
+ }, (0, _react2.jsx)(_index.EnvironmentBreadcrumb, {
323
+ name: "Globochem"
324
+ }), (0, _react2.jsx)(_index.Box, {
325
+ isRow: true
326
+ }, (0, _react2.jsx)(_index.Box, {
327
+ isRow: true,
328
+ alignItems: "center"
329
+ }, (0, _react2.jsx)(_index.Icon, {
330
+ icon: _HelpCircleOutlineIcon["default"],
331
+ size: 20,
332
+ color: "neutral.30"
333
+ }), (0, _react2.jsx)(CustomPopoverMenu, null)), (0, _react2.jsx)(Rectangle, null), (0, _react2.jsx)(_index.Box, {
334
+ isRow: true,
335
+ color: "neutral.30",
336
+ alignItems: "center",
337
+ id: "customparent"
338
+ }, (0, _react2.jsx)(CustomPopover, null)), (0, _react2.jsx)(Rectangle, null), (0, _react2.jsx)(_index.Box, {
339
+ isRow: true,
340
+ color: "neutral.30",
341
+ alignItems: "center"
342
+ }, (0, _react2.jsx)(_index.Icon, {
343
+ icon: _NavData.PersonIcon,
344
+ size: 20
345
+ }), (0, _react2.jsx)(_index.Text, {
346
+ color: "neutral.30",
347
+ fontSize: "md",
348
+ fontWeight: 1,
349
+ mx: 7,
350
+ variant: "textEllipsis"
351
+ }, "Alyssa Chambers"), (0, _react2.jsx)(CustomPopoverMenu, null))));
352
+ };
353
+ var Default = function Default() {
354
+ var _useState5 = (0, _react.useState)('Overview'),
355
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
356
+ selectedKey = _useState6[0],
357
+ setSelectedKey = _useState6[1];
358
+ return (0, _react2.jsx)(_index.Box, {
359
+ bg: "accent.99",
360
+ height: "100vh"
361
+ }, (0, _react2.jsx)(SideNav, {
362
+ setSelectedKey: setSelectedKey,
363
+ selectedKey: selectedKey
364
+ }), (0, _react2.jsx)(HeaderBar, {
365
+ isOpen: false
366
+ }));
367
+ };
368
+ exports.Default = Default;
369
+ Default.decorators = [function (Story) {
370
+ return (0, _react2.jsx)(_index.Box, {
371
+ sx: {
372
+ margin: '-50px'
373
+ }
374
+ }, (0, _react2.jsx)(Story, null));
375
+ }];
376
+ Default.parameters = {
377
+ layout: 'fullscreen'
378
+ };