@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.
Files changed (69) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.js +113 -17
  2. package/cjs/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
  3. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +52 -7
  4. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +1 -1
  5. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.js +18 -2
  6. package/cjs/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
  7. package/cjs/components/shared/file-tabs/FileTab.js +70 -8
  8. package/cjs/components/shared/file-tabs/FileTabs.js +24 -3
  9. package/cjs/components/shared/file-tree/FileTreeListItemContent.js +103 -14
  10. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.js +24 -3
  11. package/cjs/components/shared/file-tree/FileTreeListItems.js +28 -3
  12. package/cjs/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +7 -2
  13. package/cjs/components/shared/material-modal/MaterialModal.d.ts +1 -0
  14. package/cjs/components/shared/material-modal/MaterialModal.js +34 -6
  15. package/es/components/material-exercise/MaterialExercise.js +97 -2
  16. package/es/components/material-exercise/context/ExerciseProvider.d.ts +3 -1
  17. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.js +46 -2
  18. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +1 -1
  19. package/es/components/shared/exercise-version-list/ExerciseVersionList.js +13 -1
  20. package/es/components/shared/exercise-version-list/ExerciseVersionListItem.d.ts +1 -0
  21. package/es/components/shared/file-tabs/FileTab.js +62 -1
  22. package/es/components/shared/file-tabs/FileTabs.js +21 -1
  23. package/es/components/shared/file-tree/FileTreeListItemContent.js +90 -2
  24. package/es/components/shared/file-tree/FileTreeListItemContentInput.js +21 -1
  25. package/es/components/shared/file-tree/FileTreeListItems.js +22 -1
  26. package/es/components/shared/file-tree/file-tree-toolbar/FileTreeToolbar.js +5 -1
  27. package/es/components/shared/material-modal/MaterialModal.d.ts +1 -0
  28. package/es/components/shared/material-modal/MaterialModal.js +26 -2
  29. package/package.json +26 -17
  30. package/cjs/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
  31. package/cjs/components/material-exercise/MaterialExercise.styled.js +0 -119
  32. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
  33. package/cjs/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -62
  34. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
  35. package/cjs/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -22
  36. package/cjs/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
  37. package/cjs/components/shared/file-tabs/FileTab.styled.js +0 -77
  38. package/cjs/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
  39. package/cjs/components/shared/file-tabs/FileTabs.styled.js +0 -31
  40. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
  41. package/cjs/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -108
  42. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
  43. package/cjs/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -31
  44. package/cjs/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
  45. package/cjs/components/shared/file-tree/FileTreeListItems.styled.js +0 -32
  46. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
  47. package/cjs/components/shared/file-tree/FileTreeToolbar.styled.js +0 -14
  48. package/cjs/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
  49. package/cjs/components/shared/material-modal/MaterialModal.styled.js +0 -39
  50. package/es/components/material-exercise/MaterialExercise.styled.d.ts +0 -66
  51. package/es/components/material-exercise/MaterialExercise.styled.js +0 -100
  52. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.d.ts +0 -24
  53. package/es/components/material-exercise/exercise-code-history/ExerciseCodeHistory.styled.js +0 -49
  54. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.d.ts +0 -5
  55. package/es/components/shared/exercise-version-list/ExerciseVersionList.styled.js +0 -16
  56. package/es/components/shared/file-tabs/FileTab.styled.d.ts +0 -33
  57. package/es/components/shared/file-tabs/FileTab.styled.js +0 -65
  58. package/es/components/shared/file-tabs/FileTabs.styled.d.ts +0 -12
  59. package/es/components/shared/file-tabs/FileTabs.styled.js +0 -24
  60. package/es/components/shared/file-tree/FileTreeListItemContent.styled.d.ts +0 -62
  61. package/es/components/shared/file-tree/FileTreeListItemContent.styled.js +0 -94
  62. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.d.ts +0 -7
  63. package/es/components/shared/file-tree/FileTreeListItemContentInput.styled.js +0 -24
  64. package/es/components/shared/file-tree/FileTreeListItems.styled.d.ts +0 -8
  65. package/es/components/shared/file-tree/FileTreeListItems.styled.js +0 -25
  66. package/es/components/shared/file-tree/FileTreeToolbar.styled.d.ts +0 -4
  67. package/es/components/shared/file-tree/FileTreeToolbar.styled.js +0 -8
  68. package/es/components/shared/material-modal/MaterialModal.styled.d.ts +0 -20
  69. 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 { StyledVersionList } from './ExerciseVersionList.styled.js';
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,5 +1,6 @@
1
1
  import type React from 'react';
2
2
  interface ExerciseVersionListItemProps {
3
+ children?: React.ReactNode;
3
4
  selected?: boolean;
4
5
  style?: React.CSSProperties;
5
6
  onClick?: () => void;
@@ -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 { StyledTab, StyledTabContent, StyledTabActiveBorder, StyledTabLabel, StyledTabCloseButton, StyledTabLabelFilename, StyledTabLabelDirname } from './FileTab.styled.js';
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,5 +1,6 @@
1
1
  import type React from 'react';
2
2
  interface MaterialModalProps {
3
+ children?: React.ReactNode;
3
4
  title: string;
4
5
  footer?: React.ReactChild;
5
6
  onHide?: () => void;
@@ -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.260305.0",
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
- "react": "^17.0.2",
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>, {}>;