@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
@@ -2,16 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _styled = require('@emotion/styled/base');
5
6
  var jsxRuntime = require('react/jsx-runtime');
6
7
  var React = require('react');
7
8
  var apiClient = require('@elice/api-client');
8
9
  var blocks = require('@elice/blocks');
10
+ var designTokens = require('@elice/design-tokens');
9
11
  var icons = require('@elice/icons');
10
12
  var intl = require('@elice/intl');
11
13
  var materialSharedUtils = require('@elice/material-shared-utils');
12
14
  var recoil = require('recoil');
13
15
  var stylesheets = require('../../constants/stylesheets.js');
14
- var MaterialExercise_styled = require('./MaterialExercise.styled.js');
15
16
  var ExerciseProvider = require('./context/ExerciseProvider.js');
16
17
  var en = require('../locales/en.json.js');
17
18
  var ko = require('../locales/ko.json.js');
@@ -31,11 +32,106 @@ var recoilTypes = require('./context/recoilTypes.js');
31
32
 
32
33
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
33
34
 
35
+ var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
34
36
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
35
37
 
38
+ 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)."; }
39
+ var EXERCISE_FILE_TREE_MIN_WIDTH = 128;
40
+ var EXERCISE_PREVIEW_MIN_WIDTH = 128;
41
+ var EXERCISE_RUNNER_MIN_HEIGHT = 128;
42
+ var EXERCISE_HORIZONTAL_RATIO = {
43
+ FILETREE: 0.15,
44
+ PREVIEW: 0.4
45
+ };
36
46
  //
37
47
  //
38
48
  //
49
+ /**
50
+ * Wrapper contains:
51
+ * - FileTree
52
+ * - FileTabs
53
+ * - File (Editor)
54
+ * - Runner
55
+ */
56
+ var StyledExerciseContainer = /*#__PURE__*/_styled__default.default("div", {
57
+ target: "e1tvay129"
58
+ })("production" === "production" ? {
59
+ name: "1x6515k",
60
+ styles: "flex:1;display:flex;flex-direction:column;height:100%;min-width:0;min-height:0"
61
+ } : {
62
+ name: "1x6515k",
63
+ styles: "flex:1;display:flex;flex-direction:column;height:100%;min-width:0;min-height:0",
64
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
65
+ });
66
+ /**
67
+ * Wrapper contains:
68
+ * - FileTree
69
+ * - FileTabs
70
+ * - File (Editor)
71
+ */
72
+ var StyledExerciseMain = /*#__PURE__*/_styled__default.default("div", {
73
+ target: "e1tvay128"
74
+ })("production" === "production" ? {
75
+ name: "gaqfa6",
76
+ styles: "flex:1;display:flex;width:100%;min-width:0;min-height:0"
77
+ } : {
78
+ name: "gaqfa6",
79
+ styles: "flex:1;display:flex;width:100%;min-width:0;min-height:0",
80
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
81
+ });
82
+ /**
83
+ * Wrapper contains:
84
+ * - FileTabs
85
+ * - File (Editor)
86
+ */
87
+ var StyledExerciseFileAndTabWrap = /*#__PURE__*/_styled__default.default("div", {
88
+ target: "e1tvay127"
89
+ })("flex:1;display:flex;flex-direction:column;height:100%;min-width:0;min-height:0;background-color:", designTokens.base.color.navy9, ";");
90
+ var StyledExerciseFileWrap = /*#__PURE__*/_styled__default.default("div", {
91
+ target: "e1tvay126"
92
+ })("production" === "production" ? {
93
+ name: "1qvekf5",
94
+ styles: "flex:1;min-height:0"
95
+ } : {
96
+ name: "1qvekf5",
97
+ styles: "flex:1;min-height:0",
98
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
99
+ });
100
+ // ========== Exercise FileTab ==========
101
+ var StyledExerciseTabBar = /*#__PURE__*/_styled__default.default("div", {
102
+ target: "e1tvay125"
103
+ })("display:flex;border-bottom:", stylesheets.MATERIAL_DIVIDER_BORDER_VALUE, ";");
104
+ var StyledExerciseTabsWrap = /*#__PURE__*/_styled__default.default("div", {
105
+ target: "e1tvay124"
106
+ })("production" === "production" ? {
107
+ name: "fxp7t8",
108
+ styles: "flex:1;min-width:0"
109
+ } : {
110
+ name: "fxp7t8",
111
+ styles: "flex:1;min-width:0",
112
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
113
+ });
114
+ var StyledExerciseTabMenuWrap = /*#__PURE__*/_styled__default.default("div", {
115
+ target: "e1tvay123"
116
+ })("display:flex;justify-content:center;align-items:center;padding:0 0.5rem 0 1rem;background-color:", designTokens.base.color.navy8, ";");
117
+ // ========== Exercise FileTree ==========
118
+ var StyledExerciseFileTreeWrap = /*#__PURE__*/_styled__default.default("div", {
119
+ target: "e1tvay122"
120
+ })("flex:1;display:flex;flex-direction:column;min-width:0;height:100%;border-right:", stylesheets.MATERIAL_DIVIDER_BORDER_VALUE, ";");
121
+ var StyledxerciseFileTreeContaner = /*#__PURE__*/_styled__default.default("div", {
122
+ target: "e1tvay121"
123
+ })("production" === "production" ? {
124
+ name: "ajoz9e",
125
+ styles: "display:flex;height:100%;max-width:auto;&[aria-hidden='true']{max-width:0;overflow:hidden;}"
126
+ } : {
127
+ name: "ajoz9e",
128
+ styles: "display:flex;height:100%;max-width:auto;&[aria-hidden='true']{max-width:0;overflow:hidden;}",
129
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
130
+ });
131
+ // ========== Exercise Runner ==========
132
+ var StyledExerciseRunnerWrap = /*#__PURE__*/_styled__default.default("div", {
133
+ target: "e1tvay120"
134
+ })("width:100%;height:100%;border-top:", stylesheets.MATERIAL_DIVIDER_BORDER_VALUE, ";");
39
135
  /**
40
136
  * Material exercise.
41
137
  */
@@ -55,13 +151,13 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
55
151
  * File tree
56
152
  */
57
153
  var renderExerciseFileTree = function renderExerciseFileTree() {
58
- return jsxRuntime.jsx(MaterialExercise_styled.StyledxerciseFileTreeContaner, {
154
+ return jsxRuntime.jsx(StyledxerciseFileTreeContaner, {
59
155
  "aria-hidden": !exerciseFileTreeOpened,
60
156
  children: jsxRuntime.jsx(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
61
- initialWidth: Math.max(MaterialExercise_styled.EXERCISE_FILE_TREE_MIN_WIDTH, width * MaterialExercise_styled.EXERCISE_HORIZONTAL_RATIO.FILETREE),
62
- minConstraints: [MaterialExercise_styled.EXERCISE_FILE_TREE_MIN_WIDTH, Infinity],
157
+ initialWidth: Math.max(EXERCISE_FILE_TREE_MIN_WIDTH, width * EXERCISE_HORIZONTAL_RATIO.FILETREE),
158
+ minConstraints: [EXERCISE_FILE_TREE_MIN_WIDTH, Infinity],
63
159
  resizeHandles: ['e'],
64
- children: jsxRuntime.jsx(MaterialExercise_styled.StyledExerciseFileTreeWrap, {
160
+ children: jsxRuntime.jsx(StyledExerciseFileTreeWrap, {
65
161
  children: jsxRuntime.jsx(ExerciseFileTreeLazy.default, {})
66
162
  })
67
163
  }))
@@ -77,7 +173,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
77
173
  * File tabs
78
174
  */
79
175
  var renderExerciseFileTabs = function renderExerciseFileTabs() {
80
- return jsxRuntime.jsx(MaterialExercise_styled.StyledExerciseTabsWrap, {
176
+ return jsxRuntime.jsx(StyledExerciseTabsWrap, {
81
177
  children: jsxRuntime.jsx(ExerciseFileTabsLazy.default, {})
82
178
  });
83
179
  };
@@ -112,7 +208,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
112
208
  * Menu
113
209
  */
114
210
  var renderExerciseMenu = function renderExerciseMenu() {
115
- return jsxRuntime.jsxs(MaterialExercise_styled.StyledExerciseTabMenuWrap, {
211
+ return jsxRuntime.jsxs(StyledExerciseTabMenuWrap, {
116
212
  children: [renderExerciseReferenceDocsToggleButton(), jsxRuntime.jsx(ExerciseMultilangDropdownLazy.default, {}), jsxRuntime.jsx(ExerciseMenu.default, {})]
117
213
  });
118
214
  };
@@ -120,7 +216,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
120
216
  * Code editor and file viewer
121
217
  */
122
218
  var renderExerciseFile = function renderExerciseFile() {
123
- return jsxRuntime.jsx(MaterialExercise_styled.StyledExerciseFileWrap, {
219
+ return jsxRuntime.jsx(StyledExerciseFileWrap, {
124
220
  children: jsxRuntime.jsx(ExerciseFile.default, {})
125
221
  });
126
222
  };
@@ -136,8 +232,8 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
136
232
  }
137
233
  return jsxRuntime.jsx(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
138
234
  children: jsxRuntime.jsx(ExercisePreview.default, {}),
139
- initialWidth: Math.max(MaterialExercise_styled.EXERCISE_PREVIEW_MIN_WIDTH, width * MaterialExercise_styled.EXERCISE_HORIZONTAL_RATIO.PREVIEW),
140
- minConstraints: [MaterialExercise_styled.EXERCISE_PREVIEW_MIN_WIDTH, Infinity],
235
+ initialWidth: Math.max(EXERCISE_PREVIEW_MIN_WIDTH, width * EXERCISE_HORIZONTAL_RATIO.PREVIEW),
236
+ minConstraints: [EXERCISE_PREVIEW_MIN_WIDTH, Infinity],
141
237
  resizeHandles: ['w']
142
238
  }));
143
239
  };
@@ -148,9 +244,9 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
148
244
  if (exercise === null || exercise === void 0 ? void 0 : exercise.uiConfig.isEditorDisabled) {
149
245
  return null;
150
246
  }
151
- return jsxRuntime.jsxs(MaterialExercise_styled.StyledExerciseMain, {
152
- children: [renderExerciseFileTree(), jsxRuntime.jsxs(MaterialExercise_styled.StyledExerciseFileAndTabWrap, {
153
- children: [jsxRuntime.jsxs(MaterialExercise_styled.StyledExerciseTabBar, {
247
+ return jsxRuntime.jsxs(StyledExerciseMain, {
248
+ children: [renderExerciseFileTree(), jsxRuntime.jsxs(StyledExerciseFileAndTabWrap, {
249
+ children: [jsxRuntime.jsxs(StyledExerciseTabBar, {
154
250
  children: [renderExerciseFileTreeButton(), renderExerciseFileTabs(), renderExerciseMenu()]
155
251
  }), renderExerciseFile()]
156
252
  }), jsxRuntime.jsx(ExerciseRightpane.default, {})]
@@ -160,7 +256,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
160
256
  * Exercise Runner
161
257
  */
162
258
  var renderExerciseRunner = function renderExerciseRunner() {
163
- var _runner = jsxRuntime.jsx(MaterialExercise_styled.StyledExerciseRunnerWrap, {
259
+ var _runner = jsxRuntime.jsx(StyledExerciseRunnerWrap, {
164
260
  children: jsxRuntime.jsx(ExerciseRunner.default, {
165
261
  exercisePreview: jsxRuntime.jsx(ExercisePreview.default, {})
166
262
  })
@@ -169,8 +265,8 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
169
265
  return _runner;
170
266
  }
171
267
  return jsxRuntime.jsx(blocks.ResizableNext, Object.assign({}, stylesheets.MATERIAL_RESIZABLE_COMMON_PROPS, {
172
- initialHeight: Math.max(MaterialExercise_styled.EXERCISE_RUNNER_MIN_HEIGHT, height * 0.35),
173
- minConstraints: [Infinity, MaterialExercise_styled.EXERCISE_RUNNER_MIN_HEIGHT],
268
+ initialHeight: Math.max(EXERCISE_RUNNER_MIN_HEIGHT, height * 0.35),
269
+ minConstraints: [Infinity, EXERCISE_RUNNER_MIN_HEIGHT],
174
270
  resizeHandles: ['n'],
175
271
  children: _runner
176
272
  }));
@@ -195,7 +291,7 @@ var MaterialExercise = React.forwardRef(function (props, ref) {
195
291
  //
196
292
  //
197
293
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
198
- children: [jsxRuntime.jsxs(MaterialExercise_styled.StyledExerciseContainer, {
294
+ children: [jsxRuntime.jsxs(StyledExerciseContainer, {
199
295
  children: [renderExerciseMain(), renderExerciseRunner()]
200
296
  }), renderExercisePreviewSideBySide()]
201
297
  });
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { ExerciseProviderDedicatedProps, MaterialExerciseCommonProps } from './types';
3
- export type ExerciseProviderProps = MaterialExerciseCommonProps & Omit<ExerciseProviderDedicatedProps, 'readOnlyActiveFile'>;
3
+ export type ExerciseProviderProps = MaterialExerciseCommonProps & Omit<ExerciseProviderDedicatedProps, 'readOnlyActiveFile'> & {
4
+ children?: React.ReactNode;
5
+ };
4
6
  /**
5
7
  * Provider for exercise, which...
6
8
  * - wrapping with `ExerciseContext`
@@ -2,13 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _styled = require('@emotion/styled/base');
5
6
  var jsxRuntime = require('react/jsx-runtime');
6
7
  var React = require('react');
7
8
  var blocks = require('@elice/blocks');
9
+ var designTokens = require('@elice/design-tokens');
8
10
  var intl = require('@elice/intl');
11
+ var react = require('@emotion/react');
9
12
  var dayjs = require('dayjs');
10
13
  var recoil = require('recoil');
11
- var ExerciseCodeHistory_styled = require('./ExerciseCodeHistory.styled.js');
12
14
  var en = require('./locales/en.json.js');
13
15
  var ko = require('./locales/ko.json.js');
14
16
  var useUsercodeHistory = require('../../../hooks/useUsercodeHistory.js');
@@ -21,9 +23,52 @@ var recoil$1 = require('../context/recoil.js');
21
23
 
22
24
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
23
25
 
26
+ var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
24
27
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
25
28
  var dayjs__default = /*#__PURE__*/_interopDefaultCompat(dayjs);
26
29
 
30
+ 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)."; }
31
+ var cssInputRangeTrack = "production" === "production" ? {
32
+ name: "jsy83f",
33
+ styles: "width:100%;height:0.375rem;cursor:pointer;transition:all 0.2s ease"
34
+ } : {
35
+ name: "jsy83f",
36
+ styles: "width:100%;height:0.375rem;cursor:pointer;transition:all 0.2s ease",
37
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
38
+ };
39
+ var cssInputRangeThumb = /*#__PURE__*/react.css("height:1rem;width:1rem;border-radius:50%;background:", designTokens.base.color.primary6, ";cursor:pointer;");
40
+ var StyledModalContent = /*#__PURE__*/_styled__default.default(blocks.Flex, {
41
+ target: "e1y3ui135"
42
+ })("production" === "production" ? {
43
+ name: "1j1fdpn",
44
+ styles: "position:absolute;width:100%;height:100%;overflow:hidden"
45
+ } : {
46
+ name: "1j1fdpn",
47
+ styles: "position:absolute;width:100%;height:100%;overflow:hidden",
48
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
49
+ });
50
+ var StyledVersionRangeInput = /*#__PURE__*/_styled__default.default("input", {
51
+ target: "e1y3ui134"
52
+ })("--webkit-appearance:none;margin:0.5rem 0;width:100%;cursor:pointer;&:focus{outline:none;}&::-webkit-slider-runnable-track{background:", designTokens.base.color.navy9, ";", cssInputRangeTrack, ";}&::-webkit-slider-thumb{-webkit-appearance:none;margin-top:calc((0.375rem - 1rem) / 2);", cssInputRangeThumb, ";}&:focus::-webkit-slider-runnable-track{background:rgba(", designTokens.base.color.navy9, ", 0.05);}&::-moz-range-track{background:", designTokens.base.color.navy9, ";", cssInputRangeTrack, ";}&::-moz-range-thumb{", cssInputRangeThumb, ";}");
53
+ var StyledVersionsWrapper = /*#__PURE__*/_styled__default.default(blocks.Flex, {
54
+ target: "e1y3ui133"
55
+ })("flex-direction:column;flex:1 1.75 25rem;position:relative;height:100%;border-right:1px solid ", designTokens.base.color.navy9, ";");
56
+ var StyledVersionRangeInputWrapper = /*#__PURE__*/_styled__default.default(blocks.Flex, {
57
+ target: "e1y3ui132"
58
+ })("height:3rem;padding:1rem;border-bottom:1px solid ", designTokens.base.color.navy9, ";");
59
+ var StyledEditorWrapper = /*#__PURE__*/_styled__default.default(blocks.Flex, {
60
+ target: "e1y3ui131"
61
+ })("production" === "production" ? {
62
+ name: "xf8y5j",
63
+ styles: "flex-direction:column;flex:1 1 auto;width:100%;height:100%;overflow:scroll"
64
+ } : {
65
+ name: "xf8y5j",
66
+ styles: "flex-direction:column;flex:1 1 auto;width:100%;height:100%;overflow:scroll",
67
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
68
+ });
69
+ var StyledFileNameBox = /*#__PURE__*/_styled__default.default(blocks.Text, {
70
+ target: "e1y3ui130"
71
+ })("min-height:3rem;height:3rem;line-height:3rem;padding-left:1rem;border-bottom:1px solid ", designTokens.base.color.navy9, ";");
27
72
  var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
28
73
  var onHide = _ref.onHide,
29
74
  onLoadVersionButtonClick = _ref.onLoadVersionButtonClick,
@@ -81,9 +126,9 @@ var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
81
126
  *
82
127
  */
83
128
  var rednerVersionControlColumn = function rednerVersionControlColumn() {
84
- return jsxRuntime.jsxs(ExerciseCodeHistory_styled.StyledVersionsWrapper, {
85
- children: [jsxRuntime.jsx(ExerciseCodeHistory_styled.StyledVersionRangeInputWrapper, {
86
- children: jsxRuntime.jsx(ExerciseCodeHistory_styled.StyledVersionRangeInput, {
129
+ return jsxRuntime.jsxs(StyledVersionsWrapper, {
130
+ children: [jsxRuntime.jsx(StyledVersionRangeInputWrapper, {
131
+ children: jsxRuntime.jsx(StyledVersionRangeInput, {
87
132
  type: "range",
88
133
  min: latestVersion ? latestVersion - ops.length + 1 : 0,
89
134
  max: latestVersion !== null && latestVersion !== void 0 ? latestVersion : 0,
@@ -104,8 +149,8 @@ var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
104
149
  }
105
150
  var uniqueFilePath = "code-history/".concat(exerciseRoomId, "/v").concat(version !== null && version !== void 0 ? version : 0);
106
151
  var editorFilename = "".concat(uniqueFilePath, "/").concat(activeFilename);
107
- return jsxRuntime.jsxs(ExerciseCodeHistory_styled.StyledEditorWrapper, {
108
- children: [jsxRuntime.jsx(ExerciseCodeHistory_styled.StyledFileNameBox, {
152
+ return jsxRuntime.jsxs(StyledEditorWrapper, {
153
+ children: [jsxRuntime.jsx(StyledFileNameBox, {
109
154
  role: "white",
110
155
  children: activeFilename
111
156
  }), jsxRuntime.jsx(MonacoEditorLazy.default, {
@@ -145,7 +190,7 @@ var ExerciseCodeHistory = function ExerciseCodeHistory(_ref) {
145
190
  }),
146
191
  footer: renderFooterButton(),
147
192
  onHide: onHide,
148
- children: jsxRuntime.jsxs(ExerciseCodeHistory_styled.StyledModalContent, {
193
+ children: jsxRuntime.jsxs(StyledModalContent, {
149
194
  children: [rednerVersionControlColumn(), renderEditorColumn()]
150
195
  })
151
196
  });
@@ -147,7 +147,7 @@ var ExerciseRunnerControllerArduinoAgentModal = function ExerciseRunnerControlle
147
147
  return null;
148
148
  }
149
149
  return jsxRuntime.jsx(blocks.Modal, {
150
- theme: 'dark',
150
+ theme: "dark",
151
151
  title: intl$1.formatMessage({
152
152
  id: 'exerciseRunner.controller.arduino.agent.title'
153
153
  }),
@@ -2,12 +2,28 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _styled = require('@emotion/styled/base');
5
6
  var jsxRuntime = require('react/jsx-runtime');
6
- var ExerciseVersionList_styled = require('./ExerciseVersionList.styled.js');
7
+ var blocks = require('@elice/blocks');
7
8
 
9
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
10
+
11
+ var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
12
+
13
+ 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)."; }
14
+ var StyledVersionList = /*#__PURE__*/_styled__default.default(blocks.List, {
15
+ target: "e1plvajs0"
16
+ })("production" === "production" ? {
17
+ name: "1uke1dw",
18
+ styles: "height:100%;padding:0;overflow:scroll;background-color:transparent;&>last-of-type{border:none;}"
19
+ } : {
20
+ name: "1uke1dw",
21
+ styles: "height:100%;padding:0;overflow:scroll;background-color:transparent;&>last-of-type{border:none;}",
22
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
23
+ });
8
24
  var ExerciseVersionList = function ExerciseVersionList(_ref) {
9
25
  var children = _ref.children;
10
- return jsxRuntime.jsx(ExerciseVersionList_styled.StyledVersionList, {
26
+ return jsxRuntime.jsx(StyledVersionList, {
11
27
  children: children
12
28
  });
13
29
  };
@@ -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;
@@ -2,17 +2,79 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _styled = require('@emotion/styled/base');
5
6
  var tslib = require('tslib');
6
7
  var jsxRuntime = require('react/jsx-runtime');
7
8
  var React = require('react');
9
+ var blocks = require('@elice/blocks');
10
+ var designTokens = require('@elice/design-tokens');
8
11
  var icons = require('@elice/icons');
9
- var FileTab_styled = require('./FileTab.styled.js');
12
+ var react = require('@emotion/react');
10
13
  var FileIcon = require('../file-icon/FileIcon.js');
11
14
 
12
15
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
13
16
 
17
+ var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
14
18
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
15
19
 
20
+ 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)."; }
21
+ var TAB_MIN_WIDTH = '7rem';
22
+ var TAB_VERTICAL_BORDER_WIDTH = '1.5px';
23
+ var TAB_BACKGROUND_COLOR = designTokens.base.color.navy8;
24
+ var TAB_ACTIVE_BACKGROUND_COLOR = designTokens.base.color.navy9;
25
+ var TAB_HOVERED_BACKGROUND_COLOR = designTokens.base.color.navy7;
26
+ // ========== Tab label ==========
27
+ var StyledTabLabel = /*#__PURE__*/_styled__default.default("div", {
28
+ target: "eb5vmnz6"
29
+ })("production" === "production" ? {
30
+ name: "1v2fhdm",
31
+ styles: "flex:1;display:flex;align-items:center;overflow:hidden;pointer-events:none;user-select:none;&>*{margin-right:0.5rem;}"
32
+ } : {
33
+ name: "1v2fhdm",
34
+ styles: "flex:1;display:flex;align-items:center;overflow:hidden;pointer-events:none;user-select:none;&>*{margin-right:0.5rem;}",
35
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
36
+ });
37
+ var StyledTabLabelFilename = /*#__PURE__*/_styled__default.default(blocks.Text, {
38
+ target: "eb5vmnz5"
39
+ })("color:", designTokens.base.color.gray4, ";font-weight:500;");
40
+ var StyledTabLabelDirname = /*#__PURE__*/_styled__default.default(blocks.Text, {
41
+ target: "eb5vmnz4"
42
+ })("production" === "production" ? {
43
+ name: "f3vz0n",
44
+ styles: "font-weight:500"
45
+ } : {
46
+ name: "f3vz0n",
47
+ styles: "font-weight:500",
48
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
49
+ });
50
+ var StyledTabCloseButton = /*#__PURE__*/_styled__default.default(blocks.IconButton, {
51
+ target: "eb5vmnz3"
52
+ })("production" === "production" ? {
53
+ name: "19zzndm",
54
+ styles: "flex:0 0 auto;margin-right:0.25rem!important;opacity:0;transition:opacity 150ms ease-in-out"
55
+ } : {
56
+ name: "19zzndm",
57
+ styles: "flex:0 0 auto;margin-right:0.25rem!important;opacity:0;transition:opacity 150ms ease-in-out",
58
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
59
+ });
60
+ // ========== Tab content ==========
61
+ var StyledTabContent = /*#__PURE__*/_styled__default.default("div", {
62
+ target: "eb5vmnz2"
63
+ })("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:", designTokens.base.color.gray3, ";}", StyledTabCloseButton, "{opacity:1;}}");
64
+ // ========== Tab active border ==========
65
+ var StyledTabActiveBorder = /*#__PURE__*/_styled__default.default("div", {
66
+ target: "eb5vmnz1"
67
+ })("height:", TAB_VERTICAL_BORDER_WIDTH, ";background-color:", designTokens.base.color.primary5, ";opacity:0;");
68
+ // ========== Tab ==========
69
+ var cssTabActive = /*#__PURE__*/react.css("background-color:", TAB_ACTIVE_BACKGROUND_COLOR, ";", StyledTabLabelFilename, "{color:", designTokens.base.color.gray3, ";}", StyledTabCloseButton, "{opacity:1;}", StyledTabActiveBorder, "{opacity:1;}");
70
+ var cssTabHovered = /*#__PURE__*/react.css("background-color:", TAB_HOVERED_BACKGROUND_COLOR, ";", StyledTabLabelFilename, "{color:", designTokens.base.color.gray3, ";}");
71
+ var StyledTab = /*#__PURE__*/_styled__default.default("div", {
72
+ target: "eb5vmnz0"
73
+ })("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 ", designTokens.base.color.navy7, ";cursor:pointer;", function (props) {
74
+ return props.active && cssTabActive;
75
+ }, " ", function (props) {
76
+ return props.hovered && cssTabHovered;
77
+ }, ";");
16
78
  var EMPTY_CHUNKS = [];
17
79
  var FileTab = function FileTab(_a) {
18
80
  var fullname = _a.fullname,
@@ -53,7 +115,7 @@ var FileTab = function FileTab(_a) {
53
115
  * File name
54
116
  */
55
117
  var renderTabFileName = function renderTabFileName() {
56
- return jsxRuntime.jsx(FileTab_styled.StyledTabLabelFilename, {
118
+ return jsxRuntime.jsx(StyledTabLabelFilename, {
57
119
  noWrap: true,
58
120
  size: "tiny",
59
121
  children: filename
@@ -67,7 +129,7 @@ var FileTab = function FileTab(_a) {
67
129
  return null;
68
130
  }
69
131
  var parentDir = chunks.slice().pop();
70
- return jsxRuntime.jsx(FileTab_styled.StyledTabLabelDirname, {
132
+ return jsxRuntime.jsx(StyledTabLabelDirname, {
71
133
  noWrap: true,
72
134
  role: "gray5",
73
135
  size: "tiny",
@@ -78,7 +140,7 @@ var FileTab = function FileTab(_a) {
78
140
  * File
79
141
  */
80
142
  var renderTabFile = function renderTabFile() {
81
- return jsxRuntime.jsxs(FileTab_styled.StyledTabLabel, {
143
+ return jsxRuntime.jsxs(StyledTabLabel, {
82
144
  children: [renderTabFileIcon(), renderTabFileName(), renderTabFileDirName()]
83
145
  });
84
146
  };
@@ -86,7 +148,7 @@ var FileTab = function FileTab(_a) {
86
148
  * Tab close icon
87
149
  */
88
150
  var renderTabCloseButton = function renderTabCloseButton() {
89
- return jsxRuntime.jsx(FileTab_styled.StyledTabCloseButton, {
151
+ return jsxRuntime.jsx(StyledTabCloseButton, {
90
152
  transparent: true,
91
153
  icon: icons.eilMathsignMultiplyBasic,
92
154
  role: "gray5",
@@ -103,7 +165,7 @@ var FileTab = function FileTab(_a) {
103
165
  //
104
166
  //
105
167
  //
106
- return jsxRuntime.jsxs(FileTab_styled.StyledTab, Object.assign({}, eventListeners, {
168
+ return jsxRuntime.jsxs(StyledTab, Object.assign({}, eventListeners, {
107
169
  draggable: true,
108
170
  active: active,
109
171
  hovered: hovered,
@@ -113,9 +175,9 @@ var FileTab = function FileTab(_a) {
113
175
  title: "~/".concat(fullname),
114
176
  tabIndex: -1,
115
177
  ref: tabElRef,
116
- children: [jsxRuntime.jsxs(FileTab_styled.StyledTabContent, {
178
+ children: [jsxRuntime.jsxs(StyledTabContent, {
117
179
  children: [renderTabFile(), renderTabCloseButton()]
118
- }), jsxRuntime.jsx(FileTab_styled.StyledTabActiveBorder, {})]
180
+ }), jsxRuntime.jsx(StyledTabActiveBorder, {})]
119
181
  }));
120
182
  };
121
183
 
@@ -3,18 +3,39 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
6
+ var _styled = require('@emotion/styled/base');
6
7
  var jsxRuntime = require('react/jsx-runtime');
7
8
  var React = require('react');
9
+ var designTokens = require('@elice/design-tokens');
8
10
  var throttle = require('lodash/throttle');
11
+ var stylesheets = require('../../../constants/stylesheets.js');
9
12
  var FileTab = require('./FileTab.js');
10
13
  var util = require('./util.js');
11
- var FileTabs_styled = require('./FileTabs.styled.js');
12
14
 
13
15
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
14
16
 
17
+ var _styled__default = /*#__PURE__*/_interopDefaultCompat(_styled);
15
18
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
16
19
  var throttle__default = /*#__PURE__*/_interopDefaultCompat(throttle);
17
20
 
21
+ 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)."; }
22
+ var StyledTabs = /*#__PURE__*/_styled__default.default("div", {
23
+ target: "ep0ecmj1"
24
+ })("display:flex;align-items:flex-end;box-sizing:border-box;flex-direction:row;height:2.25rem;font-family:inherit;background:", designTokens.base.color.navy8, ";overflow-x:overlay;overflow-y:hidden;scrollbar-width:none;", stylesheets.getMaterialScrollBarCss({
25
+ height: '2px',
26
+ borderRadius: '2px',
27
+ hideable: true
28
+ }), ";");
29
+ var StyledTabsDropZone = /*#__PURE__*/_styled__default.default("div", {
30
+ target: "ep0ecmj0"
31
+ })("production" === "production" ? {
32
+ name: "uysyag",
33
+ styles: "flex:1;height:100%;background-color:transparent"
34
+ } : {
35
+ name: "uysyag",
36
+ styles: "flex:1;height:100%;background-color:transparent",
37
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
38
+ });
18
39
  var FileTabs = function FileTabs(_ref) {
19
40
  var openedTabs = _ref.openedTabs,
20
41
  activeTab = _ref.activeTab,
@@ -106,7 +127,7 @@ var FileTabs = function FileTabs(_ref) {
106
127
  * Tab drop zone.
107
128
  */
108
129
  var renderTabsDropZone = function renderTabsDropZone() {
109
- return jsxRuntime.jsx(FileTabs_styled.StyledTabsDropZone, {
130
+ return jsxRuntime.jsx(StyledTabsDropZone, {
110
131
  onDragOver: getTabDragOverHandler(tabs.length - 1),
111
132
  onDrop: handleTabDrop
112
133
  });
@@ -114,7 +135,7 @@ var FileTabs = function FileTabs(_ref) {
114
135
  //
115
136
  //
116
137
  //
117
- return jsxRuntime.jsxs(FileTabs_styled.StyledTabs, {
138
+ return jsxRuntime.jsxs(StyledTabs, {
118
139
  role: "tablist",
119
140
  children: [renderTabs(), renderTabsDropZone()]
120
141
  });