@elice/material-exercise 1.260305.0 → 1.260429.0-improvetimerpopoverui.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/cjs/components/material-exercise/MaterialExercise.js +113 -17
- package/cjs/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +52 -7
- package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +1 -1
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +18 -2
- package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
- package/cjs/components/shared/file-tabs/FileTab.js +70 -8
- package/cjs/components/shared/file-tabs/FileTabs.js +24 -3
- package/cjs/components/shared/file-tree/FileTreeListItemContent.js +103 -14
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +24 -3
- package/cjs/components/shared/file-tree/FileTreeListItems.js +28 -3
- package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +7 -2
- package/cjs/components/shared/material-modal/MaterialModal.d.ts +1 -0
- package/cjs/components/shared/material-modal/MaterialModal.js +34 -6
- package/es/components/material-exercise/MaterialExercise.js +97 -2
- package/es/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +46 -2
- package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +1 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionList.js +13 -1
- package/es/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
- package/es/components/shared/file-tabs/FileTab.js +62 -1
- package/es/components/shared/file-tabs/FileTabs.js +21 -1
- package/es/components/shared/file-tree/FileTreeListItemContent.js +90 -2
- package/es/components/shared/file-tree/FileTreeListItemContentInput.js +21 -1
- package/es/components/shared/file-tree/FileTreeListItems.js +22 -1
- package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +5 -1
- package/es/components/shared/material-modal/MaterialModal.d.ts +1 -0
- package/es/components/shared/material-modal/MaterialModal.js +26 -2
- package/package.json +26 -17
- package/cjs/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
- package/cjs/components/material-exercise/MaterialExercise.styled.js +0 -119
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
- package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -62
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
- package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -22
- package/cjs/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
- package/cjs/components/shared/file-tabs/FileTab.styled.js +0 -77
- package/cjs/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
- package/cjs/components/shared/file-tabs/FileTabs.styled.js +0 -31
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
- package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -108
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
- package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -31
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
- package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +0 -32
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
- package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +0 -14
- package/cjs/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
- package/cjs/components/shared/material-modal/MaterialModal.styled.js +0 -39
- package/es/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
- package/es/components/material-exercise/MaterialExercise.styled.js +0 -100
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
- package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -49
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
- package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -16
- package/es/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
- package/es/components/shared/file-tabs/FileTab.styled.js +0 -65
- package/es/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
- package/es/components/shared/file-tabs/FileTabs.styled.js +0 -24
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
- package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -94
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
- package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -24
- package/es/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
- package/es/components/shared/file-tree/FileTreeListItems.styled.js +0 -25
- package/es/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
- package/es/components/shared/file-tree/FileTreeToolbar.styled.js +0 -8
- package/es/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
- package/es/components/shared/material-modal/MaterialModal.styled.js +0 -29
|
@@ -1,6 +1,18 @@
|
|
|
1
|
+
import _styled from '@emotion/styled/base';
|
|
1
2
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
+
import { List } from '@elice/blocks';
|
|
3
4
|
|
|
5
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
6
|
+
var StyledVersionList = /*#__PURE__*/_styled(List, {
|
|
7
|
+
target: "e1plvajs0"
|
|
8
|
+
})("production" === "production" ? {
|
|
9
|
+
name: "1uke1dw",
|
|
10
|
+
styles: "height:100%;padding:0;overflow:scroll;background-color:transparent;&>last-of-type{border:none;}"
|
|
11
|
+
} : {
|
|
12
|
+
name: "1uke1dw",
|
|
13
|
+
styles: "height:100%;padding:0;overflow:scroll;background-color:transparent;&>last-of-type{border:none;}",
|
|
14
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
15
|
+
});
|
|
4
16
|
var ExerciseVersionList = function ExerciseVersionList(_ref) {
|
|
5
17
|
var children = _ref.children;
|
|
6
18
|
return jsx(StyledVersionList, {
|
|
@@ -1,10 +1,71 @@
|
|
|
1
|
+
import _styled from '@emotion/styled/base';
|
|
1
2
|
import { __rest } from 'tslib';
|
|
2
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
4
|
import React from 'react';
|
|
5
|
+
import { Text, IconButton } from '@elice/blocks';
|
|
6
|
+
import { base } from '@elice/design-tokens';
|
|
4
7
|
import { eilMathsignMultiplyBasic } from '@elice/icons';
|
|
5
|
-
import {
|
|
8
|
+
import { css } from '@emotion/react';
|
|
6
9
|
import FileIcon from '../file-icon/FileIcon.js';
|
|
7
10
|
|
|
11
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
12
|
+
var TAB_MIN_WIDTH = '7rem';
|
|
13
|
+
var TAB_VERTICAL_BORDER_WIDTH = '1.5px';
|
|
14
|
+
var TAB_BACKGROUND_COLOR = base.color.navy8;
|
|
15
|
+
var TAB_ACTIVE_BACKGROUND_COLOR = base.color.navy9;
|
|
16
|
+
var TAB_HOVERED_BACKGROUND_COLOR = base.color.navy7;
|
|
17
|
+
// ========== Tab label ==========
|
|
18
|
+
var StyledTabLabel = /*#__PURE__*/_styled("div", {
|
|
19
|
+
target: "eb5vmnz6"
|
|
20
|
+
})("production" === "production" ? {
|
|
21
|
+
name: "1v2fhdm",
|
|
22
|
+
styles: "flex:1;display:flex;align-items:center;overflow:hidden;pointer-events:none;user-select:none;&>*{margin-right:0.5rem;}"
|
|
23
|
+
} : {
|
|
24
|
+
name: "1v2fhdm",
|
|
25
|
+
styles: "flex:1;display:flex;align-items:center;overflow:hidden;pointer-events:none;user-select:none;&>*{margin-right:0.5rem;}",
|
|
26
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
27
|
+
});
|
|
28
|
+
var StyledTabLabelFilename = /*#__PURE__*/_styled(Text, {
|
|
29
|
+
target: "eb5vmnz5"
|
|
30
|
+
})("color:", base.color.gray4, ";font-weight:500;");
|
|
31
|
+
var StyledTabLabelDirname = /*#__PURE__*/_styled(Text, {
|
|
32
|
+
target: "eb5vmnz4"
|
|
33
|
+
})("production" === "production" ? {
|
|
34
|
+
name: "f3vz0n",
|
|
35
|
+
styles: "font-weight:500"
|
|
36
|
+
} : {
|
|
37
|
+
name: "f3vz0n",
|
|
38
|
+
styles: "font-weight:500",
|
|
39
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
40
|
+
});
|
|
41
|
+
var StyledTabCloseButton = /*#__PURE__*/_styled(IconButton, {
|
|
42
|
+
target: "eb5vmnz3"
|
|
43
|
+
})("production" === "production" ? {
|
|
44
|
+
name: "19zzndm",
|
|
45
|
+
styles: "flex:0 0 auto;margin-right:0.25rem!important;opacity:0;transition:opacity 150ms ease-in-out"
|
|
46
|
+
} : {
|
|
47
|
+
name: "19zzndm",
|
|
48
|
+
styles: "flex:0 0 auto;margin-right:0.25rem!important;opacity:0;transition:opacity 150ms ease-in-out",
|
|
49
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
50
|
+
});
|
|
51
|
+
// ========== Tab content ==========
|
|
52
|
+
var StyledTabContent = /*#__PURE__*/_styled("div", {
|
|
53
|
+
target: "eb5vmnz2"
|
|
54
|
+
})("display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-left:0.5rem;height:calc(100% - ", TAB_VERTICAL_BORDER_WIDTH, ");&:hover{", StyledTabLabelFilename, "{color:", base.color.gray3, ";}", StyledTabCloseButton, "{opacity:1;}}");
|
|
55
|
+
// ========== Tab active border ==========
|
|
56
|
+
var StyledTabActiveBorder = /*#__PURE__*/_styled("div", {
|
|
57
|
+
target: "eb5vmnz1"
|
|
58
|
+
})("height:", TAB_VERTICAL_BORDER_WIDTH, ";background-color:", base.color.primary5, ";opacity:0;");
|
|
59
|
+
// ========== Tab ==========
|
|
60
|
+
var cssTabActive = /*#__PURE__*/css("background-color:", TAB_ACTIVE_BACKGROUND_COLOR, ";", StyledTabLabelFilename, "{color:", base.color.gray3, ";}", StyledTabCloseButton, "{opacity:1;}", StyledTabActiveBorder, "{opacity:1;}");
|
|
61
|
+
var cssTabHovered = /*#__PURE__*/css("background-color:", TAB_HOVERED_BACKGROUND_COLOR, ";", StyledTabLabelFilename, "{color:", base.color.gray3, ";}");
|
|
62
|
+
var StyledTab = /*#__PURE__*/_styled("div", {
|
|
63
|
+
target: "eb5vmnz0"
|
|
64
|
+
})("padding-top:", TAB_VERTICAL_BORDER_WIDTH, ";width:", TAB_MIN_WIDTH, ";min-width:fit-content;height:100%;background-color:", TAB_BACKGROUND_COLOR, ";border-right:1px solid ", base.color.navy7, ";cursor:pointer;", function (props) {
|
|
65
|
+
return props.active && cssTabActive;
|
|
66
|
+
}, " ", function (props) {
|
|
67
|
+
return props.hovered && cssTabHovered;
|
|
68
|
+
}, ";");
|
|
8
69
|
var EMPTY_CHUNKS = [];
|
|
9
70
|
var FileTab = function FileTab(_a) {
|
|
10
71
|
var fullname = _a.fullname,
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import _styled from '@emotion/styled/base';
|
|
2
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
4
|
import React, { createElement } from 'react';
|
|
5
|
+
import { base } from '@elice/design-tokens';
|
|
4
6
|
import throttle from 'lodash/throttle';
|
|
7
|
+
import { getMaterialScrollBarCss } from '../../../constants/stylesheets.js';
|
|
5
8
|
import FileTab from './FileTab.js';
|
|
6
9
|
import { getTabProps } from './util.js';
|
|
7
|
-
import { StyledTabs, StyledTabsDropZone } from './FileTabs.styled.js';
|
|
8
10
|
|
|
11
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
12
|
+
var StyledTabs = /*#__PURE__*/_styled("div", {
|
|
13
|
+
target: "ep0ecmj1"
|
|
14
|
+
})("display:flex;align-items:flex-end;box-sizing:border-box;flex-direction:row;height:2.25rem;font-family:inherit;background:", base.color.navy8, ";overflow-x:overlay;overflow-y:hidden;scrollbar-width:none;", getMaterialScrollBarCss({
|
|
15
|
+
height: '2px',
|
|
16
|
+
borderRadius: '2px',
|
|
17
|
+
hideable: true
|
|
18
|
+
}), ";");
|
|
19
|
+
var StyledTabsDropZone = /*#__PURE__*/_styled("div", {
|
|
20
|
+
target: "ep0ecmj0"
|
|
21
|
+
})("production" === "production" ? {
|
|
22
|
+
name: "uysyag",
|
|
23
|
+
styles: "flex:1;height:100%;background-color:transparent"
|
|
24
|
+
} : {
|
|
25
|
+
name: "uysyag",
|
|
26
|
+
styles: "flex:1;height:100%;background-color:transparent",
|
|
27
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
28
|
+
});
|
|
9
29
|
var FileTabs = function FileTabs(_ref) {
|
|
10
30
|
var openedTabs = _ref.openedTabs,
|
|
11
31
|
activeTab = _ref.activeTab,
|
|
@@ -1,15 +1,103 @@
|
|
|
1
1
|
import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import _styled from '@emotion/styled/base';
|
|
2
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
4
|
import React from 'react';
|
|
4
|
-
import { Icon, Checkbox } from '@elice/blocks';
|
|
5
|
+
import { Icon, Checkbox, Text, IconButton } from '@elice/blocks';
|
|
5
6
|
import { base } from '@elice/design-tokens';
|
|
6
7
|
import { eilArrowDownwardsSingle, eilVisibilityOff, eilLockOn, eilMoreVertical } from '@elice/icons';
|
|
8
|
+
import { css } from '@emotion/react';
|
|
7
9
|
import FileTreeListItemContentInput from './FileTreeListItemContentInput.js';
|
|
8
10
|
import FileTreeListItemContentMenu from './FileTreeListItemContentMenu.js';
|
|
9
|
-
import { StyledContentIndents, StyledContentIndentGuide, StyledContent, StyledContentLabel, StyledContentLabelDirArrowWrap, StyledContentLabelIconWrap, StyledContentLabelFilename, StyledContentLabelStatusIcon, StyledContentLabelMenuButton } from './FileTreeListItemContent.styled.js';
|
|
10
11
|
import FileIcon from '../file-icon/FileIcon.js';
|
|
11
12
|
import { useFileTreeState, useFileTreeDispatch } from './context/FileTreeContext.js';
|
|
12
13
|
|
|
14
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
15
|
+
//
|
|
16
|
+
//
|
|
17
|
+
//
|
|
18
|
+
var CONTENT_MIN_HEIGHT = 28; // 1.75rem
|
|
19
|
+
var CONTENT_LEFT_BORDER_WIDTH = 3; // 0.1875rem
|
|
20
|
+
var CONTENT_RIGHT_PADDING = 12; // 0.75rem
|
|
21
|
+
var CONTENT_LABEL_VERTICAL_PADDING = 4; // 0.25rem
|
|
22
|
+
var CONTENT_LABEL_ICON_SIZE = 16; // 1rem
|
|
23
|
+
var CONTENT_LABEL_ICON_AFTER_MARGIN = 4; // 1rem
|
|
24
|
+
var CONTENT_LABEL_DIR_ARROW_PADDING = 4; // 0.25rem
|
|
25
|
+
var CONTENT_LABEL_DIR_ARROW_SIZE = 12; // 0.75rem
|
|
26
|
+
var CONTENT_LABEL_MENU_BUTTON_SIZE = CONTENT_MIN_HEIGHT - CONTENT_LABEL_VERTICAL_PADDING * 2;
|
|
27
|
+
//
|
|
28
|
+
//
|
|
29
|
+
//
|
|
30
|
+
/**
|
|
31
|
+
* indent
|
|
32
|
+
*/
|
|
33
|
+
var StyledContentIndents = /*#__PURE__*/_styled("div", {
|
|
34
|
+
target: "e1mtizjs8"
|
|
35
|
+
})();
|
|
36
|
+
var StyledContentIndentGuide = /*#__PURE__*/_styled("div", {
|
|
37
|
+
target: "e1mtizjs7"
|
|
38
|
+
})("display:inline-block;height:100%;border-right:0.5px solid ", base.color.gray7, ";");
|
|
39
|
+
/**
|
|
40
|
+
* label
|
|
41
|
+
*/
|
|
42
|
+
var StyledContentLabel = /*#__PURE__*/_styled("div", {
|
|
43
|
+
target: "e1mtizjs6"
|
|
44
|
+
})("flex:1;display:flex;align-items:center;padding-top:", CONTENT_LABEL_VERTICAL_PADDING, "px;padding-bottom:", CONTENT_LABEL_VERTICAL_PADDING, "px;overflow:hidden;");
|
|
45
|
+
/**
|
|
46
|
+
* label > dir arrow
|
|
47
|
+
*/
|
|
48
|
+
var StyledContentLabelDirArrowWrap = /*#__PURE__*/_styled("div", {
|
|
49
|
+
target: "e1mtizjs5"
|
|
50
|
+
})("flex:0 0 ", CONTENT_LABEL_DIR_ARROW_SIZE + CONTENT_LABEL_DIR_ARROW_PADDING * 2, "px;display:flex;justify-content:center;align-items:center;padding:", CONTENT_LABEL_DIR_ARROW_PADDING, ";height:", CONTENT_LABEL_DIR_ARROW_SIZE, "px;");
|
|
51
|
+
/**
|
|
52
|
+
* label > icon
|
|
53
|
+
*/
|
|
54
|
+
var StyledContentLabelIconWrap = /*#__PURE__*/_styled("div", {
|
|
55
|
+
target: "e1mtizjs4"
|
|
56
|
+
})("flex:0 0 ", CONTENT_LABEL_ICON_SIZE + CONTENT_LABEL_ICON_AFTER_MARGIN, "px;display:flex;margin-right:", CONTENT_LABEL_ICON_AFTER_MARGIN, "px;height:", CONTENT_LABEL_ICON_SIZE, "px;");
|
|
57
|
+
/**
|
|
58
|
+
* label > filename
|
|
59
|
+
*/
|
|
60
|
+
var StyledContentLabelFilename = /*#__PURE__*/_styled(Text, {
|
|
61
|
+
target: "e1mtizjs3"
|
|
62
|
+
})("flex:1;margin-right:0.125rem;color:", base.color.gray4, ";font-weight:500;");
|
|
63
|
+
/**
|
|
64
|
+
* label > status icon
|
|
65
|
+
*/
|
|
66
|
+
var StyledContentLabelStatusIcon = /*#__PURE__*/_styled(Icon, {
|
|
67
|
+
target: "e1mtizjs2"
|
|
68
|
+
})("production" === "production" ? {
|
|
69
|
+
name: "129lf1x",
|
|
70
|
+
styles: "margin-left:0.25rem;margin-right:0;&:last-of-type{margin-right:0.25rem;}"
|
|
71
|
+
} : {
|
|
72
|
+
name: "129lf1x",
|
|
73
|
+
styles: "margin-left:0.25rem;margin-right:0;&:last-of-type{margin-right:0.25rem;}",
|
|
74
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
75
|
+
});
|
|
76
|
+
/**
|
|
77
|
+
* label > menu button
|
|
78
|
+
*/
|
|
79
|
+
var StyledContentLabelMenuButton = /*#__PURE__*/_styled(IconButton, {
|
|
80
|
+
target: "e1mtizjs1"
|
|
81
|
+
})("flex:0 0 ", CONTENT_LABEL_MENU_BUTTON_SIZE, "px;width:", CONTENT_LABEL_MENU_BUTTON_SIZE, "px!important;height:", CONTENT_LABEL_MENU_BUTTON_SIZE, "px!important;opacity:0;transition:opacity 150ms ease-in-out;");
|
|
82
|
+
//
|
|
83
|
+
//
|
|
84
|
+
//
|
|
85
|
+
var cssStyledContentActive = /*#__PURE__*/css("border-left-color:", base.color.primary4, ";background-color:", base.color.navy7, ";", StyledContentLabelFilename, "{color:", base.color.gray3, ";}");
|
|
86
|
+
var cssStyledContentDragging = "production" === "production" ? {
|
|
87
|
+
name: "1ym7stk",
|
|
88
|
+
styles: "border-left-color:transparent!important;background-color:transparent!important"
|
|
89
|
+
} : {
|
|
90
|
+
name: "1ym7stk",
|
|
91
|
+
styles: "border-left-color:transparent!important;background-color:transparent!important",
|
|
92
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
93
|
+
};
|
|
94
|
+
var StyledContent = /*#__PURE__*/_styled("div", {
|
|
95
|
+
target: "e1mtizjs0"
|
|
96
|
+
})("display:flex;padding-right:", CONTENT_RIGHT_PADDING, "px;width:100%;min-width:0;min-height:", CONTENT_MIN_HEIGHT, "px;border-left-width:", CONTENT_LEFT_BORDER_WIDTH, "px;border-left-style:solid;border-left-color:transparent;user-select:none;", function (props) {
|
|
97
|
+
return props.active && cssStyledContentActive;
|
|
98
|
+
}, " ", function (props) {
|
|
99
|
+
return props.isDragging && cssStyledContentDragging;
|
|
100
|
+
}, " &:hover{background-color:", base.color.navy8, ";", StyledContentLabelFilename, "{color:", base.color.gray3, ";}", StyledContentLabelMenuButton, "{opacity:1;}}");
|
|
13
101
|
var ITEM_IDENT_WIDTH = 8; // 0.5rem
|
|
14
102
|
var FileTreeListItemContent = function FileTreeListItemContent(_ref) {
|
|
15
103
|
var node = _ref.node,
|
|
@@ -1,18 +1,38 @@
|
|
|
1
|
+
import _styled from '@emotion/styled/base';
|
|
1
2
|
import { jsx } from 'react/jsx-runtime';
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import { useForm, Controller } from 'react-hook-form';
|
|
4
5
|
import { useClickAway } from 'react-use';
|
|
6
|
+
import { Input } from '@elice/blocks';
|
|
7
|
+
import { base } from '@elice/design-tokens';
|
|
5
8
|
import { useRawEliceIntl } from '@elice/intl';
|
|
6
9
|
import { getParentPath } from './utils/fileTreeGenerator.js';
|
|
7
|
-
import { StyledInputForm, StyledInput } from './FileTreeListItemContentInput.styled.js';
|
|
8
10
|
import { useFileTreeDispatch } from './context/FileTreeContext.js';
|
|
9
11
|
|
|
12
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
13
|
+
var INPUT_HEIGHT = '1.25rem';
|
|
14
|
+
var INPUT_FONT_SIZE = '0.75rem';
|
|
15
|
+
var INPUT_INNER_LEFT_PADDING = '0.125rem';
|
|
16
|
+
var INPUT_INNER_RIGHT_PADDING = '0.25rem';
|
|
10
17
|
var FILENAME_MAX_LENGTH = 65535;
|
|
11
18
|
var FILENAME_REGEXP_DOT = /^\.$/;
|
|
12
19
|
var FILENAME_REGEXP_DOTDOT = /^\.\.$/;
|
|
13
20
|
var FILENAME_REGEXP_DOT_ELICE = /^\.elice$/;
|
|
14
21
|
var FILENAME_REGEXP_SLASH = /\//;
|
|
15
22
|
var FILENAME_REGEXP_BACK_SLASH = /\\/;
|
|
23
|
+
var StyledInputForm = /*#__PURE__*/_styled("form", {
|
|
24
|
+
target: "e1lewuzv1"
|
|
25
|
+
})("production" === "production" ? {
|
|
26
|
+
name: "y3klfd",
|
|
27
|
+
styles: "flex:1;display:flex"
|
|
28
|
+
} : {
|
|
29
|
+
name: "y3klfd",
|
|
30
|
+
styles: "flex:1;display:flex",
|
|
31
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
32
|
+
});
|
|
33
|
+
var StyledInput = /*#__PURE__*/_styled(Input, {
|
|
34
|
+
target: "e1lewuzv0"
|
|
35
|
+
})("min-height:", INPUT_HEIGHT, ";>div{background:transparent!important;>div{&:nth-child(1){padding:", INPUT_INNER_LEFT_PADDING, ";}&:nth-child(3){padding:", INPUT_INNER_RIGHT_PADDING, ";}}.eb-icon{width:0.875em;height:0.875em;font-size:0.875em;}}& input{padding-top:0!important;padding-bottom:0!important;height:", INPUT_HEIGHT, "!important;color:", base.color.gray0, "!important;font-size:", INPUT_FONT_SIZE, "!important;}");
|
|
16
36
|
var FileTreeListItemContentInput = function FileTreeListItemContentInput(_ref) {
|
|
17
37
|
var type = _ref.type,
|
|
18
38
|
initialValue = _ref.initialValue,
|
|
@@ -1,12 +1,33 @@
|
|
|
1
|
+
import _styled from '@emotion/styled/base';
|
|
1
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
3
|
import { base } from '@elice/design-tokens';
|
|
3
4
|
import FileTreeListItemContent from './FileTreeListItemContent.js';
|
|
4
|
-
import { StyledTreeItems, StyledTreeItem } from './FileTreeListItems.styled.js';
|
|
5
5
|
import { isMovingTheSamePath } from './utils/fileTreePath.js';
|
|
6
6
|
import { useFileTreeState, useFileTreeDispatch } from './context/FileTreeContext.js';
|
|
7
7
|
import { getTargetDirectoryPath } from './utils/fileTreeInput.js';
|
|
8
8
|
import { validateFilesSize } from './utils/fileTreeFiles.js';
|
|
9
9
|
|
|
10
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
11
|
+
var StyledTreeItems = /*#__PURE__*/_styled("ul", {
|
|
12
|
+
target: "eqj36uk1"
|
|
13
|
+
})("production" === "production" ? {
|
|
14
|
+
name: "n5lwfe",
|
|
15
|
+
styles: "padding:0;margin:0;overflow:hidden"
|
|
16
|
+
} : {
|
|
17
|
+
name: "n5lwfe",
|
|
18
|
+
styles: "padding:0;margin:0;overflow:hidden",
|
|
19
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
20
|
+
});
|
|
21
|
+
var StyledTreeItem = /*#__PURE__*/_styled("li", {
|
|
22
|
+
target: "eqj36uk0"
|
|
23
|
+
})("production" === "production" ? {
|
|
24
|
+
name: "i710ph",
|
|
25
|
+
styles: "list-style:none;cursor:pointer"
|
|
26
|
+
} : {
|
|
27
|
+
name: "i710ph",
|
|
28
|
+
styles: "list-style:none;cursor:pointer",
|
|
29
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
30
|
+
});
|
|
10
31
|
var _FileTreeListItems = function FileTreeListItems(_ref) {
|
|
11
32
|
var node = _ref.node,
|
|
12
33
|
_ref$indent = _ref.indent,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import _styled from '@emotion/styled/base';
|
|
1
2
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
3
|
import React from 'react';
|
|
4
|
+
import { base } from '@elice/design-tokens';
|
|
3
5
|
import { eilFileAdd, eilFolderAdd, eilUpload } from '@elice/icons';
|
|
4
6
|
import { IntlComponentBuilder, useRawEliceIntl } from '@elice/intl';
|
|
5
|
-
import { StyledFileTreeToolbar } from '../FileTreeToolbar.styled.js';
|
|
6
7
|
import messageEn from './locales/en.json.js';
|
|
7
8
|
import messageKo from './locales/ko.json.js';
|
|
8
9
|
import { useFileTreeState, useFileTreeDispatch } from '../context/FileTreeContext.js';
|
|
@@ -10,6 +11,9 @@ import ExerciseMenuButton from '../../exercise-menu-button/ExerciseMenuButton.js
|
|
|
10
11
|
import { getTargetDirectoryPath } from '../utils/fileTreeInput.js';
|
|
11
12
|
import { validateFilesSize } from '../utils/fileTreeFiles.js';
|
|
12
13
|
|
|
14
|
+
var StyledFileTreeToolbar = /*#__PURE__*/_styled("div", {
|
|
15
|
+
target: "emczy7z0"
|
|
16
|
+
})("flex:0 0 2.25rem;display:flex;align-items:center;padding:0.25rem 0.5rem;background-color:", base.color.navy8, ";");
|
|
13
17
|
var FileTreeToolbar = function FileTreeToolbar(_ref) {
|
|
14
18
|
var className = _ref.className;
|
|
15
19
|
var intl = useRawEliceIntl();
|
|
@@ -1,9 +1,33 @@
|
|
|
1
|
+
import _styled from '@emotion/styled/base';
|
|
1
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
3
|
import { useKeyPressEvent } from 'react-use';
|
|
3
|
-
import { BorderlessDialog } from '@elice/blocks';
|
|
4
|
+
import { Text, Flex, IconButton, BorderlessDialog } from '@elice/blocks';
|
|
5
|
+
import { base } from '@elice/design-tokens';
|
|
4
6
|
import { eilMathsignMultiplyBasic } from '@elice/icons';
|
|
5
|
-
import { StyledModalWrapper, StyledModalHeader, StyledModalBody, StyledModalFooter, StyledCloseButton } from './MaterialModal.styled.js';
|
|
6
7
|
|
|
8
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
9
|
+
var StyledModalWrapper = /*#__PURE__*/_styled("div", {
|
|
10
|
+
target: "e17uxf0q4"
|
|
11
|
+
})("position:relative;display:flex;flex-flow:column nowrap;width:90vw;height:90vh;padding:0;background-color:", base.color.gray8, ";border-radius:0.375rem;");
|
|
12
|
+
var StyledModalHeader = /*#__PURE__*/_styled(Text, {
|
|
13
|
+
target: "e17uxf0q3"
|
|
14
|
+
})("flex:0 1 auto;width:100%;height:3.25rem;min-height:3.25rem;line-height:3.25rem;border-top-left-radius:0.375rem;border-top-right-radius:0.375rem;border-bottom:1px solid ", base.color.navy9, ";text-align:center;color:", base.color.white, ";");
|
|
15
|
+
var StyledModalBody = /*#__PURE__*/_styled("div", {
|
|
16
|
+
target: "e17uxf0q2"
|
|
17
|
+
})("production" === "production" ? {
|
|
18
|
+
name: "1pb620b",
|
|
19
|
+
styles: "position:relative;flex:1 1 auto;width:100%;height:80%"
|
|
20
|
+
} : {
|
|
21
|
+
name: "1pb620b",
|
|
22
|
+
styles: "position:relative;flex:1 1 auto;width:100%;height:80%",
|
|
23
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
24
|
+
});
|
|
25
|
+
var StyledModalFooter = /*#__PURE__*/_styled(Flex, {
|
|
26
|
+
target: "e17uxf0q1"
|
|
27
|
+
})("flex:0 1 auto;width:100%;height:3.75rem;min-height:3.75rem;border-bottom-left-radius:0.375rem;border-bottom-right-radius:0.375rem;border-top:1px solid ", base.color.navy9, ";padding:0.5rem 1.5rem;overflow:hidden;text-align:right;align-items:center;justify-content:flex-end;");
|
|
28
|
+
var StyledCloseButton = /*#__PURE__*/_styled(IconButton, {
|
|
29
|
+
target: "e17uxf0q0"
|
|
30
|
+
})("position:absolute;top:0;right:0;color:", base.color.gray4, "!important;");
|
|
7
31
|
var MaterialModal = function MaterialModal(_ref) {
|
|
8
32
|
var children = _ref.children,
|
|
9
33
|
title = _ref.title,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elice/material-exercise",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.260429.0-improvetimerpopoverui.0",
|
|
4
4
|
"description": "User view and editing components of Elice material exercise",
|
|
5
5
|
"repository": "https://git.elicer.io/elice/frontend/library/elice-material",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -14,14 +14,6 @@
|
|
|
14
14
|
"README.md"
|
|
15
15
|
],
|
|
16
16
|
"sideEffects": false,
|
|
17
|
-
"scripts": {
|
|
18
|
-
"start": "run-s watch",
|
|
19
|
-
"prebuild": "run-s clean",
|
|
20
|
-
"build": "cross-env NODE_ENV=production rollup -c ../../rollup.config.ts --configPlugin typescript -f es -f cjs",
|
|
21
|
-
"watch": "rollup -c ../../rollup.config.ts --configPlugin typescript -f es -f cjs -w",
|
|
22
|
-
"lint": "eslint --ext .ts,.tsx ./src --max-warnings=0",
|
|
23
|
-
"clean": "del-cli \"es/*\" \"cjs/*\" \"dist/*\""
|
|
24
|
-
},
|
|
25
17
|
"peerDependencies": {
|
|
26
18
|
"@elice/api-client": "^1",
|
|
27
19
|
"@elice/blocks": "^1",
|
|
@@ -29,11 +21,10 @@
|
|
|
29
21
|
"@elice/icons": "^1",
|
|
30
22
|
"@elice/intl": "^0",
|
|
31
23
|
"@elice/markdown": "^1",
|
|
32
|
-
"@elice/material-shared-types": "1.260305.0",
|
|
33
|
-
"@elice/material-shared-utils": "1.260305.0",
|
|
34
24
|
"@elice/mui-elements": "^5",
|
|
35
25
|
"@elice/mui-system": "^5",
|
|
36
26
|
"@elice/types": "^1",
|
|
27
|
+
"@elice/utils": "^1",
|
|
37
28
|
"@elice/websocket": "^1",
|
|
38
29
|
"@emotion/react": "^11.10.0",
|
|
39
30
|
"@emotion/styled": "^11.10.0",
|
|
@@ -46,7 +37,9 @@
|
|
|
46
37
|
"lodash": "^4.17.21",
|
|
47
38
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
48
39
|
"react-use": "^17.0.0",
|
|
49
|
-
"recoil": "^0"
|
|
40
|
+
"recoil": "^0",
|
|
41
|
+
"@elice/material-shared-types": "1.260429.0-improvetimerpopoverui.0",
|
|
42
|
+
"@elice/material-shared-utils": "1.260429.0-improvetimerpopoverui.0"
|
|
50
43
|
},
|
|
51
44
|
"dependencies": {
|
|
52
45
|
"@novnc/novnc": "^1.3.0",
|
|
@@ -82,10 +75,9 @@
|
|
|
82
75
|
"@elice/icons": "^1.230814.0",
|
|
83
76
|
"@elice/intl": "0.241127.0",
|
|
84
77
|
"@elice/markdown": "1.241015.0",
|
|
85
|
-
"@elice/material-shared-types": "1.260305.0",
|
|
86
|
-
"@elice/material-shared-utils": "1.260305.0",
|
|
87
78
|
"@elice/mui-elements": "5.251204.0",
|
|
88
79
|
"@elice/mui-system": "5.251204.0",
|
|
80
|
+
"@elice/rollup-config": "^1.260406.0",
|
|
89
81
|
"@elice/types": "^1.251229.0",
|
|
90
82
|
"@elice/utils": "^1.250930.0",
|
|
91
83
|
"@elice/websocket": "^1.220815.0",
|
|
@@ -100,16 +92,33 @@
|
|
|
100
92
|
"@types/color": "^3.0.3",
|
|
101
93
|
"@types/file-saver": "^2.0.5",
|
|
102
94
|
"@types/humps": "^2.0.1",
|
|
95
|
+
"@types/lodash": "^4.17.23",
|
|
103
96
|
"@types/mime": "^2.0.3",
|
|
104
97
|
"@types/novnc": "^0.0.27",
|
|
105
98
|
"@types/prettier": "^2.6.3",
|
|
106
99
|
"@types/random-words": "^1.1.2",
|
|
107
100
|
"@types/react": "~17.0.9",
|
|
108
101
|
"@types/socket.io-client": "^1.4.36",
|
|
102
|
+
"cross-env": "^7.0.3",
|
|
103
|
+
"del-cli": "^3.0.1",
|
|
104
|
+
"eslint": "~9.39.0",
|
|
109
105
|
"humps": "^2.0.1",
|
|
110
106
|
"lodash": "^4.17.21",
|
|
111
|
-
"
|
|
107
|
+
"npm-run-all": "^4.1.5",
|
|
108
|
+
"react": "~18.2.0",
|
|
112
109
|
"react-use": "^17.0.0",
|
|
113
|
-
"recoil": "~0.7.3"
|
|
110
|
+
"recoil": "~0.7.3",
|
|
111
|
+
"rollup": "^4.0.0",
|
|
112
|
+
"typescript": "~5.9.3",
|
|
113
|
+
"@elice/material-shared-utils": "1.260429.0-improvetimerpopoverui.0",
|
|
114
|
+
"@elice/material-shared-types": "1.260429.0-improvetimerpopoverui.0"
|
|
115
|
+
},
|
|
116
|
+
"scripts": {
|
|
117
|
+
"start": "run-s watch",
|
|
118
|
+
"prebuild": "run-s clean",
|
|
119
|
+
"build": "cross-env NODE_ENV=production rollup -c ../../rollup.config.ts --configPlugin typescript -f es -f cjs",
|
|
120
|
+
"watch": "rollup -c ../../rollup.config.ts --configPlugin typescript -f es -f cjs -w",
|
|
121
|
+
"lint": "eslint --ext .ts,.tsx ./src --max-warnings=0",
|
|
122
|
+
"clean": "del-cli \"es/*\" \"cjs/*\" \"dist/*\""
|
|
114
123
|
}
|
|
115
|
-
}
|
|
124
|
+
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
export declare const EXERCISE_FILE_TREE_MIN_WIDTH = 128;
|
|
2
|
-
export declare const EXERCISE_PREVIEW_MIN_WIDTH = 128;
|
|
3
|
-
export declare const EXERCISE_RUNNER_MIN_HEIGHT = 128;
|
|
4
|
-
export declare const EXERCISE_HORIZONTAL_RATIO: {
|
|
5
|
-
FILETREE: number;
|
|
6
|
-
EDITOR: number;
|
|
7
|
-
PREVIEW: number;
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Wrapper contains:
|
|
11
|
-
* - FileTree
|
|
12
|
-
* - FileTabs
|
|
13
|
-
* - File (Editor)
|
|
14
|
-
* - Runner
|
|
15
|
-
*/
|
|
16
|
-
export declare const StyledExerciseContainer: import("@emotion/styled").StyledComponent<{
|
|
17
|
-
theme?: import("@emotion/react").Theme;
|
|
18
|
-
as?: React.ElementType;
|
|
19
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
20
|
-
/**
|
|
21
|
-
* Wrapper contains:
|
|
22
|
-
* - FileTree
|
|
23
|
-
* - FileTabs
|
|
24
|
-
* - File (Editor)
|
|
25
|
-
*/
|
|
26
|
-
export declare const StyledExerciseMain: import("@emotion/styled").StyledComponent<{
|
|
27
|
-
theme?: import("@emotion/react").Theme;
|
|
28
|
-
as?: React.ElementType;
|
|
29
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
30
|
-
/**
|
|
31
|
-
* Wrapper contains:
|
|
32
|
-
* - FileTabs
|
|
33
|
-
* - File (Editor)
|
|
34
|
-
*/
|
|
35
|
-
export declare const StyledExerciseFileAndTabWrap: import("@emotion/styled").StyledComponent<{
|
|
36
|
-
theme?: import("@emotion/react").Theme;
|
|
37
|
-
as?: React.ElementType;
|
|
38
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
39
|
-
export declare const StyledExerciseFileWrap: import("@emotion/styled").StyledComponent<{
|
|
40
|
-
theme?: import("@emotion/react").Theme;
|
|
41
|
-
as?: React.ElementType;
|
|
42
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
43
|
-
export declare const StyledExerciseTabBar: import("@emotion/styled").StyledComponent<{
|
|
44
|
-
theme?: import("@emotion/react").Theme;
|
|
45
|
-
as?: React.ElementType;
|
|
46
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
47
|
-
export declare const StyledExerciseTabsWrap: import("@emotion/styled").StyledComponent<{
|
|
48
|
-
theme?: import("@emotion/react").Theme;
|
|
49
|
-
as?: React.ElementType;
|
|
50
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
51
|
-
export declare const StyledExerciseTabMenuWrap: import("@emotion/styled").StyledComponent<{
|
|
52
|
-
theme?: import("@emotion/react").Theme;
|
|
53
|
-
as?: React.ElementType;
|
|
54
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
55
|
-
export declare const StyledExerciseFileTreeWrap: import("@emotion/styled").StyledComponent<{
|
|
56
|
-
theme?: import("@emotion/react").Theme;
|
|
57
|
-
as?: React.ElementType;
|
|
58
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
59
|
-
export declare const StyledxerciseFileTreeContaner: import("@emotion/styled").StyledComponent<{
|
|
60
|
-
theme?: import("@emotion/react").Theme;
|
|
61
|
-
as?: React.ElementType;
|
|
62
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
63
|
-
export declare const StyledExerciseRunnerWrap: import("@emotion/styled").StyledComponent<{
|
|
64
|
-
theme?: import("@emotion/react").Theme;
|
|
65
|
-
as?: React.ElementType;
|
|
66
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|