@pingux/astro 2.84.0-alpha.0 → 2.84.0-alpha.10

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 (117) hide show
  1. package/lib/cjs/components/Avatar/Avatar.js +43 -8
  2. package/lib/cjs/components/Avatar/Avatar.test.js +10 -1
  3. package/lib/cjs/components/CheckboxField/CheckboxField.stories.js +5 -3
  4. package/lib/cjs/components/CodeView/CodeView.js +5 -2
  5. package/lib/cjs/components/CodeView/CodeView.styles.d.ts +2 -1
  6. package/lib/cjs/components/CodeView/CodeView.styles.js +4 -3
  7. package/lib/cjs/components/Link/Link.js +3 -1
  8. package/lib/cjs/components/LinkSelectField/LinkSelectField.stories.js +3 -6
  9. package/lib/cjs/components/ListBox/ListBox.styles.js +6 -3
  10. package/lib/cjs/components/Menu/Menu.js +15 -3
  11. package/lib/cjs/components/Menu/Menu.test.js +23 -0
  12. package/lib/cjs/components/MenuItem/MenuItem.styles.d.ts +1 -0
  13. package/lib/cjs/components/MenuItem/MenuItem.styles.js +2 -1
  14. package/lib/cjs/components/MenuSection/MenuSection.d.ts +9 -0
  15. package/lib/cjs/components/MenuSection/MenuSection.js +76 -0
  16. package/lib/cjs/components/MenuSection/MenuSection.styles.d.ts +21 -0
  17. package/lib/cjs/components/MenuSection/MenuSection.styles.js +35 -0
  18. package/lib/cjs/components/MenuSection/MenuSection.test.d.ts +1 -0
  19. package/lib/cjs/components/MenuSection/MenuSection.test.js +100 -0
  20. package/lib/cjs/components/MenuSection/index.d.ts +1 -0
  21. package/lib/cjs/components/MenuSection/index.js +14 -0
  22. package/lib/cjs/components/PopoverMenu/PopoverMenu.stories.d.ts +2 -0
  23. package/lib/cjs/components/PopoverMenu/PopoverMenu.stories.js +73 -5
  24. package/lib/cjs/components/SelectField/SelectField.stories.js +3 -6
  25. package/lib/cjs/components/SwitchField/SwitchField.d.ts +4 -0
  26. package/lib/cjs/components/SwitchField/SwitchField.js +12 -32
  27. package/lib/cjs/components/SwitchField/SwitchField.stories.d.ts +11 -0
  28. package/lib/cjs/components/SwitchField/SwitchField.stories.js +4 -2
  29. package/lib/cjs/components/SwitchField/SwitchField.test.d.ts +1 -0
  30. package/lib/cjs/components/SwitchField/index.d.ts +1 -0
  31. package/lib/cjs/components/SwitchField/switchFieldAttributes.d.ts +94 -0
  32. package/lib/cjs/components/SwitchField/switchFieldAttributes.js +2 -30
  33. package/lib/cjs/components/Tabs/Tabs.js +0 -1
  34. package/lib/cjs/components/Tabs/Tabs.style.d.ts +1 -0
  35. package/lib/cjs/components/Tabs/Tabs.style.js +2 -1
  36. package/lib/cjs/components/TimeField/TimeField.stories.js +2 -2
  37. package/lib/cjs/styles/theme.js +5 -1
  38. package/lib/cjs/styles/themes/next-gen/codeView/codeView.d.ts +105 -0
  39. package/lib/cjs/styles/themes/next-gen/codeView/codeView.js +134 -0
  40. package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
  41. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +344 -36
  42. package/lib/cjs/styles/themes/next-gen/next-gen.js +24 -4
  43. package/lib/cjs/styles/themes/next-gen/sizes.d.ts +18 -0
  44. package/lib/cjs/styles/themes/next-gen/sizes.js +27 -0
  45. package/lib/cjs/styles/themes/next-gen/spacing.d.ts +9 -0
  46. package/lib/cjs/styles/themes/next-gen/spacing.js +17 -0
  47. package/lib/cjs/styles/themes/next-gen/text.d.ts +8 -2
  48. package/lib/cjs/styles/themes/next-gen/text.js +16 -13
  49. package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +36 -3
  50. package/lib/cjs/styles/themes/next-gen/variants/button.js +25 -5
  51. package/lib/cjs/styles/themes/next-gen/variants/cards.d.ts +20 -0
  52. package/lib/cjs/styles/themes/next-gen/variants/cards.js +28 -0
  53. package/lib/cjs/styles/themes/next-gen/variants/images.d.ts +4 -0
  54. package/lib/cjs/styles/themes/next-gen/variants/images.js +12 -0
  55. package/lib/cjs/styles/themes/next-gen/variants/links.d.ts +56 -0
  56. package/lib/cjs/styles/themes/next-gen/variants/links.js +62 -0
  57. package/lib/cjs/styles/themes/next-gen/variants/text.d.ts +7 -0
  58. package/lib/cjs/styles/themes/next-gen/variants/text.js +9 -2
  59. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +82 -31
  60. package/lib/cjs/styles/themes/next-gen/variants/variants.js +91 -30
  61. package/lib/cjs/styles/variants/variants.js +2 -0
  62. package/lib/cjs/types/avatar.d.ts +5 -1
  63. package/lib/cjs/types/checkboxField.d.ts +3 -1
  64. package/lib/cjs/types/codeView.d.ts +1 -0
  65. package/lib/cjs/types/index.d.ts +2 -0
  66. package/lib/cjs/types/index.js +43 -21
  67. package/lib/cjs/types/link.d.ts +1 -0
  68. package/lib/cjs/types/menu.d.ts +1 -1
  69. package/lib/cjs/types/menuItem.d.ts +1 -1
  70. package/lib/cjs/types/menuSection.d.ts +24 -0
  71. package/lib/cjs/types/menuSection.js +6 -0
  72. package/lib/cjs/types/switchField.d.ts +29 -0
  73. package/lib/cjs/types/switchField.js +6 -0
  74. package/lib/components/Avatar/Avatar.js +44 -7
  75. package/lib/components/Avatar/Avatar.test.js +10 -1
  76. package/lib/components/CheckboxField/CheckboxField.stories.js +5 -3
  77. package/lib/components/CodeView/CodeView.js +5 -2
  78. package/lib/components/CodeView/CodeView.styles.js +4 -3
  79. package/lib/components/Link/Link.js +3 -1
  80. package/lib/components/LinkSelectField/LinkSelectField.stories.js +4 -7
  81. package/lib/components/ListBox/ListBox.styles.js +6 -3
  82. package/lib/components/Menu/Menu.js +15 -3
  83. package/lib/components/Menu/Menu.test.js +24 -1
  84. package/lib/components/MenuItem/MenuItem.styles.js +2 -1
  85. package/lib/components/MenuSection/MenuSection.js +64 -0
  86. package/lib/components/MenuSection/MenuSection.styles.js +27 -0
  87. package/lib/components/MenuSection/MenuSection.test.js +97 -0
  88. package/lib/components/MenuSection/index.js +1 -0
  89. package/lib/components/PopoverMenu/PopoverMenu.stories.js +70 -4
  90. package/lib/components/SelectField/SelectField.stories.js +4 -7
  91. package/lib/components/SwitchField/SwitchField.js +14 -34
  92. package/lib/components/SwitchField/SwitchField.stories.js +4 -2
  93. package/lib/components/SwitchField/switchFieldAttributes.js +1 -28
  94. package/lib/components/Tabs/Tabs.js +0 -1
  95. package/lib/components/Tabs/Tabs.style.js +2 -1
  96. package/lib/components/TimeField/TimeField.stories.js +2 -2
  97. package/lib/styles/theme.js +5 -1
  98. package/lib/styles/themes/next-gen/codeView/codeView.js +126 -0
  99. package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
  100. package/lib/styles/themes/next-gen/next-gen.js +24 -4
  101. package/lib/styles/themes/next-gen/sizes.js +19 -0
  102. package/lib/styles/themes/next-gen/spacing.js +9 -0
  103. package/lib/styles/themes/next-gen/text.js +16 -13
  104. package/lib/styles/themes/next-gen/variants/button.js +25 -5
  105. package/lib/styles/themes/next-gen/variants/cards.js +20 -0
  106. package/lib/styles/themes/next-gen/variants/images.js +4 -0
  107. package/lib/styles/themes/next-gen/variants/links.js +54 -0
  108. package/lib/styles/themes/next-gen/variants/text.js +9 -2
  109. package/lib/styles/themes/next-gen/variants/variants.js +91 -30
  110. package/lib/styles/variants/variants.js +2 -0
  111. package/lib/types/index.js +2 -0
  112. package/lib/types/menuSection.js +1 -0
  113. package/lib/types/switchField.js +1 -0
  114. package/package.json +1 -1
  115. package/lib/cjs/recipes/NextGen/DefaultAvatar.stories.d.ts +0 -6
  116. package/lib/cjs/recipes/NextGen/DefaultAvatar.stories.js +0 -41
  117. package/lib/recipes/NextGen/DefaultAvatar.stories.js +0 -31
@@ -1,28 +1,63 @@
1
1
  "use strict";
2
2
 
3
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");
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");
6
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");
7
13
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
14
  _Object$defineProperty(exports, "__esModule", {
9
15
  value: true
10
16
  });
11
17
  exports["default"] = void 0;
12
18
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
20
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
13
21
  var _react = _interopRequireWildcard(require("react"));
14
22
  var _themeUi = require("theme-ui");
23
+ var _hooks = require("../../hooks");
15
24
  var _react2 = require("@emotion/react");
25
+ var _excluded = ["alt", "defaultText", "color", "className", "size", "src", "sx"];
16
26
  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); }
17
27
  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; }
28
+ 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; }
29
+ 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; }
18
30
  var Avatar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
19
- return (0, _react2.jsx)(_themeUi.Avatar, (0, _extends2["default"])({
20
- ref: ref
21
- }, props));
31
+ var _props$alt = props.alt,
32
+ alt = _props$alt === void 0 ? 'Avatar' : _props$alt,
33
+ defaultText = props.defaultText,
34
+ color = props.color,
35
+ className = props.className,
36
+ size = props.size,
37
+ src = props.src,
38
+ sx = props.sx,
39
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
40
+ var _useStatusClasses = (0, _hooks.useStatusClasses)(className, (0, _defineProperty2["default"])({}, "is-".concat(color), true)),
41
+ classNames = _useStatusClasses.classNames;
42
+ if (src) {
43
+ return (0, _react2.jsx)(_themeUi.Avatar, (0, _extends2["default"])({
44
+ ref: ref,
45
+ alt: alt,
46
+ src: src,
47
+ sx: _objectSpread({
48
+ size: size
49
+ }, sx)
50
+ }, others));
51
+ }
52
+ return (0, _react2.jsx)(_themeUi.Box, (0, _extends2["default"])({
53
+ variant: "avatar",
54
+ className: classNames,
55
+ sx: _objectSpread({
56
+ size: size,
57
+ fontSize: size
58
+ }, sx)
59
+ }, others), defaultText);
22
60
  });
23
- Avatar.defaultProps = {
24
- alt: 'Avatar'
25
- };
26
61
  Avatar.displayName = 'Avatar';
27
62
  var _default = Avatar;
28
63
  exports["default"] = _default;
@@ -8,8 +8,9 @@ var _testWrapper = require("../../utils/testUtils/testWrapper");
8
8
  var _universalComponentTest = require("../../utils/testUtils/universalComponentTest");
9
9
  var _ = _interopRequireDefault(require("."));
10
10
  var _react2 = require("@emotion/react");
11
+ var src = _faker.faker.image.lorempicsum.imageUrl(150, 150, false, undefined, '1');
11
12
  var defaultProps = {
12
- src: _faker.faker.image.lorempicsum.imageUrl(150, 150, false, undefined, '1')
13
+ src: src
13
14
  };
14
15
  var getComponent = function getComponent() {
15
16
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -34,4 +35,12 @@ test('an avatar is rendered with custom alt', function () {
34
35
  });
35
36
  var img = _testWrapper.screen.getByRole('img');
36
37
  expect(img).toHaveAttribute('alt', 'Custom Alt');
38
+ });
39
+ test('an avatar is rendered with custom alt', function () {
40
+ getComponent({
41
+ src: undefined,
42
+ defaultText: 'KL'
43
+ });
44
+ var avatar = _testWrapper.screen.getByText('KL');
45
+ expect(avatar).toBeInTheDocument();
37
46
  });
@@ -101,8 +101,8 @@ var Controlled = function Controlled() {
101
101
  setSelected = _React$useState2[1];
102
102
  return (0, _react2.jsx)(_index.CheckboxField, {
103
103
  isSelected: isSelected,
104
- onChange: function onChange(e) {
105
- return setSelected;
104
+ onChange: function onChange(selected) {
105
+ return setSelected(selected);
106
106
  },
107
107
  label: "Click me"
108
108
  });
@@ -200,7 +200,9 @@ var ExpandableAndToggleableIndeterminate = function ExpandableAndToggleableIndet
200
200
  return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.SwitchField, {
201
201
  isSelected: isReadOnly,
202
202
  label: "Is Read Only",
203
- onChange: setIsReadOnly,
203
+ onChange: function onChange() {
204
+ return setIsReadOnly(!isReadOnly);
205
+ },
204
206
  value: "my-switch"
205
207
  }), (0, _react2.jsx)("br", null), (0, _react2.jsx)(_index.Box, {
206
208
  isRow: true,
@@ -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() {
@@ -27,13 +27,16 @@ listBox.option = _objectSpread(_objectSpread({}, _Text.text.base), {}, {
27
27
  outline: 'none',
28
28
  wordBreak: 'break-word',
29
29
  cursor: 'pointer',
30
- '&.is-selected': _objectSpread(_objectSpread({}, _Text.text.inputValue), {}, {
31
- pl: 0
32
- }),
33
30
  '&.is-focused': {
34
31
  color: 'white',
35
32
  bg: 'active'
36
33
  },
34
+ '&.is-selected': _objectSpread(_objectSpread({}, _Text.text.inputValue), {}, {
35
+ pl: 0,
36
+ '&.is-focused': {
37
+ color: 'white'
38
+ }
39
+ }),
37
40
  '&.is-condensed': {
38
41
  '&.is-selected': {
39
42
  pl: 'md',
@@ -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>;