@festo-ui/react-extra 9.0.1-dev.757 → 9.0.1-dev.758

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,43 @@
1
+ .fwe-color-indicator .fwe-color-label {
2
+ height: 18px;
3
+ font-size: var(--fwe-font-size-small);
4
+ font-weight: var(--fwe-font-weight-bold);
5
+ margin-bottom: 4px;
6
+ }
7
+
8
+ .fwe-color-indicator .fwe-color-container {
9
+ display: flex;
10
+ }
11
+
12
+ .fwe-color-indicator .fwe-color-container .fwe-color-box {
13
+ border: 1px solid var(--fwe-control-border);
14
+ background: var(--fwe-white);
15
+ border-radius: 4px;
16
+ width: 24px;
17
+ height: 24px;
18
+ }
19
+
20
+ .fwe-color-indicator .fwe-color-container .fwe-color-box .fwe-no-color-pattern {
21
+ margin: 2px;
22
+ }
23
+
24
+ .fwe-color-indicator .fwe-color-container .fwe-color-indicator-text {
25
+ margin-left: 8px;
26
+ }
27
+
28
+ .fwe-color-indicator.disabled {
29
+ pointer-events: none;
30
+ }
31
+
32
+ .fwe-color-indicator.disabled .fwe-color-label {
33
+ color: var(--fwe-text-disabled);
34
+ }
35
+
36
+ .fwe-color-indicator.disabled .fwe-color-container .fwe-color-box {
37
+ opacity: .5;
38
+ }
39
+
40
+ .fwe-color-indicator.disabled .fwe-color-container .fwe-color-indicator-text {
41
+ color: var(--fwe-text-disabled);
42
+ }
43
+
@@ -0,0 +1,11 @@
1
+ import { type JSX, type PropsWithChildren } from 'react';
2
+ import './ColorIndicator.scss';
3
+ export interface ColorIndicatorProps {
4
+ className?: string;
5
+ text: string;
6
+ label: string;
7
+ color?: string;
8
+ showPopOver?: boolean;
9
+ disabled?: boolean;
10
+ }
11
+ export declare function ColorIndicator({ text, label, color, className, showPopOver, children, disabled, }: PropsWithChildren<ColorIndicatorProps>): JSX.Element;
@@ -0,0 +1,123 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Popover } from "@festo-ui/react";
3
+ import classnames from "classnames";
4
+ import { useState } from "react";
5
+ import "./ColorIndicator.css";
6
+ function ColorIndicator({ text, label, color, className, showPopOver = false, children, disabled }) {
7
+ const classes = classnames('fwe-color-indicator', className, disabled);
8
+ const [isEditorOpen, setEditorOpen] = useState(false);
9
+ function getBorderColor() {
10
+ if (!color || '#FFFFFF' === color.toUpperCase() || '#F0F2F3' === color.toUpperCase()) return '#b6bec6';
11
+ return color;
12
+ }
13
+ const colorBox = /*#__PURE__*/ jsx("div", {
14
+ className: "fwe-color-box",
15
+ style: {
16
+ background: color,
17
+ borderColor: getBorderColor()
18
+ },
19
+ children: !color && /*#__PURE__*/ jsxs("svg", {
20
+ className: "fwe-no-color-pattern",
21
+ version: "1.1",
22
+ role: "img",
23
+ "aria-label": "No color selected",
24
+ xmlns: "http://www.w3.org/2000/svg",
25
+ xmlnsXlink: "http://www.w3.org/1999/xlink",
26
+ id: "canvas1",
27
+ width: "18",
28
+ height: "18",
29
+ children: [
30
+ /*#__PURE__*/ jsx("defs", {
31
+ children: /*#__PURE__*/ jsxs("pattern", {
32
+ id: "bwsquare2px",
33
+ width: "4",
34
+ height: "4",
35
+ patternUnits: "userSpaceOnUse",
36
+ children: [
37
+ /*#__PURE__*/ jsx("rect", {
38
+ x: "0",
39
+ y: "0",
40
+ width: "2",
41
+ height: "2",
42
+ stroke: "none",
43
+ fill: "#ffffff"
44
+ }),
45
+ /*#__PURE__*/ jsx("rect", {
46
+ x: "2",
47
+ y: "0",
48
+ width: "2",
49
+ height: "2",
50
+ stroke: "none",
51
+ fill: "#e2e5e8"
52
+ }),
53
+ /*#__PURE__*/ jsx("rect", {
54
+ x: "0",
55
+ y: "2",
56
+ width: "2",
57
+ height: "2",
58
+ stroke: "none",
59
+ fill: "#e2e5e8"
60
+ }),
61
+ /*#__PURE__*/ jsx("rect", {
62
+ x: "2",
63
+ y: "2",
64
+ width: "2",
65
+ height: "2",
66
+ stroke: "none",
67
+ fill: "#ffffff"
68
+ })
69
+ ]
70
+ })
71
+ }),
72
+ /*#__PURE__*/ jsx("rect", {
73
+ x: "0",
74
+ y: "0",
75
+ rx: "0",
76
+ ry: "0",
77
+ width: "18",
78
+ height: "18",
79
+ fill: "url(#bwsquare2px)",
80
+ strokeWidth: "0"
81
+ })
82
+ ]
83
+ })
84
+ });
85
+ const wrapperProperties = showPopOver ? {
86
+ onClick: ()=>setEditorOpen((prevOpen)=>!prevOpen)
87
+ } : {};
88
+ const wrapper = (wrapperChildren)=>/*#__PURE__*/ jsxs("div", {
89
+ className: classes,
90
+ ...wrapperProperties,
91
+ children: [
92
+ /*#__PURE__*/ jsx("div", {
93
+ style: {
94
+ opacity: isEditorOpen ? 0 : 1
95
+ },
96
+ className: "fwe-color-label",
97
+ children: label
98
+ }),
99
+ /*#__PURE__*/ jsxs("div", {
100
+ className: "fwe-color-container",
101
+ children: [
102
+ wrapperChildren,
103
+ ' ',
104
+ text && /*#__PURE__*/ jsx("div", {
105
+ className: "fwe-color-indicator-text",
106
+ children: text
107
+ }),
108
+ ' '
109
+ ]
110
+ })
111
+ ]
112
+ });
113
+ return showPopOver ? /*#__PURE__*/ jsx(Popover, {
114
+ position: "top",
115
+ wrapper: wrapper,
116
+ popoverContent: children,
117
+ open: isEditorOpen,
118
+ onStatusChange: setEditorOpen,
119
+ stopPropagation: true,
120
+ children: colorBox
121
+ }) : wrapper(colorBox);
122
+ }
123
+ export { ColorIndicator };
@@ -0,0 +1,4 @@
1
+ export interface ScrollAreaProps extends React.ComponentPropsWithoutRef<'div'> {
2
+ readonly scrollbarMinSize?: number;
3
+ }
4
+ export declare function ScrollArea({ children, scrollbarMinSize, ...props }: ScrollAreaProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import simplebar_react from "simplebar-react";
3
+ function ScrollArea({ children, scrollbarMinSize = 25, ...props }) {
4
+ return /*#__PURE__*/ jsx(simplebar_react, {
5
+ ...props,
6
+ scrollbarMinSize: scrollbarMinSize,
7
+ children: children
8
+ });
9
+ }
10
+ export { ScrollArea };
@@ -0,0 +1,9 @@
1
+ .scroll-area-styles {
2
+ width: 400px;
3
+ max-width: 400px;
4
+ height: 300px;
5
+ padding-right: 8px;
6
+ display: block;
7
+ overflow: hidden auto;
8
+ }
9
+
@@ -0,0 +1,5 @@
1
+ export declare function rgbToHsv(rgb: Record<'r' | 'g' | 'b', number>): Record<'h' | 's' | 'v', number> | undefined;
2
+ export declare function hsvToRgb(_hsv: Record<'h' | 's' | 'v', number>): Record<'r' | 'g' | 'b', number>;
3
+ export declare function numberToHex(rgb: number): string;
4
+ export declare function rgbToHex(_rgb: Record<'r' | 'g' | 'b', number>): string;
5
+ export declare function hexToRgb(hexString: string): Record<'r' | 'g' | 'b', number> | undefined;
@@ -0,0 +1,121 @@
1
+ function rgbToHsv(rgb) {
2
+ if (!rgb) return;
3
+ const r = limitToByte(rgb.r) / 255;
4
+ const g = limitToByte(rgb.g) / 255;
5
+ const b = limitToByte(rgb.b) / 255;
6
+ const max = Math.max(r, g, b);
7
+ const min = Math.min(r, g, b);
8
+ let h = max;
9
+ let s = max;
10
+ const v = max;
11
+ const d = max - min;
12
+ s = 0 === max ? 0 : d / max;
13
+ if (max === min) h = 0;
14
+ else {
15
+ switch(max){
16
+ case r:
17
+ h = (g - b) / d + (g < b ? 6 : 0);
18
+ break;
19
+ case g:
20
+ h = (b - r) / d + 2;
21
+ break;
22
+ case b:
23
+ h = (r - g) / d + 4;
24
+ break;
25
+ default:
26
+ }
27
+ h /= 6;
28
+ }
29
+ return {
30
+ h,
31
+ s,
32
+ v
33
+ };
34
+ }
35
+ function hsvToRgb(_hsv) {
36
+ const hsv = _hsv;
37
+ hsv.h = limitToOne(_hsv.h);
38
+ hsv.s = limitToOne(_hsv.s);
39
+ hsv.v = limitToOne(_hsv.v);
40
+ let r = 0;
41
+ let g = 0;
42
+ let b = 0;
43
+ const i = Math.floor(6 * hsv.h);
44
+ const f = 6 * hsv.h - i;
45
+ const p = hsv.v * (1 - hsv.s);
46
+ const q = hsv.v * (1 - f * hsv.s);
47
+ const t = hsv.v * (1 - (1 - f) * hsv.s);
48
+ switch(i % 6){
49
+ case 0:
50
+ r = hsv.v;
51
+ g = t;
52
+ b = p;
53
+ break;
54
+ case 1:
55
+ r = q;
56
+ g = hsv.v;
57
+ b = p;
58
+ break;
59
+ case 2:
60
+ r = p;
61
+ g = hsv.v;
62
+ b = t;
63
+ break;
64
+ case 3:
65
+ r = p;
66
+ g = q;
67
+ b = hsv.v;
68
+ break;
69
+ case 4:
70
+ r = t;
71
+ g = p;
72
+ b = hsv.v;
73
+ break;
74
+ case 5:
75
+ r = hsv.v;
76
+ g = p;
77
+ b = q;
78
+ break;
79
+ default:
80
+ }
81
+ return {
82
+ r: limitToByte(255 * r),
83
+ g: limitToByte(255 * g),
84
+ b: limitToByte(255 * b)
85
+ };
86
+ }
87
+ function limitToByte(num) {
88
+ if (num <= 0) return 0;
89
+ if (num >= 255) return 255;
90
+ return num;
91
+ }
92
+ function limitToOne(num) {
93
+ if (num <= 0) return 0;
94
+ if (num >= 1) return 1;
95
+ return num;
96
+ }
97
+ function numberToHex(rgb) {
98
+ let hex = Math.round(rgb).toString(16);
99
+ if (hex.length < 2) hex = `0${hex}`;
100
+ return hex.toUpperCase();
101
+ }
102
+ function rgbToHex(_rgb) {
103
+ const rgb = _rgb;
104
+ rgb.r = limitToByte(rgb.r);
105
+ rgb.g = limitToByte(rgb.g);
106
+ rgb.b = limitToByte(rgb.b);
107
+ const red = numberToHex(rgb.r);
108
+ const green = numberToHex(rgb.g);
109
+ const blue = numberToHex(rgb.b);
110
+ return `#${red}${green}${blue}`;
111
+ }
112
+ function hexToRgb(hexString) {
113
+ const numbersOnly = hexString.substring(1);
114
+ const aRgbHex = numbersOnly.match(/.{1,2}/g);
115
+ return aRgbHex ? {
116
+ r: parseInt(aRgbHex[0], 16),
117
+ g: parseInt(aRgbHex[1], 16),
118
+ b: parseInt(aRgbHex[2], 16)
119
+ } : void 0;
120
+ }
121
+ export { hexToRgb, hsvToRgb, numberToHex, rgbToHex, rgbToHsv };
@@ -0,0 +1,382 @@
1
+ .fwe-triangle.fwe-triangle-right, .fwe-triangle.fwe-triangle-left, .fwe-triangle.fwe-triangle-bottom, .fwe-triangle.fwe-triangle-top {
2
+ width: 17px;
3
+ height: 17px;
4
+ position: absolute;
5
+ overflow: hidden;
6
+ }
7
+
8
+ .fwe-triangle.fwe-triangle-right:after, .fwe-triangle.fwe-triangle-left:after, .fwe-triangle.fwe-triangle-bottom:after, .fwe-triangle.fwe-triangle-top:after {
9
+ content: "";
10
+ background: var(--fwe-white);
11
+ width: 12px;
12
+ height: 12px;
13
+ position: absolute;
14
+ transform: rotate(45deg);
15
+ box-shadow: 0 1px 4px #3333;
16
+ }
17
+
18
+ .fwe-popover-container {
19
+ min-width: max-content;
20
+ display: inline-block;
21
+ position: relative;
22
+ }
23
+
24
+ .fwe-triangle.fwe-triangle-top {
25
+ top: -17px;
26
+ left: 50%;
27
+ transform: translateX(-8px);
28
+ }
29
+
30
+ .fwe-triangle.fwe-triangle-top:after {
31
+ top: 11px;
32
+ left: 3px;
33
+ }
34
+
35
+ .fwe-triangle.fwe-triangle-bottom {
36
+ top: 100%;
37
+ left: 50%;
38
+ transform: translateX(-8px);
39
+ }
40
+
41
+ .fwe-triangle.fwe-triangle-bottom:after {
42
+ top: -6px;
43
+ left: 3px;
44
+ }
45
+
46
+ .fwe-triangle.fwe-triangle-left {
47
+ top: 50%;
48
+ left: -17px;
49
+ transform: translateY(-8px);
50
+ }
51
+
52
+ .fwe-triangle.fwe-triangle-left:after {
53
+ top: 2px;
54
+ left: 11px;
55
+ }
56
+
57
+ .fwe-triangle.fwe-triangle-right {
58
+ top: 50%;
59
+ left: 100%;
60
+ transform: translateY(-8px);
61
+ }
62
+
63
+ .fwe-triangle.fwe-triangle-right:after {
64
+ top: 2px;
65
+ left: -6px;
66
+ }
67
+
68
+ .fwe-popover {
69
+ background-color: var(--fwe-white);
70
+ font-size: var(--fwe-font-size-md);
71
+ border-radius: 4px;
72
+ padding: 8px;
73
+ line-height: 1rem;
74
+ box-shadow: 0 1px 4px #3333;
75
+ }
76
+
77
+ .fwe-popover--legend {
78
+ padding: 16px;
79
+ line-height: 24px;
80
+ display: table;
81
+ }
82
+
83
+ .fwe-popover--legend .fwe-popover-legend-content {
84
+ display: table-row;
85
+ }
86
+
87
+ .fwe-popover--legend .fwe-popover-legend-content dt {
88
+ margin: 0;
89
+ padding-right: 8px;
90
+ display: table-cell;
91
+ }
92
+
93
+ .fwe-popover--legend .fwe-popover-legend-content dd {
94
+ margin: 0;
95
+ display: table-cell;
96
+ }
97
+
98
+ .fwe-popover--menu {
99
+ font-size: var(--fwe-font-size-base);
100
+ padding: 16px;
101
+ line-height: 1.5rem;
102
+ }
103
+
104
+ .fwe-popover--menu button {
105
+ all: unset;
106
+ cursor: pointer;
107
+ width: 100%;
108
+ height: 36px;
109
+ min-height: 36px;
110
+ color: var(--fwe-text);
111
+ border-bottom: none;
112
+ align-items: center;
113
+ padding: 0;
114
+ display: flex;
115
+ }
116
+
117
+ .fwe-popover--menu button .fwe-svg-icon {
118
+ margin-left: 8px;
119
+ margin-right: 8px;
120
+ }
121
+
122
+ .fwe-popover--menu button i {
123
+ flex-wrap: nowrap;
124
+ justify-content: center;
125
+ align-items: center;
126
+ width: 32px;
127
+ height: 24px;
128
+ margin-right: 0;
129
+ display: inline-flex;
130
+ }
131
+
132
+ .fwe-popover--menu button i:before {
133
+ display: inline-flex;
134
+ }
135
+
136
+ .fwe-popover--menu button span {
137
+ margin-right: 8px;
138
+ display: inline-flex;
139
+ }
140
+
141
+ .fwe-popover--menu button:hover {
142
+ background-color: #3333331a;
143
+ }
144
+
145
+ .fwe-popover--menu button:active {
146
+ background-color: #3333;
147
+ }
148
+
149
+ .fwe-popover--content {
150
+ width: auto;
151
+ min-width: max-content;
152
+ max-width: none;
153
+ padding: 16px;
154
+ }
155
+
156
+ .fwe-popover-menu-trigger .fwe-popover-menu-trigger-button {
157
+ cursor: pointer;
158
+ background: none;
159
+ border: none;
160
+ margin: 0;
161
+ padding: 0;
162
+ line-height: 0;
163
+ display: block;
164
+ }
165
+
166
+ .fwe-popover-menu-trigger .fwe-popover-menu-trigger-button:hover {
167
+ color: var(--fwe-hero);
168
+ }
169
+
170
+ .fwe-color-picker {
171
+ width: 216px;
172
+ }
173
+
174
+ .fwe-color-picker.fwe-alpha-active {
175
+ width: 245px;
176
+ }
177
+
178
+ .fwe-color-picker .fwe-gradient-picker {
179
+ width: 198px;
180
+ height: 198px;
181
+ margin: -7px;
182
+ position: relative;
183
+ }
184
+
185
+ .fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient {
186
+ background-image: linear-gradient(#0000, #000);
187
+ position: absolute;
188
+ inset: 7px;
189
+ }
190
+
191
+ .fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient {
192
+ position: absolute;
193
+ inset: 7px;
194
+ }
195
+
196
+ .fwe-color-picker .fwe-vertical-picker, .fwe-color-picker .fwe-alpha-picker, .fwe-color-picker .fwe-hue-picker {
197
+ width: 14px;
198
+ height: 198px;
199
+ margin: -7px -3px -7px 18px;
200
+ position: relative;
201
+ }
202
+
203
+ .fwe-color-picker .fwe-vertical-picker .fwe-picker-background, .fwe-color-picker .fwe-alpha-picker .fwe-picker-background, .fwe-color-picker .fwe-hue-picker .fwe-picker-background {
204
+ border-radius: 4px;
205
+ width: 8px;
206
+ height: 184px;
207
+ margin: 7px 3px;
208
+ }
209
+
210
+ .fwe-color-picker .fwe-vertical-picker .fwe-knob, .fwe-color-picker .fwe-alpha-picker .fwe-knob, .fwe-color-picker .fwe-hue-picker .fwe-knob {
211
+ left: -3px;
212
+ }
213
+
214
+ .fwe-color-picker .fwe-hue-picker .fwe-picker-background {
215
+ background-image: linear-gradient(red, #ff0, #0f0, #0ff, #00f, #f0f, red);
216
+ }
217
+
218
+ .fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern {
219
+ margin: 7px 3px;
220
+ position: absolute;
221
+ }
222
+
223
+ .fwe-color-picker .fwe-alpha-picker .fwe-picker-background {
224
+ position: absolute;
225
+ }
226
+
227
+ .fwe-color-picker .fwe-type-select {
228
+ display: flex;
229
+ position: relative;
230
+ }
231
+
232
+ .fwe-color-picker .fwe-type-select .fwe-type-indicator {
233
+ cursor: pointer;
234
+ background-color: #fff;
235
+ border: none;
236
+ flex-shrink: 1;
237
+ display: flex;
238
+ }
239
+
240
+ .fwe-color-picker .fwe-type-select .fwe-type-indicator:hover {
241
+ color: var(--fwe-hero);
242
+ }
243
+
244
+ .fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type {
245
+ font-size: var(--fwe-font-size-small);
246
+ line-height: calc(var(--fwe-font-size-small) + 5px);
247
+ font-weight: var(--fwe-font-weight-bold);
248
+ }
249
+
250
+ .fwe-color-picker .fwe-type-select .fwe-popover {
251
+ z-index: 1;
252
+ position: absolute;
253
+ top: 24px;
254
+ left: 0;
255
+ }
256
+
257
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item {
258
+ cursor: pointer;
259
+ background-color: #fff;
260
+ border: none;
261
+ align-items: center;
262
+ padding: 8px;
263
+ display: flex;
264
+ }
265
+
266
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover {
267
+ color: var(--fwe-hero);
268
+ }
269
+
270
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-svg-icon {
271
+ opacity: 0;
272
+ margin-right: 8px;
273
+ }
274
+
275
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected {
276
+ cursor: default;
277
+ }
278
+
279
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-svg-icon {
280
+ opacity: 1;
281
+ }
282
+
283
+ .fwe-color-picker input::-webkit-outer-spin-button {
284
+ -webkit-appearance: none;
285
+ margin: 0;
286
+ }
287
+
288
+ .fwe-color-picker input::-webkit-inner-spin-button {
289
+ -webkit-appearance: none;
290
+ margin: 0;
291
+ }
292
+
293
+ .fwe-color-picker input[type="number"] {
294
+ -moz-appearance: textfield;
295
+ }
296
+
297
+ .fwe-color-picker input {
298
+ text-align: center;
299
+ padding-right: 0 !important;
300
+ }
301
+
302
+ .fwe-color-picker .fwe-hex-input {
303
+ width: 75px;
304
+ margin-right: 16px;
305
+ }
306
+
307
+ .fwe-color-picker .fwe-red-input, .fwe-color-picker .fwe-green-input {
308
+ width: 32px;
309
+ margin-right: 8px;
310
+ }
311
+
312
+ .fwe-color-picker .fwe-blue-input {
313
+ width: 32px;
314
+ }
315
+
316
+ .fwe-color-picker .fwe-alpha-input span input {
317
+ width: 48px;
318
+ padding-right: 16px !important;
319
+ }
320
+
321
+ .fwe-color-picker .fwe-alpha-input .fwe-percent-char {
322
+ margin-left: -16px;
323
+ }
324
+
325
+ .fwe-color-picker .fwe-color-grid {
326
+ flex-wrap: wrap;
327
+ margin-bottom: -8px;
328
+ margin-right: -8px;
329
+ display: flex;
330
+ }
331
+
332
+ .fwe-color-picker .fwe-color-grid .fwe-color-item {
333
+ color: #fff;
334
+ border: none;
335
+ border-radius: 4px;
336
+ justify-content: center;
337
+ align-items: center;
338
+ width: 24px;
339
+ height: 24px;
340
+ margin-bottom: 8px;
341
+ margin-right: 8px;
342
+ padding: 0;
343
+ display: flex;
344
+ }
345
+
346
+ .fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item {
347
+ border: 1px solid var(--fwe-control-border);
348
+ color: #000;
349
+ }
350
+
351
+ .fwe-color-picker .fwe-color-grid .fwe-remove-color-button {
352
+ border: 1px solid var(--fwe-control-border);
353
+ width: 24px;
354
+ height: 24px;
355
+ color: var(--fwe-control);
356
+ border-radius: 4px;
357
+ justify-content: center;
358
+ align-items: center;
359
+ margin-bottom: 8px;
360
+ margin-right: 8px;
361
+ display: flex;
362
+ }
363
+
364
+ .fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern {
365
+ margin: 2px;
366
+ }
367
+
368
+ .fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-svg-icon {
369
+ color: #0000;
370
+ position: absolute;
371
+ }
372
+
373
+ .fwe-color-picker .fwe-knob {
374
+ z-index: 1;
375
+ border: 2px solid #fff;
376
+ border-radius: 50%;
377
+ width: 14px;
378
+ height: 14px;
379
+ position: absolute;
380
+ box-shadow: 0 0 4px #00000026;
381
+ }
382
+