@pingux/astro 2.84.0-alpha.1 → 2.84.0-alpha.3

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 (80) hide show
  1. package/lib/cjs/components/CodeView/CodeView.js +5 -2
  2. package/lib/cjs/components/CodeView/CodeView.styles.d.ts +2 -1
  3. package/lib/cjs/components/CodeView/CodeView.styles.js +4 -3
  4. package/lib/cjs/components/Link/Link.js +3 -1
  5. package/lib/cjs/components/LinkSelectField/LinkSelectField.stories.js +3 -6
  6. package/lib/cjs/components/Menu/Menu.js +15 -3
  7. package/lib/cjs/components/Menu/Menu.test.js +23 -0
  8. package/lib/cjs/components/MenuItem/MenuItem.styles.d.ts +1 -0
  9. package/lib/cjs/components/MenuItem/MenuItem.styles.js +2 -1
  10. package/lib/cjs/components/MenuSection/MenuSection.d.ts +9 -0
  11. package/lib/cjs/components/MenuSection/MenuSection.js +76 -0
  12. package/lib/cjs/components/MenuSection/MenuSection.styles.d.ts +21 -0
  13. package/lib/cjs/components/MenuSection/MenuSection.styles.js +35 -0
  14. package/lib/cjs/components/MenuSection/MenuSection.test.d.ts +1 -0
  15. package/lib/cjs/components/MenuSection/MenuSection.test.js +100 -0
  16. package/lib/cjs/components/MenuSection/index.d.ts +1 -0
  17. package/lib/cjs/components/MenuSection/index.js +14 -0
  18. package/lib/cjs/components/PopoverMenu/PopoverMenu.stories.d.ts +2 -0
  19. package/lib/cjs/components/PopoverMenu/PopoverMenu.stories.js +73 -5
  20. package/lib/cjs/components/SelectField/SelectField.stories.js +3 -6
  21. package/lib/cjs/components/Tabs/Tabs.js +0 -1
  22. package/lib/cjs/components/Tabs/Tabs.style.d.ts +1 -0
  23. package/lib/cjs/components/Tabs/Tabs.style.js +2 -1
  24. package/lib/cjs/styles/theme.js +5 -1
  25. package/lib/cjs/styles/themes/next-gen/codeView/codeView.d.ts +105 -0
  26. package/lib/cjs/styles/themes/next-gen/codeView/codeView.js +134 -0
  27. package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
  28. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +278 -6
  29. package/lib/cjs/styles/themes/next-gen/next-gen.js +31 -4
  30. package/lib/cjs/styles/themes/next-gen/spacing.d.ts +9 -0
  31. package/lib/cjs/styles/themes/next-gen/spacing.js +17 -0
  32. package/lib/cjs/styles/themes/next-gen/text.d.ts +2 -2
  33. package/lib/cjs/styles/themes/next-gen/text.js +8 -13
  34. package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +36 -3
  35. package/lib/cjs/styles/themes/next-gen/variants/button.js +25 -5
  36. package/lib/cjs/styles/themes/next-gen/variants/cards.d.ts +20 -0
  37. package/lib/cjs/styles/themes/next-gen/variants/cards.js +28 -0
  38. package/lib/cjs/styles/themes/next-gen/variants/links.d.ts +56 -0
  39. package/lib/cjs/styles/themes/next-gen/variants/links.js +62 -0
  40. package/lib/cjs/styles/themes/next-gen/variants/text.d.ts +7 -0
  41. package/lib/cjs/styles/themes/next-gen/variants/text.js +9 -2
  42. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +31 -1
  43. package/lib/cjs/styles/themes/next-gen/variants/variants.js +38 -5
  44. package/lib/cjs/styles/variants/variants.js +2 -0
  45. package/lib/cjs/types/codeView.d.ts +1 -0
  46. package/lib/cjs/types/index.d.ts +1 -0
  47. package/lib/cjs/types/index.js +32 -21
  48. package/lib/cjs/types/link.d.ts +1 -0
  49. package/lib/cjs/types/menuSection.d.ts +24 -0
  50. package/lib/cjs/types/menuSection.js +6 -0
  51. package/lib/components/CodeView/CodeView.js +5 -2
  52. package/lib/components/CodeView/CodeView.styles.js +4 -3
  53. package/lib/components/Link/Link.js +3 -1
  54. package/lib/components/LinkSelectField/LinkSelectField.stories.js +4 -7
  55. package/lib/components/Menu/Menu.js +15 -3
  56. package/lib/components/Menu/Menu.test.js +24 -1
  57. package/lib/components/MenuItem/MenuItem.styles.js +2 -1
  58. package/lib/components/MenuSection/MenuSection.js +64 -0
  59. package/lib/components/MenuSection/MenuSection.styles.js +27 -0
  60. package/lib/components/MenuSection/MenuSection.test.js +97 -0
  61. package/lib/components/MenuSection/index.js +1 -0
  62. package/lib/components/PopoverMenu/PopoverMenu.stories.js +70 -4
  63. package/lib/components/SelectField/SelectField.stories.js +4 -7
  64. package/lib/components/Tabs/Tabs.js +0 -1
  65. package/lib/components/Tabs/Tabs.style.js +2 -1
  66. package/lib/styles/theme.js +5 -1
  67. package/lib/styles/themes/next-gen/codeView/codeView.js +126 -0
  68. package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
  69. package/lib/styles/themes/next-gen/next-gen.js +31 -4
  70. package/lib/styles/themes/next-gen/spacing.js +9 -0
  71. package/lib/styles/themes/next-gen/text.js +8 -13
  72. package/lib/styles/themes/next-gen/variants/button.js +25 -5
  73. package/lib/styles/themes/next-gen/variants/cards.js +20 -0
  74. package/lib/styles/themes/next-gen/variants/links.js +54 -0
  75. package/lib/styles/themes/next-gen/variants/text.js +9 -2
  76. package/lib/styles/themes/next-gen/variants/variants.js +38 -5
  77. package/lib/styles/variants/variants.js +2 -0
  78. package/lib/types/index.js +1 -0
  79. package/lib/types/menuSection.js +1 -0
  80. package/package.json +1 -1
@@ -29,7 +29,7 @@ var _ = require("../..");
29
29
  var _hooks = require("../../hooks");
30
30
  var _CodeView = _interopRequireDefault(require("./CodeView.styles"));
31
31
  var _react2 = require("@emotion/react");
32
- var _excluded = ["children", "className", "hasLineNumbers", "hasNoCopyButton", "language", "Prism"];
32
+ var _excluded = ["children", "className", "hasLineNumbers", "hasNoCopyButton", "language", "Prism", "stylesProp"];
33
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
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
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; }
@@ -41,6 +41,8 @@ var CodeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
41
41
  hasNoCopyButton = props.hasNoCopyButton,
42
42
  language = props.language,
43
43
  customPrism = props.Prism,
44
+ _props$stylesProp = props.stylesProp,
45
+ stylesProp = _props$stylesProp === void 0 ? _CodeView["default"] : _props$stylesProp,
44
46
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
45
47
  var _useFocusRing = (0, _focus.useFocusRing)(),
46
48
  isFocusVisible = _useFocusRing.isFocusVisible,
@@ -57,12 +59,13 @@ var CodeView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
57
59
  classNames = _useStatusClasses.classNames;
58
60
 
59
61
  // Get the width for the line number element depending on the total amount of lines
62
+
60
63
  var getLineNoWidth = function getLineNoWidth(tokens) {
61
64
  return tokens.length.toString().length * 12;
62
65
  };
63
66
  var code = (children === null || children === void 0 ? void 0 : (0, _trim["default"])(children).call(children)) || '';
64
67
  var content = (0, _react2.jsx)(_prismReactRenderer["default"], (0, _extends2["default"])({}, _prismReactRenderer.defaultProps, {
65
- theme: _CodeView["default"].theme,
68
+ theme: stylesProp.theme,
66
69
  code: code,
67
70
  language: language,
68
71
  Prism: customPrism || _prismReactRenderer.Prism
@@ -43,7 +43,7 @@ declare const _default: {
43
43
  pre: {
44
44
  backgroundColor: string;
45
45
  m: number;
46
- p: number;
46
+ p: string;
47
47
  pr: number;
48
48
  height: string;
49
49
  width: string;
@@ -51,6 +51,7 @@ declare const _default: {
51
51
  overflowY: string;
52
52
  fontFamily: string;
53
53
  fontSize: string;
54
+ lineHeight: string;
54
55
  '& .token-line': {
55
56
  display: string;
56
57
  alignItems: string;
@@ -112,14 +112,15 @@ var wrapper = {
112
112
  pre: {
113
113
  backgroundColor: 'transparent',
114
114
  m: 0,
115
- p: 10,
115
+ p: 'sm',
116
116
  pr: 0,
117
117
  height: '100%',
118
118
  width: '100%',
119
119
  overflowX: 'hidden',
120
120
  overflowY: 'auto',
121
- fontFamily: 'standard',
122
- fontSize: 'sm',
121
+ fontFamily: 'codeView',
122
+ fontSize: '13px',
123
+ lineHeight: 'md',
123
124
  '& .token-line': {
124
125
  display: 'block',
125
126
  alignItems: 'center',
@@ -17,13 +17,14 @@ var _interactions = require("@react-aria/interactions");
17
17
  var _themeUi = require("theme-ui");
18
18
  var _hooks = require("../../hooks");
19
19
  var _react2 = require("@emotion/react");
20
- var _excluded = ["className", "isDisabled", "onPress", "isSafariCompatible"];
20
+ var _excluded = ["className", "isDisabled", "onPress", "isSelected", "isSafariCompatible"];
21
21
  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); }
22
22
  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; }
23
23
  var Link = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
24
24
  var className = props.className,
25
25
  isDisabled = props.isDisabled,
26
26
  onPress = props.onPress,
27
+ isSelected = props.isSelected,
27
28
  isSafariCompatible = props.isSafariCompatible,
28
29
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
29
30
  var linkRef = (0, _react.useRef)(null);
@@ -46,6 +47,7 @@ var Link = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
46
47
  pressProps = _usePress.pressProps,
47
48
  isPressed = _usePress.isPressed;
48
49
  var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
50
+ isSelected: isSelected,
49
51
  isDisabled: isDisabled,
50
52
  isFocused: isFocusVisible,
51
53
  isHovered: isHovered,
@@ -181,18 +181,15 @@ exports.Controlled = Controlled;
181
181
  var WithNoneOption = function WithNoneOption() {
182
182
  return (0, _react2.jsx)(_index.LinkSelectField, {
183
183
  label: "What's your favorite color?"
184
- }, (0, _react2.jsx)(_index.Item, {
184
+ }, (0, _react2.jsx)(_index.Section, null, (0, _react2.jsx)(_index.Item, {
185
185
  key: "none"
186
- }, "None"), (0, _react2.jsx)(_index.Item, {
187
- isSeparator: true,
188
- textValue: "-"
189
- }, (0, _react2.jsx)(_index.Separator, null)), (0, _react2.jsx)(_index.Item, {
186
+ }, "None")), (0, _react2.jsx)(_index.Section, null, (0, _react2.jsx)(_index.Item, {
190
187
  key: "red"
191
188
  }, "Red"), (0, _react2.jsx)(_index.Item, {
192
189
  key: "blue"
193
190
  }, "Blue"), (0, _react2.jsx)(_index.Item, {
194
191
  key: "yellow"
195
- }, "Yellow"));
192
+ }, "Yellow")));
196
193
  };
197
194
  exports.WithNoneOption = WithNoneOption;
198
195
  var DisabledField = function DisabledField() {
@@ -30,6 +30,7 @@ var _hooks = require("../../hooks");
30
30
  var _orientation = _interopRequireDefault(require("../../utils/devUtils/constants/orientation"));
31
31
  var _Box = _interopRequireDefault(require("../Box"));
32
32
  var _MenuItem = _interopRequireDefault(require("../MenuItem"));
33
+ var _MenuSection = _interopRequireDefault(require("../MenuSection"));
33
34
  var _react2 = require("@emotion/react");
34
35
  var _excluded = ["isDisabled", "isNotFocusedOnHover", "onAction", "onHoverChange", "onHoverEnd", "onHoverStart", "onSelectionChange", "selectionMode"];
35
36
  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); }
@@ -77,10 +78,21 @@ var Menu = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
77
78
  "aria-orientation": _orientation["default"].VERTICAL
78
79
  }, others, (0, _reactAria.mergeProps)(focusProps, menuProps, hoverProps), {
79
80
  role: "menu"
80
- }), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
81
+ }), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (element) {
82
+ if (element.type === 'section') {
83
+ return (0, _react2.jsx)(_MenuSection["default"], {
84
+ key: element.key,
85
+ section: element,
86
+ state: state,
87
+ onAction: onAction,
88
+ isDisabled: isDisabled,
89
+ isFocusVisible: isFocusVisible,
90
+ isNotFocusedOnHover: isNotFocusedOnHover
91
+ });
92
+ }
81
93
  return (0, _react2.jsx)(_MenuItem["default"], {
82
- key: item.key,
83
- item: item,
94
+ key: element.key,
95
+ item: element,
84
96
  state: state,
85
97
  onAction: onAction,
86
98
  isDisabled: isDisabled,
@@ -54,6 +54,29 @@ test('should render basic menu with children', function () {
54
54
  expect(menuItems).toHaveLength(3);
55
55
  expect(menu).toHaveAttribute('aria-orientation', _orientation["default"].VERTICAL);
56
56
  });
57
+ test('should render sections when sections are passed as Children', function () {
58
+ var menuSections = [{
59
+ key: 'menuSection 1',
60
+ children: defaultItems
61
+ }, {
62
+ key: 'menuSection 2',
63
+ children: defaultItems
64
+ }];
65
+ (0, _testWrapper.render)((0, _react2.jsx)(_index.Menu, defaultProps, (0, _map["default"])(menuSections).call(menuSections, function (section) {
66
+ var _context;
67
+ return (0, _react2.jsx)(_index.Section, section, (0, _map["default"])(_context = section.children).call(_context, function (item) {
68
+ return (0, _react2.jsx)(_index.Item, (0, _extends2["default"])({
69
+ key: item.id
70
+ }, item));
71
+ }));
72
+ })));
73
+ var menu = _testWrapper.screen.queryByRole('menu');
74
+ expect(menu).toBeInTheDocument();
75
+ var menuSection = _testWrapper.screen.queryAllByRole('group');
76
+ expect(menuSection).toHaveLength(2);
77
+ var menuItems = _testWrapper.screen.getAllByRole('menuitem');
78
+ expect(menuItems).toHaveLength(6);
79
+ });
57
80
  test('should render items when selectionMode is set to single', function () {
58
81
  getComponent({
59
82
  selectionMode: 'single'
@@ -20,6 +20,7 @@ declare const _default: {
20
20
  '& > [role="separator"]': {
21
21
  margin: string;
22
22
  };
23
+ outline: string;
23
24
  };
24
25
  };
25
26
  export default _default;
@@ -25,7 +25,8 @@ var separator = {
25
25
  padding: '0px',
26
26
  '& > [role="separator"]': {
27
27
  margin: '0px'
28
- }
28
+ },
29
+ outline: 'none'
29
30
  };
30
31
  var _default = {
31
32
  item: item,
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { MenuSectionProps } from '../../types';
3
+ /**
4
+ * Menu Section component intended to be used within Menu or PopupMenu.
5
+ * This component is not intented to be used outside of Menu or independently.
6
+ * Utilizes [React Aria](https://react-spectrum.adobe.com/react-aria/useMenu.html)
7
+ */
8
+ declare const MenuSection: React.ForwardRefExoticComponent<MenuSectionProps & React.RefAttributes<HTMLDivElement>>;
9
+ export default MenuSection;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = void 0;
12
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
13
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _reactAria = require("react-aria");
17
+ var _hooks = require("../../hooks");
18
+ var _Box = _interopRequireDefault(require("../Box"));
19
+ var _MenuItem = _interopRequireDefault(require("../MenuItem"));
20
+ var _Separator = _interopRequireDefault(require("../Separator"));
21
+ var _react2 = require("@emotion/react");
22
+ 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); }
23
+ 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; }
24
+ /**
25
+ * Menu Section component intended to be used within Menu or PopupMenu.
26
+ * This component is not intented to be used outside of Menu or independently.
27
+ * Utilizes [React Aria](https://react-spectrum.adobe.com/react-aria/useMenu.html)
28
+ */var MenuSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
29
+ var _context;
30
+ var section = props.section,
31
+ state = props.state,
32
+ onAction = props.onAction,
33
+ isDisabled = props.isDisabled,
34
+ isFocusVisible = props.isFocusVisible,
35
+ isNotFocusedOnHover = props.isNotFocusedOnHover;
36
+ var menuSectionRef = (0, _hooks.useLocalOrForwardRef)(ref);
37
+ var _useMenuSection = (0, _reactAria.useMenuSection)({
38
+ heading: section.rendered,
39
+ 'aria-label': section['aria-label']
40
+ }),
41
+ itemProps = _useMenuSection.itemProps,
42
+ groupProps = _useMenuSection.groupProps,
43
+ headingProps = _useMenuSection.headingProps;
44
+ return (0, _react2.jsx)(_react["default"].Fragment, null, section.key !== state.collection.getFirstKey() && (0, _react2.jsx)(_Separator["default"], {
45
+ as: "li",
46
+ p: 0,
47
+ m: 0
48
+ }), (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
49
+ as: "li"
50
+ }, itemProps, {
51
+ ref: menuSectionRef,
52
+ role: "presentation"
53
+ }), section.rendered && (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
54
+ as: "span",
55
+ variant: "menuSection.sectionTitle"
56
+ }, headingProps, {
57
+ role: "presentation"
58
+ }), section.rendered), (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
59
+ as: "ul",
60
+ variant: "menuSection.section"
61
+ }, groupProps, {
62
+ role: "group"
63
+ }), (0, _map["default"])(_context = (0, _from["default"])(section.childNodes)).call(_context, function (node) {
64
+ return (0, _react2.jsx)(_MenuItem["default"], {
65
+ key: node.key,
66
+ item: node,
67
+ state: state,
68
+ onAction: onAction,
69
+ isDisabled: isDisabled,
70
+ isFocusVisible: isFocusVisible,
71
+ isNotFocusedOnHover: isNotFocusedOnHover
72
+ });
73
+ }))));
74
+ });
75
+ var _default = MenuSection;
76
+ exports["default"] = _default;
@@ -0,0 +1,21 @@
1
+ declare const _default: {
2
+ section: {
3
+ borderRadius: number;
4
+ padding: number;
5
+ margin: number;
6
+ listStyle: string;
7
+ maxWidth: number;
8
+ outline: string;
9
+ overflow: string;
10
+ minWidth: string;
11
+ };
12
+ sectionTitle: {
13
+ fontSize: string;
14
+ fontWeight: string;
15
+ color: string;
16
+ height: string;
17
+ ml: string;
18
+ justifyContent: string;
19
+ };
20
+ };
21
+ export default _default;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
11
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
+ _Object$defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports["default"] = void 0;
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
17
+ var _Menu = _interopRequireDefault(require("../Menu/Menu.styles"));
18
+ 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; }
19
+ 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; }
20
+ var section = _objectSpread(_objectSpread({}, _Menu["default"]), {}, {
21
+ borderRadius: 0
22
+ });
23
+ var sectionTitle = {
24
+ fontSize: 'sm',
25
+ fontWeight: '3',
26
+ color: 'text.secondary',
27
+ height: '36px',
28
+ ml: 'sm',
29
+ justifyContent: 'center'
30
+ };
31
+ var _default = {
32
+ section: section,
33
+ sectionTitle: sectionTitle
34
+ };
35
+ exports["default"] = _default;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
5
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
6
+ var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _index = require("../../index");
9
+ var _testWrapper = require("../../utils/testUtils/testWrapper");
10
+ var _universalComponentTest = require("../../utils/testUtils/universalComponentTest");
11
+ var _react2 = require("@emotion/react");
12
+ var testId = 'testId';
13
+ var defaultMenuSections = [{
14
+ key: 'menuSection 1',
15
+ 'data-id': 'menuSection1',
16
+ title: 'Section 1',
17
+ children: [{
18
+ key: 'menuItem1',
19
+ children: 'MenuItem 1',
20
+ 'data-id': 'menuItem1',
21
+ isPressed: false,
22
+ backgroundColor: 'orange'
23
+ }]
24
+ }, {
25
+ key: 'menuSection 2',
26
+ 'data-id': 'menuSection2',
27
+ children: [{
28
+ key: 'menuItem2',
29
+ children: 'MenuItem 2',
30
+ 'data-id': 'menuItem1',
31
+ isPressed: false
32
+ }, {
33
+ key: 'menuItem3',
34
+ children: 'MenuItem 3',
35
+ 'data-id': 'menuItem1',
36
+ isPressed: false
37
+ }]
38
+ }];
39
+ var defaultProps = {
40
+ 'data-testid': testId,
41
+ defaultSelectedKey: 'menuItem1',
42
+ 'aria-label': 'testLabel'
43
+ };
44
+ var getComponent = function getComponent() {
45
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
46
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
47
+ _ref$items = _ref.items,
48
+ items = _ref$items === void 0 ? defaultMenuSections : _ref$items,
49
+ _ref$renderFn = _ref.renderFn,
50
+ renderFn = _ref$renderFn === void 0 ? _testWrapper.render : _ref$renderFn;
51
+ return renderFn((0, _react2.jsx)(_index.Menu, (0, _extends2["default"])({}, defaultProps, props), (0, _map["default"])(items).call(items, function (section) {
52
+ var _context;
53
+ return (0, _react2.jsx)(_index.Section, section, (0, _map["default"])(_context = section.children).call(_context, function (li) {
54
+ return (0, _react2.jsx)(_index.Item, li);
55
+ }));
56
+ })));
57
+ };
58
+
59
+ // Needs to be added to each components test file
60
+ (0, _universalComponentTest.universalComponentTests)({
61
+ renderComponent: function renderComponent(props) {
62
+ return (0, _react2.jsx)(_index.Menu, (0, _extends2["default"])({}, defaultProps, props), (0, _map["default"])(defaultMenuSections).call(defaultMenuSections, function (section) {
63
+ var _context2;
64
+ return (0, _react2.jsx)(_index.Section, section, (0, _map["default"])(_context2 = section.children).call(_context2, function (li) {
65
+ return (0, _react2.jsx)(_index.Item, (0, _extends2["default"])({}, li, {
66
+ sx: {
67
+ backgroundColor: 'orange'
68
+ }
69
+ }));
70
+ }));
71
+ }));
72
+ }
73
+ });
74
+ test('renders menu with menu sections and titles', function () {
75
+ getComponent();
76
+ var menu = _testWrapper.screen.getByRole('menu');
77
+ var menuSections = _testWrapper.screen.getAllByRole('group');
78
+ var menuTitle = _testWrapper.screen.getByText('Section 1');
79
+ expect(menu).toBeInTheDocument();
80
+ expect(menuTitle).toBeInTheDocument();
81
+ expect(menuSections).toHaveLength(defaultMenuSections.length);
82
+ });
83
+ test('renders sections with menu items', function () {
84
+ getComponent();
85
+ var menuItems = _testWrapper.screen.getAllByRole('menuitem');
86
+ expect(menuItems).toHaveLength((0, _reduce["default"])(defaultMenuSections).call(defaultMenuSections, function (acc, section) {
87
+ return acc + section.children.length;
88
+ }, 0));
89
+ });
90
+ test('custom props are passed into menuItem', function () {
91
+ getComponent();
92
+ var itemText1 = defaultMenuSections[0].children[0].children;
93
+ var menuItem1 = _testWrapper.screen.getByText(itemText1);
94
+ expect(menuItem1).toHaveStyleRule('background-color', 'orange');
95
+ });
96
+ test('renders separator before menu section if it is not the first section', function () {
97
+ getComponent();
98
+ var separators = _testWrapper.screen.getByRole('separator');
99
+ expect(separators).toBeInTheDocument();
100
+ });
@@ -0,0 +1 @@
1
+ export { default } from './MenuSection';
@@ -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 _MenuSection["default"];
12
+ }
13
+ });
14
+ var _MenuSection = _interopRequireDefault(require("./MenuSection"));
@@ -8,3 +8,5 @@ export declare const Controlled: StoryFn;
8
8
  export declare const Placement: StoryFn;
9
9
  export declare const NotFlippable: StoryFn;
10
10
  export declare const NotClosedOnSelect: StoryFn;
11
+ export declare const WithSeparator: StoryFn<PopoverMenuProps>;
12
+ export declare const WithSections: StoryFn<PopoverMenuProps>;
@@ -8,7 +8,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
8
8
  _Object$defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
- exports["default"] = exports.Placement = exports.NotFlippable = exports.NotClosedOnSelect = exports.DefaultOpen = exports.Default = exports.Controlled = void 0;
11
+ exports["default"] = exports.WithSeparator = exports.WithSections = exports.Placement = exports.NotFlippable = exports.NotClosedOnSelect = exports.DefaultOpen = exports.Default = exports.Controlled = void 0;
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _DotsVerticalIcon = _interopRequireDefault(require("@pingux/mdi-react/DotsVerticalIcon"));
@@ -103,12 +103,12 @@ var DefaultOpen = function DefaultOpen() {
103
103
  }
104
104
  })), (0, _react2.jsx)(_index.Menu, {
105
105
  onAction: (0, _addonActions.action)('onAction'),
106
- disabledKeys: ['duplicate']
106
+ disabledKeys: ['disabledItem']
107
107
  }, (0, _react2.jsx)(_index.Item, {
108
108
  key: "edit"
109
109
  }, "Edit"), (0, _react2.jsx)(_index.Item, {
110
- key: "duplicate"
111
- }, "Duplicate"), (0, _react2.jsx)(_index.Item, {
110
+ key: "disabledItem"
111
+ }, "Disabled Item"), (0, _react2.jsx)(_index.Item, {
112
112
  key: "delete",
113
113
  textValue: "delete"
114
114
  }, (0, _react2.jsx)(_index.Text, {
@@ -242,4 +242,72 @@ var NotClosedOnSelect = function NotClosedOnSelect() {
242
242
  }, "Delete")))))
243
243
  );
244
244
  };
245
- exports.NotClosedOnSelect = NotClosedOnSelect;
245
+ exports.NotClosedOnSelect = NotClosedOnSelect;
246
+ var WithSeparator = function WithSeparator(args) {
247
+ return (
248
+ // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
249
+ // readers when an overlay opens.
250
+ (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.PopoverMenu, args, (0, _react2.jsx)(_index.IconButton, {
251
+ "aria-label": "more options",
252
+ variant: "inverted"
253
+ }, (0, _react2.jsx)(_index.Icon, {
254
+ icon: _DotsVerticalIcon["default"],
255
+ size: "md",
256
+ title: {
257
+ name: 'Dots Vertical Icon'
258
+ }
259
+ })), (0, _react2.jsx)(_index.Menu, {
260
+ onAction: (0, _addonActions.action)('onAction'),
261
+ disabledKeys: ['disabledItem']
262
+ }, (0, _react2.jsx)(_index.Section, null, (0, _react2.jsx)(_index.Item, {
263
+ key: "edit"
264
+ }, "Edit")), (0, _react2.jsx)(_index.Section, null, (0, _react2.jsx)(_index.Item, {
265
+ key: "disabledItem"
266
+ }, "Disabled Item"), (0, _react2.jsx)(_index.Item, {
267
+ key: "delete",
268
+ textValue: "delete"
269
+ }, (0, _react2.jsx)(_index.Text, {
270
+ color: "critical.bright"
271
+ }, "Delete"))))))
272
+ );
273
+ };
274
+ exports.WithSeparator = WithSeparator;
275
+ var WithSections = function WithSections(args) {
276
+ return (
277
+ // Application must be wrapped in an OverlayProvider so that it can be hidden from screen
278
+ // readers when an overlay opens.
279
+ (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.PopoverMenu, args, (0, _react2.jsx)(_index.IconButton, {
280
+ "aria-label": "more options",
281
+ variant: "inverted"
282
+ }, (0, _react2.jsx)(_index.Icon, {
283
+ icon: _DotsVerticalIcon["default"],
284
+ size: "md",
285
+ title: {
286
+ name: 'Dots Vertical Icon'
287
+ }
288
+ })), (0, _react2.jsx)(_index.Menu, {
289
+ onAction: (0, _addonActions.action)('onAction'),
290
+ disabledKeys: ['disabledItem']
291
+ }, (0, _react2.jsx)(_index.Section, {
292
+ key: "section 1",
293
+ title: "Section 1"
294
+ }, (0, _react2.jsx)(_index.Item, {
295
+ key: "edit"
296
+ }, "Edit"), (0, _react2.jsx)(_index.Item, {
297
+ key: "disabledItem"
298
+ }, "Disabled Item"), (0, _react2.jsx)(_index.Item, {
299
+ key: "copy"
300
+ }, "Copy")), (0, _react2.jsx)(_index.Section, {
301
+ key: "section 2",
302
+ title: "Section 2"
303
+ }, (0, _react2.jsx)(_index.Item, {
304
+ key: "duplicate"
305
+ }, "Duplicate"), (0, _react2.jsx)(_index.Item, {
306
+ key: "delete",
307
+ textValue: "delete"
308
+ }, (0, _react2.jsx)(_index.Text, {
309
+ color: "critical.bright"
310
+ }, "Delete"))))))
311
+ );
312
+ };
313
+ exports.WithSections = WithSections;
@@ -264,18 +264,15 @@ exports.Controlled = Controlled;
264
264
  var WithNoneOption = function WithNoneOption() {
265
265
  return (0, _react2.jsx)(_index.SelectField, {
266
266
  label: "What's your favorite color?"
267
- }, (0, _react2.jsx)(_index.Item, {
267
+ }, (0, _react2.jsx)(_index.Section, null, (0, _react2.jsx)(_index.Item, {
268
268
  key: "none"
269
- }, "None"), (0, _react2.jsx)(_index.Item, {
270
- isSeparator: true,
271
- textValue: "-"
272
- }, (0, _react2.jsx)(_index.Separator, null)), (0, _react2.jsx)(_index.Item, {
269
+ }, "None")), (0, _react2.jsx)(_index.Section, null, (0, _react2.jsx)(_index.Item, {
273
270
  key: "red"
274
271
  }, "Red"), (0, _react2.jsx)(_index.Item, {
275
272
  key: "blue"
276
273
  }, "Blue"), (0, _react2.jsx)(_index.Item, {
277
274
  key: "yellow"
278
- }, "Yellow"));
275
+ }, "Yellow")));
279
276
  };
280
277
  exports.WithNoneOption = WithNoneOption;
281
278
  var WithSlots = function WithSlots() {
@@ -96,7 +96,6 @@ var Tabs = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
96
96
  value: state
97
97
  }, (0, _react2.jsx)(_Box["default"], others, (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
98
98
  variant: "tabs",
99
- gap: "25px",
100
99
  isRow: orientation === _orientation["default"].HORIZONTAL
101
100
  }, tabListProps, raTabListProps, {
102
101
  ref: tabListRef,
@@ -37,6 +37,7 @@ export declare const tabs: {
37
37
  borderBottomStyle: string;
38
38
  borderBottomColor: string;
39
39
  mb: string;
40
+ gap: string;
40
41
  };
41
42
  export declare const menuTab: {
42
43
  color: string;
@@ -53,7 +53,8 @@ var tabs = {
53
53
  borderBottomWidth: 1,
54
54
  borderBottomStyle: 'solid',
55
55
  borderBottomColor: 'neutral.90',
56
- mb: 'lg'
56
+ mb: 'lg',
57
+ gap: '25px'
57
58
  };
58
59
  exports.tabs = tabs;
59
60
  var menuTab = _objectSpread(_objectSpread({}, _Buttons.quiet), {}, {
@@ -37,10 +37,14 @@ var _default = {
37
37
  },
38
38
  breakpoints: _breakpoints["default"],
39
39
  fonts: {
40
- standard: '"Helvetica Neue", Helvetica, sans-serif'
40
+ standard: '"Helvetica Neue", Helvetica, sans-serif',
41
+ codeView: '"Roboto Mono", "Lucida Console", Courier, monospace'
41
42
  },
42
43
  fontSizes: _text.fontSizes,
43
44
  fontWeights: _text.fontWeights,
45
+ lineHeights: {
46
+ md: '1.5'
47
+ },
44
48
  sizes: {
45
49
  buttonHeight: 36,
46
50
  column: 400,