@balena/ui-shared-components 15.2.3-build-remove-column-management-experimental-code-de33678223e6bf951dd9f3c088b22117fa13bf0a-1 → 15.2.3-build-material-7-36076d224af2d4134f2375ef50f71e060cce68e0-1
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/dist/components/DownloadImageDialog/index.js +1 -1
- package/dist/components/Form/FieldTemplates/ObjectFieldTemplate.js +5 -5
- package/dist/components/Form/index.js +2 -3
- package/dist/components/RJST/components/Filters/FilterDescription.js +1 -1
- package/dist/components/RJST/components/Filters/FiltersDialog.js +32 -28
- package/dist/components/RJST/components/Table/TableActions.js +13 -3
- package/dist/theme.d.ts +10 -11
- package/dist/theme.js +1 -1
- package/package.json +13 -11
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Avatar, DialogActions, DialogContent, Divider,
|
|
2
|
+
import { Avatar, DialogActions, DialogContent, Divider, Grid, Stack, Typography, } from '@mui/material';
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { FALLBACK_LOGO_UNKNOWN_DEVICE, isUrlAccessible, stripVersionBuild, } from './utils';
|
|
5
5
|
import { GENERIC_X86_MINIMUM_SUPPORTED_SECUREBOOT_VERSION, GENERIC_X86_SLUG, ImageForm, } from './ImageForm';
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import Grid from '@mui/material
|
|
2
|
+
import { Grid } from '@mui/material';
|
|
3
3
|
import { canExpand, descriptionId, getTemplate, getUiOptions, titleId, } from '@rjsf/utils';
|
|
4
4
|
export const ObjectFieldTemplate = (props) => {
|
|
5
5
|
var _a, _b;
|
|
6
|
-
const { description, title, properties, required, disabled, readonly, uiSchema,
|
|
6
|
+
const { description, title, properties, required, disabled, readonly, uiSchema, fieldPathId, schema, formData, onAddProperty, registry, } = props;
|
|
7
7
|
const uiOptions = getUiOptions(uiSchema);
|
|
8
8
|
const TitleFieldTemplate = getTemplate('TitleFieldTemplate', registry, uiOptions);
|
|
9
9
|
const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, uiOptions);
|
|
10
10
|
const { ButtonTemplates: { AddButton }, } = registry.templates;
|
|
11
|
-
return (_jsxs(_Fragment, { children: [title && (_jsx(TitleFieldTemplate, { id: titleId(
|
|
11
|
+
return (_jsxs(_Fragment, { children: [title && (_jsx(TitleFieldTemplate, { id: titleId(fieldPathId), title: title, required: required, schema: schema, uiSchema: uiSchema, registry: registry })), description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(fieldPathId), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), _jsxs(Grid, Object.assign({ container: true, spacing: 2, style: { marginTop: '10px' } }, ((_b = (_a = uiSchema === null || uiSchema === void 0 ? void 0 : uiSchema['ui:grid']) === null || _a === void 0 ? void 0 : _a.container) !== null && _b !== void 0 ? _b : {}), { children: [properties.map((element, index) => {
|
|
12
12
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
13
|
-
return element.hidden ? (element.content) : (_jsx(Grid, Object.assign({ item: true,
|
|
14
|
-
}), canExpand(schema, uiSchema, formData) && (_jsx(Grid, { container: true, justifyContent: "flex-end", children: _jsx(Grid, {
|
|
13
|
+
return element.hidden ? (element.content) : (_jsx(Grid, Object.assign({ item: true, size: 12, sx: { marginBottom: '10px' } }, ((_g = (_e = (_c = (_b = (_a = uiSchema === null || uiSchema === void 0 ? void 0 : uiSchema[element.name]) === null || _a === void 0 ? void 0 : _a['ui:grid']) === null || _b === void 0 ? void 0 : _b.item) !== null && _c !== void 0 ? _c : (_d = uiSchema === null || uiSchema === void 0 ? void 0 : uiSchema['ui:grid']) === null || _d === void 0 ? void 0 : _d[element.name]) !== null && _e !== void 0 ? _e : (_f = uiSchema === null || uiSchema === void 0 ? void 0 : uiSchema['ui:grid']) === null || _f === void 0 ? void 0 : _f.item) !== null && _g !== void 0 ? _g : {}), { children: element.content }), index));
|
|
14
|
+
}), canExpand(schema, uiSchema, formData) && (_jsx(Grid, { container: true, justifyContent: "flex-end", children: _jsx(Grid, { children: _jsx(AddButton, { className: "object-property-expand", onClick: onAddProperty,
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- If `disabled` is false, we still want to disable the button if `readonly` is true
|
|
16
16
|
disabled: disabled || readonly, uiSchema: uiSchema, registry: registry }) }) }))] }))] }));
|
|
17
17
|
};
|
|
@@ -7,7 +7,6 @@ import { PasswordWidget } from './Widgets/PasswordWidget';
|
|
|
7
7
|
import { SelectWidget } from './Widgets/SelectWidget';
|
|
8
8
|
import { FileWidget } from './Widgets/FileWidget';
|
|
9
9
|
import { Fragment, forwardRef } from 'react';
|
|
10
|
-
import { ObjectFieldTemplate } from './FieldTemplates/ObjectFieldTemplate';
|
|
11
10
|
import { Templates } from '@rjsf/mui';
|
|
12
11
|
const internalWidgets = {
|
|
13
12
|
PasswordWidget,
|
|
@@ -16,14 +15,14 @@ const internalWidgets = {
|
|
|
16
15
|
};
|
|
17
16
|
const FormWrapper = styled('div')({
|
|
18
17
|
// Target the Paper component within the array container
|
|
19
|
-
'& .field-array .MuiPaper-root.MuiPaper-elevation': {
|
|
18
|
+
'& .rjsf-field-array .MuiPaper-root.MuiPaper-elevation': {
|
|
20
19
|
boxShadow: 'none',
|
|
21
20
|
},
|
|
22
21
|
});
|
|
23
22
|
export const RJSForm = forwardRef(function RJSForm(_a, ref) {
|
|
24
23
|
var { hideSubmitButton, submitButtonProps, actionButtons, validator = ajvValidator, widgets, children, sx, onFocus, onBlur, onClick, templates } = _a, otherProps = __rest(_a, ["hideSubmitButton", "submitButtonProps", "actionButtons", "validator", "widgets", "children", "sx", "onFocus", "onBlur", "onClick", "templates"]);
|
|
25
24
|
// paddingY is resolving an outline glitch that is truncated when inside a container.
|
|
26
|
-
return (_jsx(FormWrapper, { children: _jsx(Box, { sx: Object.assign({ paddingY: '1px' }, sx), onFocus: onFocus, onBlur: onBlur, onClick: onClick, children: _jsxs(Form, Object.assign({ ref: ref, validator: validator, showErrorList: false, widgets: Object.assign(Object.assign({}, internalWidgets), (widgets !== null && widgets !== void 0 ? widgets : {})), templates:
|
|
25
|
+
return (_jsx(FormWrapper, { children: _jsx(Box, { sx: Object.assign({ paddingY: '1px' }, sx), onFocus: onFocus, onBlur: onBlur, onClick: onClick, children: _jsxs(Form, Object.assign({ ref: ref, validator: validator, showErrorList: false, widgets: Object.assign(Object.assign({}, internalWidgets), (widgets !== null && widgets !== void 0 ? widgets : {})), templates: templates }, otherProps, { children: [hideSubmitButton && _jsx(Fragment, {}), actionButtons === null || actionButtons === void 0 ? void 0 : actionButtons.map((_a, index) => {
|
|
27
26
|
var { sx: actionButtonSx } = _a, buttonProps = __rest(_a, ["sx"]);
|
|
28
27
|
return (_jsx(Button, Object.assign({ sx: [
|
|
29
28
|
{
|
|
@@ -14,7 +14,7 @@ const transformToReadableValue = (parsedFilterDescription) => {
|
|
|
14
14
|
return dateFormat(value, 'PPPppp');
|
|
15
15
|
}
|
|
16
16
|
const schemaEnum = findInObject(schema, 'enum');
|
|
17
|
-
const schemaEnumNames = findInObject(schema, 'enumNames');
|
|
17
|
+
const schemaEnumNames = findInObject(schema, 'ui:enumNames');
|
|
18
18
|
if (schemaEnum && schemaEnumNames) {
|
|
19
19
|
const index = schemaEnum.findIndex((a) => isEqual(a, value));
|
|
20
20
|
return schemaEnumNames[index];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { useTranslation } from '../../../../hooks/useTranslations';
|
|
4
4
|
import { getDataModel, getPropertySchemaAndModel } from '../../DataTypes';
|
|
@@ -13,28 +13,31 @@ import { findInObject } from '../../utils';
|
|
|
13
13
|
import { getRefSchema } from '../../schemaOps';
|
|
14
14
|
import { DialogWithCloseButton } from '../../../DialogWithCloseButton';
|
|
15
15
|
import { RJSForm } from '../../../Form';
|
|
16
|
+
import { ObjectFieldTemplate } from '../../../Form/FieldTemplates/ObjectFieldTemplate';
|
|
16
17
|
const ArrayFieldTemplate = ({ items, canAdd, onAddClick, }) => {
|
|
17
18
|
const { t } = useTranslation();
|
|
18
|
-
return (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
19
|
+
return (_jsxs(Box, { className: "array", children: [items, canAdd && (_jsx(Box, { className: "rjsf-array-item-add", children: _jsx(Button, { "aria-label": t('aria_labels.add_filter_in_or'), variant: "text", color: "primary", onClick: onAddClick, startIcon: _jsx(FontAwesomeIcon, { icon: faPlus }), children: t('actions.add_alternative') }) }))] }));
|
|
20
|
+
};
|
|
21
|
+
const ArrayFieldItemTemplate = ({ children, buttonsProps, itemKey, index, }) => {
|
|
22
|
+
const { t } = useTranslation();
|
|
23
|
+
return (_jsxs(Box, { className: "rjsf-array-item", children: [index > 0 && (_jsx(Typography, { sx: {
|
|
24
|
+
width: 'calc(100% - 50px)',
|
|
25
|
+
textAlign: 'center',
|
|
26
|
+
fontWeight: 'bold',
|
|
27
|
+
}, children: t('commons.or').toUpperCase() })), _jsxs(Box, { sx: {
|
|
28
|
+
display: 'flex',
|
|
29
|
+
'& .rjsf-field.rjsf-field-object': {
|
|
30
|
+
display: 'flex',
|
|
31
|
+
flex: 1,
|
|
32
|
+
},
|
|
33
|
+
'& label': {
|
|
34
|
+
display: 'none',
|
|
35
|
+
},
|
|
36
|
+
// This is necessary to remove the gap of Tags label. RJSF render nested objects with multi label levels.
|
|
37
|
+
'.MuiGrid-root > .rjsf-field.rjsf-field-object > .MuiFormControl-root > .MuiGrid-root.MuiGrid-container.MuiGrid-spacing-xs-2': {
|
|
38
|
+
marginTop: '-8px!important',
|
|
39
|
+
},
|
|
40
|
+
}, children: [children, _jsx(Box, { display: "flex", width: "50px", alignItems: "center", justifyContent: "center", children: index !== 0 && (_jsx(IconButton, { "aria-label": t('actions.remove_filter'), onClick: buttonsProps.onRemoveItem, sx: { mt: 2 }, className: "rjsf-array-item-remove", children: _jsx(FontAwesomeIcon, { icon: faTimes }) })) })] })] }, itemKey));
|
|
38
41
|
};
|
|
39
42
|
const widgets = {
|
|
40
43
|
CheckboxWidget: SelectWidget,
|
|
@@ -151,9 +154,9 @@ export const FiltersDialog = ({ schema, data = initialFormData, onClose, }) => {
|
|
|
151
154
|
},
|
|
152
155
|
uiSchema: {
|
|
153
156
|
'ui:grid': {
|
|
154
|
-
field: { xs: 4, sm: 4 },
|
|
155
|
-
operator: { xs: 4, sm: 4 },
|
|
156
|
-
value: { xs: 4, sm: 4 },
|
|
157
|
+
field: { size: { xs: 4, sm: 4 } },
|
|
158
|
+
operator: { size: { xs: 4, sm: 4 } },
|
|
159
|
+
value: { size: { xs: 4, sm: 4 } },
|
|
157
160
|
},
|
|
158
161
|
field: {
|
|
159
162
|
'ui:readonly': true,
|
|
@@ -175,11 +178,12 @@ export const FiltersDialog = ({ schema, data = initialFormData, onClose, }) => {
|
|
|
175
178
|
}));
|
|
176
179
|
const uiSchema = {
|
|
177
180
|
'ui:ArrayFieldTemplate': ArrayFieldTemplate,
|
|
181
|
+
'ui:ArrayFieldItemTemplate': ArrayFieldItemTemplate,
|
|
178
182
|
items: {
|
|
179
183
|
'ui:grid': {
|
|
180
|
-
field: { xs: 4, sm: 4 },
|
|
181
|
-
operator: { xs: 4, sm: 4 },
|
|
182
|
-
value: { xs: 4, sm: 4 },
|
|
184
|
+
field: { size: { xs: 4, sm: 4 } },
|
|
185
|
+
operator: { size: { xs: 4, sm: 4 } },
|
|
186
|
+
value: { size: { xs: 4, sm: 4 } },
|
|
183
187
|
},
|
|
184
188
|
value: {},
|
|
185
189
|
},
|
|
@@ -241,5 +245,5 @@ export const FiltersDialog = ({ schema, data = initialFormData, onClose, }) => {
|
|
|
241
245
|
onClick: () => {
|
|
242
246
|
setIsFirstValidation(false);
|
|
243
247
|
},
|
|
244
|
-
} })) }) }));
|
|
248
|
+
}, templates: { ObjectFieldTemplate } })) }) }));
|
|
245
249
|
};
|
|
@@ -8,20 +8,25 @@ import { token } from '../../../../utils/token';
|
|
|
8
8
|
import { DndContext } from '@dnd-kit/core';
|
|
9
9
|
import { CSS } from '@dnd-kit/utilities';
|
|
10
10
|
import { arrayMove, SortableContext, useSortable } from '@dnd-kit/sortable';
|
|
11
|
+
import { useAnalyticsContext } from '../../../../contexts/AnalyticsContext';
|
|
11
12
|
const SortableItem = ({ column, handleColumnSelection, }) => {
|
|
13
|
+
var _a, _b, _c, _d;
|
|
14
|
+
const { state: analyticsState } = useAnalyticsContext();
|
|
12
15
|
const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id: column.key });
|
|
13
|
-
return (_jsxs(MenuItem, Object.assign({ ref: setNodeRef }, attributes, { sx: { transform: CSS.Transform.toString(transform), transition }, children: [
|
|
16
|
+
return (_jsxs(MenuItem, Object.assign({ ref: setNodeRef }, attributes, { sx: { transform: CSS.Transform.toString(transform), transition }, children: [(((_b = (_a = analyticsState.featureFlags) === null || _a === void 0 ? void 0 : _a['column-ordering']) === null || _b === void 0 ? void 0 : _b.value) === 'on' ||
|
|
17
|
+
((_d = (_c = analyticsState.featureFlags) === null || _c === void 0 ? void 0 : _c['reduced-default-device-columns-and-reordering']) === null || _d === void 0 ? void 0 : _d.value) === 'on') && (_jsx(ListItemIcon, Object.assign({}, listeners, { sx: {
|
|
14
18
|
cursor: 'grab',
|
|
15
19
|
pr: 2,
|
|
16
20
|
mx: 0,
|
|
17
21
|
minWidth: 'auto !important',
|
|
18
|
-
}, children: _jsx(FontAwesomeIcon, { icon: faGripVertical }) })), _jsx(FormControlLabel, { sx: { flex: 1, width: '100%', m: 0 }, control: _jsx(Checkbox, { sx: { m: 0 }, onClick: () => {
|
|
22
|
+
}, children: _jsx(FontAwesomeIcon, { icon: faGripVertical }) }))), _jsx(FormControlLabel, { sx: { flex: 1, width: '100%', m: 0 }, control: _jsx(Checkbox, { sx: { m: 0 }, onClick: () => {
|
|
19
23
|
handleColumnSelection(column);
|
|
20
24
|
}, checked: column.selected }), label: typeof column.label === 'string' ? column.label : column.title })] })));
|
|
21
25
|
};
|
|
22
26
|
export const TableActions = ({ columns, actions, onColumnPreferencesChange, onManageColumnsOpen, }) => {
|
|
23
27
|
const [anchorEl, setAnchorEl] = React.useState();
|
|
24
28
|
const theme = useTheme();
|
|
29
|
+
const { state: analyticsState } = useAnalyticsContext();
|
|
25
30
|
const matches = useMediaQuery(theme.breakpoints.up('sm'));
|
|
26
31
|
const open = Boolean(anchorEl);
|
|
27
32
|
const handleClick = (event) => {
|
|
@@ -43,8 +48,13 @@ export const TableActions = ({ columns, actions, onColumnPreferencesChange, onMa
|
|
|
43
48
|
onColumnPreferencesChange(newColumns, 'display');
|
|
44
49
|
}, [columns, onColumnPreferencesChange]);
|
|
45
50
|
const handleDragEnd = (event) => {
|
|
51
|
+
var _a, _b, _c, _d;
|
|
46
52
|
const { active, over } = event;
|
|
47
|
-
if (!active ||
|
|
53
|
+
if (!active ||
|
|
54
|
+
!over ||
|
|
55
|
+
!onColumnPreferencesChange ||
|
|
56
|
+
(!(((_b = (_a = analyticsState.featureFlags) === null || _a === void 0 ? void 0 : _a['column-reordering']) === null || _b === void 0 ? void 0 : _b.value) === 'on') &&
|
|
57
|
+
!(((_d = (_c = analyticsState.featureFlags) === null || _c === void 0 ? void 0 : _c['reduced-default-device-columns-and-reordering']) === null || _d === void 0 ? void 0 : _d.value) === 'on'))) {
|
|
48
58
|
return;
|
|
49
59
|
}
|
|
50
60
|
const oldIndex = columns.findIndex((c) => c.key === active.id);
|
package/dist/theme.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { PaletteColorOptions, TypographyStyle } from '@mui/material';
|
|
2
|
-
import type { TypographyStyleOptions } from '@mui/material/styles/createTypography';
|
|
3
2
|
import type { ColorTokens, ShapeTokens, SpacingTokens, TypographyTokens } from '@balena/design-tokens';
|
|
4
3
|
import { type IconDefinition } from '@fortawesome/free-solid-svg-icons';
|
|
5
4
|
export type Severity = 'info' | 'success' | 'warning' | 'danger';
|
|
@@ -45,16 +44,16 @@ declare module '@mui/material/styles' {
|
|
|
45
44
|
codeSm: TypographyStyle;
|
|
46
45
|
}
|
|
47
46
|
interface TypographyVariantsOptions {
|
|
48
|
-
bodyLg:
|
|
49
|
-
body:
|
|
50
|
-
bodySm:
|
|
51
|
-
titleLg:
|
|
52
|
-
title:
|
|
53
|
-
titleSm:
|
|
54
|
-
display:
|
|
55
|
-
codeLg:
|
|
56
|
-
code:
|
|
57
|
-
codeSm:
|
|
47
|
+
bodyLg: TypographyStyle | undefined;
|
|
48
|
+
body: TypographyStyle | undefined;
|
|
49
|
+
bodySm: TypographyStyle | undefined;
|
|
50
|
+
titleLg: TypographyStyle | undefined;
|
|
51
|
+
title: TypographyStyle | undefined;
|
|
52
|
+
titleSm: TypographyStyle | undefined;
|
|
53
|
+
display: TypographyStyle | undefined;
|
|
54
|
+
codeLg: TypographyStyle | undefined;
|
|
55
|
+
code: TypographyStyle | undefined;
|
|
56
|
+
codeSm: TypographyStyle | undefined;
|
|
58
57
|
}
|
|
59
58
|
interface TypeText {
|
|
60
59
|
primary: string;
|
package/dist/theme.js
CHANGED
|
@@ -1152,7 +1152,7 @@ export const theme = createTheme({
|
|
|
1152
1152
|
},
|
|
1153
1153
|
},
|
|
1154
1154
|
},
|
|
1155
|
-
|
|
1155
|
+
MuiGrid: {
|
|
1156
1156
|
// We should only apply this spacing to Grid components with `container`
|
|
1157
1157
|
// But MUI does not currently support that for defaultProps
|
|
1158
1158
|
// See: https://github.com/mui/material-ui/issues/34812
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@balena/ui-shared-components",
|
|
3
|
-
"version": "15.2.3-build-
|
|
3
|
+
"version": "15.2.3-build-material-7-36076d224af2d4134f2375ef50f71e060cce68e0-1",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"files": [
|
|
@@ -18,15 +18,15 @@
|
|
|
18
18
|
"@emotion/styled": "^11.10.6",
|
|
19
19
|
"@fortawesome/free-solid-svg-icons": "^7.1.0",
|
|
20
20
|
"@fortawesome/react-fontawesome": "^3.1.0",
|
|
21
|
-
"@mui/lab": "
|
|
22
|
-
"@mui/material": "^
|
|
23
|
-
"@mui/styled-engine-sc": "^
|
|
24
|
-
"@mui/x-data-grid": "^7.
|
|
21
|
+
"@mui/lab": "7.0.0-beta.14",
|
|
22
|
+
"@mui/material": "^7.3.5",
|
|
23
|
+
"@mui/styled-engine-sc": "^7.3.5",
|
|
24
|
+
"@mui/x-data-grid": "^7.29.8",
|
|
25
25
|
"@react-google-maps/api": "^2.18.1",
|
|
26
|
-
"@rjsf/core": "^
|
|
27
|
-
"@rjsf/mui": "^
|
|
28
|
-
"@rjsf/utils": "^
|
|
29
|
-
"@rjsf/validator-ajv8": "^
|
|
26
|
+
"@rjsf/core": "^6.0.1",
|
|
27
|
+
"@rjsf/mui": "^6.0.1",
|
|
28
|
+
"@rjsf/utils": "^6.0.1",
|
|
29
|
+
"@rjsf/validator-ajv8": "^6.0.1",
|
|
30
30
|
"@tanstack/react-query": "^5.64.2",
|
|
31
31
|
"@types/jest": "^29.5.14",
|
|
32
32
|
"ajv": "^8.17.1",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"react-dom": "^18.2.0",
|
|
46
46
|
"react-dropzone": "^14.2.3",
|
|
47
47
|
"react-helmet": "^6.1.0",
|
|
48
|
+
"react-is": "^18.2.0",
|
|
48
49
|
"react-markdown": "^10.0.0",
|
|
49
50
|
"react-router-dom": "^6.28.0",
|
|
50
51
|
"remark-breaks": "^4.0.0",
|
|
@@ -134,9 +135,10 @@
|
|
|
134
135
|
},
|
|
135
136
|
"homepage": "https://github.com/balena-io/ui-shared-components#readme",
|
|
136
137
|
"versionist": {
|
|
137
|
-
"publishedAt": "2025-11-
|
|
138
|
+
"publishedAt": "2025-11-06T17:55:54.553Z"
|
|
138
139
|
},
|
|
139
140
|
"overrides": {
|
|
140
|
-
"storybook": "$storybook"
|
|
141
|
+
"storybook": "$storybook",
|
|
142
|
+
"react-is": "^18.2.0"
|
|
141
143
|
}
|
|
142
144
|
}
|