@deque/cauldron-react 4.0.0 → 4.1.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/components/Checkbox/index.d.ts +1 -0
- package/lib/components/Icon/types.d.ts +1 -1
- package/lib/components/RadioGroup/index.d.ts +2 -0
- package/lib/components/Table/TableHeader.d.ts +6 -1
- package/lib/index.js +38 -13
- package/lib/resend.js +24 -0
- package/lib/sort-triangle.js +24 -0
- package/package.json +2 -2
|
@@ -2,6 +2,7 @@ import React, { InputHTMLAttributes, Ref } from 'react';
|
|
|
2
2
|
export interface CheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
3
3
|
id: string;
|
|
4
4
|
label: React.ReactNode;
|
|
5
|
+
labelDescription?: string;
|
|
5
6
|
error?: React.ReactNode;
|
|
6
7
|
customIcon?: React.ReactNode;
|
|
7
8
|
checkboxRef?: Ref<HTMLInputElement>;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* GENERATED CODE. DO NOT EDIT DIRECTLY!
|
|
3
3
|
*/
|
|
4
4
|
/** IconType represents each valid icon type. */
|
|
5
|
-
export declare type IconType = 'add-user' | 'arrow-circle-up' | 'arrow-circle-down' | 'arrow-circle-left' | 'arrow-circle-right' | 'arrow-up' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrows-alt' | 'bolt' | 'caution' | 'check-circle' | 'check-shield' | 'check-solid' | 'check' | 'checkbox-checked' | 'checkbox-unchecked' | 'chevron-double-up' | 'chevron-double-down' | 'chevron-double-left' | 'chevron-double-right' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'close' | 'code' | 'copy' | 'download' | 'exchange' | 'external-link' | 'eye' | 'filter' | 'flag' | 'gears' | 'grid' | 'hamburger-menu' | 'highlight' | 'info-circle-alt' | 'info-circle' | 'info-square' | 'kabob' | 'list' | 'lock' | 'magnifying-glass' | 'menu' | 'new-releases' | 'new' | 'no' | 'pencil' | 'plus' | 'question-circle' | 'radio-checked' | 'radio-unchecked' | 'recycle' | 'robot' | 'run-again' | 'save' | 'share' | 'sort' | 'star' | 'sun' | 'tag' | 'target' | 'trash' | 'triangle-up' | 'triangle-down' | 'triangle-left' | 'triangle-right' | 'upload';
|
|
5
|
+
export declare type IconType = 'add-user' | 'arrow-circle-up' | 'arrow-circle-down' | 'arrow-circle-left' | 'arrow-circle-right' | 'arrow-up' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrows-alt' | 'bolt' | 'caution' | 'check-circle' | 'check-shield' | 'check-solid' | 'check' | 'checkbox-checked' | 'checkbox-unchecked' | 'chevron-double-up' | 'chevron-double-down' | 'chevron-double-left' | 'chevron-double-right' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'close' | 'code' | 'copy' | 'download' | 'exchange' | 'external-link' | 'eye' | 'filter' | 'flag' | 'gears' | 'grid' | 'hamburger-menu' | 'highlight' | 'info-circle-alt' | 'info-circle' | 'info-square' | 'kabob' | 'list' | 'lock' | 'magnifying-glass' | 'menu' | 'new-releases' | 'new' | 'no' | 'pencil' | 'plus' | 'question-circle' | 'radio-checked' | 'radio-unchecked' | 'recycle' | 'resend' | 'robot' | 'run-again' | 'save' | 'share' | 'sort-triangle' | 'sort' | 'star' | 'sun' | 'tag' | 'target' | 'trash' | 'triangle-up' | 'triangle-down' | 'triangle-left' | 'triangle-right' | 'upload';
|
|
6
6
|
/** iconTypes holds each valid icon type. */
|
|
7
7
|
export declare const iconTypes: string[];
|
|
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
export interface RadioItem extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
4
4
|
label: string;
|
|
5
5
|
value?: string;
|
|
6
|
+
labelDescription?: string;
|
|
6
7
|
}
|
|
7
8
|
export interface RadioGroupProps {
|
|
8
9
|
name?: string;
|
|
@@ -20,6 +21,7 @@ declare const RadioGroup: {
|
|
|
20
21
|
value: PropTypes.Validator<string>;
|
|
21
22
|
id: PropTypes.Validator<string>;
|
|
22
23
|
label: PropTypes.Validator<string>;
|
|
24
|
+
labelDescription: PropTypes.Requireable<string>;
|
|
23
25
|
}> | null | undefined)[]>;
|
|
24
26
|
hasLabel: (props: {
|
|
25
27
|
[key: string]: string;
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import React, { ThHTMLAttributes } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
+
declare type SortDirection = 'ascending' | 'descending' | 'none';
|
|
3
4
|
interface TableHeaderProps extends ThHTMLAttributes<HTMLTableCellElement> {
|
|
4
5
|
children: React.ReactNode;
|
|
6
|
+
sortDirection?: SortDirection;
|
|
7
|
+
onSort?: () => void;
|
|
5
8
|
className?: string;
|
|
6
9
|
}
|
|
7
10
|
declare const TableHeader: {
|
|
8
|
-
({ children, className, ...other }: TableHeaderProps): JSX.Element;
|
|
11
|
+
({ children, sortDirection, onSort, className, ...other }: TableHeaderProps): JSX.Element;
|
|
9
12
|
displayName: string;
|
|
10
13
|
propTypes: {
|
|
11
14
|
children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
|
|
15
|
+
sortDirection: PropTypes.Requireable<string>;
|
|
16
|
+
onSort: PropTypes.Requireable<(...args: any[]) => any>;
|
|
12
17
|
className: PropTypes.Requireable<string>;
|
|
13
18
|
};
|
|
14
19
|
};
|
package/lib/index.js
CHANGED
|
@@ -173,10 +173,12 @@ var iconTypes = [
|
|
|
173
173
|
'radio-checked',
|
|
174
174
|
'radio-unchecked',
|
|
175
175
|
'recycle',
|
|
176
|
+
'resend',
|
|
176
177
|
'robot',
|
|
177
178
|
'run-again',
|
|
178
179
|
'save',
|
|
179
180
|
'share',
|
|
181
|
+
'sort-triangle',
|
|
180
182
|
'sort',
|
|
181
183
|
'star',
|
|
182
184
|
'sun',
|
|
@@ -236,10 +238,12 @@ function __variableDynamicImportRuntime0__(path) {
|
|
|
236
238
|
case './icons/radio-checked.svg': return Promise.resolve().then(function () { return require('./radio-checked.js'); });
|
|
237
239
|
case './icons/radio-unchecked.svg': return Promise.resolve().then(function () { return require('./radio-unchecked.js'); });
|
|
238
240
|
case './icons/recycle.svg': return Promise.resolve().then(function () { return require('./recycle.js'); });
|
|
241
|
+
case './icons/resend.svg': return Promise.resolve().then(function () { return require('./resend.js'); });
|
|
239
242
|
case './icons/robot.svg': return Promise.resolve().then(function () { return require('./robot.js'); });
|
|
240
243
|
case './icons/run-again.svg': return Promise.resolve().then(function () { return require('./run-again.js'); });
|
|
241
244
|
case './icons/save.svg': return Promise.resolve().then(function () { return require('./save.js'); });
|
|
242
245
|
case './icons/share.svg': return Promise.resolve().then(function () { return require('./share.js'); });
|
|
246
|
+
case './icons/sort-triangle.svg': return Promise.resolve().then(function () { return require('./sort-triangle.js'); });
|
|
243
247
|
case './icons/sort.svg': return Promise.resolve().then(function () { return require('./sort.js'); });
|
|
244
248
|
case './icons/star.svg': return Promise.resolve().then(function () { return require('./star.js'); });
|
|
245
249
|
case './icons/sun.svg': return Promise.resolve().then(function () { return require('./sun.js'); });
|
|
@@ -2326,7 +2330,7 @@ var RadioGroup = function (_a) {
|
|
|
2326
2330
|
setCurrentValue(value);
|
|
2327
2331
|
}, [value]);
|
|
2328
2332
|
var radioButtons = radios.map(function (radio, index) {
|
|
2329
|
-
var label = radio.label, disabled = radio.disabled, radioValue = radio.value, id = radio.id, className = radio.className, other = tslib.__rest(radio, ["label", "disabled", "value", "id", "className"]);
|
|
2333
|
+
var label = radio.label, disabled = radio.disabled, radioValue = radio.value, labelDescription = radio.labelDescription, id = radio.id, className = radio.className, other = tslib.__rest(radio, ["label", "disabled", "value", "labelDescription", "id", "className"]);
|
|
2330
2334
|
var isChecked = currentValue === radioValue;
|
|
2331
2335
|
var isFocused = focusIndex === index;
|
|
2332
2336
|
return (React__default.createElement("div", { className: classNames('Radio is--flex-row', className), key: id },
|
|
@@ -2339,14 +2343,17 @@ var RadioGroup = function (_a) {
|
|
|
2339
2343
|
var _a;
|
|
2340
2344
|
handleChange(radioValue);
|
|
2341
2345
|
onChange(radio, (_a = inputs.current) === null || _a === void 0 ? void 0 : _a[index]);
|
|
2342
|
-
}, disabled: disabled, checked: isChecked }, other)),
|
|
2346
|
+
}, disabled: disabled, checked: isChecked, "aria-describedby": labelDescription && id + "Desc" }, other)),
|
|
2343
2347
|
React__default.createElement("label", { htmlFor: id, className: classNames('Field__label', {
|
|
2344
2348
|
'Field__label--disabled': disabled
|
|
2345
2349
|
}) }, label),
|
|
2346
2350
|
React__default.createElement(Icon, { className: classNames('Radio__overlay', {
|
|
2347
2351
|
'Radio__overlay--focused': isFocused,
|
|
2348
2352
|
'Radio__overlay--disabled': disabled
|
|
2349
|
-
}), type: isChecked ? 'radio-checked' : 'radio-unchecked', "aria-hidden": "true", onClick: function () { return onRadioClick(index); } })
|
|
2353
|
+
}), type: isChecked ? 'radio-checked' : 'radio-unchecked', "aria-hidden": "true", onClick: function () { return onRadioClick(index); } }),
|
|
2354
|
+
labelDescription && (React__default.createElement("span", { id: id + "Desc", className: classNames('Field__labelDescription', {
|
|
2355
|
+
'Field__labelDescription--disabled': disabled
|
|
2356
|
+
}) }, labelDescription))));
|
|
2350
2357
|
});
|
|
2351
2358
|
// reset the input refs array
|
|
2352
2359
|
// refs get clobbered every re-render anyway and this supports "dynamic" radios
|
|
@@ -2359,7 +2366,8 @@ RadioGroup.propTypes = {
|
|
|
2359
2366
|
radios: PropTypes.arrayOf(PropTypes.shape({
|
|
2360
2367
|
value: PropTypes.string.isRequired,
|
|
2361
2368
|
id: PropTypes.string.isRequired,
|
|
2362
|
-
label: PropTypes.string.isRequired
|
|
2369
|
+
label: PropTypes.string.isRequired,
|
|
2370
|
+
labelDescription: PropTypes.string
|
|
2363
2371
|
})).isRequired,
|
|
2364
2372
|
hasLabel: function (props, propName, componentName) {
|
|
2365
2373
|
if (!props['aria-label'] && !props['aria-labelledby']) {
|
|
@@ -2373,7 +2381,7 @@ RadioGroup.propTypes = {
|
|
|
2373
2381
|
RadioGroup.displayName = 'RadioGroup';
|
|
2374
2382
|
|
|
2375
2383
|
var Checkbox = React.forwardRef(function (_a, ref) {
|
|
2376
|
-
var id = _a.id, label = _a.label, error = _a.error, checkboxRef = _a.checkboxRef, className = _a.className, onChange = _a.onChange, ariaDescribedby = _a["aria-describedby"], _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.checked, checked = _c === void 0 ? false : _c, other = tslib.__rest(_a, ["id", "label", "error", "checkboxRef", "className", "onChange", 'aria-describedby', "disabled", "checked"]);
|
|
2384
|
+
var id = _a.id, label = _a.label, labelDescription = _a.labelDescription, error = _a.error, checkboxRef = _a.checkboxRef, className = _a.className, onChange = _a.onChange, ariaDescribedby = _a["aria-describedby"], _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.checked, checked = _c === void 0 ? false : _c, other = tslib.__rest(_a, ["id", "label", "labelDescription", "error", "checkboxRef", "className", "onChange", 'aria-describedby', "disabled", "checked"]);
|
|
2377
2385
|
var _d = tslib.__read(React.useState(checked), 2), isChecked = _d[0], setIsChecked = _d[1];
|
|
2378
2386
|
var _e = tslib.__read(React.useState(false), 2), focused = _e[0], setFocused = _e[1];
|
|
2379
2387
|
var checkRef = React.useRef(null);
|
|
@@ -2384,10 +2392,19 @@ var Checkbox = React.forwardRef(function (_a, ref) {
|
|
|
2384
2392
|
if (typeof refProp === 'function') {
|
|
2385
2393
|
refProp(checkRef.current);
|
|
2386
2394
|
}
|
|
2387
|
-
var
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2395
|
+
var _f = React.useMemo(function () {
|
|
2396
|
+
return {
|
|
2397
|
+
labelDescriptionId: nextId__default(),
|
|
2398
|
+
errorId: nextId__default()
|
|
2399
|
+
};
|
|
2400
|
+
}, []), errorId = _f.errorId, labelDescriptionId = _f.labelDescriptionId;
|
|
2401
|
+
var ariaDescribedbyId = ariaDescribedby;
|
|
2402
|
+
if (error) {
|
|
2403
|
+
ariaDescribedbyId = tokenList(errorId, ariaDescribedbyId);
|
|
2404
|
+
}
|
|
2405
|
+
if (labelDescription) {
|
|
2406
|
+
ariaDescribedbyId = tokenList(labelDescriptionId, ariaDescribedbyId);
|
|
2407
|
+
}
|
|
2391
2408
|
return (React__default.createElement(React__default.Fragment, null,
|
|
2392
2409
|
React__default.createElement("div", { className: classNames('Checkbox is--flex-row', className) },
|
|
2393
2410
|
React__default.createElement("input", tslib.__assign({ id: id, ref: typeof refProp === 'function' || !refProp ? checkRef : refProp, type: "checkbox", checked: isChecked, disabled: disabled, onFocus: function () { return setFocused(true); }, onBlur: function () { return setFocused(false); }, "aria-describedby": ariaDescribedbyId, onChange: function (e) {
|
|
@@ -2411,8 +2428,9 @@ var Checkbox = React.forwardRef(function (_a, ref) {
|
|
|
2411
2428
|
else {
|
|
2412
2429
|
(_b = checkRef.current) === null || _b === void 0 ? void 0 : _b.click();
|
|
2413
2430
|
}
|
|
2414
|
-
} })
|
|
2415
|
-
|
|
2431
|
+
} }),
|
|
2432
|
+
labelDescription && (React__default.createElement("span", { id: labelDescriptionId, className: "Field__labelDescription" }, labelDescription)),
|
|
2433
|
+
error && (React__default.createElement("div", { id: errorId, className: "Error" }, error)))));
|
|
2416
2434
|
});
|
|
2417
2435
|
Checkbox.displayName = 'Checkbox';
|
|
2418
2436
|
|
|
@@ -8054,12 +8072,19 @@ TableHead.propTypes = {
|
|
|
8054
8072
|
};
|
|
8055
8073
|
|
|
8056
8074
|
var TableHeader = function (_a) {
|
|
8057
|
-
var children = _a.children, className = _a.className, other = tslib.__rest(_a, ["children", "className"]);
|
|
8058
|
-
return (React__default.createElement("th", tslib.__assign({ className: classNames('TableHeader', className
|
|
8075
|
+
var children = _a.children, sortDirection = _a.sortDirection, onSort = _a.onSort, className = _a.className, other = tslib.__rest(_a, ["children", "sortDirection", "onSort", "className"]);
|
|
8076
|
+
return (React__default.createElement("th", tslib.__assign({ "aria-sort": sortDirection, className: classNames('TableHeader', className, {
|
|
8077
|
+
'TableHeader--sort-ascending': sortDirection === 'ascending',
|
|
8078
|
+
'TableHeader--sort-descending': sortDirection === 'descending'
|
|
8079
|
+
}) }, other), !!onSort && !!sortDirection ? (React__default.createElement("button", { onClick: onSort, className: "TableHeader__sort-button", type: "button" },
|
|
8080
|
+
children,
|
|
8081
|
+
React__default.createElement("span", { "aria-hidden": "true" }, sortDirection === 'none' ? (React__default.createElement(Icon, { type: "sort-triangle" })) : sortDirection === 'ascending' ? (React__default.createElement(Icon, { type: "triangle-up" })) : (React__default.createElement(Icon, { type: "triangle-down" }))))) : (children)));
|
|
8059
8082
|
};
|
|
8060
8083
|
TableHeader.displayName = 'TableHeader';
|
|
8061
8084
|
TableHeader.propTypes = {
|
|
8062
8085
|
children: PropTypes.node.isRequired,
|
|
8086
|
+
sortDirection: PropTypes.string,
|
|
8087
|
+
onSort: PropTypes.func,
|
|
8063
8088
|
className: PropTypes.string
|
|
8064
8089
|
};
|
|
8065
8090
|
|
package/lib/resend.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var React__default = _interopDefault(React);
|
|
7
|
+
|
|
8
|
+
var _path;
|
|
9
|
+
|
|
10
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
11
|
+
|
|
12
|
+
const SvgResend = props => /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
|
+
overflow: "visible",
|
|
14
|
+
preserveAspectRatio: "none",
|
|
15
|
+
viewBox: "0 0 24 24",
|
|
16
|
+
height: 24,
|
|
17
|
+
width: 24
|
|
18
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
19
|
+
d: "M5.19 10.13a.649.649 0 0 1-.02-.92c.01 0 .01-.01.02-.02l4.13-4.14v-.72a.616.616 0 0 0-.41-.61.612.612 0 0 0-.73.15L2.86 9.19c-.26.25-.27.66-.02.92l.02.02 5.33 5.33c.12.13.29.2.47.2.09 0 .18-.02.26-.05.26-.1.42-.35.4-.62v-.72l-4.13-4.14zm16.13 4.53c.14-1.93-.49-3.84-1.76-5.3-1.33-1.33-3.41-2.1-6.24-2.3V4.33a.616.616 0 0 0-.41-.61.598.598 0 0 0-.73.15L6.86 9.19c-.26.25-.27.66-.02.92l.02.02 5.33 5.33c.12.13.29.2.47.2.09 0 .18-.02.26-.05.26-.1.42-.35.4-.62v-2.61c.95.06 1.89.24 2.79.55.68.23 1.29.63 1.78 1.15 1.03 1.15 1.39 3.12 1.1 5.91-.02.16.08.31.24.35h.09c.12.01.24-.07.29-.18l.21-.42c.1-.19.24-.51.42-.94.18-.43.35-.87.5-1.3.16-.47.29-.95.4-1.44.11-.45.17-.92.18-1.4z",
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
vectorEffect: "non-scaling-stroke"
|
|
22
|
+
})));
|
|
23
|
+
|
|
24
|
+
exports.default = SvgResend;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var React__default = _interopDefault(React);
|
|
7
|
+
|
|
8
|
+
var _path;
|
|
9
|
+
|
|
10
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
11
|
+
|
|
12
|
+
const SvgSortTriangle = props => /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
|
+
overflow: "visible",
|
|
14
|
+
preserveAspectRatio: "none",
|
|
15
|
+
viewBox: "0 0 24 24",
|
|
16
|
+
height: 24,
|
|
17
|
+
width: 24
|
|
18
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
19
|
+
d: "M17.13 13.54a.634.634 0 0 0-.47-.2H7.34c-.36 0-.66.29-.67.65 0 .18.07.35.2.48l4.66 4.66c.25.26.66.27.92.02l.02-.02 4.66-4.66c.26-.25.28-.65.03-.91-.01-.02-.02-.02-.03-.02zm0-4-4.66-4.66a.649.649 0 0 0-.92-.02l-.02.02-4.66 4.66c-.25.27-.24.69.03.95.12.11.28.18.44.18h9.33c.36 0 .66-.3.66-.66a.72.72 0 0 0-.2-.47z",
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
vectorEffect: "non-scaling-stroke"
|
|
22
|
+
})));
|
|
23
|
+
|
|
24
|
+
exports.default = SvgSortTriangle;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deque/cauldron-react",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Fully accessible react components library for Deque Cauldron",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@popperjs/core": "^2.5.4",
|
|
25
|
-
"@rollup/plugin-dynamic-import-vars": "^1.4.2",
|
|
26
25
|
"classnames": "^2.2.6",
|
|
27
26
|
"focus-trap-react": "^3.0.5",
|
|
28
27
|
"focusable": "^2.3.0",
|
|
@@ -44,6 +43,7 @@
|
|
|
44
43
|
"@babel/preset-typescript": "^7.9.0",
|
|
45
44
|
"@babel/register": "^7.9.0",
|
|
46
45
|
"@rollup/plugin-commonjs": "^14.0.0",
|
|
46
|
+
"@rollup/plugin-dynamic-import-vars": "^1.4.2",
|
|
47
47
|
"@rollup/plugin-typescript": "^5.0.2",
|
|
48
48
|
"@svgr/rollup": "^6.1.2",
|
|
49
49
|
"@types/classnames": "^2.2.10",
|