@pingux/astro 2.163.1-alpha.1 → 2.163.1-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 (58) hide show
  1. package/lib/cjs/components/ComboBoxField/ComboBoxField.js +7 -3
  2. package/lib/cjs/components/ListBox/ListBox.js +15 -0
  3. package/lib/cjs/components/ListBox/ListBox.test.js +14 -1
  4. package/lib/cjs/components/MenuItem/MenuItem.js +22 -13
  5. package/lib/cjs/components/MenuItem/MenuItem.styles.d.ts +1 -1
  6. package/lib/cjs/components/MenuItem/MenuItem.styles.js +1 -1
  7. package/lib/cjs/components/MenuItem/MenuItem.test.js +217 -194
  8. package/lib/cjs/components/MenuSection/MenuSection.js +2 -1
  9. package/lib/cjs/components/PopoverMenu/PopoverMenu.stories.js +57 -33
  10. package/lib/cjs/components/TimeZonePicker/TimeZonePicker.js +117 -140
  11. package/lib/cjs/components/TimeZonePicker/TimeZonePicker.test.js +29 -2
  12. package/lib/cjs/components/TimeZonePicker/helper.d.ts +6 -0
  13. package/lib/cjs/components/TimeZonePicker/helper.js +59 -0
  14. package/lib/cjs/components/TimeZonePicker/helper.test.js +79 -0
  15. package/lib/cjs/hooks/useGetTheme/useGetTheme.d.ts +2 -0
  16. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +3 -0
  17. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +3 -0
  18. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/icons.d.ts +1 -0
  19. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/index.d.ts +1 -0
  20. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/menu.d.ts +15 -2
  21. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/menu.js +20 -7
  22. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.d.ts +15 -2
  23. package/lib/cjs/styles/themeOverrides/onyxSideNav.d.ts +1 -0
  24. package/lib/cjs/styles/themes/astro/customProperties/icons.d.ts +1 -0
  25. package/lib/cjs/styles/themes/astro/customProperties/icons.js +1 -1
  26. package/lib/cjs/styles/themes/astro/customProperties/index.d.ts +1 -0
  27. package/lib/cjs/styles/themes/next-gen/customProperties/icons.d.ts +1 -0
  28. package/lib/cjs/styles/themes/next-gen/customProperties/icons.js +1 -1
  29. package/lib/cjs/styles/themes/next-gen/customProperties/index.d.ts +1 -0
  30. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +34 -2
  31. package/lib/cjs/styles/themes/next-gen/variants/menu.d.ts +32 -2
  32. package/lib/cjs/styles/themes/next-gen/variants/menu.js +39 -9
  33. package/lib/cjs/styles/themes/next-gen/variants/popoverMenu.d.ts +1 -0
  34. package/lib/cjs/styles/themes/next-gen/variants/popoverMenu.js +1 -0
  35. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +33 -2
  36. package/lib/cjs/styles/themes/next-gen/variants/variants.js +1 -0
  37. package/lib/cjs/types/listBox.d.ts +1 -1
  38. package/lib/components/ComboBoxField/ComboBoxField.js +7 -3
  39. package/lib/components/ListBox/ListBox.js +15 -0
  40. package/lib/components/ListBox/ListBox.test.js +14 -1
  41. package/lib/components/MenuItem/MenuItem.js +25 -16
  42. package/lib/components/MenuItem/MenuItem.styles.js +1 -1
  43. package/lib/components/MenuItem/MenuItem.test.js +224 -201
  44. package/lib/components/MenuSection/MenuSection.js +2 -1
  45. package/lib/components/PopoverMenu/PopoverMenu.stories.js +57 -33
  46. package/lib/components/TimeZonePicker/TimeZonePicker.js +122 -146
  47. package/lib/components/TimeZonePicker/TimeZonePicker.test.js +29 -2
  48. package/lib/components/TimeZonePicker/helper.js +51 -0
  49. package/lib/components/TimeZonePicker/helper.test.js +76 -0
  50. package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +3 -0
  51. package/lib/styles/themeOverrides/nextGenDarkMode/variants/menu.js +20 -7
  52. package/lib/styles/themes/astro/customProperties/icons.js +1 -1
  53. package/lib/styles/themes/next-gen/customProperties/icons.js +1 -1
  54. package/lib/styles/themes/next-gen/variants/menu.js +38 -8
  55. package/lib/styles/themes/next-gen/variants/popoverMenu.js +1 -0
  56. package/lib/styles/themes/next-gen/variants/variants.js +2 -1
  57. package/lib/tsconfig.lib.tsbuildinfo +1 -1
  58. package/package.json +1 -1
@@ -39,7 +39,7 @@ var _ListBox = _interopRequireDefault(require("../ListBox"));
39
39
  var _PopoverContainer = _interopRequireDefault(require("../PopoverContainer"));
40
40
  var _ScrollBox = _interopRequireDefault(require("../ScrollBox"));
41
41
  var _react2 = require("@emotion/react");
42
- var _excluded = ["hasAutoFocus", "hasAddOption", "hasCustomValue", "hasNoEmptySelection", "selectedKey", "onSelectionChange", "defaultItems", "items", "loadingState", "onLoadMore", "inputValue", "isReadOnly", "menuTrigger", "isNotFlippable", "direction", "scrollBoxProps", "controlProps", "defaultFilter", "status", "helperText"],
42
+ var _excluded = ["hasAutoFocus", "hasAddOption", "hasCustomValue", "hasNoEmptySelection", "selectedKey", "onSelectionChange", "defaultItems", "items", "loadingState", "onLoadMore", "inputValue", "isReadOnly", "menuTrigger", "isNotFlippable", "direction", "scrollBoxProps", "controlProps", "defaultFilter", "status", "helperText", "renderEmptyState", "allowsEmptyCollection"],
43
43
  _excluded2 = ["shouldFocusOnHover", "shouldSelectOnPressUp", "UNSTABLE_itemBehavior"];
44
44
  function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
45
45
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -66,6 +66,8 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
66
66
  defaultFilter = props.defaultFilter,
67
67
  status = props.status,
68
68
  helperText = props.helperText,
69
+ renderEmptyState = props.renderEmptyState,
70
+ allowsEmptyCollection = props.allowsEmptyCollection,
69
71
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
70
72
  var _getAriaAttributeProp = (0, _ariaAttributes.getAriaAttributeProps)(others),
71
73
  nonAriaProps = _getAriaAttributeProp.nonAriaProps;
@@ -81,7 +83,8 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
81
83
  menuTrigger: menuTrigger,
82
84
  shouldFlip: !isNotFlippable,
83
85
  direction: direction,
84
- label: 'default'
86
+ label: 'default',
87
+ allowsEmptyCollection: allowsEmptyCollection
85
88
  }, nonAriaProps);
86
89
  var popoverRef = (0, _react.useRef)();
87
90
  var buttonRef = (0, _react.useRef)();
@@ -207,7 +210,8 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
207
210
  isLoading: loadingState === _loadingStates["default"].LOADING_MORE,
208
211
  onLoadMore: onLoadMore,
209
212
  isFocusedOnHover: shouldFocusOnHover,
210
- isSelectedOnPressUp: shouldSelectOnPressUp
213
+ isSelectedOnPressUp: shouldSelectOnPressUp,
214
+ renderEmptyState: renderEmptyState
211
215
  }, otherListBoxProps))), (0, _react2.jsx)(_reactAria.DismissButton, {
212
216
  onDismiss: state.close
213
217
  })));
@@ -165,6 +165,18 @@ var ListBox = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
165
165
  };
166
166
  }, [isLoading, onLoadPrev, items]);
167
167
  (0, _useLoadPrev["default"])(memoedLoadMoreProps, listBoxRef);
168
+ var EmptyState = function EmptyState() {
169
+ var emptyState = renderEmptyState ? renderEmptyState() : null;
170
+ if (emptyState == null) {
171
+ return null;
172
+ }
173
+ return (0, _react2.jsx)(_Box["default"], {
174
+ as: "li",
175
+ isRow: true,
176
+ role: "option",
177
+ variant: "listBox.option"
178
+ }, emptyState);
179
+ };
168
180
  return (0, _react2.jsx)(_ListBoxContext.ListBoxContext.Provider, {
169
181
  value: state
170
182
  }, (0, _react2.jsx)(_Box["default"], {
@@ -206,6 +218,9 @@ var ListBox = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
206
218
  "aria-label": "Loading more..."
207
219
  });
208
220
  }
221
+ if (type === collectionTypes.PLACEHOLDER) {
222
+ return (0, _react2.jsx)(EmptyState, null);
223
+ }
209
224
  return null;
210
225
  })));
211
226
  });
@@ -163,4 +163,17 @@ test('should have is-focused class when hover', /*#__PURE__*/(0, _asyncToGenerat
163
163
  return _context.stop();
164
164
  }
165
165
  }, _callee);
166
- })));
166
+ })));
167
+ test('should render empty state when no items', function () {
168
+ getComponent({
169
+ items: [],
170
+ renderEmptyState: function renderEmptyState() {
171
+ return (0, _react3.jsx)("div", {
172
+ "data-testid": "empty-state"
173
+ }, "No items");
174
+ }
175
+ });
176
+ var emptyState = _react2.screen.getByTestId('empty-state');
177
+ expect(emptyState).toBeInTheDocument();
178
+ expect(emptyState).toHaveTextContent('No items');
179
+ });
@@ -10,12 +10,14 @@ _Object$defineProperty(exports, "__esModule", {
10
10
  });
11
11
  exports["default"] = void 0;
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
14
13
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
15
14
  var _react = _interopRequireWildcard(require("react"));
16
15
  var _reactAria = require("react-aria");
16
+ var _CheckIcon = _interopRequireDefault(require("@pingux/mdi-react/CheckIcon"));
17
+ var _focus = require("@react-aria/focus");
17
18
  var _interactions = require("@react-aria/interactions");
18
19
  var _uuid = require("uuid");
20
+ var _ = require("../..");
19
21
  var _MenuContext = require("../../context/MenuContext");
20
22
  var _hooks = require("../../hooks");
21
23
  var _Box = _interopRequireDefault(require("../Box"));
@@ -31,7 +33,6 @@ var MenuItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
31
33
  var _item$key;
32
34
  var item = props.item,
33
35
  isPropDisabled = props.isDisabled,
34
- isFocusVisible = props.isFocusVisible,
35
36
  isNotFocusedOnHover = props.isNotFocusedOnHover,
36
37
  className = props.className,
37
38
  state = props.state;
@@ -59,10 +60,6 @@ var MenuItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
59
60
  closeOnSelect: shouldCloseOnSelect
60
61
  }, state, menuItemRef),
61
62
  menuItemProps = _useMenuItem.menuItemProps;
62
- var _useState = (0, _react.useState)(false),
63
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
64
- isFocused = _useState2[0],
65
- setFocused = _useState2[1];
66
63
  var _usePress = (0, _interactions.usePress)({
67
64
  ref: menuItemRef,
68
65
  isDisabled: isDisabled,
@@ -70,34 +67,46 @@ var MenuItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
70
67
  }),
71
68
  pressProps = _usePress.pressProps,
72
69
  isPressed = _usePress.isPressed;
73
- var _useFocus = (0, _interactions.useFocus)({
74
- onFocusChange: setFocused
75
- }),
76
- focusProps = _useFocus.focusProps;
70
+ var _useFocusRing = (0, _focus.useFocusRing)(),
71
+ focusProps = _useFocusRing.focusProps,
72
+ isFocusVisible = _useFocusRing.isFocusVisible;
77
73
  var _useHover = (0, _interactions.useHover)({
78
74
  isDisabled: isDisabled
79
75
  }),
80
76
  hoverProps = _useHover.hoverProps,
81
77
  isHovered = _useHover.isHovered;
82
78
  var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
83
- isFocused: isFocused || isHovered && !isFocusVisible,
79
+ isFocused: isFocusVisible && !isNotFocusedOnHover,
84
80
  isDisabled: isDisabled,
85
81
  isSelected: isSelected,
86
- isPressed: isPressed
82
+ isPressed: isPressed,
83
+ isHovered: isHovered
87
84
  }),
88
85
  classNames = _useStatusClasses.classNames;
89
86
  if (isNotFocusedOnHover) {
90
87
  delete menuItemProps.onPointerEnter;
91
88
  delete menuItemProps.onPointerLeave;
92
89
  }
90
+ var _useGetTheme = (0, _hooks.useGetTheme)(),
91
+ isOnyx = _useGetTheme.themeState.isOnyx;
93
92
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
94
93
  as: "li",
94
+ isRow: true,
95
+ alignItems: "center",
96
+ justifyContent: "space-between",
95
97
  className: classNames,
96
98
  ref: menuItemRef,
97
99
  variant: isSeparator ? 'menuItem.separator' : 'menuItem.item',
98
100
  "data-id": dataId,
99
101
  "aria-disabled": isDisabled
100
- }, (0, _reactAria.mergeProps)(pressProps, hoverProps, focusProps, menuItemProps, others)), rendered);
102
+ }, (0, _reactAria.mergeProps)(pressProps, hoverProps, focusProps, menuItemProps, others)), rendered, isSelected && isOnyx && (0, _react2.jsx)(_.Icon, {
103
+ icon: _CheckIcon["default"],
104
+ title: {
105
+ name: 'Check Icon'
106
+ },
107
+ color: "success.bright",
108
+ size: "sm"
109
+ }));
101
110
  });
102
111
  MenuItem.displayName = 'MenuItem';
103
112
  MenuItem.defaultProps = {
@@ -5,7 +5,7 @@ declare const _default: {
5
5
  outline: string;
6
6
  cursor: string;
7
7
  fontFamily: string;
8
- '&.is-focused, &.is-selected, &.is-pressed': {
8
+ '&.is-focused, &.is-selected, &.is-pressed, &.is-hovered': {
9
9
  color: string;
10
10
  bg: string;
11
11
  '> *': {
@@ -11,7 +11,7 @@ var item = {
11
11
  outline: 'none',
12
12
  cursor: 'pointer',
13
13
  fontFamily: 'standard',
14
- '&.is-focused, &.is-selected, &.is-pressed': {
14
+ '&.is-focused, &.is-selected, &.is-pressed, &.is-hovered': {
15
15
  color: 'white',
16
16
  bg: 'active',
17
17
  '> *': {