@automattic/vip-design-system 2.5.0 → 2.7.0

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 (83) hide show
  1. package/build/system/Card/Card.d.ts +9 -1
  2. package/build/system/Card/Card.js +25 -4
  3. package/build/system/Card/Card.stories.d.ts +5 -0
  4. package/build/system/Card/Card.stories.js +34 -2
  5. package/build/system/Card/Card.test.js +25 -0
  6. package/build/system/Dropdown/Dropdown.d.ts +25 -36
  7. package/build/system/Dropdown/Dropdown.js +60 -99
  8. package/build/system/Dropdown/Dropdown.stories.d.ts +1 -26
  9. package/build/system/Dropdown/Dropdown.test.js +51 -28
  10. package/build/system/Dropdown/DropdownContent.d.ts +14 -10
  11. package/build/system/Dropdown/DropdownContent.js +43 -47
  12. package/build/system/Dropdown/DropdownItem.d.ts +20 -32
  13. package/build/system/Dropdown/DropdownItem.js +86 -103
  14. package/build/system/Dropdown/DropdownLabel.d.ts +11 -7
  15. package/build/system/Dropdown/DropdownLabel.js +29 -29
  16. package/build/system/Dropdown/DropdownSeparator.d.ts +10 -6
  17. package/build/system/Dropdown/DropdownSeparator.js +28 -28
  18. package/build/system/Dropdown/index.d.ts +17 -39
  19. package/build/system/Dropdown/index.js +23 -50
  20. package/build/system/FilterDropdown/FilterDropdown.d.ts +27 -0
  21. package/build/system/FilterDropdown/FilterDropdown.js +75 -0
  22. package/build/system/FilterDropdown/FilterDropdown.stories.d.ts +18 -0
  23. package/build/system/FilterDropdown/FilterDropdown.stories.js +46 -0
  24. package/build/system/FilterDropdown/FilterDropdown.test.d.ts +1 -0
  25. package/build/system/FilterDropdown/FilterDropdown.test.js +53 -0
  26. package/build/system/Hr/Hr.d.ts +7 -0
  27. package/build/system/Hr/Hr.js +22 -0
  28. package/build/system/Hr/Hr.stories.d.ts +23 -0
  29. package/build/system/Hr/Hr.stories.js +30 -0
  30. package/build/system/Hr/Hr.test.d.ts +1 -0
  31. package/build/system/Hr/Hr.test.js +41 -0
  32. package/build/system/Page/Page.d.ts +2 -0
  33. package/build/system/Page/Page.js +10 -0
  34. package/build/system/Page/Page.test.d.ts +1 -0
  35. package/build/system/Page/Page.test.js +41 -0
  36. package/build/system/index.d.ts +3 -1
  37. package/build/system/index.js +4 -0
  38. package/build/system/theme/index.d.ts +84 -33
  39. package/build/system/theme/index.js +32 -5
  40. package/package.json +1 -1
  41. package/src/system/Card/Card.stories.tsx +19 -1
  42. package/src/system/Card/Card.test.tsx +11 -0
  43. package/src/system/Card/Card.tsx +43 -14
  44. package/src/system/Dropdown/{Dropdown.test.js → Dropdown.test.tsx} +2 -1
  45. package/src/system/Dropdown/Dropdown.tsx +72 -0
  46. package/src/system/Dropdown/DropdownContent.tsx +46 -0
  47. package/src/system/Dropdown/DropdownItem.tsx +112 -0
  48. package/src/system/Dropdown/DropdownLabel.tsx +29 -0
  49. package/src/system/Dropdown/DropdownSeparator.tsx +28 -0
  50. package/src/system/Dropdown/{index.js → index.ts} +1 -3
  51. package/src/system/FilterDropdown/FilterDropdown.stories.tsx +57 -0
  52. package/src/system/FilterDropdown/FilterDropdown.test.tsx +52 -0
  53. package/src/system/FilterDropdown/FilterDropdown.tsx +92 -0
  54. package/src/system/Hr/Hr.stories.tsx +48 -0
  55. package/src/system/Hr/Hr.test.tsx +22 -0
  56. package/src/system/Hr/Hr.tsx +11 -0
  57. package/src/system/Page/Page.test.tsx +22 -0
  58. package/src/system/Page/Page.tsx +3 -0
  59. package/src/system/index.js +4 -0
  60. package/src/system/theme/index.js +32 -5
  61. package/tokens/valet-core/$metadata.json +1 -17
  62. package/tokens/valet-core/$themes.json +0 -2586
  63. package/src/system/Dropdown/Dropdown.js +0 -101
  64. package/src/system/Dropdown/DropdownContent.js +0 -50
  65. package/src/system/Dropdown/DropdownItem.js +0 -108
  66. package/src/system/Dropdown/DropdownLabel.js +0 -31
  67. package/src/system/Dropdown/DropdownSeparator.js +0 -30
  68. package/tokens/valet-core/figma-parsely-web-type.json +0 -1217
  69. package/tokens/valet-core/figma-valet-web-type.json +0 -1217
  70. package/tokens/valet-core/figma-wpvip-services-web-type.json +0 -1267
  71. package/tokens/valet-core/figma-wpvip-web-type.json +0 -1213
  72. package/tokens/valet-core/parsely-web-color.json +0 -729
  73. package/tokens/valet-core/parsely-web-core.json +0 -172
  74. package/tokens/valet-core/parsely-web-type.json +0 -362
  75. package/tokens/valet-core/valet-web-color.json +0 -677
  76. package/tokens/valet-core/valet-web-core.json +0 -172
  77. package/tokens/valet-core/wpvip-services-web-color.json +0 -730
  78. package/tokens/valet-core/wpvip-services-web-core.json +0 -172
  79. package/tokens/valet-core/wpvip-services-web-type.json +0 -412
  80. package/tokens/valet-core/wpvip-web-color-dark.json +0 -735
  81. package/tokens/valet-core/wpvip-web-color.json +0 -730
  82. package/tokens/valet-core/wpvip-web-type.json +0 -412
  83. package/tokens/valet-core/wpvip-web.json +0 -1310
@@ -1,12 +1,20 @@
1
+ /** @jsxImportSource theme-ui */
1
2
  /// <reference types="react" />
2
3
  /**
3
4
  * External dependencies
4
5
  */
5
6
  import { Argument } from 'classnames';
6
7
  import { BoxProps } from 'theme-ui';
8
+ export declare enum CardVariant {
9
+ 'primary' = 0,
10
+ 'secondary' = 1,
11
+ 'indent' = 2
12
+ }
7
13
  export interface CardProps {
8
- variant?: string;
14
+ variant?: keyof typeof CardVariant;
9
15
  sx?: BoxProps['sx'];
10
16
  className?: Argument;
17
+ header?: React.ReactNode;
18
+ children?: React.ReactNode;
11
19
  }
12
20
  export declare const Card: import("react").ForwardRefExoticComponent<CardProps & BoxProps & import("react").RefAttributes<HTMLElement>>;
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.Card = void 0;
4
+ exports.CardVariant = exports.Card = void 0;
5
5
  var _classnames = _interopRequireDefault(require("classnames"));
6
6
  var _react = require("react");
7
7
  var _ = require("..");
8
8
  var _jsxRuntime = require("theme-ui/jsx-runtime");
9
- var _excluded = ["variant", "sx", "className"];
9
+ var _excluded = ["variant", "header", "sx", "className", "children"];
10
+ /** @jsxImportSource theme-ui */
10
11
  /**
11
12
  * External dependencies
12
13
  */
@@ -16,20 +17,40 @@ var _excluded = ["variant", "sx", "className"];
16
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
18
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
18
19
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
20
+ var CardVariant = exports.CardVariant = /*#__PURE__*/function (CardVariant) {
21
+ CardVariant[CardVariant["primary"] = 0] = "primary";
22
+ CardVariant[CardVariant["secondary"] = 1] = "secondary";
23
+ CardVariant[CardVariant["indent"] = 2] = "indent";
24
+ return CardVariant;
25
+ }({});
19
26
  var Card = exports.Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
20
27
  var _ref$variant = _ref.variant,
21
28
  variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
29
+ header = _ref.header,
22
30
  _ref$sx = _ref.sx,
23
31
  sx = _ref$sx === void 0 ? {} : _ref$sx,
24
32
  className = _ref.className,
33
+ children = _ref.children,
25
34
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
26
- return (0, _jsxRuntime.jsx)(_.Box, _extends({
35
+ return (0, _jsxRuntime.jsxs)(_.Box, _extends({
27
36
  ref: ref,
28
37
  sx: _extends({
29
38
  // pass variant prop to sx
30
39
  variant: "cards." + variant
31
40
  }, sx),
32
41
  className: (0, _classnames["default"])('vip-card-component', className)
33
- }, props));
42
+ }, props, {
43
+ children: [header && (0, _jsxRuntime.jsx)("div", {
44
+ sx: {
45
+ variant: "cards." + variant + ".header"
46
+ },
47
+ children: header
48
+ }), (0, _jsxRuntime.jsx)("div", {
49
+ sx: {
50
+ variant: "cards." + variant + ".children"
51
+ },
52
+ children: children
53
+ })]
54
+ }));
34
55
  });
35
56
  Card.displayName = 'Card';
@@ -5,3 +5,8 @@ declare const _default: {
5
5
  };
6
6
  export default _default;
7
7
  export declare const Default: () => import("react").JSX.Element;
8
+ export declare const WithHeader: () => import("react").JSX.Element;
9
+ export declare const DefaultSecondary: () => import("react").JSX.Element;
10
+ export declare const WithHeaderSecondary: () => import("react").JSX.Element;
11
+ export declare const DefaultIndent: () => import("react").JSX.Element;
12
+ export declare const WithHeaderIndent: () => import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports["default"] = exports.Default = void 0;
4
+ exports["default"] = exports.WithHeaderSecondary = exports.WithHeaderIndent = exports.WithHeader = exports.DefaultSecondary = exports.DefaultIndent = exports.Default = void 0;
5
5
  var _ = require("..");
6
6
  var _jsxRuntime = require("theme-ui/jsx-runtime");
7
7
  /**
@@ -13,6 +13,38 @@ var _default = exports["default"] = {
13
13
  };
14
14
  var Default = exports.Default = function Default() {
15
15
  return (0, _jsxRuntime.jsx)(_.Card, {
16
- children: " Hello "
16
+ children: "Hello"
17
+ });
18
+ };
19
+ var WithHeader = exports.WithHeader = function WithHeader() {
20
+ return (0, _jsxRuntime.jsx)(_.Card, {
21
+ header: "Header",
22
+ children: "This is a card with a header."
23
+ });
24
+ };
25
+ var DefaultSecondary = exports.DefaultSecondary = function DefaultSecondary() {
26
+ return (0, _jsxRuntime.jsx)(_.Card, {
27
+ variant: "secondary",
28
+ children: "Hello"
29
+ });
30
+ };
31
+ var WithHeaderSecondary = exports.WithHeaderSecondary = function WithHeaderSecondary() {
32
+ return (0, _jsxRuntime.jsx)(_.Card, {
33
+ header: "Header",
34
+ variant: "secondary",
35
+ children: "This is a card with a header."
36
+ });
37
+ };
38
+ var DefaultIndent = exports.DefaultIndent = function DefaultIndent() {
39
+ return (0, _jsxRuntime.jsx)(_.Card, {
40
+ variant: "indent",
41
+ children: "Hello"
42
+ });
43
+ };
44
+ var WithHeaderIndent = exports.WithHeaderIndent = function WithHeaderIndent() {
45
+ return (0, _jsxRuntime.jsx)(_.Card, {
46
+ header: "Header",
47
+ variant: "indent",
48
+ children: "This is a card with a header."
17
49
  });
18
50
  };
@@ -61,4 +61,29 @@ describe('<Card />', function () {
61
61
  }
62
62
  }, _callee2);
63
63
  })));
64
+ it('renders the Card component with a header', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
65
+ var _render3, container;
66
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
67
+ while (1) switch (_context3.prev = _context3.next) {
68
+ case 0:
69
+ _render3 = (0, _react.render)((0, _jsxRuntime.jsx)(_Card.Card, {
70
+ header: "Card Header",
71
+ children: "Card text"
72
+ })), container = _render3.container;
73
+ expect(_react.screen.getByText('Card Header')).toBeInTheDocument();
74
+ expect(_react.screen.getByText('Card text')).toBeInTheDocument();
75
+
76
+ // Check for accessibility issues
77
+ _context3.t0 = expect;
78
+ _context3.next = 6;
79
+ return (0, _jestAxe.axe)(container);
80
+ case 6:
81
+ _context3.t1 = _context3.sent;
82
+ (0, _context3.t0)(_context3.t1).toHaveNoViolations();
83
+ case 8:
84
+ case "end":
85
+ return _context3.stop();
86
+ }
87
+ }, _callee3);
88
+ })));
64
89
  });
@@ -1,37 +1,26 @@
1
- export function Dropdown({ trigger, children, open, defaultOpen, onOpenChange, modal, dir, contentProps, portalProps, className, }: {
2
- trigger: any;
3
- children: any;
4
- open?: undefined;
5
- defaultOpen?: boolean | undefined;
6
- onOpenChange?: undefined;
7
- modal?: boolean | undefined;
8
- dir?: string | undefined;
9
- contentProps?: {} | undefined;
10
- portalProps?: {} | undefined;
11
- className: any;
12
- }): React.JSX.Element;
13
- export namespace Dropdown {
14
- namespace propTypes {
15
- let trigger: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
16
- let children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
17
- let open: PropTypes.Requireable<boolean>;
18
- let defaultOpen: PropTypes.Requireable<boolean>;
19
- let onOpenChange: PropTypes.Requireable<(...args: any[]) => any>;
20
- let modal: PropTypes.Requireable<boolean>;
21
- let dir: PropTypes.Requireable<string>;
22
- let contentProps: PropTypes.Requireable<any>;
23
- let portalProps: PropTypes.Requireable<any>;
24
- let className: PropTypes.Requireable<string>;
25
- }
26
- }
27
- import React from 'react';
28
- import PropTypes from 'prop-types';
29
- export const DropdownTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
30
- export const DropdownRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
31
- export const DropdownItemIndicator: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
32
- export const DropdownLabel: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>>;
33
- export const DropdownSeparator: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>>;
34
- export const DropdownSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
35
- export const DropdownSubTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>>;
36
- export const DropdownSubContent: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>>;
1
+ /** @jsxImportSource theme-ui */
37
2
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
+ import React, { ReactNode } from 'react';
4
+ import { DropdownContentProps } from './DropdownContent';
5
+ declare const DropdownTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
+ declare const DropdownRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
7
+ declare const DropdownItemIndicator: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
8
+ declare const DropdownLabel: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>>;
9
+ declare const DropdownSeparator: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>>;
10
+ declare const DropdownSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
11
+ declare const DropdownSubTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>>;
12
+ declare const DropdownSubContent: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>>;
13
+ export interface DropdownProps {
14
+ trigger: ReactNode;
15
+ children: ReactNode;
16
+ open?: boolean;
17
+ defaultOpen?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ modal?: boolean;
20
+ dir?: 'ltr' | 'rtl';
21
+ contentProps?: DropdownContentProps;
22
+ portalProps?: object;
23
+ className?: string;
24
+ }
25
+ export declare const Dropdown: React.FC<DropdownProps>;
26
+ export { DropdownTrigger, DropdownRadioGroup, DropdownItemIndicator, DropdownLabel, DropdownSeparator, DropdownSub, DropdownSubTrigger, DropdownSubContent, };
@@ -1,101 +1,62 @@
1
- /** @jsxImportSource theme-ui */
2
-
3
- /**
4
- * External dependencies
5
- */
6
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
7
- import classNames from 'classnames';
8
- import PropTypes from 'prop-types';
9
- import React from 'react';
10
-
11
- /**
12
- * Internal dependencies
13
- */
14
- import { DropdownContent } from './DropdownContent';
15
-
16
- const DropdownMenu = DropdownMenuPrimitive.Root;
17
- const DropdownTrigger = DropdownMenuPrimitive.Trigger;
18
- const DropdownRadioGroup = DropdownMenuPrimitive.RadioGroup;
19
- const DropdownItemIndicator = DropdownMenuPrimitive.DropdownMenuItemIndicator;
20
- const DropdownLabel = DropdownMenuPrimitive.DropdownMenuLabel;
21
- const DropdownSeparator = DropdownMenuPrimitive.DropdownMenuSeparator;
22
- const DropdownSub = DropdownMenuPrimitive.DropdownMenuSub;
23
- const DropdownSubTrigger = DropdownMenuPrimitive.DropdownMenuSubTrigger;
24
- const DropdownSubContent = DropdownMenuPrimitive.DropdownMenuSubContent;
25
-
26
- export const Dropdown = ( {
27
- trigger,
28
- children,
29
- // Radix Specific Properties
30
- open = undefined,
31
- defaultOpen = false,
32
- onOpenChange = undefined,
33
- modal = true,
34
- dir = 'ltr',
35
- contentProps = {},
36
- portalProps = {},
37
- className,
38
- } ) => {
39
- const firstChild = React.useMemo(
40
- () =>
41
- React.isValidElement( children ) ? React.Children.only( children )?.type?.displayName : '',
42
- [ children ]
43
- );
44
-
45
- return (
46
- <DropdownMenu
47
- className={ classNames( 'vip-dropdown-menu', className ) }
48
- open={ open }
49
- defaultOpen={ defaultOpen }
50
- onOpenChange={ onOpenChange }
51
- modal={ modal }
52
- dir={ dir }
53
- >
54
- <DropdownTrigger className="vip-dropdown-trigger" asChild>
55
- { trigger }
56
- </DropdownTrigger>
57
-
58
- <DropdownMenuPrimitive.Portal { ...portalProps }>
59
- { /* User can customize the content */ }
60
- { firstChild === 'DropdownContent' ? (
61
- children
62
- ) : (
63
- <DropdownContent { ...contentProps }>
64
- { children }
65
- <DropdownMenuPrimitive.Arrow sx={ { fill: 'background', boxShadow: 'high' } } />
66
- </DropdownContent>
67
- ) }
68
- </DropdownMenuPrimitive.Portal>
69
- </DropdownMenu>
70
- );
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.DropdownTrigger = exports.DropdownSubTrigger = exports.DropdownSubContent = exports.DropdownSub = exports.DropdownSeparator = exports.DropdownRadioGroup = exports.DropdownLabel = exports.DropdownItemIndicator = exports.Dropdown = void 0;
5
+ var DropdownMenuPrimitive = _interopRequireWildcard(require("@radix-ui/react-dropdown-menu"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _DropdownContent = require("./DropdownContent");
8
+ var _jsxRuntime = require("theme-ui/jsx-runtime");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
12
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /** @jsxImportSource theme-ui */
13
+ var DropdownMenu = DropdownMenuPrimitive.Root;
14
+ var DropdownTrigger = exports.DropdownTrigger = DropdownMenuPrimitive.Trigger;
15
+ var DropdownRadioGroup = exports.DropdownRadioGroup = DropdownMenuPrimitive.RadioGroup;
16
+ var DropdownItemIndicator = exports.DropdownItemIndicator = DropdownMenuPrimitive.DropdownMenuItemIndicator;
17
+ var DropdownLabel = exports.DropdownLabel = DropdownMenuPrimitive.DropdownMenuLabel;
18
+ var DropdownSeparator = exports.DropdownSeparator = DropdownMenuPrimitive.DropdownMenuSeparator;
19
+ var DropdownSub = exports.DropdownSub = DropdownMenuPrimitive.DropdownMenuSub;
20
+ var DropdownSubTrigger = exports.DropdownSubTrigger = DropdownMenuPrimitive.DropdownMenuSubTrigger;
21
+ var DropdownSubContent = exports.DropdownSubContent = DropdownMenuPrimitive.DropdownMenuSubContent;
22
+ var Dropdown = exports.Dropdown = function Dropdown(_ref) {
23
+ var trigger = _ref.trigger,
24
+ children = _ref.children,
25
+ _ref$open = _ref.open,
26
+ open = _ref$open === void 0 ? undefined : _ref$open,
27
+ _ref$defaultOpen = _ref.defaultOpen,
28
+ defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
29
+ _ref$onOpenChange = _ref.onOpenChange,
30
+ onOpenChange = _ref$onOpenChange === void 0 ? undefined : _ref$onOpenChange,
31
+ _ref$modal = _ref.modal,
32
+ modal = _ref$modal === void 0 ? true : _ref$modal,
33
+ _ref$dir = _ref.dir,
34
+ dir = _ref$dir === void 0 ? 'ltr' : _ref$dir,
35
+ _ref$contentProps = _ref.contentProps,
36
+ contentProps = _ref$contentProps === void 0 ? {} : _ref$contentProps,
37
+ _ref$portalProps = _ref.portalProps,
38
+ portalProps = _ref$portalProps === void 0 ? {} : _ref$portalProps;
39
+ return (0, _jsxRuntime.jsxs)(DropdownMenu, {
40
+ open: open,
41
+ defaultOpen: defaultOpen,
42
+ onOpenChange: onOpenChange,
43
+ modal: modal,
44
+ dir: dir,
45
+ children: [(0, _jsxRuntime.jsx)(DropdownTrigger, {
46
+ className: "vip-dropdown-trigger",
47
+ asChild: true,
48
+ children: trigger
49
+ }), (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.Portal, _extends({}, portalProps, {
50
+ children: (0, _jsxRuntime.jsxs)(_DropdownContent.DropdownContent, _extends({}, contentProps, {
51
+ children: [children, (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.Arrow, {
52
+ sx: {
53
+ fill: 'background',
54
+ boxShadow: 'high'
55
+ }
56
+ })]
57
+ }))
58
+ }))]
59
+ });
71
60
  };
72
61
 
73
- Dropdown.propTypes = {
74
- trigger: PropTypes.node.isRequired,
75
- children: PropTypes.node.isRequired,
76
-
77
- // Props in root: https://www.radix-ui.com/docs/primitives/components/dropdown-menu#root
78
- open: PropTypes.bool,
79
- defaultOpen: PropTypes.bool,
80
- onOpenChange: PropTypes.func,
81
- modal: PropTypes.bool,
82
- dir: PropTypes.string,
83
-
84
- // Content props in: https://www.radix-ui.com/docs/primitives/components/dropdown-menu#content
85
- contentProps: PropTypes.any,
86
- // Portal props in: https://www.radix-ui.com/docs/primitives/components/dropdown-menu#portal
87
- portalProps: PropTypes.any,
88
- className: PropTypes.string,
89
- };
90
-
91
- // Exports
92
- export {
93
- DropdownTrigger,
94
- DropdownRadioGroup,
95
- DropdownItemIndicator,
96
- DropdownLabel,
97
- DropdownSeparator,
98
- DropdownSub,
99
- DropdownSubTrigger,
100
- DropdownSubContent,
101
- };
62
+ // Exports
@@ -1,31 +1,6 @@
1
1
  declare namespace _default {
2
2
  let title: string;
3
- let component: {
4
- ({ trigger, children, open, defaultOpen, onOpenChange, modal, dir, contentProps, portalProps, className, }: {
5
- trigger: any;
6
- children: any;
7
- open?: undefined;
8
- defaultOpen?: boolean | undefined;
9
- onOpenChange?: undefined;
10
- modal?: boolean | undefined;
11
- dir?: string | undefined;
12
- contentProps?: {} | undefined;
13
- portalProps?: {} | undefined;
14
- className: any;
15
- }): React.JSX.Element;
16
- propTypes: {
17
- trigger: import("prop-types").Validator<NonNullable<import("prop-types").ReactNodeLike>>;
18
- children: import("prop-types").Validator<NonNullable<import("prop-types").ReactNodeLike>>;
19
- open: import("prop-types").Requireable<boolean>;
20
- defaultOpen: import("prop-types").Requireable<boolean>;
21
- onOpenChange: import("prop-types").Requireable<(...args: any[]) => any>;
22
- modal: import("prop-types").Requireable<boolean>;
23
- dir: import("prop-types").Requireable<string>;
24
- contentProps: import("prop-types").Requireable<any>;
25
- portalProps: import("prop-types").Requireable<any>;
26
- className: import("prop-types").Requireable<string>;
27
- };
28
- };
3
+ let component: React.FC<import("./Dropdown").DropdownProps>;
29
4
  }
30
5
  export default _default;
31
6
  export function Default(): React.JSX.Element;
@@ -1,33 +1,56 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { fireEvent, render, screen } from '@testing-library/react';
5
- import { axe } from 'jest-axe';
1
+ "use strict";
6
2
 
7
- /**
3
+ var _react = require("@testing-library/react");
4
+ var _jestAxe = require("jest-axe");
5
+ var _react2 = _interopRequireDefault(require("react"));
6
+ var Dropdown = _interopRequireWildcard(require("."));
7
+ var _jsxRuntime = require("theme-ui/jsx-runtime");
8
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(typeof e + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
12
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
13
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } /**
15
+ * External dependencies
16
+ */ /**
8
17
  * Internal dependencies
9
18
  */
10
- import * as Dropdown from '.';
11
-
12
- const defaultProps = {
13
- trigger: <button>Trigger</button>,
19
+ var defaultProps = {
20
+ trigger: (0, _jsxRuntime.jsx)("button", {
21
+ children: "Trigger"
22
+ })
14
23
  };
24
+ var getButton = function getButton() {
25
+ return _react.screen.getByRole('button', {
26
+ name: 'Trigger'
27
+ });
28
+ };
29
+ describe('<Dropdown />', function () {
30
+ it('renders the Dropdown component', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
31
+ var _render, container;
32
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
33
+ while (1) switch (_context.prev = _context.next) {
34
+ case 0:
35
+ _render = (0, _react.render)((0, _jsxRuntime.jsx)(Dropdown.Root, _extends({}, defaultProps, {
36
+ children: (0, _jsxRuntime.jsx)(Dropdown.Item, {
37
+ children: "My Item"
38
+ })
39
+ }))), container = _render.container;
40
+ expect(getButton()).toBeInTheDocument();
41
+ _react.fireEvent.click(getButton());
15
42
 
16
- const getButton = () => screen.getByRole( 'button', { name: 'Trigger' } );
17
-
18
- describe( '<Dropdown />', () => {
19
- it( 'renders the Dropdown component', async () => {
20
- const { container } = render(
21
- <Dropdown.Root { ...defaultProps }>
22
- <Dropdown.Item>My Item</Dropdown.Item>
23
- </Dropdown.Root>
24
- );
25
-
26
- expect( getButton() ).toBeInTheDocument();
27
-
28
- fireEvent.click( getButton() );
29
-
30
- // Check for accessibility issues
31
- await expect( await axe( container ) ).toHaveNoViolations();
32
- } );
33
- } );
43
+ // Check for accessibility issues
44
+ _context.t0 = expect;
45
+ _context.next = 6;
46
+ return (0, _jestAxe.axe)(container);
47
+ case 6:
48
+ _context.t1 = _context.sent;
49
+ (0, _context.t0)(_context.t1).toHaveNoViolations();
50
+ case 8:
51
+ case "end":
52
+ return _context.stop();
53
+ }
54
+ }, _callee);
55
+ })));
56
+ });
@@ -1,11 +1,15 @@
1
- export namespace styles {
2
- let minWidth: number;
3
- let borderRadius: number;
4
- let backgroundColor: string;
5
- let boxShadow: string;
6
- let px: number;
7
- let py: number;
8
- }
9
- export const DropdownContent: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
10
- export const DropdownSubContent: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
1
+ /** @jsxImportSource theme-ui */
11
2
  import React from 'react';
3
+ export interface DropdownContentProps {
4
+ className?: string;
5
+ }
6
+ export declare const styles: {
7
+ minWidth: number;
8
+ borderRadius: number;
9
+ backgroundColor: string;
10
+ boxShadow: string;
11
+ px: number;
12
+ py: number;
13
+ };
14
+ export declare const DropdownContent: React.ForwardRefExoticComponent<DropdownContentProps & React.RefAttributes<HTMLDivElement>>;
15
+ export declare const DropdownSubContent: React.ForwardRefExoticComponent<DropdownContentProps & React.RefAttributes<HTMLDivElement>>;