@pareto-engineering/design-system 4.9.2 → 4.9.3

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.
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _recharts = require("recharts");
10
+ var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
11
+ require("./styles.scss");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ // front/packages/design-system/src/ui/a/AreaChart/AreaChart.jsx
16
+
17
+ // Local Definitions
18
+
19
+ const baseClassName = _exports.default.base;
20
+ const componentClassName = 'area-chart';
21
+ const AreaChart = _ref => {
22
+ let {
23
+ id,
24
+ className: userClassName,
25
+ data,
26
+ title,
27
+ xKey,
28
+ yKeys,
29
+ xLabel,
30
+ yLabel,
31
+ colors,
32
+ filled,
33
+ height,
34
+ width
35
+ // ...otherProps
36
+ } = _ref;
37
+ const processedData = data.map(item => {
38
+ const yValues = yKeys.map(key => item[key]);
39
+ const lowerBound = Math.min(...yValues);
40
+ const upperBound = Math.max(...yValues);
41
+ const margin = (upperBound - lowerBound) * 0.1;
42
+ return {
43
+ ...item,
44
+ bounds: [lowerBound - margin, upperBound + margin]
45
+ };
46
+ });
47
+ const yAxisBounds = () => {
48
+ const yValues = data.map(item => yKeys.map(key => item[key]));
49
+ const min = Math.min(...yValues.flat());
50
+ const max = Math.max(...yValues.flat());
51
+ const margin = (max - min) * 0.1;
52
+ return [min - margin, max + margin];
53
+ };
54
+ const CustomTooltipContent = _ref2 => {
55
+ let {
56
+ active,
57
+ payload,
58
+ label
59
+ } = _ref2;
60
+ if (active && payload && payload.length) {
61
+ const newPayload = payload.filter(item => item.name !== 'bounds');
62
+ return /*#__PURE__*/React.createElement("div", {
63
+ className: "custom-tooltip"
64
+ }, /*#__PURE__*/React.createElement("p", {
65
+ className: "label"
66
+ }, `${xLabel}: ${label}`), newPayload.map(entry => /*#__PURE__*/React.createElement("p", {
67
+ className: "label",
68
+ key: `${entry.name}`,
69
+ style: {
70
+ color: entry.color
71
+ }
72
+ }, `${entry.name}: ${entry.value}`)));
73
+ }
74
+ return null;
75
+ };
76
+ const CustomLegend = _ref3 => {
77
+ let {
78
+ colorsArray,
79
+ yKeysArray
80
+ } = _ref3;
81
+ return /*#__PURE__*/React.createElement("div", {
82
+ className: "custom-legend"
83
+ }, yKeysArray.map((key, index) => /*#__PURE__*/React.createElement("div", {
84
+ key: key,
85
+ className: "item"
86
+ }, /*#__PURE__*/React.createElement("span", {
87
+ className: "line",
88
+ style: {
89
+ backgroundColor: colorsArray[index]
90
+ }
91
+ }), /*#__PURE__*/React.createElement("span", {
92
+ className: "text"
93
+ }, key))));
94
+ };
95
+ return /*#__PURE__*/React.createElement("div", {
96
+ id: id,
97
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' ')
98
+ }, /*#__PURE__*/React.createElement("h3", null, title), /*#__PURE__*/React.createElement(CustomLegend, {
99
+ colorsArray: colors,
100
+ yKeysArray: yKeys
101
+ }), /*#__PURE__*/React.createElement(_recharts.ResponsiveContainer, {
102
+ width: width,
103
+ height: height
104
+ }, /*#__PURE__*/React.createElement(_recharts.AreaChart, {
105
+ data: processedData
106
+ }, /*#__PURE__*/React.createElement(_recharts.CartesianGrid, {
107
+ strokeDasharray: "3 3"
108
+ }), /*#__PURE__*/React.createElement(_recharts.XAxis, {
109
+ dataKey: xKey,
110
+ label: {
111
+ value: xLabel,
112
+ position: 'insideBottom',
113
+ offset: -5
114
+ } // Adjusted offset for padding
115
+ ,
116
+ axisLine: false,
117
+ tickLine: false,
118
+ tickCount: 3
119
+ }), /*#__PURE__*/React.createElement(_recharts.YAxis, {
120
+ domain: yAxisBounds,
121
+ label: {
122
+ value: yLabel,
123
+ angle: -90,
124
+ position: 'insideLeft',
125
+ offset: 15
126
+ },
127
+ axisLine: false,
128
+ tickLine: false,
129
+ tickFormatter: value => value.toFixed(2)
130
+ }), /*#__PURE__*/React.createElement(_recharts.Tooltip, {
131
+ content: /*#__PURE__*/React.createElement(CustomTooltipContent, null)
132
+ }), filled && /*#__PURE__*/React.createElement(_recharts.Area, {
133
+ id: "bounds",
134
+ type: "linear",
135
+ dataKey: "bounds",
136
+ stroke: "none",
137
+ fill: "var(--hard-ui-main-2)",
138
+ fillOpacity: 0.4,
139
+ activeDot: false,
140
+ dot: false,
141
+ label: false,
142
+ isAnimationActive: false
143
+ }), yKeys.map((key, index) => /*#__PURE__*/React.createElement(_recharts.Area, {
144
+ id: key,
145
+ key: key,
146
+ type: "linear",
147
+ dataKey: key,
148
+ stroke: colors[index],
149
+ fill: "none",
150
+ connectNulls: true,
151
+ dot: false,
152
+ activeDot: {
153
+ r: 4
154
+ },
155
+ isAnimationActive: false
156
+ })))));
157
+ };
158
+ AreaChart.propTypes = {
159
+ // eslint-disable-next-line react/forbid-prop-types
160
+ data: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
161
+ title: _propTypes.default.string.isRequired,
162
+ xKey: _propTypes.default.string.isRequired,
163
+ yKeys: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
164
+ xLabel: _propTypes.default.string,
165
+ yLabel: _propTypes.default.string,
166
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
167
+ filled: _propTypes.default.bool,
168
+ height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
169
+ width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
170
+ };
171
+ AreaChart.defaultProps = {
172
+ filled: false,
173
+ width: '100%',
174
+ height: 300
175
+ };
176
+ var _default = exports.default = AreaChart;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AreaChart", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _AreaChart.default;
10
+ }
11
+ });
12
+ var _AreaChart = _interopRequireDefault(require("./AreaChart"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,89 @@
1
+ @use "@pareto-engineering/bem";
2
+
3
+ $default-margin: 1rem;
4
+ $default-padding: 1rem;
5
+ $default-box-shadow: 0 .25rem .75rem var(--ui-lines);
6
+ $default-text-font-size: calc(var(--s-1) * 1rem);
7
+ $default-border-radius: .25rem;
8
+ $default-legend-gap: .625rem;
9
+ $default-legend-padding: calc($default-padding * .125) calc($default-padding * .625);
10
+ $default-legend-line-width: 1.25rem;
11
+ $default-legend-line-height: .125rem;
12
+ $default-legend-line-margin-right: .3125rem;
13
+ $default-border-line-width: .0625rem;
14
+
15
+ .#{bem.$base} {
16
+ &.area-chart {
17
+ background-color: var(--background-far);
18
+ border-radius: var(--theme-default-border-radius);
19
+ box-shadow: $default-box-shadow;
20
+ margin: $default-margin 0;
21
+ padding: $default-padding;
22
+
23
+ h3 {
24
+ color: var(--subtitle);
25
+ margin: calc($default-margin / 5);
26
+ text-align: left;
27
+ }
28
+
29
+ .custom-legend {
30
+ display: flex;
31
+ gap: $default-legend-gap;
32
+ justify-content: flex-end;
33
+ padding-bottom: $default-padding;
34
+ padding-right: calc($default-padding * .25);
35
+
36
+ .item {
37
+ align-items: center;
38
+ border: $default-border-line-width solid var(--ui-lines);
39
+ border-radius: $default-border-radius;
40
+ display: flex;
41
+ padding: $default-legend-padding;
42
+ }
43
+
44
+ .line {
45
+ display: inline-block;
46
+ height: $default-legend-line-height;
47
+ margin-right: $default-legend-line-margin-right;
48
+ width: $default-legend-line-width;
49
+ }
50
+
51
+ .text {
52
+ color: var(--paragraph);
53
+ font-size: calc($default-text-font-size * .75);
54
+ }
55
+ }
56
+
57
+ .custom-tooltip {
58
+ background-color: var(--background-far);
59
+ border: $default-border-line-width solid var(--ui-lines);
60
+ border-radius: $default-border-radius;
61
+ padding: calc($default-padding * .25);
62
+
63
+ .label {
64
+ color: var(--hard-paragraph);
65
+ font-size: $default-text-font-size;
66
+ margin: calc($default-margin * .25);
67
+ }
68
+ }
69
+
70
+ /* stylelint-disable selector-max-compound-selectors -- nested elements */
71
+ .recharts-wrapper {
72
+ .recharts-surface {
73
+ .recharts-cartesian-grid line {
74
+ stroke: var(--ui-lines);
75
+ }
76
+
77
+ .recharts-text {
78
+ fill: var(--soft-paragraph);
79
+ font-size: calc($default-text-font-size * .75);
80
+ }
81
+
82
+ .recharts-text.recharts-label {
83
+ fill: var(--paragraph);
84
+ font-size: $default-text-font-size;
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
@@ -44,7 +44,7 @@ const XMLEditor = _ref => {
44
44
  (0, _react.useEffect)(() => {
45
45
  const startState = _state.EditorState.create({
46
46
  doc: config,
47
- extensions: [_view.keymap.of([_commands.defaultKeymap, _commands.indentWithTab]), (0, _language.indentOnInput)(), (0, _view.lineNumbers)(), (0, _language.bracketMatching)(), (0, _language.foldGutter)(), (0, _view.drawSelection)(), (0, _view.highlightActiveLine)(), (0, _view.highlightActiveLineGutter)(), (0, _view.highlightSpecialChars)(), (0, _view.dropCursor)(), (0, _view.rectangularSelection)(), (0, _view.crosshairCursor)(), (0, _langXml.xml)(), _common.theme, _state.EditorState.readOnly.of(readOnly), _view.EditorView.updateListener.of(view => {
47
+ extensions: [_view.keymap.of([_commands.defaultKeymap, _commands.indentWithTab, ..._commands.historyKeymap]), (0, _language.indentOnInput)(), (0, _view.lineNumbers)(), (0, _language.bracketMatching)(), (0, _language.foldGutter)(), (0, _view.drawSelection)(), (0, _view.highlightActiveLine)(), (0, _view.highlightActiveLineGutter)(), (0, _view.highlightSpecialChars)(), (0, _view.dropCursor)(), (0, _view.rectangularSelection)(), (0, _view.crosshairCursor)(), (0, _langXml.xml)(), (0, _commands.history)(), _common.theme, _state.EditorState.readOnly.of(readOnly), _view.EditorView.updateListener.of(view => {
48
48
  onChange(view);
49
49
  // view.state.doc.toString() to receive the current content in the editor.
50
50
  }), _view.EditorView.focusChangeEffect.of((state, focused) => {
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "AppContextProvider", {
27
27
  return _AppContext.AppContextProvider;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "AreaChart", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _AreaChart.AreaChart;
34
+ }
35
+ });
30
36
  Object.defineProperty(exports, "BlurOverlay", {
31
37
  enumerable: true,
32
38
  get: function () {
@@ -230,4 +236,5 @@ var _Removable = require("./Removable");
230
236
  var _ToggleSwitch = require("./ToggleSwitch");
231
237
  var _XMLEditor = require("./XMLEditor");
232
238
  var _DatePicker = require("./DatePicker");
233
- var _Tooltip = require("./Tooltip");
239
+ var _Tooltip = require("./Tooltip");
240
+ var _AreaChart = require("./AreaChart");
@@ -0,0 +1,163 @@
1
+ // front/packages/design-system/src/ui/a/AreaChart/AreaChart.jsx
2
+
3
+ import * as React from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import { AreaChart as RechartsAreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
6
+ import styleNames from '@pareto-engineering/bem/exports';
7
+ import "./styles.scss";
8
+
9
+ // Local Definitions
10
+
11
+ const baseClassName = styleNames.base;
12
+ const componentClassName = 'area-chart';
13
+ const AreaChart = ({
14
+ id,
15
+ className: userClassName,
16
+ data,
17
+ title,
18
+ xKey,
19
+ yKeys,
20
+ xLabel,
21
+ yLabel,
22
+ colors,
23
+ filled,
24
+ height,
25
+ width
26
+ // ...otherProps
27
+ }) => {
28
+ const processedData = data.map(item => {
29
+ const yValues = yKeys.map(key => item[key]);
30
+ const lowerBound = Math.min(...yValues);
31
+ const upperBound = Math.max(...yValues);
32
+ const margin = (upperBound - lowerBound) * 0.1;
33
+ return {
34
+ ...item,
35
+ bounds: [lowerBound - margin, upperBound + margin]
36
+ };
37
+ });
38
+ const yAxisBounds = () => {
39
+ const yValues = data.map(item => yKeys.map(key => item[key]));
40
+ const min = Math.min(...yValues.flat());
41
+ const max = Math.max(...yValues.flat());
42
+ const margin = (max - min) * 0.1;
43
+ return [min - margin, max + margin];
44
+ };
45
+ const CustomTooltipContent = ({
46
+ active,
47
+ payload,
48
+ label
49
+ }) => {
50
+ if (active && payload && payload.length) {
51
+ const newPayload = payload.filter(item => item.name !== 'bounds');
52
+ return /*#__PURE__*/React.createElement("div", {
53
+ className: "custom-tooltip"
54
+ }, /*#__PURE__*/React.createElement("p", {
55
+ className: "label"
56
+ }, `${xLabel}: ${label}`), newPayload.map(entry => /*#__PURE__*/React.createElement("p", {
57
+ className: "label",
58
+ key: `${entry.name}`,
59
+ style: {
60
+ color: entry.color
61
+ }
62
+ }, `${entry.name}: ${entry.value}`)));
63
+ }
64
+ return null;
65
+ };
66
+ const CustomLegend = ({
67
+ colorsArray,
68
+ yKeysArray
69
+ }) => /*#__PURE__*/React.createElement("div", {
70
+ className: "custom-legend"
71
+ }, yKeysArray.map((key, index) => /*#__PURE__*/React.createElement("div", {
72
+ key: key,
73
+ className: "item"
74
+ }, /*#__PURE__*/React.createElement("span", {
75
+ className: "line",
76
+ style: {
77
+ backgroundColor: colorsArray[index]
78
+ }
79
+ }), /*#__PURE__*/React.createElement("span", {
80
+ className: "text"
81
+ }, key))));
82
+ return /*#__PURE__*/React.createElement("div", {
83
+ id: id,
84
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' ')
85
+ }, /*#__PURE__*/React.createElement("h3", null, title), /*#__PURE__*/React.createElement(CustomLegend, {
86
+ colorsArray: colors,
87
+ yKeysArray: yKeys
88
+ }), /*#__PURE__*/React.createElement(ResponsiveContainer, {
89
+ width: width,
90
+ height: height
91
+ }, /*#__PURE__*/React.createElement(RechartsAreaChart, {
92
+ data: processedData
93
+ }, /*#__PURE__*/React.createElement(CartesianGrid, {
94
+ strokeDasharray: "3 3"
95
+ }), /*#__PURE__*/React.createElement(XAxis, {
96
+ dataKey: xKey,
97
+ label: {
98
+ value: xLabel,
99
+ position: 'insideBottom',
100
+ offset: -5
101
+ } // Adjusted offset for padding
102
+ ,
103
+ axisLine: false,
104
+ tickLine: false,
105
+ tickCount: 3
106
+ }), /*#__PURE__*/React.createElement(YAxis, {
107
+ domain: yAxisBounds,
108
+ label: {
109
+ value: yLabel,
110
+ angle: -90,
111
+ position: 'insideLeft',
112
+ offset: 15
113
+ },
114
+ axisLine: false,
115
+ tickLine: false,
116
+ tickFormatter: value => value.toFixed(2)
117
+ }), /*#__PURE__*/React.createElement(Tooltip, {
118
+ content: /*#__PURE__*/React.createElement(CustomTooltipContent, null)
119
+ }), filled && /*#__PURE__*/React.createElement(Area, {
120
+ id: "bounds",
121
+ type: "linear",
122
+ dataKey: "bounds",
123
+ stroke: "none",
124
+ fill: "var(--hard-ui-main-2)",
125
+ fillOpacity: 0.4,
126
+ activeDot: false,
127
+ dot: false,
128
+ label: false,
129
+ isAnimationActive: false
130
+ }), yKeys.map((key, index) => /*#__PURE__*/React.createElement(Area, {
131
+ id: key,
132
+ key: key,
133
+ type: "linear",
134
+ dataKey: key,
135
+ stroke: colors[index],
136
+ fill: "none",
137
+ connectNulls: true,
138
+ dot: false,
139
+ activeDot: {
140
+ r: 4
141
+ },
142
+ isAnimationActive: false
143
+ })))));
144
+ };
145
+ AreaChart.propTypes = {
146
+ // eslint-disable-next-line react/forbid-prop-types
147
+ data: PropTypes.arrayOf(PropTypes.object).isRequired,
148
+ title: PropTypes.string.isRequired,
149
+ xKey: PropTypes.string.isRequired,
150
+ yKeys: PropTypes.arrayOf(PropTypes.string).isRequired,
151
+ xLabel: PropTypes.string,
152
+ yLabel: PropTypes.string,
153
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
154
+ filled: PropTypes.bool,
155
+ height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
156
+ width: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
157
+ };
158
+ AreaChart.defaultProps = {
159
+ filled: false,
160
+ width: '100%',
161
+ height: 300
162
+ };
163
+ export default AreaChart;
@@ -0,0 +1 @@
1
+ export { default as AreaChart } from "./AreaChart";
@@ -0,0 +1,89 @@
1
+ @use "@pareto-engineering/bem";
2
+
3
+ $default-margin: 1rem;
4
+ $default-padding: 1rem;
5
+ $default-box-shadow: 0 .25rem .75rem var(--ui-lines);
6
+ $default-text-font-size: calc(var(--s-1) * 1rem);
7
+ $default-border-radius: .25rem;
8
+ $default-legend-gap: .625rem;
9
+ $default-legend-padding: calc($default-padding * .125) calc($default-padding * .625);
10
+ $default-legend-line-width: 1.25rem;
11
+ $default-legend-line-height: .125rem;
12
+ $default-legend-line-margin-right: .3125rem;
13
+ $default-border-line-width: .0625rem;
14
+
15
+ .#{bem.$base} {
16
+ &.area-chart {
17
+ background-color: var(--background-far);
18
+ border-radius: var(--theme-default-border-radius);
19
+ box-shadow: $default-box-shadow;
20
+ margin: $default-margin 0;
21
+ padding: $default-padding;
22
+
23
+ h3 {
24
+ color: var(--subtitle);
25
+ margin: calc($default-margin / 5);
26
+ text-align: left;
27
+ }
28
+
29
+ .custom-legend {
30
+ display: flex;
31
+ gap: $default-legend-gap;
32
+ justify-content: flex-end;
33
+ padding-bottom: $default-padding;
34
+ padding-right: calc($default-padding * .25);
35
+
36
+ .item {
37
+ align-items: center;
38
+ border: $default-border-line-width solid var(--ui-lines);
39
+ border-radius: $default-border-radius;
40
+ display: flex;
41
+ padding: $default-legend-padding;
42
+ }
43
+
44
+ .line {
45
+ display: inline-block;
46
+ height: $default-legend-line-height;
47
+ margin-right: $default-legend-line-margin-right;
48
+ width: $default-legend-line-width;
49
+ }
50
+
51
+ .text {
52
+ color: var(--paragraph);
53
+ font-size: calc($default-text-font-size * .75);
54
+ }
55
+ }
56
+
57
+ .custom-tooltip {
58
+ background-color: var(--background-far);
59
+ border: $default-border-line-width solid var(--ui-lines);
60
+ border-radius: $default-border-radius;
61
+ padding: calc($default-padding * .25);
62
+
63
+ .label {
64
+ color: var(--hard-paragraph);
65
+ font-size: $default-text-font-size;
66
+ margin: calc($default-margin * .25);
67
+ }
68
+ }
69
+
70
+ /* stylelint-disable selector-max-compound-selectors -- nested elements */
71
+ .recharts-wrapper {
72
+ .recharts-surface {
73
+ .recharts-cartesian-grid line {
74
+ stroke: var(--ui-lines);
75
+ }
76
+
77
+ .recharts-text {
78
+ fill: var(--soft-paragraph);
79
+ font-size: calc($default-text-font-size * .75);
80
+ }
81
+
82
+ .recharts-text.recharts-label {
83
+ fill: var(--paragraph);
84
+ font-size: $default-text-font-size;
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
@@ -4,7 +4,7 @@ import { useEffect, useRef } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { EditorState } from '@codemirror/state';
6
6
  import { EditorView, keymap, lineNumbers, drawSelection, dropCursor, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, crosshairCursor, rectangularSelection } from '@codemirror/view';
7
- import { defaultKeymap, indentWithTab } from '@codemirror/commands';
7
+ import { defaultKeymap, indentWithTab, history, historyKeymap } from '@codemirror/commands';
8
8
  import { indentOnInput, bracketMatching, foldGutter } from '@codemirror/language';
9
9
  import { xml } from '@codemirror/lang-xml';
10
10
  import styleNames from '@pareto-engineering/bem/exports';
@@ -33,7 +33,7 @@ const XMLEditor = ({
33
33
  useEffect(() => {
34
34
  const startState = EditorState.create({
35
35
  doc: config,
36
- extensions: [keymap.of([defaultKeymap, indentWithTab]), indentOnInput(), lineNumbers(), bracketMatching(), foldGutter(), drawSelection(), highlightActiveLine(), highlightActiveLineGutter(), highlightSpecialChars(), dropCursor(), rectangularSelection(), crosshairCursor(), xml(), theme, EditorState.readOnly.of(readOnly), EditorView.updateListener.of(view => {
36
+ extensions: [keymap.of([defaultKeymap, indentWithTab, ...historyKeymap]), indentOnInput(), lineNumbers(), bracketMatching(), foldGutter(), drawSelection(), highlightActiveLine(), highlightActiveLineGutter(), highlightSpecialChars(), dropCursor(), rectangularSelection(), crosshairCursor(), xml(), history(), theme, EditorState.readOnly.of(readOnly), EditorView.updateListener.of(view => {
37
37
  onChange(view);
38
38
  // view.state.doc.toString() to receive the current content in the editor.
39
39
  }), EditorView.focusChangeEffect.of((state, focused) => {
@@ -27,4 +27,5 @@ export { Removable } from "./Removable";
27
27
  export { ToggleSwitch } from "./ToggleSwitch";
28
28
  export { XMLEditor } from "./XMLEditor";
29
29
  export { DatePicker } from "./DatePicker";
30
- export { Tooltip } from "./Tooltip";
30
+ export { Tooltip } from "./Tooltip";
31
+ export { AreaChart } from "./AreaChart";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pareto-engineering/design-system",
3
- "version": "4.9.2",
3
+ "version": "4.9.3",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/es/index.js",
@@ -59,7 +59,7 @@
59
59
  "@lexical/selection": "0.12.2",
60
60
  "@lexical/table": "0.12.2",
61
61
  "@lexical/utils": "0.12.2",
62
- "@pareto-engineering/assets": "^4.9.0",
62
+ "@pareto-engineering/assets": "^4.9.3",
63
63
  "@pareto-engineering/bem": "^4.8.1",
64
64
  "@pareto-engineering/styles": "^4.2.0",
65
65
  "@pareto-engineering/utils": "^4.0.0",
@@ -79,8 +79,9 @@
79
79
  "react-helmet-async": "^1.3.0",
80
80
  "react-relay": "^15.0.0",
81
81
  "react-router-dom": "^5.3.4",
82
+ "recharts": "^2.13.3",
82
83
  "relay-test-utils": "^15.0.0"
83
84
  },
84
85
  "browserslist": "> 2%",
85
- "gitHead": "d7034652bbfb7fa7362d9cedaa04ae23fc8323ad"
86
+ "gitHead": "d69af6b2eea2c7f0897d665c3d13e3dda118e293"
86
87
  }