@elice/material-runbox 1.260825.0-runboxusability.12 → 1.260825.0-runboxusability.13
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/cjs/components/material-runbox/locales/en.json.js +1 -1
- package/cjs/components/material-runbox/locales/ja.json.js +1 -1
- package/cjs/components/material-runbox/locales/ko.json.js +1 -1
- package/cjs/components/material-runbox/locales/th.json.js +1 -1
- package/cjs/components/material-runbox/runtime/Runtime.js +10 -2
- package/cjs/components/material-runbox/runtime/RuntimeOverlayAssigned.d.ts +4 -1
- package/cjs/components/material-runbox/runtime/RuntimeOverlayAssigned.js +4 -5
- package/cjs/components/material-runbox/runtime/RuntimeOverlayLoading.d.ts +3 -1
- package/cjs/components/material-runbox/runtime/RuntimeOverlayLoading.js +71 -48
- package/cjs/components/material-runbox/runtime/RuntimeOverlayQueued.d.ts +4 -1
- package/cjs/components/material-runbox/runtime/RuntimeOverlayQueued.js +4 -5
- package/cjs/components/material-runbox/runtime/runtime-loading-tips.d.ts +7 -0
- package/cjs/components/material-runbox/runtime/runtime-loading-tips.js +148 -0
- package/es/components/material-runbox/locales/en.json.js +1 -1
- package/es/components/material-runbox/locales/ja.json.js +1 -1
- package/es/components/material-runbox/locales/ko.json.js +1 -1
- package/es/components/material-runbox/locales/th.json.js +1 -1
- package/es/components/material-runbox/runtime/Runtime.js +10 -2
- package/es/components/material-runbox/runtime/RuntimeOverlayAssigned.d.ts +4 -1
- package/es/components/material-runbox/runtime/RuntimeOverlayAssigned.js +4 -5
- package/es/components/material-runbox/runtime/RuntimeOverlayLoading.d.ts +3 -1
- package/es/components/material-runbox/runtime/RuntimeOverlayLoading.js +69 -50
- package/es/components/material-runbox/runtime/RuntimeOverlayQueued.d.ts +4 -1
- package/es/components/material-runbox/runtime/RuntimeOverlayQueued.js +4 -5
- package/es/components/material-runbox/runtime/runtime-loading-tips.d.ts +7 -0
- package/es/components/material-runbox/runtime/runtime-loading-tips.js +146 -0
- package/package.json +6 -6
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
1
|
+
import { slicedToArray as _slicedToArray, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useInterval } from 'react-use';
|
|
3
5
|
import { IntlComponentBuilder } from '@elice/intl';
|
|
4
6
|
import { EliceIcon } from '@elice/mui-elements';
|
|
5
7
|
import { colors } from '@elice/mui-system';
|
|
6
|
-
import { faDisplayArrowDown, faFloppyDisk } from '@fortawesome/pro-regular-svg-icons';
|
|
7
8
|
import { faCheck } from '@fortawesome/pro-solid-svg-icons';
|
|
8
|
-
import { ThemeProvider, Stack, Typography, Box, CircularProgress, alpha, LinearProgress } from '@mui/material';
|
|
9
|
+
import { ThemeProvider, Stack, Typography, Box, CircularProgress, alpha, LinearProgress, Fade } from '@mui/material';
|
|
9
10
|
import { runboxLightTheme } from '../theme.js';
|
|
11
|
+
import { getRuntimeLoadingTips } from './runtime-loading-tips.js';
|
|
10
12
|
import img from '../../../assets/runbox-loading.svg.js';
|
|
11
13
|
import messageEn from '../locales/en.json.js';
|
|
12
14
|
import messageKo from '../locales/ko.json.js';
|
|
@@ -29,21 +31,34 @@ var STEP_STATUS_ID = Object.freeze({
|
|
|
29
31
|
active: 'runbox.runtime.loading.step.status.active',
|
|
30
32
|
pending: 'runbox.runtime.loading.step.status.pending'
|
|
31
33
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
descriptionId: 'runbox.runtime.loading.note.environment.description'
|
|
36
|
-
}, {
|
|
37
|
-
icon: faFloppyDisk,
|
|
38
|
-
titleId: 'runbox.runtime.loading.note.save.title',
|
|
39
|
-
descriptionId: 'runbox.runtime.loading.note.save.description'
|
|
40
|
-
}];
|
|
34
|
+
/** Two tips fit side by side, and one pair holds long enough to read. */
|
|
35
|
+
var TIPS_PER_PAGE = 2;
|
|
36
|
+
var PAGE_DURATION_MS = 7000;
|
|
41
37
|
//
|
|
42
38
|
//
|
|
43
39
|
//
|
|
44
40
|
var RuntimeOverlayLoading = function RuntimeOverlayLoading(_ref) {
|
|
45
41
|
var intl = _ref.__intl,
|
|
46
|
-
activeStep = _ref.activeStep
|
|
42
|
+
activeStep = _ref.activeStep,
|
|
43
|
+
containerImageName = _ref.containerImageName;
|
|
44
|
+
var _React$useState = React.useState(0),
|
|
45
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
46
|
+
page = _React$useState2[0],
|
|
47
|
+
setPage = _React$useState2[1];
|
|
48
|
+
var tips = getRuntimeLoadingTips(containerImageName);
|
|
49
|
+
var shownTips = tips.slice(page * TIPS_PER_PAGE, page * TIPS_PER_PAGE + TIPS_PER_PAGE);
|
|
50
|
+
var pageCount = Math.floor(tips.length / TIPS_PER_PAGE);
|
|
51
|
+
//
|
|
52
|
+
//
|
|
53
|
+
//
|
|
54
|
+
useInterval(function () {
|
|
55
|
+
return setPage(function (current) {
|
|
56
|
+
return (current + 1) % pageCount;
|
|
57
|
+
});
|
|
58
|
+
}, pageCount > 1 ? PAGE_DURATION_MS : null);
|
|
59
|
+
//
|
|
60
|
+
//
|
|
61
|
+
//
|
|
47
62
|
return jsx(ThemeProvider, {
|
|
48
63
|
theme: runboxLightTheme,
|
|
49
64
|
children: jsxs(Stack, {
|
|
@@ -208,46 +223,50 @@ var RuntimeOverlayLoading = function RuntimeOverlayLoading(_ref) {
|
|
|
208
223
|
}
|
|
209
224
|
})
|
|
210
225
|
})]
|
|
211
|
-
}), jsx(
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
},
|
|
224
|
-
children: [jsx(EliceIcon, {
|
|
225
|
-
icon: note.icon,
|
|
226
|
+
}), jsx(Fade, {
|
|
227
|
+
"in": true,
|
|
228
|
+
appear: page > 0,
|
|
229
|
+
children: jsx(Stack, {
|
|
230
|
+
direction: {
|
|
231
|
+
xs: 'column',
|
|
232
|
+
md: 'row'
|
|
233
|
+
},
|
|
234
|
+
gap: "1rem",
|
|
235
|
+
children: shownTips.map(function (tip) {
|
|
236
|
+
return jsxs(Stack, {
|
|
237
|
+
direction: "row",
|
|
226
238
|
sx: {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
239
|
+
flex: 1,
|
|
240
|
+
gap: '0.75rem'
|
|
241
|
+
},
|
|
242
|
+
children: [jsx(EliceIcon, {
|
|
243
|
+
icon: tip.icon,
|
|
244
|
+
sx: {
|
|
245
|
+
fontSize: '1.25rem',
|
|
246
|
+
color: 'text.secondary',
|
|
247
|
+
marginTop: '0.125rem'
|
|
248
|
+
}
|
|
249
|
+
}), jsxs(Stack, {
|
|
250
|
+
gap: "0.125rem",
|
|
251
|
+
children: [jsx(Typography, {
|
|
252
|
+
variant: "body1",
|
|
253
|
+
fontWeight: 700,
|
|
254
|
+
color: "text.primary",
|
|
255
|
+
children: intl.formatMessage({
|
|
256
|
+
id: tip.titleId
|
|
257
|
+
})
|
|
258
|
+
}), jsx(Typography, {
|
|
259
|
+
variant: "caption",
|
|
260
|
+
color: "text.tertiary",
|
|
261
|
+
children: intl.formatMessage({
|
|
262
|
+
id: tip.descriptionId
|
|
263
|
+
})
|
|
264
|
+
})]
|
|
246
265
|
})]
|
|
247
|
-
})
|
|
248
|
-
}
|
|
266
|
+
}, tip.titleId);
|
|
267
|
+
})
|
|
249
268
|
})
|
|
250
|
-
})]
|
|
269
|
+
}, page)]
|
|
251
270
|
})
|
|
252
271
|
});
|
|
253
272
|
};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { EliceRunboxViewerOverlayQueuedComponentProps as QueuedComponentProps } from '@elice/runbox-client';
|
|
2
2
|
import type React from 'react';
|
|
3
|
-
|
|
3
|
+
export interface RuntimeOverlayQueuedProps extends QueuedComponentProps {
|
|
4
|
+
containerImageName?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const RuntimeOverlayQueued: React.FC<RuntimeOverlayQueuedProps>;
|
|
4
7
|
export default RuntimeOverlayQueued;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import RuntimeOverlayLoading from './RuntimeOverlayLoading.js';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
//
|
|
7
|
-
var RuntimeOverlayQueued = function RuntimeOverlayQueued() {
|
|
4
|
+
var RuntimeOverlayQueued = function RuntimeOverlayQueued(_ref) {
|
|
5
|
+
var containerImageName = _ref.containerImageName;
|
|
8
6
|
return jsx(RuntimeOverlayLoading, {
|
|
9
|
-
activeStep: 1
|
|
7
|
+
activeStep: 1,
|
|
8
|
+
containerImageName: containerImageName
|
|
10
9
|
});
|
|
11
10
|
};
|
|
12
11
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EliceIconDefinition } from '@elice/mui-elements';
|
|
2
|
+
export interface RuntimeLoadingTip {
|
|
3
|
+
icon: EliceIconDefinition;
|
|
4
|
+
titleId: string;
|
|
5
|
+
descriptionId: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const getRuntimeLoadingTips: (containerImageName?: string) => RuntimeLoadingTip[];
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { toConsumableArray as _toConsumableArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { faListOl, faSquareTerminal, faRotate, faFloppyDisk, faTriangleExclamation, faSitemap, faTableCells, faDiagramProject, faWindowRestore, faDisplayArrowDown, faHourglassHalf, faCopy, faArrowsUpDownLeftRight, faHardDrive, faClock } from '@fortawesome/pro-regular-svg-icons';
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
//
|
|
6
|
+
//
|
|
7
|
+
/** Shown first, always. Not knowing these two is what costs a learner work. */
|
|
8
|
+
var INTRO_TIPS = [{
|
|
9
|
+
icon: faDisplayArrowDown,
|
|
10
|
+
titleId: 'runbox.runtime.loading.note.environment.title',
|
|
11
|
+
descriptionId: 'runbox.runtime.loading.note.environment.description'
|
|
12
|
+
}, {
|
|
13
|
+
icon: faFloppyDisk,
|
|
14
|
+
titleId: 'runbox.runtime.loading.note.save.title',
|
|
15
|
+
descriptionId: 'runbox.runtime.loading.note.save.description'
|
|
16
|
+
}];
|
|
17
|
+
/**
|
|
18
|
+
* Matched against the container image name, in order -- `VNC-VSCode` carries
|
|
19
|
+
* two keywords, and the editor is what the learner works in.
|
|
20
|
+
*
|
|
21
|
+
* The name is a display name an operator typed (`Jupyter Notebook`,
|
|
22
|
+
* `JupyterNotebook`, `VSCode`), so it is matched loosely rather than listed.
|
|
23
|
+
*/
|
|
24
|
+
var TIP_GROUPS = [{
|
|
25
|
+
keywords: ['jupyter'],
|
|
26
|
+
tips: [{
|
|
27
|
+
icon: faListOl,
|
|
28
|
+
titleId: 'runbox.runtime.loading.tip.jupyter.cell_order.title',
|
|
29
|
+
descriptionId: 'runbox.runtime.loading.tip.jupyter.cell_order.description'
|
|
30
|
+
}, {
|
|
31
|
+
icon: faSquareTerminal,
|
|
32
|
+
titleId: 'runbox.runtime.loading.tip.jupyter.run_cell.title',
|
|
33
|
+
descriptionId: 'runbox.runtime.loading.tip.jupyter.run_cell.description'
|
|
34
|
+
}, {
|
|
35
|
+
icon: faRotate,
|
|
36
|
+
titleId: 'runbox.runtime.loading.tip.jupyter.restart_kernel.title',
|
|
37
|
+
descriptionId: 'runbox.runtime.loading.tip.jupyter.restart_kernel.description'
|
|
38
|
+
}, {
|
|
39
|
+
icon: faListOl,
|
|
40
|
+
titleId: 'runbox.runtime.loading.tip.jupyter.cell_number.title',
|
|
41
|
+
descriptionId: 'runbox.runtime.loading.tip.jupyter.cell_number.description'
|
|
42
|
+
}]
|
|
43
|
+
}, {
|
|
44
|
+
keywords: ['vscode', 'codeserver'],
|
|
45
|
+
tips: [{
|
|
46
|
+
icon: faFloppyDisk,
|
|
47
|
+
titleId: 'runbox.runtime.loading.tip.vscode.save_before_run.title',
|
|
48
|
+
descriptionId: 'runbox.runtime.loading.tip.vscode.save_before_run.description'
|
|
49
|
+
}, {
|
|
50
|
+
icon: faSquareTerminal,
|
|
51
|
+
titleId: 'runbox.runtime.loading.tip.vscode.terminal.title',
|
|
52
|
+
descriptionId: 'runbox.runtime.loading.tip.vscode.terminal.description'
|
|
53
|
+
}, {
|
|
54
|
+
icon: faTriangleExclamation,
|
|
55
|
+
titleId: 'runbox.runtime.loading.tip.vscode.browser_shortcut.title',
|
|
56
|
+
descriptionId: 'runbox.runtime.loading.tip.vscode.browser_shortcut.description'
|
|
57
|
+
}, {
|
|
58
|
+
icon: faSitemap,
|
|
59
|
+
titleId: 'runbox.runtime.loading.tip.vscode.explorer.title',
|
|
60
|
+
descriptionId: 'runbox.runtime.loading.tip.vscode.explorer.description'
|
|
61
|
+
}]
|
|
62
|
+
}, {
|
|
63
|
+
keywords: ['orange'],
|
|
64
|
+
tips: [{
|
|
65
|
+
icon: faTableCells,
|
|
66
|
+
titleId: 'runbox.runtime.loading.tip.orange.widget.title',
|
|
67
|
+
descriptionId: 'runbox.runtime.loading.tip.orange.widget.description'
|
|
68
|
+
}, {
|
|
69
|
+
icon: faDiagramProject,
|
|
70
|
+
titleId: 'runbox.runtime.loading.tip.orange.connect.title',
|
|
71
|
+
descriptionId: 'runbox.runtime.loading.tip.orange.connect.description'
|
|
72
|
+
}, {
|
|
73
|
+
icon: faTableCells,
|
|
74
|
+
titleId: 'runbox.runtime.loading.tip.orange.load_data.title',
|
|
75
|
+
descriptionId: 'runbox.runtime.loading.tip.orange.load_data.description'
|
|
76
|
+
}, {
|
|
77
|
+
icon: faWindowRestore,
|
|
78
|
+
titleId: 'runbox.runtime.loading.tip.orange.open_settings.title',
|
|
79
|
+
descriptionId: 'runbox.runtime.loading.tip.orange.open_settings.description'
|
|
80
|
+
}]
|
|
81
|
+
}, {
|
|
82
|
+
keywords: ['dify', 'n8n', 'comfyui', 'openwebui', 'sonarqube'],
|
|
83
|
+
tips: [{
|
|
84
|
+
icon: faDisplayArrowDown,
|
|
85
|
+
titleId: 'runbox.runtime.loading.tip.app.web_service.title',
|
|
86
|
+
descriptionId: 'runbox.runtime.loading.tip.app.web_service.description'
|
|
87
|
+
}, {
|
|
88
|
+
icon: faHourglassHalf,
|
|
89
|
+
titleId: 'runbox.runtime.loading.tip.app.slow_start.title',
|
|
90
|
+
descriptionId: 'runbox.runtime.loading.tip.app.slow_start.description'
|
|
91
|
+
}, {
|
|
92
|
+
icon: faFloppyDisk,
|
|
93
|
+
titleId: 'runbox.runtime.loading.tip.app.persisted.title',
|
|
94
|
+
descriptionId: 'runbox.runtime.loading.tip.app.persisted.description'
|
|
95
|
+
}]
|
|
96
|
+
}, {
|
|
97
|
+
keywords: ['vnc', 'unityhub', 'pyqt', 'libreoffice', 'flutter', 'codap', 'jmeter'],
|
|
98
|
+
tips: [{
|
|
99
|
+
icon: faWindowRestore,
|
|
100
|
+
titleId: 'runbox.runtime.loading.tip.gui.desktop.title',
|
|
101
|
+
descriptionId: 'runbox.runtime.loading.tip.gui.desktop.description'
|
|
102
|
+
}, {
|
|
103
|
+
icon: faCopy,
|
|
104
|
+
titleId: 'runbox.runtime.loading.tip.gui.clipboard.title',
|
|
105
|
+
descriptionId: 'runbox.runtime.loading.tip.gui.clipboard.description'
|
|
106
|
+
}, {
|
|
107
|
+
icon: faArrowsUpDownLeftRight,
|
|
108
|
+
titleId: 'runbox.runtime.loading.tip.gui.move_window.title',
|
|
109
|
+
descriptionId: 'runbox.runtime.loading.tip.gui.move_window.description'
|
|
110
|
+
}, {
|
|
111
|
+
icon: faHourglassHalf,
|
|
112
|
+
titleId: 'runbox.runtime.loading.tip.gui.slow_start.title',
|
|
113
|
+
descriptionId: 'runbox.runtime.loading.tip.gui.slow_start.description'
|
|
114
|
+
}]
|
|
115
|
+
}];
|
|
116
|
+
/** Closes out every environment, and stands alone when no group matched. */
|
|
117
|
+
var COMMON_TIPS = [{
|
|
118
|
+
icon: faTriangleExclamation,
|
|
119
|
+
titleId: 'runbox.runtime.loading.tip.common.conflict.title',
|
|
120
|
+
descriptionId: 'runbox.runtime.loading.tip.common.conflict.description'
|
|
121
|
+
}, {
|
|
122
|
+
icon: faHardDrive,
|
|
123
|
+
titleId: 'runbox.runtime.loading.tip.common.disk.title',
|
|
124
|
+
descriptionId: 'runbox.runtime.loading.tip.common.disk.description'
|
|
125
|
+
}, {
|
|
126
|
+
icon: faClock,
|
|
127
|
+
titleId: 'runbox.runtime.loading.tip.common.quota.title',
|
|
128
|
+
descriptionId: 'runbox.runtime.loading.tip.common.quota.description'
|
|
129
|
+
}];
|
|
130
|
+
//
|
|
131
|
+
//
|
|
132
|
+
//
|
|
133
|
+
var getRuntimeLoadingTips = function getRuntimeLoadingTips() {
|
|
134
|
+
var containerImageName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
135
|
+
var _a;
|
|
136
|
+
var name = containerImageName.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
137
|
+
var group = TIP_GROUPS.find(function (_ref) {
|
|
138
|
+
var keywords = _ref.keywords;
|
|
139
|
+
return keywords.some(function (keyword) {
|
|
140
|
+
return name.includes(keyword);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
return [].concat(INTRO_TIPS, _toConsumableArray((_a = group === null || group === void 0 ? void 0 : group.tips) !== null && _a !== void 0 ? _a : []), COMMON_TIPS);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export { getRuntimeLoadingTips };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elice/material-runbox",
|
|
3
|
-
"version": "1.260825.0-runboxusability.
|
|
3
|
+
"version": "1.260825.0-runboxusability.13",
|
|
4
4
|
"description": "User view and editing components of Elice material runbox",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
38
38
|
"react-transition-group": "^4.4.0",
|
|
39
39
|
"react-use": "^17.0.0",
|
|
40
|
-
"@elice/material-shared-types": "1.260825.0-runboxusability.
|
|
41
|
-
"@elice/material-shared-utils": "1.260825.0-runboxusability.
|
|
40
|
+
"@elice/material-shared-types": "1.260825.0-runboxusability.13",
|
|
41
|
+
"@elice/material-shared-utils": "1.260825.0-runboxusability.13"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"classnames": "^2.2.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@elice/mui-elements": "5.251204.0",
|
|
55
55
|
"@elice/mui-system": "5.251204.0",
|
|
56
56
|
"@elice/mui-x-snackbar": "^5.250108.0-controllabel.0",
|
|
57
|
-
"@elice/openapi-client-material-runbox": "1.260826.0-improverunboxusability.
|
|
57
|
+
"@elice/openapi-client-material-runbox": "1.260826.0-improverunboxusability.1",
|
|
58
58
|
"@elice/rollup-config": "^1.260406.0",
|
|
59
59
|
"@elice/runbox-client": "1.260904.0-runboxiframeerror.2",
|
|
60
60
|
"@elice/types": "1.260608.0",
|
|
@@ -77,8 +77,8 @@
|
|
|
77
77
|
"react-use": "^17.2.4",
|
|
78
78
|
"rollup": "^4.0.0",
|
|
79
79
|
"typescript": "~5.9.3",
|
|
80
|
-
"@elice/material-shared-types": "1.260825.0-runboxusability.
|
|
81
|
-
"@elice/material-shared-utils": "1.260825.0-runboxusability.
|
|
80
|
+
"@elice/material-shared-types": "1.260825.0-runboxusability.13",
|
|
81
|
+
"@elice/material-shared-utils": "1.260825.0-runboxusability.13"
|
|
82
82
|
},
|
|
83
83
|
"scripts": {
|
|
84
84
|
"start": "run-s watch",
|