@pingux/astro 2.36.0-alpha.2 → 2.36.0-alpha.4

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 (31) hide show
  1. package/lib/cjs/components/Badge/Badge.d.ts +4 -0
  2. package/lib/cjs/components/Badge/Badge.js +5 -31
  3. package/lib/cjs/components/Badge/Badge.stories.js +1 -1
  4. package/lib/cjs/components/Badge/Badge.styles.d.ts +781 -0
  5. package/lib/cjs/components/Badge/Badge.test.d.ts +1 -0
  6. package/lib/cjs/components/Badge/index.d.ts +1 -0
  7. package/lib/cjs/components/Box/Box.stories.js +1 -1
  8. package/lib/cjs/components/DataTable/DataTable.js +1 -1
  9. package/lib/cjs/components/DataTable/DataTable.test.js +20 -0
  10. package/lib/cjs/components/DataTable/DataTableVirtualizer.js +0 -1
  11. package/lib/cjs/context/BadgeContext/index.d.ts +2 -0
  12. package/lib/cjs/hooks/useField/useField.d.ts +24 -24
  13. package/lib/cjs/hooks/useRockerButton/useRockerButton.d.ts +3 -3
  14. package/lib/cjs/styles/ColorDocumentation.js +1 -1
  15. package/lib/cjs/styles/colors.d.ts +302 -0
  16. package/lib/cjs/types/badge.d.ts +27 -0
  17. package/lib/cjs/types/badge.js +6 -0
  18. package/lib/cjs/types/index.d.ts +1 -0
  19. package/lib/cjs/types/index.js +21 -10
  20. package/lib/cjs/utils/testUtils/universalComponentTest.js +28 -26
  21. package/lib/components/Badge/Badge.js +5 -31
  22. package/lib/components/Badge/Badge.stories.js +1 -1
  23. package/lib/components/Box/Box.stories.js +1 -1
  24. package/lib/components/DataTable/DataTable.js +2 -2
  25. package/lib/components/DataTable/DataTable.test.js +20 -0
  26. package/lib/components/DataTable/DataTableVirtualizer.js +0 -1
  27. package/lib/styles/ColorDocumentation.js +1 -1
  28. package/lib/types/badge.js +1 -0
  29. package/lib/types/index.js +1 -0
  30. package/lib/utils/testUtils/universalComponentTest.js +28 -26
  31. package/package.json +2 -1
@@ -1,3 +1,4 @@
1
+ export * from './badge';
1
2
  export * from './box';
2
3
  export * from './button';
3
4
  export * from './icon';
@@ -1,14 +1,25 @@
1
1
  "use strict";
2
2
 
3
- var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9;
3
+ var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10;
4
4
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
5
5
  var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
6
6
  var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
7
7
  _Object$defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
+ var _badge = require("./badge");
11
+ _forEachInstanceProperty(_context = _Object$keys(_badge)).call(_context, function (key) {
12
+ if (key === "default" || key === "__esModule") return;
13
+ if (key in exports && exports[key] === _badge[key]) return;
14
+ _Object$defineProperty(exports, key, {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _badge[key];
18
+ }
19
+ });
20
+ });
10
21
  var _box = require("./box");
11
- _forEachInstanceProperty(_context = _Object$keys(_box)).call(_context, function (key) {
22
+ _forEachInstanceProperty(_context2 = _Object$keys(_box)).call(_context2, function (key) {
12
23
  if (key === "default" || key === "__esModule") return;
13
24
  if (key in exports && exports[key] === _box[key]) return;
14
25
  _Object$defineProperty(exports, key, {
@@ -19,7 +30,7 @@ _forEachInstanceProperty(_context = _Object$keys(_box)).call(_context, function
19
30
  });
20
31
  });
21
32
  var _button = require("./button");
22
- _forEachInstanceProperty(_context2 = _Object$keys(_button)).call(_context2, function (key) {
33
+ _forEachInstanceProperty(_context3 = _Object$keys(_button)).call(_context3, function (key) {
23
34
  if (key === "default" || key === "__esModule") return;
24
35
  if (key in exports && exports[key] === _button[key]) return;
25
36
  _Object$defineProperty(exports, key, {
@@ -30,7 +41,7 @@ _forEachInstanceProperty(_context2 = _Object$keys(_button)).call(_context2, func
30
41
  });
31
42
  });
32
43
  var _icon = require("./icon");
33
- _forEachInstanceProperty(_context3 = _Object$keys(_icon)).call(_context3, function (key) {
44
+ _forEachInstanceProperty(_context4 = _Object$keys(_icon)).call(_context4, function (key) {
34
45
  if (key === "default" || key === "__esModule") return;
35
46
  if (key in exports && exports[key] === _icon[key]) return;
36
47
  _Object$defineProperty(exports, key, {
@@ -41,7 +52,7 @@ _forEachInstanceProperty(_context3 = _Object$keys(_icon)).call(_context3, functi
41
52
  });
42
53
  });
43
54
  var _item = require("./item");
44
- _forEachInstanceProperty(_context4 = _Object$keys(_item)).call(_context4, function (key) {
55
+ _forEachInstanceProperty(_context5 = _Object$keys(_item)).call(_context5, function (key) {
45
56
  if (key === "default" || key === "__esModule") return;
46
57
  if (key in exports && exports[key] === _item[key]) return;
47
58
  _Object$defineProperty(exports, key, {
@@ -52,7 +63,7 @@ _forEachInstanceProperty(_context4 = _Object$keys(_item)).call(_context4, functi
52
63
  });
53
64
  });
54
65
  var _loader = require("./loader");
55
- _forEachInstanceProperty(_context5 = _Object$keys(_loader)).call(_context5, function (key) {
66
+ _forEachInstanceProperty(_context6 = _Object$keys(_loader)).call(_context6, function (key) {
56
67
  if (key === "default" || key === "__esModule") return;
57
68
  if (key in exports && exports[key] === _loader[key]) return;
58
69
  _Object$defineProperty(exports, key, {
@@ -63,7 +74,7 @@ _forEachInstanceProperty(_context5 = _Object$keys(_loader)).call(_context5, func
63
74
  });
64
75
  });
65
76
  var _popoverContainer = require("./popoverContainer");
66
- _forEachInstanceProperty(_context6 = _Object$keys(_popoverContainer)).call(_context6, function (key) {
77
+ _forEachInstanceProperty(_context7 = _Object$keys(_popoverContainer)).call(_context7, function (key) {
67
78
  if (key === "default" || key === "__esModule") return;
68
79
  if (key in exports && exports[key] === _popoverContainer[key]) return;
69
80
  _Object$defineProperty(exports, key, {
@@ -74,7 +85,7 @@ _forEachInstanceProperty(_context6 = _Object$keys(_popoverContainer)).call(_cont
74
85
  });
75
86
  });
76
87
  var _shared = require("./shared");
77
- _forEachInstanceProperty(_context7 = _Object$keys(_shared)).call(_context7, function (key) {
88
+ _forEachInstanceProperty(_context8 = _Object$keys(_shared)).call(_context8, function (key) {
78
89
  if (key === "default" || key === "__esModule") return;
79
90
  if (key in exports && exports[key] === _shared[key]) return;
80
91
  _Object$defineProperty(exports, key, {
@@ -85,7 +96,7 @@ _forEachInstanceProperty(_context7 = _Object$keys(_shared)).call(_context7, func
85
96
  });
86
97
  });
87
98
  var _tableCell = require("./tableCell");
88
- _forEachInstanceProperty(_context8 = _Object$keys(_tableCell)).call(_context8, function (key) {
99
+ _forEachInstanceProperty(_context9 = _Object$keys(_tableCell)).call(_context9, function (key) {
89
100
  if (key === "default" || key === "__esModule") return;
90
101
  if (key in exports && exports[key] === _tableCell[key]) return;
91
102
  _Object$defineProperty(exports, key, {
@@ -96,7 +107,7 @@ _forEachInstanceProperty(_context8 = _Object$keys(_tableCell)).call(_context8, f
96
107
  });
97
108
  });
98
109
  var _text = require("./text");
99
- _forEachInstanceProperty(_context9 = _Object$keys(_text)).call(_context9, function (key) {
110
+ _forEachInstanceProperty(_context10 = _Object$keys(_text)).call(_context10, function (key) {
100
111
  if (key === "default" || key === "__esModule") return;
101
112
  if (key in exports && exports[key] === _text[key]) return;
102
113
  _Object$defineProperty(exports, key, {
@@ -49,33 +49,35 @@ var universalComponentTests = /*#__PURE__*/function () {
49
49
  while (1) switch (_context2.prev = _context2.next) {
50
50
  case 0:
51
51
  renderComponent = _ref2.renderComponent, _ref2$rules = _ref2.rules, rules = _ref2$rules === void 0 ? {} : _ref2$rules;
52
- test('should have no accessibility violations', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
53
- var _render, container, results;
54
- return _regeneratorRuntime().wrap(function _callee$(_context) {
55
- while (1) switch (_context.prev = _context.next) {
56
- case 0:
57
- jest.useRealTimers();
58
- _render = (0, _react2.render)(renderComponent()), container = _render.container;
59
- _context.next = 4;
60
- return (0, _jestAxe.axe)(container, {
61
- rules: rules
62
- });
63
- case 4:
64
- results = _context.sent;
65
- expect(results).toHaveNoViolations();
66
- case 6:
67
- case "end":
68
- return _context.stop();
69
- }
70
- }, _callee);
71
- })));
72
- test('should forward refs properly', function () {
73
- (0, _react2.render)((0, _react3.jsx)(ComponentWithRef, {
74
- renderComponent: renderComponent
75
- }));
76
- _react2.screen.getByText(HAS_REF);
52
+ describe('Universal Component Tests', function () {
53
+ test('should have no accessibility violations', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
54
+ var _render, container, results;
55
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
56
+ while (1) switch (_context.prev = _context.next) {
57
+ case 0:
58
+ jest.useRealTimers();
59
+ _render = (0, _react2.render)(renderComponent()), container = _render.container;
60
+ _context.next = 4;
61
+ return (0, _jestAxe.axe)(container, {
62
+ rules: rules
63
+ });
64
+ case 4:
65
+ results = _context.sent;
66
+ expect(results).toHaveNoViolations();
67
+ case 6:
68
+ case "end":
69
+ return _context.stop();
70
+ }
71
+ }, _callee);
72
+ })));
73
+ test('should forward refs properly', function () {
74
+ (0, _react2.render)((0, _react3.jsx)(ComponentWithRef, {
75
+ renderComponent: renderComponent
76
+ }));
77
+ _react2.screen.getByText(HAS_REF);
78
+ });
77
79
  });
78
- case 3:
80
+ case 2:
79
81
  case "end":
80
82
  return _context2.stop();
81
83
  }
@@ -14,7 +14,6 @@ import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/ins
14
14
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
16
16
  import React from 'react';
17
- import PropTypes from 'prop-types';
18
17
  import { Badge as ThemeUIBadge } from 'theme-ui';
19
18
  import { Box, Text } from '../..';
20
19
  import { BadgeContext } from '../../context/BadgeContext';
@@ -49,49 +48,24 @@ var Badge = /*#__PURE__*/React.forwardRef(function (props, ref) {
49
48
  // The following is to correct a visual regression released in 1.39.0 https://jira.pingidentity.com/browse/UIP-5907.
50
49
  // TODO : Remove in Astro V2 with theme remapping roll out.
51
50
  var oldVariantPaths = ['boxes.countBadge', 'boxes.countNeutral', 'boxes.itemBadgeWithSlot', 'collapsiblePanel.collapsiblePanelBadge', 'boxes.environmentBadge', 'boxes.readOnlyBadge', 'boxes.selectedItemBadge'];
52
- var fixedVariant = _includesInstanceProperty(oldVariantPaths).call(oldVariantPaths, props.variant) ? "variants.".concat(props.variant) : props.variant;
51
+ var fixedVariant = variant && _includesInstanceProperty(oldVariantPaths).call(oldVariantPaths, variant) ? "variants.".concat(variant) : variant;
53
52
  return ___EmotionJSX(BadgeContext.Provider, {
54
53
  value: {
55
54
  bg: bg
56
55
  }
57
- }, ___EmotionJSX(ThemeUIBadge, _extends({
58
- isRow: true
59
- }, badgeProps, {
60
- variant: props.variant ? fixedVariant : 'baseBadge'
56
+ }, ___EmotionJSX(ThemeUIBadge, _extends({}, badgeProps, {
57
+ variant: variant ? fixedVariant : 'baseBadge'
61
58
  }), (slots === null || slots === void 0 ? void 0 : slots.leftIcon) && ___EmotionJSX(Box, {
62
59
  mr: "xs"
63
60
  }, slots.leftIcon), ___EmotionJSX(Text, _extends({
64
61
  variant: "label",
65
62
  color: textColor,
66
- sx: isUppercase && {
63
+ sx: isUppercase ? {
67
64
  textTransform: 'uppercase',
68
65
  fontSize: '11px'
69
- }
66
+ } : {}
70
67
  }, textProps), label), children));
71
68
  });
72
- Badge.propTypes = {
73
- /** The text color of the badge. */
74
- textColor: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
75
- /** The background color of the badge. */
76
- bg: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
77
- /** Provides a way to insert markup in specified places. */
78
- slots: PropTypes.shape({
79
- /** The given node will be inserted into left side of the badge. */
80
- leftIcon: PropTypes.node
81
- }),
82
- /** The label of the badge. */
83
- label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
84
- /** Props object that is spread directly into the text. */
85
- textProps: PropTypes.shape({}),
86
- /** When true, display badge label as uppercase. */
87
- isUppercase: PropTypes.bool,
88
- /** Alignment of badge relative to parent container. */
89
- align: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
90
- /** JSX styling that is passed into the component. */
91
- sx: PropTypes.shape({}),
92
- /** The variant of the badge */
93
- variant: PropTypes.oneOfType([PropTypes.string, PropTypes.object])
94
- };
95
69
  Badge.defaultProps = {
96
70
  textColor: 'white',
97
71
  bg: colors.neutral[10],
@@ -9,7 +9,7 @@ import Earth from '@pingux/mdi-react/EarthIcon';
9
9
  import { withDesign } from 'storybook-addon-designs';
10
10
  import DocsLayout from '../../../.storybook/storybookDocsLayout';
11
11
  import { Badge, Box, Icon, IconButton } from '../../index';
12
- import { flatColorList } from '../../styles/colors.js';
12
+ import { flatColorList } from '../../styles/colors';
13
13
  import { FIGMA_LINKS } from '../../utils/designUtils/figmaLinks.ts';
14
14
  import BadgeReadme from './Badge.mdx';
15
15
  import { jsx as ___EmotionJSX } from "@emotion/react";
@@ -5,7 +5,7 @@ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance
5
5
  import React from 'react';
6
6
  import DocsLayout from '../../../.storybook/storybookDocsLayout';
7
7
  import { Box, Image, Text } from '../../index';
8
- import { flatColorList } from '../../styles/colors.js';
8
+ import { flatColorList } from '../../styles/colors';
9
9
  import { htmlElements } from '../../utils/devUtils/constants/htmlElements';
10
10
  import { pingImg } from '../../utils/devUtils/constants/images';
11
11
  import BoxReadme from './Box.mdx';
@@ -26,7 +26,7 @@ import { TableLayout } from '@react-stately/layout';
26
26
  import { TableColumnLayout, useTableState } from '@react-stately/table';
27
27
  import PropTypes from 'prop-types';
28
28
  import { DataTableContext, useDataTableContext } from '../../context/DataTableContext';
29
- import { useStatusClasses } from '../../hooks';
29
+ import { useLocalOrForwardRef, useStatusClasses } from '../../hooks';
30
30
  import { Box, Icon, Loader } from '../../index';
31
31
  import DataTableVirtualizer from './DataTableVirtualizer';
32
32
  import { jsx as ___EmotionJSX } from "@emotion/react";
@@ -77,7 +77,7 @@ var DataTable = /*#__PURE__*/forwardRef(function (props, ref) {
77
77
  // entering resizing/exiting resizing doesn't trigger a render
78
78
  // with table layout, so we need to track it here
79
79
  var state = useTableState(_objectSpread({}, props));
80
- var domRef = useRef(ref);
80
+ var domRef = useLocalOrForwardRef(ref);
81
81
  var headerRef = useRef();
82
82
  var bodyRef = useRef();
83
83
  var density = props.density || 'regular';
@@ -36,6 +36,7 @@ import { useCollator } from '@react-aria/i18n';
36
36
  import { act, fireEvent, render, screen, within } from '@testing-library/react';
37
37
  import { act as actHooks, renderHook } from '@testing-library/react-hooks';
38
38
  import { DataTableBody, DataTableCell, DataTableColumn, DataTableHeader, DataTableRow } from '../../index';
39
+ import { universalComponentTests } from '../../utils/testUtils/universalComponentTest';
39
40
  import DataTable from './DataTable';
40
41
  import { jsx as ___EmotionJSX } from "@emotion/react";
41
42
  var offsetWidth;
@@ -1138,4 +1139,23 @@ describe('Empty DataTable', function () {
1138
1139
  expect(staticTable).toBeVisible();
1139
1140
  expect(tRows).toBeInTheDocument();
1140
1141
  });
1142
+ });
1143
+
1144
+ // Needs to be added to each components test file
1145
+ universalComponentTests({
1146
+ renderComponent: function renderComponent(props) {
1147
+ return ___EmotionJSX(DataTable, _extends({}, props, {
1148
+ "aria-label": "label"
1149
+ }), ___EmotionJSX(DataTableHeader, {
1150
+ columns: [columns[0]]
1151
+ }, ___EmotionJSX(DataTableColumn, {
1152
+ align: "center"
1153
+ }, columns[0].name)), ___EmotionJSX(DataTableBody, {
1154
+ items: rows
1155
+ }, function (item) {
1156
+ return ___EmotionJSX(DataTableRow, null, function (columnKey) {
1157
+ return ___EmotionJSX(DataTableCell, null, item[columnKey]);
1158
+ });
1159
+ }));
1160
+ }
1141
1161
  });
@@ -103,7 +103,6 @@ var DataTableVirtualizer = /*#__PURE__*/forwardRef(function (_ref, ref) {
103
103
  },
104
104
  ref: headerRef
105
105
  }, state.visibleViews[0]), ___EmotionJSX(ScrollView, {
106
- role: "presentation",
107
106
  variant: "dataTable.tableBody",
108
107
  style: {
109
108
  flex: 1
@@ -14,7 +14,7 @@ import Box from '../components/Box';
14
14
  import SelectField from '../components/SelectField';
15
15
  import Text from '../components/Text';
16
16
  import TextField from '../components/TextField';
17
- import { flatColorList } from './colors.js';
17
+ import { flatColorList } from './colors';
18
18
  import { jsx as ___EmotionJSX } from "@emotion/react";
19
19
  var exactMatchThreshold = 0.02;
20
20
  function Color(_ref) {
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,4 @@
1
+ export * from './badge';
1
2
  export * from './box';
2
3
  export * from './button';
3
4
  export * from './icon';
@@ -38,33 +38,35 @@ export var universalComponentTests = /*#__PURE__*/function () {
38
38
  while (1) switch (_context2.prev = _context2.next) {
39
39
  case 0:
40
40
  renderComponent = _ref2.renderComponent, _ref2$rules = _ref2.rules, rules = _ref2$rules === void 0 ? {} : _ref2$rules;
41
- test('should have no accessibility violations', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
42
- var _render, container, results;
43
- return _regeneratorRuntime().wrap(function _callee$(_context) {
44
- while (1) switch (_context.prev = _context.next) {
45
- case 0:
46
- jest.useRealTimers();
47
- _render = render(renderComponent()), container = _render.container;
48
- _context.next = 4;
49
- return axe(container, {
50
- rules: rules
51
- });
52
- case 4:
53
- results = _context.sent;
54
- expect(results).toHaveNoViolations();
55
- case 6:
56
- case "end":
57
- return _context.stop();
58
- }
59
- }, _callee);
60
- })));
61
- test('should forward refs properly', function () {
62
- render(___EmotionJSX(ComponentWithRef, {
63
- renderComponent: renderComponent
64
- }));
65
- screen.getByText(HAS_REF);
41
+ describe('Universal Component Tests', function () {
42
+ test('should have no accessibility violations', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
43
+ var _render, container, results;
44
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
45
+ while (1) switch (_context.prev = _context.next) {
46
+ case 0:
47
+ jest.useRealTimers();
48
+ _render = render(renderComponent()), container = _render.container;
49
+ _context.next = 4;
50
+ return axe(container, {
51
+ rules: rules
52
+ });
53
+ case 4:
54
+ results = _context.sent;
55
+ expect(results).toHaveNoViolations();
56
+ case 6:
57
+ case "end":
58
+ return _context.stop();
59
+ }
60
+ }, _callee);
61
+ })));
62
+ test('should forward refs properly', function () {
63
+ render(___EmotionJSX(ComponentWithRef, {
64
+ renderComponent: renderComponent
65
+ }));
66
+ screen.getByText(HAS_REF);
67
+ });
66
68
  });
67
- case 3:
69
+ case 2:
68
70
  case "end":
69
71
  return _context2.stop();
70
72
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.36.0-alpha.2",
3
+ "version": "2.36.0-alpha.4",
4
4
  "description": "React component library for Ping Identity's design system",
5
5
  "repository": {
6
6
  "type": "git",
@@ -139,6 +139,7 @@
139
139
  "@testing-library/react": "^11.0.4",
140
140
  "@testing-library/react-hooks": "^8.0.1",
141
141
  "@testing-library/user-event": "^12.8.3",
142
+ "@types/chroma-js": "^2.4.3",
142
143
  "@types/jest": "^29.5.3",
143
144
  "@types/jest-axe": "^3.5.8",
144
145
  "@types/mdx": "^2.0.5",