@pareto-engineering/design-system 5.2.0 → 5.3.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 (80) hide show
  1. package/dist/cjs/a/Charts/AreaChart/AreaChart.js +61 -5
  2. package/dist/cjs/a/Charts/AreaChart/styles.scss +22 -0
  3. package/dist/cjs/a/Charts/BarChart/BarChart.js +1 -0
  4. package/dist/cjs/a/Charts/Common/CustomLegend/CustomLegend.js +23 -5
  5. package/dist/cjs/a/Charts/Common/CustomLegend/styles.scss +10 -2
  6. package/dist/cjs/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.js +139 -42
  7. package/dist/cjs/a/Charts/Common/CustomTooltipContent/styles.scss +4 -0
  8. package/dist/cjs/a/Charts/PieChart/PieChart.js +39 -8
  9. package/dist/cjs/a/Charts/PieChart/styles.scss +88 -0
  10. package/dist/cjs/a/HamburgerButton/styles.scss +151 -9
  11. package/dist/cjs/a/ThroughPutIndicator/ThroughPutIndicator.js +78 -0
  12. package/dist/cjs/a/ThroughPutIndicator/index.js +13 -0
  13. package/dist/cjs/a/ThroughPutIndicator/styles.scss +35 -0
  14. package/dist/cjs/a/ToggleSwitch/ToggleSwitch.js +2 -1
  15. package/dist/cjs/a/ToggleSwitch/styles.scss +9 -2
  16. package/dist/cjs/a/Tooltip/Tooltip.js +19 -2
  17. package/dist/cjs/a/Tooltip/styles.scss +32 -4
  18. package/dist/cjs/a/XMLEditor/XMLEditor.js +4 -1
  19. package/dist/cjs/a/index.js +8 -1
  20. package/dist/cjs/f/FormInput/FormInput.js +7 -1
  21. package/dist/cjs/f/fields/ToggleInput/ToggleInput.js +126 -0
  22. package/dist/cjs/f/fields/ToggleInput/index.js +13 -0
  23. package/dist/cjs/f/fields/ToggleInput/styles.scss +22 -0
  24. package/dist/cjs/f/fields/index.js +8 -1
  25. package/dist/cjs/utils/formatting.js +27 -18
  26. package/dist/cjs/utils/index.js +6 -0
  27. package/dist/es/a/Charts/AreaChart/AreaChart.js +62 -6
  28. package/dist/es/a/Charts/AreaChart/styles.scss +22 -0
  29. package/dist/es/a/Charts/BarChart/BarChart.js +1 -0
  30. package/dist/es/a/Charts/Common/CustomLegend/CustomLegend.js +23 -5
  31. package/dist/es/a/Charts/Common/CustomLegend/styles.scss +10 -2
  32. package/dist/es/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.js +128 -40
  33. package/dist/es/a/Charts/Common/CustomTooltipContent/styles.scss +4 -0
  34. package/dist/es/a/Charts/PieChart/PieChart.js +39 -8
  35. package/dist/es/a/Charts/PieChart/styles.scss +88 -0
  36. package/dist/es/a/HamburgerButton/styles.scss +151 -9
  37. package/dist/es/a/ThroughPutIndicator/ThroughPutIndicator.js +66 -0
  38. package/dist/es/a/ThroughPutIndicator/index.js +2 -0
  39. package/dist/es/a/ThroughPutIndicator/styles.scss +35 -0
  40. package/dist/es/a/ToggleSwitch/ToggleSwitch.js +2 -1
  41. package/dist/es/a/ToggleSwitch/styles.scss +9 -2
  42. package/dist/es/a/Tooltip/Tooltip.js +31 -12
  43. package/dist/es/a/Tooltip/styles.scss +32 -4
  44. package/dist/es/a/XMLEditor/XMLEditor.js +6 -3
  45. package/dist/es/a/index.js +2 -1
  46. package/dist/es/f/FormInput/FormInput.js +8 -2
  47. package/dist/es/f/fields/ToggleInput/ToggleInput.js +116 -0
  48. package/dist/es/f/fields/ToggleInput/index.js +2 -0
  49. package/dist/es/f/fields/ToggleInput/styles.scss +22 -0
  50. package/dist/es/f/fields/index.js +2 -1
  51. package/dist/es/utils/formatting.js +25 -17
  52. package/dist/es/utils/index.js +1 -1
  53. package/package.json +7 -6
  54. package/src/ui/a/Charts/AreaChart/AreaChart.jsx +74 -9
  55. package/src/ui/a/Charts/AreaChart/styles.scss +22 -0
  56. package/src/ui/a/Charts/BarChart/BarChart.jsx +1 -0
  57. package/src/ui/a/Charts/Common/CustomLegend/CustomLegend.jsx +26 -3
  58. package/src/ui/a/Charts/Common/CustomLegend/styles.scss +10 -2
  59. package/src/ui/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.jsx +132 -48
  60. package/src/ui/a/Charts/Common/CustomTooltipContent/styles.scss +4 -0
  61. package/src/ui/a/Charts/PieChart/PieChart.jsx +54 -16
  62. package/src/ui/a/Charts/PieChart/styles.scss +88 -0
  63. package/src/ui/a/HamburgerButton/styles.scss +151 -9
  64. package/src/ui/a/ThroughPutIndicator/ThroughPutIndicator.jsx +90 -0
  65. package/src/ui/a/ThroughPutIndicator/index.js +2 -0
  66. package/src/ui/a/ThroughPutIndicator/styles.scss +35 -0
  67. package/src/ui/a/ToggleSwitch/ToggleSwitch.jsx +1 -1
  68. package/src/ui/a/ToggleSwitch/styles.scss +9 -2
  69. package/src/ui/a/Tooltip/Tooltip.jsx +55 -26
  70. package/src/ui/a/Tooltip/styles.scss +32 -4
  71. package/src/ui/a/XMLEditor/XMLEditor.jsx +15 -2
  72. package/src/ui/a/index.js +1 -0
  73. package/src/ui/f/FormInput/FormInput.jsx +11 -0
  74. package/src/ui/f/fields/ToggleInput/ToggleInput.jsx +140 -0
  75. package/src/ui/f/fields/ToggleInput/index.js +2 -0
  76. package/src/ui/f/fields/ToggleInput/styles.scss +22 -0
  77. package/src/ui/f/fields/index.js +1 -0
  78. package/src/ui/utils/formatting.js +38 -29
  79. package/src/ui/utils/index.js +1 -1
  80. package/tests/__snapshots__/Storyshots.test.js.snap +433 -160
@@ -1,6 +1,8 @@
1
1
  /* @pareto-engineering/generator-front 1.0.12 */
2
2
 
3
3
  @use "@pareto-engineering/bem";
4
+ @use "sass:math";
5
+ @use "sass:list";
4
6
 
5
7
  /*
6
8
  $hamburger-padding-x : 15px !default;
@@ -22,17 +24,157 @@ $hamburger-hover-filter : opacity(50%) !default;
22
24
  $hamburger-active-hover-filter: $hamburger-hover-filter !default;
23
25
  */
24
26
 
25
- $hamburgers-types:(
26
- squeeze
27
- );
28
- $hamburger-layer-color : var(--x);
29
- $hamburger-padding-x : .5em;
30
- $hamburger-padding-y : .5em;
27
+ // Define the variables to be used with the hamburgers library
28
+ $hamburger-types: (squeeze);
29
+ $hamburger-layer-color: var(--x);
30
+ $hamburger-padding-x: .5em;
31
+ $hamburger-padding-y: .5em;
31
32
 
32
- // Open the following file for the template
33
+ // Additional hamburger variables with defaults
34
+ $hamburger-layer-width: 40px !default;
35
+ $hamburger-layer-height: 4px !default;
36
+ $hamburger-layer-spacing: 6px !default;
37
+ $hamburger-layer-border-radius: 4px !default;
38
+ $hamburger-hover-opacity: .7 !default;
39
+ $hamburger-hover-use-filter: false !default;
40
+ $hamburger-hover-filter: opacity(50%) !default;
41
+ $hamburger-active-layer-color: $hamburger-layer-color !default;
42
+ $hamburger-active-hover-opacity: $hamburger-hover-opacity !default;
43
+ $hamburger-active-hover-filter: $hamburger-hover-filter !default;
44
+
45
+ // Base Hamburger Styles
46
+ // ==================================================
47
+ .hamburger {
48
+ background-color: transparent;
49
+ border: 0;
50
+ color: inherit;
51
+ cursor: pointer;
52
+ display: inline-block;
53
+
54
+ // Normalize (<button>)
55
+ font: inherit;
56
+ margin: 0;
57
+ overflow: visible;
58
+ padding: $hamburger-padding-y $hamburger-padding-x;
59
+ text-transform: none;
60
+ transition-duration: .15s;
61
+
62
+ transition-property: opacity, filter;
63
+ transition-timing-function: linear;
64
+
65
+ &:hover {
66
+ @if $hamburger-hover-use-filter == true {
67
+ filter: $hamburger-hover-filter;
68
+ }
69
+ @else {
70
+ opacity: $hamburger-hover-opacity;
71
+ }
72
+ }
73
+
74
+ &.is-active {
75
+ &:hover {
76
+ @if $hamburger-hover-use-filter == true {
77
+ filter: $hamburger-active-hover-filter;
78
+ }
79
+ @else {
80
+ opacity: $hamburger-active-hover-opacity;
81
+ }
82
+ }
83
+
84
+ .hamburger-inner,
85
+ .hamburger-inner::before,
86
+ .hamburger-inner::after {
87
+ background-color: $hamburger-active-layer-color;
88
+ }
89
+ }
90
+ }
91
+
92
+ .hamburger-box {
93
+ display: inline-block;
94
+ height: $hamburger-layer-height * 3 + $hamburger-layer-spacing * 2;
95
+ position: relative;
96
+ width: $hamburger-layer-width;
97
+ }
98
+
99
+ .hamburger-inner {
100
+ display: block;
101
+ margin-top: math.div($hamburger-layer-height, -2);
102
+ top: 50%;
103
+
104
+ &,
105
+ &::before,
106
+ &::after {
107
+ background-color: $hamburger-layer-color;
108
+ border-radius: $hamburger-layer-border-radius;
109
+ height: $hamburger-layer-height;
110
+ position: absolute;
111
+ transition-duration: .15s;
112
+ transition-property: transform;
113
+ transition-timing-function: ease;
114
+ width: $hamburger-layer-width;
115
+ }
116
+
117
+ &::before,
118
+ &::after {
119
+ content: "";
120
+ display: block;
121
+ }
122
+
123
+ &::before {
124
+ top: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;
125
+ }
126
+
127
+ &::after {
128
+ bottom: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;
129
+ }
130
+ }
131
+
132
+ // Squeeze Type
133
+ // ==================================================
134
+
135
+ @if list.index($hamburger-types, squeeze) {
136
+ /*
137
+ * Squeeze
138
+ */
139
+ .hamburger-squeeze {
140
+ .hamburger-inner {
141
+ transition-duration: .1s;
142
+ transition-timing-function: cubic-bezier(.55, .055, .675, .19);
143
+
144
+ &::before {
145
+ transition: top .1s .12s ease,
146
+ opacity .1s ease;
147
+ }
148
+
149
+ &::after {
150
+ transition: bottom .1s .12s ease,
151
+ transform .1s cubic-bezier(.55, .055, .675, .19);
152
+ }
153
+ }
154
+
155
+ &.is-active {
156
+ .hamburger-inner {
157
+ transform: rotate(45deg);
158
+ transition-delay: .12s;
159
+ transition-timing-function: cubic-bezier(.215, .61, .355, 1);
160
+
161
+ &::before {
162
+ opacity: 0;
163
+ top: 0;
164
+ transition: top .1s ease,
165
+ opacity .1s .12s ease;
166
+ }
33
167
 
34
- @import "hamburgers/_sass/hamburgers/hamburgers";
35
- @import "hamburgers/_sass/hamburgers/types/squeeze";
168
+ &::after {
169
+ bottom: 0;
170
+ transform: rotate(-90deg);
171
+ transition: bottom .1s ease,
172
+ transform .1s .12s cubic-bezier(.215, .61, .355, 1);
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
36
178
 
37
179
  /*
38
180
  .#{bem.$base}.hamburger-button{
@@ -0,0 +1,78 @@
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 _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
10
+ require("./styles.scss");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ 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); }
13
+ 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; }
14
+ // Local Definitions
15
+ const baseClassName = _exports.default.base;
16
+ const componentClassName = 'throughput-indicator';
17
+ const ThroughPutIndicator = _ref => {
18
+ let {
19
+ data,
20
+ keyName = 'reserved'
21
+ } = _ref;
22
+ const renderNoChange = () => /*#__PURE__*/React.createElement("div", {
23
+ className: [baseClassName, componentClassName].filter(e => e).join(' ')
24
+ }, /*#__PURE__*/React.createElement("span", {
25
+ className: "no-change-text"
26
+ }, "No change"));
27
+ const renderChange = function (direction, percentage) {
28
+ let icon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : direction === 'positive' ? 'S' : 'R';
29
+ return /*#__PURE__*/React.createElement("div", {
30
+ className: [baseClassName, componentClassName].filter(e => e).join(' ')
31
+ }, /*#__PURE__*/React.createElement("span", {
32
+ className: `ai-icon ${direction}-throughput-indicator`
33
+ }, icon), /*#__PURE__*/React.createElement("p", null, percentage, "%"));
34
+ };
35
+
36
+ // Handle invalid or insufficient data
37
+ if (!data || data.length < 2) {
38
+ return renderNoChange();
39
+ }
40
+ const first = data[0][keyName];
41
+ const last = data[data.length - 1][keyName];
42
+
43
+ // Handle no change scenarios
44
+ if (first === 0 && last === 0) {
45
+ return renderNoChange();
46
+ }
47
+
48
+ // Handle special case: starting from zero
49
+ if (first === 0 && last !== 0) {
50
+ return renderChange('positive', '100');
51
+ }
52
+
53
+ // Calculate percentage change
54
+ const percentChange = (last - first) / Math.abs(first) * 100;
55
+ const rounded = Math.abs(percentChange).toFixed(1);
56
+
57
+ // No change
58
+ if (percentChange === 0) {
59
+ return renderNoChange();
60
+ }
61
+
62
+ // Positive or negative change
63
+ const direction = percentChange > 0 ? 'positive' : 'negative';
64
+ const icon = direction === 'positive' ? 'S' : 'R';
65
+ return renderChange(direction, rounded, icon);
66
+ };
67
+ ThroughPutIndicator.propTypes = {
68
+ /**
69
+ * The data to be displayed in the throughput indicator
70
+ */
71
+ // eslint-disable-next-line react/forbid-prop-types
72
+ data: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
73
+ /**
74
+ * The key name to be displayed in the throughput indicator
75
+ */
76
+ keyName: _propTypes.default.string
77
+ };
78
+ var _default = exports.default = ThroughPutIndicator;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ThroughPutIndicator", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ThroughPutIndicator.default;
10
+ }
11
+ });
12
+ var _ThroughPutIndicator = _interopRequireDefault(require("./ThroughPutIndicator"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,35 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+
5
+ $default-text-font-size: calc(var(--s-1) * 1rem);
6
+
7
+ .#{bem.$base} {
8
+ .throughput-indicator {
9
+ align-items: center;
10
+ border: 1px solid var(--hard-grey);
11
+ border-radius: 2rem;
12
+ display: flex;
13
+ gap: .5rem;
14
+ height: 3rem;
15
+ padding: .5rem;
16
+
17
+ .positive-throughput-indicator {
18
+ color: var(--success);
19
+ font-size: 1rem;
20
+ }
21
+
22
+ .negative-throughput-indicator {
23
+ color: var(--error);
24
+ font-size: .75rem;
25
+ }
26
+
27
+ .no-change-text {
28
+ color: var(--paragraph);
29
+ }
30
+
31
+ p {
32
+ font-size: 1rem;
33
+ }
34
+ }
35
+ }
@@ -47,7 +47,8 @@ const ToggleSwitch = _ref => {
47
47
  checked: checked,
48
48
  onChange: handleOnChange
49
49
  }), /*#__PURE__*/React.createElement("label", {
50
- htmlFor: inputId
50
+ htmlFor: inputId,
51
+ className: checked ? 'checked' : ''
51
52
  }));
52
53
  };
53
54
  ToggleSwitch.propTypes = {
@@ -7,7 +7,7 @@ $default-size: var(--size, 1.2em);
7
7
  $default-slider-color: var(--slider-color, var(--background-far));
8
8
  $default-slider-border-color: var(--slider-border-color, var(--ui-lines));
9
9
  $default-background-color: var(--slider-background-color, var(--interactive));
10
-
10
+ $default-background-disabled: var(--disabled, var(--background-far));
11
11
  .#{bem.$base}.toggle-switch {
12
12
  background: transparent;
13
13
  border: none;
@@ -21,7 +21,6 @@ $default-background-color: var(--slider-background-color, var(--interactive));
21
21
  }
22
22
 
23
23
  >label {
24
- background: $default-background-color;
25
24
  border-radius: $default-border-radius;
26
25
  cursor: pointer;
27
26
  display: block;
@@ -29,6 +28,14 @@ $default-background-color: var(--slider-background-color, var(--interactive));
29
28
  position: relative;
30
29
  width: calc($default-size * 2);
31
30
 
31
+ &.checked {
32
+ background: $default-background-color;
33
+ }
34
+
35
+ &:not(.checked) {
36
+ background: $default-background-disabled;
37
+ }
38
+
32
39
  &::after {
33
40
  background: $default-slider-color;
34
41
  border: 1px solid $default-slider-border-color;
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var React = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var React = _react;
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
10
11
  require("./styles.scss");
@@ -27,12 +28,24 @@ const Tooltip = _ref => {
27
28
  className: userClassName,
28
29
  style,
29
30
  position,
31
+ isFloating,
30
32
  color,
31
33
  description,
32
34
  content,
33
35
  children
34
36
  // ...otherProps
35
37
  } = _ref;
38
+ (0, _react.useEffect)(() => {
39
+ const handleMouseMove = e => {
40
+ document.documentElement.style.setProperty('--mouse-x', `${e.clientX}px`);
41
+ document.documentElement.style.setProperty('--mouse-y', `${e.clientY}px`);
42
+ };
43
+ if (!isFloating) {
44
+ return () => window.removeEventListener('mousemove', handleMouseMove);
45
+ }
46
+ window.addEventListener('mousemove', handleMouseMove);
47
+ return () => window.removeEventListener('mousemove', handleMouseMove);
48
+ }, [isFloating]);
36
49
  return /*#__PURE__*/React.createElement("div", {
37
50
  id: id,
38
51
  className: [baseClassName, componentClassName, userClassName, `x-${color}`].filter(e => e).join(' '),
@@ -41,7 +54,7 @@ const Tooltip = _ref => {
41
54
  className: "tooltip-trigger-wrapper",
42
55
  "aria-describedby": description
43
56
  }, children), /*#__PURE__*/React.createElement("div", {
44
- className: `tooltip-content ${position}`,
57
+ className: ['tooltip-content', position, isFloating ? 'floating' : ''].filter(e => e).join(' '),
45
58
  role: "tooltip",
46
59
  id: description
47
60
  }, content));
@@ -75,6 +88,10 @@ Tooltip.propTypes = {
75
88
  * The position of the tooltip with respect to the trigger element
76
89
  */
77
90
  position: _propTypes.default.oneOf(['top', 'bottom', 'left', 'right']),
91
+ /**
92
+ * Whether or not the tooltip should be floating
93
+ */
94
+ isFloating: _propTypes.default.bool,
78
95
  /**
79
96
  * The base color of the tooltip
80
97
  */
@@ -24,25 +24,53 @@ $default-width: var(--tooltip-width, 20rem);
24
24
  visibility: hidden;
25
25
  z-index: 10;
26
26
 
27
- &.top {
27
+ &.floating.top {
28
+ left: var(--mouse-x);
29
+ position: fixed;
30
+ top: calc(var(--mouse-y) - $default-block-padding);
31
+ transform: translate(-50%, -100%);
32
+ }
33
+
34
+ &.floating.right {
35
+ left: calc(var(--mouse-x) + $default-inline-padding);
36
+ position: fixed;
37
+ top: var(--mouse-y);
38
+ transform: translateY(-50%);
39
+ }
40
+
41
+ &.floating.bottom {
42
+ left: var(--mouse-x);
43
+ position: fixed;
44
+ top: calc(var(--mouse-y) + $default-block-padding);
45
+ transform: translateX(-50%);
46
+ }
47
+
48
+ &.floating.left {
49
+ left: calc(var(--mouse-x) - $default-inline-padding);
50
+ position: fixed;
51
+ top: var(--mouse-y);
52
+ transform: translate(-100%, -50%);
53
+ }
54
+
55
+ &:not(.floating).top {
28
56
  --horizontal: -50%;
29
57
  bottom: calc(100% + $default-block-padding);
30
58
  left: 50%;
31
59
  }
32
60
 
33
- &.right {
61
+ &:not(.floating).right {
34
62
  --vertical: 50%;
35
63
  bottom: 50%;
36
64
  left: calc(100% + $default-inline-padding);
37
65
  }
38
66
 
39
- &.bottom {
67
+ &:not(.floating).bottom {
40
68
  --horizontal: -50%;
41
69
  left: 50%;
42
70
  top: calc(100% + $default-block-padding);
43
71
  }
44
72
 
45
- &.left {
73
+ &:not(.floating).left {
46
74
  --vertical: 50%;
47
75
  bottom: 50%;
48
76
  right: calc(100% + $default-inline-padding);
@@ -44,7 +44,10 @@ 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, ..._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 => {
47
+ extensions: [_state.Prec.highest(_view.keymap.of([{
48
+ key: 'Enter',
49
+ run: view => (0, _commands.insertNewlineAndIndent)(view)
50
+ }])), _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
51
  onChange(view);
49
52
  // view.state.doc.toString() to receive the current content in the editor.
50
53
  }), _view.EditorView.focusChangeEffect.of((state, focused) => {
@@ -177,6 +177,12 @@ Object.defineProperty(exports, "TextSteps", {
177
177
  return _TextSteps.TextSteps;
178
178
  }
179
179
  });
180
+ Object.defineProperty(exports, "ThroughPutIndicator", {
181
+ enumerable: true,
182
+ get: function () {
183
+ return _ThroughPutIndicator.ThroughPutIndicator;
184
+ }
185
+ });
180
186
  Object.defineProperty(exports, "Timestamp", {
181
187
  enumerable: true,
182
188
  get: function () {
@@ -249,4 +255,5 @@ var _ToggleSwitch = require("./ToggleSwitch");
249
255
  var _XMLEditor = require("./XMLEditor");
250
256
  var _DatePicker = require("./DatePicker");
251
257
  var _Tooltip = require("./Tooltip");
252
- var _Charts = require("./Charts");
258
+ var _Charts = require("./Charts");
259
+ var _ThroughPutIndicator = require("./ThroughPutIndicator");
@@ -68,6 +68,12 @@ const FormInput = _ref => {
68
68
  disabled: disabled
69
69
  }, otherProps));
70
70
  }
71
+ if (type === 'toggle') {
72
+ return /*#__PURE__*/React.createElement(_fields.ToggleInput, _extends({
73
+ className: newClassName,
74
+ disabled: disabled
75
+ }, otherProps));
76
+ }
71
77
  if (type === 'query-choices') {
72
78
  return /*#__PURE__*/React.createElement(_fields.QueryChoices, _extends({
73
79
  className: newClassName,
@@ -130,7 +136,7 @@ FormInput.propTypes = {
130
136
  /**
131
137
  * The HTML class names for this element
132
138
  */
133
- type: _propTypes.default.oneOf(['text', 'email', 'password', 'number', 'date', 'datetime', 'month', 'tel', 'hidden', 'select', 'choices', 'textarea', 'query-combobox', 'query-select', 'url', 'rating', 'checkbox',
139
+ type: _propTypes.default.oneOf(['text', 'email', 'password', 'number', 'date', 'datetime', 'month', 'tel', 'hidden', 'select', 'choices', 'textarea', 'query-combobox', 'query-select', 'url', 'rating', 'checkbox', 'toggle',
134
140
  // to be removed
135
141
  'extendedTypeInput']),
136
142
  /**
@@ -0,0 +1,126 @@
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 _formik = require("formik");
10
+ var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
11
+ var _a = require("../../../a");
12
+ var _common = require("../../common");
13
+ require("./styles.scss");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ 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); }
16
+ 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; }
17
+ /* @pareto-engineering/generator-front 1.1.1-alpha.3 */
18
+
19
+ // Local Definitions
20
+ const baseClassName = _exports.default.base;
21
+ const componentClassName = 'toggle-input';
22
+
23
+ /**
24
+ * Toggle input field component that wraps ToggleSwitch for use with Formik
25
+ */
26
+ const ToggleInput = _ref => {
27
+ let {
28
+ id,
29
+ className: userClassName,
30
+ style,
31
+ name,
32
+ label,
33
+ color,
34
+ labelColor,
35
+ validate,
36
+ description,
37
+ disabled,
38
+ optional,
39
+ size
40
+ // ...otherProps
41
+ } = _ref;
42
+ const [field,, helpers] = (0, _formik.useField)({
43
+ name,
44
+ validate,
45
+ type: 'checkbox'
46
+ });
47
+ const handleChange = () => {
48
+ helpers.setValue(!field.value);
49
+ };
50
+ return /*#__PURE__*/React.createElement("div", {
51
+ id: id,
52
+ className: [baseClassName, componentClassName, userClassName, `y-${color}`].filter(e => e).join(' '),
53
+ style: style
54
+ }, /*#__PURE__*/React.createElement(_common.FormLabel, {
55
+ name: name,
56
+ color: labelColor,
57
+ optional: optional
58
+ }, label), /*#__PURE__*/React.createElement("div", {
59
+ className: "toggle-wrapper"
60
+ }, /*#__PURE__*/React.createElement(_a.ToggleSwitch, {
61
+ checked: Boolean(field.value),
62
+ handleOnChange: handleChange,
63
+ inputId: name,
64
+ size: size,
65
+ disabled: disabled
66
+ })), /*#__PURE__*/React.createElement(_common.FormDescription, {
67
+ className: "s-1",
68
+ description: description,
69
+ name: name
70
+ }));
71
+ };
72
+ ToggleInput.propTypes = {
73
+ /**
74
+ * The HTML id for this element
75
+ */
76
+ id: _propTypes.default.string,
77
+ /**
78
+ * The HTML class names for this element
79
+ */
80
+ className: _propTypes.default.string,
81
+ /**
82
+ * The React-written, css properties for this element.
83
+ */
84
+ style: _propTypes.default.objectOf(_propTypes.default.string),
85
+ /**
86
+ * The input name (html - and Formik state)
87
+ */
88
+ name: _propTypes.default.string.isRequired,
89
+ /**
90
+ * The input label
91
+ */
92
+ label: _propTypes.default.string.isRequired,
93
+ /**
94
+ * The input label color
95
+ */
96
+ labelColor: _propTypes.default.string,
97
+ /**
98
+ * The input field validator function
99
+ */
100
+ validate: _propTypes.default.func,
101
+ /**
102
+ * Input description
103
+ */
104
+ description: _propTypes.default.string,
105
+ /**
106
+ * Whether the toggle input should be disabled
107
+ */
108
+ disabled: _propTypes.default.bool,
109
+ /**
110
+ * The text input color
111
+ */
112
+ color: _propTypes.default.string,
113
+ /**
114
+ * Whether the input is optional or not
115
+ */
116
+ optional: _propTypes.default.bool,
117
+ /**
118
+ * The size of the toggle switch
119
+ */
120
+ size: _propTypes.default.string
121
+ };
122
+ ToggleInput.defaultProps = {
123
+ color: 'paragraph',
124
+ disabled: false
125
+ };
126
+ var _default = exports.default = ToggleInput;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ToggleInput", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ToggleInput.default;
10
+ }
11
+ });
12
+ var _ToggleInput = _interopRequireDefault(require("./ToggleInput"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,22 @@
1
+ /* @pareto-engineering/generator-front 1.1.1-alpha.3 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+ @use "@pareto-engineering/styles/src/mixins";
5
+ @use "@pareto-engineering/styles/src/globals" as *;
6
+
7
+ .#{bem.$base}.toggle-input {
8
+ display: flex;
9
+ flex-direction: column;
10
+
11
+ > .#{bem.$base}.form-label {
12
+ margin-bottom: var(--gap);
13
+ }
14
+
15
+ > .toggle-wrapper {
16
+ align-items: center;
17
+ display: flex;
18
+ margin-bottom: calc(var(--gap) / 2);
19
+ }
20
+ }
21
+
22
+