@teammodlr/ui-kit 2.3.9 → 2.3.10

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.
@@ -1,23 +1,23 @@
1
- <template>
2
- <div>
3
- <p>Selected Color: {{ colorValue }}</p>
4
- <MColorPicker v-model.lazy="colorValue" style="display: inline-block;">
5
- <template #default="{ r, g, b, hex, transparent }">
6
- <div :class="transparent"
7
- style="width: 100px; height: 100px; border: 1px solid black; position: relative; overflow: hidden;">
8
- <div style="position: absolute; inset: 0" :style="{ backgroundColor: hex }"></div>
9
- </div>
10
- </template>
11
- </MColorPicker>
12
- </div>
13
- </template>
14
-
15
- <script>
16
- export default {
17
- data() {
18
- return {
19
- colorValue: 'rgba(255 0 0 50%)' // Initial color value
20
- };
21
- }
22
- };
23
- </script>
1
+ <template>
2
+ <div>
3
+ <p>Selected Color: {{ colorValue }}</p>
4
+ <MColorPicker v-model.lazy="colorValue" style="display: inline-block;">
5
+ <template #default="{ r, g, b, hex, transparent }">
6
+ <div :class="transparent"
7
+ style="width: 100px; height: 100px; border: 1px solid black; position: relative; overflow: hidden;">
8
+ <div style="position: absolute; inset: 0" :style="{ backgroundColor: hex }"></div>
9
+ </div>
10
+ </template>
11
+ </MColorPicker>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+ export default {
17
+ data() {
18
+ return {
19
+ colorValue: 'rgba(0,0,0,50%)' // Initial color value
20
+ };
21
+ }
22
+ };
23
+ </script>
@@ -1,206 +1,205 @@
1
- export interface Color {
2
- r: number;
3
- g: number;
4
- b: number;
5
- a: number;
6
- }
7
-
8
- export interface HSV {
9
- h: number;
10
- s: number;
11
- v: number;
12
- }
13
-
14
- export const RGBAToHex = (
15
- r: number,
16
- g: number,
17
- b: number,
18
- a: number
19
- ): string => {
20
- const hexR: string = r.toString(16).padStart(2, '0');
21
- const hexG: string = g.toString(16).padStart(2, '0');
22
- const hexB: string = b.toString(16).padStart(2, '0');
23
- const hexA: string = Math.round(a * 255)
24
- .toString(16)
25
- .padStart(2, '0');
26
-
27
- return `#${hexR}${hexG}${hexB}${a >= 1 ? '' : hexA}`;
28
- };
29
-
30
- export const hexToRGB = (
31
- hexColor: string,
32
- defaultR = 0,
33
- defaultG = 0,
34
- defaultB = 0,
35
- defaultA = 0
36
- ): Color => {
37
- hexColor = hexColor.replace('#', '');
38
-
39
- let r = defaultR;
40
- let g = defaultG;
41
- let b = defaultB;
42
- let a = defaultA;
43
-
44
- if (hexColor.length >= 2) {
45
- r = parseInt(hexColor.substring(0, 2), 16);
46
- }
47
-
48
- if (hexColor.length >= 4) {
49
- g = parseInt(hexColor.substring(2, 4), 16);
50
- } else {
51
- g = 0;
52
- }
53
-
54
- if (hexColor.length >= 6) {
55
- b = parseInt(hexColor.substring(4, 6), 16);
56
- } else {
57
- b = 0;
58
- }
59
-
60
- if (hexColor.length >= 8) {
61
- a = parseInt(hexColor.substring(6, 8), 16) / 255;
62
- } else {
63
- a = 1;
64
- }
65
-
66
- if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) {
67
- r = 0;
68
- b = 0;
69
- g = 0;
70
- a = 1;
71
- }
72
-
73
- return {
74
- r,
75
- g,
76
- b,
77
- a
78
- };
79
- };
80
-
81
- export const RGBToHSV = (r: number, g: number, b: number): HSV => {
82
- const max = Math.max(r, g, b);
83
- const min = Math.min(r, g, b);
84
-
85
- const delta = max - min;
86
- const brightness = max;
87
- let saturation = 0;
88
- if (max !== 0) {
89
- saturation = delta / max;
90
- }
91
-
92
- let hue = 0;
93
- if (delta !== 0) {
94
- if (max === r) {
95
- hue = ((g - b) / delta) % 6;
96
- } else if (max === g) {
97
- hue = (b - r) / delta + 2;
98
- } else {
99
- hue = (r - g) / delta + 4;
100
- }
101
-
102
- hue *= 60;
103
- if (hue < 0) {
104
- hue += 360;
105
- }
106
- }
107
-
108
- return {
109
- h: hue,
110
- s: saturation,
111
- v: brightness / 255
112
- };
113
- };
114
-
115
- export const HSVToRGBA = (
116
- hue: number,
117
- brightness: number,
118
- saturation: number,
119
- alpha: number
120
- ): Color => {
121
- const hueInDegrees = hue;
122
- const chroma = brightness * saturation;
123
- const hue1 = hueInDegrees / 60;
124
- const x = chroma * (1 - Math.abs((hue1 % 2) - 1));
125
- let r1 = 0;
126
- let g1 = 0;
127
- let b1 = 0;
128
- if (hue1 >= 0 && hue1 < 1) {
129
- r1 = chroma;
130
- g1 = x;
131
- } else if (hue1 >= 1 && hue1 < 2) {
132
- r1 = x;
133
- g1 = chroma;
134
- } else if (hue1 >= 2 && hue1 < 3) {
135
- g1 = chroma;
136
- b1 = x;
137
- } else if (hue1 >= 3 && hue1 < 4) {
138
- g1 = x;
139
- b1 = chroma;
140
- } else if (hue1 >= 4 && hue1 < 5) {
141
- r1 = x;
142
- b1 = chroma;
143
- } else {
144
- r1 = chroma;
145
- b1 = x;
146
- }
147
- const m = brightness - chroma;
148
- const r = Math.round((r1 + m) * 255);
149
- const g = Math.round((g1 + m) * 255);
150
- const b = Math.round((b1 + m) * 255);
151
-
152
- return {
153
- r,
154
- g,
155
- b,
156
- a: alpha
157
- };
158
- };
159
-
160
- export const HueToRGBA = (hue: number, alpha: number): Color => {
161
- const chroma = 1 - Math.abs(2 * 0.5 - 1);
162
- const huePrime = (hue / 360) * 6;
163
- const intermediateValue = chroma * (1 - Math.abs((huePrime % 2) - 1));
164
- let red = 0;
165
- let green = 0;
166
- let blue = 0;
167
-
168
- if (huePrime >= 0 && huePrime < 1) {
169
- red = chroma;
170
- green = intermediateValue;
171
- blue = 0;
172
- } else if (huePrime >= 1 && huePrime < 2) {
173
- red = intermediateValue;
174
- green = chroma;
175
- blue = 0;
176
- } else if (huePrime >= 2 && huePrime < 3) {
177
- red = 0;
178
- green = chroma;
179
- blue = intermediateValue;
180
- } else if (huePrime >= 3 && huePrime < 4) {
181
- red = 0;
182
- green = intermediateValue;
183
- blue = chroma;
184
- } else if (huePrime >= 4 && huePrime < 5) {
185
- red = intermediateValue;
186
- green = 0;
187
- blue = chroma;
188
- } else {
189
- red = chroma;
190
- green = 0;
191
- blue = intermediateValue;
192
- }
193
-
194
- const lightnessDecimal = 0.5;
195
- const lightnessAdjustment = (1 - chroma) * (lightnessDecimal - 0.5);
196
- const finalRed = Math.round((red + lightnessAdjustment) * 255);
197
- const finalGreen = Math.round((green + lightnessAdjustment) * 255);
198
- const finalBlue = Math.round((blue + lightnessAdjustment) * 255);
199
-
200
- return {
201
- r: finalRed,
202
- g: finalGreen,
203
- b: finalBlue,
204
- a: alpha
205
- };
206
- };
1
+ export interface Color {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ a: number;
6
+ }
7
+
8
+ export interface HSV {
9
+ h: number;
10
+ s: number;
11
+ v: number;
12
+ }
13
+
14
+ export const RGBAToHex = (
15
+ r: number,
16
+ g: number,
17
+ b: number,
18
+ a: number
19
+ ): string => {
20
+ const hexR = r.toString(16).padStart(2, '0');
21
+ const hexG = g.toString(16).padStart(2, '0');
22
+ const hexB = b.toString(16).padStart(2, '0');
23
+ const hexA = Math.round(a * 255).toString(16).padStart(2, '0');
24
+
25
+ return a === 1 ? `#${hexR}${hexG}${hexB}` : `#${hexR}${hexG}${hexB}${hexA}`;
26
+ };
27
+
28
+
29
+ export const hexToRGB = (
30
+ hexColor: string,
31
+ defaultR = 0,
32
+ defaultG = 0,
33
+ defaultB = 0,
34
+ defaultA = 0
35
+ ): Color => {
36
+ hexColor = hexColor.replace('#', '');
37
+
38
+ let r = defaultR;
39
+ let g = defaultG;
40
+ let b = defaultB;
41
+ let a = defaultA;
42
+
43
+ if (hexColor.length >= 2) {
44
+ r = parseInt(hexColor.substring(0, 2), 16);
45
+ }
46
+
47
+ if (hexColor.length >= 4) {
48
+ g = parseInt(hexColor.substring(2, 4), 16);
49
+ } else {
50
+ g = 0;
51
+ }
52
+
53
+ if (hexColor.length >= 6) {
54
+ b = parseInt(hexColor.substring(4, 6), 16);
55
+ } else {
56
+ b = 0;
57
+ }
58
+
59
+ if (hexColor.length >= 8) {
60
+ a = parseInt(hexColor.substring(6, 8), 16) / 255;
61
+ } else {
62
+ a = 1;
63
+ }
64
+
65
+ if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) {
66
+ r = 0;
67
+ b = 0;
68
+ g = 0;
69
+ a = 1;
70
+ }
71
+
72
+ return {
73
+ r,
74
+ g,
75
+ b,
76
+ a
77
+ };
78
+ };
79
+
80
+ export const RGBToHSV = (r: number, g: number, b: number): HSV => {
81
+ const max = Math.max(r, g, b);
82
+ const min = Math.min(r, g, b);
83
+
84
+ const delta = max - min;
85
+ const brightness = max;
86
+ let saturation = 0;
87
+ if (max !== 0) {
88
+ saturation = delta / max;
89
+ }
90
+
91
+ let hue = 0;
92
+ if (delta !== 0) {
93
+ if (max === r) {
94
+ hue = ((g - b) / delta) % 6;
95
+ } else if (max === g) {
96
+ hue = (b - r) / delta + 2;
97
+ } else {
98
+ hue = (r - g) / delta + 4;
99
+ }
100
+
101
+ hue *= 60;
102
+ if (hue < 0) {
103
+ hue += 360;
104
+ }
105
+ }
106
+
107
+ return {
108
+ h: hue,
109
+ s: saturation,
110
+ v: brightness / 255
111
+ };
112
+ };
113
+
114
+ export const HSVToRGBA = (
115
+ hue: number,
116
+ brightness: number,
117
+ saturation: number,
118
+ alpha: number
119
+ ): Color => {
120
+ const hueInDegrees = hue;
121
+ const chroma = brightness * saturation;
122
+ const hue1 = hueInDegrees / 60;
123
+ const x = chroma * (1 - Math.abs((hue1 % 2) - 1));
124
+ let r1 = 0;
125
+ let g1 = 0;
126
+ let b1 = 0;
127
+ if (hue1 >= 0 && hue1 < 1) {
128
+ r1 = chroma;
129
+ g1 = x;
130
+ } else if (hue1 >= 1 && hue1 < 2) {
131
+ r1 = x;
132
+ g1 = chroma;
133
+ } else if (hue1 >= 2 && hue1 < 3) {
134
+ g1 = chroma;
135
+ b1 = x;
136
+ } else if (hue1 >= 3 && hue1 < 4) {
137
+ g1 = x;
138
+ b1 = chroma;
139
+ } else if (hue1 >= 4 && hue1 < 5) {
140
+ r1 = x;
141
+ b1 = chroma;
142
+ } else {
143
+ r1 = chroma;
144
+ b1 = x;
145
+ }
146
+ const m = brightness - chroma;
147
+ const r = Math.round((r1 + m) * 255);
148
+ const g = Math.round((g1 + m) * 255);
149
+ const b = Math.round((b1 + m) * 255);
150
+
151
+ return {
152
+ r,
153
+ g,
154
+ b,
155
+ a: alpha
156
+ };
157
+ };
158
+
159
+ export const HueToRGBA = (hue: number, alpha: number): Color => {
160
+ const chroma = 1 - Math.abs(2 * 0.5 - 1);
161
+ const huePrime = (hue / 360) * 6;
162
+ const intermediateValue = chroma * (1 - Math.abs((huePrime % 2) - 1));
163
+ let red = 0;
164
+ let green = 0;
165
+ let blue = 0;
166
+
167
+ if (huePrime >= 0 && huePrime < 1) {
168
+ red = chroma;
169
+ green = intermediateValue;
170
+ blue = 0;
171
+ } else if (huePrime >= 1 && huePrime < 2) {
172
+ red = intermediateValue;
173
+ green = chroma;
174
+ blue = 0;
175
+ } else if (huePrime >= 2 && huePrime < 3) {
176
+ red = 0;
177
+ green = chroma;
178
+ blue = intermediateValue;
179
+ } else if (huePrime >= 3 && huePrime < 4) {
180
+ red = 0;
181
+ green = intermediateValue;
182
+ blue = chroma;
183
+ } else if (huePrime >= 4 && huePrime < 5) {
184
+ red = intermediateValue;
185
+ green = 0;
186
+ blue = chroma;
187
+ } else {
188
+ red = chroma;
189
+ green = 0;
190
+ blue = intermediateValue;
191
+ }
192
+
193
+ const lightnessDecimal = 0.5;
194
+ const lightnessAdjustment = (1 - chroma) * (lightnessDecimal - 0.5);
195
+ const finalRed = Math.round((red + lightnessAdjustment) * 255);
196
+ const finalGreen = Math.round((green + lightnessAdjustment) * 255);
197
+ const finalBlue = Math.round((blue + lightnessAdjustment) * 255);
198
+
199
+ return {
200
+ r: finalRed,
201
+ g: finalGreen,
202
+ b: finalBlue,
203
+ a: alpha
204
+ };
205
+ };