@pingux/astro 1.0.0-alpha.17 → 1.0.0-alpha.20

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 (64) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/lib/cjs/components/Button/Button.js +5 -24
  3. package/lib/cjs/components/Button/Button.test.js +0 -24
  4. package/lib/cjs/components/IconButton/IconButton.js +7 -7
  5. package/lib/cjs/components/IconButton/IconButton.test.js +0 -1
  6. package/lib/cjs/components/ListItem/ListItem.stories.js +0 -2
  7. package/lib/cjs/components/Stepper/Stepper.js +1 -0
  8. package/lib/cjs/components/Tab/Tab.js +4 -2
  9. package/lib/cjs/index.js +48 -136
  10. package/lib/cjs/layouts/SchemaFormLayout.stories.js +2 -21
  11. package/lib/cjs/recipes/ArrayField.stories.js +3 -3
  12. package/lib/cjs/styles/theme.js +0 -3
  13. package/lib/cjs/styles/variants/boxes.js +0 -15
  14. package/lib/cjs/styles/variants/buttons.js +1 -27
  15. package/lib/cjs/styles/variants/variants.js +0 -3
  16. package/lib/components/Button/Button.js +7 -24
  17. package/lib/components/Button/Button.test.js +0 -20
  18. package/lib/components/IconButton/IconButton.js +7 -8
  19. package/lib/components/IconButton/IconButton.test.js +0 -1
  20. package/lib/components/ListItem/ListItem.stories.js +0 -2
  21. package/lib/components/Stepper/Stepper.js +1 -0
  22. package/lib/components/Tab/Tab.js +4 -2
  23. package/lib/index.js +0 -8
  24. package/lib/layouts/SchemaFormLayout.stories.js +2 -19
  25. package/lib/recipes/ArrayField.stories.js +3 -3
  26. package/lib/styles/theme.js +0 -3
  27. package/lib/styles/variants/boxes.js +0 -15
  28. package/lib/styles/variants/buttons.js +1 -27
  29. package/lib/styles/variants/variants.js +0 -2
  30. package/package.json +1 -1
  31. package/lib/cjs/components/Dropdown/Dropdown.js +0 -112
  32. package/lib/cjs/components/Dropdown/Dropdown.test.js +0 -80
  33. package/lib/cjs/components/Dropdown/index.js +0 -18
  34. package/lib/cjs/components/DropdownField/DropdownField.js +0 -187
  35. package/lib/cjs/components/DropdownField/DropdownField.stories.js +0 -278
  36. package/lib/cjs/components/DropdownField/DropdownField.test.js +0 -80
  37. package/lib/cjs/components/DropdownField/index.js +0 -18
  38. package/lib/cjs/components/Panel/Panel.js +0 -101
  39. package/lib/cjs/components/Panel/Panel.stories.js +0 -57
  40. package/lib/cjs/components/Panel/Panel.test.js +0 -72
  41. package/lib/cjs/components/Panel/index.js +0 -18
  42. package/lib/cjs/components/Popover/Popover.js +0 -87
  43. package/lib/cjs/components/Popover/Popover.stories.js +0 -80
  44. package/lib/cjs/components/Popover/Popover.test.js +0 -91
  45. package/lib/cjs/components/Popover/index.js +0 -18
  46. package/lib/cjs/recipes/InputBoxWithLinkedChip.stories.js +0 -67
  47. package/lib/cjs/styles/variants/popover.js +0 -86
  48. package/lib/components/Dropdown/Dropdown.js +0 -90
  49. package/lib/components/Dropdown/Dropdown.test.js +0 -62
  50. package/lib/components/Dropdown/index.js +0 -1
  51. package/lib/components/DropdownField/DropdownField.js +0 -155
  52. package/lib/components/DropdownField/DropdownField.stories.js +0 -222
  53. package/lib/components/DropdownField/DropdownField.test.js +0 -60
  54. package/lib/components/DropdownField/index.js +0 -1
  55. package/lib/components/Panel/Panel.js +0 -71
  56. package/lib/components/Panel/Panel.stories.js +0 -35
  57. package/lib/components/Panel/Panel.test.js +0 -52
  58. package/lib/components/Panel/index.js +0 -1
  59. package/lib/components/Popover/Popover.js +0 -65
  60. package/lib/components/Popover/Popover.stories.js +0 -52
  61. package/lib/components/Popover/Popover.test.js +0 -75
  62. package/lib/components/Popover/index.js +0 -2
  63. package/lib/recipes/InputBoxWithLinkedChip.stories.js +0 -43
  64. package/lib/styles/variants/popover.js +0 -76
@@ -179,32 +179,7 @@ var accordionHeader = _objectSpread(_objectSpread({}, base), {}, {
179
179
  color: 'accent.20'
180
180
  },
181
181
  '&.is-focused': _objectSpread({}, defaultFocus)
182
- }); // TODO: Remove this variant in Astro-UI 1.0.0
183
-
184
-
185
- var icon = {
186
- p: '3px',
187
- alignSelf: 'flex-start',
188
- flexGrow: 0,
189
- borderRadius: '100%',
190
- cursor: 'pointer',
191
- bg: 'transparent',
192
- 'path': {
193
- fill: 'text.secondary'
194
- },
195
- outline: 'none',
196
- color: 'white',
197
- '&.is-hovered': {
198
- bg: 'accent.90'
199
- },
200
- '&.is-pressed': {
201
- 'path': {
202
- fill: 'white'
203
- },
204
- bg: 'active'
205
- },
206
- '&.is-focused': _objectSpread({}, defaultFocus)
207
- };
182
+ });
208
183
 
209
184
  var primary = _objectSpread(_objectSpread({}, base), {}, {
210
185
  display: 'inline-flex',
@@ -512,7 +487,6 @@ var _default = {
512
487
  expandableRow: expandableRow,
513
488
  fileInputField: fileInputField,
514
489
  iconButton: iconButton,
515
- icon: icon,
516
490
  imageUpload: imageUpload,
517
491
  inline: inline,
518
492
  inverted: inverted,
@@ -54,8 +54,6 @@ var _messages = _interopRequireDefault(require("./messages"));
54
54
 
55
55
  var _numberField = _interopRequireDefault(require("./numberField"));
56
56
 
57
- var _popover = _interopRequireDefault(require("./popover"));
58
-
59
57
  var _overlayPanel = _interopRequireDefault(require("./overlayPanel"));
60
58
 
61
59
  var _popoverMenu = _interopRequireDefault(require("./popoverMenu"));
@@ -90,7 +88,6 @@ var _default = _objectSpread(_objectSpread({
90
88
  modal: _modal["default"],
91
89
  numberField: _numberField["default"],
92
90
  overlayPanel: _overlayPanel["default"],
93
- popover: _popover["default"],
94
91
  popoverMenu: _popoverMenu["default"],
95
92
  rockerbutton: _rockerbutton["default"],
96
93
  separator: _separator["default"],
@@ -14,17 +14,15 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
14
14
 
15
15
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty(_context = ownKeys(Object(source), true)).call(_context, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context2; _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
16
 
17
- import React, { forwardRef, useRef, useImperativeHandle, useMemo } from 'react';
17
+ import React, { forwardRef, useRef, useImperativeHandle } from 'react';
18
18
  import PropTypes from 'prop-types';
19
19
  import { Button as ThemeUIButton } from 'theme-ui';
20
20
  import { useButton } from '@react-aria/button';
21
21
  import { useHover } from '@react-aria/interactions';
22
22
  import { useFocusRing } from '@react-aria/focus';
23
23
  import { mergeProps } from '@react-aria/utils';
24
- import { modes } from './constants';
25
- import { useAriaLabelWarning, useStatusClasses, useDeprecationWarning, usePropWarning } from '../../hooks';
24
+ import { useAriaLabelWarning, useStatusClasses, usePropWarning } from '../../hooks';
26
25
  import Loader from '../Loader';
27
- import Box from '../Box';
28
26
  import { jsx as ___EmotionJSX } from "@emotion/react";
29
27
  var Button = /*#__PURE__*/forwardRef(function (props, ref) {
30
28
  var className = props.className,
@@ -39,8 +37,7 @@ var Button = /*#__PURE__*/forwardRef(function (props, ref) {
39
37
  onPressChange = props.onPressChange,
40
38
  onPressUp = props.onPressUp,
41
39
  children = props.children,
42
- mode = props.mode,
43
- others = _objectWithoutProperties(props, ["className", "isDisabled", "isLoading", "onHoverStart", "onHoverChange", "onHoverEnd", "onPress", "onPressStart", "onPressEnd", "onPressChange", "onPressUp", "children", "mode"]);
40
+ others = _objectWithoutProperties(props, ["className", "isDisabled", "isLoading", "onHoverStart", "onHoverChange", "onHoverEnd", "onPress", "onPressStart", "onPressEnd", "onPressChange", "onPressUp", "children"]);
44
41
 
45
42
  var buttonRef = useRef();
46
43
  usePropWarning(props, 'disabled', 'isDisabled');
@@ -49,20 +46,13 @@ var Button = /*#__PURE__*/forwardRef(function (props, ref) {
49
46
  useImperativeHandle(ref, function () {
50
47
  return buttonRef.current;
51
48
  });
52
- var ButtonBase = useMemo(function () {
53
- return mode === modes.ICON ? Box : ThemeUIButton;
54
- }, [mode]);
55
- var elementType = useMemo(function () {
56
- if (mode === modes.ICON) return 'div';
57
- return 'button';
58
- }, [mode]);
59
49
 
60
50
  var _useFocusRing = useFocusRing(),
61
51
  isFocusVisible = _useFocusRing.isFocusVisible,
62
52
  focusProps = _useFocusRing.focusProps;
63
53
 
64
54
  var _useButton = useButton(_objectSpread({
65
- elementType: elementType
55
+ elementType: 'button'
66
56
  }, props), buttonRef),
67
57
  buttonProps = _useButton.buttonProps,
68
58
  isPressed = _useButton.isPressed;
@@ -79,12 +69,9 @@ var Button = /*#__PURE__*/forwardRef(function (props, ref) {
79
69
  }),
80
70
  classNames = _useStatusClasses.classNames;
81
71
 
82
- useDeprecationWarning('The "icon" variant for `Button` will be deprecated in Astro-UI 1.0.0, use the `IconButton` component instead.', {
83
- isActive: props.variant === 'icon'
84
- });
85
72
  var ariaLabel = props['aria-label'];
86
73
  useAriaLabelWarning('Button', ariaLabel);
87
- return ___EmotionJSX(ButtonBase, _extends({
74
+ return ___EmotionJSX(ThemeUIButton, _extends({
88
75
  "aria-label": ariaLabel || 'Button',
89
76
  ref: buttonRef,
90
77
  className: classNames,
@@ -167,15 +154,11 @@ Button.propTypes = {
167
154
  onPressUp: PropTypes.func,
168
155
 
169
156
  /** The styling variation of the button. */
170
- variant: PropTypes.string,
171
-
172
- /** The behavioral pattern to apply to the button. */
173
- mode: PropTypes.oneOf(['default', 'icon'])
157
+ variant: PropTypes.string
174
158
  };
175
159
  Button.defaultProps = {
176
160
  isDisabled: false,
177
- variant: 'default',
178
- mode: 'default'
161
+ variant: 'default'
179
162
  };
180
163
  Button.displayName = 'Button';
181
164
  export default Button;
@@ -1,11 +1,9 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
2
  import React from 'react';
3
3
  import userEvent from '@testing-library/user-event';
4
- import AddCircleIcon from 'mdi-react/AddCircleIcon';
5
4
  import axeTest from '../../utils/testUtils/testAxe';
6
5
  import { fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
7
6
  import Button from '.';
8
- import Icon from '../Icon';
9
7
  import { jsx as ___EmotionJSX } from "@emotion/react";
10
8
  var testId = 'test-button';
11
9
  var defaultProps = {
@@ -15,15 +13,6 @@ var defaultProps = {
15
13
  var getComponent = function getComponent() {
16
14
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
15
  return render(___EmotionJSX(Button, _extends({}, defaultProps, props)));
18
- };
19
-
20
- var getIconButton = function getIconButton() {
21
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
- return render(___EmotionJSX(Button, _extends({}, defaultProps, props, {
23
- variant: "icon"
24
- }), ___EmotionJSX(Icon, {
25
- icon: AddCircleIcon
26
- })));
27
16
  }; // Need to be added to each test file to test accessibility using axe.
28
17
 
29
18
 
@@ -99,13 +88,4 @@ test('button renders children when not loading', function () {
99
88
  expect(childWrapper).toBeInTheDocument();
100
89
  expect(childWrapper).toBeVisible();
101
90
  expect(screen.queryByRole('progressbar')).not.toBeInTheDocument();
102
- });
103
- test('passing in an icon makes the button parent a div', function () {
104
- getIconButton({
105
- mode: 'icon'
106
- });
107
- var button = screen.getByRole('button');
108
- expect(button).toBeInTheDocument();
109
- expect(button).toBeVisible();
110
- expect(button).toBeInstanceOf(HTMLDivElement);
111
91
  });
@@ -17,8 +17,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
17
17
  import React, { forwardRef, useRef, useImperativeHandle, useContext } from 'react';
18
18
  import PropTypes from 'prop-types';
19
19
  import { IconButton as ThemeUIIconButton } from 'theme-ui';
20
+ import { useButton } from '@react-aria/button';
20
21
  import { useFocusRing } from '@react-aria/focus';
21
- import { Pressable, useHover, usePress } from '@react-aria/interactions';
22
+ import { Pressable, useHover } from '@react-aria/interactions';
22
23
  import { mergeProps } from '@react-aria/utils';
23
24
  import { useAriaLabelWarning, useStatusClasses } from '../../hooks';
24
25
  import { ChipContext } from '../Chip/ChipContext';
@@ -52,15 +53,13 @@ var IconButton = /*#__PURE__*/forwardRef(function (props, ref) {
52
53
  return buttonRef.current;
53
54
  });
54
55
 
56
+ var _useButton = useButton(_objectSpread({}, props), buttonRef),
57
+ buttonProps = _useButton.buttonProps,
58
+ isPressed = _useButton.isPressed;
59
+
55
60
  var _useContext = useContext(ChipContext),
56
61
  chipBg = _useContext.bg;
57
62
 
58
- var _usePress = usePress(_objectSpread({
59
- ref: buttonRef
60
- }, props)),
61
- isPressed = _usePress.isPressed,
62
- pressProps = _usePress.pressProps;
63
-
64
63
  var _useHover = useHover(props),
65
64
  hoverProps = _useHover.hoverProps,
66
65
  isHovered = _useHover.isHovered;
@@ -90,7 +89,7 @@ var IconButton = /*#__PURE__*/forwardRef(function (props, ref) {
90
89
  fill: chipBg
91
90
  }
92
91
  }
93
- }, others, mergeProps(hoverProps, focusProps, pressProps)), children);
92
+ }, mergeProps(hoverProps, focusProps, buttonProps, others)), children);
94
93
 
95
94
  if (title) {
96
95
  return ___EmotionJSX(TooltipTrigger, {
@@ -32,7 +32,6 @@ test('default icon button', function () {
32
32
  var button = screen.getByRole('button');
33
33
  expect(button).toHaveAttribute('data-testid', testId);
34
34
  expect(button).toBeInstanceOf(HTMLButtonElement);
35
- expect(button).toHaveAttribute('tabindex', '0');
36
35
  expect(button).toBeInTheDocument();
37
36
  });
38
37
  test('icon button hover', function () {
@@ -32,7 +32,6 @@ export var Default = function Default(args) {
32
32
  isRow: true,
33
33
  alignSelf: "center"
34
34
  }, ___EmotionJSX(IconButton, {
35
- variant: "icon",
36
35
  size: 26
37
36
  }, ___EmotionJSX(Icon, {
38
37
  icon: MoreVertIcon,
@@ -64,7 +63,6 @@ export var WithSubtitle = function WithSubtitle(args) {
64
63
  isRow: true,
65
64
  alignSelf: "center"
66
65
  }, ___EmotionJSX(IconButton, {
67
- variant: "icon",
68
66
  size: 26
69
67
  }, ___EmotionJSX(Icon, {
70
68
  icon: MoreVertIcon,
@@ -89,6 +89,7 @@ var Stepper = /*#__PURE__*/forwardRef(function (props, ref) {
89
89
  },
90
90
  textValue: textValue,
91
91
  title: step,
92
+ "aria-label": textValue,
92
93
  content: item.rendered,
93
94
  separator: !isFirst && line
94
95
  });
@@ -33,7 +33,8 @@ export var CollectionTab = /*#__PURE__*/forwardRef(function (props, ref) {
33
33
  tabLabelProps = itemProps.tabLabelProps,
34
34
  tabLineProps = itemProps.tabLineProps,
35
35
  content = itemProps.content,
36
- otherItemProps = _objectWithoutProperties(itemProps, ["icon", "isDisabled", "separator", "tabLabelProps", "tabLineProps", "content"]);
36
+ titleAttr = itemProps.titleAttr,
37
+ otherItemProps = _objectWithoutProperties(itemProps, ["icon", "isDisabled", "separator", "tabLabelProps", "tabLineProps", "content", "titleAttr"]);
37
38
 
38
39
  var state = useContext(TabsContext);
39
40
  var isDisabled = tabsDisabled || tabDisabled || state.disabledKeys.has(key);
@@ -77,7 +78,8 @@ export var CollectionTab = /*#__PURE__*/forwardRef(function (props, ref) {
77
78
  className: classNames,
78
79
  variant: "tab"
79
80
  }, mergeProps(focusProps, hoverProps, tabProps), otherItemProps, {
80
- ref: tabRef
81
+ ref: tabRef,
82
+ title: titleAttr || undefined
81
83
  }), icon, ___EmotionJSX(Text, _extends({
82
84
  variant: "tabLabel"
83
85
  }, tabLabelProps), rendered), isSelected && !isDisabled && ___EmotionJSX(TabLine, tabLineProps)), slots === null || slots === void 0 ? void 0 : slots.afterTab);
package/lib/index.js CHANGED
@@ -30,10 +30,6 @@ export * from './components/Chip';
30
30
  export { default as ComboBoxField } from './components/ComboBoxField';
31
31
  export { default as CopyText } from './components/CopyText';
32
32
  export { default as ColorField } from './components/ColorField';
33
- export { default as Dropdown } from './components/Dropdown';
34
- export * from './components/Dropdown';
35
- export { default as DropdownField } from './components/DropdownField';
36
- export * from './components/DropdownField';
37
33
  export { default as FieldHelperText } from './components/FieldHelperText';
38
34
  export * from './components/FieldHelperText';
39
35
  export { default as FileInputField } from './components/FileInputField';
@@ -77,12 +73,8 @@ export { default as OverlayPanel } from './components/OverlayPanel';
77
73
  export * from './components/OverlayPanel';
78
74
  export { default as PageHeader } from './components/PageHeader';
79
75
  export * from './components/PageHeader';
80
- export { default as Panel } from './components/Panel';
81
- export * from './components/Panel';
82
76
  export { default as PasswordField } from './components/PasswordField';
83
77
  export * from './components/PasswordField';
84
- export { default as Popover } from './components/Popover';
85
- export * from './components/Popover';
86
78
  export { default as PopoverContainer } from './components/PopoverContainer';
87
79
  export * from './components/PopoverContainer';
88
80
  export { default as PopoverMenu } from './components/PopoverMenu';
@@ -3,14 +3,12 @@ import React from 'react';
3
3
  import Earth from 'mdi-react/EarthIcon';
4
4
  import Cog from 'mdi-react/CogOutlineIcon';
5
5
  import Button from '../components/Button/Button';
6
- import Panel from '../components/Panel/Panel';
7
6
  import Box from '../components/Box/Box';
8
7
  import Icon from '../components/Icon/Icon';
9
8
  import Text from '../components/Text/Text';
10
9
  import Separator from '../components/Separator/Separator';
11
10
  import TextField from '../components/TextField/TextField';
12
11
  import TextAreaField from '../components/TextAreaField/TextAreaField';
13
- import DropdownField from '../components/DropdownField/DropdownField';
14
12
  import RadioGroupField from '../components/RadioGroupField/RadioGroupField';
15
13
  import RadioField from '../components/RadioField/RadioField';
16
14
  import Tabs from '../components/Tabs/Tabs';
@@ -96,10 +94,7 @@ export var Default = function Default() {
96
94
  }), ___EmotionJSX(TextAreaField, {
97
95
  mb: "lg",
98
96
  label: "Description"
99
- }), ___EmotionJSX(DropdownField, {
100
- label: "Category",
101
- mb: "lg"
102
- }, ___EmotionJSX("option", null, "Option 1"), ___EmotionJSX("option", null, "Option 2"), ___EmotionJSX("option", null, "Option 3")), ___EmotionJSX(RadioGroupField, {
97
+ }), ___EmotionJSX(RadioGroupField, {
103
98
  label: "Required Fields",
104
99
  variant: "radioGroupBasic"
105
100
  }, ___EmotionJSX(RadioField, {
@@ -108,17 +103,5 @@ export var Default = function Default() {
108
103
  }), ___EmotionJSX(RadioField, {
109
104
  value: "B",
110
105
  label: "Option B"
111
- })))), ___EmotionJSX(Panel, {
112
- isVisible: visible,
113
- width: "70%",
114
- bg: "accent.99"
115
- }, ___EmotionJSX(Box, {
116
- p: "lg",
117
- onClick: function onClick() {
118
- return setVisible(!visible);
119
- }
120
- }, ___EmotionJSX(Box, {
121
- p: "lg",
122
- bg: "white"
123
- }, ___EmotionJSX(Text, null, "Your content here."))))));
106
+ }))))));
124
107
  };
@@ -82,11 +82,11 @@ export var Default = function Default() {
82
82
  sx: {
83
83
  position: 'absolute',
84
84
  right: -30,
85
- top: 5
85
+ top: 5,
86
+ width: 'auto'
86
87
  },
87
88
  type: "delete",
88
- title: "Delete Field",
89
- variant: "icon"
89
+ title: "Delete Field"
90
90
  }, ___EmotionJSX(Icon, {
91
91
  icon: TrashIcon,
92
92
  size: 20,
@@ -42,9 +42,6 @@ export default {
42
42
  row: "0 0 9px ".concat(accent[95]),
43
43
  focus: "0 0 5px ".concat(focus)
44
44
  },
45
- transitions: {
46
- panel: 'margin 0.25s'
47
- },
48
45
  forms: forms,
49
46
  text: text,
50
47
  images: images,
@@ -16,20 +16,6 @@ import { text } from './text';
16
16
  var base = {
17
17
  display: 'flex'
18
18
  };
19
- var panel = {
20
- outline: 'none',
21
- position: 'relative',
22
- bg: 'white',
23
- borderLeft: 'separator',
24
- transition: 'margin 0.25s ease-in',
25
- visibility: 'hidden',
26
- '&.is-focused': {
27
- boxShadow: 'focus'
28
- },
29
- '&.is-visible': {
30
- visibility: 'visible'
31
- }
32
- };
33
19
  var card = {
34
20
  boxShadow: 'standard',
35
21
  p: 'lg',
@@ -280,7 +266,6 @@ export default {
280
266
  listItem: listItem,
281
267
  listBoxSectionTitle: listBoxSectionTitle,
282
268
  listViewItem: listViewItem,
283
- panel: panel,
284
269
  radioCheckedContent: radioCheckedContent,
285
270
  radioContainer: radioContainer,
286
271
  scrollbox: scrollbox,
@@ -158,32 +158,7 @@ var accordionHeader = _objectSpread(_objectSpread({}, base), {}, {
158
158
  color: 'accent.20'
159
159
  },
160
160
  '&.is-focused': _objectSpread({}, defaultFocus)
161
- }); // TODO: Remove this variant in Astro-UI 1.0.0
162
-
163
-
164
- var icon = {
165
- p: '3px',
166
- alignSelf: 'flex-start',
167
- flexGrow: 0,
168
- borderRadius: '100%',
169
- cursor: 'pointer',
170
- bg: 'transparent',
171
- 'path': {
172
- fill: 'text.secondary'
173
- },
174
- outline: 'none',
175
- color: 'white',
176
- '&.is-hovered': {
177
- bg: 'accent.90'
178
- },
179
- '&.is-pressed': {
180
- 'path': {
181
- fill: 'white'
182
- },
183
- bg: 'active'
184
- },
185
- '&.is-focused': _objectSpread({}, defaultFocus)
186
- };
161
+ });
187
162
 
188
163
  var primary = _objectSpread(_objectSpread({}, base), {}, {
189
164
  display: 'inline-flex',
@@ -491,7 +466,6 @@ export default {
491
466
  expandableRow: expandableRow,
492
467
  fileInputField: fileInputField,
493
468
  iconButton: iconButton,
494
- icon: icon,
495
469
  imageUpload: imageUpload,
496
470
  inline: inline,
497
471
  inverted: inverted,
@@ -24,7 +24,6 @@ import menu from './menu';
24
24
  import menuItem from './menuItem';
25
25
  import messages from './messages';
26
26
  import numberField from './numberField';
27
- import popover from './popover';
28
27
  import overlayPanel from './overlayPanel';
29
28
  import popoverMenu from './popoverMenu';
30
29
  import rockerbutton from './rockerbutton';
@@ -47,7 +46,6 @@ export default _objectSpread(_objectSpread({
47
46
  modal: modal,
48
47
  numberField: numberField,
49
48
  overlayPanel: overlayPanel,
50
- popover: popover,
51
49
  popoverMenu: popoverMenu,
52
50
  rockerbutton: rockerbutton,
53
51
  separator: separator,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "1.0.0-alpha.17",
3
+ "version": "1.0.0-alpha.20",
4
4
  "description": "PingUX themeable React component library",
5
5
  "author": "uxdev@pingidentity.com",
6
6
  "license": "Apache-2.0",
@@ -1,112 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
-
7
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
-
9
- _Object$defineProperty(exports, "__esModule", {
10
- value: true
11
- });
12
-
13
- exports["default"] = void 0;
14
-
15
- var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
16
-
17
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
18
-
19
- var _react = _interopRequireWildcard(require("react"));
20
-
21
- var _propTypes = _interopRequireDefault(require("prop-types"));
22
-
23
- var _forms = require("@rebass/forms");
24
-
25
- var _focus = require("@react-aria/focus");
26
-
27
- var _hooks = require("../../hooks");
28
-
29
- var _react2 = require("@emotion/react");
30
-
31
- /**
32
- * Basic dropdown menu input.
33
- * Accepts most styling props from [styled-system](https://styled-system.com/table).
34
- * Built on top of the [Select component from Rebass Forms](https://rebassjs.org/forms/select).
35
- */
36
- var Dropdown = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
37
- var className = props.className,
38
- children = props.children,
39
- hasNoneOption = props.hasNoneOption,
40
- hasDisabledFirstOption = props.hasDisabledFirstOption,
41
- firstLabel = props.firstLabel,
42
- noneLabel = props.noneLabel,
43
- defaultValue = props.defaultValue,
44
- value = props.value,
45
- others = (0, _objectWithoutProperties2["default"])(props, ["className", "children", "hasNoneOption", "hasDisabledFirstOption", "firstLabel", "noneLabel", "defaultValue", "value"]);
46
- var dropdownRef = (0, _react.useRef)();
47
- /* istanbul ignore next */
48
-
49
- (0, _react.useImperativeHandle)(ref, function () {
50
- return dropdownRef.current;
51
- });
52
-
53
- var _useFocusRing = (0, _focus.useFocusRing)(),
54
- isFocusVisible = _useFocusRing.isFocusVisible,
55
- focusProps = _useFocusRing.focusProps;
56
-
57
- var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
58
- isFocused: isFocusVisible
59
- }),
60
- classNames = _useStatusClasses.classNames;
61
-
62
- return (0, _react2.jsx)(_forms.Select, (0, _extends2["default"])({
63
- ref: dropdownRef,
64
- className: classNames,
65
- defaultValue: value ? undefined : defaultValue || '',
66
- value: value
67
- }, others, focusProps), !hasNoneOption && (0, _react2.jsx)("option", {
68
- key: "__empty",
69
- value: "",
70
- disabled: hasDisabledFirstOption
71
- }, firstLabel), hasNoneOption && (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)("option", {
72
- key: "__empty",
73
- value: "",
74
- disabled: hasDisabledFirstOption
75
- }, noneLabel || firstLabel), (0, _react2.jsx)("option", {
76
- key: "__spacer",
77
- disabled: true
78
- }, "--------")), children);
79
- });
80
-
81
- Dropdown.propTypes = {
82
- /** Displays a none option within the dropdown options */
83
- hasNoneOption: _propTypes["default"].bool,
84
-
85
- /** Whether the first option is disabled. Useful to prevent reselection of the first option. */
86
- hasDisabledFirstOption: _propTypes["default"].bool,
87
-
88
- /** Id of the selected element */
89
- id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
90
-
91
- /** Label for first option. */
92
- firstLabel: _propTypes["default"].string,
93
-
94
- /** Label for none option. `firstLabel` prop can also be used. */
95
- noneLabel: _propTypes["default"].string,
96
-
97
- /** Value of the select (controlled). */
98
- value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
99
-
100
- /** Default value of the select (uncontrolled). */
101
- defaultValue: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
102
-
103
- /** Handler that is called when the element's selection state changes. */
104
- onChange: _propTypes["default"].func
105
- };
106
- Dropdown.defaultProps = {
107
- hasNoneOption: false,
108
- firstLabel: 'Select an option'
109
- };
110
- Dropdown.displayName = 'Dropdown';
111
- var _default = Dropdown;
112
- exports["default"] = _default;
@@ -1,80 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
- var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
6
-
7
- var _react = _interopRequireDefault(require("react"));
8
-
9
- var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
10
-
11
- var _testWrapper = require("../../utils/testUtils/testWrapper");
12
-
13
- var _ = _interopRequireDefault(require("."));
14
-
15
- var _react2 = require("@emotion/react");
16
-
17
- var testId = 'test-box';
18
- var defaultProps = {
19
- 'data-testid': testId
20
- };
21
-
22
- var getComponent = function getComponent() {
23
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
24
- var children = props.children;
25
- return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, props), children));
26
- }; // Need to be added to each test file to test accessibility using axe.
27
-
28
-
29
- (0, _testAxe["default"])(getComponent, {
30
- // Dropdown with label provided by DropdownField
31
- rules: {
32
- 'select-name': {
33
- enabled: false
34
- }
35
- }
36
- });
37
- test('dropdown renders', function () {
38
- getComponent();
39
-
40
- var dropdown = _testWrapper.screen.getByTestId(testId);
41
-
42
- expect(dropdown).toBeInstanceOf(HTMLSelectElement);
43
- expect(dropdown).toBeInTheDocument();
44
- });
45
- test('hasNoneOption prop renders none option', function () {
46
- getComponent({
47
- hasNoneOption: true,
48
- noneLabel: 'None'
49
- });
50
- expect((0, _testWrapper.within)(document).getByText('None')).toBeInTheDocument();
51
- });
52
- test('default option is first one', function () {
53
- getComponent();
54
-
55
- var firstOption = _testWrapper.screen.getByRole('option');
56
-
57
- expect(firstOption.value).toEqual('');
58
- expect(firstOption).toHaveAttribute('selected', '');
59
- expect(firstOption).toBeEnabled();
60
- });
61
- test('default option is disabled when hasDisabledFirstOption is passed in', function () {
62
- getComponent({
63
- hasDisabledFirstOption: true
64
- });
65
-
66
- var firstOption = _testWrapper.screen.getByRole('option');
67
-
68
- expect(firstOption.value).toEqual('');
69
- expect(firstOption).toHaveAttribute('selected', '');
70
- expect(firstOption).toBeDisabled();
71
- });
72
- test('default option is not first one when custom defaultValue is passed in', function () {
73
- getComponent({
74
- defaultValue: '1'
75
- });
76
-
77
- var firstOption = _testWrapper.screen.getByRole('option');
78
-
79
- expect(firstOption).not.toHaveAttribute('selected', '');
80
- });