@pingux/astro 2.40.0-alpha.0 → 2.40.0-alpha.2
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.
@@ -15,12 +15,16 @@ _Object$defineProperty(exports, "__esModule", {
|
|
15
15
|
value: true
|
16
16
|
});
|
17
17
|
exports["default"] = exports.Default = void 0;
|
18
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
18
19
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
19
20
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
20
21
|
var _react = _interopRequireWildcard(require("react"));
|
22
|
+
var _reactAria = require("react-aria");
|
21
23
|
var _CheckIcon = _interopRequireDefault(require("@pingux/mdi-react/CheckIcon"));
|
22
24
|
var _CloseIcon = _interopRequireDefault(require("@pingux/mdi-react/CloseIcon"));
|
25
|
+
var _interactions = require("@react-aria/interactions");
|
23
26
|
var _storybookAddonDesigns = require("storybook-addon-designs");
|
27
|
+
var _hooks = require("../hooks");
|
24
28
|
var _index = require("../index");
|
25
29
|
var _figmaLinks = require("../utils/designUtils/figmaLinks");
|
26
30
|
var _react2 = require("@emotion/react");
|
@@ -50,6 +54,14 @@ var inputProps = {
|
|
50
54
|
ariaLabel: 'Example aria label'
|
51
55
|
};
|
52
56
|
var sx = {
|
57
|
+
containerFocused: {
|
58
|
+
padding: 0,
|
59
|
+
position: 'relative',
|
60
|
+
borderColor: 'accent.60',
|
61
|
+
borderStyle: 'solid',
|
62
|
+
borderRadius: '3px 2px 2px 3px',
|
63
|
+
borderWidth: '1px'
|
64
|
+
},
|
53
65
|
editablePreview: {
|
54
66
|
whiteSpace: 'pre-line',
|
55
67
|
width: '100%',
|
@@ -63,37 +75,61 @@ var sx = {
|
|
63
75
|
fontSize: 'md',
|
64
76
|
fontWeight: 1,
|
65
77
|
lineHeight: '18px',
|
78
|
+
'&:hover': {
|
79
|
+
cursor: 'pointer',
|
80
|
+
bg: 'accent.95'
|
81
|
+
},
|
66
82
|
'&:focus': {
|
67
83
|
outline: 'none',
|
68
|
-
|
84
|
+
borderRadius: '2px',
|
69
85
|
borderColor: 'active',
|
86
|
+
borderWidth: '2px',
|
87
|
+
borderStyle: 'solid',
|
88
|
+
paddingLeft: '3px',
|
89
|
+
paddingBottom: '4px'
|
90
|
+
},
|
91
|
+
'&.is-pressed': {
|
70
92
|
borderWidth: '1px',
|
71
|
-
|
93
|
+
paddingLeft: '4px',
|
94
|
+
paddingBottom: 'xs'
|
72
95
|
}
|
73
96
|
},
|
74
97
|
editableInputWrapper: {
|
75
|
-
marginRight: '
|
76
|
-
flexGrow: 1
|
98
|
+
marginRight: '36px',
|
99
|
+
flexGrow: 1,
|
100
|
+
'&.is-focused textarea': {
|
101
|
+
outline: 'none'
|
102
|
+
},
|
103
|
+
'& label': {
|
104
|
+
margin: 0
|
105
|
+
},
|
106
|
+
'& textarea': {
|
107
|
+
minHeight: '45px',
|
108
|
+
height: '45px',
|
109
|
+
padding: '13px 35px 15px 18px',
|
110
|
+
lineHeight: '100%',
|
111
|
+
resize: 'vertical'
|
112
|
+
}
|
77
113
|
},
|
78
114
|
editableInpuTextArea: {
|
79
115
|
maxHeight: '150px'
|
80
116
|
},
|
81
117
|
editableControlWrapper: {
|
82
118
|
position: 'absolute',
|
83
|
-
right: '
|
84
|
-
top: '
|
119
|
+
right: '5px',
|
120
|
+
top: 'calc(50% - 13px)',
|
85
121
|
alignItems: 'center',
|
86
122
|
justifyContent: 'space-between'
|
87
123
|
},
|
88
124
|
editableControlIconButton: {
|
89
|
-
marginRight: '
|
125
|
+
marginRight: '20px',
|
90
126
|
width: '20px',
|
91
127
|
height: '20px'
|
92
128
|
}
|
93
129
|
};
|
94
130
|
var Default = function Default() {
|
95
131
|
return (0, _react2.jsx)(Editable, {
|
96
|
-
value: "
|
132
|
+
value: "Inline Editable text"
|
97
133
|
}, (0, _react2.jsx)(EditablePreview, null), (0, _react2.jsx)(EditableInput, {
|
98
134
|
inputProps: inputProps
|
99
135
|
}), (0, _react2.jsx)(EditableControl, {
|
@@ -118,6 +154,7 @@ var Editable = function Editable(props) {
|
|
118
154
|
isEditing = props.isEditing;
|
119
155
|
var editableContextValue = {
|
120
156
|
isEditing: isEditing || false,
|
157
|
+
isFocused: false,
|
121
158
|
prevValue: '',
|
122
159
|
value: value || ''
|
123
160
|
};
|
@@ -126,7 +163,8 @@ var Editable = function Editable(props) {
|
|
126
163
|
editableContext = _useState2[0],
|
127
164
|
setEditableContext = _useState2[1];
|
128
165
|
return (0, _react2.jsx)(_index.Box, {
|
129
|
-
sx: {
|
166
|
+
sx: editableContext.isEditing && editableContext.isFocused ? sx.containerFocused : {
|
167
|
+
padding: '1px',
|
130
168
|
position: 'relative'
|
131
169
|
}
|
132
170
|
}, (0, _react2.jsx)(EditableAreaProvider, {
|
@@ -148,6 +186,12 @@ var EditablePreview = function EditablePreview() {
|
|
148
186
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
149
187
|
hasFocus = _useState4[0],
|
150
188
|
setFocus = _useState4[1];
|
189
|
+
var editablePreview = (0, _react.useRef)(null);
|
190
|
+
var _usePress = (0, _interactions.usePress)({
|
191
|
+
ref: editablePreview
|
192
|
+
}),
|
193
|
+
pressProps = _usePress.pressProps,
|
194
|
+
isPressed = _usePress.isPressed;
|
151
195
|
var editablePreviewDynamicSx = {
|
152
196
|
backgroundColor: hasFocus ? 'accent.95' : 'white',
|
153
197
|
borderBottom: editableContext.isEditing ? '0px' : '1px dashed',
|
@@ -155,6 +199,10 @@ var EditablePreview = function EditablePreview() {
|
|
155
199
|
background: editableContext.isEditing ? 'white' : 'accent.95'
|
156
200
|
}
|
157
201
|
};
|
202
|
+
var _useStatusClasses = (0, _hooks.useStatusClasses)('', {
|
203
|
+
isPressed: isPressed
|
204
|
+
}),
|
205
|
+
classNames = _useStatusClasses.classNames;
|
158
206
|
(0, _react.useEffect)(function () {
|
159
207
|
if (hasFocus && editableContext.isEditing) {
|
160
208
|
setFocus(false);
|
@@ -172,7 +220,8 @@ var EditablePreview = function EditablePreview() {
|
|
172
220
|
}));
|
173
221
|
}
|
174
222
|
};
|
175
|
-
return (0, _react2.jsx)(_index.Box, {
|
223
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, pressProps, {
|
224
|
+
ref: editablePreview,
|
176
225
|
tabIndex: editableContext.isEditing ? '-1' : '0',
|
177
226
|
display: editableContext.isEditing ? 'none' : 'flex',
|
178
227
|
"aria-hidden": editableContext.isEditing,
|
@@ -187,8 +236,9 @@ var EditablePreview = function EditablePreview() {
|
|
187
236
|
return setFocus(false);
|
188
237
|
},
|
189
238
|
placeholder: "Click or press enter to edit text",
|
239
|
+
className: classNames,
|
190
240
|
sx: _objectSpread(_objectSpread({}, editablePreviewDynamicSx), sx.editablePreview)
|
191
|
-
}, editableContext.value);
|
241
|
+
}), editableContext.value);
|
192
242
|
};
|
193
243
|
|
194
244
|
/**
|
@@ -212,6 +262,14 @@ var EditableInput = function EditableInput(props) {
|
|
212
262
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
213
263
|
editingValue = _useState8[0],
|
214
264
|
setEditingValue = _useState8[1];
|
265
|
+
var _useFocusRing = (0, _reactAria.useFocusRing)(),
|
266
|
+
focusProps = _useFocusRing.focusProps,
|
267
|
+
isFocusVisible = _useFocusRing.isFocusVisible;
|
268
|
+
(0, _react.useEffect)(function () {
|
269
|
+
setEditableContext(_objectSpread(_objectSpread({}, editableContext), {}, {
|
270
|
+
isFocused: isFocusVisible
|
271
|
+
}));
|
272
|
+
}, [isFocusVisible]);
|
215
273
|
(0, _react.useEffect)(function () {
|
216
274
|
setEditingValue(editableContext.value);
|
217
275
|
}, [editableContext.value]);
|
@@ -245,12 +303,18 @@ var EditableInput = function EditableInput(props) {
|
|
245
303
|
}));
|
246
304
|
}
|
247
305
|
};
|
306
|
+
var _useStatusClasses2 = (0, _hooks.useStatusClasses)('', {
|
307
|
+
isFocused: isFocusVisible
|
308
|
+
}),
|
309
|
+
classNames = _useStatusClasses2.classNames;
|
248
310
|
return (0, _react2.jsx)(_index.Box, {
|
249
311
|
display: editableContext.isEditing ? 'flex' : 'none',
|
250
312
|
"aria-hidden": !editableContext.isEditing,
|
313
|
+
className: classNames,
|
251
314
|
sx: sx.editableInputWrapper
|
252
|
-
}, (0, _react2.jsx)(_index.TextAreaField, {
|
253
|
-
rows: 1
|
315
|
+
}, (0, _react2.jsx)(_index.TextAreaField, (0, _extends2["default"])({
|
316
|
+
rows: 1
|
317
|
+
}, focusProps, {
|
254
318
|
ref: editableInput,
|
255
319
|
role: "textbox",
|
256
320
|
contenteditable: "true",
|
@@ -259,9 +323,8 @@ var EditableInput = function EditableInput(props) {
|
|
259
323
|
onKeyDown: handleKeyDown,
|
260
324
|
value: editingValue,
|
261
325
|
"aria-label": ariaLabel,
|
262
|
-
sx: sx.editableInpuTextArea
|
263
|
-
|
264
|
-
}));
|
326
|
+
sx: sx.editableInpuTextArea
|
327
|
+
})));
|
265
328
|
};
|
266
329
|
|
267
330
|
/**
|
@@ -10,11 +10,11 @@ _Object$defineProperty(exports, "__esModule", {
|
|
10
10
|
});
|
11
11
|
exports["default"] = exports.LabelValuePairs = exports.EditPanel = exports.DisplayPanel = exports.ColorBlockButton = exports.AddAttributeButton = void 0;
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
13
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
13
14
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
14
15
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
15
|
-
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
16
16
|
var _react = _interopRequireWildcard(require("react"));
|
17
|
-
var
|
17
|
+
var _ChevronRightIcon = _interopRequireDefault(require("@pingux/mdi-react/ChevronRightIcon"));
|
18
18
|
var _PencilIcon = _interopRequireDefault(require("@pingux/mdi-react/PencilIcon"));
|
19
19
|
var _PlusIcon = _interopRequireDefault(require("@pingux/mdi-react/PlusIcon"));
|
20
20
|
var _hooks = require("../hooks");
|
@@ -107,12 +107,46 @@ var data = {
|
|
107
107
|
}
|
108
108
|
};
|
109
109
|
var OverlayWrapper = function OverlayWrapper(_ref) {
|
110
|
-
var
|
110
|
+
var _context, _context2, _context3;
|
111
|
+
var children = _ref.children,
|
112
|
+
isEditPanel = _ref.isEditPanel;
|
111
113
|
var _useOverlayPanelState = (0, _hooks.useOverlayPanelState)({
|
112
114
|
isDefaultOpen: true
|
113
115
|
}),
|
114
116
|
state = _useOverlayPanelState.state;
|
115
117
|
var triggerRef = (0, _react.useRef)();
|
118
|
+
var personalInfo = data.personalInfo;
|
119
|
+
var fields = personalInfo.fields;
|
120
|
+
var renderBreadcrumbs = (0, _react2.jsx)(_index.Breadcrumbs, {
|
121
|
+
icon: _ChevronRightIcon["default"]
|
122
|
+
}, (0, _react2.jsx)(_index.Item, {
|
123
|
+
"aria-label": personalInfo.label,
|
124
|
+
href: "https://www.pingidentity.com",
|
125
|
+
key: personalInfo.key,
|
126
|
+
variant: "buttons.link"
|
127
|
+
}, (0, _concat["default"])(_context = "".concat(fields[0].value, " ")).call(_context, fields[1].value)), (0, _react2.jsx)(_index.Item, {
|
128
|
+
"aria-label": "Edit",
|
129
|
+
key: "editKey",
|
130
|
+
variant: "buttons.link"
|
131
|
+
}, "Edit"));
|
132
|
+
var image = {
|
133
|
+
src: _UserImage["default"],
|
134
|
+
alt: 'user image'
|
135
|
+
};
|
136
|
+
var panelHeaderProps = isEditPanel ? {
|
137
|
+
data: {
|
138
|
+
image: image
|
139
|
+
},
|
140
|
+
slots: {
|
141
|
+
rightOfData: renderBreadcrumbs
|
142
|
+
}
|
143
|
+
} : {
|
144
|
+
data: {
|
145
|
+
image: image,
|
146
|
+
text: (0, _concat["default"])(_context2 = "".concat(fields[0].value, " ")).call(_context2, fields[1].value),
|
147
|
+
subtext: (0, _concat["default"])(_context3 = "".concat(fields[0].value.toLowerCase())).call(_context3, fields[1].value.toLowerCase())
|
148
|
+
}
|
149
|
+
};
|
116
150
|
return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.Button, {
|
117
151
|
ref: triggerRef,
|
118
152
|
onPress: state.open
|
@@ -121,21 +155,18 @@ var OverlayWrapper = function OverlayWrapper(_ref) {
|
|
121
155
|
isTransitioning: state.isTransitioning,
|
122
156
|
size: "large",
|
123
157
|
p: "0"
|
124
|
-
}, (0, _react2.jsx)(_index.PanelHeader, {
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
subtext: data.personalInfo.fields[1].value
|
132
|
-
}
|
133
|
-
}, (0, _react2.jsx)(_index.PanelHeaderSwitchField, null), (0, _react2.jsx)(_index.PanelHeaderMenu, null), (0, _react2.jsx)(_index.PanelHeaderCloseButton, {
|
158
|
+
}, (0, _react2.jsx)(_index.PanelHeader, panelHeaderProps, !isEditPanel && (0, _react2.jsx)(_index.PanelHeaderSwitchField, null), !isEditPanel && (0, _react2.jsx)(_index.PanelHeaderMenu, null, (0, _react2.jsx)(_index.Item, {
|
159
|
+
key: "enable"
|
160
|
+
}, "Enable user"), (0, _react2.jsx)(_index.Item, {
|
161
|
+
key: "disable"
|
162
|
+
}, "Disable user"), (0, _react2.jsx)(_index.Item, {
|
163
|
+
key: "delete"
|
164
|
+
}, "Delete user")), (0, _react2.jsx)(_index.PanelHeaderCloseButton, {
|
134
165
|
onPress: state.close
|
135
166
|
})), children));
|
136
167
|
};
|
137
168
|
var DisplayPanel = function DisplayPanel() {
|
138
|
-
var
|
169
|
+
var _context4, _context5;
|
139
170
|
var renderProfileTab = (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.Box, {
|
140
171
|
isRow: true,
|
141
172
|
gap: "md",
|
@@ -149,13 +180,13 @@ var DisplayPanel = function DisplayPanel() {
|
|
149
180
|
isRow: true,
|
150
181
|
justifyContent: "space-between"
|
151
182
|
}, (0, _react2.jsx)(_index.AccordionGroup, {
|
152
|
-
defaultExpandedKeys: (0, _map["default"])(
|
183
|
+
defaultExpandedKeys: (0, _map["default"])(_context4 = (0, _keys["default"])(data)).call(_context4, function (item) {
|
153
184
|
return data[item].key;
|
154
185
|
}),
|
155
186
|
labelHeadingTag: "h2"
|
156
|
-
}, (0, _map["default"])(
|
157
|
-
var
|
158
|
-
return (0, _react2.jsx)(
|
187
|
+
}, (0, _map["default"])(_context5 = (0, _keys["default"])(data)).call(_context5, function (item) {
|
188
|
+
var _context6;
|
189
|
+
return (0, _react2.jsx)(_index.Item, {
|
159
190
|
"data-id": data[item].label,
|
160
191
|
key: data[item].key,
|
161
192
|
label: data[item].label,
|
@@ -173,7 +204,7 @@ var DisplayPanel = function DisplayPanel() {
|
|
173
204
|
}), data[item].badges && (0, _react2.jsx)(_index.Box, {
|
174
205
|
isRow: true,
|
175
206
|
gap: "sm"
|
176
|
-
}, (0, _map["default"])(
|
207
|
+
}, (0, _map["default"])(_context6 = data[item].badges).call(_context6, function (badge) {
|
177
208
|
return (0, _react2.jsx)(_index.Badge, {
|
178
209
|
label: badge,
|
179
210
|
variant: "defaultBadge",
|
@@ -366,8 +397,10 @@ var editData = {
|
|
366
397
|
}
|
367
398
|
};
|
368
399
|
var EditPanel = function EditPanel() {
|
369
|
-
var
|
370
|
-
return (0, _react2.jsx)(OverlayWrapper,
|
400
|
+
var _context7, _context8, _context9;
|
401
|
+
return (0, _react2.jsx)(OverlayWrapper, {
|
402
|
+
isEditPanel: true
|
403
|
+
}, (0, _react2.jsx)(_index.Box, {
|
371
404
|
p: "lg",
|
372
405
|
pb: "0"
|
373
406
|
}, (0, _react2.jsx)(_index.Box, {
|
@@ -382,16 +415,16 @@ var EditPanel = function EditPanel() {
|
|
382
415
|
label: "Population",
|
383
416
|
isRequired: true,
|
384
417
|
defaultSelectedKey: "population"
|
385
|
-
}, (0, _react2.jsx)(
|
418
|
+
}, (0, _react2.jsx)(_index.Item, {
|
386
419
|
key: "population"
|
387
420
|
}, "Denver"))), (0, _react2.jsx)(_index.AccordionGroup, {
|
388
|
-
defaultExpandedKeys: (0, _concat["default"])(
|
421
|
+
defaultExpandedKeys: (0, _concat["default"])(_context7 = []).call(_context7, (0, _map["default"])(_context8 = (0, _keys["default"])(editData)).call(_context8, function (item) {
|
389
422
|
return editData[item].key;
|
390
423
|
}), ['preferencesKey', 'customAttributesKey', 'jsonAttributesKey']),
|
391
424
|
labelHeadingTag: "h2"
|
392
|
-
}, (0, _map["default"])(
|
393
|
-
var
|
394
|
-
return (0, _react2.jsx)(
|
425
|
+
}, (0, _map["default"])(_context9 = (0, _keys["default"])(editData)).call(_context9, function (item) {
|
426
|
+
var _context10;
|
427
|
+
return (0, _react2.jsx)(_index.Item, {
|
395
428
|
"data-id": editData[item].label,
|
396
429
|
key: editData[item].key,
|
397
430
|
label: editData[item].label,
|
@@ -404,7 +437,7 @@ var EditPanel = function EditPanel() {
|
|
404
437
|
previewHeight: 40,
|
405
438
|
previewWidth: 40,
|
406
439
|
previewImage: _UserImage["default"]
|
407
|
-
}), (0, _map["default"])(
|
440
|
+
}), (0, _map["default"])(_context10 = editData[item].fields).call(_context10, function (_ref5) {
|
408
441
|
var label = _ref5.label,
|
409
442
|
value = _ref5.value,
|
410
443
|
slot = _ref5.slot;
|
@@ -415,7 +448,7 @@ var EditPanel = function EditPanel() {
|
|
415
448
|
defaultValue: value
|
416
449
|
}), slot);
|
417
450
|
})));
|
418
|
-
}), (0, _react2.jsx)(
|
451
|
+
}), (0, _react2.jsx)(_index.Item, {
|
419
452
|
"data-id": "preferences",
|
420
453
|
key: "preferencesKey",
|
421
454
|
label: "Preferences",
|
@@ -426,19 +459,19 @@ var EditPanel = function EditPanel() {
|
|
426
459
|
}, (0, _react2.jsx)(_index.SelectField, {
|
427
460
|
label: "Preferred Language",
|
428
461
|
defaultSelectedKey: "language"
|
429
|
-
}, (0, _react2.jsx)(
|
462
|
+
}, (0, _react2.jsx)(_index.Item, {
|
430
463
|
key: "language"
|
431
464
|
}, "Select a Language")), (0, _react2.jsx)(_index.SelectField, {
|
432
465
|
label: "Locale",
|
433
466
|
defaultSelectedKey: "language"
|
434
|
-
}, (0, _react2.jsx)(
|
467
|
+
}, (0, _react2.jsx)(_index.Item, {
|
435
468
|
key: "language"
|
436
469
|
}, "Select a locale")), (0, _react2.jsx)(_index.SelectField, {
|
437
470
|
label: "Timezone",
|
438
471
|
defaultSelectedKey: "language"
|
439
|
-
}, (0, _react2.jsx)(
|
472
|
+
}, (0, _react2.jsx)(_index.Item, {
|
440
473
|
key: "language"
|
441
|
-
}, "Select a timezone")))), (0, _react2.jsx)(
|
474
|
+
}, "Select a timezone")))), (0, _react2.jsx)(_index.Item, {
|
442
475
|
"data-id": "customAttributes",
|
443
476
|
key: "customAttributesKey",
|
444
477
|
label: "Custom Attributes",
|
@@ -447,7 +480,7 @@ var EditPanel = function EditPanel() {
|
|
447
480
|
fontWeight: "-1",
|
448
481
|
fontSize: "md",
|
449
482
|
textAlign: "center"
|
450
|
-
}, "Click + Add to select a custom attribute")), (0, _react2.jsx)(
|
483
|
+
}, "Click + Add to select a custom attribute")), (0, _react2.jsx)(_index.Item, {
|
451
484
|
"data-id": "jsonAttributes",
|
452
485
|
key: "jsonAttributesKey",
|
453
486
|
label: "JSON Attributes",
|
@@ -6,14 +6,18 @@ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/inst
|
|
6
6
|
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
7
7
|
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
8
8
|
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
9
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
9
10
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
10
11
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
11
12
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
12
13
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
13
14
|
import React, { createContext, useContext, useEffect, useRef, useState } from 'react';
|
15
|
+
import { useFocusRing } from 'react-aria';
|
14
16
|
import CheckIcon from '@pingux/mdi-react/CheckIcon';
|
15
17
|
import CloseIcon from '@pingux/mdi-react/CloseIcon';
|
18
|
+
import { usePress } from '@react-aria/interactions';
|
16
19
|
import { withDesign } from 'storybook-addon-designs';
|
20
|
+
import { useStatusClasses } from '../hooks';
|
17
21
|
import { Box, Icon, IconButton, TextAreaField } from '../index';
|
18
22
|
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks';
|
19
23
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
@@ -38,6 +42,14 @@ var inputProps = {
|
|
38
42
|
ariaLabel: 'Example aria label'
|
39
43
|
};
|
40
44
|
var sx = {
|
45
|
+
containerFocused: {
|
46
|
+
padding: 0,
|
47
|
+
position: 'relative',
|
48
|
+
borderColor: 'accent.60',
|
49
|
+
borderStyle: 'solid',
|
50
|
+
borderRadius: '3px 2px 2px 3px',
|
51
|
+
borderWidth: '1px'
|
52
|
+
},
|
41
53
|
editablePreview: {
|
42
54
|
whiteSpace: 'pre-line',
|
43
55
|
width: '100%',
|
@@ -51,37 +63,61 @@ var sx = {
|
|
51
63
|
fontSize: 'md',
|
52
64
|
fontWeight: 1,
|
53
65
|
lineHeight: '18px',
|
66
|
+
'&:hover': {
|
67
|
+
cursor: 'pointer',
|
68
|
+
bg: 'accent.95'
|
69
|
+
},
|
54
70
|
'&:focus': {
|
55
71
|
outline: 'none',
|
56
|
-
|
72
|
+
borderRadius: '2px',
|
57
73
|
borderColor: 'active',
|
74
|
+
borderWidth: '2px',
|
75
|
+
borderStyle: 'solid',
|
76
|
+
paddingLeft: '3px',
|
77
|
+
paddingBottom: '4px'
|
78
|
+
},
|
79
|
+
'&.is-pressed': {
|
58
80
|
borderWidth: '1px',
|
59
|
-
|
81
|
+
paddingLeft: '4px',
|
82
|
+
paddingBottom: 'xs'
|
60
83
|
}
|
61
84
|
},
|
62
85
|
editableInputWrapper: {
|
63
|
-
marginRight: '
|
64
|
-
flexGrow: 1
|
86
|
+
marginRight: '36px',
|
87
|
+
flexGrow: 1,
|
88
|
+
'&.is-focused textarea': {
|
89
|
+
outline: 'none'
|
90
|
+
},
|
91
|
+
'& label': {
|
92
|
+
margin: 0
|
93
|
+
},
|
94
|
+
'& textarea': {
|
95
|
+
minHeight: '45px',
|
96
|
+
height: '45px',
|
97
|
+
padding: '13px 35px 15px 18px',
|
98
|
+
lineHeight: '100%',
|
99
|
+
resize: 'vertical'
|
100
|
+
}
|
65
101
|
},
|
66
102
|
editableInpuTextArea: {
|
67
103
|
maxHeight: '150px'
|
68
104
|
},
|
69
105
|
editableControlWrapper: {
|
70
106
|
position: 'absolute',
|
71
|
-
right: '
|
72
|
-
top: '
|
107
|
+
right: '5px',
|
108
|
+
top: 'calc(50% - 13px)',
|
73
109
|
alignItems: 'center',
|
74
110
|
justifyContent: 'space-between'
|
75
111
|
},
|
76
112
|
editableControlIconButton: {
|
77
|
-
marginRight: '
|
113
|
+
marginRight: '20px',
|
78
114
|
width: '20px',
|
79
115
|
height: '20px'
|
80
116
|
}
|
81
117
|
};
|
82
118
|
export var Default = function Default() {
|
83
119
|
return ___EmotionJSX(Editable, {
|
84
|
-
value: "
|
120
|
+
value: "Inline Editable text"
|
85
121
|
}, ___EmotionJSX(EditablePreview, null), ___EmotionJSX(EditableInput, {
|
86
122
|
inputProps: inputProps
|
87
123
|
}), ___EmotionJSX(EditableControl, {
|
@@ -105,6 +141,7 @@ var Editable = function Editable(props) {
|
|
105
141
|
isEditing = props.isEditing;
|
106
142
|
var editableContextValue = {
|
107
143
|
isEditing: isEditing || false,
|
144
|
+
isFocused: false,
|
108
145
|
prevValue: '',
|
109
146
|
value: value || ''
|
110
147
|
};
|
@@ -113,7 +150,8 @@ var Editable = function Editable(props) {
|
|
113
150
|
editableContext = _useState2[0],
|
114
151
|
setEditableContext = _useState2[1];
|
115
152
|
return ___EmotionJSX(Box, {
|
116
|
-
sx: {
|
153
|
+
sx: editableContext.isEditing && editableContext.isFocused ? sx.containerFocused : {
|
154
|
+
padding: '1px',
|
117
155
|
position: 'relative'
|
118
156
|
}
|
119
157
|
}, ___EmotionJSX(EditableAreaProvider, {
|
@@ -135,6 +173,12 @@ var EditablePreview = function EditablePreview() {
|
|
135
173
|
_useState4 = _slicedToArray(_useState3, 2),
|
136
174
|
hasFocus = _useState4[0],
|
137
175
|
setFocus = _useState4[1];
|
176
|
+
var editablePreview = useRef(null);
|
177
|
+
var _usePress = usePress({
|
178
|
+
ref: editablePreview
|
179
|
+
}),
|
180
|
+
pressProps = _usePress.pressProps,
|
181
|
+
isPressed = _usePress.isPressed;
|
138
182
|
var editablePreviewDynamicSx = {
|
139
183
|
backgroundColor: hasFocus ? 'accent.95' : 'white',
|
140
184
|
borderBottom: editableContext.isEditing ? '0px' : '1px dashed',
|
@@ -142,6 +186,10 @@ var EditablePreview = function EditablePreview() {
|
|
142
186
|
background: editableContext.isEditing ? 'white' : 'accent.95'
|
143
187
|
}
|
144
188
|
};
|
189
|
+
var _useStatusClasses = useStatusClasses('', {
|
190
|
+
isPressed: isPressed
|
191
|
+
}),
|
192
|
+
classNames = _useStatusClasses.classNames;
|
145
193
|
useEffect(function () {
|
146
194
|
if (hasFocus && editableContext.isEditing) {
|
147
195
|
setFocus(false);
|
@@ -159,7 +207,8 @@ var EditablePreview = function EditablePreview() {
|
|
159
207
|
}));
|
160
208
|
}
|
161
209
|
};
|
162
|
-
return ___EmotionJSX(Box, {
|
210
|
+
return ___EmotionJSX(Box, _extends({}, pressProps, {
|
211
|
+
ref: editablePreview,
|
163
212
|
tabIndex: editableContext.isEditing ? '-1' : '0',
|
164
213
|
display: editableContext.isEditing ? 'none' : 'flex',
|
165
214
|
"aria-hidden": editableContext.isEditing,
|
@@ -174,8 +223,9 @@ var EditablePreview = function EditablePreview() {
|
|
174
223
|
return setFocus(false);
|
175
224
|
},
|
176
225
|
placeholder: "Click or press enter to edit text",
|
226
|
+
className: classNames,
|
177
227
|
sx: _objectSpread(_objectSpread({}, editablePreviewDynamicSx), sx.editablePreview)
|
178
|
-
}, editableContext.value);
|
228
|
+
}), editableContext.value);
|
179
229
|
};
|
180
230
|
|
181
231
|
/**
|
@@ -199,6 +249,14 @@ var EditableInput = function EditableInput(props) {
|
|
199
249
|
_useState8 = _slicedToArray(_useState7, 2),
|
200
250
|
editingValue = _useState8[0],
|
201
251
|
setEditingValue = _useState8[1];
|
252
|
+
var _useFocusRing = useFocusRing(),
|
253
|
+
focusProps = _useFocusRing.focusProps,
|
254
|
+
isFocusVisible = _useFocusRing.isFocusVisible;
|
255
|
+
useEffect(function () {
|
256
|
+
setEditableContext(_objectSpread(_objectSpread({}, editableContext), {}, {
|
257
|
+
isFocused: isFocusVisible
|
258
|
+
}));
|
259
|
+
}, [isFocusVisible]);
|
202
260
|
useEffect(function () {
|
203
261
|
setEditingValue(editableContext.value);
|
204
262
|
}, [editableContext.value]);
|
@@ -232,12 +290,18 @@ var EditableInput = function EditableInput(props) {
|
|
232
290
|
}));
|
233
291
|
}
|
234
292
|
};
|
293
|
+
var _useStatusClasses2 = useStatusClasses('', {
|
294
|
+
isFocused: isFocusVisible
|
295
|
+
}),
|
296
|
+
classNames = _useStatusClasses2.classNames;
|
235
297
|
return ___EmotionJSX(Box, {
|
236
298
|
display: editableContext.isEditing ? 'flex' : 'none',
|
237
299
|
"aria-hidden": !editableContext.isEditing,
|
300
|
+
className: classNames,
|
238
301
|
sx: sx.editableInputWrapper
|
239
|
-
}, ___EmotionJSX(TextAreaField, {
|
240
|
-
rows: 1
|
302
|
+
}, ___EmotionJSX(TextAreaField, _extends({
|
303
|
+
rows: 1
|
304
|
+
}, focusProps, {
|
241
305
|
ref: editableInput,
|
242
306
|
role: "textbox",
|
243
307
|
contenteditable: "true",
|
@@ -246,9 +310,8 @@ var EditableInput = function EditableInput(props) {
|
|
246
310
|
onKeyDown: handleKeyDown,
|
247
311
|
value: editingValue,
|
248
312
|
"aria-label": ariaLabel,
|
249
|
-
sx: sx.editableInpuTextArea
|
250
|
-
|
251
|
-
}));
|
313
|
+
sx: sx.editableInpuTextArea
|
314
|
+
})));
|
252
315
|
};
|
253
316
|
|
254
317
|
/**
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
|
+
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
2
3
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
3
4
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
4
|
-
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
5
5
|
import React, { useRef } from 'react';
|
6
|
-
import
|
6
|
+
import ChevronRightIcon from '@pingux/mdi-react/ChevronRightIcon';
|
7
7
|
import PencilIcon from '@pingux/mdi-react/PencilIcon';
|
8
8
|
import PlusIcon from '@pingux/mdi-react/PlusIcon';
|
9
9
|
import { useOverlayPanelState } from '../hooks';
|
10
|
-
import { AccordionGroup, Badge, Box, Button, ButtonBar, CheckboxField, EditButton, Icon, Image, ImageUploadField, NoticeIcon, OverlayPanel, OverlayProvider, PanelHeader, PanelHeaderCloseButton, PanelHeaderMenu, PanelHeaderSwitchField, SelectField, Tab, Tabs, Text, TextField } from '../index';
|
10
|
+
import { AccordionGroup, Badge, Box, Breadcrumbs, Button, ButtonBar, CheckboxField, EditButton, Icon, Image, ImageUploadField, Item, NoticeIcon, OverlayPanel, OverlayProvider, PanelHeader, PanelHeaderCloseButton, PanelHeaderMenu, PanelHeaderSwitchField, SelectField, Tab, Tabs, Text, TextField } from '../index';
|
11
11
|
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
12
12
|
import UserImage from '../utils/devUtils/assets/UserImage.png';
|
13
13
|
import statuses from '../utils/devUtils/constants/statuses';
|
@@ -93,12 +93,46 @@ var data = {
|
|
93
93
|
}
|
94
94
|
};
|
95
95
|
var OverlayWrapper = function OverlayWrapper(_ref) {
|
96
|
-
var
|
96
|
+
var _context, _context2, _context3;
|
97
|
+
var children = _ref.children,
|
98
|
+
isEditPanel = _ref.isEditPanel;
|
97
99
|
var _useOverlayPanelState = useOverlayPanelState({
|
98
100
|
isDefaultOpen: true
|
99
101
|
}),
|
100
102
|
state = _useOverlayPanelState.state;
|
101
103
|
var triggerRef = useRef();
|
104
|
+
var personalInfo = data.personalInfo;
|
105
|
+
var fields = personalInfo.fields;
|
106
|
+
var renderBreadcrumbs = ___EmotionJSX(Breadcrumbs, {
|
107
|
+
icon: ChevronRightIcon
|
108
|
+
}, ___EmotionJSX(Item, {
|
109
|
+
"aria-label": personalInfo.label,
|
110
|
+
href: "https://www.pingidentity.com",
|
111
|
+
key: personalInfo.key,
|
112
|
+
variant: "buttons.link"
|
113
|
+
}, _concatInstanceProperty(_context = "".concat(fields[0].value, " ")).call(_context, fields[1].value)), ___EmotionJSX(Item, {
|
114
|
+
"aria-label": "Edit",
|
115
|
+
key: "editKey",
|
116
|
+
variant: "buttons.link"
|
117
|
+
}, "Edit"));
|
118
|
+
var image = {
|
119
|
+
src: UserImage,
|
120
|
+
alt: 'user image'
|
121
|
+
};
|
122
|
+
var panelHeaderProps = isEditPanel ? {
|
123
|
+
data: {
|
124
|
+
image: image
|
125
|
+
},
|
126
|
+
slots: {
|
127
|
+
rightOfData: renderBreadcrumbs
|
128
|
+
}
|
129
|
+
} : {
|
130
|
+
data: {
|
131
|
+
image: image,
|
132
|
+
text: _concatInstanceProperty(_context2 = "".concat(fields[0].value, " ")).call(_context2, fields[1].value),
|
133
|
+
subtext: _concatInstanceProperty(_context3 = "".concat(fields[0].value.toLowerCase())).call(_context3, fields[1].value.toLowerCase())
|
134
|
+
}
|
135
|
+
};
|
102
136
|
return ___EmotionJSX(OverlayProvider, null, ___EmotionJSX(Button, {
|
103
137
|
ref: triggerRef,
|
104
138
|
onPress: state.open
|
@@ -107,21 +141,18 @@ var OverlayWrapper = function OverlayWrapper(_ref) {
|
|
107
141
|
isTransitioning: state.isTransitioning,
|
108
142
|
size: "large",
|
109
143
|
p: "0"
|
110
|
-
}, ___EmotionJSX(PanelHeader, {
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
subtext: data.personalInfo.fields[1].value
|
118
|
-
}
|
119
|
-
}, ___EmotionJSX(PanelHeaderSwitchField, null), ___EmotionJSX(PanelHeaderMenu, null), ___EmotionJSX(PanelHeaderCloseButton, {
|
144
|
+
}, ___EmotionJSX(PanelHeader, panelHeaderProps, !isEditPanel && ___EmotionJSX(PanelHeaderSwitchField, null), !isEditPanel && ___EmotionJSX(PanelHeaderMenu, null, ___EmotionJSX(Item, {
|
145
|
+
key: "enable"
|
146
|
+
}, "Enable user"), ___EmotionJSX(Item, {
|
147
|
+
key: "disable"
|
148
|
+
}, "Disable user"), ___EmotionJSX(Item, {
|
149
|
+
key: "delete"
|
150
|
+
}, "Delete user")), ___EmotionJSX(PanelHeaderCloseButton, {
|
120
151
|
onPress: state.close
|
121
152
|
})), children));
|
122
153
|
};
|
123
154
|
export var DisplayPanel = function DisplayPanel() {
|
124
|
-
var
|
155
|
+
var _context4, _context5;
|
125
156
|
var renderProfileTab = ___EmotionJSX(React.Fragment, null, ___EmotionJSX(Box, {
|
126
157
|
isRow: true,
|
127
158
|
gap: "md",
|
@@ -135,12 +166,12 @@ export var DisplayPanel = function DisplayPanel() {
|
|
135
166
|
isRow: true,
|
136
167
|
justifyContent: "space-between"
|
137
168
|
}, ___EmotionJSX(AccordionGroup, {
|
138
|
-
defaultExpandedKeys: _mapInstanceProperty(
|
169
|
+
defaultExpandedKeys: _mapInstanceProperty(_context4 = _Object$keys(data)).call(_context4, function (item) {
|
139
170
|
return data[item].key;
|
140
171
|
}),
|
141
172
|
labelHeadingTag: "h2"
|
142
|
-
}, _mapInstanceProperty(
|
143
|
-
var
|
173
|
+
}, _mapInstanceProperty(_context5 = _Object$keys(data)).call(_context5, function (item) {
|
174
|
+
var _context6;
|
144
175
|
return ___EmotionJSX(Item, {
|
145
176
|
"data-id": data[item].label,
|
146
177
|
key: data[item].key,
|
@@ -159,7 +190,7 @@ export var DisplayPanel = function DisplayPanel() {
|
|
159
190
|
}), data[item].badges && ___EmotionJSX(Box, {
|
160
191
|
isRow: true,
|
161
192
|
gap: "sm"
|
162
|
-
}, _mapInstanceProperty(
|
193
|
+
}, _mapInstanceProperty(_context6 = data[item].badges).call(_context6, function (badge) {
|
163
194
|
return ___EmotionJSX(Badge, {
|
164
195
|
label: badge,
|
165
196
|
variant: "defaultBadge",
|
@@ -349,8 +380,10 @@ var editData = {
|
|
349
380
|
}
|
350
381
|
};
|
351
382
|
export var EditPanel = function EditPanel() {
|
352
|
-
var
|
353
|
-
return ___EmotionJSX(OverlayWrapper,
|
383
|
+
var _context7, _context8, _context9;
|
384
|
+
return ___EmotionJSX(OverlayWrapper, {
|
385
|
+
isEditPanel: true
|
386
|
+
}, ___EmotionJSX(Box, {
|
354
387
|
p: "lg",
|
355
388
|
pb: "0"
|
356
389
|
}, ___EmotionJSX(Box, {
|
@@ -368,12 +401,12 @@ export var EditPanel = function EditPanel() {
|
|
368
401
|
}, ___EmotionJSX(Item, {
|
369
402
|
key: "population"
|
370
403
|
}, "Denver"))), ___EmotionJSX(AccordionGroup, {
|
371
|
-
defaultExpandedKeys: _concatInstanceProperty(
|
404
|
+
defaultExpandedKeys: _concatInstanceProperty(_context7 = []).call(_context7, _mapInstanceProperty(_context8 = _Object$keys(editData)).call(_context8, function (item) {
|
372
405
|
return editData[item].key;
|
373
406
|
}), ['preferencesKey', 'customAttributesKey', 'jsonAttributesKey']),
|
374
407
|
labelHeadingTag: "h2"
|
375
|
-
}, _mapInstanceProperty(
|
376
|
-
var
|
408
|
+
}, _mapInstanceProperty(_context9 = _Object$keys(editData)).call(_context9, function (item) {
|
409
|
+
var _context10;
|
377
410
|
return ___EmotionJSX(Item, {
|
378
411
|
"data-id": editData[item].label,
|
379
412
|
key: editData[item].key,
|
@@ -387,7 +420,7 @@ export var EditPanel = function EditPanel() {
|
|
387
420
|
previewHeight: 40,
|
388
421
|
previewWidth: 40,
|
389
422
|
previewImage: UserImage
|
390
|
-
}), _mapInstanceProperty(
|
423
|
+
}), _mapInstanceProperty(_context10 = editData[item].fields).call(_context10, function (_ref5) {
|
391
424
|
var label = _ref5.label,
|
392
425
|
value = _ref5.value,
|
393
426
|
slot = _ref5.slot;
|