@pingux/astro 1.24.1-alpha.3 → 1.25.0-alpha.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/lib/cjs/components/Avatar/Avatar.stories.js +3 -3
- package/lib/cjs/components/Avatar/Avatar.test.js +2 -2
- package/lib/cjs/components/Image/Image.stories.js +10 -10
- package/lib/cjs/recipes/ListAndPanel.stories.js +339 -0
- package/lib/cjs/{components/Image/imageConstants.js → utils/devUtils/constants/images.js} +0 -0
- package/lib/components/Avatar/Avatar.stories.js +2 -2
- package/lib/components/Avatar/Avatar.test.js +1 -1
- package/lib/components/Image/Image.stories.js +1 -1
- package/lib/recipes/ListAndPanel.stories.js +302 -0
- package/lib/{components/Image/imageConstants.js → utils/devUtils/constants/images.js} +0 -0
- package/package.json +2 -2
@@ -14,10 +14,10 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
|
|
14
14
|
|
15
15
|
var _react = _interopRequireDefault(require("react"));
|
16
16
|
|
17
|
-
var _faker = _interopRequireDefault(require("faker"));
|
18
|
-
|
19
17
|
var _ = _interopRequireDefault(require("."));
|
20
18
|
|
19
|
+
var _images = require("../../utils/devUtils/constants/images");
|
20
|
+
|
21
21
|
var _react2 = require("@emotion/react");
|
22
22
|
|
23
23
|
var _default = {
|
@@ -28,7 +28,7 @@ var _default = {
|
|
28
28
|
control: {
|
29
29
|
type: 'none'
|
30
30
|
},
|
31
|
-
defaultValue:
|
31
|
+
defaultValue: _images.pingImg
|
32
32
|
}
|
33
33
|
}
|
34
34
|
};
|
@@ -6,7 +6,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
|
|
6
6
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
8
8
|
|
9
|
-
var _faker =
|
9
|
+
var _faker = require("@faker-js/faker");
|
10
10
|
|
11
11
|
var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
|
12
12
|
|
@@ -17,7 +17,7 @@ var _ = _interopRequireDefault(require("."));
|
|
17
17
|
var _react2 = require("@emotion/react");
|
18
18
|
|
19
19
|
var defaultProps = {
|
20
|
-
src: _faker
|
20
|
+
src: _faker.faker.image.lorempicsum.imageUrl(150, 150, false, 0, '1')
|
21
21
|
};
|
22
22
|
|
23
23
|
var getComponent = function getComponent() {
|
@@ -26,7 +26,7 @@ var _isChromatic = _interopRequireDefault(require("chromatic/isChromatic"));
|
|
26
26
|
|
27
27
|
var _ = _interopRequireDefault(require("."));
|
28
28
|
|
29
|
-
var
|
29
|
+
var _images = require("../../utils/devUtils/constants/images");
|
30
30
|
|
31
31
|
var _htmlElements = require("../../utils/devUtils/constants/htmlElements");
|
32
32
|
|
@@ -59,7 +59,7 @@ var _default = {
|
|
59
59
|
control: {
|
60
60
|
type: 'none'
|
61
61
|
},
|
62
|
-
defaultValue:
|
62
|
+
defaultValue: _images.pingImg
|
63
63
|
}
|
64
64
|
}
|
65
65
|
};
|
@@ -76,7 +76,7 @@ exports.Default = Default;
|
|
76
76
|
|
77
77
|
var Avatar = function Avatar() {
|
78
78
|
return (0, _react2.jsx)(_["default"], {
|
79
|
-
src:
|
79
|
+
src: _images.pingImg,
|
80
80
|
variant: "images.avatar",
|
81
81
|
alt: "Ping identity round avatar"
|
82
82
|
});
|
@@ -86,7 +86,7 @@ exports.Avatar = Avatar;
|
|
86
86
|
|
87
87
|
var CustomSizeAndRadius = function CustomSizeAndRadius() {
|
88
88
|
return (0, _react2.jsx)(_["default"], {
|
89
|
-
src:
|
89
|
+
src: _images.chiefIdentityChampions,
|
90
90
|
sx: {
|
91
91
|
width: '70px',
|
92
92
|
height: '70px',
|
@@ -101,7 +101,7 @@ exports.CustomSizeAndRadius = CustomSizeAndRadius;
|
|
101
101
|
|
102
102
|
var Disabled = function Disabled() {
|
103
103
|
return (0, _react2.jsx)(_["default"], {
|
104
|
-
src:
|
104
|
+
src: _images.pingImg,
|
105
105
|
isDisabled: true,
|
106
106
|
alt: "Ping identity square logo"
|
107
107
|
});
|
@@ -111,7 +111,7 @@ exports.Disabled = Disabled;
|
|
111
111
|
|
112
112
|
var FallbackImage = function FallbackImage() {
|
113
113
|
return (0, _react2.jsx)(_["default"], {
|
114
|
-
fallbackImage:
|
114
|
+
fallbackImage: _images.pingImg,
|
115
115
|
src: "https://deelay.me/7000/https://picsum.photos/150/150",
|
116
116
|
sx: {
|
117
117
|
width: '150px',
|
@@ -125,7 +125,7 @@ exports.FallbackImage = FallbackImage;
|
|
125
125
|
|
126
126
|
var WithSkeletonLoadSuccess = function WithSkeletonLoadSuccess(_ref2) {
|
127
127
|
var useLocalSrc = _ref2.useLocalSrc;
|
128
|
-
var imageSrc = useLocalSrc ?
|
128
|
+
var imageSrc = useLocalSrc ? _images.pingImg : 'https://deelay.me/3000/https://picsum.photos/150/150';
|
129
129
|
return (0, _react2.jsx)(_["default"], {
|
130
130
|
src: imageSrc,
|
131
131
|
sx: {
|
@@ -155,13 +155,13 @@ var WithSkeletonLoadTimeout = function WithSkeletonLoadTimeout() {
|
|
155
155
|
exports.WithSkeletonLoadTimeout = WithSkeletonLoadTimeout;
|
156
156
|
|
157
157
|
var UpdatingImageSrc = function UpdatingImageSrc() {
|
158
|
-
var _useState = (0, _react.useState)(
|
158
|
+
var _useState = (0, _react.useState)(_images.chiefIdentityChampions),
|
159
159
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
160
160
|
image = _useState2[0],
|
161
161
|
setImage = _useState2[1];
|
162
162
|
|
163
163
|
var handleButtonPress = function handleButtonPress() {
|
164
|
-
var src = image ===
|
164
|
+
var src = image === _images.pingImg ? _images.chiefIdentityChampions : _images.pingImg;
|
165
165
|
setImage(src);
|
166
166
|
};
|
167
167
|
|
@@ -178,7 +178,7 @@ var UpdatingImageSrc = function UpdatingImageSrc() {
|
|
178
178
|
height: '200px',
|
179
179
|
mt: '25px'
|
180
180
|
},
|
181
|
-
alt: image ===
|
181
|
+
alt: image === _images.pingImg ? 'Ping identity square logo' : 'Terry Crews in a red suite'
|
182
182
|
}));
|
183
183
|
};
|
184
184
|
|
@@ -0,0 +1,339 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
6
|
+
|
7
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
8
|
+
|
9
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
10
|
+
|
11
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
12
|
+
|
13
|
+
_Object$defineProperty(exports, "__esModule", {
|
14
|
+
value: true
|
15
|
+
});
|
16
|
+
|
17
|
+
exports["default"] = exports.Default = void 0;
|
18
|
+
|
19
|
+
var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
|
20
|
+
|
21
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
22
|
+
|
23
|
+
var _react = _interopRequireWildcard(require("react"));
|
24
|
+
|
25
|
+
var _focus = require("@react-aria/focus");
|
26
|
+
|
27
|
+
var _collections = require("@react-stately/collections");
|
28
|
+
|
29
|
+
var _CloseIcon = _interopRequireDefault(require("mdi-react/CloseIcon"));
|
30
|
+
|
31
|
+
var _MoreVertIcon = _interopRequireDefault(require("mdi-react/MoreVertIcon"));
|
32
|
+
|
33
|
+
var _PencilIcon = _interopRequireDefault(require("mdi-react/PencilIcon"));
|
34
|
+
|
35
|
+
var _index = require("../index");
|
36
|
+
|
37
|
+
var _hooks = require("../hooks");
|
38
|
+
|
39
|
+
var _images = require("../utils/devUtils/constants/images");
|
40
|
+
|
41
|
+
var _react2 = require("@emotion/react");
|
42
|
+
|
43
|
+
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); }
|
44
|
+
|
45
|
+
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; }
|
46
|
+
|
47
|
+
var _default = {
|
48
|
+
title: 'Recipes/List with Panel'
|
49
|
+
};
|
50
|
+
exports["default"] = _default;
|
51
|
+
var items = [{
|
52
|
+
email: 'dburkitt5@columbia.edu',
|
53
|
+
firstName: 'Nicola',
|
54
|
+
lastName: 'Burkitt',
|
55
|
+
avatar: _images.pingImg
|
56
|
+
}, {
|
57
|
+
email: 'idixie2@elegantthemes.com',
|
58
|
+
firstName: 'Cacilia',
|
59
|
+
lastName: 'Dixie',
|
60
|
+
avatar: _images.pingImg
|
61
|
+
}, {
|
62
|
+
email: 'dfowler0@rambler.ru',
|
63
|
+
firstName: 'Stavro',
|
64
|
+
lastName: 'Fowler',
|
65
|
+
avatar: _images.pingImg
|
66
|
+
}, {
|
67
|
+
email: 'jgolde8@jimdo.com',
|
68
|
+
firstName: 'Celisse',
|
69
|
+
lastName: 'Golde',
|
70
|
+
avatar: _images.pingImg
|
71
|
+
}, {
|
72
|
+
email: 'shearst9@answers.com',
|
73
|
+
firstName: 'Jeth',
|
74
|
+
lastName: 'Hearst',
|
75
|
+
avatar: _images.pingImg
|
76
|
+
}, {
|
77
|
+
email: 'ajinaa@mapquest.com',
|
78
|
+
firstName: 'Kaycee',
|
79
|
+
lastName: 'Jina',
|
80
|
+
avatar: _images.pingImg
|
81
|
+
}, {
|
82
|
+
email: 'vmalster4@biblegateway.com',
|
83
|
+
firstName: 'Lorry',
|
84
|
+
lastName: 'Malster',
|
85
|
+
avatar: _images.pingImg
|
86
|
+
}, {
|
87
|
+
email: 'yphipp6@yellowpages.com',
|
88
|
+
firstName: 'Stanley',
|
89
|
+
lastName: 'Phipp',
|
90
|
+
avatar: _images.pingImg
|
91
|
+
}, {
|
92
|
+
email: 'mskilbeck3@bbc.co.uk',
|
93
|
+
firstName: 'Gradey',
|
94
|
+
lastName: 'Skilbeck',
|
95
|
+
avatar: _images.pingImg
|
96
|
+
}, {
|
97
|
+
email: 'dstebbing1@msu.edu',
|
98
|
+
firstName: 'Marnia',
|
99
|
+
lastName: 'Stebbing',
|
100
|
+
avatar: _images.pingImg
|
101
|
+
}, {
|
102
|
+
email: 'lsterley7@lulu.com',
|
103
|
+
firstName: 'Joshua',
|
104
|
+
lastName: 'Sterley',
|
105
|
+
avatar: _images.pingImg
|
106
|
+
}, {
|
107
|
+
email: 'luttleyb@hugedomains.com',
|
108
|
+
firstName: 'Jarrod',
|
109
|
+
lastName: 'Uttley',
|
110
|
+
avatar: _images.pingImg
|
111
|
+
}, {
|
112
|
+
email: 'lidelc@yelp.com',
|
113
|
+
firstName: 'Andromache',
|
114
|
+
lastName: 'Idel',
|
115
|
+
avatar: _images.pingImg,
|
116
|
+
hasSeparator: false
|
117
|
+
}];
|
118
|
+
|
119
|
+
var ListElement = function ListElement(_ref) {
|
120
|
+
var item = _ref.item,
|
121
|
+
onClosePanel = _ref.onClosePanel;
|
122
|
+
return (0, _react2.jsx)(_index.Box, {
|
123
|
+
isRow: true,
|
124
|
+
minHeight: "60px"
|
125
|
+
}, (0, _react2.jsx)(_index.Box, {
|
126
|
+
isRow: true,
|
127
|
+
mr: "auto",
|
128
|
+
alignItems: "center"
|
129
|
+
}, (0, _react2.jsx)(_index.Avatar, {
|
130
|
+
mr: "md",
|
131
|
+
sx: {
|
132
|
+
width: '25px',
|
133
|
+
height: '25px'
|
134
|
+
},
|
135
|
+
src: item.avatar
|
136
|
+
}), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Text, {
|
137
|
+
variant: "bodyStrong",
|
138
|
+
alignSelf: "start"
|
139
|
+
}, item.lastName, ", ", item.firstName), (0, _react2.jsx)(_index.Text, {
|
140
|
+
sx: {
|
141
|
+
fontSize: 'sm',
|
142
|
+
my: '1px',
|
143
|
+
lineHeight: '16px'
|
144
|
+
},
|
145
|
+
variant: "subtitle",
|
146
|
+
alignSelf: "start"
|
147
|
+
}, item.email))), (0, _react2.jsx)(_index.Box, {
|
148
|
+
isRow: true,
|
149
|
+
alignSelf: "center"
|
150
|
+
}, (0, _react2.jsx)(_index.SwitchField, {
|
151
|
+
"aria-label": "active user",
|
152
|
+
isDefaultSelected: true,
|
153
|
+
alignSelf: "center",
|
154
|
+
mr: "sm"
|
155
|
+
}), (0, _react2.jsx)(_index.PopoverMenu, null, (0, _react2.jsx)(_index.IconButton, {
|
156
|
+
"aria-label": "more icon button",
|
157
|
+
mr: onClosePanel ? 'sm' : 0
|
158
|
+
}, (0, _react2.jsx)(_MoreVertIcon["default"], null)), (0, _react2.jsx)(_index.Menu, null, (0, _react2.jsx)(_collections.Item, {
|
159
|
+
key: "enable"
|
160
|
+
}, "Enable user"), (0, _react2.jsx)(_collections.Item, {
|
161
|
+
key: "disable"
|
162
|
+
}, "Disable user"), (0, _react2.jsx)(_collections.Item, {
|
163
|
+
key: "delete"
|
164
|
+
}, "Delete user"))), onClosePanel && (0, _react2.jsx)(_index.IconButton, {
|
165
|
+
"aria-label": "close icon button",
|
166
|
+
onPress: onClosePanel
|
167
|
+
}, (0, _react2.jsx)(_CloseIcon["default"], null))));
|
168
|
+
};
|
169
|
+
|
170
|
+
var Default = function Default() {
|
171
|
+
var _useState = (0, _react.useState)(),
|
172
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
173
|
+
selectedItemId = _useState2[0],
|
174
|
+
setSelectedItemId = _useState2[1];
|
175
|
+
|
176
|
+
var _useState3 = (0, _react.useState)(),
|
177
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
178
|
+
selectedKeys = _useState4[0],
|
179
|
+
setSelectedKeys = _useState4[1];
|
180
|
+
|
181
|
+
var _useOverlayPanelState = (0, _hooks.useOverlayPanelState)(),
|
182
|
+
panelState = _useOverlayPanelState.state,
|
183
|
+
onPanelClose = _useOverlayPanelState.onClose;
|
184
|
+
|
185
|
+
var panelTriggerRef = (0, _react.useRef)();
|
186
|
+
|
187
|
+
var closePanelHandler = function closePanelHandler() {
|
188
|
+
onPanelClose(panelState, panelTriggerRef);
|
189
|
+
setSelectedItemId(-1);
|
190
|
+
setSelectedKeys([]);
|
191
|
+
};
|
192
|
+
|
193
|
+
var selectItemHandler = function selectItemHandler(e) {
|
194
|
+
if (e.size) {
|
195
|
+
setSelectedItemId((0, _findIndex["default"])(items).call(items, function (item) {
|
196
|
+
return item.email === e.currentKey;
|
197
|
+
}));
|
198
|
+
setSelectedKeys([e.currentKey]);
|
199
|
+
panelState.open();
|
200
|
+
} else {
|
201
|
+
closePanelHandler();
|
202
|
+
}
|
203
|
+
};
|
204
|
+
|
205
|
+
return (0, _react2.jsx)(_index.Box, {
|
206
|
+
px: "lg",
|
207
|
+
py: "lg",
|
208
|
+
bg: "accent.99"
|
209
|
+
}, (0, _react2.jsx)(_index.SearchField, {
|
210
|
+
mb: "sm",
|
211
|
+
width: "400px",
|
212
|
+
placeholder: "Search",
|
213
|
+
"aria-label": "search"
|
214
|
+
}), (0, _react2.jsx)(_index.ListView, {
|
215
|
+
items: items,
|
216
|
+
onSelectionChange: selectItemHandler,
|
217
|
+
ref: panelTriggerRef,
|
218
|
+
selectedKeys: selectedKeys
|
219
|
+
}, function (item) {
|
220
|
+
return (0, _react2.jsx)(_collections.Item, {
|
221
|
+
key: item.email,
|
222
|
+
textValue: item.email,
|
223
|
+
hasSeparator: item.hasSeparator,
|
224
|
+
listItemProps: {
|
225
|
+
pl: 15,
|
226
|
+
minHeight: 75
|
227
|
+
}
|
228
|
+
}, (0, _react2.jsx)(ListElement, {
|
229
|
+
item: item
|
230
|
+
}));
|
231
|
+
}), (0, _react2.jsx)(_index.OverlayPanel, {
|
232
|
+
isOpen: panelState.isOpen,
|
233
|
+
state: panelState,
|
234
|
+
triggerRef: panelTriggerRef,
|
235
|
+
p: 0
|
236
|
+
}, panelState.isOpen && (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_focus.FocusScope, {
|
237
|
+
contain: true,
|
238
|
+
restoreFocus: true,
|
239
|
+
autoFocus: true
|
240
|
+
}, (0, _react2.jsx)(_index.Box, {
|
241
|
+
px: "md",
|
242
|
+
bg: "accent.99",
|
243
|
+
justifyContent: "center"
|
244
|
+
}, (0, _react2.jsx)(ListElement, {
|
245
|
+
item: selectedItemId >= 0 ? items[selectedItemId] : [],
|
246
|
+
onClosePanel: closePanelHandler
|
247
|
+
})), (0, _react2.jsx)(_index.Separator, {
|
248
|
+
margin: 0,
|
249
|
+
bg: "accent.90"
|
250
|
+
}), (0, _react2.jsx)(_index.Box, {
|
251
|
+
px: "lg",
|
252
|
+
pt: "xs"
|
253
|
+
}, (0, _react2.jsx)(_index.Tabs, {
|
254
|
+
tabListProps: {
|
255
|
+
justifyContent: 'center'
|
256
|
+
},
|
257
|
+
tabPanelProps: {
|
258
|
+
sx: {
|
259
|
+
position: 'relative'
|
260
|
+
}
|
261
|
+
}
|
262
|
+
}, (0, _react2.jsx)(_index.Tab, {
|
263
|
+
title: "Profile"
|
264
|
+
}, selectedItemId >= 0 && (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.IconButton, {
|
265
|
+
sx: {
|
266
|
+
position: 'absolute',
|
267
|
+
top: 0,
|
268
|
+
right: 0
|
269
|
+
}
|
270
|
+
}, (0, _react2.jsx)(_PencilIcon["default"], {
|
271
|
+
size: 20
|
272
|
+
})), (0, _react2.jsx)(_index.Text, {
|
273
|
+
sx: {
|
274
|
+
fontSize: 'sm',
|
275
|
+
fontWeight: 3,
|
276
|
+
lineHeight: '16px'
|
277
|
+
},
|
278
|
+
variant: "base",
|
279
|
+
mb: "xs"
|
280
|
+
}, "Full Name"), (0, _react2.jsx)(_index.Text, {
|
281
|
+
sx: {
|
282
|
+
fontWeight: 0,
|
283
|
+
lineHeight: '18px'
|
284
|
+
},
|
285
|
+
variant: "base",
|
286
|
+
mb: "md"
|
287
|
+
}, items[selectedItemId].firstName, " ", items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
|
288
|
+
sx: {
|
289
|
+
fontSize: 'sm',
|
290
|
+
fontWeight: 3,
|
291
|
+
lineHeight: '16px'
|
292
|
+
},
|
293
|
+
variant: "base",
|
294
|
+
mb: "xs"
|
295
|
+
}, "First Name"), (0, _react2.jsx)(_index.Text, {
|
296
|
+
sx: {
|
297
|
+
fontWeight: 0,
|
298
|
+
lineHeight: '18px'
|
299
|
+
},
|
300
|
+
variant: "base",
|
301
|
+
mb: "md"
|
302
|
+
}, items[selectedItemId].firstName), (0, _react2.jsx)(_index.Text, {
|
303
|
+
sx: {
|
304
|
+
fontSize: 'sm',
|
305
|
+
fontWeight: 3,
|
306
|
+
lineHeight: '16px'
|
307
|
+
},
|
308
|
+
variant: "base",
|
309
|
+
mb: "xs"
|
310
|
+
}, "Last Name"), (0, _react2.jsx)(_index.Text, {
|
311
|
+
sx: {
|
312
|
+
fontWeight: 0,
|
313
|
+
lineHeight: '18px'
|
314
|
+
},
|
315
|
+
variant: "base",
|
316
|
+
mb: "md"
|
317
|
+
}, items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
|
318
|
+
sx: {
|
319
|
+
fontSize: 'sm',
|
320
|
+
fontWeight: 3,
|
321
|
+
lineHeight: '16px'
|
322
|
+
},
|
323
|
+
variant: "base",
|
324
|
+
mb: "xs"
|
325
|
+
}, "Email"), (0, _react2.jsx)(_index.Text, {
|
326
|
+
sx: {
|
327
|
+
fontWeight: 0,
|
328
|
+
lineHeight: '18px'
|
329
|
+
},
|
330
|
+
variant: "base",
|
331
|
+
mb: "md"
|
332
|
+
}, items[selectedItemId].email))), (0, _react2.jsx)(_index.Tab, {
|
333
|
+
title: "Group Memberships"
|
334
|
+
}, (0, _react2.jsx)(_index.Text, null, "Group Memberships")), (0, _react2.jsx)(_index.Tab, {
|
335
|
+
title: "Account Info"
|
336
|
+
}, (0, _react2.jsx)(_index.Text, null, "Account Info"))))))));
|
337
|
+
};
|
338
|
+
|
339
|
+
exports.Default = Default;
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
2
|
import React from 'react';
|
3
|
-
import faker from 'faker';
|
4
3
|
import Avatar from '.';
|
4
|
+
import { pingImg } from '../../utils/devUtils/constants/images';
|
5
5
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
6
6
|
export default {
|
7
7
|
title: 'Avatar',
|
@@ -11,7 +11,7 @@ export default {
|
|
11
11
|
control: {
|
12
12
|
type: 'none'
|
13
13
|
},
|
14
|
-
defaultValue:
|
14
|
+
defaultValue: pingImg
|
15
15
|
}
|
16
16
|
}
|
17
17
|
};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
2
|
import React from 'react';
|
3
|
-
import faker from 'faker';
|
3
|
+
import { faker } from '@faker-js/faker';
|
4
4
|
import axeTest from '../../utils/testUtils/testAxe';
|
5
5
|
import { render, screen } from '../../utils/testUtils/testWrapper';
|
6
6
|
import Avatar from '.';
|
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
|
3
3
|
import React, { useState } from 'react';
|
4
4
|
import isChromatic from 'chromatic/isChromatic';
|
5
5
|
import Image from '.';
|
6
|
-
import { chiefIdentityChampions, pingImg } from '
|
6
|
+
import { chiefIdentityChampions, pingImg } from '../../utils/devUtils/constants/images';
|
7
7
|
import { htmlElements } from '../../utils/devUtils/constants/htmlElements';
|
8
8
|
import { Box, Button } from '../../index';
|
9
9
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
@@ -0,0 +1,302 @@
|
|
1
|
+
import _findIndexInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find-index";
|
2
|
+
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
3
|
+
import React, { useRef, useState } from 'react';
|
4
|
+
import { FocusScope } from '@react-aria/focus';
|
5
|
+
import { Item } from '@react-stately/collections';
|
6
|
+
import CloseIcon from 'mdi-react/CloseIcon';
|
7
|
+
import MoreVertIcon from 'mdi-react/MoreVertIcon';
|
8
|
+
import PencilIcon from 'mdi-react/PencilIcon';
|
9
|
+
import { Avatar, Box, IconButton, ListView, Menu, OverlayPanel, PopoverMenu, SearchField, Separator, SwitchField, Tab, Tabs, Text } from '../index';
|
10
|
+
import { useOverlayPanelState } from '../hooks';
|
11
|
+
import { pingImg } from '../utils/devUtils/constants/images';
|
12
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
13
|
+
export default {
|
14
|
+
title: 'Recipes/List with Panel'
|
15
|
+
};
|
16
|
+
var items = [{
|
17
|
+
email: 'dburkitt5@columbia.edu',
|
18
|
+
firstName: 'Nicola',
|
19
|
+
lastName: 'Burkitt',
|
20
|
+
avatar: pingImg
|
21
|
+
}, {
|
22
|
+
email: 'idixie2@elegantthemes.com',
|
23
|
+
firstName: 'Cacilia',
|
24
|
+
lastName: 'Dixie',
|
25
|
+
avatar: pingImg
|
26
|
+
}, {
|
27
|
+
email: 'dfowler0@rambler.ru',
|
28
|
+
firstName: 'Stavro',
|
29
|
+
lastName: 'Fowler',
|
30
|
+
avatar: pingImg
|
31
|
+
}, {
|
32
|
+
email: 'jgolde8@jimdo.com',
|
33
|
+
firstName: 'Celisse',
|
34
|
+
lastName: 'Golde',
|
35
|
+
avatar: pingImg
|
36
|
+
}, {
|
37
|
+
email: 'shearst9@answers.com',
|
38
|
+
firstName: 'Jeth',
|
39
|
+
lastName: 'Hearst',
|
40
|
+
avatar: pingImg
|
41
|
+
}, {
|
42
|
+
email: 'ajinaa@mapquest.com',
|
43
|
+
firstName: 'Kaycee',
|
44
|
+
lastName: 'Jina',
|
45
|
+
avatar: pingImg
|
46
|
+
}, {
|
47
|
+
email: 'vmalster4@biblegateway.com',
|
48
|
+
firstName: 'Lorry',
|
49
|
+
lastName: 'Malster',
|
50
|
+
avatar: pingImg
|
51
|
+
}, {
|
52
|
+
email: 'yphipp6@yellowpages.com',
|
53
|
+
firstName: 'Stanley',
|
54
|
+
lastName: 'Phipp',
|
55
|
+
avatar: pingImg
|
56
|
+
}, {
|
57
|
+
email: 'mskilbeck3@bbc.co.uk',
|
58
|
+
firstName: 'Gradey',
|
59
|
+
lastName: 'Skilbeck',
|
60
|
+
avatar: pingImg
|
61
|
+
}, {
|
62
|
+
email: 'dstebbing1@msu.edu',
|
63
|
+
firstName: 'Marnia',
|
64
|
+
lastName: 'Stebbing',
|
65
|
+
avatar: pingImg
|
66
|
+
}, {
|
67
|
+
email: 'lsterley7@lulu.com',
|
68
|
+
firstName: 'Joshua',
|
69
|
+
lastName: 'Sterley',
|
70
|
+
avatar: pingImg
|
71
|
+
}, {
|
72
|
+
email: 'luttleyb@hugedomains.com',
|
73
|
+
firstName: 'Jarrod',
|
74
|
+
lastName: 'Uttley',
|
75
|
+
avatar: pingImg
|
76
|
+
}, {
|
77
|
+
email: 'lidelc@yelp.com',
|
78
|
+
firstName: 'Andromache',
|
79
|
+
lastName: 'Idel',
|
80
|
+
avatar: pingImg,
|
81
|
+
hasSeparator: false
|
82
|
+
}];
|
83
|
+
|
84
|
+
var ListElement = function ListElement(_ref) {
|
85
|
+
var item = _ref.item,
|
86
|
+
onClosePanel = _ref.onClosePanel;
|
87
|
+
return ___EmotionJSX(Box, {
|
88
|
+
isRow: true,
|
89
|
+
minHeight: "60px"
|
90
|
+
}, ___EmotionJSX(Box, {
|
91
|
+
isRow: true,
|
92
|
+
mr: "auto",
|
93
|
+
alignItems: "center"
|
94
|
+
}, ___EmotionJSX(Avatar, {
|
95
|
+
mr: "md",
|
96
|
+
sx: {
|
97
|
+
width: '25px',
|
98
|
+
height: '25px'
|
99
|
+
},
|
100
|
+
src: item.avatar
|
101
|
+
}), ___EmotionJSX(Box, null, ___EmotionJSX(Text, {
|
102
|
+
variant: "bodyStrong",
|
103
|
+
alignSelf: "start"
|
104
|
+
}, item.lastName, ", ", item.firstName), ___EmotionJSX(Text, {
|
105
|
+
sx: {
|
106
|
+
fontSize: 'sm',
|
107
|
+
my: '1px',
|
108
|
+
lineHeight: '16px'
|
109
|
+
},
|
110
|
+
variant: "subtitle",
|
111
|
+
alignSelf: "start"
|
112
|
+
}, item.email))), ___EmotionJSX(Box, {
|
113
|
+
isRow: true,
|
114
|
+
alignSelf: "center"
|
115
|
+
}, ___EmotionJSX(SwitchField, {
|
116
|
+
"aria-label": "active user",
|
117
|
+
isDefaultSelected: true,
|
118
|
+
alignSelf: "center",
|
119
|
+
mr: "sm"
|
120
|
+
}), ___EmotionJSX(PopoverMenu, null, ___EmotionJSX(IconButton, {
|
121
|
+
"aria-label": "more icon button",
|
122
|
+
mr: onClosePanel ? 'sm' : 0
|
123
|
+
}, ___EmotionJSX(MoreVertIcon, null)), ___EmotionJSX(Menu, null, ___EmotionJSX(Item, {
|
124
|
+
key: "enable"
|
125
|
+
}, "Enable user"), ___EmotionJSX(Item, {
|
126
|
+
key: "disable"
|
127
|
+
}, "Disable user"), ___EmotionJSX(Item, {
|
128
|
+
key: "delete"
|
129
|
+
}, "Delete user"))), onClosePanel && ___EmotionJSX(IconButton, {
|
130
|
+
"aria-label": "close icon button",
|
131
|
+
onPress: onClosePanel
|
132
|
+
}, ___EmotionJSX(CloseIcon, null))));
|
133
|
+
};
|
134
|
+
|
135
|
+
export var Default = function Default() {
|
136
|
+
var _useState = useState(),
|
137
|
+
_useState2 = _slicedToArray(_useState, 2),
|
138
|
+
selectedItemId = _useState2[0],
|
139
|
+
setSelectedItemId = _useState2[1];
|
140
|
+
|
141
|
+
var _useState3 = useState(),
|
142
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
143
|
+
selectedKeys = _useState4[0],
|
144
|
+
setSelectedKeys = _useState4[1];
|
145
|
+
|
146
|
+
var _useOverlayPanelState = useOverlayPanelState(),
|
147
|
+
panelState = _useOverlayPanelState.state,
|
148
|
+
onPanelClose = _useOverlayPanelState.onClose;
|
149
|
+
|
150
|
+
var panelTriggerRef = useRef();
|
151
|
+
|
152
|
+
var closePanelHandler = function closePanelHandler() {
|
153
|
+
onPanelClose(panelState, panelTriggerRef);
|
154
|
+
setSelectedItemId(-1);
|
155
|
+
setSelectedKeys([]);
|
156
|
+
};
|
157
|
+
|
158
|
+
var selectItemHandler = function selectItemHandler(e) {
|
159
|
+
if (e.size) {
|
160
|
+
setSelectedItemId(_findIndexInstanceProperty(items).call(items, function (item) {
|
161
|
+
return item.email === e.currentKey;
|
162
|
+
}));
|
163
|
+
setSelectedKeys([e.currentKey]);
|
164
|
+
panelState.open();
|
165
|
+
} else {
|
166
|
+
closePanelHandler();
|
167
|
+
}
|
168
|
+
};
|
169
|
+
|
170
|
+
return ___EmotionJSX(Box, {
|
171
|
+
px: "lg",
|
172
|
+
py: "lg",
|
173
|
+
bg: "accent.99"
|
174
|
+
}, ___EmotionJSX(SearchField, {
|
175
|
+
mb: "sm",
|
176
|
+
width: "400px",
|
177
|
+
placeholder: "Search",
|
178
|
+
"aria-label": "search"
|
179
|
+
}), ___EmotionJSX(ListView, {
|
180
|
+
items: items,
|
181
|
+
onSelectionChange: selectItemHandler,
|
182
|
+
ref: panelTriggerRef,
|
183
|
+
selectedKeys: selectedKeys
|
184
|
+
}, function (item) {
|
185
|
+
return ___EmotionJSX(Item, {
|
186
|
+
key: item.email,
|
187
|
+
textValue: item.email,
|
188
|
+
hasSeparator: item.hasSeparator,
|
189
|
+
listItemProps: {
|
190
|
+
pl: 15,
|
191
|
+
minHeight: 75
|
192
|
+
}
|
193
|
+
}, ___EmotionJSX(ListElement, {
|
194
|
+
item: item
|
195
|
+
}));
|
196
|
+
}), ___EmotionJSX(OverlayPanel, {
|
197
|
+
isOpen: panelState.isOpen,
|
198
|
+
state: panelState,
|
199
|
+
triggerRef: panelTriggerRef,
|
200
|
+
p: 0
|
201
|
+
}, panelState.isOpen && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(FocusScope, {
|
202
|
+
contain: true,
|
203
|
+
restoreFocus: true,
|
204
|
+
autoFocus: true
|
205
|
+
}, ___EmotionJSX(Box, {
|
206
|
+
px: "md",
|
207
|
+
bg: "accent.99",
|
208
|
+
justifyContent: "center"
|
209
|
+
}, ___EmotionJSX(ListElement, {
|
210
|
+
item: selectedItemId >= 0 ? items[selectedItemId] : [],
|
211
|
+
onClosePanel: closePanelHandler
|
212
|
+
})), ___EmotionJSX(Separator, {
|
213
|
+
margin: 0,
|
214
|
+
bg: "accent.90"
|
215
|
+
}), ___EmotionJSX(Box, {
|
216
|
+
px: "lg",
|
217
|
+
pt: "xs"
|
218
|
+
}, ___EmotionJSX(Tabs, {
|
219
|
+
tabListProps: {
|
220
|
+
justifyContent: 'center'
|
221
|
+
},
|
222
|
+
tabPanelProps: {
|
223
|
+
sx: {
|
224
|
+
position: 'relative'
|
225
|
+
}
|
226
|
+
}
|
227
|
+
}, ___EmotionJSX(Tab, {
|
228
|
+
title: "Profile"
|
229
|
+
}, selectedItemId >= 0 && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(IconButton, {
|
230
|
+
sx: {
|
231
|
+
position: 'absolute',
|
232
|
+
top: 0,
|
233
|
+
right: 0
|
234
|
+
}
|
235
|
+
}, ___EmotionJSX(PencilIcon, {
|
236
|
+
size: 20
|
237
|
+
})), ___EmotionJSX(Text, {
|
238
|
+
sx: {
|
239
|
+
fontSize: 'sm',
|
240
|
+
fontWeight: 3,
|
241
|
+
lineHeight: '16px'
|
242
|
+
},
|
243
|
+
variant: "base",
|
244
|
+
mb: "xs"
|
245
|
+
}, "Full Name"), ___EmotionJSX(Text, {
|
246
|
+
sx: {
|
247
|
+
fontWeight: 0,
|
248
|
+
lineHeight: '18px'
|
249
|
+
},
|
250
|
+
variant: "base",
|
251
|
+
mb: "md"
|
252
|
+
}, items[selectedItemId].firstName, " ", items[selectedItemId].lastName), ___EmotionJSX(Text, {
|
253
|
+
sx: {
|
254
|
+
fontSize: 'sm',
|
255
|
+
fontWeight: 3,
|
256
|
+
lineHeight: '16px'
|
257
|
+
},
|
258
|
+
variant: "base",
|
259
|
+
mb: "xs"
|
260
|
+
}, "First Name"), ___EmotionJSX(Text, {
|
261
|
+
sx: {
|
262
|
+
fontWeight: 0,
|
263
|
+
lineHeight: '18px'
|
264
|
+
},
|
265
|
+
variant: "base",
|
266
|
+
mb: "md"
|
267
|
+
}, items[selectedItemId].firstName), ___EmotionJSX(Text, {
|
268
|
+
sx: {
|
269
|
+
fontSize: 'sm',
|
270
|
+
fontWeight: 3,
|
271
|
+
lineHeight: '16px'
|
272
|
+
},
|
273
|
+
variant: "base",
|
274
|
+
mb: "xs"
|
275
|
+
}, "Last Name"), ___EmotionJSX(Text, {
|
276
|
+
sx: {
|
277
|
+
fontWeight: 0,
|
278
|
+
lineHeight: '18px'
|
279
|
+
},
|
280
|
+
variant: "base",
|
281
|
+
mb: "md"
|
282
|
+
}, items[selectedItemId].lastName), ___EmotionJSX(Text, {
|
283
|
+
sx: {
|
284
|
+
fontSize: 'sm',
|
285
|
+
fontWeight: 3,
|
286
|
+
lineHeight: '16px'
|
287
|
+
},
|
288
|
+
variant: "base",
|
289
|
+
mb: "xs"
|
290
|
+
}, "Email"), ___EmotionJSX(Text, {
|
291
|
+
sx: {
|
292
|
+
fontWeight: 0,
|
293
|
+
lineHeight: '18px'
|
294
|
+
},
|
295
|
+
variant: "base",
|
296
|
+
mb: "md"
|
297
|
+
}, items[selectedItemId].email))), ___EmotionJSX(Tab, {
|
298
|
+
title: "Group Memberships"
|
299
|
+
}, ___EmotionJSX(Text, null, "Group Memberships")), ___EmotionJSX(Tab, {
|
300
|
+
title: "Account Info"
|
301
|
+
}, ___EmotionJSX(Text, null, "Account Info"))))))));
|
302
|
+
};
|
File without changes
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@pingux/astro",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.25.0-alpha.0",
|
4
4
|
"description": "PingUX themeable React component library",
|
5
5
|
"author": "ux-development@pingidentity.com",
|
6
6
|
"license": "Apache-2.0",
|
@@ -36,6 +36,7 @@
|
|
36
36
|
"@emotion/babel-preset-css-prop": "^11.2.0",
|
37
37
|
"@emotion/cache": "^11.4.0",
|
38
38
|
"@emotion/eslint-plugin": "^11.2.0",
|
39
|
+
"@faker-js/faker": "^7.1.0",
|
39
40
|
"@storybook/addon-a11y": "^6.4.19",
|
40
41
|
"@storybook/addon-actions": "^6.4.19",
|
41
42
|
"@storybook/addon-console": "^1.2.3",
|
@@ -57,7 +58,6 @@
|
|
57
58
|
"eslint-plugin-jest-dom": "^3.9.0",
|
58
59
|
"eslint-plugin-react-hooks": "^2.5.1",
|
59
60
|
"eslint-plugin-testing-library": "^4.6.0",
|
60
|
-
"faker": "5.1.0",
|
61
61
|
"jest-axe": "^5.0.1",
|
62
62
|
"jest-emotion": "^11.0.0",
|
63
63
|
"mutationobserver-shim": "^0.3.7",
|