@pingux/astro 1.1.0-alpha.1 → 1.1.0-alpha.13

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 (104) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -0
  3. package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +1 -1
  4. package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +1 -1
  5. package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +33 -1
  6. package/lib/cjs/components/AccordionItem/AccordionItem.js +5 -4
  7. package/lib/cjs/components/Button/Button.js +1 -2
  8. package/lib/cjs/components/Button/Button.stories.js +2 -1
  9. package/lib/cjs/components/Button/Button.test.js +2 -1
  10. package/lib/cjs/components/CodeView/CodeView.js +165 -0
  11. package/lib/cjs/components/CodeView/CodeView.stories.js +93 -0
  12. package/lib/cjs/components/CodeView/CodeView.test.js +211 -0
  13. package/lib/cjs/components/CodeView/index.js +18 -0
  14. package/lib/cjs/components/ColorField/ColorField.js +1 -0
  15. package/lib/cjs/components/ComboBoxField/ComboBoxField.js +7 -0
  16. package/lib/cjs/components/ComboBoxField/ComboBoxField.stories.js +25 -1
  17. package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +44 -0
  18. package/lib/cjs/components/CopyText/CopyText.js +34 -11
  19. package/lib/cjs/components/FileInputField/FileItem.js +2 -1
  20. package/lib/cjs/components/IconButton/IconButton.js +1 -1
  21. package/lib/cjs/components/IconButton/IconButton.stories.js +8 -17
  22. package/lib/cjs/components/IconButton/IconButton.test.js +4 -5
  23. package/lib/cjs/components/ImageUploadField/ImagePreviewButton.js +2 -1
  24. package/lib/cjs/components/List/List.js +3 -0
  25. package/lib/cjs/components/List/List.stories.js +7 -2
  26. package/lib/cjs/components/ListBox/ListBox.js +3 -6
  27. package/lib/cjs/components/ListBox/ListBox.test.js +2 -0
  28. package/lib/cjs/components/ListBox/Option.js +6 -0
  29. package/lib/cjs/components/Messages/Message.js +2 -2
  30. package/lib/cjs/components/MultivaluesField/MultivaluesField.js +2 -1
  31. package/lib/cjs/components/NavBar/NavBar.js +38 -0
  32. package/lib/cjs/components/NavBar/NavBar.stories.js +679 -0
  33. package/lib/cjs/components/NavBar/NavBar.test.js +116 -0
  34. package/lib/cjs/components/NavBar/index.js +18 -0
  35. package/lib/cjs/components/NavBarSection/NavBarItemBody.js +56 -0
  36. package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +47 -0
  37. package/lib/cjs/components/NavBarSection/NavBarSection.js +82 -0
  38. package/lib/cjs/components/NavBarSection/index.js +18 -0
  39. package/lib/cjs/components/OverlayPanel/OverlayPanel.stories.js +15 -14
  40. package/lib/cjs/components/PopoverContainer/PopoverContainer.test.js +15 -0
  41. package/lib/cjs/components/Separator/Separator.js +1 -1
  42. package/lib/cjs/components/TextArea/TextArea.js +5 -1
  43. package/lib/cjs/components/TooltipTrigger/TooltipTrigger.js +10 -5
  44. package/lib/cjs/index.js +84 -30
  45. package/lib/cjs/styles/variants/accordion.js +34 -3
  46. package/lib/cjs/styles/variants/boxes.js +24 -1
  47. package/lib/cjs/styles/variants/buttons.js +39 -1
  48. package/lib/cjs/styles/variants/codeView.js +80 -0
  49. package/lib/cjs/styles/variants/link.js +1 -1
  50. package/lib/cjs/styles/variants/separator.js +46 -3
  51. package/lib/cjs/styles/variants/text.js +15 -0
  52. package/lib/cjs/styles/variants/variants.js +3 -0
  53. package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +23 -1
  54. package/lib/components/AccordionGridItem/AccordionGridItemBody.js +1 -1
  55. package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +1 -1
  56. package/lib/components/AccordionGroup/AccordionGroup.test.js +30 -1
  57. package/lib/components/AccordionItem/AccordionItem.js +6 -5
  58. package/lib/components/Button/Button.js +2 -3
  59. package/lib/components/Button/Button.stories.js +2 -1
  60. package/lib/components/Button/Button.test.js +2 -1
  61. package/lib/components/CodeView/CodeView.js +130 -0
  62. package/lib/components/CodeView/CodeView.stories.js +67 -0
  63. package/lib/components/CodeView/CodeView.test.js +171 -0
  64. package/lib/components/CodeView/index.js +1 -0
  65. package/lib/components/ColorField/ColorField.js +1 -0
  66. package/lib/components/ComboBoxField/ComboBoxField.js +7 -0
  67. package/lib/components/ComboBoxField/ComboBoxField.stories.js +21 -0
  68. package/lib/components/ComboBoxField/ComboBoxField.test.js +35 -0
  69. package/lib/components/CopyText/CopyText.js +35 -11
  70. package/lib/components/FileInputField/FileItem.js +2 -1
  71. package/lib/components/IconButton/IconButton.js +1 -1
  72. package/lib/components/IconButton/IconButton.stories.js +7 -13
  73. package/lib/components/IconButton/IconButton.test.js +4 -5
  74. package/lib/components/ImageUploadField/ImagePreviewButton.js +2 -1
  75. package/lib/components/List/List.js +2 -0
  76. package/lib/components/List/List.stories.js +6 -2
  77. package/lib/components/ListBox/ListBox.js +3 -5
  78. package/lib/components/ListBox/ListBox.test.js +2 -0
  79. package/lib/components/ListBox/Option.js +6 -0
  80. package/lib/components/Messages/Message.js +2 -2
  81. package/lib/components/MultivaluesField/MultivaluesField.js +2 -1
  82. package/lib/components/NavBar/NavBar.js +24 -0
  83. package/lib/components/NavBar/NavBar.stories.js +650 -0
  84. package/lib/components/NavBar/NavBar.test.js +92 -0
  85. package/lib/components/NavBar/index.js +1 -0
  86. package/lib/components/NavBarSection/NavBarItemBody.js +37 -0
  87. package/lib/components/NavBarSection/NavBarItemHeader.js +31 -0
  88. package/lib/components/NavBarSection/NavBarSection.js +65 -0
  89. package/lib/components/NavBarSection/index.js +1 -0
  90. package/lib/components/OverlayPanel/OverlayPanel.stories.js +7 -5
  91. package/lib/components/PopoverContainer/PopoverContainer.test.js +16 -1
  92. package/lib/components/Separator/Separator.js +1 -1
  93. package/lib/components/TextArea/TextArea.js +5 -1
  94. package/lib/components/TooltipTrigger/TooltipTrigger.js +10 -5
  95. package/lib/index.js +5 -0
  96. package/lib/styles/variants/accordion.js +34 -3
  97. package/lib/styles/variants/boxes.js +24 -1
  98. package/lib/styles/variants/buttons.js +39 -1
  99. package/lib/styles/variants/codeView.js +68 -0
  100. package/lib/styles/variants/link.js +1 -1
  101. package/lib/styles/variants/separator.js +33 -1
  102. package/lib/styles/variants/text.js +15 -0
  103. package/lib/styles/variants/variants.js +2 -0
  104. package/package.json +3 -1
@@ -1,13 +1,38 @@
1
1
  "use strict";
2
2
 
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
- _Object$defineProperty(exports, "__esModule", {
5
+ var _Object$defineProperty2 = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ _Object$defineProperty2(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
 
9
11
  exports["default"] = void 0;
10
- var _default = {
12
+
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-property"));
14
+
15
+ var _defineProperties = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-properties"));
16
+
17
+ var _getOwnPropertyDescriptors = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors"));
18
+
19
+ var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
20
+
21
+ var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor"));
22
+
23
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
24
+
25
+ var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
26
+
27
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
28
+
29
+ var _defineProperty3 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
30
+
31
+ function ownKeys(object, enumerableOnly) { var keys = (0, _keys["default"])(object); if (_getOwnPropertySymbols["default"]) { var symbols = (0, _getOwnPropertySymbols["default"])(object); if (enumerableOnly) symbols = (0, _filter["default"])(symbols).call(symbols, function (sym) { return (0, _getOwnPropertyDescriptor["default"])(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
32
+
33
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; (0, _forEach["default"])(_context = ownKeys(Object(source), true)).call(_context, function (key) { (0, _defineProperty3["default"])(target, key, source[key]); }); } else if (_getOwnPropertyDescriptors["default"]) { (0, _defineProperties["default"])(target, (0, _getOwnPropertyDescriptors["default"])(source)); } else { var _context2; (0, _forEach["default"])(_context2 = ownKeys(Object(source))).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, (0, _getOwnPropertyDescriptor["default"])(source, key)); }); } } return target; }
34
+
35
+ var base = {
11
36
  bg: 'neutral.80',
12
37
  width: '100%',
13
38
  height: '1px',
@@ -18,4 +43,22 @@ var _default = {
18
43
  mx: '5px'
19
44
  }
20
45
  };
46
+
47
+ var navBarSeparator = _objectSpread(_objectSpread({}, base), {}, {
48
+ width: '100%',
49
+ backgroundColor: 'neutral.60'
50
+ });
51
+
52
+ var navBarSubtitleSeparator = _objectSpread(_objectSpread({}, base), {}, {
53
+ ml: '45px',
54
+ width: 'calc(100% - 75px)',
55
+ mb: '15px',
56
+ backgroundColor: 'neutral.60'
57
+ });
58
+
59
+ var _default = {
60
+ base: base,
61
+ navBarSeparator: navBarSeparator,
62
+ navBarSubtitleSeparator: navBarSubtitleSeparator
63
+ };
21
64
  exports["default"] = _default;
@@ -139,6 +139,19 @@ var expandableRow = {
139
139
  }
140
140
  }
141
141
  };
142
+ var navBarSubtitle = {
143
+ fontWeight: 3,
144
+ fontSize: '11px',
145
+ color: 'accent.80'
146
+ };
147
+
148
+ var navBarHeaderText = _objectSpread(_objectSpread({}, wordWrap), {}, {
149
+ whiteSpace: 'break-spaces',
150
+ lineHeight: '13px',
151
+ fontSize: '13px',
152
+ fontWeight: 1
153
+ });
154
+
142
155
  var text = {
143
156
  base: base,
144
157
  bodyStrong: _objectSpread(_objectSpread({}, wordWrap), {}, {
@@ -202,6 +215,8 @@ var text = {
202
215
  textOverflow: 'ellipsis'
203
216
  }),
204
217
  expandableRow: expandableRow,
218
+ navBarHeaderText: navBarHeaderText,
219
+ navBarSubtitle: navBarSubtitle,
205
220
  placeholder: {
206
221
  fontWeight: -1,
207
222
  color: 'text.secondary',
@@ -34,6 +34,8 @@ var _accordion = _interopRequireDefault(require("./accordion"));
34
34
 
35
35
  var _boxes = _interopRequireDefault(require("./boxes"));
36
36
 
37
+ var _codeView = _interopRequireDefault(require("./codeView"));
38
+
37
39
  var _images = _interopRequireDefault(require("./images"));
38
40
 
39
41
  var _imageUpload = _interopRequireDefault(require("./imageUpload"));
@@ -77,6 +79,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
77
79
  var _default = _objectSpread(_objectSpread({
78
80
  accordion: _accordion["default"],
79
81
  boxes: _boxes["default"],
82
+ codeView: _codeView["default"],
80
83
  images: _images["default"],
81
84
  imageUpload: _imageUpload["default"],
82
85
  loader: _loader["default"],
@@ -4,7 +4,7 @@ import { Item } from '@react-stately/collections';
4
4
  import userEvent from '@testing-library/user-event';
5
5
  import axeTest from '../../utils/testUtils/testAxe';
6
6
  import { act, fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
7
- import { Link, Box } from '../../index';
7
+ import { Link, Box, OverlayPanel } from '../../index';
8
8
  import AccordionGridGroup from '../AccordionGridGroup';
9
9
  import { jsx as ___EmotionJSX } from "@emotion/react";
10
10
  var testId = 'test-accordion';
@@ -26,6 +26,22 @@ var getComponent = function getComponent() {
26
26
  }, ___EmotionJSX(Box, null, ___EmotionJSX(Link, null, "Header Button"), ___EmotionJSX(Link, null, "Second Header Button")), ___EmotionJSX(Box, null, ___EmotionJSX(Link, null, "Body Button"), ___EmotionJSX(Link, null, "Second Body Button")))));
27
27
  };
28
28
 
29
+ var getComponentInOverlayPanel = function getComponentInOverlayPanel() {
30
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
+ return render(___EmotionJSX(OverlayPanel, {
32
+ isOpen: true
33
+ }, ___EmotionJSX(AccordionGridGroup, _extends({}, defaultProps, props), ___EmotionJSX(Item, {
34
+ key: "first",
35
+ textValue: "Duplicate"
36
+ }, ___EmotionJSX(Box, null, ___EmotionJSX(Link, null, "Header Button"), ___EmotionJSX(Link, null, "Second Header Button")), ___EmotionJSX(Box, null, ___EmotionJSX(Link, null, "Body Button"), ___EmotionJSX(Link, null, "Second Body Button"))), ___EmotionJSX(Item, {
37
+ key: "second",
38
+ textValue: "Duplicate"
39
+ }, ___EmotionJSX(Box, null, ___EmotionJSX(Link, null, "Header Button"), ___EmotionJSX(Link, null, "Second Header Button")), ___EmotionJSX(Box, null, ___EmotionJSX(Link, null, "Body Button"), ___EmotionJSX(Link, null, "Second Body Button"))), ___EmotionJSX(Item, {
40
+ key: "third",
41
+ textValue: "Duplicate"
42
+ }, ___EmotionJSX(Box, null, ___EmotionJSX(Link, null, "Header Button"), ___EmotionJSX(Link, null, "Second Header Button")), ___EmotionJSX(Box, null, ___EmotionJSX(Link, null, "Body Button"), ___EmotionJSX(Link, null, "Second Body Button"))))));
43
+ };
44
+
29
45
  axeTest(getComponent, {
30
46
  // landmark-unique rule conflicts with react-aria role definition
31
47
  rules: {
@@ -166,4 +182,10 @@ test('default expanded keys expands an accordion item', function () {
166
182
  var row = screen.getAllByRole('row');
167
183
  var selectedRow = row[0];
168
184
  expect(selectedRow).toHaveAttribute('aria-selected', 'true');
185
+ });
186
+ test('items do not automatically expand if wrapped in an open OverlayPanel', function () {
187
+ getComponentInOverlayPanel();
188
+ var row = screen.getAllByRole('row');
189
+ var selectedRow = row[0];
190
+ expect(selectedRow).not.toHaveAttribute('aria-selected', 'true');
169
191
  });
@@ -52,7 +52,7 @@ var AccordionGridItemBody = /*#__PURE__*/forwardRef(function (props, ref) {
52
52
  }, mergedProps, {
53
53
  isSelected: isSelected,
54
54
  className: classNames,
55
- "aria-label": ariaLabel || 'Grid Cell'
55
+ "aria-label": ariaLabel
56
56
  }), children);
57
57
  });
58
58
  AccordionGridItemBody.propTypes = {
@@ -76,7 +76,7 @@ var AccordionGridItemHeader = /*#__PURE__*/forwardRef(function (props, ref) {
76
76
  isSelected: isSelected,
77
77
  className: classNames
78
78
  }, others, {
79
- "aria-label": ariaLabel || 'Grid Cell'
79
+ "aria-label": ariaLabel
80
80
  }), ___EmotionJSX(Box, {
81
81
  isRow: true
82
82
  }, children, ___EmotionJSX(Box, {
@@ -7,6 +7,7 @@ import axeTest from '../../utils/testUtils/testAxe';
7
7
  import { act, fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
8
8
  import Text from '../Text';
9
9
  import AccordionGroup from '../AccordionGroup';
10
+ import { OverlayPanel } from '../../index';
10
11
  import { jsx as ___EmotionJSX } from "@emotion/react";
11
12
  var testId = 'test-accordion';
12
13
  var defaultProps = {
@@ -16,6 +17,28 @@ var defaultProps = {
16
17
  var getComponent = function getComponent() {
17
18
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
19
  return render(___EmotionJSX(AccordionGroup, _extends({}, defaultProps, props), ___EmotionJSX(Item, {
20
+ key: "first",
21
+ textValue: "Duplicate",
22
+ "data-id": "first",
23
+ label: "Accordion item"
24
+ }, ___EmotionJSX(Text, null, "Render me!")), ___EmotionJSX(Item, {
25
+ key: "second",
26
+ textValue: "Duplicate",
27
+ "data-id": "second",
28
+ label: "Accordion item"
29
+ }, ___EmotionJSX(Text, null, "Render me!")), ___EmotionJSX(Item, {
30
+ key: "third",
31
+ textValue: "Duplicate",
32
+ "data-id": "third",
33
+ label: "Accordion item"
34
+ }, ___EmotionJSX(Text, null, "Render me!"))));
35
+ };
36
+
37
+ var getComponentInOverlayPanel = function getComponentInOverlayPanel() {
38
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
39
+ return render(___EmotionJSX(OverlayPanel, {
40
+ isOpen: true
41
+ }, ___EmotionJSX(AccordionGroup, _extends({}, defaultProps, props), ___EmotionJSX(Item, {
19
42
  key: "first",
20
43
  textValue: "Duplicate",
21
44
  "data-id": "first"
@@ -27,7 +50,7 @@ var getComponent = function getComponent() {
27
50
  key: "third",
28
51
  textValue: "Duplicate",
29
52
  "data-id": "third"
30
- }, ___EmotionJSX(Text, null, "Render me!"))));
53
+ }, ___EmotionJSX(Text, null, "Render me!")))));
31
54
  }; // Need to be added to each test file to test accessibility using axe.
32
55
 
33
56
 
@@ -197,4 +220,10 @@ test('Item accepts a data-id and the data-id can be found in the DOM', function
197
220
  var selectedItem = buttons[0];
198
221
  var parentElement = selectedItem.parentElement;
199
222
  expect(parentElement).toHaveAttribute('data-id', 'first');
223
+ });
224
+ test('items do not automatically expand if wrapped in an open OverlayPanel', function () {
225
+ getComponentInOverlayPanel();
226
+ var buttons = screen.getAllByRole('button');
227
+ var selectedItem = buttons[0];
228
+ expect(selectedItem).not.toHaveAttribute('aria-expanded', 'true');
200
229
  });
@@ -11,7 +11,7 @@ import { useAccordionItem } from '@react-aria/accordion';
11
11
  import { useButton } from '@react-aria/button';
12
12
  import { useFocusRing } from '@react-aria/focus';
13
13
  import { Text, Icon, Box } from '../../index';
14
- import { useAriaLabelWarning, useStatusClasses } from '../../hooks';
14
+ import { useStatusClasses } from '../../hooks';
15
15
  import { AccordionContext } from '../../context/AccordionContext';
16
16
  import { jsx as ___EmotionJSX } from "@emotion/react";
17
17
  var AccordionItem = /*#__PURE__*/forwardRef(function (props, ref) {
@@ -72,12 +72,11 @@ var AccordionItem = /*#__PURE__*/forwardRef(function (props, ref) {
72
72
  buttonClasses = _useStatusClasses2.classNames;
73
73
 
74
74
  var ariaLabel = props['aria-label'] || item.props.label;
75
- useAriaLabelWarning('AccordionItem', ariaLabel);
76
75
  return ___EmotionJSX(Box, _extends({
77
76
  variant: "accordion.accordion",
78
77
  className: itemClasses
79
78
  }, others, containerProps), ___EmotionJSX(ThemeUIButton, _extends({
80
- "aria-label": ariaLabel || 'Accordion',
79
+ "aria-label": ariaLabel,
81
80
  ref: buttonRef,
82
81
  sx: {
83
82
  display: 'flex',
@@ -94,9 +93,11 @@ var AccordionItem = /*#__PURE__*/forwardRef(function (props, ref) {
94
93
  ml: "5px"
95
94
  }, ___EmotionJSX(Icon, {
96
95
  icon: isOpen ? MenuUp : MenuDown
97
- }))), ___EmotionJSX(Box, _extends({
96
+ }))), isOpen && ___EmotionJSX(Box, _extends({
98
97
  variant: "accordion.accordionBody"
99
- }, accordionRegionProps, regionProps), item.rendered));
98
+ }, accordionRegionProps, regionProps, {
99
+ className: itemClasses
100
+ }), item.rendered));
100
101
  });
101
102
  AccordionItem.propTypes = {
102
103
  'aria-label': PropTypes.string,
@@ -21,7 +21,7 @@ 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 { useAriaLabelWarning, useStatusClasses, usePropWarning } from '../../hooks';
24
+ import { useStatusClasses, usePropWarning } from '../../hooks';
25
25
  import Loader from '../Loader';
26
26
  import { jsx as ___EmotionJSX } from "@emotion/react";
27
27
  var Button = /*#__PURE__*/forwardRef(function (props, ref) {
@@ -70,9 +70,8 @@ var Button = /*#__PURE__*/forwardRef(function (props, ref) {
70
70
  classNames = _useStatusClasses.classNames;
71
71
 
72
72
  var ariaLabel = props['aria-label'];
73
- useAriaLabelWarning('Button', ariaLabel);
74
73
  return ___EmotionJSX(ThemeUIButton, _extends({
75
- "aria-label": ariaLabel || 'Button',
74
+ "aria-label": ariaLabel,
76
75
  ref: buttonRef,
77
76
  className: classNames,
78
77
  role: "button",
@@ -62,7 +62,8 @@ export var TextIconButton = function TextIconButton() {
62
62
  export var TextButton = function TextButton() {
63
63
  return ___EmotionJSX(Button, {
64
64
  mb: "sm",
65
- variant: "text"
65
+ variant: "text",
66
+ "aria-label": "Add option"
66
67
  }, ___EmotionJSX(Text, {
67
68
  variant: "label",
68
69
  color: "active"
@@ -7,7 +7,8 @@ import Button from '.';
7
7
  import { jsx as ___EmotionJSX } from "@emotion/react";
8
8
  var testId = 'test-button';
9
9
  var defaultProps = {
10
- 'data-testid': testId
10
+ 'data-testid': testId,
11
+ 'aria-label': 'Test button'
11
12
  };
12
13
 
13
14
  var getComponent = function getComponent() {
@@ -0,0 +1,130 @@
1
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
2
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
3
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
4
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
6
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
7
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
8
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
9
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
10
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
11
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
12
+ import _trimInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/trim";
13
+ import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
14
+
15
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
16
+
17
+ 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; }
18
+
19
+ import React, { forwardRef } from 'react';
20
+ import PropTypes from 'prop-types';
21
+ import { useFocusRing } from '@react-aria/focus';
22
+ import { useHover } from '@react-aria/interactions';
23
+ import { mergeProps } from '@react-aria/utils';
24
+ import Highlight, { defaultProps } from 'prism-react-renderer';
25
+ import { useStatusClasses } from '../../hooks';
26
+ import { Box, CopyText } from '../..';
27
+ /**
28
+ * A text block that shows syntax highlighting code sample.
29
+ * Built on top of the [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer).
30
+ *
31
+ * A list of all supported languages that can be passed to `language` prop is [here](https://github.com/FormidableLabs/prism-react-renderer/blob/master/src/vendor/prism/includeLangs.js).
32
+ */
33
+
34
+ import { jsx as ___EmotionJSX } from "@emotion/react";
35
+ var CodeView = /*#__PURE__*/forwardRef(function (props, ref) {
36
+ var children = props.children,
37
+ outerClassName = props.className,
38
+ hasLineNumbers = props.hasLineNumbers,
39
+ hasNoCopyButton = props.hasNoCopyButton,
40
+ language = props.language,
41
+ others = _objectWithoutProperties(props, ["children", "className", "hasLineNumbers", "hasNoCopyButton", "language"]);
42
+
43
+ var _useFocusRing = useFocusRing(),
44
+ isFocusVisible = _useFocusRing.isFocusVisible,
45
+ focusProps = _useFocusRing.focusProps;
46
+
47
+ var _useHover = useHover(props),
48
+ hoverProps = _useHover.hoverProps,
49
+ isHovered = _useHover.isHovered;
50
+
51
+ var _useStatusClasses = useStatusClasses(outerClassName, {
52
+ isFocused: isFocusVisible,
53
+ isHovered: isHovered,
54
+ hasLineNumbers: hasLineNumbers,
55
+ hasNoCopyButton: hasNoCopyButton
56
+ }),
57
+ classNames = _useStatusClasses.classNames; // Get the width for the line number element depending on the total amount of lines
58
+
59
+
60
+ var getLineNoWidth = function getLineNoWidth(tokens) {
61
+ return tokens.length.toString().length * 12;
62
+ };
63
+
64
+ var content = ___EmotionJSX(Highlight, _extends({}, defaultProps, {
65
+ theme: undefined,
66
+ code: (children === null || children === void 0 ? void 0 : _trimInstanceProperty(children).call(children)) || '',
67
+ language: language
68
+ }), function (_ref) {
69
+ var className = _ref.className,
70
+ style = _ref.style,
71
+ tokens = _ref.tokens,
72
+ getLineProps = _ref.getLineProps,
73
+ getTokenProps = _ref.getTokenProps;
74
+ return ___EmotionJSX(Box, {
75
+ as: "pre",
76
+ className: className,
77
+ style: style
78
+ }, _mapInstanceProperty(tokens).call(tokens, function (line, i) {
79
+ return ___EmotionJSX(Box, _extends({
80
+ isRow: true
81
+ }, getLineProps({
82
+ line: line,
83
+ key: i
84
+ })), hasLineNumbers && ___EmotionJSX(Box, {
85
+ as: "span",
86
+ variant: "codeView.lineNo",
87
+ sx: {
88
+ minWidth: getLineNoWidth(tokens)
89
+ }
90
+ }, i + 1), _mapInstanceProperty(line).call(line, function (token, key) {
91
+ return ___EmotionJSX("span", getTokenProps({
92
+ token: token,
93
+ key: key
94
+ }));
95
+ }));
96
+ }));
97
+ });
98
+
99
+ if (hasNoCopyButton) {
100
+ return ___EmotionJSX(Box, _extends({
101
+ ref: ref,
102
+ variant: "codeView.wrapper",
103
+ tabIndex: 0,
104
+ className: classNames
105
+ }, mergeProps(focusProps, hoverProps, others)), content);
106
+ }
107
+
108
+ return ___EmotionJSX(CopyText, {
109
+ mode: "nonClickableContent",
110
+ textToCopy: children,
111
+ tooltipProps: {
112
+ offset: 15
113
+ },
114
+ wrapperProps: _objectSpread({
115
+ className: classNames,
116
+ variant: 'codeView.wrapper'
117
+ }, others)
118
+ }, content);
119
+ });
120
+ CodeView.propTypes = {
121
+ hasLineNumbers: PropTypes.bool,
122
+ hasNoCopyButton: PropTypes.bool,
123
+ language: PropTypes.string
124
+ };
125
+ CodeView.defaultProps = {
126
+ language: 'json',
127
+ hasLineNumbers: false,
128
+ hasNoCopyButton: false
129
+ };
130
+ export default CodeView;
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import CodeView from './CodeView';
3
+ import { Text } from '../..';
4
+ import { jsx as ___EmotionJSX } from "@emotion/react";
5
+ var code = "{\n \"_links\": {\n \"self\": {\n \"href\": \"https://api.pingone.com/v1/environments/94e3268d-847d-47aa-a45e-1ef8dd8f4df0/users/5a5d4c0c-8383-4796-9cdc-16b5a22f45ad\"\n },\n \"password\": {\n \"href\": \"https://api.pingone.com/v1/environments/94e3268d-847d-47aa-a45e-1ef8dd8f4df0/users/5a5d4c0c-8383-4796-9cdc-16b5a22f45ad/password\"\n },\n \"password.set\": {\n \"href\": \"https://api.pingone.com/v1/environments/94e3268d-847d-47aa-a45e-1ef8dd8f4df0/users/5a5d4c0c-8383-4796-9cdc-16b5a22f45ad/password\"\n },\n \"password.reset\": {\n \"href\": \"https://api.pingone.com/v1/environments/94e3268d-847d-47aa-a45e-1ef8dd8f4df0/users/5a5d4c0c-8383-4796-9cdc-16b5a22f45ad/password\"\n },\n \"password.check\": {\n \"href\": \"https://api.pingone.com/v1/environments/94e3268d-847d-47aa-a45e-1ef8dd8f4df0/users/5a5d4c0c-8383-4796-9cdc-16b5a22f45ad/password\"\n },\n \"password.recover\": {\n \"href\": \"https://api.pingone.com/v1/environments/94e3268d-847d-47aa-a45e-1ef8dd8f4df0/users/5a5d4c0c-8383-4796-9cdc-16b5a22f45ad/password\"\n },\n \"account.sendVerificationCode\": {\n \"href\": \"https://api.pingone.com/v1/environments/94e3268d-847d-47aa-a45e-1ef8dd8f4df0/users/5a5d4c0c-8383-4796-9cdc-16b5a22f45ad\"\n },\n \"linkedAccounts\": {\n \"href\": \"https://api.pingone.com/v1/environments/94e3268d-847d-47aa-a45e-1ef8dd8f4df0/users/5a5d4c0c-8383-4796-9cdc-16b5a22f45ad/linkedAccounts\"\n }\n },\n \"id\": \"5a5d4c0c-8383-4796-9cdc-16b5a22f45ad\",\n \"environment\": {\n \"id\": \"94e3268d-847d-47aa-a45e-1ef8dd8f4df0\"\n },\n \"account\": {\n \"canAuthenticate\": true,\n \"status\": \"OK\"\n },\n \"createdAt\": \"2021-09-03T15:01:43.555Z\",\n \"email\": \"allegraweldon@pingidentity.com\",\n \"enabled\": true,\n \"identityProvider\": {\n \"type\": \"PING_ONE\"\n },\n \"lifecycle\": {\n \"status\": \"ACCOUNT_OK\"\n },\n \"mfaEnabled\": false,\n \"population\": {\n \"id\": \"c1adbc29-f188-4ea6-a015-49bddd74bc84\"\n },\n \"updatedAt\": \"2021-09-03T15:01:43.555Z\",\n \"username\": \"allegraweldon@pingidentity.com\",\n \"verifyStatus\": \"NOT_INITIATED\"\n}";
6
+ export default {
7
+ title: 'CodeView',
8
+ component: CodeView,
9
+ argTypes: {
10
+ children: {
11
+ defaultValue: code,
12
+ table: {
13
+ type: {}
14
+ },
15
+ control: {
16
+ type: 'text'
17
+ }
18
+ }
19
+ },
20
+ parameters: {
21
+ a11y: {
22
+ config: {
23
+ rules: [
24
+ /* Turned off since rule conflicts with the way how `prism-react-renderer` works
25
+ * and design specs */
26
+ {
27
+ id: 'scrollable-region-focusable',
28
+ enabled: false,
29
+ selector: '.prism-code'
30
+ }]
31
+ }
32
+ }
33
+ }
34
+ };
35
+ export var Default = function Default(args) {
36
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(Text, {
37
+ sx: {
38
+ fontWeight: 2
39
+ }
40
+ }, "JSON"), ___EmotionJSX(CodeView, args));
41
+ };
42
+ export var WithLineNumbers = function WithLineNumbers() {
43
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(Text, {
44
+ sx: {
45
+ fontWeight: 2
46
+ }
47
+ }, "JSON"), ___EmotionJSX(CodeView, {
48
+ hasLineNumbers: true
49
+ }, code));
50
+ };
51
+ WithLineNumbers.story = {
52
+ parameters: {
53
+ docs: {
54
+ storyDescription: 'Please note that with adding line numbers, line wrapping does not work.'
55
+ }
56
+ }
57
+ };
58
+ export var WithCustomSize = function WithCustomSize() {
59
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(CodeView, {
60
+ language: "javascript",
61
+ sx: {
62
+ width: '100%',
63
+ height: 300
64
+ },
65
+ hasNoCopyButton: true
66
+ }, "\nexport const ChipWithIcon = () => (\n <>\n <Chip label=\"Chip with Icon Button\" bg=\"navy\">\n <IconButton aria-label=\"Clear Chip with Icon Button\" variant=\"inverted\">\n <Icon icon={Clear} ml=\"xs\" size=\"14px\" />\n </IconButton>\n </Chip>\n\n <div style={{ padding: '5px' }} />\n\n <Chip label=\"Chip with Icon Button\">\n <IconButton aria-label=\"Clear Chip with Icon Button\" variant=\"inverted\">\n <Icon icon={Earth} ml=\"xs\" size=\"14px\" />\n </IconButton>\n </Chip>\n\n <div style={{ padding: '5px' }} />\n\n <Chip label=\"Chip with Icon\" bg=\"green\">\n <Icon icon={ContentCopy} ml=\"xs\" size=\"14px\" color=\"white\" />\n </Chip>\n </>\n);\n "));
67
+ };