@automattic/vip-design-system 0.18.0 → 0.18.4-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.
- package/build/system/Dialog/Dialog.stories.js +1 -1
- package/build/system/Dropdown/Dropdown.js +111 -0
- package/build/system/Dropdown/Dropdown.stories.js +211 -0
- package/build/system/Dropdown/Dropdown.test.js +76 -0
- package/build/system/Dropdown/DropdownContent.js +55 -0
- package/build/system/Dropdown/DropdownItem.js +97 -0
- package/build/system/Dropdown/DropdownLabel.js +41 -0
- package/build/system/Dropdown/DropdownSeparator.js +40 -0
- package/build/system/Dropdown/index.js +48 -0
- package/build/system/NewConfirmationDialog/NewConfirmationDialog.js +18 -14
- package/build/system/NewConfirmationDialog/NewConfirmationDialog.stories.js +1 -0
- package/build/system/NewDialog/DialogContent.js +2 -4
- package/build/system/NewDialog/DialogTitle.js +2 -1
- package/build/system/NewDialog/NewDialog.js +14 -5
- package/build/system/Tooltip/Tooltip.js +56 -43
- package/build/system/Tooltip/Tooltip.stories.js +2 -1
- package/build/system/index.js +5 -1
- package/package.json +8 -6
- package/src/system/Dialog/Dialog.stories.jsx +1 -1
- package/src/system/Dropdown/Dropdown.js +95 -0
- package/src/system/Dropdown/Dropdown.stories.jsx +168 -0
- package/src/system/Dropdown/Dropdown.test.js +33 -0
- package/src/system/Dropdown/DropdownContent.js +30 -0
- package/src/system/Dropdown/DropdownItem.js +73 -0
- package/src/system/Dropdown/DropdownLabel.js +20 -0
- package/src/system/Dropdown/DropdownSeparator.js +19 -0
- package/src/system/Dropdown/index.js +54 -0
- package/src/system/NewConfirmationDialog/NewConfirmationDialog.js +8 -1
- package/src/system/NewConfirmationDialog/NewConfirmationDialog.stories.jsx +1 -0
- package/src/system/NewDialog/DialogContent.js +2 -2
- package/src/system/NewDialog/DialogTitle.js +1 -1
- package/src/system/NewDialog/NewDialog.js +10 -1
- package/src/system/Tooltip/Tooltip.js +40 -37
- package/src/system/Tooltip/Tooltip.stories.jsx +1 -1
- package/src/system/index.js +2 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.DropdownTrigger = exports.DropdownSubTrigger = exports.DropdownSubContent = exports.DropdownSub = exports.DropdownSeparator = exports.DropdownRadioGroup = exports.DropdownLabel = exports.DropdownItemIndicator = exports.Dropdown = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var DropdownMenuPrimitive = _interopRequireWildcard(require("@radix-ui/react-dropdown-menu"));
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _DropdownContent = require("./DropdownContent");
|
|
17
|
+
|
|
18
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
19
|
+
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
+
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
|
|
24
|
+
/** @jsxImportSource theme-ui */
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* External dependencies
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Internal dependencies
|
|
32
|
+
*/
|
|
33
|
+
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
34
|
+
var DropdownTrigger = DropdownMenuPrimitive.Trigger;
|
|
35
|
+
exports.DropdownTrigger = DropdownTrigger;
|
|
36
|
+
var DropdownRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
37
|
+
exports.DropdownRadioGroup = DropdownRadioGroup;
|
|
38
|
+
var DropdownItemIndicator = DropdownMenuPrimitive.DropdownMenuItemIndicator;
|
|
39
|
+
exports.DropdownItemIndicator = DropdownItemIndicator;
|
|
40
|
+
var DropdownLabel = DropdownMenuPrimitive.DropdownMenuLabel;
|
|
41
|
+
exports.DropdownLabel = DropdownLabel;
|
|
42
|
+
var DropdownSeparator = DropdownMenuPrimitive.DropdownMenuSeparator;
|
|
43
|
+
exports.DropdownSeparator = DropdownSeparator;
|
|
44
|
+
var DropdownSub = DropdownMenuPrimitive.DropdownMenuSub;
|
|
45
|
+
exports.DropdownSub = DropdownSub;
|
|
46
|
+
var DropdownSubTrigger = DropdownMenuPrimitive.DropdownMenuSubTrigger;
|
|
47
|
+
exports.DropdownSubTrigger = DropdownSubTrigger;
|
|
48
|
+
var DropdownSubContent = DropdownMenuPrimitive.DropdownMenuSubContent;
|
|
49
|
+
exports.DropdownSubContent = DropdownSubContent;
|
|
50
|
+
|
|
51
|
+
var Dropdown = function Dropdown(_ref) {
|
|
52
|
+
var trigger = _ref.trigger,
|
|
53
|
+
children = _ref.children,
|
|
54
|
+
_ref$open = _ref.open,
|
|
55
|
+
open = _ref$open === void 0 ? undefined : _ref$open,
|
|
56
|
+
_ref$defaultOpen = _ref.defaultOpen,
|
|
57
|
+
defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
|
|
58
|
+
_ref$onOpenChange = _ref.onOpenChange,
|
|
59
|
+
onOpenChange = _ref$onOpenChange === void 0 ? undefined : _ref$onOpenChange,
|
|
60
|
+
_ref$modal = _ref.modal,
|
|
61
|
+
modal = _ref$modal === void 0 ? true : _ref$modal,
|
|
62
|
+
_ref$dir = _ref.dir,
|
|
63
|
+
dir = _ref$dir === void 0 ? 'ltr' : _ref$dir,
|
|
64
|
+
_ref$contentProps = _ref.contentProps,
|
|
65
|
+
contentProps = _ref$contentProps === void 0 ? {} : _ref$contentProps,
|
|
66
|
+
_ref$portalProps = _ref.portalProps,
|
|
67
|
+
portalProps = _ref$portalProps === void 0 ? {} : _ref$portalProps;
|
|
68
|
+
|
|
69
|
+
var firstChild = _react["default"].useMemo(function () {
|
|
70
|
+
var _React$Children$only, _React$Children$only$;
|
|
71
|
+
|
|
72
|
+
return /*#__PURE__*/_react["default"].isValidElement(children) ? (_React$Children$only = _react["default"].Children.only(children)) == null ? void 0 : (_React$Children$only$ = _React$Children$only.type) == null ? void 0 : _React$Children$only$.displayName : '';
|
|
73
|
+
}, [children]);
|
|
74
|
+
|
|
75
|
+
return (0, _jsxRuntime.jsxs)(DropdownMenu, {
|
|
76
|
+
open: open,
|
|
77
|
+
defaultOpen: defaultOpen,
|
|
78
|
+
onOpenChange: onOpenChange,
|
|
79
|
+
modal: modal,
|
|
80
|
+
dir: dir,
|
|
81
|
+
children: [(0, _jsxRuntime.jsx)(DropdownTrigger, {
|
|
82
|
+
asChild: true,
|
|
83
|
+
children: trigger
|
|
84
|
+
}), (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.Portal, (0, _extends2["default"])({}, portalProps, {
|
|
85
|
+
children: firstChild === 'DropdownContent' ? children : (0, _jsxRuntime.jsxs)(_DropdownContent.DropdownContent, (0, _extends2["default"])({}, contentProps, {
|
|
86
|
+
children: [children, (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.Arrow, {
|
|
87
|
+
sx: {
|
|
88
|
+
fill: 'background',
|
|
89
|
+
boxShadow: 'high'
|
|
90
|
+
}
|
|
91
|
+
})]
|
|
92
|
+
}))
|
|
93
|
+
}))]
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
exports.Dropdown = Dropdown;
|
|
98
|
+
Dropdown.propTypes = {
|
|
99
|
+
trigger: _propTypes["default"].node.isRequired,
|
|
100
|
+
children: _propTypes["default"].node.isRequired,
|
|
101
|
+
// Props in root: https://www.radix-ui.com/docs/primitives/components/dropdown-menu#root
|
|
102
|
+
open: _propTypes["default"].bool,
|
|
103
|
+
defaultOpen: _propTypes["default"].bool,
|
|
104
|
+
onOpenChange: _propTypes["default"].func,
|
|
105
|
+
modal: _propTypes["default"].bool,
|
|
106
|
+
dir: _propTypes["default"].string,
|
|
107
|
+
// Content props in: https://www.radix-ui.com/docs/primitives/components/dropdown-menu#content
|
|
108
|
+
contentProps: _propTypes["default"].any,
|
|
109
|
+
// Portal props in: https://www.radix-ui.com/docs/primitives/components/dropdown-menu#portal
|
|
110
|
+
portalProps: _propTypes["default"].any
|
|
111
|
+
}; // Exports
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports["default"] = exports.WithDialog = exports.Default = exports.ComplexOptions = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _reactIcons = require("@radix-ui/react-icons");
|
|
15
|
+
|
|
16
|
+
var Dropdown = _interopRequireWildcard(require("."));
|
|
17
|
+
|
|
18
|
+
var _Button = require("../Button");
|
|
19
|
+
|
|
20
|
+
var NewDialog = _interopRequireWildcard(require("../NewDialog"));
|
|
21
|
+
|
|
22
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
23
|
+
|
|
24
|
+
var _excluded = ["onConfirm"];
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
|
|
30
|
+
var _default = {
|
|
31
|
+
title: 'Dropdown',
|
|
32
|
+
component: Dropdown.Root
|
|
33
|
+
};
|
|
34
|
+
exports["default"] = _default;
|
|
35
|
+
|
|
36
|
+
var Default = function Default() {
|
|
37
|
+
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
38
|
+
children: [(0, _jsxRuntime.jsxs)(Dropdown.Root, {
|
|
39
|
+
trigger: (0, _jsxRuntime.jsx)(_Button.Button, {
|
|
40
|
+
children: "Open"
|
|
41
|
+
}),
|
|
42
|
+
children: [(0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
43
|
+
children: "All"
|
|
44
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
45
|
+
children: "Completed"
|
|
46
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
47
|
+
children: "Running"
|
|
48
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
49
|
+
children: "Cancelled"
|
|
50
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Separator, {}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
51
|
+
children: "Errored"
|
|
52
|
+
})]
|
|
53
|
+
}), (0, _jsxRuntime.jsxs)("p", {
|
|
54
|
+
children: ["This component is based on the Radix Dropdown. You can find all available options, props and features in the", ' ', (0, _jsxRuntime.jsx)("a", {
|
|
55
|
+
href: "https://www.radix-ui.com/docs/primitives/components/dropdown-menu",
|
|
56
|
+
target: "_blank",
|
|
57
|
+
rel: "noopener noreferrer",
|
|
58
|
+
children: "Dropdown Documentation page."
|
|
59
|
+
})]
|
|
60
|
+
})]
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
exports.Default = Default;
|
|
65
|
+
|
|
66
|
+
var ComplexOptions = function ComplexOptions() {
|
|
67
|
+
var _React$useState = _react["default"].useState(true),
|
|
68
|
+
bookmarksChecked = _React$useState[0],
|
|
69
|
+
setBookmarksChecked = _React$useState[1];
|
|
70
|
+
|
|
71
|
+
var _React$useState2 = _react["default"].useState(false),
|
|
72
|
+
urlsChecked = _React$useState2[0],
|
|
73
|
+
setUrlsChecked = _React$useState2[1];
|
|
74
|
+
|
|
75
|
+
var _React$useState3 = _react["default"].useState('pedro'),
|
|
76
|
+
person = _React$useState3[0],
|
|
77
|
+
setPerson = _React$useState3[1];
|
|
78
|
+
|
|
79
|
+
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
80
|
+
children: [(0, _jsxRuntime.jsxs)(Dropdown.Root, {
|
|
81
|
+
trigger: (0, _jsxRuntime.jsx)(_Button.Button, {
|
|
82
|
+
children: "See options"
|
|
83
|
+
}),
|
|
84
|
+
children: [(0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
85
|
+
children: "New Tab"
|
|
86
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
87
|
+
children: "New Window"
|
|
88
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
89
|
+
disabled: true,
|
|
90
|
+
children: "New Private Window"
|
|
91
|
+
}), (0, _jsxRuntime.jsxs)(Dropdown.Sub, {
|
|
92
|
+
children: [(0, _jsxRuntime.jsxs)(Dropdown.SubTrigger, {
|
|
93
|
+
children: ["More Tools", (0, _jsxRuntime.jsx)(_reactIcons.ChevronRightIcon, {})]
|
|
94
|
+
}), (0, _jsxRuntime.jsxs)(Dropdown.SubContent, {
|
|
95
|
+
sideOffset: 2,
|
|
96
|
+
alignOffset: -5,
|
|
97
|
+
children: [(0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
98
|
+
children: "Save Page As\u2026"
|
|
99
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
100
|
+
children: "Create Shortcut\u2026"
|
|
101
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
102
|
+
children: "Name Window\u2026"
|
|
103
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Separator, {}), (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
104
|
+
children: "Developer Tools"
|
|
105
|
+
})]
|
|
106
|
+
})]
|
|
107
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Separator, {}), (0, _jsxRuntime.jsxs)(Dropdown.CheckboxItem, {
|
|
108
|
+
checked: bookmarksChecked,
|
|
109
|
+
onCheckedChange: setBookmarksChecked,
|
|
110
|
+
children: [(0, _jsxRuntime.jsx)(Dropdown.ItemIndicator, {
|
|
111
|
+
children: (0, _jsxRuntime.jsx)(_reactIcons.CheckIcon, {})
|
|
112
|
+
}), "Show Bookmarks"]
|
|
113
|
+
}), (0, _jsxRuntime.jsxs)(Dropdown.CheckboxItem, {
|
|
114
|
+
checked: urlsChecked,
|
|
115
|
+
onCheckedChange: setUrlsChecked,
|
|
116
|
+
children: [(0, _jsxRuntime.jsx)(Dropdown.ItemIndicator, {
|
|
117
|
+
children: (0, _jsxRuntime.jsx)(_reactIcons.CheckIcon, {})
|
|
118
|
+
}), "Show Full URLs"]
|
|
119
|
+
}), (0, _jsxRuntime.jsx)(Dropdown.Separator, {}), (0, _jsxRuntime.jsx)(Dropdown.Label, {
|
|
120
|
+
children: "People"
|
|
121
|
+
}), (0, _jsxRuntime.jsxs)(Dropdown.RadioGroup, {
|
|
122
|
+
value: person,
|
|
123
|
+
onValueChange: setPerson,
|
|
124
|
+
children: [(0, _jsxRuntime.jsxs)(Dropdown.RadioItem, {
|
|
125
|
+
value: "pedro",
|
|
126
|
+
children: [(0, _jsxRuntime.jsx)(Dropdown.ItemIndicator, {
|
|
127
|
+
children: (0, _jsxRuntime.jsx)(_reactIcons.DotFilledIcon, {})
|
|
128
|
+
}), "Pedro Duarte"]
|
|
129
|
+
}), (0, _jsxRuntime.jsxs)(Dropdown.RadioItem, {
|
|
130
|
+
value: "colm",
|
|
131
|
+
children: [(0, _jsxRuntime.jsx)(Dropdown.ItemIndicator, {
|
|
132
|
+
children: (0, _jsxRuntime.jsx)(_reactIcons.DotFilledIcon, {})
|
|
133
|
+
}), "Colm Tuite"]
|
|
134
|
+
})]
|
|
135
|
+
})]
|
|
136
|
+
}), (0, _jsxRuntime.jsxs)("p", {
|
|
137
|
+
children: ["This component is based on the Radix Dropdown. You can find all available options, props and features in the", ' ', (0, _jsxRuntime.jsx)("a", {
|
|
138
|
+
href: "https://www.radix-ui.com/docs/primitives/components/dropdown-menu",
|
|
139
|
+
target: "_blank",
|
|
140
|
+
rel: "noopener noreferrer",
|
|
141
|
+
children: "Dropdown Documentation page."
|
|
142
|
+
})]
|
|
143
|
+
})]
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
exports.ComplexOptions = ComplexOptions;
|
|
148
|
+
|
|
149
|
+
var WithDialog = function WithDialog() {
|
|
150
|
+
var _React$useState4 = _react["default"].useState(false),
|
|
151
|
+
alertOpen = _React$useState4[0],
|
|
152
|
+
setAlertOpen = _React$useState4[1];
|
|
153
|
+
|
|
154
|
+
var _React$useState5 = _react["default"].useState(false),
|
|
155
|
+
menuOpen = _React$useState5[0],
|
|
156
|
+
setMenuOpen = _React$useState5[1];
|
|
157
|
+
|
|
158
|
+
var AreYouSureDialog = function AreYouSureDialog(_ref) {
|
|
159
|
+
var onConfirm = _ref.onConfirm,
|
|
160
|
+
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
161
|
+
return (0, _jsxRuntime.jsx)(NewDialog.Root, (0, _extends2["default"])({}, props, {
|
|
162
|
+
content: (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
163
|
+
children: [(0, _jsxRuntime.jsx)(_Button.Button, {
|
|
164
|
+
variant: "secondary",
|
|
165
|
+
onClick: function onClick() {
|
|
166
|
+
return onConfirm();
|
|
167
|
+
},
|
|
168
|
+
children: "Custom Close."
|
|
169
|
+
}), (0, _jsxRuntime.jsx)("p", {
|
|
170
|
+
children: "Teste abc."
|
|
171
|
+
})]
|
|
172
|
+
})
|
|
173
|
+
}));
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
177
|
+
children: [(0, _jsxRuntime.jsx)("p", {
|
|
178
|
+
children: "This is an important example when combining the Dropdown component with the NewDialog component. In order to have the correct accessibility, there are some events you need to use. Use this example if you want to copy and paste the code."
|
|
179
|
+
}), (0, _jsxRuntime.jsxs)(Dropdown.Root, {
|
|
180
|
+
modal: !alertOpen,
|
|
181
|
+
open: menuOpen,
|
|
182
|
+
onOpenChange: setMenuOpen,
|
|
183
|
+
contentProps: {
|
|
184
|
+
sideOffset: 5
|
|
185
|
+
},
|
|
186
|
+
trigger: (0, _jsxRuntime.jsx)(_Button.Button, {
|
|
187
|
+
children: "Open"
|
|
188
|
+
}),
|
|
189
|
+
children: [(0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
190
|
+
children: "I don't do anything"
|
|
191
|
+
}), (0, _jsxRuntime.jsx)(AreYouSureDialog, {
|
|
192
|
+
title: "Are you in the jungle?",
|
|
193
|
+
description: "sha-n-n-n-n-n-n-n-n knees, knees",
|
|
194
|
+
open: alertOpen,
|
|
195
|
+
onOpenChange: setAlertOpen,
|
|
196
|
+
onConfirm: function onConfirm() {
|
|
197
|
+
setAlertOpen(false);
|
|
198
|
+
setMenuOpen(false);
|
|
199
|
+
},
|
|
200
|
+
trigger: (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
201
|
+
onSelect: function onSelect(event) {
|
|
202
|
+
return event.preventDefault();
|
|
203
|
+
},
|
|
204
|
+
children: "Open Dialog"
|
|
205
|
+
})
|
|
206
|
+
})]
|
|
207
|
+
})]
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
exports.WithDialog = WithDialog;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
|
|
11
|
+
var _react = require("@testing-library/react");
|
|
12
|
+
|
|
13
|
+
var _jestAxe = require("jest-axe");
|
|
14
|
+
|
|
15
|
+
var Dropdown = _interopRequireWildcard(require("."));
|
|
16
|
+
|
|
17
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
18
|
+
|
|
19
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
20
|
+
|
|
21
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* External dependencies
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Internal dependencies
|
|
29
|
+
*/
|
|
30
|
+
var defaultProps = {
|
|
31
|
+
trigger: (0, _jsxRuntime.jsx)("button", {
|
|
32
|
+
children: "Trigger"
|
|
33
|
+
})
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var getButton = function getButton() {
|
|
37
|
+
return _react.screen.getByRole('button', {
|
|
38
|
+
name: 'Trigger'
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
describe('<Dropdown />', function () {
|
|
43
|
+
it('renders the Dropdown component', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
44
|
+
var _render, container;
|
|
45
|
+
|
|
46
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
47
|
+
while (1) {
|
|
48
|
+
switch (_context.prev = _context.next) {
|
|
49
|
+
case 0:
|
|
50
|
+
_render = (0, _react.render)((0, _jsxRuntime.jsx)(Dropdown.Root, (0, _extends2["default"])({}, defaultProps, {
|
|
51
|
+
children: (0, _jsxRuntime.jsx)(Dropdown.Item, {
|
|
52
|
+
children: "My Item"
|
|
53
|
+
})
|
|
54
|
+
}))), container = _render.container;
|
|
55
|
+
expect(getButton()).toBeInTheDocument();
|
|
56
|
+
|
|
57
|
+
_react.fireEvent.click(getButton()); // Check for accessibility issues
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
_context.t0 = expect;
|
|
61
|
+
_context.next = 6;
|
|
62
|
+
return (0, _jestAxe.axe)(container);
|
|
63
|
+
|
|
64
|
+
case 6:
|
|
65
|
+
_context.t1 = _context.sent;
|
|
66
|
+
_context.next = 9;
|
|
67
|
+
return (0, _context.t0)(_context.t1).toHaveNoViolations();
|
|
68
|
+
|
|
69
|
+
case 9:
|
|
70
|
+
case "end":
|
|
71
|
+
return _context.stop();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}, _callee);
|
|
75
|
+
})));
|
|
76
|
+
});
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.styles = exports.DropdownSubContent = exports.DropdownContent = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var DropdownMenuPrimitive = _interopRequireWildcard(require("@radix-ui/react-dropdown-menu"));
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
/** @jsxImportSource theme-ui */
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* External dependencies
|
|
24
|
+
*/
|
|
25
|
+
var styles = {
|
|
26
|
+
minWidth: 220,
|
|
27
|
+
borderRadius: 6,
|
|
28
|
+
backgroundColor: 'background',
|
|
29
|
+
boxShadow: 'high',
|
|
30
|
+
px: 2,
|
|
31
|
+
py: 1
|
|
32
|
+
};
|
|
33
|
+
exports.styles = styles;
|
|
34
|
+
|
|
35
|
+
var DropdownContent = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
36
|
+
return (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.DropdownMenuContent, (0, _extends2["default"])({
|
|
37
|
+
ref: forwardRef,
|
|
38
|
+
sx: styles
|
|
39
|
+
}, props));
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
exports.DropdownContent = DropdownContent;
|
|
43
|
+
DropdownContent.displayName = 'DropdownContent';
|
|
44
|
+
|
|
45
|
+
var DropdownSubContent = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
46
|
+
return (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.Portal, {
|
|
47
|
+
children: (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.DropdownMenuSubContent, (0, _extends2["default"])({
|
|
48
|
+
ref: forwardRef,
|
|
49
|
+
sx: styles
|
|
50
|
+
}, props))
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
exports.DropdownSubContent = DropdownSubContent;
|
|
55
|
+
DropdownSubContent.displayName = 'DropdownSubContent';
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.styles = exports.DropdownSubTrigger = exports.DropdownRadioItem = exports.DropdownItem = exports.DropdownCheckboxItem = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var DropdownMenuPrimitive = _interopRequireWildcard(require("@radix-ui/react-dropdown-menu"));
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
/** @jsxImportSource theme-ui */
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* External dependencies
|
|
24
|
+
*/
|
|
25
|
+
var styles = {
|
|
26
|
+
unset: 'all',
|
|
27
|
+
cursor: 'pointer',
|
|
28
|
+
display: 'flex',
|
|
29
|
+
alignItems: 'center',
|
|
30
|
+
flexDirection: 'row',
|
|
31
|
+
textAlign: 'left',
|
|
32
|
+
height: 25,
|
|
33
|
+
textDecoration: 'none',
|
|
34
|
+
position: 'relative',
|
|
35
|
+
m: 0,
|
|
36
|
+
color: 'heading',
|
|
37
|
+
px: 2,
|
|
38
|
+
paddingLeft: 10,
|
|
39
|
+
py: 1,
|
|
40
|
+
'&:hover, &:focus': {
|
|
41
|
+
backgroundColor: 'hover'
|
|
42
|
+
},
|
|
43
|
+
'&[data-disabled]': {
|
|
44
|
+
color: 'muted',
|
|
45
|
+
pointerEvents: 'none'
|
|
46
|
+
},
|
|
47
|
+
'&[data-highlighted]': {
|
|
48
|
+
backgroundColor: 'hover',
|
|
49
|
+
color: 'primary'
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.styles = styles;
|
|
53
|
+
|
|
54
|
+
var DropdownItem = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
55
|
+
return (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.DropdownMenuItem, (0, _extends2["default"])({
|
|
56
|
+
ref: forwardRef,
|
|
57
|
+
sx: styles
|
|
58
|
+
}, props));
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
exports.DropdownItem = DropdownItem;
|
|
62
|
+
DropdownItem.displayName = 'DropdownItem';
|
|
63
|
+
|
|
64
|
+
var DropdownCheckboxItem = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
65
|
+
return (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.CheckboxItem, (0, _extends2["default"])({
|
|
66
|
+
ref: forwardRef,
|
|
67
|
+
sx: styles
|
|
68
|
+
}, props));
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
exports.DropdownCheckboxItem = DropdownCheckboxItem;
|
|
72
|
+
DropdownCheckboxItem.displayName = 'DropdownCheckboxItem';
|
|
73
|
+
|
|
74
|
+
var DropdownRadioItem = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
75
|
+
return (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.RadioItem, (0, _extends2["default"])({
|
|
76
|
+
ref: forwardRef,
|
|
77
|
+
sx: styles
|
|
78
|
+
}, props));
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
exports.DropdownRadioItem = DropdownRadioItem;
|
|
82
|
+
DropdownRadioItem.displayName = 'DropdownRadioItem';
|
|
83
|
+
|
|
84
|
+
var DropdownSubTrigger = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
85
|
+
return (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.SubTrigger, (0, _extends2["default"])({
|
|
86
|
+
ref: forwardRef,
|
|
87
|
+
sx: (0, _extends2["default"])({}, styles, {
|
|
88
|
+
'&[data-state="open"]': {
|
|
89
|
+
background: 'highlight',
|
|
90
|
+
color: 'primary'
|
|
91
|
+
}
|
|
92
|
+
})
|
|
93
|
+
}, props));
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
exports.DropdownSubTrigger = DropdownSubTrigger;
|
|
97
|
+
DropdownSubTrigger.displayName = 'DropdownSubTrigger';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.styles = exports.DropdownLabel = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var DropdownMenuPrimitive = _interopRequireWildcard(require("@radix-ui/react-dropdown-menu"));
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
/** @jsxImportSource theme-ui */
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* External dependencies
|
|
24
|
+
*/
|
|
25
|
+
var styles = {
|
|
26
|
+
paddingLeft: 10,
|
|
27
|
+
fontSize: 12,
|
|
28
|
+
lineHeight: '25px',
|
|
29
|
+
color: 'muted'
|
|
30
|
+
};
|
|
31
|
+
exports.styles = styles;
|
|
32
|
+
|
|
33
|
+
var DropdownLabel = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
34
|
+
return (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.DropdownMenuLabel, (0, _extends2["default"])({
|
|
35
|
+
ref: forwardRef,
|
|
36
|
+
sx: styles
|
|
37
|
+
}, props));
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
exports.DropdownLabel = DropdownLabel;
|
|
41
|
+
DropdownLabel.displayName = 'DropdownLabel';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.styles = exports.DropdownSeparator = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var DropdownMenuPrimitive = _interopRequireWildcard(require("@radix-ui/react-dropdown-menu"));
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
/** @jsxImportSource theme-ui */
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* External dependencies
|
|
24
|
+
*/
|
|
25
|
+
var styles = {
|
|
26
|
+
height: '1px',
|
|
27
|
+
backgroundColor: 'border',
|
|
28
|
+
my: '5px'
|
|
29
|
+
};
|
|
30
|
+
exports.styles = styles;
|
|
31
|
+
|
|
32
|
+
var DropdownSeparator = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
33
|
+
return (0, _jsxRuntime.jsx)(DropdownMenuPrimitive.DropdownMenuSeparator, (0, _extends2["default"])({
|
|
34
|
+
ref: forwardRef,
|
|
35
|
+
sx: styles
|
|
36
|
+
}, props));
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
exports.DropdownSeparator = DropdownSeparator;
|
|
40
|
+
DropdownSeparator.displayName = 'DropdownSeparator';
|