@pingux/astro 2.235.0-alpha.0 → 2.236.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/Tree/Tree.d.ts +9 -0
- package/lib/cjs/components/Tree/Tree.js +48 -0
- package/lib/cjs/components/Tree/Tree.mdx +58 -0
- package/lib/cjs/components/Tree/Tree.stories.js +786 -0
- package/lib/cjs/components/Tree/Tree.styles.d.ts +4 -0
- package/lib/cjs/components/Tree/Tree.styles.js +332 -0
- package/lib/cjs/components/Tree/Tree.test.js +300 -0
- package/lib/cjs/components/Tree/TreeItem.d.ts +22 -0
- package/lib/cjs/components/Tree/TreeItem.js +82 -0
- package/lib/cjs/components/Tree/TreeItemContent.d.ts +11 -0
- package/lib/cjs/components/Tree/TreeItemContent.js +102 -0
- package/lib/cjs/components/Tree/index.d.ts +5 -0
- package/lib/cjs/components/Tree/index.js +52 -0
- package/lib/cjs/components/Tree/useTreeDragAndDrop.d.ts +46 -0
- package/lib/cjs/components/Tree/useTreeDragAndDrop.js +76 -0
- package/lib/cjs/context/TooltipContext/index.js +2 -1
- package/lib/cjs/hooks/useCircularLoader/useCircularLoader.d.ts +1 -0
- package/lib/cjs/hooks/useCircularLoader/useCircularLoader.js +3 -2
- package/lib/cjs/hooks/useGetTheme/useGetTheme.d.ts +4 -0
- package/lib/cjs/hooks/useGridListItem/useGridListItem.d.ts +4 -4
- package/lib/cjs/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -1
- package/lib/cjs/hooks/usePagination/usePagination.d.ts +8 -8
- package/lib/cjs/hooks/useStatusClasses/useStatusClasses.js +2 -8
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +43 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +1 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +7 -1
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/icons.d.ts +2 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/index.d.ts +2 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.d.ts +15 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +15 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/tree.d.ts +15 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/tree.js +160 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.d.ts +9 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.js +3 -1
- package/lib/cjs/styles/themeOverrides/onyxSideNav.d.ts +2 -0
- package/lib/cjs/styles/themes/astro/customProperties/icons.d.ts +2 -0
- package/lib/cjs/styles/themes/astro/customProperties/icons.js +3 -1
- package/lib/cjs/styles/themes/astro/customProperties/index.d.ts +2 -0
- package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
- package/lib/cjs/styles/themes/next-gen/customProperties/icons.d.ts +2 -0
- package/lib/cjs/styles/themes/next-gen/customProperties/icons.js +1 -1
- package/lib/cjs/styles/themes/next-gen/customProperties/index.d.ts +2 -0
- package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +27 -0
- package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +15 -0
- package/lib/cjs/styles/themes/next-gen/variants/button.js +11 -0
- package/lib/cjs/styles/themes/next-gen/variants/tree.d.ts +16 -0
- package/lib/cjs/styles/themes/next-gen/variants/tree.js +153 -0
- package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +10 -0
- package/lib/cjs/styles/themes/next-gen/variants/variants.js +2 -0
- package/lib/cjs/styles/variants/index.js +3 -1
- package/lib/cjs/styles/variants/variants.js +2 -0
- package/lib/cjs/utils/getStatusClasses.d.ts +13 -0
- package/lib/cjs/utils/getStatusClasses.js +29 -0
- package/lib/components/Tree/Tree.js +33 -0
- package/lib/components/Tree/Tree.mdx +58 -0
- package/lib/components/Tree/Tree.stories.js +775 -0
- package/lib/components/Tree/Tree.styles.js +325 -0
- package/lib/components/Tree/Tree.test.js +297 -0
- package/lib/components/Tree/TreeItem.js +70 -0
- package/lib/components/Tree/TreeItemContent.js +94 -0
- package/lib/components/Tree/index.js +5 -0
- package/lib/components/Tree/useTreeDragAndDrop.js +69 -0
- package/lib/context/TooltipContext/index.js +2 -1
- package/lib/hooks/useCircularLoader/useCircularLoader.js +3 -2
- package/lib/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -1
- package/lib/hooks/useStatusClasses/useStatusClasses.js +2 -8
- package/lib/index.js +1 -0
- package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +7 -1
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +15 -0
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/tree.js +154 -0
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/variants.js +3 -1
- package/lib/styles/themes/astro/customProperties/icons.js +3 -1
- package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
- package/lib/styles/themes/next-gen/customProperties/icons.js +1 -1
- package/lib/styles/themes/next-gen/variants/button.js +11 -0
- package/lib/styles/themes/next-gen/variants/tree.js +147 -0
- package/lib/styles/themes/next-gen/variants/variants.js +2 -0
- package/lib/styles/variants/index.js +3 -1
- package/lib/styles/variants/variants.js +2 -0
- package/lib/utils/getStatusClasses.js +22 -0
- package/package.json +9 -6
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
|
5
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
|
6
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
|
7
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
|
8
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
|
9
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
10
|
+
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
import { astroTokens } from '@pingux/onyx-tokens';
|
|
13
|
+
import treeSource from '../../../../components/Tree/Tree.styles';
|
|
14
|
+
|
|
15
|
+
// The base styles file builds its object imperatively (tree.item = {...}), so its
|
|
16
|
+
// inferred type has possibly-undefined members; treat it as a complete object here.
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
var tree = treeSource;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Onyx (next-gen) theme overrides for the Tree component, derived from
|
|
22
|
+
* @pingux/onyx-tokens. Deep-merged onto the base Astro tree styles, so only
|
|
23
|
+
* differences from the Astro values are specified here.
|
|
24
|
+
*/
|
|
25
|
+
var onyxTree = _objectSpread(_objectSpread({}, tree), {}, {
|
|
26
|
+
item: _objectSpread(_objectSpread({}, tree.item), {}, {
|
|
27
|
+
'&.is-focused, &[data-focused]': {
|
|
28
|
+
boxShadow: "inset 0 0 0 2px ".concat(astroTokens.color.primary),
|
|
29
|
+
// the base Astro theme draws focus with outline: 2px solid; the Onyx
|
|
30
|
+
// treatment is a single inset shadow (matching ListView/DataTable), so
|
|
31
|
+
// the outline must be reset or both stack and the ring reads ~4px thick
|
|
32
|
+
outline: 'none',
|
|
33
|
+
borderRadius: '4px',
|
|
34
|
+
zIndex: 1
|
|
35
|
+
},
|
|
36
|
+
// the drag handle / chevron carry their own focus treatment, so the
|
|
37
|
+
// row-level focus treatment is suppressed while either is focused
|
|
38
|
+
'&:has(.astro-TreeDragButton:focus), &:has(.astro-TreeDragButton:focus-visible), &:has(.astro-TreeChevronButton:focus), &:has(.astro-TreeChevronButton:focus-visible)': {
|
|
39
|
+
boxShadow: 'none',
|
|
40
|
+
outline: 'none'
|
|
41
|
+
},
|
|
42
|
+
'&.is-focus-visible, &[data-focus-visible]': {
|
|
43
|
+
boxShadow: "inset 0 0 0 2px ".concat(astroTokens.color.primary),
|
|
44
|
+
outline: 'none',
|
|
45
|
+
borderRadius: '4px'
|
|
46
|
+
},
|
|
47
|
+
'&.is-selected, &[data-selected]': {
|
|
48
|
+
bg: astroTokens.color['nav-bar-item'].selected.bg,
|
|
49
|
+
'& *': {
|
|
50
|
+
color: astroTokens.color.gray[900]
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
'&.is-disabled, &[data-disabled]': {
|
|
54
|
+
opacity: 0.65,
|
|
55
|
+
cursor: 'not-allowed'
|
|
56
|
+
},
|
|
57
|
+
'&.is-dragging, &[data-dragging]': {
|
|
58
|
+
bg: astroTokens.color['nav-bar-item'].hover.bg,
|
|
59
|
+
boxShadow: "inset 0 0 0 2px ".concat(astroTokens.color.primary),
|
|
60
|
+
borderRadius: '4px',
|
|
61
|
+
'& *': {
|
|
62
|
+
color: astroTokens.color['nav-bar-item'].selected.text
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
'&.is-drop-target, &[data-drop-target]': {
|
|
66
|
+
boxShadow: "inset 0 0 0 2px ".concat(astroTokens.color.primary),
|
|
67
|
+
borderRadius: '4px'
|
|
68
|
+
},
|
|
69
|
+
'&:hover': {
|
|
70
|
+
bg: astroTokens.color['nav-bar-item'].hover.bg,
|
|
71
|
+
borderRadius: '4px'
|
|
72
|
+
}
|
|
73
|
+
}),
|
|
74
|
+
itemContent: _objectSpread(_objectSpread({}, tree.itemContent), {}, {
|
|
75
|
+
color: astroTokens.color.gray[900],
|
|
76
|
+
'&:hover': {
|
|
77
|
+
bg: 'transparent'
|
|
78
|
+
}
|
|
79
|
+
}),
|
|
80
|
+
dragButton: _objectSpread(_objectSpread({}, tree.dragButton), {}, {
|
|
81
|
+
path: {
|
|
82
|
+
fill: astroTokens.color.gray[500]
|
|
83
|
+
},
|
|
84
|
+
'&:hover': {
|
|
85
|
+
bg: astroTokens.color['nav-bar-item'].hover.bg,
|
|
86
|
+
'& svg': {
|
|
87
|
+
fill: astroTokens.color['nav-bar-item'].selected.text
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
'&:focus, &:focus-visible': {
|
|
91
|
+
boxShadow: "0 0 0 2px ".concat(astroTokens.color.primary),
|
|
92
|
+
borderRadius: '4px'
|
|
93
|
+
},
|
|
94
|
+
'&:active, &[data-pressed]': {
|
|
95
|
+
bg: astroTokens.color['primary-light'],
|
|
96
|
+
cursor: 'grabbing',
|
|
97
|
+
'& svg': {
|
|
98
|
+
fill: astroTokens.color['primary-dark']
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}),
|
|
102
|
+
// the visible checkbox box is drawn by tree.selectionCheckboxBox on the
|
|
103
|
+
// inner RAC CheckboxButton label; Onyx re-colors it from tokens
|
|
104
|
+
selectionCheckbox: _objectSpread(_objectSpread({}, tree.selectionCheckbox), {}, {
|
|
105
|
+
'&:focus-visible, [data-focus-visible]': {
|
|
106
|
+
boxShadow: "0 0 0 2px ".concat(astroTokens.color.primary)
|
|
107
|
+
}
|
|
108
|
+
}),
|
|
109
|
+
selectionCheckboxBox: _objectSpread(_objectSpread({}, tree.selectionCheckboxBox), {}, {
|
|
110
|
+
borderColor: astroTokens.color.gray[500],
|
|
111
|
+
'&[data-selected]': _objectSpread(_objectSpread({}, tree.selectionCheckboxBox['&[data-selected]']), {}, {
|
|
112
|
+
borderColor: astroTokens.color.primary,
|
|
113
|
+
bg: astroTokens.color.primary
|
|
114
|
+
}),
|
|
115
|
+
'[data-hovered] &, [data-pressed] &': {
|
|
116
|
+
borderColor: astroTokens.color.primary
|
|
117
|
+
},
|
|
118
|
+
'&[data-disabled]': _objectSpread(_objectSpread({}, tree.selectionCheckboxBox['&[data-disabled]']), {}, {
|
|
119
|
+
borderColor: astroTokens.color.border,
|
|
120
|
+
background: astroTokens.color.gray[100]
|
|
121
|
+
})
|
|
122
|
+
}),
|
|
123
|
+
// blue circle with a blue.600 folder glyph for expandable nodes; the file
|
|
124
|
+
// (indigo) variant is applied per-item in TreeItemContent via is-leaf
|
|
125
|
+
iconSlot: _objectSpread(_objectSpread({}, tree.iconSlot), {}, {
|
|
126
|
+
bg: astroTokens.color.avatar.blue.bg,
|
|
127
|
+
color: astroTokens.color.avatar.blue.text,
|
|
128
|
+
'&.is-leaf': {
|
|
129
|
+
bg: astroTokens.color.avatar.indigo.bg,
|
|
130
|
+
color: astroTokens.color.avatar.indigo.text
|
|
131
|
+
}
|
|
132
|
+
}),
|
|
133
|
+
lockSlot: _objectSpread(_objectSpread({}, tree.lockSlot), {}, {
|
|
134
|
+
color: '#5F6DA7'
|
|
135
|
+
}),
|
|
136
|
+
container: _objectSpread(_objectSpread({}, tree.container), {}, {
|
|
137
|
+
'& .react-aria-DropIndicator': _objectSpread(_objectSpread({}, tree.container['& .react-aria-DropIndicator']), {}, {
|
|
138
|
+
'&::before': _objectSpread(_objectSpread({}, tree.container['& .react-aria-DropIndicator']['&::before']), {}, {
|
|
139
|
+
bg: 'transparent'
|
|
140
|
+
}),
|
|
141
|
+
'&[data-drop-target]::before': {
|
|
142
|
+
bg: astroTokens.color.primary
|
|
143
|
+
}
|
|
144
|
+
})
|
|
145
|
+
})
|
|
146
|
+
});
|
|
147
|
+
export default onyxTree;
|
|
@@ -45,6 +45,7 @@ import { table } from './table';
|
|
|
45
45
|
import { tableBase } from './tableBase';
|
|
46
46
|
import { menuTab, tab, tabPickerExpandIcon, tabs } from './tabs';
|
|
47
47
|
import tooltip from './tooltip';
|
|
48
|
+
import tree from './tree';
|
|
48
49
|
var onyxLabelValuePairs = _objectSpread(_objectSpread({}, labelValuePairs), {}, {
|
|
49
50
|
value: _objectSpread(_objectSpread({}, labelValuePairs.value), {}, {
|
|
50
51
|
color: 'text.primary'
|
|
@@ -536,5 +537,6 @@ export default {
|
|
|
536
537
|
tableBase: tableBase,
|
|
537
538
|
tabs: tabs,
|
|
538
539
|
tooltip: tooltip,
|
|
540
|
+
tree: tree,
|
|
539
541
|
imageUpload: imageUpload
|
|
540
542
|
};
|
|
@@ -11,8 +11,10 @@ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymb
|
|
|
11
11
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
12
|
import defaultButtons from '../../components/Button/Buttons.styles';
|
|
13
13
|
import iconButtons from '../../components/IconButton/IconButton.styles';
|
|
14
|
+
import { treeChevron } from '../../components/Tree/Tree.styles';
|
|
14
15
|
export var buttons = _objectSpread(_objectSpread({}, defaultButtons), {}, {
|
|
15
|
-
iconButtons: iconButtons
|
|
16
|
+
iconButtons: iconButtons,
|
|
17
|
+
treeChevron: treeChevron
|
|
16
18
|
});
|
|
17
19
|
export { default as badges } from '../../components/Badge/Badge.styles';
|
|
18
20
|
export { default as cards } from '../../components/Card/Card.styles';
|
|
@@ -67,6 +67,7 @@ import * as tab from '../../components/Tabs/Tabs.style';
|
|
|
67
67
|
import timefield from '../../components/TimeField/TimeField.styles';
|
|
68
68
|
import timeZone from '../../components/TimeZonePicker/TimeZone.styles';
|
|
69
69
|
import tooltip from '../../components/TooltipTrigger/Tooltip.styles';
|
|
70
|
+
import tree from '../../components/Tree/Tree.styles';
|
|
70
71
|
import treeView from '../../components/TreeView/TreeView.styles';
|
|
71
72
|
export default _objectSpread(_objectSpread({
|
|
72
73
|
accordion: accordion,
|
|
@@ -124,6 +125,7 @@ export default _objectSpread(_objectSpread({
|
|
|
124
125
|
timefield: timefield,
|
|
125
126
|
timeZone: timeZone,
|
|
126
127
|
tooltip: tooltip,
|
|
128
|
+
tree: tree,
|
|
127
129
|
treeView: treeView
|
|
128
130
|
}, tab), {}, {
|
|
129
131
|
statusIcon: statusIcon,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import classnames from 'classnames';
|
|
2
|
+
import kebabCase from 'lodash/kebabCase';
|
|
3
|
+
import mapKeys from 'lodash/mapKeys';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Converts status information into a class string. Status keys are converted to
|
|
7
|
+
* kebab-case and joined with the default class.
|
|
8
|
+
*
|
|
9
|
+
* This is the shared implementation behind the `useStatusClasses` hook; it exists
|
|
10
|
+
* as a plain function so render-prop components (e.g. React Aria wrappers) can
|
|
11
|
+
* build the same status classes from values that are only available inside a
|
|
12
|
+
* callback, where hooks cannot be called.
|
|
13
|
+
*
|
|
14
|
+
* e.g. getStatusClasses('thing', { isDisabled: true }) => "thing is-disabled"
|
|
15
|
+
*/
|
|
16
|
+
var getStatusClasses = function getStatusClasses(defaultClass) {
|
|
17
|
+
var statuses = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
18
|
+
return classnames(defaultClass, mapKeys(statuses, function (_v, k) {
|
|
19
|
+
return kebabCase(k);
|
|
20
|
+
}));
|
|
21
|
+
};
|
|
22
|
+
export default getStatusClasses;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pingux/astro",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.236.0",
|
|
4
4
|
"description": "React component library for Ping Identity's design system",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -86,13 +86,15 @@
|
|
|
86
86
|
"@react-stately/dnd": "3.0.0",
|
|
87
87
|
"@react-stately/grid": "~3.3.1",
|
|
88
88
|
"@react-stately/layout": "^3.13.4",
|
|
89
|
-
"@react-stately/
|
|
90
|
-
"@react-stately/
|
|
91
|
-
"@react-stately/
|
|
89
|
+
"@react-stately/combobox": "^3.14.1",
|
|
90
|
+
"@react-stately/list": "^3.14.1",
|
|
91
|
+
"@react-stately/overlays": "^3.7.1",
|
|
92
|
+
"@react-stately/select": "^3.10.1",
|
|
92
93
|
"@react-stately/selection": "^3.15.0",
|
|
93
|
-
"@react-stately/table": "^3.
|
|
94
|
-
"@react-stately/tabs": "^3.
|
|
94
|
+
"@react-stately/table": "^3.16.1",
|
|
95
|
+
"@react-stately/tabs": "^3.9.1",
|
|
95
96
|
"@react-stately/toggle": "^3.8.5",
|
|
97
|
+
"@react-stately/tooltip": "^3.6.1",
|
|
96
98
|
"@react-stately/tree": "^3.7.4",
|
|
97
99
|
"@react-stately/virtualizer": "~3.6.5",
|
|
98
100
|
"@react-types/combobox": "^3.13.8",
|
|
@@ -116,6 +118,7 @@
|
|
|
116
118
|
"prismjs": "^1.27.0",
|
|
117
119
|
"prop-types": "^15.7.2",
|
|
118
120
|
"react-aria": "~3.19.0",
|
|
121
|
+
"react-aria-components": "1.20.0",
|
|
119
122
|
"react-color": "^2.19.3",
|
|
120
123
|
"react-dropzone": "^11.4.2",
|
|
121
124
|
"react-stately": "^3.31.0",
|