systemview 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/api/Connections.js +36 -0
  2. package/api/connections.txt +1 -0
  3. package/api/index.js +78 -0
  4. package/babel.config.js +12 -0
  5. package/cli/index.js +23 -6
  6. package/cli/launchApp.js +0 -0
  7. package/cli/runTest.js +0 -0
  8. package/cli/utils/cli.js +48 -0
  9. package/cli/utils/init.js +17 -0
  10. package/cli/utils/log.js +11 -0
  11. package/package.json +7 -4
  12. package/plugin/SystemViewModule.js +97 -0
  13. package/plugin/getAllTest.js +21 -0
  14. package/plugin/index.js +40 -0
  15. package/src/App.css +38 -0
  16. package/src/App.js +30 -0
  17. package/src/ServiceContext.js +9 -0
  18. package/src/assets/arrow.png +0 -0
  19. package/src/assets/check.svg +1 -0
  20. package/src/assets/clear.png +0 -0
  21. package/src/assets/edit.png +0 -0
  22. package/src/assets/error.svg +1 -0
  23. package/src/assets/eval-icon.svg +10 -0
  24. package/src/assets/expand-arrow.svg +41 -0
  25. package/src/assets/expand-button.svg +41 -0
  26. package/src/assets/fonts/FontsFree-Net-SFMono-Regular.ttf +0 -0
  27. package/src/assets/fonts/Malkor-Regular.ttf +0 -0
  28. package/src/assets/iconfinder-icon (1).svg +14 -0
  29. package/src/assets/iconfinder-icon.svg +14 -0
  30. package/src/assets/icons-save-60.png +0 -0
  31. package/src/assets/loading.gif +0 -0
  32. package/src/assets/missing-doc.png +0 -0
  33. package/src/assets/saved-doc.png +0 -0
  34. package/src/assets/sysly.png +0 -0
  35. package/src/assets/test-icon.svg +10 -0
  36. package/src/assets/test-missing.png +0 -0
  37. package/src/assets/test-saved.png +0 -0
  38. package/src/assets/x.svg +1 -0
  39. package/src/atoms/Button/Button.js +20 -0
  40. package/src/atoms/Button/Button.test.js +27 -0
  41. package/src/atoms/Button/__snapshots__/Button.test.js.snap +9 -0
  42. package/src/atoms/Button/styles.scss +35 -0
  43. package/src/atoms/Count/index.js +10 -0
  44. package/src/atoms/Count/styles.scss +25 -0
  45. package/src/atoms/DataTable/DataTable.js +27 -0
  46. package/src/atoms/DataTable/DataTable.test.js +55 -0
  47. package/src/atoms/DataTable/__snapshots__/DataTable.test.js.snap +36 -0
  48. package/src/atoms/DataTable/styles.scss +28 -0
  49. package/src/atoms/DescriptionBox/DescriptionBox.js +24 -0
  50. package/src/atoms/DescriptionBox/DescriptionBox.test.js +36 -0
  51. package/src/atoms/DescriptionBox/__snapshots__/DescriptionBox.test.js.snap +14 -0
  52. package/src/atoms/DescriptionBox/styles.scss +24 -0
  53. package/src/atoms/DescriptionText/DescriptionText.js +12 -0
  54. package/src/atoms/DescriptionText/DescriptionText.test.js +22 -0
  55. package/src/atoms/DescriptionText/styles.scss +10 -0
  56. package/src/atoms/DocsIcon/DocsIcon.js +20 -0
  57. package/src/atoms/DocsIcon/DocsIcon.test.js +23 -0
  58. package/src/atoms/DocsIcon/styles.scss +7 -0
  59. package/src/atoms/ExpandableIcon/ExpandableIcon.js +30 -0
  60. package/src/atoms/ExpandableIcon/ExpandableIcon.test.js +18 -0
  61. package/src/atoms/ExpandableIcon/styles.scss +5 -0
  62. package/src/atoms/JsonTextBox/JsonTextBox.js +61 -0
  63. package/src/atoms/JsonTextBox/JsonTextBox.test.js +0 -0
  64. package/src/atoms/JsonTextBox/styles.scss +41 -0
  65. package/src/atoms/Link/Link.js +17 -0
  66. package/src/atoms/Link/Link.test.js +33 -0
  67. package/src/atoms/Link/styles.scss +8 -0
  68. package/src/atoms/List/List.js +8 -0
  69. package/src/atoms/List/List.test.js +26 -0
  70. package/src/atoms/List/styles.scss +9 -0
  71. package/src/atoms/Markdown/Markdown.js +48 -0
  72. package/src/atoms/Markdown/styles.scss +414 -0
  73. package/src/atoms/RunTestIcon/index.js +41 -0
  74. package/src/atoms/RunTestIcon/styles.scss +16 -0
  75. package/src/atoms/SaveIcon/SaveIcon.js +6 -0
  76. package/src/atoms/SaveIcon/styles.scss +3 -0
  77. package/src/atoms/Selector/Selector.js +28 -0
  78. package/src/atoms/Selector/Selector.test.js +0 -0
  79. package/src/atoms/Selector/styles.scss +1 -0
  80. package/src/atoms/StatusIndicator/StatusIndicator.js +16 -0
  81. package/src/atoms/StatusIndicator/styles.scss +33 -0
  82. package/src/atoms/TestsIcon/TestsIcon.js +17 -0
  83. package/src/atoms/TestsIcon/TestsIcon.test.js +18 -0
  84. package/src/atoms/TestsIcon/styles.scss +0 -0
  85. package/src/atoms/Text/Text.js +8 -0
  86. package/src/atoms/Text/Text.test.js +21 -0
  87. package/src/atoms/Text/styles.scss +0 -0
  88. package/src/atoms/Textbox/Textbox.js +33 -0
  89. package/src/atoms/Textbox/Textbox.test.js +23 -0
  90. package/src/atoms/Textbox/styles.scss +14 -0
  91. package/src/atoms/Title/Title.js +12 -0
  92. package/src/atoms/Title/Title.test.js +0 -0
  93. package/src/atoms/Title/styles.scss +6 -0
  94. package/src/atoms/Toggle/Toggle.js +13 -0
  95. package/src/atoms/Toggle/Toggle.test.js +0 -0
  96. package/src/atoms/Toggle/styles.scss +62 -0
  97. package/src/atoms/TypeSelector/TypeSelector.js +28 -0
  98. package/src/atoms/TypeSelector/TypeSelector.test.js +0 -0
  99. package/src/atoms/TypeSelector/styles.scss +9 -0
  100. package/src/index.css +20 -0
  101. package/src/index.js +24 -0
  102. package/src/logo.svg +7 -0
  103. package/src/molecules/Args/Args.js +302 -0
  104. package/src/molecules/Args/Args.test.js +0 -0
  105. package/src/molecules/Args/styles.scss +166 -0
  106. package/src/molecules/AutoCompleteBox/AutoCompleteBox.js +101 -0
  107. package/src/molecules/AutoCompleteBox/AutoCompleteBox.test.js +0 -0
  108. package/src/molecules/AutoCompleteBox/styles.scss +35 -0
  109. package/src/molecules/DataTableForm/DataTableForm.js +167 -0
  110. package/src/molecules/DataTableForm/DataTableForm.test.js +0 -0
  111. package/src/molecules/DataTableForm/styles.scss +51 -0
  112. package/src/molecules/EditBox/EditBox.js +49 -0
  113. package/src/molecules/EditBox/EditBox.test.js +0 -0
  114. package/src/molecules/EditBox/styles.scss +38 -0
  115. package/src/molecules/ExpandableList/ExpandableList.js +26 -0
  116. package/src/molecules/ExpandableList/ExpandableList.test.js +33 -0
  117. package/src/molecules/ExpandableList/styles.scss +18 -0
  118. package/src/molecules/ExpandableSection/ExpandableSection.js +36 -0
  119. package/src/molecules/ExpandableSection/ExpandableSection.test.js +0 -0
  120. package/src/molecules/ExpandableSection/styles.scss +22 -0
  121. package/src/molecules/ServerModulesList/ServerModulesList.js +75 -0
  122. package/src/molecules/ServerModulesList/styles.scss +28 -0
  123. package/src/molecules/TargetSelector/TargetSelector.js +34 -0
  124. package/src/molecules/TargetSelector/TargetSelector.test.js +0 -0
  125. package/src/molecules/TargetSelector/styles.scss +0 -0
  126. package/src/molecules/TestCaption/TestCaption.js +26 -0
  127. package/src/molecules/TestCaption/TestCaption.test.js +0 -0
  128. package/src/molecules/TestCaption/styles.scss +40 -0
  129. package/src/molecules/TestSummary/index.js +212 -0
  130. package/src/molecules/TestSummary/styles.scss +83 -0
  131. package/src/molecules/TextWith2Links/TextWith2Links.js +10 -0
  132. package/src/molecules/TextWith2Links/styles.scss +0 -0
  133. package/src/molecules/ValidationInput/ValidationInput.js +64 -0
  134. package/src/molecules/ValidationInput/ValidationInput.test.js +0 -0
  135. package/src/molecules/ValidationInput/ValidationMessages.js +178 -0
  136. package/src/molecules/ValidationInput/ValidationOptions.js +113 -0
  137. package/src/molecules/ValidationInput/styles.scss +74 -0
  138. package/src/molecules/ValidationInput/validator.js +244 -0
  139. package/src/organisms/Documentation/Documentation.js +128 -0
  140. package/src/organisms/Documentation/Documentation.test.js +0 -0
  141. package/src/organisms/Documentation/styles.scss +22 -0
  142. package/src/organisms/MultiTestSection/MultiTestSection.js +85 -0
  143. package/src/organisms/MultiTestSection/MultiTestSection.test.js +0 -0
  144. package/src/organisms/MultiTestSection/styles.scss +22 -0
  145. package/src/organisms/SavedTests/SavedTests.js +209 -0
  146. package/src/organisms/SavedTests/SavedTests.test.js +0 -0
  147. package/src/organisms/SavedTests/styles.scss +76 -0
  148. package/src/organisms/SavedTests/transformTests.js +51 -0
  149. package/src/organisms/ScratchPad/ScratchPad.js +128 -0
  150. package/src/organisms/ScratchPad/ScratchPad.test.js +0 -0
  151. package/src/organisms/ScratchPad/styles.scss +100 -0
  152. package/src/organisms/SystemNavigator/SystemNavigator.js +148 -0
  153. package/src/organisms/SystemNavigator/SystemNavigator.test.js +24 -0
  154. package/src/organisms/SystemNavigator/styles.scss +38 -0
  155. package/src/organisms/TestContainer/TestContainer.js +72 -0
  156. package/src/organisms/TestContainer/TestContainer.test.js +0 -0
  157. package/src/organisms/TestContainer/styles.scss +20 -0
  158. package/src/organisms/TestPanel/AfterTest/AfterTest.js +16 -0
  159. package/src/organisms/TestPanel/AfterTest/AfterTest.test.js +0 -0
  160. package/src/organisms/TestPanel/AfterTest/styles.scss +0 -0
  161. package/src/organisms/TestPanel/BeforeTest/BeforeTest.js +16 -0
  162. package/src/organisms/TestPanel/BeforeTest/BeforeTest.test.js +0 -0
  163. package/src/organisms/TestPanel/BeforeTest/styles.scss +0 -0
  164. package/src/organisms/TestPanel/Evaluations.js +369 -0
  165. package/src/organisms/TestPanel/EventsTest/EventsTest.js +19 -0
  166. package/src/organisms/TestPanel/EventsTest/styles.scss +0 -0
  167. package/src/organisms/TestPanel/MainTest/MainTest.js +20 -0
  168. package/src/organisms/TestPanel/MainTest/MainTest.test.js +0 -0
  169. package/src/organisms/TestPanel/MainTest/styles.scss +143 -0
  170. package/src/organisms/TestPanel/TestPanel.js +170 -0
  171. package/src/organisms/TestPanel/TestPanel.test.js +0 -0
  172. package/src/organisms/TestPanel/components/Argument.class.js +94 -0
  173. package/src/organisms/TestPanel/components/FullTestController.js +78 -0
  174. package/src/organisms/TestPanel/components/Test.class.js +162 -0
  175. package/src/organisms/TestPanel/components/TestController.class.js +135 -0
  176. package/src/organisms/TestPanel/components/test-helpers.js +109 -0
  177. package/src/organisms/TestPanel/styles.scss +45 -0
  178. package/src/pages/SystemView/SystemView.js +68 -0
  179. package/src/pages/SystemView/styles.scss +81 -0
  180. package/src/reportWebVitals.js +13 -0
  181. package/src/sass/bootstrap/_alert.scss +51 -0
  182. package/src/sass/bootstrap/_badge.scss +47 -0
  183. package/src/sass/bootstrap/_breadcrumb.scss +38 -0
  184. package/src/sass/bootstrap/_button-group.scss +166 -0
  185. package/src/sass/bootstrap/_buttons.scss +143 -0
  186. package/src/sass/bootstrap/_card.scss +270 -0
  187. package/src/sass/bootstrap/_carousel.scss +191 -0
  188. package/src/sass/bootstrap/_close.scss +34 -0
  189. package/src/sass/bootstrap/_code.scss +56 -0
  190. package/src/sass/bootstrap/_custom-forms.scss +297 -0
  191. package/src/sass/bootstrap/_dropdown.scss +131 -0
  192. package/src/sass/bootstrap/_forms.scss +333 -0
  193. package/src/sass/bootstrap/_functions.scss +86 -0
  194. package/src/sass/bootstrap/_grid.scss +52 -0
  195. package/src/sass/bootstrap/_images.scss +42 -0
  196. package/src/sass/bootstrap/_input-group.scss +159 -0
  197. package/src/sass/bootstrap/_jumbotron.scss +16 -0
  198. package/src/sass/bootstrap/_list-group.scss +115 -0
  199. package/src/sass/bootstrap/_media.scss +8 -0
  200. package/src/sass/bootstrap/_mixins.scss +42 -0
  201. package/src/sass/bootstrap/_modal.scss +168 -0
  202. package/src/sass/bootstrap/_nav.scss +118 -0
  203. package/src/sass/bootstrap/_navbar.scss +311 -0
  204. package/src/sass/bootstrap/_pagination.scss +77 -0
  205. package/src/sass/bootstrap/_popover.scss +183 -0
  206. package/src/sass/bootstrap/_print.scss +124 -0
  207. package/src/sass/bootstrap/_progress.scss +33 -0
  208. package/src/sass/bootstrap/_reboot.scss +482 -0
  209. package/src/sass/bootstrap/_root.scss +19 -0
  210. package/src/sass/bootstrap/_tables.scss +180 -0
  211. package/src/sass/bootstrap/_tooltip.scss +115 -0
  212. package/src/sass/bootstrap/_transitions.scss +36 -0
  213. package/src/sass/bootstrap/_type.scss +125 -0
  214. package/src/sass/bootstrap/_utilities.scss +14 -0
  215. package/src/sass/bootstrap/_variables.scss +894 -0
  216. package/src/sass/bootstrap/bootstrap-grid.scss +32 -0
  217. package/src/sass/bootstrap/bootstrap-reboot.scss +12 -0
  218. package/src/sass/bootstrap/bootstrap.scss +42 -0
  219. package/src/sass/bootstrap/mixins/_alert.scss +13 -0
  220. package/src/sass/bootstrap/mixins/_background-variant.scss +21 -0
  221. package/src/sass/bootstrap/mixins/_badge.scss +12 -0
  222. package/src/sass/bootstrap/mixins/_border-radius.scss +35 -0
  223. package/src/sass/bootstrap/mixins/_box-shadow.scss +5 -0
  224. package/src/sass/bootstrap/mixins/_breakpoints.scss +123 -0
  225. package/src/sass/bootstrap/mixins/_buttons.scss +109 -0
  226. package/src/sass/bootstrap/mixins/_caret.scss +65 -0
  227. package/src/sass/bootstrap/mixins/_clearfix.scss +7 -0
  228. package/src/sass/bootstrap/mixins/_float.scss +11 -0
  229. package/src/sass/bootstrap/mixins/_forms.scss +137 -0
  230. package/src/sass/bootstrap/mixins/_gradients.scss +45 -0
  231. package/src/sass/bootstrap/mixins/_grid-framework.scss +67 -0
  232. package/src/sass/bootstrap/mixins/_grid.scss +52 -0
  233. package/src/sass/bootstrap/mixins/_hover.scss +39 -0
  234. package/src/sass/bootstrap/mixins/_image.scss +36 -0
  235. package/src/sass/bootstrap/mixins/_list-group.scss +21 -0
  236. package/src/sass/bootstrap/mixins/_lists.scss +7 -0
  237. package/src/sass/bootstrap/mixins/_nav-divider.scss +10 -0
  238. package/src/sass/bootstrap/mixins/_navbar-align.scss +10 -0
  239. package/src/sass/bootstrap/mixins/_pagination.scss +22 -0
  240. package/src/sass/bootstrap/mixins/_reset-text.scss +17 -0
  241. package/src/sass/bootstrap/mixins/_resize.scss +6 -0
  242. package/src/sass/bootstrap/mixins/_screen-reader.scss +35 -0
  243. package/src/sass/bootstrap/mixins/_size.scss +6 -0
  244. package/src/sass/bootstrap/mixins/_table-row.scss +30 -0
  245. package/src/sass/bootstrap/mixins/_text-emphasis.scss +14 -0
  246. package/src/sass/bootstrap/mixins/_text-hide.scss +9 -0
  247. package/src/sass/bootstrap/mixins/_text-truncate.scss +8 -0
  248. package/src/sass/bootstrap/mixins/_transition.scss +9 -0
  249. package/src/sass/bootstrap/mixins/_visibility.scss +7 -0
  250. package/src/sass/bootstrap/utilities/_align.scss +8 -0
  251. package/src/sass/bootstrap/utilities/_background.scss +19 -0
  252. package/src/sass/bootstrap/utilities/_borders.scss +59 -0
  253. package/src/sass/bootstrap/utilities/_clearfix.scss +3 -0
  254. package/src/sass/bootstrap/utilities/_display.scss +38 -0
  255. package/src/sass/bootstrap/utilities/_embed.scss +52 -0
  256. package/src/sass/bootstrap/utilities/_flex.scss +46 -0
  257. package/src/sass/bootstrap/utilities/_float.scss +9 -0
  258. package/src/sass/bootstrap/utilities/_position.scss +36 -0
  259. package/src/sass/bootstrap/utilities/_screenreaders.scss +11 -0
  260. package/src/sass/bootstrap/utilities/_sizing.scss +12 -0
  261. package/src/sass/bootstrap/utilities/_spacing.scss +51 -0
  262. package/src/sass/bootstrap/utilities/_text.scss +52 -0
  263. package/src/sass/bootstrap/utilities/_visibility.scss +11 -0
  264. package/src/setupTests.js +5 -0
@@ -0,0 +1,41 @@
1
+ .json-text-box {
2
+ position: relative;
3
+ &__textbox {
4
+ min-width: 100%;
5
+ max-width: 100%;
6
+ min-height: 100px;
7
+ border: 1px solid #8ea8eb;
8
+ margin-top: 6px;
9
+ }
10
+
11
+ &__btn-container {
12
+ position: absolute;
13
+ right: 1px;
14
+ top: 9px;
15
+ }
16
+ &__btn {
17
+ padding: 2px 6px;
18
+ border-radius: 1px;
19
+ cursor: pointer;
20
+ margin-left: 4px;
21
+ font-family: system-ui;
22
+ font-weight: 500;
23
+ &:active {
24
+ position: relative;
25
+ top: 1px;
26
+ }
27
+ &--is-json-true {
28
+ background: #25d0a8;
29
+ color: white;
30
+ }
31
+ &--is-json-false {
32
+ background: #cfc2c2;
33
+ color: #8c3c3c;
34
+ text-decoration: line-through;
35
+ }
36
+ &--cancel {
37
+ background: #ff6b6b;
38
+ color: white;
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import "./styles.scss";
3
+ import { Link } from "react-router-dom";
4
+
5
+ const myLink = ({ link, add_class, text, linkClick }) => {
6
+ const click = (e) => {
7
+ e.stopPropagation();
8
+ if (typeof linkClick === "function") linkClick();
9
+ };
10
+ return (
11
+ <Link className="link" to={link}>
12
+ {text}
13
+ </Link>
14
+ );
15
+ };
16
+
17
+ export default myLink;
@@ -0,0 +1,33 @@
1
+ /* eslint-disable jest/valid-expect */
2
+ import React from "react";
3
+
4
+ import { expect } from "chai";
5
+ import { shallow, render } from "enzyme";
6
+
7
+ import Link from "./Link";
8
+
9
+ import Enzyme from "enzyme";
10
+ import Adapter from "enzyme-adapter-react-16";
11
+ Enzyme.configure({ adapter: new Adapter() });
12
+
13
+ describe("<Link/>", () => {
14
+ it("renders a tag with class link", () => {
15
+ const wrapper = shallow(<Link />);
16
+ expect(wrapper.find("a.link")).to.have.a.lengthOf(1);
17
+ });
18
+
19
+ it("renders text with the link when text prop is used", () => {
20
+ const wrapper = render(<Link text="test" />);
21
+ expect(wrapper.text()).to.equal("test");
22
+ });
23
+
24
+ it("should additional classname to the container <a> tag when add_class prop", () => {
25
+ const wrapper = shallow(<Link add_class="test" />);
26
+ expect(expect(wrapper.find("a.link").props().className).to.equal("link test"));
27
+ });
28
+
29
+ it("should use link prop to add href", () => {
30
+ const wrapper = shallow(<Link link="/test" />);
31
+ expect(expect(wrapper.find("a.link").props().href).to.equal("/test"));
32
+ });
33
+ });
@@ -0,0 +1,8 @@
1
+ .link {
2
+ color: #282d33;
3
+ text-decoration: none;
4
+ font-size: 16px;
5
+ &:hover {
6
+ text-decoration: underline;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import "./styles.scss";
3
+
4
+ const List = ({ children }) => {
5
+ return <div className="list">{children}</div>;
6
+ };
7
+
8
+ export default List;
@@ -0,0 +1,26 @@
1
+ /* eslint-disable jest/valid-expect */
2
+ import React from "react";
3
+
4
+ import { expect } from "chai";
5
+ import { shallow, render } from "enzyme";
6
+
7
+ import List from "./List";
8
+
9
+ import Enzyme from "enzyme";
10
+ import Adapter from "enzyme-adapter-react-16";
11
+ Enzyme.configure({ adapter: new Adapter() });
12
+
13
+ describe("<List/>", () => {
14
+ it("renders a div tag with class list", () => {
15
+ const wrapper = shallow(<List />);
16
+ expect(wrapper.find("div.list")).to.have.a.lengthOf(1);
17
+ });
18
+ it("renders a div tag children", () => {
19
+ const wrapper = shallow(
20
+ <List>
21
+ <div className="test"></div>
22
+ </List>
23
+ );
24
+ expect(wrapper.find("div.list > div.test")).to.have.a.lengthOf(1);
25
+ });
26
+ });
@@ -0,0 +1,9 @@
1
+ .list {
2
+ text-align: left;
3
+ padding: 6px 0px 6px 6px;
4
+ text-indent: 29px;
5
+ display: flex;
6
+ flex-direction: column;
7
+ line-height: 20px;
8
+ color: #343542;
9
+ }
@@ -0,0 +1,48 @@
1
+ import React from "react";
2
+ import ReactMarkdown from "react-markdown";
3
+ import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
4
+ import { dracula } from "react-syntax-highlighter/dist/cjs/styles/prism";
5
+ import remarkGfm from "remark-gfm";
6
+
7
+ import "./styles.scss";
8
+
9
+ const Markdown = ({ children }) => {
10
+ return (
11
+ <div className="markdown">
12
+ <ReactMarkdown
13
+ remarkPlugins={[remarkGfm]}
14
+ renderers={{ code: CodeBlock }}
15
+ components={{
16
+ code({ node, inline, className, children, ...props }) {
17
+ const match = /language-(\w+)/.exec(className || "");
18
+ return !inline && match ? (
19
+ <SyntaxHighlighter
20
+ children={String(children).replace(/\n$/, "")}
21
+ style={dracula}
22
+ language={match[1]}
23
+ PreTag="div"
24
+ {...props}
25
+ />
26
+ ) : (
27
+ <code className={className} {...props}>
28
+ {children}
29
+ </code>
30
+ );
31
+ },
32
+ }}
33
+ >
34
+ {children}
35
+ </ReactMarkdown>
36
+ </div>
37
+ );
38
+ };
39
+
40
+ function CodeBlock({ value, language }) {
41
+ return (
42
+ <SyntaxHighlighter language={language} style={dracula}>
43
+ {value || ""}
44
+ </SyntaxHighlighter>
45
+ );
46
+ }
47
+
48
+ export default Markdown;
@@ -0,0 +1,414 @@
1
+ .markdown {
2
+ // font-family: Helvetica, arial, sans-serif;
3
+ font-size: 15px;
4
+ line-height: 1.6;
5
+ padding-top: 10px;
6
+ padding-bottom: 10px;
7
+ background-color: white;
8
+ padding: 30px;
9
+
10
+ & > *:first-child {
11
+ margin-top: 0 !important;
12
+ }
13
+ & > *:last-child {
14
+ margin-bottom: 0 !important;
15
+ }
16
+
17
+ & a {
18
+ color: #4183c4;
19
+ }
20
+ & a.absent {
21
+ color: #cc0000;
22
+ }
23
+ & a.anchor {
24
+ display: block;
25
+ padding-left: 30px;
26
+ margin-left: -30px;
27
+ cursor: pointer;
28
+ position: absolute;
29
+ top: 0;
30
+ left: 0;
31
+ bottom: 0;
32
+ }
33
+
34
+ & h1,
35
+ h2,
36
+ h3,
37
+ h4,
38
+ h5,
39
+ h6 {
40
+ margin: 20px 0 10px;
41
+ padding: 0;
42
+ font-weight: bold;
43
+ -webkit-font-smoothing: antialiased;
44
+ cursor: text;
45
+ position: relative;
46
+ color: #5960b6 !important;
47
+ }
48
+
49
+ & h1:hover a.anchor,
50
+ h2:hover a.anchor,
51
+ h3:hover a.anchor,
52
+ h4:hover a.anchor,
53
+ h5:hover a.anchor,
54
+ h6:hover a.anchor {
55
+ text-decoration: none;
56
+ }
57
+
58
+ & h1 tt,
59
+ h1 code {
60
+ font-size: inherit;
61
+ }
62
+
63
+ & h2 tt,
64
+ h2 code {
65
+ font-size: inherit;
66
+ }
67
+
68
+ & h3 tt,
69
+ h3 code {
70
+ font-size: inherit;
71
+ }
72
+
73
+ & h4 tt,
74
+ h4 code {
75
+ font-size: inherit;
76
+ }
77
+
78
+ & h5 tt,
79
+ h5 code {
80
+ font-size: inherit;
81
+ }
82
+
83
+ & h6 tt,
84
+ h6 code {
85
+ font-size: inherit;
86
+ }
87
+
88
+ & h1 {
89
+ font-size: 28px;
90
+ color: black;
91
+ }
92
+
93
+ & h2 {
94
+ font-size: 24px;
95
+ border-bottom: 1px solid #cccccc;
96
+ color: black;
97
+ }
98
+
99
+ & h3 {
100
+ font-size: 18px;
101
+ }
102
+
103
+ & h4 {
104
+ font-size: 16px;
105
+ }
106
+
107
+ & h5 {
108
+ font-size: 14px;
109
+ }
110
+
111
+ & h6 {
112
+ color: #777777;
113
+ font-size: 14px;
114
+ }
115
+
116
+ & p,
117
+ blockquote,
118
+ ul,
119
+ ol,
120
+ dl,
121
+ li,
122
+ table,
123
+ pre {
124
+ margin: 15px 0;
125
+ }
126
+
127
+ & hr {
128
+ border: 0 none;
129
+ color: #cccccc;
130
+ height: 4px;
131
+ padding: 0;
132
+ border-bottom: 1px solid;
133
+ }
134
+
135
+ & > h2:first-child {
136
+ margin-top: 0;
137
+ padding-top: 0;
138
+ }
139
+ & > h1:first-child {
140
+ margin-top: 0;
141
+ padding-top: 0;
142
+ }
143
+ & > h1:first-child + h2 {
144
+ margin-top: 0;
145
+ padding-top: 0;
146
+ }
147
+ & > h3:first-child,
148
+ & > h4:first-child,
149
+ & > h5:first-child,
150
+ & > h6:first-child {
151
+ margin-top: 0;
152
+ padding-top: 0;
153
+ }
154
+
155
+ & a:first-child h1,
156
+ a:first-child h2,
157
+ a:first-child h3,
158
+ a:first-child h4,
159
+ a:first-child h5,
160
+ a:first-child h6 {
161
+ margin-top: 0;
162
+ padding-top: 0;
163
+ }
164
+
165
+ & h1 p,
166
+ h2 p,
167
+ h3 p,
168
+ h4 p,
169
+ h5 p,
170
+ h6 p {
171
+ margin-top: 0;
172
+ }
173
+
174
+ & li p.first {
175
+ display: inline-block;
176
+ }
177
+ & li {
178
+ margin: 0;
179
+ }
180
+ & ul,
181
+ ol {
182
+ padding-left: 30px;
183
+ }
184
+
185
+ & ul :first-child,
186
+ ol :first-child {
187
+ margin-top: 0;
188
+ }
189
+
190
+ & dl {
191
+ padding: 0;
192
+ }
193
+ & dl dt {
194
+ font-size: 14px;
195
+ font-weight: bold;
196
+ font-style: italic;
197
+ padding: 0;
198
+ margin: 15px 0 5px;
199
+ }
200
+ & dl dt:first-child {
201
+ padding: 0;
202
+ }
203
+ & dl dt > :first-child {
204
+ margin-top: 0;
205
+ }
206
+ & dl dt > :last-child {
207
+ margin-bottom: 0;
208
+ }
209
+ & dl dd {
210
+ margin: 0 0 15px;
211
+ padding: 0 15px;
212
+ }
213
+ & dl dd > :first-child {
214
+ margin-top: 0;
215
+ }
216
+ & dl dd > :last-child {
217
+ margin-bottom: 0;
218
+ }
219
+
220
+ & blockquote {
221
+ border-left: 3px solid #c3c3c3;
222
+ color: #777777;
223
+ font-size: 14px;
224
+ text-indent: 8px;
225
+ }
226
+ & blockquote > :first-child {
227
+ margin-top: 0;
228
+ }
229
+ & blockquote > :last-child {
230
+ margin-bottom: 0;
231
+ }
232
+
233
+ & table {
234
+ padding: 0;
235
+ border-collapse: collapse;
236
+ }
237
+ & table tr {
238
+ border-top: 1px solid #cccccc;
239
+ background-color: white;
240
+ margin: 0;
241
+ padding: 0;
242
+ }
243
+ & table tr:nth-child(2n) {
244
+ background-color: #f8f8f8;
245
+ }
246
+ & table tr th {
247
+ font-weight: bold;
248
+ border: 1px solid #cccccc;
249
+ margin: 0;
250
+ padding: 6px 13px;
251
+ }
252
+ & table tr td {
253
+ border: 1px solid #cccccc;
254
+ margin: 0;
255
+ padding: 6px 13px;
256
+ }
257
+ & table tr th :first-child,
258
+ table tr td :first-child {
259
+ margin-top: 0;
260
+ }
261
+ & table tr th :last-child,
262
+ table tr td :last-child {
263
+ margin-bottom: 0;
264
+ }
265
+
266
+ & img {
267
+ max-width: 100%;
268
+ }
269
+
270
+ & span.frame {
271
+ display: block;
272
+ overflow: hidden;
273
+ }
274
+ & span.frame > span {
275
+ border: 1px solid #dddddd;
276
+ display: block;
277
+ float: left;
278
+ overflow: hidden;
279
+ margin: 13px 0 0;
280
+ padding: 7px;
281
+ width: auto;
282
+ }
283
+ & span.frame span img {
284
+ display: block;
285
+ float: left;
286
+ }
287
+ & span.frame span span {
288
+ clear: both;
289
+ color: #333333;
290
+ display: block;
291
+ padding: 5px 0 0;
292
+ }
293
+ & span.align-center {
294
+ display: block;
295
+ overflow: hidden;
296
+ clear: both;
297
+ }
298
+ & span.align-center > span {
299
+ display: block;
300
+ overflow: hidden;
301
+ margin: 13px auto 0;
302
+ text-align: center;
303
+ }
304
+ & span.align-center span img {
305
+ margin: 0 auto;
306
+ text-align: center;
307
+ }
308
+ & span.align-right {
309
+ display: block;
310
+ overflow: hidden;
311
+ clear: both;
312
+ }
313
+ & span.align-right > span {
314
+ display: block;
315
+ overflow: hidden;
316
+ margin: 13px 0 0;
317
+ text-align: right;
318
+ }
319
+ & span.align-right span img {
320
+ margin: 0;
321
+ text-align: right;
322
+ }
323
+ & span.float-left {
324
+ display: block;
325
+ margin-right: 13px;
326
+ overflow: hidden;
327
+ float: left;
328
+ }
329
+ & span.float-left span {
330
+ margin: 13px 0 0;
331
+ }
332
+ & span.float-right {
333
+ display: block;
334
+ margin-left: 13px;
335
+ overflow: hidden;
336
+ float: right;
337
+ }
338
+ & span.float-right > span {
339
+ display: block;
340
+ overflow: hidden;
341
+ margin: 13px auto 0;
342
+ text-align: right;
343
+ }
344
+
345
+ & code,
346
+ tt {
347
+ margin: 0 2px;
348
+ padding: 2px 3px;
349
+ white-space: nowrap;
350
+ background-color: #efeeee;
351
+ border-radius: 3px;
352
+ color: #3f51b5;
353
+ // font-weight: 600;
354
+ font-size: 14px;
355
+ }
356
+
357
+ & pre code {
358
+ margin: 0;
359
+ padding: 0;
360
+ white-space: pre;
361
+ border: none;
362
+ background: transparent;
363
+ // font-family: Monaco, monospace;
364
+ }
365
+
366
+ & .highlight pre {
367
+ // background-color: #f8f8f8;
368
+ // border: 1px solid #cccccc;
369
+ font-size: 13px;
370
+ // line-height: 19px;
371
+ // overflow: auto;
372
+ // padding: 6px 10px;
373
+ // border-radius: 3px;
374
+ }
375
+
376
+ & pre {
377
+ // background-color: #f8f8f8;
378
+ // border: 1px solid #cccccc;
379
+ font-size: 13px;
380
+ // line-height: 19px;
381
+ // overflow: auto;
382
+ // padding: 6px 10px;
383
+ // border-radius: 3px;
384
+ }
385
+ & pre code,
386
+ pre tt {
387
+ background-color: transparent;
388
+ border: none;
389
+ }
390
+
391
+ & sup {
392
+ font-size: 0.83em;
393
+ vertical-align: super;
394
+ line-height: 0;
395
+ }
396
+ & * {
397
+ -webkit-print-color-adjust: exact;
398
+ }
399
+ @media screen and (min-width: 914px) {
400
+ body {
401
+ width: 854px;
402
+ margin: 0 auto;
403
+ }
404
+ }
405
+ @media print {
406
+ table,
407
+ & pre {
408
+ page-break-inside: avoid;
409
+ }
410
+ & pre {
411
+ word-wrap: break-word;
412
+ }
413
+ }
414
+ }
@@ -0,0 +1,41 @@
1
+ import React from "react";
2
+ import TEST_ICON from "../../assets/test-icon.svg";
3
+ import EDIT_ICON from "../../assets/edit.png";
4
+ import X_BUTTON from "../../assets/x.svg";
5
+ import "./styles.scss";
6
+
7
+ export default function RunTestIcon({ onClick }) {
8
+ return (
9
+ <img
10
+ className="btn"
11
+ onClick={onClick}
12
+ style={{ width: "16px" }}
13
+ src={TEST_ICON}
14
+ alt={"Run Test"}
15
+ />
16
+ );
17
+ }
18
+
19
+ export function EditIcon({ onClick }) {
20
+ return (
21
+ <img
22
+ className="btn"
23
+ style={{ width: "16px" }}
24
+ src={EDIT_ICON}
25
+ alt={"Edit Test"}
26
+ onClick={onClick}
27
+ />
28
+ );
29
+ }
30
+
31
+ export function XButton({ onClick }) {
32
+ return (
33
+ <img
34
+ className="btn"
35
+ style={{ width: "10px" }}
36
+ src={X_BUTTON}
37
+ alt={"Delete Test"}
38
+ onClick={onClick}
39
+ />
40
+ );
41
+ }
@@ -0,0 +1,16 @@
1
+ .doc-icon {
2
+ display: inline-flex;
3
+ vertical-align: middle;
4
+ img {
5
+ width: 20px;
6
+ }
7
+ }
8
+
9
+ .delete-button {
10
+ font-family: system-ui;
11
+ color: #c50000;
12
+ background: white;
13
+ padding: 6px 3px;
14
+ border-radius: 40px;
15
+ font-weight: 300;
16
+ }
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import "./styles.scss";
3
+ import icon from "../../assets/icons-save-60.png";
4
+ export default function SaveIcon({ onClick }) {
5
+ return <img className="save-icon" src={icon} alt="Save" />;
6
+ }
@@ -0,0 +1,3 @@
1
+ .save-icon {
2
+ height: 16px;
3
+ }
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import "./styles.scss";
3
+
4
+ const Selector = ({
5
+ options = [],
6
+ values = [],
7
+ selected_option,
8
+ onSelect,
9
+ className,
10
+ controlledOption,
11
+ }) => {
12
+ return (
13
+ <select
14
+ className={className}
15
+ defaultValue={selected_option}
16
+ onChange={onSelect}
17
+ value={controlledOption}
18
+ >
19
+ {options.map((option, i) => (
20
+ <option key={i} value={values[i]}>
21
+ {option}
22
+ </option>
23
+ ))}
24
+ </select>
25
+ );
26
+ };
27
+
28
+ export default Selector;
File without changes
@@ -0,0 +1 @@
1
+