@pingux/astro 1.0.0-alpha.9 → 1.1.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 (142) hide show
  1. package/CHANGELOG.md +257 -0
  2. package/README.md +5 -0
  3. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +4 -11
  4. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -0
  5. package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +1 -1
  6. package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +1 -1
  7. package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +33 -1
  8. package/lib/cjs/components/AccordionItem/AccordionItem.js +5 -4
  9. package/lib/cjs/components/Button/Button.js +6 -26
  10. package/lib/cjs/components/Button/Button.stories.js +7 -12
  11. package/lib/cjs/components/Button/Button.test.js +2 -25
  12. package/lib/cjs/components/Chip/Chip.js +26 -10
  13. package/lib/cjs/components/Chip/Chip.stories.js +44 -5
  14. package/lib/cjs/components/Chip/Chip.test.js +9 -0
  15. package/lib/cjs/components/{DropdownField/index.js → Chip/ChipContext.js} +8 -7
  16. package/lib/cjs/components/ColorField/ColorField.js +1 -0
  17. package/lib/cjs/components/ComboBoxField/ComboBoxField.js +7 -0
  18. package/lib/cjs/components/ComboBoxField/ComboBoxField.stories.js +25 -1
  19. package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +44 -0
  20. package/lib/cjs/components/FileInputField/FileItem.js +2 -1
  21. package/lib/cjs/components/IconButton/IconButton.js +17 -7
  22. package/lib/cjs/components/IconButton/IconButton.stories.js +8 -17
  23. package/lib/cjs/components/IconButton/IconButton.test.js +4 -6
  24. package/lib/cjs/components/ImageUploadField/ImagePreviewButton.js +2 -1
  25. package/lib/cjs/components/List/List.js +3 -0
  26. package/lib/cjs/components/List/List.stories.js +7 -2
  27. package/lib/cjs/components/ListBox/ListBox.js +3 -6
  28. package/lib/cjs/components/ListBox/ListBox.test.js +2 -0
  29. package/lib/cjs/components/ListBox/Option.js +6 -0
  30. package/lib/cjs/components/ListItem/ListItem.stories.js +0 -2
  31. package/lib/cjs/components/ListView/ListView.js +4 -3
  32. package/lib/cjs/components/ListView/ListView.stories.js +580 -39
  33. package/lib/cjs/components/ListViewItem/ListViewItem.js +3 -6
  34. package/lib/cjs/components/Messages/Message.js +2 -2
  35. package/lib/cjs/components/MultivaluesField/MultivaluesField.js +3 -2
  36. package/lib/cjs/components/OverlayPanel/OverlayPanel.stories.js +15 -14
  37. package/lib/cjs/components/PopoverContainer/PopoverContainer.test.js +15 -0
  38. package/lib/cjs/components/Stepper/Stepper.js +1 -0
  39. package/lib/cjs/components/Tab/Tab.js +5 -3
  40. package/lib/cjs/components/Tabs/Tabs.js +3 -0
  41. package/lib/cjs/components/Tabs/Tabs.stories.js +3 -4
  42. package/lib/cjs/components/Tabs/Tabs.test.js +44 -15
  43. package/lib/cjs/components/TextArea/TextArea.js +5 -1
  44. package/lib/cjs/components/TextAreaField/TextAreaField.test.js +10 -0
  45. package/lib/cjs/components/TooltipTrigger/TooltipTrigger.stories.js +45 -2
  46. package/lib/cjs/index.js +48 -136
  47. package/lib/cjs/layouts/ListLayout.stories.js +2 -1
  48. package/lib/cjs/layouts/SchemaFormLayout.stories.js +2 -21
  49. package/lib/cjs/recipes/ArrayField.stories.js +3 -3
  50. package/lib/cjs/styles/forms/input.js +4 -0
  51. package/lib/cjs/styles/theme.js +0 -3
  52. package/lib/cjs/styles/variants/accordion.js +7 -9
  53. package/lib/cjs/styles/variants/boxes.js +22 -19
  54. package/lib/cjs/styles/variants/buttons.js +48 -29
  55. package/lib/cjs/styles/variants/variants.js +0 -3
  56. package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +4 -11
  57. package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +23 -1
  58. package/lib/components/AccordionGridItem/AccordionGridItemBody.js +1 -1
  59. package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +1 -1
  60. package/lib/components/AccordionGroup/AccordionGroup.test.js +30 -1
  61. package/lib/components/AccordionItem/AccordionItem.js +6 -5
  62. package/lib/components/Button/Button.js +8 -26
  63. package/lib/components/Button/Button.stories.js +7 -11
  64. package/lib/components/Button/Button.test.js +2 -21
  65. package/lib/components/Chip/Chip.js +25 -10
  66. package/lib/components/Chip/Chip.stories.js +41 -5
  67. package/lib/components/Chip/Chip.test.js +9 -0
  68. package/lib/components/Chip/ChipContext.js +3 -0
  69. package/lib/components/ColorField/ColorField.js +1 -0
  70. package/lib/components/ComboBoxField/ComboBoxField.js +7 -0
  71. package/lib/components/ComboBoxField/ComboBoxField.stories.js +21 -0
  72. package/lib/components/ComboBoxField/ComboBoxField.test.js +35 -0
  73. package/lib/components/FileInputField/FileItem.js +2 -1
  74. package/lib/components/IconButton/IconButton.js +17 -9
  75. package/lib/components/IconButton/IconButton.stories.js +7 -13
  76. package/lib/components/IconButton/IconButton.test.js +4 -6
  77. package/lib/components/ImageUploadField/ImagePreviewButton.js +2 -1
  78. package/lib/components/List/List.js +2 -0
  79. package/lib/components/List/List.stories.js +6 -2
  80. package/lib/components/ListBox/ListBox.js +3 -5
  81. package/lib/components/ListBox/ListBox.test.js +2 -0
  82. package/lib/components/ListBox/Option.js +6 -0
  83. package/lib/components/ListItem/ListItem.stories.js +0 -2
  84. package/lib/components/ListView/ListView.js +4 -3
  85. package/lib/components/ListView/ListView.stories.js +577 -39
  86. package/lib/components/ListViewItem/ListViewItem.js +3 -5
  87. package/lib/components/Messages/Message.js +2 -2
  88. package/lib/components/MultivaluesField/MultivaluesField.js +3 -2
  89. package/lib/components/OverlayPanel/OverlayPanel.stories.js +7 -5
  90. package/lib/components/PopoverContainer/PopoverContainer.test.js +16 -1
  91. package/lib/components/Stepper/Stepper.js +1 -0
  92. package/lib/components/Tab/Tab.js +5 -3
  93. package/lib/components/Tabs/Tabs.js +3 -0
  94. package/lib/components/Tabs/Tabs.stories.js +3 -4
  95. package/lib/components/Tabs/Tabs.test.js +40 -15
  96. package/lib/components/TextArea/TextArea.js +5 -1
  97. package/lib/components/TextAreaField/TextAreaField.test.js +8 -0
  98. package/lib/components/TooltipTrigger/TooltipTrigger.stories.js +33 -1
  99. package/lib/index.js +0 -8
  100. package/lib/layouts/ListLayout.stories.js +2 -1
  101. package/lib/layouts/SchemaFormLayout.stories.js +2 -19
  102. package/lib/recipes/ArrayField.stories.js +3 -3
  103. package/lib/styles/forms/input.js +4 -0
  104. package/lib/styles/theme.js +0 -3
  105. package/lib/styles/variants/accordion.js +7 -9
  106. package/lib/styles/variants/boxes.js +21 -19
  107. package/lib/styles/variants/buttons.js +47 -29
  108. package/lib/styles/variants/variants.js +0 -2
  109. package/package.json +1 -1
  110. package/lib/cjs/components/Dropdown/Dropdown.js +0 -112
  111. package/lib/cjs/components/Dropdown/Dropdown.test.js +0 -80
  112. package/lib/cjs/components/Dropdown/index.js +0 -18
  113. package/lib/cjs/components/DropdownField/DropdownField.js +0 -187
  114. package/lib/cjs/components/DropdownField/DropdownField.stories.js +0 -278
  115. package/lib/cjs/components/DropdownField/DropdownField.test.js +0 -80
  116. package/lib/cjs/components/Panel/Panel.js +0 -101
  117. package/lib/cjs/components/Panel/Panel.stories.js +0 -57
  118. package/lib/cjs/components/Panel/Panel.test.js +0 -72
  119. package/lib/cjs/components/Panel/index.js +0 -18
  120. package/lib/cjs/components/Popover/Popover.js +0 -87
  121. package/lib/cjs/components/Popover/Popover.stories.js +0 -80
  122. package/lib/cjs/components/Popover/Popover.test.js +0 -91
  123. package/lib/cjs/components/Popover/index.js +0 -18
  124. package/lib/cjs/recipes/InputBoxWithLinkedChip.stories.js +0 -67
  125. package/lib/cjs/styles/variants/popover.js +0 -86
  126. package/lib/components/Dropdown/Dropdown.js +0 -90
  127. package/lib/components/Dropdown/Dropdown.test.js +0 -62
  128. package/lib/components/Dropdown/index.js +0 -1
  129. package/lib/components/DropdownField/DropdownField.js +0 -155
  130. package/lib/components/DropdownField/DropdownField.stories.js +0 -222
  131. package/lib/components/DropdownField/DropdownField.test.js +0 -60
  132. package/lib/components/DropdownField/index.js +0 -1
  133. package/lib/components/Panel/Panel.js +0 -71
  134. package/lib/components/Panel/Panel.stories.js +0 -35
  135. package/lib/components/Panel/Panel.test.js +0 -52
  136. package/lib/components/Panel/index.js +0 -1
  137. package/lib/components/Popover/Popover.js +0 -65
  138. package/lib/components/Popover/Popover.stories.js +0 -52
  139. package/lib/components/Popover/Popover.test.js +0 -75
  140. package/lib/components/Popover/index.js +0 -2
  141. package/lib/recipes/InputBoxWithLinkedChip.stories.js +0 -43
  142. package/lib/styles/variants/popover.js +0 -76
@@ -18,6 +18,8 @@ var _react = _interopRequireDefault(require("react"));
18
18
 
19
19
  var _propTypes = _interopRequireDefault(require("prop-types"));
20
20
 
21
+ var _ChipContext = require("./ChipContext");
22
+
21
23
  var _Box = _interopRequireDefault(require("../Box/Box"));
22
24
 
23
25
  var _Text = _interopRequireDefault(require("../Text/Text"));
@@ -32,21 +34,31 @@ var _react2 = require("@emotion/react");
32
34
  * available [props from Theme-UI](https://theme-ui.com/sx-prop).
33
35
  */
34
36
  var Chip = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
35
- var children = props.children,
37
+ var bg = props.bg,
38
+ children = props.children,
36
39
  textColor = props.textColor,
37
40
  textProps = props.textProps,
38
- label = props.label;
39
- return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
41
+ label = props.label,
42
+ isUppercase = props.isUppercase;
43
+ return (0, _react2.jsx)(_ChipContext.ChipContext.Provider, {
44
+ value: {
45
+ bg: bg
46
+ }
47
+ }, (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
40
48
  isRow: true,
41
49
  variant: "boxes.chip",
50
+ sx: isUppercase && {
51
+ paddingBottom: '3px'
52
+ },
42
53
  ref: ref
43
54
  }, props), (0, _react2.jsx)(_Text["default"], (0, _extends2["default"])({
44
55
  variant: "label",
45
- sx: {
46
- textTransform: 'uppercase'
47
- },
48
- color: textColor
49
- }, textProps), label), children);
56
+ color: textColor,
57
+ sx: isUppercase && {
58
+ textTransform: 'uppercase',
59
+ fontSize: '11px'
60
+ }
61
+ }, textProps), label), children));
50
62
  });
51
63
 
52
64
  Chip.propTypes = {
@@ -60,11 +72,15 @@ Chip.propTypes = {
60
72
  label: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
61
73
 
62
74
  /** Props object that is spread directly into the textfield. */
63
- textProps: _propTypes["default"].shape({})
75
+ textProps: _propTypes["default"].shape({}),
76
+
77
+ /** When true, display chip label as uppercase. */
78
+ isUppercase: _propTypes["default"].bool
64
79
  };
65
80
  Chip.defaultProps = {
66
81
  textColor: 'white',
67
- bg: colors.neutral[10]
82
+ bg: colors.neutral[10],
83
+ isUppercase: false
68
84
  };
69
85
  var _default = Chip;
70
86
  exports["default"] = _default;
@@ -20,9 +20,15 @@ var _react = _interopRequireDefault(require("react"));
20
20
 
21
21
  var _CloseIcon = _interopRequireDefault(require("mdi-react/CloseIcon"));
22
22
 
23
- var _Chip = _interopRequireDefault(require("../Chip/Chip"));
23
+ var _ContentCopyIcon = _interopRequireDefault(require("mdi-react/ContentCopyIcon"));
24
24
 
25
- var _Icon = _interopRequireDefault(require("../Icon/Icon"));
25
+ var _EarthIcon = _interopRequireDefault(require("mdi-react/EarthIcon"));
26
+
27
+ var _Chip = _interopRequireDefault(require("../Chip"));
28
+
29
+ var _Icon = _interopRequireDefault(require("../Icon"));
30
+
31
+ var _IconButton = _interopRequireDefault(require("../IconButton"));
26
32
 
27
33
  var _colors = require("../../styles/colors.js");
28
34
 
@@ -61,6 +67,12 @@ var _default = {
61
67
  control: {
62
68
  type: 'text'
63
69
  }
70
+ },
71
+ isUppercase: {
72
+ defaultValue: false,
73
+ control: {
74
+ type: 'boolean'
75
+ }
64
76
  }
65
77
  }
66
78
  };
@@ -87,15 +99,42 @@ var ChipWithCustomColors = function ChipWithCustomColors() {
87
99
  exports.ChipWithCustomColors = ChipWithCustomColors;
88
100
 
89
101
  var ChipWithIcon = function ChipWithIcon() {
90
- return (0, _react2.jsx)(_Chip["default"], {
91
- label: "Chip with Icon",
102
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_Chip["default"], {
103
+ label: "Chip with Icon Button",
92
104
  bg: "navy"
105
+ }, (0, _react2.jsx)(_IconButton["default"], {
106
+ "aria-label": "Clear Chip with Icon Button",
107
+ variant: "inverted"
93
108
  }, (0, _react2.jsx)(_Icon["default"], {
94
109
  icon: _CloseIcon["default"],
95
110
  ml: "xs",
111
+ size: "14px"
112
+ }))), (0, _react2.jsx)("div", {
113
+ style: {
114
+ padding: '5px'
115
+ }
116
+ }), (0, _react2.jsx)(_Chip["default"], {
117
+ label: "Chip with Icon Button"
118
+ }, (0, _react2.jsx)(_IconButton["default"], {
119
+ "aria-label": "Clear Chip with Icon Button",
120
+ variant: "inverted"
121
+ }, (0, _react2.jsx)(_Icon["default"], {
122
+ icon: _EarthIcon["default"],
123
+ ml: "xs",
124
+ size: "14px"
125
+ }))), (0, _react2.jsx)("div", {
126
+ style: {
127
+ padding: '5px'
128
+ }
129
+ }), (0, _react2.jsx)(_Chip["default"], {
130
+ label: "Chip with Icon",
131
+ bg: "green"
132
+ }, (0, _react2.jsx)(_Icon["default"], {
133
+ icon: _ContentCopyIcon["default"],
134
+ ml: "xs",
96
135
  size: "14px",
97
136
  color: "white"
98
- }));
137
+ })));
99
138
  };
100
139
 
101
140
  exports.ChipWithIcon = ChipWithIcon;
@@ -45,4 +45,13 @@ test('renders children within Chip component', function () {
45
45
  var mockedChildren = _react2.screen.getByRole('button');
46
46
 
47
47
  expect(mockedChildren).toBeInTheDocument();
48
+ });
49
+ test('renders Chip component with uppercase', function () {
50
+ var label = 'uppercase';
51
+ var isUppercase = true;
52
+ getComponent({
53
+ label: label,
54
+ isUppercase: isUppercase
55
+ });
56
+ expect(_react2.screen.queryByText('uppercase')).toHaveStyleRule('text-transform', 'uppercase');
48
57
  });
@@ -8,11 +8,12 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
 
11
- _Object$defineProperty(exports, "default", {
12
- enumerable: true,
13
- get: function get() {
14
- return _DropdownField["default"];
15
- }
16
- });
11
+ exports.ChipContext = void 0;
12
+
13
+ var _react = _interopRequireDefault(require("react"));
14
+
15
+ var defaultValue = 'inherit';
16
+
17
+ var ChipContext = /*#__PURE__*/_react["default"].createContext(defaultValue);
17
18
 
18
- var _DropdownField = _interopRequireDefault(require("./DropdownField"));
19
+ exports.ChipContext = ChipContext;
@@ -149,6 +149,7 @@ var ColorField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
149
149
  return (0, _concat["default"])(_context2 = (0, _concat["default"])(_context3 = (0, _concat["default"])(_context4 = "rgba(".concat(colorValue === null || colorValue === void 0 ? void 0 : colorValue.red, ", ")).call(_context4, colorValue === null || colorValue === void 0 ? void 0 : colorValue.green, ", ")).call(_context3, colorValue === null || colorValue === void 0 ? void 0 : colorValue.blue, ", ")).call(_context2, colorValue === null || colorValue === void 0 ? void 0 : colorValue.alpha, ")");
150
150
  }, []);
151
151
  return (0, _react2.jsx)(_index.Box, fieldContainerProps, label && (0, _react2.jsx)(_index.Label, fieldLabelProps), (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
152
+ "aria-label": "Select color",
152
153
  bg: getRgbaFromState(state),
153
154
  onPress: handleButtonPress,
154
155
  ref: triggerRef,
@@ -157,6 +157,12 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
157
157
  (0, _react.useImperativeHandle)(ref, function () {
158
158
  return inputRef.current;
159
159
  });
160
+ /* istanbul ignore next */
161
+
162
+ var onSelectionChangeHandler = function onSelectionChangeHandler(key) {
163
+ var newVal = key || selectedKey || '';
164
+ if (onSelectionChange) onSelectionChange(newVal);
165
+ };
160
166
 
161
167
  var _useFilter = (0, _i18n.useFilter)({
162
168
  sensitivity: 'base'
@@ -164,6 +170,7 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
164
170
  contains = _useFilter.contains;
165
171
 
166
172
  var state = (0, _combobox2.useComboBoxState)(_objectSpread(_objectSpread({}, comboBoxOptions), {}, {
173
+ onSelectionChange: hasCustomValue ? onSelectionChangeHandler : onSelectionChange,
167
174
  defaultFilter: contains
168
175
  }));
169
176
 
@@ -10,7 +10,7 @@ _Object$defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
12
 
13
- exports.WithCustomHeight = exports.WithoutStatusIndicator = exports.Required = exports.HelperText = exports.Disabled = exports.FocusMenuTrigger = exports.DisabledKeys = exports.AllowCustomValue = exports.ControlledFiltering = exports.ControlledSelection = exports.ControlledMenu = exports.ControlledInput = exports.AsyncLoading = exports.WithSections = exports.Default = exports["default"] = void 0;
13
+ exports.WithCustomHeight = exports.WithoutStatusIndicator = exports.Required = exports.HelperText = exports.Disabled = exports.FocusMenuTrigger = exports.DisabledKeys = exports.AllowCustomValue = exports.ControlledWithCustomValue = exports.ControlledFiltering = exports.ControlledSelection = exports.ControlledMenu = exports.ControlledInput = exports.AsyncLoading = exports.WithSections = exports.Default = exports["default"] = void 0;
14
14
 
15
15
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
16
16
 
@@ -383,6 +383,30 @@ var ControlledFiltering = function ControlledFiltering() {
383
383
 
384
384
  exports.ControlledFiltering = ControlledFiltering;
385
385
 
386
+ var ControlledWithCustomValue = function ControlledWithCustomValue() {
387
+ var _useState9 = (0, _react.useState)(''),
388
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
389
+ inputValue = _useState10[0],
390
+ setInputValue = _useState10[1];
391
+
392
+ return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_ComboBoxField["default"], (0, _extends2["default"])({
393
+ label: "Example label",
394
+ defaultItems: items
395
+ }, actions, {
396
+ inputValue: inputValue,
397
+ selectedKey: inputValue,
398
+ onInputChange: setInputValue,
399
+ onSelectionChange: setInputValue,
400
+ hasCustomValue: true
401
+ }), function (item) {
402
+ return (0, _react2.jsx)(_index.Item, {
403
+ key: item.name
404
+ }, item.name);
405
+ }));
406
+ };
407
+
408
+ exports.ControlledWithCustomValue = ControlledWithCustomValue;
409
+
386
410
  var AllowCustomValue = function AllowCustomValue() {
387
411
  return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_ComboBoxField["default"], (0, _extends2["default"])({
388
412
  label: "Example label",
@@ -772,6 +772,50 @@ test('two listbox can not be open at the same time', function () {
772
772
  name: 'Tango'
773
773
  })).toBeInTheDocument();
774
774
  });
775
+ test('should handle selecting custom option', function () {
776
+ getComponent({
777
+ hasCustomValue: true
778
+ });
779
+
780
+ var input = _testWrapper.screen.queryByRole('combobox');
781
+
782
+ expect(input).toHaveValue(''); // type something
783
+
784
+ _userEvent["default"].type(input, 'custom'); // set input value as selected
785
+
786
+
787
+ _userEvent["default"].type(input, '{enter}', {
788
+ skipClick: true
789
+ });
790
+
791
+ expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
792
+ expect(_testWrapper.screen.queryByRole('combobox')).toHaveValue('custom'); // blur input
793
+
794
+ _userEvent["default"].tab();
795
+
796
+ expect(input).toHaveValue('custom');
797
+ });
798
+ test('onSelectionChange works properly with custom value', function () {
799
+ var onSelectionChange = jest.fn();
800
+ getComponent({
801
+ hasCustomValue: true,
802
+ onSelectionChange: onSelectionChange,
803
+ onInputChange: onSelectionChange
804
+ });
805
+
806
+ var input = _testWrapper.screen.queryByRole('combobox');
807
+
808
+ expect(input).toHaveValue('');
809
+ expect(onSelectionChange).not.toHaveBeenCalled(); // Should fire when input value was typed, and enter was pressed
810
+
811
+ _userEvent["default"].type(input, 'custom{enter}');
812
+
813
+ expect(onSelectionChange).toHaveBeenCalledWith('custom'); // Should fire when input is cleared
814
+
815
+ _userEvent["default"].type(input, '{selectall}{backspace}{enter}');
816
+
817
+ expect(onSelectionChange).toHaveBeenCalledWith('');
818
+ });
775
819
  test('should have no accessibility violations', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
776
820
  var _getComponent6, container, results;
777
821
 
@@ -61,7 +61,8 @@ var FileItem = function FileItem(props) {
61
61
 
62
62
  default:
63
63
  return {
64
- icon: _InsertDriveFileIcon["default"]
64
+ icon: _InsertDriveFileIcon["default"],
65
+ color: 'neutral.10'
65
66
  };
66
67
  }
67
68
  }, [status]);
@@ -40,6 +40,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
40
40
 
41
41
  var _themeUi = require("theme-ui");
42
42
 
43
+ var _button = require("@react-aria/button");
44
+
43
45
  var _focus = require("@react-aria/focus");
44
46
 
45
47
  var _interactions = require("@react-aria/interactions");
@@ -48,6 +50,8 @@ var _utils = require("@react-aria/utils");
48
50
 
49
51
  var _hooks = require("../../hooks");
50
52
 
53
+ var _ChipContext = require("../Chip/ChipContext");
54
+
51
55
  var _TooltipTrigger = _interopRequireWildcard(require("../TooltipTrigger"));
52
56
 
53
57
  var _react2 = require("@emotion/react");
@@ -82,11 +86,12 @@ var IconButton = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
82
86
  return buttonRef.current;
83
87
  });
84
88
 
85
- var _usePress = (0, _interactions.usePress)(_objectSpread({
86
- ref: buttonRef
87
- }, props)),
88
- isPressed = _usePress.isPressed,
89
- pressProps = _usePress.pressProps;
89
+ var _useButton = (0, _button.useButton)(_objectSpread({}, props), buttonRef),
90
+ buttonProps = _useButton.buttonProps,
91
+ isPressed = _useButton.isPressed;
92
+
93
+ var _useContext = (0, _react.useContext)(_ChipContext.ChipContext),
94
+ chipBg = _useContext.bg;
90
95
 
91
96
  var _useHover = (0, _interactions.useHover)(props),
92
97
  hoverProps = _useHover.hoverProps,
@@ -110,8 +115,13 @@ var IconButton = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
110
115
  tabIndex: 0,
111
116
  ref: buttonRef,
112
117
  className: classNames,
113
- "aria-label": ariaLabel || 'Icon Button'
114
- }, others, (0, _utils.mergeProps)(hoverProps, focusProps, pressProps)), children);
118
+ "aria-label": ariaLabel,
119
+ sx: chipBg && isHovered && {
120
+ 'path': {
121
+ fill: chipBg
122
+ }
123
+ }
124
+ }, (0, _utils.mergeProps)(hoverProps, focusProps, buttonProps, others)), children);
115
125
 
116
126
  if (title) {
117
127
  return (0, _react2.jsx)(_TooltipTrigger["default"], {
@@ -8,7 +8,7 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
 
11
- exports.Disabled = exports.WithTooltip = exports.Inverted = exports.Default = exports["default"] = void 0;
11
+ exports.Disabled = exports.WithTooltip = exports.Default = exports["default"] = void 0;
12
12
 
13
13
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
14
 
@@ -53,8 +53,10 @@ var _default = {
53
53
  isDisabled: {},
54
54
  variant: {
55
55
  control: {
56
- type: 'none'
57
- }
56
+ type: 'select',
57
+ options: ['iconButton', 'inverted', 'square', 'invertedSquare']
58
+ },
59
+ defaultValue: 'iconButton'
58
60
  }
59
61
  }
60
62
  };
@@ -62,7 +64,7 @@ exports["default"] = _default;
62
64
 
63
65
  var Default = function Default(args) {
64
66
  return (0, _react2.jsx)(_["default"], (0, _extends2["default"])({
65
- "aria-label": "my-label"
67
+ "aria-label": "default icon button"
66
68
  }, args), (0, _react2.jsx)(_Icon["default"], {
67
69
  icon: _CreateIcon["default"]
68
70
  }));
@@ -70,20 +72,9 @@ var Default = function Default(args) {
70
72
 
71
73
  exports.Default = Default;
72
74
 
73
- var Inverted = function Inverted() {
74
- return (0, _react2.jsx)(_["default"], {
75
- "aria-label": "my-label",
76
- variant: "inverted"
77
- }, (0, _react2.jsx)(_Icon["default"], {
78
- icon: _CreateIcon["default"]
79
- }));
80
- };
81
-
82
- exports.Inverted = Inverted;
83
-
84
75
  var WithTooltip = function WithTooltip() {
85
76
  return (0, _react2.jsx)(_["default"], {
86
- "aria-label": "my-label",
77
+ "aria-label": "icon button with tooltip",
87
78
  title: "Edit"
88
79
  }, (0, _react2.jsx)(_Icon["default"], {
89
80
  icon: _CreateIcon["default"]
@@ -94,7 +85,7 @@ exports.WithTooltip = WithTooltip;
94
85
 
95
86
  var Disabled = function Disabled() {
96
87
  return (0, _react2.jsx)(_["default"], {
97
- "aria-label": "my-label",
88
+ "aria-label": "disabled icon button",
98
89
  isDisabled: true
99
90
  }, (0, _react2.jsx)(_Icon["default"], {
100
91
  icon: _CreateIcon["default"]
@@ -29,7 +29,8 @@ var Icon = function Icon(props) {
29
29
  var testId = 'test-button';
30
30
  var defaultProps = {
31
31
  'data-testid': testId,
32
- icon: Icon
32
+ icon: Icon,
33
+ 'aria-label': 'Create'
33
34
  };
34
35
 
35
36
  var getComponent = function getComponent() {
@@ -46,7 +47,6 @@ test('default icon button', function () {
46
47
 
47
48
  expect(button).toHaveAttribute('data-testid', testId);
48
49
  expect(button).toBeInstanceOf(HTMLButtonElement);
49
- expect(button).toHaveAttribute('tabindex', '0');
50
50
  expect(button).toBeInTheDocument();
51
51
  });
52
52
  test('icon button hover', function () {
@@ -163,10 +163,8 @@ test('tooltip is not shown on hover or focus when prop is not passed', function
163
163
  expect(_testWrapper.screen.queryByRole('tooltip')).not.toBeInTheDocument();
164
164
  });
165
165
  test('the button should be getting aria label attribute', function () {
166
- var testLabel = 'test label';
167
- getComponent({
168
- 'aria-label': testLabel
169
- });
166
+ var testLabel = defaultProps['aria-label'];
167
+ getComponent();
170
168
  expect(_testWrapper.screen.getByLabelText(testLabel)).toBeInTheDocument();
171
169
  });
172
170
  test('show button isDisabled status', function () {
@@ -113,7 +113,8 @@ var ImagePreviewButton = /*#__PURE__*/(0, _react.forwardRef)(function (props, re
113
113
  ref: buttonRef,
114
114
  variant: "imageUpload",
115
115
  sx: widthHeightSx,
116
- "data-testid": "image-preview-button"
116
+ "data-testid": "image-preview-button",
117
+ "aria-label": "Image preview"
117
118
  }, (0, _utils.mergeProps)(focusProps, others)), previewImage && isImageType ? imagePreview : noImagePreview, isLoading && loadingPreview, (isHovered || isFocusVisible) && !isLoading && hoveredPreview));
118
119
  });
119
120
  ImagePreviewButton.propTypes = {
@@ -20,6 +20,8 @@ var _react = _interopRequireWildcard(require("react"));
20
20
 
21
21
  var _Box = _interopRequireDefault(require("../Box/Box"));
22
22
 
23
+ var _hooks = require("../../hooks");
24
+
23
25
  var _react2 = require("@emotion/react");
24
26
 
25
27
  /**
@@ -29,6 +31,7 @@ var _react2 = require("@emotion/react");
29
31
  var List = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
30
32
  var children = props.children,
31
33
  others = (0, _objectWithoutProperties2["default"])(props, ["children"]);
34
+ (0, _hooks.useDeprecationWarning)('The List component will be deprecated in Astro-UI 2.0.0, use ListView instead.');
32
35
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
33
36
  ref: ref,
34
37
  role: "list",
@@ -20,11 +20,16 @@ var _Text = _interopRequireDefault(require("../Text"));
20
20
 
21
21
  var _Separator = _interopRequireDefault(require("../Separator"));
22
22
 
23
+ var _withDeprecationWarning = _interopRequireDefault(require("../../utils/devUtils/decorators/withDeprecationWarning"));
24
+
23
25
  var _react2 = require("@emotion/react");
24
26
 
25
27
  var _default = {
26
- title: 'List',
27
- component: [_["default"], _ListItem["default"]]
28
+ title: 'Deprecated/List',
29
+ component: [_["default"], _ListItem["default"]],
30
+ decorators: [function (Story, context) {
31
+ return (0, _withDeprecationWarning["default"])(Story, context, 'The `List` component will be deprecated in Astro-UI 2.0.0, use `ListView` instead.');
32
+ }]
28
33
  };
29
34
  exports["default"] = _default;
30
35
 
@@ -55,8 +55,6 @@ var _ListBoxContext = require("./ListBoxContext");
55
55
 
56
56
  var _index = require("./index.js");
57
57
 
58
- var _hooks = require("../../hooks");
59
-
60
58
  var _isIterable = require("../../utils/devUtils/props/isIterable");
61
59
 
62
60
  var _Loader = _interopRequireDefault(require("../Loader"));
@@ -120,12 +118,11 @@ var ListBox = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
120
118
  selectedKeys = props.selectedKeys,
121
119
  selectionMode = props.selectionMode,
122
120
  state = props.state,
121
+ ariaLabel = props['aria-label'],
123
122
  ariaLabelledby = props['aria-labelledby'],
124
123
  ariaDescribedby = props['aria-describedby'],
125
124
  ariaDetails = props['aria-details'],
126
- others = (0, _objectWithoutProperties2["default"])(props, ["defaultSelectedKeys", "disabledKeys", "hasAutoFocus", "hasFocusWrap", "hasNoEmptySelection", "hasVirtualFocus", "id", "isLoading", "isFocusedOnHover", "isSelectedOnPressUp", "isVirtualized", "items", "keyboardDelegate", "label", "onLoadMore", "onScroll", "onSelectionChange", "renderEmptyState", "selectedKeys", "selectionMode", "state", "aria-labelledby", "aria-describedby", "aria-details"]);
127
- var ariaLabel = props['aria-label'];
128
- (0, _hooks.useAriaLabelWarning)('ListBox', ariaLabel);
125
+ others = (0, _objectWithoutProperties2["default"])(props, ["defaultSelectedKeys", "disabledKeys", "hasAutoFocus", "hasFocusWrap", "hasNoEmptySelection", "hasVirtualFocus", "id", "isLoading", "isFocusedOnHover", "isSelectedOnPressUp", "isVirtualized", "items", "keyboardDelegate", "label", "onLoadMore", "onScroll", "onSelectionChange", "renderEmptyState", "selectedKeys", "selectionMode", "state", "aria-label", "aria-labelledby", "aria-describedby", "aria-details"]);
129
126
  var focusStrategy = state.focusStrategy; // Object matching React Aria API with all options
130
127
 
131
128
  var listBoxOptions = {
@@ -149,7 +146,7 @@ var ListBox = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
149
146
  shouldFocusWrap: hasFocusWrap,
150
147
  shouldSelectOnPressUp: isSelectedOnPressUp,
151
148
  shouldUseVirtualFocus: hasVirtualFocus,
152
- 'aria-label': ariaLabel || 'ListBox',
149
+ 'aria-label': ariaLabel,
153
150
  'aria-labelledby': ariaLabelledby,
154
151
  'aria-describedby': ariaDescribedby,
155
152
  'aria-details': ariaDetails
@@ -44,11 +44,13 @@ var itemsWithSections = [{
44
44
  }];
45
45
  var defaultProps = {
46
46
  'data-testid': testId,
47
+ 'aria-label': 'listbox',
47
48
  'aria-labelledby': 'label',
48
49
  items: items
49
50
  };
50
51
  var defaultWithSectionsProps = {
51
52
  'data-testid': testId,
53
+ 'aria-label': 'listbox',
52
54
  'aria-labelledby': 'label',
53
55
  items: itemsWithSections
54
56
  };
@@ -96,7 +96,13 @@ var Option = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
96
96
  isSelected: isSelected
97
97
  }),
98
98
  classNames = _useStatusClasses.classNames;
99
+ /* Related to UIP-4992
100
+ * Need to remove these properties to avoid errors in the console on the external app.
101
+ * By the way, these properties return "undefined", so it shouldn't create issues */
99
102
 
103
+
104
+ delete optionProps.onPressStart;
105
+ delete optionProps.onPressUp;
100
106
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
101
107
  as: "li",
102
108
  isRow: true,
@@ -56,7 +56,6 @@ var Default = function Default(args) {
56
56
  isRow: true,
57
57
  alignSelf: "center"
58
58
  }, (0, _react2.jsx)(_IconButton["default"], {
59
- variant: "icon",
60
59
  size: 26
61
60
  }, (0, _react2.jsx)(_Icon["default"], {
62
61
  icon: _MoreVertIcon["default"],
@@ -91,7 +90,6 @@ var WithSubtitle = function WithSubtitle(args) {
91
90
  isRow: true,
92
91
  alignSelf: "center"
93
92
  }, (0, _react2.jsx)(_IconButton["default"], {
94
- variant: "icon",
95
93
  size: 26
96
94
  }, (0, _react2.jsx)(_Icon["default"], {
97
95
  icon: _MoreVertIcon["default"],
@@ -81,18 +81,19 @@ var collectionTypes = {
81
81
  exports.collectionTypes = collectionTypes;
82
82
 
83
83
  function useListLayout(state) {
84
+ var ROW_HEIGHT = 81;
84
85
  var collator = (0, _i18n.useCollator)({
85
86
  usage: 'search',
86
87
  sensitivity: 'base'
87
88
  });
88
89
  var layout = (0, _react.useMemo)(function () {
89
90
  return new _layout.ListLayout({
90
- estimatedRowHeight: 81,
91
+ estimatedRowHeight: ROW_HEIGHT,
91
92
  estimatedHeadingHeight: 26,
92
93
  paddingRight: 4,
93
94
  paddingLeft: 4,
94
- loaderHeight: 81,
95
- placeholderHeight: 81,
95
+ loaderHeight: ROW_HEIGHT,
96
+ placeholderHeight: ROW_HEIGHT,
96
97
  collator: collator
97
98
  });
98
99
  }, [collator]);