@pingux/astro 2.30.0 → 2.31.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.
@@ -0,0 +1,496 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = exports.LabelValuePairs = exports.EditPanel = exports.DisplayPanel = exports.ColorBlockButton = exports.AddAttributeButton = void 0;
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
14
+ 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
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _reactStately = require("react-stately");
18
+ var _PencilIcon = _interopRequireDefault(require("@pingux/mdi-react/PencilIcon"));
19
+ var _PlusIcon = _interopRequireDefault(require("@pingux/mdi-react/PlusIcon"));
20
+ var _hooks = require("../hooks");
21
+ var _index = require("../index");
22
+ var _figmaLinks = require("../utils/designUtils/figmaLinks.js");
23
+ var _UserImage = _interopRequireDefault(require("../utils/devUtils/assets/UserImage.png"));
24
+ var _statuses = _interopRequireDefault(require("../utils/devUtils/constants/statuses"));
25
+ var _react2 = require("@emotion/react");
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
+ 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; }
28
+ var _default = {
29
+ title: 'Experimental/PanelContent',
30
+ parameters: {
31
+ docs: {
32
+ source: {
33
+ type: 'code'
34
+ }
35
+ }
36
+ }
37
+ };
38
+ exports["default"] = _default;
39
+ var colorBlockButtons = [{
40
+ text: 'Groups',
41
+ subtext: '21',
42
+ isConfigured: true
43
+ }, {
44
+ text: 'Population',
45
+ subtext: 'Denver',
46
+ isConfigured: true
47
+ }, {
48
+ text: 'MFA',
49
+ subtext: 'Enabled',
50
+ isConfigured: true
51
+ }, {
52
+ text: 'Roles',
53
+ subtext: '0'
54
+ }];
55
+ var data = {
56
+ contactInfo: {
57
+ label: 'Contact Info',
58
+ key: 'contactInfoKey',
59
+ fields: [{
60
+ label: 'Email',
61
+ value: 'ednepomuceno@pingidentity.com',
62
+ isVerified: true
63
+ }, {
64
+ label: 'Primary',
65
+ value: '+1 767-777-3333'
66
+ }, {
67
+ label: 'Address',
68
+ value: '1234 W California St, Denver CO 80101'
69
+ }]
70
+ },
71
+ personalInfo: {
72
+ label: 'Personal Info',
73
+ key: 'personalInfoKey',
74
+ image: _UserImage["default"],
75
+ fields: [{
76
+ label: 'Given Name',
77
+ value: 'Ed'
78
+ }, {
79
+ label: 'Famile Name',
80
+ value: 'Nepomuceno'
81
+ }]
82
+ },
83
+ companyInfo: {
84
+ label: 'Company Info',
85
+ key: 'companyInfoKey',
86
+ fields: [{
87
+ label: 'Tile',
88
+ value: 'Interaction Designer'
89
+ }]
90
+ },
91
+ customAttributes: {
92
+ label: 'Custom Attributes',
93
+ key: 'customAttributesKey',
94
+ fields: [{
95
+ label: 'T-Shirt Size',
96
+ value: 'Large'
97
+ }, {
98
+ label: 'Example Multi-Value Attribute',
99
+ value: 'value,value,value,value,value,value,value,value,value,value,value,value,value,value,value,value,value,value,value,'
100
+ }]
101
+ },
102
+ jsonAttributes: {
103
+ label: 'JSON Attributes',
104
+ key: 'jsonAttributesKey',
105
+ badges: ['Address', 'Contact', 'Another Json'],
106
+ fields: []
107
+ }
108
+ };
109
+ var OverlayWrapper = function OverlayWrapper(_ref) {
110
+ var children = _ref.children;
111
+ var _useOverlayPanelState = (0, _hooks.useOverlayPanelState)({
112
+ isDefaultOpen: true
113
+ }),
114
+ state = _useOverlayPanelState.state;
115
+ var triggerRef = (0, _react.useRef)();
116
+ return (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.Button, {
117
+ ref: triggerRef,
118
+ onPress: state.open
119
+ }, "Open Panel"), (0, _react2.jsx)(_index.OverlayPanel, {
120
+ isOpen: state.isOpen,
121
+ isTransitioning: state.isTransitioning,
122
+ size: "large",
123
+ p: "0"
124
+ }, (0, _react2.jsx)(_index.PanelHeader, {
125
+ data: {
126
+ image: {
127
+ src: _UserImage["default"],
128
+ alt: 'user image'
129
+ },
130
+ text: data.personalInfo.fields[0].value,
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, {
134
+ onPress: state.close
135
+ })), children));
136
+ };
137
+ var DisplayPanel = function DisplayPanel() {
138
+ var _context, _context2;
139
+ var renderProfileTab = (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.Box, {
140
+ isRow: true,
141
+ gap: "md",
142
+ mb: "20px"
143
+ }, (0, _map["default"])(colorBlockButtons).call(colorBlockButtons, function (tileData) {
144
+ return (0, _react2.jsx)(ColorBlockButton, {
145
+ buttonData: tileData,
146
+ key: "".concat(tileData.text, "-key")
147
+ });
148
+ })), (0, _react2.jsx)(_index.Box, {
149
+ isRow: true,
150
+ justifyContent: "space-between"
151
+ }, (0, _react2.jsx)(_index.AccordionGroup, {
152
+ defaultExpandedKeys: (0, _map["default"])(_context = (0, _keys["default"])(data)).call(_context, function (item) {
153
+ return data[item].key;
154
+ }),
155
+ labelHeadingTag: "h2"
156
+ }, (0, _map["default"])(_context2 = (0, _keys["default"])(data)).call(_context2, function (item) {
157
+ var _context3;
158
+ return (0, _react2.jsx)(_reactStately.Item, {
159
+ "data-id": data[item].label,
160
+ key: data[item].key,
161
+ label: data[item].label,
162
+ textValue: data[item].label
163
+ }, data[item].image ? (0, _react2.jsx)(_index.Box, {
164
+ isRow: true,
165
+ gap: "md"
166
+ }, (0, _react2.jsx)(_index.Image, {
167
+ src: _UserImage["default"],
168
+ alt: "user"
169
+ }), (0, _react2.jsx)(LabelValuePairs, {
170
+ fields: data[item].fields
171
+ })) : (0, _react2.jsx)(LabelValuePairs, {
172
+ fields: data[item].fields
173
+ }), data[item].badges && (0, _react2.jsx)(_index.Box, {
174
+ isRow: true,
175
+ gap: "sm"
176
+ }, (0, _map["default"])(_context3 = data[item].badges).call(_context3, function (badge) {
177
+ return (0, _react2.jsx)(_index.Badge, {
178
+ label: badge,
179
+ variant: "defaultBadge",
180
+ key: "".concat(badge, "-key")
181
+ });
182
+ })));
183
+ })), (0, _react2.jsx)(_index.EditButton, {
184
+ size: "lg"
185
+ })));
186
+ var tabs = [{
187
+ name: 'Profile',
188
+ children: renderProfileTab
189
+ }, {
190
+ name: 'Groups',
191
+ children: 'Groups'
192
+ }, {
193
+ name: 'Roles',
194
+ children: 'Roles'
195
+ }, {
196
+ name: 'Services',
197
+ list: [{
198
+ key: 'service1',
199
+ name: 'Service 1',
200
+ children: 'Service 1',
201
+ role: 'listitem'
202
+ }, {
203
+ key: 'service2',
204
+ name: 'Service 2',
205
+ children: 'Service 2',
206
+ role: 'listitem'
207
+ }]
208
+ }, {
209
+ name: 'API',
210
+ children: 'API'
211
+ }];
212
+ return (0, _react2.jsx)(OverlayWrapper, null, (0, _react2.jsx)(_index.Box, {
213
+ p: "lg",
214
+ pt: "xs"
215
+ }, (0, _react2.jsx)(_index.Tabs, {
216
+ items: tabs,
217
+ mode: "list",
218
+ tabListProps: {
219
+ justifyContent: 'center',
220
+ mb: 'lg'
221
+ }
222
+ }, function (item) {
223
+ return (0, _react2.jsx)(_index.Tab, (0, _extends2["default"])({
224
+ key: item.name,
225
+ title: item.name
226
+ }, item), item.children);
227
+ })));
228
+ };
229
+ exports.DisplayPanel = DisplayPanel;
230
+ DisplayPanel.parameters = {
231
+ design: {
232
+ type: 'figma',
233
+ url: _figmaLinks.FIGMA_LINKS.panelContent.displayPanel
234
+ },
235
+ a11y: {
236
+ config: {
237
+ rules: [{
238
+ id: 'color-contrast',
239
+ enabled: false
240
+ }]
241
+ }
242
+ }
243
+ };
244
+ var ColorBlockButton = function ColorBlockButton(_ref2) {
245
+ var _ref2$buttonData = _ref2.buttonData,
246
+ buttonData = _ref2$buttonData === void 0 ? colorBlockButtons[0] : _ref2$buttonData;
247
+ return (0, _react2.jsx)(_index.Button, {
248
+ variant: "colorBlock",
249
+ className: buttonData.isConfigured ? 'is-configured' : ''
250
+ }, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Text, {
251
+ variant: "buttonTitle"
252
+ }, buttonData.text), (0, _react2.jsx)(_index.Text, {
253
+ variant: "buttonSubtitle"
254
+ }, buttonData.subtext)), (0, _react2.jsx)(_index.Icon, {
255
+ icon: _PencilIcon["default"],
256
+ title: {
257
+ name: 'Create Icon'
258
+ }
259
+ }));
260
+ };
261
+ exports.ColorBlockButton = ColorBlockButton;
262
+ var LabelValuePairs = function LabelValuePairs(_ref3) {
263
+ var _ref3$fields = _ref3.fields,
264
+ fields = _ref3$fields === void 0 ? data.contactInfo.fields : _ref3$fields;
265
+ return (0, _react2.jsx)(_index.Box, {
266
+ gap: "md",
267
+ maxWidth: "675px"
268
+ }, (0, _map["default"])(fields).call(fields, function (_ref4) {
269
+ var label = _ref4.label,
270
+ value = _ref4.value,
271
+ isVerified = _ref4.isVerified;
272
+ return (0, _react2.jsx)(_index.Box, {
273
+ gap: "xs",
274
+ key: "".concat(label, "-key")
275
+ }, (0, _react2.jsx)(_index.Text, {
276
+ variant: "h4"
277
+ }, label), (0, _react2.jsx)(_index.Box, {
278
+ isRow: true,
279
+ gap: "md"
280
+ }, (0, _react2.jsx)(_index.Text, null, value), isVerified && (0, _react2.jsx)(_index.Box, {
281
+ isRow: true,
282
+ gap: "xs"
283
+ }, (0, _react2.jsx)(_index.NoticeIcon, {
284
+ color: "success.dark",
285
+ status: _statuses["default"].SUCCESS,
286
+ "aria-label": "".concat(_statuses["default"].SUCCESS, "-icon"),
287
+ size: "xs"
288
+ }), (0, _react2.jsx)(_index.Text, {
289
+ variant: "listSubtitle",
290
+ color: "success.dark"
291
+ }, "Verified"))));
292
+ }));
293
+ };
294
+ exports.LabelValuePairs = LabelValuePairs;
295
+ var editData = {
296
+ personalInfo: {
297
+ label: 'Personal Info',
298
+ key: 'personalInfoKey',
299
+ image: _UserImage["default"],
300
+ fields: [{
301
+ label: 'Prefix',
302
+ value: ''
303
+ }, {
304
+ label: 'Given Name',
305
+ value: 'Ed'
306
+ }, {
307
+ label: 'Middle Name',
308
+ value: ''
309
+ }, {
310
+ label: 'Family Name',
311
+ value: 'Nepomuceno'
312
+ }, {
313
+ label: 'Suffix',
314
+ value: ''
315
+ }, {
316
+ label: 'Formatted',
317
+ value: ''
318
+ }, {
319
+ label: 'Nickname',
320
+ value: ''
321
+ }]
322
+ },
323
+ contactInfo: {
324
+ label: 'Contact Info',
325
+ key: 'contactInfoKey',
326
+ fields: [{
327
+ label: 'Email',
328
+ value: 'ednepomuceno@pingidentity.com',
329
+ slot: (0, _react2.jsx)(_index.CheckboxField, {
330
+ mt: "xs",
331
+ label: "Require Email to be Verified"
332
+ })
333
+ }, {
334
+ label: 'Phone Number',
335
+ value: '123-456-7890'
336
+ }, {
337
+ label: 'Street Address',
338
+ value: '123 Example St'
339
+ }, {
340
+ label: 'Country Code',
341
+ value: ''
342
+ }, {
343
+ label: 'Loality',
344
+ value: ''
345
+ }, {
346
+ label: 'Region',
347
+ value: ''
348
+ }, {
349
+ label: 'Zip Code',
350
+ value: '12345'
351
+ }]
352
+ },
353
+ companyInfo: {
354
+ label: 'Company Info',
355
+ key: 'companyInfoKey',
356
+ fields: [{
357
+ label: 'Account ID',
358
+ value: ''
359
+ }, {
360
+ label: 'Type',
361
+ value: ''
362
+ }, {
363
+ label: 'Title',
364
+ value: ''
365
+ }]
366
+ }
367
+ };
368
+ var EditPanel = function EditPanel() {
369
+ var _context4, _context5, _context6;
370
+ return (0, _react2.jsx)(OverlayWrapper, null, (0, _react2.jsx)(_index.Box, {
371
+ p: "lg",
372
+ pb: "0"
373
+ }, (0, _react2.jsx)(_index.Box, {
374
+ gap: "md",
375
+ mb: "20px",
376
+ width: "500px"
377
+ }, (0, _react2.jsx)(_index.TextField, {
378
+ defaultValue: "ednepomuceno",
379
+ isRequired: true,
380
+ label: "Username"
381
+ }), (0, _react2.jsx)(_index.SelectField, {
382
+ label: "Population",
383
+ isRequired: true,
384
+ defaultSelectedKey: "population"
385
+ }, (0, _react2.jsx)(_reactStately.Item, {
386
+ key: "population"
387
+ }, "Denver"))), (0, _react2.jsx)(_index.AccordionGroup, {
388
+ defaultExpandedKeys: (0, _concat["default"])(_context4 = []).call(_context4, (0, _map["default"])(_context5 = (0, _keys["default"])(editData)).call(_context5, function (item) {
389
+ return editData[item].key;
390
+ }), ['preferencesKey', 'customAttributesKey', 'jsonAttributesKey']),
391
+ labelHeadingTag: "h2"
392
+ }, (0, _map["default"])(_context6 = (0, _keys["default"])(editData)).call(_context6, function (item) {
393
+ var _context7;
394
+ return (0, _react2.jsx)(_reactStately.Item, {
395
+ "data-id": editData[item].label,
396
+ key: editData[item].key,
397
+ label: editData[item].label,
398
+ textValue: editData[item].label
399
+ }, (0, _react2.jsx)(_index.Box, {
400
+ gap: "md",
401
+ width: "500px"
402
+ }, editData[item].image && (0, _react2.jsx)(_index.ImageUploadField, {
403
+ label: "Photo",
404
+ previewHeight: 40,
405
+ previewWidth: 40,
406
+ previewImage: _UserImage["default"]
407
+ }), (0, _map["default"])(_context7 = editData[item].fields).call(_context7, function (_ref5) {
408
+ var label = _ref5.label,
409
+ value = _ref5.value,
410
+ slot = _ref5.slot;
411
+ return (0, _react2.jsx)(_index.Box, {
412
+ key: "".concat(label, "-key")
413
+ }, (0, _react2.jsx)(_index.TextField, {
414
+ label: label,
415
+ defaultValue: value
416
+ }), slot);
417
+ })));
418
+ }), (0, _react2.jsx)(_reactStately.Item, {
419
+ "data-id": "preferences",
420
+ key: "preferencesKey",
421
+ label: "Preferences",
422
+ textValue: "Preferences"
423
+ }, (0, _react2.jsx)(_index.Box, {
424
+ gap: "md",
425
+ width: "500px"
426
+ }, (0, _react2.jsx)(_index.SelectField, {
427
+ label: "Preferred Language",
428
+ defaultSelectedKey: "language"
429
+ }, (0, _react2.jsx)(_reactStately.Item, {
430
+ key: "language"
431
+ }, "Select a Language")), (0, _react2.jsx)(_index.SelectField, {
432
+ label: "Locale",
433
+ defaultSelectedKey: "language"
434
+ }, (0, _react2.jsx)(_reactStately.Item, {
435
+ key: "language"
436
+ }, "Select a locale")), (0, _react2.jsx)(_index.SelectField, {
437
+ label: "Timezone",
438
+ defaultSelectedKey: "language"
439
+ }, (0, _react2.jsx)(_reactStately.Item, {
440
+ key: "language"
441
+ }, "Select a timezone")))), (0, _react2.jsx)(_reactStately.Item, {
442
+ "data-id": "customAttributes",
443
+ key: "customAttributesKey",
444
+ label: "Custom Attributes",
445
+ textValue: "Custom Attributes"
446
+ }, (0, _react2.jsx)(AddAttributeButton, null), (0, _react2.jsx)(_index.Text, {
447
+ fontWeight: "-1",
448
+ fontSize: "md",
449
+ textAlign: "center"
450
+ }, "Click + Add to select a custom attribute")), (0, _react2.jsx)(_reactStately.Item, {
451
+ "data-id": "jsonAttributes",
452
+ key: "jsonAttributesKey",
453
+ label: "JSON Attributes",
454
+ textValue: "JSON Attributes"
455
+ }, (0, _react2.jsx)(AddAttributeButton, null), (0, _react2.jsx)(_index.Text, {
456
+ fontWeight: "-1",
457
+ fontSize: "md",
458
+ textAlign: "center"
459
+ }, "Click + Add to select a JSON attribute")))), (0, _react2.jsx)(_index.ButtonBar, null, (0, _react2.jsx)(_index.Button, {
460
+ variant: "primary"
461
+ }, "Save"), (0, _react2.jsx)(_index.Button, {
462
+ variant: "link"
463
+ }, "Cancel")));
464
+ };
465
+ exports.EditPanel = EditPanel;
466
+ EditPanel.parameters = {
467
+ design: {
468
+ type: 'figma',
469
+ url: _figmaLinks.FIGMA_LINKS.panelContent.editPanel
470
+ },
471
+ a11y: {
472
+ config: {
473
+ rules: [{
474
+ id: 'color-contrast',
475
+ enabled: false
476
+ }]
477
+ }
478
+ }
479
+ };
480
+ var AddAttributeButton = function AddAttributeButton() {
481
+ return (0, _react2.jsx)(_index.Box, {
482
+ sx: {
483
+ position: 'relative',
484
+ left: '700px',
485
+ top: '-35px',
486
+ width: 0,
487
+ height: 0
488
+ }
489
+ }, (0, _react2.jsx)(_index.Button, {
490
+ variant: "inlineWithIcon"
491
+ }, (0, _react2.jsx)(_index.Icon, {
492
+ icon: _PlusIcon["default"],
493
+ size: "xs"
494
+ }), "Add"));
495
+ };
496
+ exports.AddAttributeButton = AddAttributeButton;
@@ -108,6 +108,10 @@ var FIGMA_LINKS = {
108
108
  OnewayToBidirectionalArrow: {
109
109
  "default": 'https://www.figma.com/file/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?type=design&node-id=43504-1214&mode=design&t=R4kdj0liRHxsqbV5-0'
110
110
  },
111
+ panelContent: {
112
+ displayPanel: 'https://www.figma.com/file/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?node-id=43431%3A4249&mode=dev',
113
+ editPanel: 'https://www.figma.com/file/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?node-id=5013%3A15377&mode=dev'
114
+ },
111
115
  panelHeader: {
112
116
  "default": 'https://www.figma.com/file/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?type=design&node-id=44688%3A39612&mode=dev',
113
117
  withSubtext: 'https://www.figma.com/file/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?node-id=44688%3A39651&mode=dev',
@@ -34,6 +34,14 @@ export var baseBadge = {
34
34
  }
35
35
  }
36
36
  };
37
+ var defaultBadge = _objectSpread(_objectSpread({}, baseBadge), {}, {
38
+ backgroundColor: 'white !important',
39
+ outline: '1px solid',
40
+ outlineColor: 'neutral.80',
41
+ '& span': {
42
+ color: 'text.primary'
43
+ }
44
+ });
37
45
  var multivaluesBadge = _objectSpread(_objectSpread({}, baseBadge), {}, {
38
46
  alignSelf: 'center',
39
47
  cursor: 'default',
@@ -178,23 +186,24 @@ var activeStatusBadge = _objectSpread(_objectSpread({}, statusBadge), {}, {
178
186
  backgroundColor: '#F7F8FD !important'
179
187
  });
180
188
  export default {
189
+ activeStatusBadge: activeStatusBadge,
190
+ badgeDeleteButton: badgeDeleteButton,
181
191
  baseBadge: baseBadge,
192
+ convenienceDefault: convenienceDefault,
193
+ countBadge: countBadge,
194
+ countNeutral: countNeutral,
195
+ criticalStatusBadge: criticalStatusBadge,
196
+ defaultBadge: defaultBadge,
197
+ deleteButton: deleteButton,
182
198
  environmentBadge: environmentBadge,
199
+ errorCalloutBadge: errorCalloutBadge,
200
+ healthyStatusBadge: healthyStatusBadge,
201
+ infoCalloutBadge: infoCalloutBadge,
183
202
  itemBadgeWithSlot: itemBadgeWithSlot,
184
203
  multivaluesBadge: multivaluesBadge,
185
204
  readOnlyBadge: readOnlyBadge,
186
205
  selectedItemBadge: selectedItemBadge,
187
- deleteButton: deleteButton,
188
- countBadge: countBadge,
189
- countNeutral: countNeutral,
190
- badgeDeleteButton: badgeDeleteButton,
191
- convenienceDefault: convenienceDefault,
192
- errorCalloutBadge: errorCalloutBadge,
193
- warningCalloutBadge: warningCalloutBadge,
194
206
  successCalloutBadge: successCalloutBadge,
195
- infoCalloutBadge: infoCalloutBadge,
196
- criticalStatusBadge: criticalStatusBadge,
197
- warningStatusBadge: warningStatusBadge,
198
- healthyStatusBadge: healthyStatusBadge,
199
- activeStatusBadge: activeStatusBadge
207
+ warningCalloutBadge: warningCalloutBadge,
208
+ warningStatusBadge: warningStatusBadge
200
209
  };
@@ -65,6 +65,7 @@ var TreeView = /*#__PURE__*/forwardRef(function (props, ref) {
65
65
  selectionMode: 'single',
66
66
  disallowEmptySelection: true
67
67
  }, others));
68
+ var level = 0;
68
69
  var ariaLabel = props['aria-label'];
69
70
  var listBoxOptions = {
70
71
  disabledKeys: disabledKeys,
@@ -89,16 +90,22 @@ var TreeView = /*#__PURE__*/forwardRef(function (props, ref) {
89
90
  sx: {
90
91
  overflow: 'hidden'
91
92
  }
92
- }, others), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item) {
93
+ }, others), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item, index) {
93
94
  return SectionOrItemRender(item.props.items.length > 0, ___EmotionJSX(TreeViewSection, {
94
95
  item: item,
95
96
  items: item.props.items,
96
97
  title: item.props.title,
97
- key: item.props.title
98
+ key: item.props.title,
99
+ level: level + 1,
100
+ setSize: state.collection.size,
101
+ position: index
98
102
  }), ___EmotionJSX(TreeViewItem, {
99
103
  item: item,
100
104
  title: item.value.value.title,
101
- key: item.value.value.title
105
+ key: item.value.value.title,
106
+ level: level + 1,
107
+ position: index,
108
+ setSize: state.collection.size
102
109
  }));
103
110
  })));
104
111
  });
@@ -148,6 +148,21 @@ test('disabledKeys prop disables items in the tree -- rendering them unclickable
148
148
  expect(thisItem).not.toHaveClass('is-selected');
149
149
  expect(thisItem).toHaveAttribute('aria-selected', 'false');
150
150
  });
151
+ test('displays correct aria attributes', function () {
152
+ render(___EmotionJSX(TreeViewComponent, null));
153
+ var listItems = screen.getAllByRole('treeitem');
154
+ var lastTreeItem = listItems[2];
155
+ expect(lastTreeItem).toHaveAttribute('aria-level', '1');
156
+ expect(lastTreeItem).toHaveAttribute('aria-posinset', '3');
157
+ expect(lastTreeItem).toHaveAttribute('aria-setsize', '3');
158
+ var buttons = screen.queryAllByRole('button');
159
+ fireEvent.click(buttons[1]);
160
+ var expandedItems = screen.getAllByRole('treeitem');
161
+ var nestedItem = expandedItems[2];
162
+ expect(nestedItem).toHaveAttribute('aria-level', '2');
163
+ expect(nestedItem).toHaveAttribute('aria-posinset', '1');
164
+ expect(nestedItem).toHaveAttribute('aria-setsize', '1');
165
+ });
151
166
  var firstJSX = ___EmotionJSX("p", null, "first");
152
167
  var secondJSX = ___EmotionJSX("p", null, "second");
153
168
  test('Section or Item Render renders first item if condition is true', function () {
@@ -9,7 +9,10 @@ import TreeViewRow from './TreeViewRow';
9
9
  import { jsx as ___EmotionJSX } from "@emotion/react";
10
10
  var TreeViewItem = /*#__PURE__*/forwardRef(function (props, ref) {
11
11
  var item = props.item,
12
- title = props.title;
12
+ title = props.title,
13
+ level = props.level,
14
+ position = props.position,
15
+ setSize = props.setSize;
13
16
  var key = item.key;
14
17
  var treeItemRef = useRef();
15
18
  /* istanbul ignore next */
@@ -29,7 +32,10 @@ var TreeViewItem = /*#__PURE__*/forwardRef(function (props, ref) {
29
32
  as: "li",
30
33
  isRow: true,
31
34
  ref: treeItemRef,
32
- "aria-disabled": isDisabled
35
+ "aria-disabled": isDisabled,
36
+ "aria-level": level,
37
+ "aria-posinset": position + 1,
38
+ "aria-setsize": setSize
33
39
  }, optionProps, {
34
40
  role: "treeitem",
35
41
  sx: {
@@ -54,6 +60,9 @@ TreeViewItem.propTypes = {
54
60
  key: PropTypes.string
55
61
  }),
56
62
  name: PropTypes.string,
57
- title: PropTypes.string
63
+ title: PropTypes.string,
64
+ level: PropTypes.number,
65
+ position: PropTypes.number,
66
+ setSize: PropTypes.number
58
67
  };
59
68
  export default TreeViewItem;