@pareto-engineering/design-system 5.1.3 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/cjs/a/Charts/AreaChart/AreaChart.js +1 -0
  2. package/dist/cjs/a/Charts/BarChart/BarChart.js +1 -0
  3. package/dist/cjs/a/Charts/Common/CustomLegend/CustomLegend.js +6 -2
  4. package/dist/cjs/a/Charts/Common/CustomLegend/styles.scss +10 -2
  5. package/dist/cjs/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.js +44 -12
  6. package/dist/cjs/a/Charts/Common/CustomTooltipContent/styles.scss +4 -0
  7. package/dist/cjs/a/Charts/PieChart/PieChart.js +21 -3
  8. package/dist/cjs/a/Charts/PieChart/styles.scss +88 -0
  9. package/dist/cjs/a/HamburgerButton/styles.scss +151 -9
  10. package/dist/cjs/a/XMLEditor/XMLEditor.js +4 -1
  11. package/dist/cjs/f/fields/EditorInput/EditorInput.js +8 -1
  12. package/dist/es/a/Charts/AreaChart/AreaChart.js +1 -0
  13. package/dist/es/a/Charts/BarChart/BarChart.js +1 -0
  14. package/dist/es/a/Charts/Common/CustomLegend/CustomLegend.js +6 -2
  15. package/dist/es/a/Charts/Common/CustomLegend/styles.scss +10 -2
  16. package/dist/es/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.js +44 -12
  17. package/dist/es/a/Charts/Common/CustomTooltipContent/styles.scss +4 -0
  18. package/dist/es/a/Charts/PieChart/PieChart.js +21 -3
  19. package/dist/es/a/Charts/PieChart/styles.scss +88 -0
  20. package/dist/es/a/HamburgerButton/styles.scss +151 -9
  21. package/dist/es/a/XMLEditor/XMLEditor.js +6 -3
  22. package/dist/es/f/fields/EditorInput/EditorInput.js +8 -1
  23. package/package.json +6 -5
  24. package/src/ui/a/Charts/AreaChart/AreaChart.jsx +1 -0
  25. package/src/ui/a/Charts/BarChart/BarChart.jsx +1 -0
  26. package/src/ui/a/Charts/Common/CustomLegend/CustomLegend.jsx +11 -3
  27. package/src/ui/a/Charts/Common/CustomLegend/styles.scss +10 -2
  28. package/src/ui/a/Charts/Common/CustomTooltipContent/CustomTooltipContent.jsx +42 -5
  29. package/src/ui/a/Charts/Common/CustomTooltipContent/styles.scss +4 -0
  30. package/src/ui/a/Charts/PieChart/PieChart.jsx +19 -2
  31. package/src/ui/a/Charts/PieChart/styles.scss +88 -0
  32. package/src/ui/a/HamburgerButton/styles.scss +151 -9
  33. package/src/ui/a/XMLEditor/XMLEditor.jsx +15 -2
  34. package/src/ui/f/fields/EditorInput/EditorInput.jsx +7 -0
  35. package/tests/__snapshots__/Storyshots.test.js.snap +426 -159
@@ -3,7 +3,11 @@
3
3
  $default-margin: 1rem;
4
4
  $default-padding: 1rem;
5
5
  $default-box-shadow: 0 .25rem .75rem var(--ui-lines);
6
+ $soft-box-shadow: 0 .25rem 1rem var(--soft-shadow);
6
7
  $default-text-font-size: calc(var(--s-1) * 1rem);
8
+ $default-legend-dot-width: .75rem;
9
+ $default-legend-dot-height: .75rem;
10
+ $default-legend-dot-margin-right: .3125rem;
7
11
 
8
12
  .#{bem.$base} {
9
13
  &.pie-chart {
@@ -13,6 +17,90 @@ $default-text-font-size: calc(var(--s-1) * 1rem);
13
17
  margin: $default-margin 0;
14
18
  padding: $default-padding;
15
19
 
20
+ .custom-legend {
21
+ .item {
22
+ padding-top: 0;
23
+ }
24
+
25
+ .title .dot {
26
+ height: $default-legend-dot-height;
27
+ width: $default-legend-dot-width;
28
+ }
29
+
30
+ .title .text {
31
+ font-size: calc($default-text-font-size * 1.5);
32
+ }
33
+
34
+ .sub-title-percentage-container {
35
+ align-items: center;
36
+ display: flex;
37
+ gap: .8rem;
38
+ margin-left: .5rem;
39
+ width: fit-content;
40
+ }
41
+
42
+ .sub-title-percentage-container .sub-title {
43
+ font-size: calc($default-text-font-size * 1.25);
44
+ }
45
+
46
+ .sub-title-percentage-container .percentage-title {
47
+ font-size: calc($default-text-font-size * 1);
48
+ }
49
+ }
50
+
51
+ .custom-tooltip-content {
52
+ box-shadow: $soft-box-shadow;
53
+
54
+ p {
55
+ color: var(--hard-paragraph);
56
+ font-size: calc($default-text-font-size * .8);
57
+ font-weight: 600;
58
+ margin: 0;
59
+ }
60
+
61
+ .pie-chart-label {
62
+ align-items: center;
63
+ display: flex;
64
+ gap: 1.25rem;
65
+ justify-content: flex-start;
66
+
67
+ .status {
68
+ align-items: center;
69
+ display: flex;
70
+ gap: .1rem;
71
+ }
72
+
73
+ .label {
74
+ color: var(--hard-paragraph);
75
+ font-size: calc($default-text-font-size * 1);
76
+ font-weight: 600;
77
+ text-transform: capitalize;
78
+ }
79
+
80
+ .dot {
81
+ border-radius: 50%;
82
+ display: inline-block;
83
+ height: $default-legend-dot-height;
84
+ margin-right: $default-legend-dot-margin-right;
85
+ width: $default-legend-dot-width;
86
+ }
87
+
88
+ .value {
89
+ color: var(--hard-paragraph);
90
+ font-size: calc($default-text-font-size * 1);
91
+ font-weight: 600;
92
+ text-transform: capitalize;
93
+ }
94
+
95
+ .percentage-title {
96
+ color: var(--soft-paragraph);
97
+ font-size: calc($default-text-font-size * 1);
98
+ font-weight: 300;
99
+ text-transform: capitalize;
100
+ }
101
+ }
102
+ }
103
+
16
104
  .chart-header {
17
105
  align-items: center;
18
106
  display: flex;
@@ -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{
@@ -5,7 +5,7 @@ import { useEffect, useRef } from 'react'
5
5
 
6
6
  import PropTypes from 'prop-types'
7
7
 
8
- import { EditorState } from '@codemirror/state'
8
+ import { EditorState, Prec } from '@codemirror/state'
9
9
 
10
10
  import {
11
11
  EditorView,
@@ -25,6 +25,7 @@ import {
25
25
  indentWithTab,
26
26
  history,
27
27
  historyKeymap,
28
+ insertNewlineAndIndent,
28
29
  } from '@codemirror/commands'
29
30
 
30
31
  import {
@@ -67,7 +68,19 @@ const XMLEditor = ({
67
68
  const startState = EditorState.create({
68
69
  doc :config,
69
70
  extensions:[
70
- keymap.of([defaultKeymap, indentWithTab, ...historyKeymap]),
71
+ Prec.highest(
72
+ keymap.of([
73
+ {
74
+ key:'Enter',
75
+ run:(view) => insertNewlineAndIndent(view),
76
+ },
77
+ ]),
78
+ ),
79
+ keymap.of([
80
+ defaultKeymap,
81
+ indentWithTab,
82
+ ...historyKeymap,
83
+ ]),
71
84
  indentOnInput(),
72
85
  lineNumbers(),
73
86
  bracketMatching(),
@@ -2,6 +2,7 @@
2
2
  /* eslint-disable import/no-extraneous-dependencies -- required here */
3
3
  import * as React from 'react'
4
4
  import { memo, useEffect } from 'react'
5
+ import { $getRoot } from 'lexical'
5
6
  import { useField, useFormikContext } from 'formik'
6
7
  import { LexicalComposer } from '@lexical/react/LexicalComposer'
7
8
  import { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin'
@@ -66,6 +67,7 @@ const EditorInput = ({
66
67
  showDebugger,
67
68
  setEditorState,
68
69
  setPlainTextKey,
70
+ validate,
69
71
  // ...otherProps
70
72
  }) => {
71
73
  const [field, ,] = useField(name)
@@ -116,6 +118,11 @@ const EditorInput = ({
116
118
 
117
119
  const onChange = (state) => {
118
120
  setFieldValue(name, JSON.stringify(state))
121
+ validate?.(state.read(() => {
122
+ const root = $getRoot()
123
+ const textContent = root.getTextContent()
124
+ return textContent
125
+ }))
119
126
  }
120
127
 
121
128
  const initialConfig = {