@pingux/astro 2.121.1-alpha.3 → 2.122.0-alpha.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 (31) hide show
  1. package/lib/cjs/components/CodeEditor/CodeEditor.d.ts +4 -0
  2. package/lib/cjs/components/CodeEditor/CodeEditor.js +55 -0
  3. package/lib/cjs/components/CodeEditor/CodeEditor.mdx +35 -0
  4. package/lib/cjs/components/CodeEditor/CodeEditor.stories.d.ts +27 -0
  5. package/lib/cjs/components/CodeEditor/CodeEditor.stories.js +66 -0
  6. package/lib/cjs/components/CodeEditor/CodeEditor.styles.d.ts +10 -0
  7. package/lib/cjs/components/CodeEditor/CodeEditor.styles.js +30 -0
  8. package/lib/cjs/components/CodeEditor/CodeEditor.test.d.ts +1 -0
  9. package/lib/cjs/components/CodeEditor/CodeEditor.test.js +82 -0
  10. package/lib/cjs/components/CodeEditor/index.d.ts +1 -0
  11. package/lib/cjs/components/CodeEditor/index.js +14 -0
  12. package/lib/cjs/components/CodeView/CodeView.mdx +4 -1
  13. package/lib/cjs/index.d.ts +1 -0
  14. package/lib/cjs/index.js +8 -0
  15. package/lib/cjs/styles/variants/variants.js +2 -0
  16. package/lib/cjs/types/codeEditor.d.ts +15 -0
  17. package/lib/cjs/types/codeEditor.js +6 -0
  18. package/lib/cjs/types/index.d.ts +1 -0
  19. package/lib/cjs/types/index.js +60 -49
  20. package/lib/components/CodeEditor/CodeEditor.js +41 -0
  21. package/lib/components/CodeEditor/CodeEditor.mdx +35 -0
  22. package/lib/components/CodeEditor/CodeEditor.stories.js +54 -0
  23. package/lib/components/CodeEditor/CodeEditor.styles.js +22 -0
  24. package/lib/components/CodeEditor/CodeEditor.test.js +79 -0
  25. package/lib/components/CodeEditor/index.js +1 -0
  26. package/lib/components/CodeView/CodeView.mdx +4 -1
  27. package/lib/index.js +1 -0
  28. package/lib/styles/variants/variants.js +2 -0
  29. package/lib/types/codeEditor.js +1 -0
  30. package/lib/types/index.js +1 -0
  31. package/package.json +3 -1
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { CodeEditorProps } from '../../types';
3
+ declare const CodeEditor: React.ForwardRefExoticComponent<CodeEditorProps & React.RefAttributes<HTMLElement>>;
4
+ export default CodeEditor;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = void 0;
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _react2 = _interopRequireDefault(require("@monaco-editor/react"));
16
+ var _index = require("../../index");
17
+ var _react3 = require("@emotion/react");
18
+ var _excluded = ["value", "language", "onChange", "onValidate", "height"];
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ var CodeEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
22
+ var value = props.value,
23
+ language = props.language,
24
+ onChange = props.onChange,
25
+ onValidate = props.onValidate,
26
+ height = props.height,
27
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
28
+ var editorRef = (0, _react.useRef)(null);
29
+ return (0, _react3.jsx)(_index.Box, (0, _extends2["default"])({}, others, {
30
+ ref: ref
31
+ }), (0, _react3.jsx)(_index.Box, {
32
+ variant: "codeEditor.wrapper",
33
+ ref: editorRef,
34
+ height: height
35
+ }, (0, _react3.jsx)(_react2["default"], {
36
+ height: "100%",
37
+ language: language,
38
+ value: value,
39
+ theme: "vs-light",
40
+ onChange: onChange,
41
+ onValidate: onValidate,
42
+ options: {
43
+ fontSize: 14,
44
+ automaticLayout: true,
45
+ minimap: {
46
+ enabled: true
47
+ },
48
+ stickyScroll: {
49
+ enabled: false
50
+ }
51
+ }
52
+ })));
53
+ });
54
+ var _default = CodeEditor;
55
+ exports["default"] = _default;
@@ -0,0 +1,35 @@
1
+ import { Meta } from '@storybook/addon-docs';
2
+
3
+ <Meta title="Components/CodeEditor/CodeEditor" />
4
+
5
+ # CodeEditor
6
+
7
+ The Code Editor component is a tool for editing and displaying code snippets in an application.
8
+ It provides syntax highlighting, shows line numbers, and validates errors in the code.
9
+ In addition, it supports standard IDE keyboard interactions like tab-to-indent.
10
+
11
+ The CodeEditor component should be used for complex use cases that require an interactive environment, support for various programming languages, functionalities like linting, keyboard interactions, and real-time updates.
12
+ When code snippets need to be presented in a read-only format, use [CodeView](./?path=/docs/components-codeview--docs).
13
+
14
+ Languages
15
+ supported languages are categorized into two groups: those with rich IntelliSense and validation capabilities, and those that provide only basic syntax highlighting. Check the list at [monaco-editor](https://github.com/suren-atoyan/monaco-react#:~:text=It%27s%20important%20to%20mention%20that%20according%20to%20monaco%2Deditor%2C%20the%20whole%20supported%20languages%20are%20divided%20into%20two%20groups%3A)
16
+
17
+ ### Required Components
18
+
19
+ This component can be used independently and does not require additional components.
20
+
21
+ ### Accessibility
22
+
23
+ #### Keyboard Navigation
24
+
25
+ These keys provide additional functionality to the component.
26
+
27
+ | Keys | Functions |
28
+ | ---- | --------- |
29
+ | Enter | Inserts a new line of code |
30
+ | Arrow keys | Move the cursor within the code in the set direction |
31
+
32
+ #### Screen Readers
33
+
34
+ The **`aria-live`** attribute is used to announce content changes in a live region.
35
+
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { StoryFn } from '@storybook/react';
3
+ import { CodeEditorProps } from '../../types';
4
+ declare const _default: {
5
+ title: string;
6
+ component: React.ForwardRefExoticComponent<CodeEditorProps & React.RefAttributes<HTMLElement>>;
7
+ parameters: {
8
+ docs: {
9
+ page: () => React.JSX.Element;
10
+ source: {
11
+ type: string;
12
+ };
13
+ };
14
+ a11y: {
15
+ config: {
16
+ rules: {
17
+ id: string;
18
+ enabled: boolean;
19
+ }[];
20
+ };
21
+ };
22
+ };
23
+ };
24
+ export default _default;
25
+ export declare const TypescriptEditor: StoryFn<CodeEditorProps>;
26
+ export declare const JavascriptEditor: StoryFn<CodeEditorProps>;
27
+ export declare const JsonEditor: StoryFn<CodeEditorProps>;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.TypescriptEditor = exports.JsonEditor = exports.JavascriptEditor = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
11
+ var _index = require("../../index");
12
+ var _CodeEditor = _interopRequireDefault(require("./CodeEditor.mdx"));
13
+ var _react2 = require("@emotion/react");
14
+ var _default = {
15
+ title: 'Experimental/CodeEditor',
16
+ component: _index.CodeEditor,
17
+ parameters: {
18
+ docs: {
19
+ page: function page() {
20
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_CodeEditor["default"], null), (0, _react2.jsx)(_storybookDocsLayout["default"], null));
21
+ },
22
+ source: {
23
+ type: 'code'
24
+ }
25
+ },
26
+ a11y: {
27
+ config: {
28
+ rules: [{
29
+ id: 'color-contrast',
30
+ enabled: false
31
+ }, {
32
+ id: 'aria-roledescription',
33
+ enabled: false
34
+ }]
35
+ }
36
+ }
37
+ }
38
+ };
39
+ exports["default"] = _default;
40
+ var jsonCode = "{\n \"name\": \"Luke Skywalker\", \n \"height\": \"172\", \n \"mass\": \"77\", \n \"hair_color\": \"blond\", \n \"skin_color\": \"fair\", \n \"eye_color\": \"blue\", \n \"birth_year\": \"19BBY\", \n \"gender\": \"male\", \n \"homeworld\": \"https://swapi.dev/api/planets/1/\", \n \"films\": [\n \"https://swapi.dev/api/films/1/\", \n \"https://swapi.dev/api/films/2/\", \n \"https://swapi.dev/api/films/3/\", \n \"https://swapi.dev/api/films/6/\"\n ],\n \"starships\": [\n \"https://swapi.dev/api/starships/12/\", \n \"https://swapi.dev/api/starships/22/\"\n ]\n}";
41
+ var tsCode = "const stringValue: string = 15;\n\nfunction addOne(integer: number) {\n return integer + 1;\n}\n\naddOne('I am a string');\n";
42
+ var jsCode = "\nfunction factorial(n) {\n if (n === 0 || n === 1) {\n return 1;\n } else {\n return n * factorial(n - 1);\n }\n}\n\nconsole.log(factorial(5));\n\n(a) => {};\n";
43
+ var TypescriptEditor = function TypescriptEditor() {
44
+ return (0, _react2.jsx)(_index.CodeEditor, {
45
+ value: tsCode,
46
+ language: "typescript",
47
+ height: "200px"
48
+ });
49
+ };
50
+ exports.TypescriptEditor = TypescriptEditor;
51
+ var JavascriptEditor = function JavascriptEditor() {
52
+ return (0, _react2.jsx)(_index.CodeEditor, {
53
+ value: jsCode,
54
+ language: "javascript",
55
+ height: "200px"
56
+ });
57
+ };
58
+ exports.JavascriptEditor = JavascriptEditor;
59
+ var JsonEditor = function JsonEditor() {
60
+ return (0, _react2.jsx)(_index.CodeEditor, {
61
+ value: jsonCode,
62
+ language: "json",
63
+ height: "200px"
64
+ });
65
+ };
66
+ exports.JsonEditor = JsonEditor;
@@ -0,0 +1,10 @@
1
+ declare const _default: {
2
+ wrapper: {
3
+ borderColor: string;
4
+ borderRadius: string;
5
+ borderStyle: string;
6
+ borderWidth: string;
7
+ width: string;
8
+ };
9
+ };
10
+ export default _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
11
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
+ _Object$defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports["default"] = void 0;
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
17
+ var _Input = require("../Input/Input.styles");
18
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
20
+ var wrapper = _objectSpread(_objectSpread({}, _Input.input.fieldControlWrapper), {}, {
21
+ borderColor: 'neutral.80',
22
+ borderRadius: '3px 4px 4px 3px',
23
+ borderStyle: 'solid',
24
+ borderWidth: '1px 1px 1px 0px',
25
+ width: '100%'
26
+ });
27
+ var _default = {
28
+ wrapper: wrapper
29
+ };
30
+ exports["default"] = _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
5
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _index = require("../../index");
9
+ var _testWrapper = require("../../utils/testUtils/testWrapper");
10
+ var _universalComponentTest = require("../../utils/testUtils/universalComponentTest");
11
+ var _react2 = require("@emotion/react");
12
+ var testId = 'test-code-sample';
13
+ var defaultProps = {
14
+ 'data-testid': testId
15
+ };
16
+ var jsCode = "\n function helloWorld() {\n console.log(\"Hello, World!\");\n }\n";
17
+
18
+ // Needs to be added to each components test file
19
+ (0, _universalComponentTest.universalComponentTests)({
20
+ rules: {
21
+ 'color-contrast': {
22
+ enabled: false
23
+ }
24
+ },
25
+ renderComponent: function renderComponent(props) {
26
+ return (0, _react2.jsx)(_index.CodeEditor, (0, _extends2["default"])({}, defaultProps, props, {
27
+ value: jsCode,
28
+ language: "javascript"
29
+ }));
30
+ }
31
+ });
32
+ jest.mock('@monaco-editor/react', function () {
33
+ return {
34
+ __esModule: true,
35
+ "default": function _default(_ref) {
36
+ var _context;
37
+ var language = _ref.language,
38
+ value = _ref.value,
39
+ _onChange = _ref.onChange;
40
+ return (0, _react2.jsx)("textarea", {
41
+ "data-testid": "mock-monaco-editor",
42
+ onChange: function onChange(e) {
43
+ return _onChange(e.target.value);
44
+ },
45
+ value: (0, _concat["default"])(_context = "Editor Language: ".concat(language, ", Code:")).call(_context, value),
46
+ "aria-label": "Code editor"
47
+ });
48
+ }
49
+ };
50
+ });
51
+ describe('CodeEditor', function () {
52
+ it('renders with initial value', function () {
53
+ var value = 'console.log("Hello, World!");';
54
+ (0, _testWrapper.render)((0, _react2.jsx)(_index.CodeEditor, {
55
+ language: "javascript",
56
+ value: value
57
+ }));
58
+ expect(_testWrapper.screen.getByTestId('mock-monaco-editor')).toBeInTheDocument();
59
+ expect(_testWrapper.screen.getByText('Editor Language: javascript, Code:console.log("Hello, World!");')).toBeInTheDocument();
60
+ });
61
+ it('calls onChange when code changes', function () {
62
+ var value = 'console.log("Hello, World!");';
63
+ var mockOnChange = jest.fn();
64
+ (0, _testWrapper.render)((0, _react2.jsx)(_index.CodeEditor, {
65
+ language: "javascript",
66
+ value: value,
67
+ onChange: mockOnChange
68
+ }));
69
+ var editor = _testWrapper.screen.getByTestId('mock-monaco-editor');
70
+ var newValue = (0, _stringify["default"])([{
71
+ key: false
72
+ }]);
73
+ (0, _testWrapper.act)(function () {
74
+ _testWrapper.fireEvent.change(editor, {
75
+ target: {
76
+ value: newValue
77
+ }
78
+ });
79
+ });
80
+ expect(mockOnChange).toHaveBeenCalled();
81
+ });
82
+ });
@@ -0,0 +1 @@
1
+ export { default } from './CodeEditor';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ _Object$defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _CodeEditor["default"];
12
+ }
13
+ });
14
+ var _CodeEditor = _interopRequireDefault(require("./CodeEditor"));
@@ -5,7 +5,10 @@ import { Meta } from '@storybook/addon-docs';
5
5
  # CodeView
6
6
 
7
7
  This component is used for code syntax highlighting and is built on [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer).
8
- It should contain the language title and be formatted with indentations, line breaks, and comments, and should not contain complex code snippets.
8
+ It should contain the language title and be formatted with indentations, line breaks, and comments, and should not contain complex code snippets.
9
+
10
+ The CodeView component should be used for code snippets that need to be presented in a read-only format.
11
+ For more complex use cases that require an interactive environment, support for various programming languages, functionalities like linting, keyboard interactions, and real-time updates, use [CodeEditor](./?path=/docs/experimental-codeeditor--docs).
9
12
 
10
13
  ### Required Components
11
14
 
@@ -59,6 +59,7 @@ export { default as Checkbox } from './components/Checkbox';
59
59
  export * from './components/Checkbox';
60
60
  export { default as CheckboxField } from './components/CheckboxField';
61
61
  export * from './components/CheckboxField';
62
+ export { default as CodeEditor } from './components/CodeEditor';
62
63
  export { default as CodeView } from './components/CodeView';
63
64
  export { default as CollapsiblePanel } from './components/CollapsiblePanel';
64
65
  export * from './components/CollapsiblePanel';
package/lib/cjs/index.js CHANGED
@@ -54,6 +54,7 @@ var _exportNames = {
54
54
  Card: true,
55
55
  Checkbox: true,
56
56
  CheckboxField: true,
57
+ CodeEditor: true,
57
58
  CodeView: true,
58
59
  CollapsiblePanel: true,
59
60
  CollapsiblePanelContainer: true,
@@ -313,6 +314,12 @@ _Object$defineProperty(exports, "CheckboxField", {
313
314
  return _CheckboxField["default"];
314
315
  }
315
316
  });
317
+ _Object$defineProperty(exports, "CodeEditor", {
318
+ enumerable: true,
319
+ get: function get() {
320
+ return _CodeEditor["default"];
321
+ }
322
+ });
316
323
  _Object$defineProperty(exports, "CodeView", {
317
324
  enumerable: true,
318
325
  get: function get() {
@@ -1312,6 +1319,7 @@ _forEachInstanceProperty(_context19 = _Object$keys(_CheckboxField)).call(_contex
1312
1319
  }
1313
1320
  });
1314
1321
  });
1322
+ var _CodeEditor = _interopRequireDefault(require("./components/CodeEditor"));
1315
1323
  var _CodeView = _interopRequireDefault(require("./components/CodeView"));
1316
1324
  var _CollapsiblePanel = _interopRequireWildcard(require("./components/CollapsiblePanel"));
1317
1325
  _forEachInstanceProperty(_context20 = _Object$keys(_CollapsiblePanel)).call(_context20, function (key) {
@@ -24,6 +24,7 @@ var _Breadcrumb = _interopRequireDefault(require("../../components/Breadcrumbs/B
24
24
  var _ButtonBar = _interopRequireDefault(require("../../components/ButtonBar/ButtonBar.styles"));
25
25
  var _Calendar = _interopRequireDefault(require("../../components/Calendar/Calendar.styles"));
26
26
  var _Callout = _interopRequireDefault(require("../../components/Callout/Callout.styles"));
27
+ var _CodeEditor = _interopRequireDefault(require("../../components/CodeEditor/CodeEditor.styles"));
27
28
  var _CodeView = _interopRequireDefault(require("../../components/CodeView/CodeView.styles"));
28
29
  var _CollapsiblePanel = _interopRequireDefault(require("../../components/CollapsiblePanel/CollapsiblePanel.styles"));
29
30
  var _CopyText = _interopRequireDefault(require("../../components/CopyText/CopyText.styles"));
@@ -77,6 +78,7 @@ var _default = _objectSpread({
77
78
  calendar: _Calendar["default"],
78
79
  rangeCalendar: _RangeCalendar["default"],
79
80
  callout: _Callout["default"],
81
+ codeEditor: _CodeEditor["default"],
80
82
  codeView: _CodeView["default"],
81
83
  collapsiblePanel: _CollapsiblePanel["default"],
82
84
  copyText: _CopyText["default"],
@@ -0,0 +1,15 @@
1
+ import { type editor } from 'monaco-editor';
2
+ import * as monaco from 'monaco-editor';
3
+ import { DOMAttributes, StyleProps } from './shared';
4
+ import { FocusableElement } from '.';
5
+ export interface CodeEditorProps extends Omit<DOMAttributes<FocusableElement>, 'onChange'>, StyleProps {
6
+ value?: string;
7
+ language?: string;
8
+ onChange?: (value: string | undefined) => void;
9
+ onValidate?: (markers: editor.IMarker[]) => void;
10
+ }
11
+ export interface CustomEditorOptions extends monaco.editor.IStandaloneEditorConstructionOptions {
12
+ stickyScroll?: {
13
+ enabled: boolean;
14
+ };
15
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
@@ -9,6 +9,7 @@ export * from './buttonBar';
9
9
  export * from './calendar';
10
10
  export * from './card';
11
11
  export * from './checkboxField';
12
+ export * from './codeEditor';
12
13
  export * from './collapsiblePanel';
13
14
  export * from './colorField';
14
15
  export * from './copyText';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10, _context11, _context12, _context13, _context14, _context15, _context16, _context17, _context18, _context19, _context20, _context21, _context22, _context23, _context24, _context25, _context26, _context27, _context28, _context29, _context30, _context31, _context32, _context33, _context34, _context35, _context36, _context37, _context38, _context39, _context40, _context41, _context42, _context43, _context44, _context45, _context46, _context47, _context48, _context49, _context50, _context51, _context52, _context53, _context54, _context55, _context56, _context57, _context58, _context59;
3
+ var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10, _context11, _context12, _context13, _context14, _context15, _context16, _context17, _context18, _context19, _context20, _context21, _context22, _context23, _context24, _context25, _context26, _context27, _context28, _context29, _context30, _context31, _context32, _context33, _context34, _context35, _context36, _context37, _context38, _context39, _context40, _context41, _context42, _context43, _context44, _context45, _context46, _context47, _context48, _context49, _context50, _context51, _context52, _context53, _context54, _context55, _context56, _context57, _context58, _context59, _context60;
4
4
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
5
5
  var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
6
6
  var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
@@ -128,8 +128,19 @@ _forEachInstanceProperty(_context11 = _Object$keys(_checkboxField)).call(_contex
128
128
  }
129
129
  });
130
130
  });
131
+ var _codeEditor = require("./codeEditor");
132
+ _forEachInstanceProperty(_context12 = _Object$keys(_codeEditor)).call(_context12, function (key) {
133
+ if (key === "default" || key === "__esModule") return;
134
+ if (key in exports && exports[key] === _codeEditor[key]) return;
135
+ _Object$defineProperty(exports, key, {
136
+ enumerable: true,
137
+ get: function get() {
138
+ return _codeEditor[key];
139
+ }
140
+ });
141
+ });
131
142
  var _collapsiblePanel = require("./collapsiblePanel");
132
- _forEachInstanceProperty(_context12 = _Object$keys(_collapsiblePanel)).call(_context12, function (key) {
143
+ _forEachInstanceProperty(_context13 = _Object$keys(_collapsiblePanel)).call(_context13, function (key) {
133
144
  if (key === "default" || key === "__esModule") return;
134
145
  if (key in exports && exports[key] === _collapsiblePanel[key]) return;
135
146
  _Object$defineProperty(exports, key, {
@@ -140,7 +151,7 @@ _forEachInstanceProperty(_context12 = _Object$keys(_collapsiblePanel)).call(_con
140
151
  });
141
152
  });
142
153
  var _colorField = require("./colorField");
143
- _forEachInstanceProperty(_context13 = _Object$keys(_colorField)).call(_context13, function (key) {
154
+ _forEachInstanceProperty(_context14 = _Object$keys(_colorField)).call(_context14, function (key) {
144
155
  if (key === "default" || key === "__esModule") return;
145
156
  if (key in exports && exports[key] === _colorField[key]) return;
146
157
  _Object$defineProperty(exports, key, {
@@ -151,7 +162,7 @@ _forEachInstanceProperty(_context13 = _Object$keys(_colorField)).call(_context13
151
162
  });
152
163
  });
153
164
  var _copyText = require("./copyText");
154
- _forEachInstanceProperty(_context14 = _Object$keys(_copyText)).call(_context14, function (key) {
165
+ _forEachInstanceProperty(_context15 = _Object$keys(_copyText)).call(_context15, function (key) {
155
166
  if (key === "default" || key === "__esModule") return;
156
167
  if (key in exports && exports[key] === _copyText[key]) return;
157
168
  _Object$defineProperty(exports, key, {
@@ -162,7 +173,7 @@ _forEachInstanceProperty(_context14 = _Object$keys(_copyText)).call(_context14,
162
173
  });
163
174
  });
164
175
  var _dataTable = require("./dataTable");
165
- _forEachInstanceProperty(_context15 = _Object$keys(_dataTable)).call(_context15, function (key) {
176
+ _forEachInstanceProperty(_context16 = _Object$keys(_dataTable)).call(_context16, function (key) {
166
177
  if (key === "default" || key === "__esModule") return;
167
178
  if (key in exports && exports[key] === _dataTable[key]) return;
168
179
  _Object$defineProperty(exports, key, {
@@ -173,7 +184,7 @@ _forEachInstanceProperty(_context15 = _Object$keys(_dataTable)).call(_context15,
173
184
  });
174
185
  });
175
186
  var _environmentBreadcrumb = require("./environmentBreadcrumb");
176
- _forEachInstanceProperty(_context16 = _Object$keys(_environmentBreadcrumb)).call(_context16, function (key) {
187
+ _forEachInstanceProperty(_context17 = _Object$keys(_environmentBreadcrumb)).call(_context17, function (key) {
177
188
  if (key === "default" || key === "__esModule") return;
178
189
  if (key in exports && exports[key] === _environmentBreadcrumb[key]) return;
179
190
  _Object$defineProperty(exports, key, {
@@ -184,7 +195,7 @@ _forEachInstanceProperty(_context16 = _Object$keys(_environmentBreadcrumb)).call
184
195
  });
185
196
  });
186
197
  var _fieldHelperText = require("./fieldHelperText");
187
- _forEachInstanceProperty(_context17 = _Object$keys(_fieldHelperText)).call(_context17, function (key) {
198
+ _forEachInstanceProperty(_context18 = _Object$keys(_fieldHelperText)).call(_context18, function (key) {
188
199
  if (key === "default" || key === "__esModule") return;
189
200
  if (key in exports && exports[key] === _fieldHelperText[key]) return;
190
201
  _Object$defineProperty(exports, key, {
@@ -195,7 +206,7 @@ _forEachInstanceProperty(_context17 = _Object$keys(_fieldHelperText)).call(_cont
195
206
  });
196
207
  });
197
208
  var _footer = require("./footer");
198
- _forEachInstanceProperty(_context18 = _Object$keys(_footer)).call(_context18, function (key) {
209
+ _forEachInstanceProperty(_context19 = _Object$keys(_footer)).call(_context19, function (key) {
199
210
  if (key === "default" || key === "__esModule") return;
200
211
  if (key in exports && exports[key] === _footer[key]) return;
201
212
  _Object$defineProperty(exports, key, {
@@ -206,7 +217,7 @@ _forEachInstanceProperty(_context18 = _Object$keys(_footer)).call(_context18, fu
206
217
  });
207
218
  });
208
219
  var _grid = require("./grid");
209
- _forEachInstanceProperty(_context19 = _Object$keys(_grid)).call(_context19, function (key) {
220
+ _forEachInstanceProperty(_context20 = _Object$keys(_grid)).call(_context20, function (key) {
210
221
  if (key === "default" || key === "__esModule") return;
211
222
  if (key in exports && exports[key] === _grid[key]) return;
212
223
  _Object$defineProperty(exports, key, {
@@ -217,7 +228,7 @@ _forEachInstanceProperty(_context19 = _Object$keys(_grid)).call(_context19, func
217
228
  });
218
229
  });
219
230
  var _helpHint = require("./helpHint");
220
- _forEachInstanceProperty(_context20 = _Object$keys(_helpHint)).call(_context20, function (key) {
231
+ _forEachInstanceProperty(_context21 = _Object$keys(_helpHint)).call(_context21, function (key) {
221
232
  if (key === "default" || key === "__esModule") return;
222
233
  if (key in exports && exports[key] === _helpHint[key]) return;
223
234
  _Object$defineProperty(exports, key, {
@@ -228,7 +239,7 @@ _forEachInstanceProperty(_context20 = _Object$keys(_helpHint)).call(_context20,
228
239
  });
229
240
  });
230
241
  var _icon = require("./icon");
231
- _forEachInstanceProperty(_context21 = _Object$keys(_icon)).call(_context21, function (key) {
242
+ _forEachInstanceProperty(_context22 = _Object$keys(_icon)).call(_context22, function (key) {
232
243
  if (key === "default" || key === "__esModule") return;
233
244
  if (key in exports && exports[key] === _icon[key]) return;
234
245
  _Object$defineProperty(exports, key, {
@@ -239,7 +250,7 @@ _forEachInstanceProperty(_context21 = _Object$keys(_icon)).call(_context21, func
239
250
  });
240
251
  });
241
252
  var _iconBadge = require("./iconBadge");
242
- _forEachInstanceProperty(_context22 = _Object$keys(_iconBadge)).call(_context22, function (key) {
253
+ _forEachInstanceProperty(_context23 = _Object$keys(_iconBadge)).call(_context23, function (key) {
243
254
  if (key === "default" || key === "__esModule") return;
244
255
  if (key in exports && exports[key] === _iconBadge[key]) return;
245
256
  _Object$defineProperty(exports, key, {
@@ -250,7 +261,7 @@ _forEachInstanceProperty(_context22 = _Object$keys(_iconBadge)).call(_context22,
250
261
  });
251
262
  });
252
263
  var _iconButton = require("./iconButton");
253
- _forEachInstanceProperty(_context23 = _Object$keys(_iconButton)).call(_context23, function (key) {
264
+ _forEachInstanceProperty(_context24 = _Object$keys(_iconButton)).call(_context24, function (key) {
254
265
  if (key === "default" || key === "__esModule") return;
255
266
  if (key in exports && exports[key] === _iconButton[key]) return;
256
267
  _Object$defineProperty(exports, key, {
@@ -261,7 +272,7 @@ _forEachInstanceProperty(_context23 = _Object$keys(_iconButton)).call(_context23
261
272
  });
262
273
  });
263
274
  var _iconButtonToggle = require("./iconButtonToggle");
264
- _forEachInstanceProperty(_context24 = _Object$keys(_iconButtonToggle)).call(_context24, function (key) {
275
+ _forEachInstanceProperty(_context25 = _Object$keys(_iconButtonToggle)).call(_context25, function (key) {
265
276
  if (key === "default" || key === "__esModule") return;
266
277
  if (key in exports && exports[key] === _iconButtonToggle[key]) return;
267
278
  _Object$defineProperty(exports, key, {
@@ -272,7 +283,7 @@ _forEachInstanceProperty(_context24 = _Object$keys(_iconButtonToggle)).call(_con
272
283
  });
273
284
  });
274
285
  var _iconWrapper = require("./iconWrapper");
275
- _forEachInstanceProperty(_context25 = _Object$keys(_iconWrapper)).call(_context25, function (key) {
286
+ _forEachInstanceProperty(_context26 = _Object$keys(_iconWrapper)).call(_context26, function (key) {
276
287
  if (key === "default" || key === "__esModule") return;
277
288
  if (key in exports && exports[key] === _iconWrapper[key]) return;
278
289
  _Object$defineProperty(exports, key, {
@@ -283,7 +294,7 @@ _forEachInstanceProperty(_context25 = _Object$keys(_iconWrapper)).call(_context2
283
294
  });
284
295
  });
285
296
  var _input = require("./input");
286
- _forEachInstanceProperty(_context26 = _Object$keys(_input)).call(_context26, function (key) {
297
+ _forEachInstanceProperty(_context27 = _Object$keys(_input)).call(_context27, function (key) {
287
298
  if (key === "default" || key === "__esModule") return;
288
299
  if (key in exports && exports[key] === _input[key]) return;
289
300
  _Object$defineProperty(exports, key, {
@@ -294,7 +305,7 @@ _forEachInstanceProperty(_context26 = _Object$keys(_input)).call(_context26, fun
294
305
  });
295
306
  });
296
307
  var _item = require("./item");
297
- _forEachInstanceProperty(_context27 = _Object$keys(_item)).call(_context27, function (key) {
308
+ _forEachInstanceProperty(_context28 = _Object$keys(_item)).call(_context28, function (key) {
298
309
  if (key === "default" || key === "__esModule") return;
299
310
  if (key in exports && exports[key] === _item[key]) return;
300
311
  _Object$defineProperty(exports, key, {
@@ -305,7 +316,7 @@ _forEachInstanceProperty(_context27 = _Object$keys(_item)).call(_context27, func
305
316
  });
306
317
  });
307
318
  var _label = require("./label");
308
- _forEachInstanceProperty(_context28 = _Object$keys(_label)).call(_context28, function (key) {
319
+ _forEachInstanceProperty(_context29 = _Object$keys(_label)).call(_context29, function (key) {
309
320
  if (key === "default" || key === "__esModule") return;
310
321
  if (key in exports && exports[key] === _label[key]) return;
311
322
  _Object$defineProperty(exports, key, {
@@ -316,7 +327,7 @@ _forEachInstanceProperty(_context28 = _Object$keys(_label)).call(_context28, fun
316
327
  });
317
328
  });
318
329
  var _link = require("./link");
319
- _forEachInstanceProperty(_context29 = _Object$keys(_link)).call(_context29, function (key) {
330
+ _forEachInstanceProperty(_context30 = _Object$keys(_link)).call(_context30, function (key) {
320
331
  if (key === "default" || key === "__esModule") return;
321
332
  if (key in exports && exports[key] === _link[key]) return;
322
333
  _Object$defineProperty(exports, key, {
@@ -327,7 +338,7 @@ _forEachInstanceProperty(_context29 = _Object$keys(_link)).call(_context29, func
327
338
  });
328
339
  });
329
340
  var _listBox = require("./listBox");
330
- _forEachInstanceProperty(_context30 = _Object$keys(_listBox)).call(_context30, function (key) {
341
+ _forEachInstanceProperty(_context31 = _Object$keys(_listBox)).call(_context31, function (key) {
331
342
  if (key === "default" || key === "__esModule") return;
332
343
  if (key in exports && exports[key] === _listBox[key]) return;
333
344
  _Object$defineProperty(exports, key, {
@@ -338,7 +349,7 @@ _forEachInstanceProperty(_context30 = _Object$keys(_listBox)).call(_context30, f
338
349
  });
339
350
  });
340
351
  var _listItem = require("./listItem");
341
- _forEachInstanceProperty(_context31 = _Object$keys(_listItem)).call(_context31, function (key) {
352
+ _forEachInstanceProperty(_context32 = _Object$keys(_listItem)).call(_context32, function (key) {
342
353
  if (key === "default" || key === "__esModule") return;
343
354
  if (key in exports && exports[key] === _listItem[key]) return;
344
355
  _Object$defineProperty(exports, key, {
@@ -349,7 +360,7 @@ _forEachInstanceProperty(_context31 = _Object$keys(_listItem)).call(_context31,
349
360
  });
350
361
  });
351
362
  var _loader = require("./loader");
352
- _forEachInstanceProperty(_context32 = _Object$keys(_loader)).call(_context32, function (key) {
363
+ _forEachInstanceProperty(_context33 = _Object$keys(_loader)).call(_context33, function (key) {
353
364
  if (key === "default" || key === "__esModule") return;
354
365
  if (key in exports && exports[key] === _loader[key]) return;
355
366
  _Object$defineProperty(exports, key, {
@@ -360,7 +371,7 @@ _forEachInstanceProperty(_context32 = _Object$keys(_loader)).call(_context32, fu
360
371
  });
361
372
  });
362
373
  var _menu = require("./menu");
363
- _forEachInstanceProperty(_context33 = _Object$keys(_menu)).call(_context33, function (key) {
374
+ _forEachInstanceProperty(_context34 = _Object$keys(_menu)).call(_context34, function (key) {
364
375
  if (key === "default" || key === "__esModule") return;
365
376
  if (key in exports && exports[key] === _menu[key]) return;
366
377
  _Object$defineProperty(exports, key, {
@@ -371,7 +382,7 @@ _forEachInstanceProperty(_context33 = _Object$keys(_menu)).call(_context33, func
371
382
  });
372
383
  });
373
384
  var _menuItem = require("./menuItem");
374
- _forEachInstanceProperty(_context34 = _Object$keys(_menuItem)).call(_context34, function (key) {
385
+ _forEachInstanceProperty(_context35 = _Object$keys(_menuItem)).call(_context35, function (key) {
375
386
  if (key === "default" || key === "__esModule") return;
376
387
  if (key in exports && exports[key] === _menuItem[key]) return;
377
388
  _Object$defineProperty(exports, key, {
@@ -382,7 +393,7 @@ _forEachInstanceProperty(_context34 = _Object$keys(_menuItem)).call(_context34,
382
393
  });
383
394
  });
384
395
  var _menuSection = require("./menuSection");
385
- _forEachInstanceProperty(_context35 = _Object$keys(_menuSection)).call(_context35, function (key) {
396
+ _forEachInstanceProperty(_context36 = _Object$keys(_menuSection)).call(_context36, function (key) {
386
397
  if (key === "default" || key === "__esModule") return;
387
398
  if (key in exports && exports[key] === _menuSection[key]) return;
388
399
  _Object$defineProperty(exports, key, {
@@ -393,7 +404,7 @@ _forEachInstanceProperty(_context35 = _Object$keys(_menuSection)).call(_context3
393
404
  });
394
405
  });
395
406
  var _messages = require("./messages");
396
- _forEachInstanceProperty(_context36 = _Object$keys(_messages)).call(_context36, function (key) {
407
+ _forEachInstanceProperty(_context37 = _Object$keys(_messages)).call(_context37, function (key) {
397
408
  if (key === "default" || key === "__esModule") return;
398
409
  if (key in exports && exports[key] === _messages[key]) return;
399
410
  _Object$defineProperty(exports, key, {
@@ -404,7 +415,7 @@ _forEachInstanceProperty(_context36 = _Object$keys(_messages)).call(_context36,
404
415
  });
405
416
  });
406
417
  var _Modal = require("./Modal");
407
- _forEachInstanceProperty(_context37 = _Object$keys(_Modal)).call(_context37, function (key) {
418
+ _forEachInstanceProperty(_context38 = _Object$keys(_Modal)).call(_context38, function (key) {
408
419
  if (key === "default" || key === "__esModule") return;
409
420
  if (key in exports && exports[key] === _Modal[key]) return;
410
421
  _Object$defineProperty(exports, key, {
@@ -415,7 +426,7 @@ _forEachInstanceProperty(_context37 = _Object$keys(_Modal)).call(_context37, fun
415
426
  });
416
427
  });
417
428
  var _navBar = require("./navBar");
418
- _forEachInstanceProperty(_context38 = _Object$keys(_navBar)).call(_context38, function (key) {
429
+ _forEachInstanceProperty(_context39 = _Object$keys(_navBar)).call(_context39, function (key) {
419
430
  if (key === "default" || key === "__esModule") return;
420
431
  if (key in exports && exports[key] === _navBar[key]) return;
421
432
  _Object$defineProperty(exports, key, {
@@ -426,7 +437,7 @@ _forEachInstanceProperty(_context38 = _Object$keys(_navBar)).call(_context38, fu
426
437
  });
427
438
  });
428
439
  var _navSideBar = require("./navSideBar");
429
- _forEachInstanceProperty(_context39 = _Object$keys(_navSideBar)).call(_context39, function (key) {
440
+ _forEachInstanceProperty(_context40 = _Object$keys(_navSideBar)).call(_context40, function (key) {
430
441
  if (key === "default" || key === "__esModule") return;
431
442
  if (key in exports && exports[key] === _navSideBar[key]) return;
432
443
  _Object$defineProperty(exports, key, {
@@ -437,7 +448,7 @@ _forEachInstanceProperty(_context39 = _Object$keys(_navSideBar)).call(_context39
437
448
  });
438
449
  });
439
450
  var _overlayPanel = require("./overlayPanel");
440
- _forEachInstanceProperty(_context40 = _Object$keys(_overlayPanel)).call(_context40, function (key) {
451
+ _forEachInstanceProperty(_context41 = _Object$keys(_overlayPanel)).call(_context41, function (key) {
441
452
  if (key === "default" || key === "__esModule") return;
442
453
  if (key in exports && exports[key] === _overlayPanel[key]) return;
443
454
  _Object$defineProperty(exports, key, {
@@ -448,7 +459,7 @@ _forEachInstanceProperty(_context40 = _Object$keys(_overlayPanel)).call(_context
448
459
  });
449
460
  });
450
461
  var _passwordField = require("./passwordField");
451
- _forEachInstanceProperty(_context41 = _Object$keys(_passwordField)).call(_context41, function (key) {
462
+ _forEachInstanceProperty(_context42 = _Object$keys(_passwordField)).call(_context42, function (key) {
452
463
  if (key === "default" || key === "__esModule") return;
453
464
  if (key in exports && exports[key] === _passwordField[key]) return;
454
465
  _Object$defineProperty(exports, key, {
@@ -459,7 +470,7 @@ _forEachInstanceProperty(_context41 = _Object$keys(_passwordField)).call(_contex
459
470
  });
460
471
  });
461
472
  var _popoverContainer = require("./popoverContainer");
462
- _forEachInstanceProperty(_context42 = _Object$keys(_popoverContainer)).call(_context42, function (key) {
473
+ _forEachInstanceProperty(_context43 = _Object$keys(_popoverContainer)).call(_context43, function (key) {
463
474
  if (key === "default" || key === "__esModule") return;
464
475
  if (key in exports && exports[key] === _popoverContainer[key]) return;
465
476
  _Object$defineProperty(exports, key, {
@@ -470,7 +481,7 @@ _forEachInstanceProperty(_context42 = _Object$keys(_popoverContainer)).call(_con
470
481
  });
471
482
  });
472
483
  var _popoverMenu = require("./popoverMenu");
473
- _forEachInstanceProperty(_context43 = _Object$keys(_popoverMenu)).call(_context43, function (key) {
484
+ _forEachInstanceProperty(_context44 = _Object$keys(_popoverMenu)).call(_context44, function (key) {
474
485
  if (key === "default" || key === "__esModule") return;
475
486
  if (key in exports && exports[key] === _popoverMenu[key]) return;
476
487
  _Object$defineProperty(exports, key, {
@@ -481,7 +492,7 @@ _forEachInstanceProperty(_context43 = _Object$keys(_popoverMenu)).call(_context4
481
492
  });
482
493
  });
483
494
  var _progressBar = require("./progressBar");
484
- _forEachInstanceProperty(_context44 = _Object$keys(_progressBar)).call(_context44, function (key) {
495
+ _forEachInstanceProperty(_context45 = _Object$keys(_progressBar)).call(_context45, function (key) {
485
496
  if (key === "default" || key === "__esModule") return;
486
497
  if (key in exports && exports[key] === _progressBar[key]) return;
487
498
  _Object$defineProperty(exports, key, {
@@ -492,7 +503,7 @@ _forEachInstanceProperty(_context44 = _Object$keys(_progressBar)).call(_context4
492
503
  });
493
504
  });
494
505
  var _requirementsList = require("./requirementsList");
495
- _forEachInstanceProperty(_context45 = _Object$keys(_requirementsList)).call(_context45, function (key) {
506
+ _forEachInstanceProperty(_context46 = _Object$keys(_requirementsList)).call(_context46, function (key) {
496
507
  if (key === "default" || key === "__esModule") return;
497
508
  if (key in exports && exports[key] === _requirementsList[key]) return;
498
509
  _Object$defineProperty(exports, key, {
@@ -503,7 +514,7 @@ _forEachInstanceProperty(_context45 = _Object$keys(_requirementsList)).call(_con
503
514
  });
504
515
  });
505
516
  var _rockerButtonGroup = require("./rockerButtonGroup");
506
- _forEachInstanceProperty(_context46 = _Object$keys(_rockerButtonGroup)).call(_context46, function (key) {
517
+ _forEachInstanceProperty(_context47 = _Object$keys(_rockerButtonGroup)).call(_context47, function (key) {
507
518
  if (key === "default" || key === "__esModule") return;
508
519
  if (key in exports && exports[key] === _rockerButtonGroup[key]) return;
509
520
  _Object$defineProperty(exports, key, {
@@ -514,7 +525,7 @@ _forEachInstanceProperty(_context46 = _Object$keys(_rockerButtonGroup)).call(_co
514
525
  });
515
526
  });
516
527
  var _scrollBox = require("./scrollBox");
517
- _forEachInstanceProperty(_context47 = _Object$keys(_scrollBox)).call(_context47, function (key) {
528
+ _forEachInstanceProperty(_context48 = _Object$keys(_scrollBox)).call(_context48, function (key) {
518
529
  if (key === "default" || key === "__esModule") return;
519
530
  if (key in exports && exports[key] === _scrollBox[key]) return;
520
531
  _Object$defineProperty(exports, key, {
@@ -525,7 +536,7 @@ _forEachInstanceProperty(_context47 = _Object$keys(_scrollBox)).call(_context47,
525
536
  });
526
537
  });
527
538
  var _searchField = require("./searchField");
528
- _forEachInstanceProperty(_context48 = _Object$keys(_searchField)).call(_context48, function (key) {
539
+ _forEachInstanceProperty(_context49 = _Object$keys(_searchField)).call(_context49, function (key) {
529
540
  if (key === "default" || key === "__esModule") return;
530
541
  if (key in exports && exports[key] === _searchField[key]) return;
531
542
  _Object$defineProperty(exports, key, {
@@ -536,7 +547,7 @@ _forEachInstanceProperty(_context48 = _Object$keys(_searchField)).call(_context4
536
547
  });
537
548
  });
538
549
  var _separator = require("./separator");
539
- _forEachInstanceProperty(_context49 = _Object$keys(_separator)).call(_context49, function (key) {
550
+ _forEachInstanceProperty(_context50 = _Object$keys(_separator)).call(_context50, function (key) {
540
551
  if (key === "default" || key === "__esModule") return;
541
552
  if (key in exports && exports[key] === _separator[key]) return;
542
553
  _Object$defineProperty(exports, key, {
@@ -547,7 +558,7 @@ _forEachInstanceProperty(_context49 = _Object$keys(_separator)).call(_context49,
547
558
  });
548
559
  });
549
560
  var _shared = require("./shared");
550
- _forEachInstanceProperty(_context50 = _Object$keys(_shared)).call(_context50, function (key) {
561
+ _forEachInstanceProperty(_context51 = _Object$keys(_shared)).call(_context51, function (key) {
551
562
  if (key === "default" || key === "__esModule") return;
552
563
  if (key in exports && exports[key] === _shared[key]) return;
553
564
  _Object$defineProperty(exports, key, {
@@ -558,7 +569,7 @@ _forEachInstanceProperty(_context50 = _Object$keys(_shared)).call(_context50, fu
558
569
  });
559
570
  });
560
571
  var _skeleton = require("./skeleton");
561
- _forEachInstanceProperty(_context51 = _Object$keys(_skeleton)).call(_context51, function (key) {
572
+ _forEachInstanceProperty(_context52 = _Object$keys(_skeleton)).call(_context52, function (key) {
562
573
  if (key === "default" || key === "__esModule") return;
563
574
  if (key in exports && exports[key] === _skeleton[key]) return;
564
575
  _Object$defineProperty(exports, key, {
@@ -569,7 +580,7 @@ _forEachInstanceProperty(_context51 = _Object$keys(_skeleton)).call(_context51,
569
580
  });
570
581
  });
571
582
  var _switchField = require("./switchField");
572
- _forEachInstanceProperty(_context52 = _Object$keys(_switchField)).call(_context52, function (key) {
583
+ _forEachInstanceProperty(_context53 = _Object$keys(_switchField)).call(_context53, function (key) {
573
584
  if (key === "default" || key === "__esModule") return;
574
585
  if (key in exports && exports[key] === _switchField[key]) return;
575
586
  _Object$defineProperty(exports, key, {
@@ -580,7 +591,7 @@ _forEachInstanceProperty(_context52 = _Object$keys(_switchField)).call(_context5
580
591
  });
581
592
  });
582
593
  var _tab = require("./tab");
583
- _forEachInstanceProperty(_context53 = _Object$keys(_tab)).call(_context53, function (key) {
594
+ _forEachInstanceProperty(_context54 = _Object$keys(_tab)).call(_context54, function (key) {
584
595
  if (key === "default" || key === "__esModule") return;
585
596
  if (key in exports && exports[key] === _tab[key]) return;
586
597
  _Object$defineProperty(exports, key, {
@@ -591,7 +602,7 @@ _forEachInstanceProperty(_context53 = _Object$keys(_tab)).call(_context53, funct
591
602
  });
592
603
  });
593
604
  var _table = require("./table");
594
- _forEachInstanceProperty(_context54 = _Object$keys(_table)).call(_context54, function (key) {
605
+ _forEachInstanceProperty(_context55 = _Object$keys(_table)).call(_context55, function (key) {
595
606
  if (key === "default" || key === "__esModule") return;
596
607
  if (key in exports && exports[key] === _table[key]) return;
597
608
  _Object$defineProperty(exports, key, {
@@ -602,7 +613,7 @@ _forEachInstanceProperty(_context54 = _Object$keys(_table)).call(_context54, fun
602
613
  });
603
614
  });
604
615
  var _tabs = require("./tabs");
605
- _forEachInstanceProperty(_context55 = _Object$keys(_tabs)).call(_context55, function (key) {
616
+ _forEachInstanceProperty(_context56 = _Object$keys(_tabs)).call(_context56, function (key) {
606
617
  if (key === "default" || key === "__esModule") return;
607
618
  if (key in exports && exports[key] === _tabs[key]) return;
608
619
  _Object$defineProperty(exports, key, {
@@ -613,7 +624,7 @@ _forEachInstanceProperty(_context55 = _Object$keys(_tabs)).call(_context55, func
613
624
  });
614
625
  });
615
626
  var _text = require("./text");
616
- _forEachInstanceProperty(_context56 = _Object$keys(_text)).call(_context56, function (key) {
627
+ _forEachInstanceProperty(_context57 = _Object$keys(_text)).call(_context57, function (key) {
617
628
  if (key === "default" || key === "__esModule") return;
618
629
  if (key in exports && exports[key] === _text[key]) return;
619
630
  _Object$defineProperty(exports, key, {
@@ -624,7 +635,7 @@ _forEachInstanceProperty(_context56 = _Object$keys(_text)).call(_context56, func
624
635
  });
625
636
  });
626
637
  var _textField = require("./textField");
627
- _forEachInstanceProperty(_context57 = _Object$keys(_textField)).call(_context57, function (key) {
638
+ _forEachInstanceProperty(_context58 = _Object$keys(_textField)).call(_context58, function (key) {
628
639
  if (key === "default" || key === "__esModule") return;
629
640
  if (key in exports && exports[key] === _textField[key]) return;
630
641
  _Object$defineProperty(exports, key, {
@@ -635,7 +646,7 @@ _forEachInstanceProperty(_context57 = _Object$keys(_textField)).call(_context57,
635
646
  });
636
647
  });
637
648
  var _timefield = require("./timefield");
638
- _forEachInstanceProperty(_context58 = _Object$keys(_timefield)).call(_context58, function (key) {
649
+ _forEachInstanceProperty(_context59 = _Object$keys(_timefield)).call(_context59, function (key) {
639
650
  if (key === "default" || key === "__esModule") return;
640
651
  if (key in exports && exports[key] === _timefield[key]) return;
641
652
  _Object$defineProperty(exports, key, {
@@ -646,7 +657,7 @@ _forEachInstanceProperty(_context58 = _Object$keys(_timefield)).call(_context58,
646
657
  });
647
658
  });
648
659
  var _tooltipTrigger = require("./tooltipTrigger");
649
- _forEachInstanceProperty(_context59 = _Object$keys(_tooltipTrigger)).call(_context59, function (key) {
660
+ _forEachInstanceProperty(_context60 = _Object$keys(_tooltipTrigger)).call(_context60, function (key) {
650
661
  if (key === "default" || key === "__esModule") return;
651
662
  if (key in exports && exports[key] === _tooltipTrigger[key]) return;
652
663
  _Object$defineProperty(exports, key, {
@@ -0,0 +1,41 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["value", "language", "onChange", "onValidate", "height"];
4
+ import React, { forwardRef, useRef } from 'react';
5
+ import Editor from '@monaco-editor/react';
6
+ import { Box } from '../../index';
7
+ import { jsx as ___EmotionJSX } from "@emotion/react";
8
+ var CodeEditor = /*#__PURE__*/forwardRef(function (props, ref) {
9
+ var value = props.value,
10
+ language = props.language,
11
+ onChange = props.onChange,
12
+ onValidate = props.onValidate,
13
+ height = props.height,
14
+ others = _objectWithoutProperties(props, _excluded);
15
+ var editorRef = useRef(null);
16
+ return ___EmotionJSX(Box, _extends({}, others, {
17
+ ref: ref
18
+ }), ___EmotionJSX(Box, {
19
+ variant: "codeEditor.wrapper",
20
+ ref: editorRef,
21
+ height: height
22
+ }, ___EmotionJSX(Editor, {
23
+ height: "100%",
24
+ language: language,
25
+ value: value,
26
+ theme: "vs-light",
27
+ onChange: onChange,
28
+ onValidate: onValidate,
29
+ options: {
30
+ fontSize: 14,
31
+ automaticLayout: true,
32
+ minimap: {
33
+ enabled: true
34
+ },
35
+ stickyScroll: {
36
+ enabled: false
37
+ }
38
+ }
39
+ })));
40
+ });
41
+ export default CodeEditor;
@@ -0,0 +1,35 @@
1
+ import { Meta } from '@storybook/addon-docs';
2
+
3
+ <Meta title="Components/CodeEditor/CodeEditor" />
4
+
5
+ # CodeEditor
6
+
7
+ The Code Editor component is a tool for editing and displaying code snippets in an application.
8
+ It provides syntax highlighting, shows line numbers, and validates errors in the code.
9
+ In addition, it supports standard IDE keyboard interactions like tab-to-indent.
10
+
11
+ The CodeEditor component should be used for complex use cases that require an interactive environment, support for various programming languages, functionalities like linting, keyboard interactions, and real-time updates.
12
+ When code snippets need to be presented in a read-only format, use [CodeView](./?path=/docs/components-codeview--docs).
13
+
14
+ Languages
15
+ supported languages are categorized into two groups: those with rich IntelliSense and validation capabilities, and those that provide only basic syntax highlighting. Check the list at [monaco-editor](https://github.com/suren-atoyan/monaco-react#:~:text=It%27s%20important%20to%20mention%20that%20according%20to%20monaco%2Deditor%2C%20the%20whole%20supported%20languages%20are%20divided%20into%20two%20groups%3A)
16
+
17
+ ### Required Components
18
+
19
+ This component can be used independently and does not require additional components.
20
+
21
+ ### Accessibility
22
+
23
+ #### Keyboard Navigation
24
+
25
+ These keys provide additional functionality to the component.
26
+
27
+ | Keys | Functions |
28
+ | ---- | --------- |
29
+ | Enter | Inserts a new line of code |
30
+ | Arrow keys | Move the cursor within the code in the set direction |
31
+
32
+ #### Screen Readers
33
+
34
+ The **`aria-live`** attribute is used to announce content changes in a live region.
35
+
@@ -0,0 +1,54 @@
1
+ import React from 'react';
2
+ import DocsLayout from '../../../.storybook/storybookDocsLayout';
3
+ import { CodeEditor } from '../../index';
4
+ import CodeEditorReadme from './CodeEditor.mdx';
5
+ import { jsx as ___EmotionJSX } from "@emotion/react";
6
+ export default {
7
+ title: 'Experimental/CodeEditor',
8
+ component: CodeEditor,
9
+ parameters: {
10
+ docs: {
11
+ page: function page() {
12
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(CodeEditorReadme, null), ___EmotionJSX(DocsLayout, null));
13
+ },
14
+ source: {
15
+ type: 'code'
16
+ }
17
+ },
18
+ a11y: {
19
+ config: {
20
+ rules: [{
21
+ id: 'color-contrast',
22
+ enabled: false
23
+ }, {
24
+ id: 'aria-roledescription',
25
+ enabled: false
26
+ }]
27
+ }
28
+ }
29
+ }
30
+ };
31
+ var jsonCode = "{\n \"name\": \"Luke Skywalker\", \n \"height\": \"172\", \n \"mass\": \"77\", \n \"hair_color\": \"blond\", \n \"skin_color\": \"fair\", \n \"eye_color\": \"blue\", \n \"birth_year\": \"19BBY\", \n \"gender\": \"male\", \n \"homeworld\": \"https://swapi.dev/api/planets/1/\", \n \"films\": [\n \"https://swapi.dev/api/films/1/\", \n \"https://swapi.dev/api/films/2/\", \n \"https://swapi.dev/api/films/3/\", \n \"https://swapi.dev/api/films/6/\"\n ],\n \"starships\": [\n \"https://swapi.dev/api/starships/12/\", \n \"https://swapi.dev/api/starships/22/\"\n ]\n}";
32
+ var tsCode = "const stringValue: string = 15;\n\nfunction addOne(integer: number) {\n return integer + 1;\n}\n\naddOne('I am a string');\n";
33
+ var jsCode = "\nfunction factorial(n) {\n if (n === 0 || n === 1) {\n return 1;\n } else {\n return n * factorial(n - 1);\n }\n}\n\nconsole.log(factorial(5));\n\n(a) => {};\n";
34
+ export var TypescriptEditor = function TypescriptEditor() {
35
+ return ___EmotionJSX(CodeEditor, {
36
+ value: tsCode,
37
+ language: "typescript",
38
+ height: "200px"
39
+ });
40
+ };
41
+ export var JavascriptEditor = function JavascriptEditor() {
42
+ return ___EmotionJSX(CodeEditor, {
43
+ value: jsCode,
44
+ language: "javascript",
45
+ height: "200px"
46
+ });
47
+ };
48
+ export var JsonEditor = function JsonEditor() {
49
+ return ___EmotionJSX(CodeEditor, {
50
+ value: jsonCode,
51
+ language: "json",
52
+ height: "200px"
53
+ });
54
+ };
@@ -0,0 +1,22 @@
1
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
4
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
5
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
6
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
7
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
8
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
9
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
10
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
12
+ import { input } from '../Input/Input.styles';
13
+ var wrapper = _objectSpread(_objectSpread({}, input.fieldControlWrapper), {}, {
14
+ borderColor: 'neutral.80',
15
+ borderRadius: '3px 4px 4px 3px',
16
+ borderStyle: 'solid',
17
+ borderWidth: '1px 1px 1px 0px',
18
+ width: '100%'
19
+ });
20
+ export default {
21
+ wrapper: wrapper
22
+ };
@@ -0,0 +1,79 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
2
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
3
+ import _JSON$stringify from "@babel/runtime-corejs3/core-js-stable/json/stringify";
4
+ import React from 'react';
5
+ import { CodeEditor } from '../../index';
6
+ import { act, fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
7
+ import { universalComponentTests } from '../../utils/testUtils/universalComponentTest';
8
+ import { jsx as ___EmotionJSX } from "@emotion/react";
9
+ var testId = 'test-code-sample';
10
+ var defaultProps = {
11
+ 'data-testid': testId
12
+ };
13
+ var jsCode = "\n function helloWorld() {\n console.log(\"Hello, World!\");\n }\n";
14
+
15
+ // Needs to be added to each components test file
16
+ universalComponentTests({
17
+ rules: {
18
+ 'color-contrast': {
19
+ enabled: false
20
+ }
21
+ },
22
+ renderComponent: function renderComponent(props) {
23
+ return ___EmotionJSX(CodeEditor, _extends({}, defaultProps, props, {
24
+ value: jsCode,
25
+ language: "javascript"
26
+ }));
27
+ }
28
+ });
29
+ jest.mock('@monaco-editor/react', function () {
30
+ return {
31
+ __esModule: true,
32
+ "default": function _default(_ref) {
33
+ var _context;
34
+ var language = _ref.language,
35
+ value = _ref.value,
36
+ _onChange = _ref.onChange;
37
+ return ___EmotionJSX("textarea", {
38
+ "data-testid": "mock-monaco-editor",
39
+ onChange: function onChange(e) {
40
+ return _onChange(e.target.value);
41
+ },
42
+ value: _concatInstanceProperty(_context = "Editor Language: ".concat(language, ", Code:")).call(_context, value),
43
+ "aria-label": "Code editor"
44
+ });
45
+ }
46
+ };
47
+ });
48
+ describe('CodeEditor', function () {
49
+ it('renders with initial value', function () {
50
+ var value = 'console.log("Hello, World!");';
51
+ render(___EmotionJSX(CodeEditor, {
52
+ language: "javascript",
53
+ value: value
54
+ }));
55
+ expect(screen.getByTestId('mock-monaco-editor')).toBeInTheDocument();
56
+ expect(screen.getByText('Editor Language: javascript, Code:console.log("Hello, World!");')).toBeInTheDocument();
57
+ });
58
+ it('calls onChange when code changes', function () {
59
+ var value = 'console.log("Hello, World!");';
60
+ var mockOnChange = jest.fn();
61
+ render(___EmotionJSX(CodeEditor, {
62
+ language: "javascript",
63
+ value: value,
64
+ onChange: mockOnChange
65
+ }));
66
+ var editor = screen.getByTestId('mock-monaco-editor');
67
+ var newValue = _JSON$stringify([{
68
+ key: false
69
+ }]);
70
+ act(function () {
71
+ fireEvent.change(editor, {
72
+ target: {
73
+ value: newValue
74
+ }
75
+ });
76
+ });
77
+ expect(mockOnChange).toHaveBeenCalled();
78
+ });
79
+ });
@@ -0,0 +1 @@
1
+ export { default } from './CodeEditor';
@@ -5,7 +5,10 @@ import { Meta } from '@storybook/addon-docs';
5
5
  # CodeView
6
6
 
7
7
  This component is used for code syntax highlighting and is built on [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer).
8
- It should contain the language title and be formatted with indentations, line breaks, and comments, and should not contain complex code snippets.
8
+ It should contain the language title and be formatted with indentations, line breaks, and comments, and should not contain complex code snippets.
9
+
10
+ The CodeView component should be used for code snippets that need to be presented in a read-only format.
11
+ For more complex use cases that require an interactive environment, support for various programming languages, functionalities like linting, keyboard interactions, and real-time updates, use [CodeEditor](./?path=/docs/experimental-codeeditor--docs).
9
12
 
10
13
  ### Required Components
11
14
 
package/lib/index.js CHANGED
@@ -63,6 +63,7 @@ export { default as Checkbox } from './components/Checkbox';
63
63
  export * from './components/Checkbox';
64
64
  export { default as CheckboxField } from './components/CheckboxField';
65
65
  export * from './components/CheckboxField';
66
+ export { default as CodeEditor } from './components/CodeEditor';
66
67
  export { default as CodeView } from './components/CodeView';
67
68
  export { default as CollapsiblePanel } from './components/CollapsiblePanel';
68
69
  export * from './components/CollapsiblePanel';
@@ -17,6 +17,7 @@ import breadcrumb from '../../components/Breadcrumbs/Breadcrumb.styles';
17
17
  import buttonBar from '../../components/ButtonBar/ButtonBar.styles';
18
18
  import calendar from '../../components/Calendar/Calendar.styles';
19
19
  import callout from '../../components/Callout/Callout.styles';
20
+ import codeEditor from '../../components/CodeEditor/CodeEditor.styles';
20
21
  import codeView from '../../components/CodeView/CodeView.styles';
21
22
  import collapsiblePanel from '../../components/CollapsiblePanel/CollapsiblePanel.styles';
22
23
  import copyText from '../../components/CopyText/CopyText.styles';
@@ -66,6 +67,7 @@ export default _objectSpread({
66
67
  calendar: calendar,
67
68
  rangeCalendar: rangeCalendar,
68
69
  callout: callout,
70
+ codeEditor: codeEditor,
69
71
  codeView: codeView,
70
72
  collapsiblePanel: collapsiblePanel,
71
73
  copyText: copyText,
@@ -0,0 +1 @@
1
+ export {};
@@ -9,6 +9,7 @@ export * from './buttonBar';
9
9
  export * from './calendar';
10
10
  export * from './card';
11
11
  export * from './checkboxField';
12
+ export * from './codeEditor';
12
13
  export * from './collapsiblePanel';
13
14
  export * from './colorField';
14
15
  export * from './copyText';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.121.1-alpha.3",
3
+ "version": "2.122.0-alpha.0",
4
4
  "description": "React component library for Ping Identity's design system",
5
5
  "repository": {
6
6
  "type": "git",
@@ -49,6 +49,7 @@
49
49
  "@internationalized/date": "^3.5.3",
50
50
  "@internationalized/number": "^3.6.0",
51
51
  "@mdx-js/react": "^1.6.22",
52
+ "@monaco-editor/react": "4.4.0",
52
53
  "@pingux/mdi-react": "^1.2.0",
53
54
  "@react-aria/accordion": "~3.0.0-alpha.11",
54
55
  "@react-aria/breadcrumbs": "^3.1.4",
@@ -116,6 +117,7 @@
116
117
  "lodash": "^4.17.21",
117
118
  "markdown-to-jsx": "^7.7.4",
118
119
  "moment": "^2.29.4",
120
+ "monaco-editor": "0.34.1",
119
121
  "pluralize": "^8.0.0",
120
122
  "prism-react-renderer": "1.2.1",
121
123
  "prismjs": "^1.27.0",