@festo-ui/react-extra 9.0.0-dev.743 → 9.0.0-dev.747

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,375 @@
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-menu-trigger .fwe-popover-menu-trigger-button {
150
+ cursor: pointer;
151
+ background: none;
152
+ border: none;
153
+ margin: 0;
154
+ padding: 0;
155
+ line-height: 0;
156
+ display: block;
157
+ }
158
+
159
+ .fwe-popover-menu-trigger .fwe-popover-menu-trigger-button:hover {
160
+ color: var(--fwe-hero);
161
+ }
162
+
163
+ .fwe-color-picker {
164
+ width: 216px;
165
+ }
166
+
167
+ .fwe-color-picker.fwe-alpha-active {
168
+ width: 245px;
169
+ }
170
+
171
+ .fwe-color-picker .fwe-gradient-picker {
172
+ width: 198px;
173
+ height: 198px;
174
+ margin: -7px;
175
+ position: relative;
176
+ }
177
+
178
+ .fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient {
179
+ background-image: linear-gradient(#0000, #000);
180
+ position: absolute;
181
+ inset: 7px;
182
+ }
183
+
184
+ .fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient {
185
+ position: absolute;
186
+ inset: 7px;
187
+ }
188
+
189
+ .fwe-color-picker .fwe-vertical-picker, .fwe-color-picker .fwe-alpha-picker, .fwe-color-picker .fwe-hue-picker {
190
+ width: 14px;
191
+ height: 198px;
192
+ margin: -7px -3px -7px 18px;
193
+ position: relative;
194
+ }
195
+
196
+ .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 {
197
+ border-radius: 4px;
198
+ width: 8px;
199
+ height: 184px;
200
+ margin: 7px 3px;
201
+ }
202
+
203
+ .fwe-color-picker .fwe-vertical-picker .fwe-knob, .fwe-color-picker .fwe-alpha-picker .fwe-knob, .fwe-color-picker .fwe-hue-picker .fwe-knob {
204
+ left: -3px;
205
+ }
206
+
207
+ .fwe-color-picker .fwe-hue-picker .fwe-picker-background {
208
+ background-image: linear-gradient(red, #ff0, #0f0, #0ff, #00f, #f0f, red);
209
+ }
210
+
211
+ .fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern {
212
+ margin: 7px 3px;
213
+ position: absolute;
214
+ }
215
+
216
+ .fwe-color-picker .fwe-alpha-picker .fwe-picker-background {
217
+ position: absolute;
218
+ }
219
+
220
+ .fwe-color-picker .fwe-type-select {
221
+ display: flex;
222
+ position: relative;
223
+ }
224
+
225
+ .fwe-color-picker .fwe-type-select .fwe-type-indicator {
226
+ cursor: pointer;
227
+ background-color: #fff;
228
+ border: none;
229
+ flex-shrink: 1;
230
+ display: flex;
231
+ }
232
+
233
+ .fwe-color-picker .fwe-type-select .fwe-type-indicator:hover {
234
+ color: var(--fwe-hero);
235
+ }
236
+
237
+ .fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type {
238
+ font-size: var(--fwe-font-size-small);
239
+ line-height: calc(var(--fwe-font-size-small) + 5px);
240
+ font-weight: var(--fwe-font-weight-bold);
241
+ }
242
+
243
+ .fwe-color-picker .fwe-type-select .fwe-popover {
244
+ z-index: 1;
245
+ position: absolute;
246
+ top: 24px;
247
+ left: 0;
248
+ }
249
+
250
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item {
251
+ cursor: pointer;
252
+ background-color: #fff;
253
+ border: none;
254
+ align-items: center;
255
+ padding: 8px;
256
+ display: flex;
257
+ }
258
+
259
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover {
260
+ color: var(--fwe-hero);
261
+ }
262
+
263
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-svg-icon {
264
+ opacity: 0;
265
+ margin-right: 8px;
266
+ }
267
+
268
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected {
269
+ cursor: default;
270
+ }
271
+
272
+ .fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-svg-icon {
273
+ opacity: 1;
274
+ }
275
+
276
+ .fwe-color-picker input::-webkit-outer-spin-button {
277
+ -webkit-appearance: none;
278
+ margin: 0;
279
+ }
280
+
281
+ .fwe-color-picker input::-webkit-inner-spin-button {
282
+ -webkit-appearance: none;
283
+ margin: 0;
284
+ }
285
+
286
+ .fwe-color-picker input[type="number"] {
287
+ -moz-appearance: textfield;
288
+ }
289
+
290
+ .fwe-color-picker input {
291
+ text-align: center;
292
+ padding-right: 0 !important;
293
+ }
294
+
295
+ .fwe-color-picker .fwe-hex-input {
296
+ width: 75px;
297
+ margin-right: 16px;
298
+ }
299
+
300
+ .fwe-color-picker .fwe-red-input, .fwe-color-picker .fwe-green-input {
301
+ width: 32px;
302
+ margin-right: 8px;
303
+ }
304
+
305
+ .fwe-color-picker .fwe-blue-input {
306
+ width: 32px;
307
+ }
308
+
309
+ .fwe-color-picker .fwe-alpha-input span input {
310
+ width: 48px;
311
+ padding-right: 16px !important;
312
+ }
313
+
314
+ .fwe-color-picker .fwe-alpha-input .fwe-percent-char {
315
+ margin-left: -16px;
316
+ }
317
+
318
+ .fwe-color-picker .fwe-color-grid {
319
+ flex-wrap: wrap;
320
+ margin-bottom: -8px;
321
+ margin-right: -8px;
322
+ display: flex;
323
+ }
324
+
325
+ .fwe-color-picker .fwe-color-grid .fwe-color-item {
326
+ color: #fff;
327
+ border: none;
328
+ border-radius: 4px;
329
+ justify-content: center;
330
+ align-items: center;
331
+ width: 24px;
332
+ height: 24px;
333
+ margin-bottom: 8px;
334
+ margin-right: 8px;
335
+ padding: 0;
336
+ display: flex;
337
+ }
338
+
339
+ .fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item {
340
+ border: 1px solid var(--fwe-control-border);
341
+ color: #000;
342
+ }
343
+
344
+ .fwe-color-picker .fwe-color-grid .fwe-remove-color-button {
345
+ border: 1px solid var(--fwe-control-border);
346
+ width: 24px;
347
+ height: 24px;
348
+ color: var(--fwe-control);
349
+ border-radius: 4px;
350
+ justify-content: center;
351
+ align-items: center;
352
+ margin-bottom: 8px;
353
+ margin-right: 8px;
354
+ display: flex;
355
+ }
356
+
357
+ .fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern {
358
+ margin: 2px;
359
+ }
360
+
361
+ .fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-svg-icon {
362
+ color: #0000;
363
+ position: absolute;
364
+ }
365
+
366
+ .fwe-color-picker .fwe-knob {
367
+ z-index: 1;
368
+ border: 2px solid #fff;
369
+ border-radius: 50%;
370
+ width: 14px;
371
+ height: 14px;
372
+ position: absolute;
373
+ box-shadow: 0 0 4px #00000026;
374
+ }
375
+