@a-type/ui 3.0.26 → 3.0.28
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.
- package/dist/cjs/colors.stories.js +1 -8
- package/dist/cjs/colors.stories.js.map +1 -1
- package/dist/cjs/components/dialog/Dialog.js +30 -5
- package/dist/cjs/components/dialog/Dialog.js.map +1 -1
- package/dist/cjs/components/dialog/Dialog.stories.js +1 -1
- package/dist/cjs/components/dialog/Dialog.stories.js.map +1 -1
- package/dist/cjs/components/icon/Icon.js +1 -1
- package/dist/cjs/components/icon/Icon.js.map +1 -1
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.js +2 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/lightbox/Lightbox.d.ts +25 -0
- package/dist/cjs/components/lightbox/Lightbox.js +71 -0
- package/dist/cjs/components/lightbox/Lightbox.js.map +1 -0
- package/dist/cjs/components/lightbox/Lightbox.stories.d.ts +24 -0
- package/dist/cjs/components/lightbox/Lightbox.stories.js +21 -0
- package/dist/cjs/components/lightbox/Lightbox.stories.js.map +1 -0
- package/dist/cjs/components/lists/lists.d.ts +6 -0
- package/dist/cjs/components/lists/lists.js +16 -0
- package/dist/cjs/components/lists/lists.js.map +1 -0
- package/dist/cjs/components/lists/lists.stories.d.ts +14 -0
- package/dist/cjs/components/lists/lists.stories.js +25 -0
- package/dist/cjs/components/lists/lists.stories.js.map +1 -0
- package/dist/cjs/components/provider/Provider.d.ts +1 -4
- package/dist/cjs/components/provider/Provider.js +3 -3
- package/dist/cjs/components/provider/Provider.js.map +1 -1
- package/dist/cjs/components/pwaInstall/PlatformIcons.d.ts +5 -0
- package/dist/cjs/components/pwaInstall/PlatformIcons.js +25 -0
- package/dist/cjs/components/pwaInstall/PlatformIcons.js.map +1 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.d.ts +5 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.js +74 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.js.map +1 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.d.ts +15 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js +23 -0
- package/dist/cjs/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -0
- package/dist/cjs/components/pwaInstall/index.d.ts +3 -0
- package/dist/cjs/components/pwaInstall/index.js +21 -0
- package/dist/cjs/components/pwaInstall/index.js.map +1 -0
- package/dist/cjs/components/pwaInstall/useIsInstallReady.d.ts +3 -0
- package/dist/cjs/components/pwaInstall/useIsInstallReady.js +58 -0
- package/dist/cjs/components/pwaInstall/useIsInstallReady.js.map +1 -0
- package/dist/cjs/components/pwaInstall/useWebManifest.d.ts +2 -0
- package/dist/cjs/components/pwaInstall/useWebManifest.js +45 -0
- package/dist/cjs/components/pwaInstall/useWebManifest.js.map +1 -0
- package/dist/cjs/components/toasts/toasts.d.ts +4 -1
- package/dist/cjs/components/toasts/toasts.js +35 -1
- package/dist/cjs/components/toasts/toasts.js.map +1 -1
- package/dist/cjs/components/toasts/toasts.stories.d.ts +13 -0
- package/dist/cjs/components/toasts/toasts.stories.js +47 -0
- package/dist/cjs/components/toasts/toasts.stories.js.map +1 -0
- package/dist/cjs/platform.d.ts +11 -0
- package/dist/cjs/platform.js +95 -0
- package/dist/cjs/platform.js.map +1 -0
- package/dist/cjs/uno/logic/color.d.ts +0 -12
- package/dist/cjs/uno/logic/color.js +0 -35
- package/dist/cjs/uno/logic/color.js.map +1 -1
- package/dist/cjs/uno/logic/color.test.js +0 -12
- package/dist/cjs/uno/logic/color.test.js.map +1 -1
- package/dist/cjs/uno/theme/index.js +8 -0
- package/dist/cjs/uno/theme/index.js.map +1 -1
- package/dist/css/main.css +6 -5
- package/dist/esm/colors.stories.js +1 -8
- package/dist/esm/colors.stories.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.js +30 -5
- package/dist/esm/components/dialog/Dialog.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.stories.js +1 -1
- package/dist/esm/components/dialog/Dialog.stories.js.map +1 -1
- package/dist/esm/components/icon/Icon.js +1 -1
- package/dist/esm/components/icon/Icon.js.map +1 -1
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/lightbox/Lightbox.d.ts +25 -0
- package/dist/esm/components/lightbox/Lightbox.js +32 -0
- package/dist/esm/components/lightbox/Lightbox.js.map +1 -0
- package/dist/esm/components/lightbox/Lightbox.stories.d.ts +24 -0
- package/dist/esm/components/lightbox/Lightbox.stories.js +18 -0
- package/dist/esm/components/lightbox/Lightbox.stories.js.map +1 -0
- package/dist/esm/components/lists/lists.d.ts +6 -0
- package/dist/esm/components/lists/lists.js +13 -0
- package/dist/esm/components/lists/lists.js.map +1 -0
- package/dist/esm/components/lists/lists.stories.d.ts +14 -0
- package/dist/esm/components/lists/lists.stories.js +22 -0
- package/dist/esm/components/lists/lists.stories.js.map +1 -0
- package/dist/esm/components/provider/Provider.d.ts +1 -4
- package/dist/esm/components/provider/Provider.js +3 -3
- package/dist/esm/components/provider/Provider.js.map +1 -1
- package/dist/esm/components/pwaInstall/PlatformIcons.d.ts +5 -0
- package/dist/esm/components/pwaInstall/PlatformIcons.js +18 -0
- package/dist/esm/components/pwaInstall/PlatformIcons.js.map +1 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.d.ts +5 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.js +71 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.js.map +1 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.d.ts +15 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js +20 -0
- package/dist/esm/components/pwaInstall/PwaInstallTrigger.stories.js.map +1 -0
- package/dist/esm/components/pwaInstall/index.d.ts +3 -0
- package/dist/esm/components/pwaInstall/index.js +5 -0
- package/dist/esm/components/pwaInstall/index.js.map +1 -0
- package/dist/esm/components/pwaInstall/useIsInstallReady.d.ts +3 -0
- package/dist/esm/components/pwaInstall/useIsInstallReady.js +53 -0
- package/dist/esm/components/pwaInstall/useIsInstallReady.js.map +1 -0
- package/dist/esm/components/pwaInstall/useWebManifest.d.ts +2 -0
- package/dist/esm/components/pwaInstall/useWebManifest.js +42 -0
- package/dist/esm/components/pwaInstall/useWebManifest.js.map +1 -0
- package/dist/esm/components/toasts/toasts.d.ts +4 -1
- package/dist/esm/components/toasts/toasts.js +32 -1
- package/dist/esm/components/toasts/toasts.js.map +1 -1
- package/dist/esm/components/toasts/toasts.stories.d.ts +13 -0
- package/dist/esm/components/toasts/toasts.stories.js +44 -0
- package/dist/esm/components/toasts/toasts.stories.js.map +1 -0
- package/dist/esm/platform.d.ts +11 -0
- package/dist/esm/platform.js +84 -0
- package/dist/esm/platform.js.map +1 -0
- package/dist/esm/uno/logic/color.d.ts +0 -12
- package/dist/esm/uno/logic/color.js +0 -35
- package/dist/esm/uno/logic/color.js.map +1 -1
- package/dist/esm/uno/logic/color.test.js +0 -12
- package/dist/esm/uno/logic/color.test.js.map +1 -1
- package/dist/esm/uno/theme/index.js +8 -0
- package/dist/esm/uno/theme/index.js.map +1 -1
- package/package.json +5 -7
- package/src/colors.stories.tsx +0 -12
- package/src/components/dialog/Dialog.stories.tsx +20 -6
- package/src/components/dialog/Dialog.tsx +49 -4
- package/src/components/icon/Icon.tsx +6 -1
- package/src/components/index.ts +2 -0
- package/src/components/lightbox/Lightbox.stories.tsx +28 -0
- package/src/components/lightbox/Lightbox.tsx +87 -0
- package/src/components/lists/lists.stories.tsx +38 -0
- package/src/components/lists/lists.tsx +21 -0
- package/src/components/provider/Provider.tsx +2 -9
- package/src/components/pwaInstall/PlatformIcons.tsx +75 -0
- package/src/components/pwaInstall/PwaInstallTrigger.stories.tsx +29 -0
- package/src/components/pwaInstall/PwaInstallTrigger.tsx +227 -0
- package/src/components/pwaInstall/index.ts +3 -0
- package/src/components/pwaInstall/useIsInstallReady.ts +56 -0
- package/src/components/pwaInstall/useWebManifest.ts +55 -0
- package/src/components/toasts/toasts.stories.tsx +83 -0
- package/src/components/toasts/toasts.tsx +72 -1
- package/src/platform.ts +103 -0
- package/src/uno/logic/color.test.ts +0 -27
- package/src/uno/logic/color.ts +0 -56
- package/src/uno/theme/index.ts +8 -0
- package/dist/cjs/uno/logic/oklch.d.ts +0 -3
- package/dist/cjs/uno/logic/oklch.js +0 -96
- package/dist/cjs/uno/logic/oklch.js.map +0 -1
- package/dist/esm/uno/logic/oklch.d.ts +0 -3
- package/dist/esm/uno/logic/oklch.js +0 -90
- package/dist/esm/uno/logic/oklch.js.map +0 -1
- package/src/uno/logic/oklch.ts +0 -120
package/src/uno/logic/color.ts
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ColorSpace,
|
|
3
|
-
to as convert,
|
|
4
|
-
OKLCH,
|
|
5
|
-
PlainColorObject,
|
|
6
|
-
serialize,
|
|
7
|
-
sRGB,
|
|
8
|
-
toGamut,
|
|
9
|
-
} from 'colorjs.io/fn';
|
|
10
1
|
import { type PaletteName } from './palettes.js';
|
|
11
2
|
|
|
12
|
-
ColorSpace.register(sRGB);
|
|
13
|
-
ColorSpace.register(OKLCH);
|
|
14
|
-
|
|
15
3
|
export function lighten(base: string, level: string) {
|
|
16
4
|
return mod(base, level, 1);
|
|
17
5
|
}
|
|
@@ -152,18 +140,6 @@ export interface OklchColorEquation {
|
|
|
152
140
|
* OKLCH color string with calculations and references resolved.
|
|
153
141
|
*/
|
|
154
142
|
computeOklch(context: ColorEvaluationContext): string;
|
|
155
|
-
/**
|
|
156
|
-
* Uses the equation and provided context to compute a static
|
|
157
|
-
* sRGB color string with calculations and references resolved.
|
|
158
|
-
* This is not as accurate as computeOklch, as it converts to sRGB gamut.
|
|
159
|
-
*/
|
|
160
|
-
computeSrgb(context: ColorEvaluationContext): string;
|
|
161
|
-
/**
|
|
162
|
-
* Uses the equation and provided context to compute a static
|
|
163
|
-
* HEX color string with calculations and references resolved.
|
|
164
|
-
* This is not as accurate as computeOklch, as it converts to sRGB gamut.
|
|
165
|
-
*/
|
|
166
|
-
computeHex(context: ColorEvaluationContext): string;
|
|
167
143
|
/**
|
|
168
144
|
* Returns the raw computed L, C, H values as numbers with units.
|
|
169
145
|
*/
|
|
@@ -393,38 +369,6 @@ export function oklchBuilder(
|
|
|
393
369
|
const h = printEquation(equations.h, context);
|
|
394
370
|
return `oklch(calc(${l}) calc(${c}) calc(${h}))`;
|
|
395
371
|
},
|
|
396
|
-
computeSrgb(context: ColorEvaluationContext): string {
|
|
397
|
-
const l = computeEquation(equations.l, context);
|
|
398
|
-
const c = computeEquation(equations.c, context);
|
|
399
|
-
const h = computeEquation(equations.h, context);
|
|
400
|
-
const asColor: PlainColorObject = {
|
|
401
|
-
space: OKLCH,
|
|
402
|
-
alpha: 1,
|
|
403
|
-
coords: [
|
|
404
|
-
resolveComputationResult(l, [0, 1]),
|
|
405
|
-
resolveComputationResult(c, [0, 0.4]),
|
|
406
|
-
resolveComputationResult(h, [0, 360]),
|
|
407
|
-
],
|
|
408
|
-
};
|
|
409
|
-
return serialize(toGamut(convert(asColor, 'srgb'), {}));
|
|
410
|
-
},
|
|
411
|
-
computeHex(context: ColorEvaluationContext): string {
|
|
412
|
-
const l = computeEquation(equations.l, context);
|
|
413
|
-
const c = computeEquation(equations.c, context);
|
|
414
|
-
const h = computeEquation(equations.h, context);
|
|
415
|
-
const asColor: PlainColorObject = {
|
|
416
|
-
space: OKLCH,
|
|
417
|
-
alpha: 1,
|
|
418
|
-
coords: [
|
|
419
|
-
resolveComputationResult(l, [0, 1]),
|
|
420
|
-
resolveComputationResult(c, [0, 0.4]),
|
|
421
|
-
resolveComputationResult(h, [0, 360]),
|
|
422
|
-
],
|
|
423
|
-
};
|
|
424
|
-
return serialize(toGamut(convert(asColor, 'srgb')), {
|
|
425
|
-
format: 'hex',
|
|
426
|
-
});
|
|
427
|
-
},
|
|
428
372
|
computeOklch(context: ColorEvaluationContext): string {
|
|
429
373
|
const l = computeEquation(equations.l, context);
|
|
430
374
|
const c = computeEquation(equations.c, context);
|
package/src/uno/theme/index.ts
CHANGED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
// @unocss-include
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.oklch2hex = exports.rgb2oklch = exports.oklch2rgb = void 0;
|
|
5
|
-
function clampByte(value) {
|
|
6
|
-
return Math.min(255, Math.max(0, Math.round(value)));
|
|
7
|
-
}
|
|
8
|
-
const multiplyMatrices = (A, B) => {
|
|
9
|
-
return [
|
|
10
|
-
A[0] * B[0] + A[1] * B[1] + A[2] * B[2],
|
|
11
|
-
A[3] * B[0] + A[4] * B[1] + A[5] * B[2],
|
|
12
|
-
A[6] * B[0] + A[7] * B[1] + A[8] * B[2],
|
|
13
|
-
];
|
|
14
|
-
};
|
|
15
|
-
const oklch2oklab = ([l, c, h]) => [
|
|
16
|
-
l,
|
|
17
|
-
isNaN(h) ? 0 : c * Math.cos((h * Math.PI) / 180),
|
|
18
|
-
isNaN(h) ? 0 : c * Math.sin((h * Math.PI) / 180),
|
|
19
|
-
];
|
|
20
|
-
const oklab2oklch = ([l, a, b]) => [
|
|
21
|
-
l,
|
|
22
|
-
Math.sqrt(a ** 2 + b ** 2),
|
|
23
|
-
Math.abs(a) < 0.0002 && Math.abs(b) < 0.0002
|
|
24
|
-
? NaN
|
|
25
|
-
: ((((Math.atan2(b, a) * 180) / Math.PI) % 360) + 360) % 360,
|
|
26
|
-
];
|
|
27
|
-
const rgb2srgbLinear = (rgb) => rgb.map((c) => Math.abs(c) <= 0.04045
|
|
28
|
-
? c / 12.92
|
|
29
|
-
: (c < 0 ? -1 : 1) * ((Math.abs(c) + 0.055) / 1.055) ** 2.4);
|
|
30
|
-
const srgbLinear2rgb = (rgb) => rgb.map((c) => Math.abs(c) > 0.0031308
|
|
31
|
-
? (c < 0 ? -1 : 1) * (1.055 * Math.abs(c) ** (1 / 2.4) - 0.055)
|
|
32
|
-
: 12.92 * c);
|
|
33
|
-
const oklab2xyz = (lab) => {
|
|
34
|
-
const LMSg = multiplyMatrices([
|
|
35
|
-
1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586,
|
|
36
|
-
-0.0638541728258133, 1, -0.0894841775298119, -1.2914855480194092,
|
|
37
|
-
], lab);
|
|
38
|
-
const LMS = LMSg.map((val) => val ** 3);
|
|
39
|
-
return multiplyMatrices([
|
|
40
|
-
1.2268798758459243, -0.5578149944602171, 0.2813910456659647,
|
|
41
|
-
-0.0405757452148008, 1.112286803280317, -0.0717110580655164,
|
|
42
|
-
-0.0763729366746601, -0.4214933324022432, 1.5869240198367816,
|
|
43
|
-
], LMS);
|
|
44
|
-
};
|
|
45
|
-
const xyz2oklab = (xyz) => {
|
|
46
|
-
const LMS = multiplyMatrices([
|
|
47
|
-
0.819022437996703, 0.3619062600528904, -0.1288737815209879,
|
|
48
|
-
0.0329836539323885, 0.9292868615863434, 0.0361446663506424,
|
|
49
|
-
0.0481771893596242, 0.2642395317527308, 0.6335478284694309,
|
|
50
|
-
], xyz);
|
|
51
|
-
const LMSg = LMS.map((val) => Math.cbrt(val));
|
|
52
|
-
return multiplyMatrices([
|
|
53
|
-
0.210454268309314, 0.7936177747023054, -0.0040720430116193,
|
|
54
|
-
1.9779985324311684, -2.4285922420485799, 0.450593709617411,
|
|
55
|
-
0.0259040424655478, 0.7827717124575296, -0.8086757549230774,
|
|
56
|
-
], LMSg);
|
|
57
|
-
};
|
|
58
|
-
const xyz2rgbLinear = (xyz) => {
|
|
59
|
-
return multiplyMatrices([
|
|
60
|
-
3.2409699419045226, -1.537383177570094, -0.4986107602930034,
|
|
61
|
-
-0.9692436362808796, 1.8759675015077202, 0.04155505740717559,
|
|
62
|
-
0.05563007969699366, -0.20397695888897652, 1.0569715142428786,
|
|
63
|
-
], xyz);
|
|
64
|
-
};
|
|
65
|
-
const rgbLinear2xyz = (rgb) => {
|
|
66
|
-
return multiplyMatrices([
|
|
67
|
-
0.41239079926595934, 0.357584339383878, 0.1804807884018343,
|
|
68
|
-
0.21263900587151027, 0.715168678767756, 0.07219231536073371,
|
|
69
|
-
0.01933081871559182, 0.11919477979462598, 0.9505321522496607,
|
|
70
|
-
], rgb);
|
|
71
|
-
};
|
|
72
|
-
function rgb2Hex([r, g, b]) {
|
|
73
|
-
return ('#' +
|
|
74
|
-
[r, g, b]
|
|
75
|
-
.map((x) => {
|
|
76
|
-
if (x > 1) {
|
|
77
|
-
x = 1;
|
|
78
|
-
}
|
|
79
|
-
else if (x < 0) {
|
|
80
|
-
x = 0;
|
|
81
|
-
}
|
|
82
|
-
return Math.round(x * 255)
|
|
83
|
-
.toString(16)
|
|
84
|
-
.padStart(2, '0');
|
|
85
|
-
})
|
|
86
|
-
.join(''));
|
|
87
|
-
}
|
|
88
|
-
const oklch2rgb = (lch) => srgbLinear2rgb(xyz2rgbLinear(oklab2xyz(oklch2oklab(lch))));
|
|
89
|
-
exports.oklch2rgb = oklch2rgb;
|
|
90
|
-
const rgb2oklch = (rgb) => oklab2oklch(xyz2oklab(rgbLinear2xyz(rgb2srgbLinear(rgb))));
|
|
91
|
-
exports.rgb2oklch = rgb2oklch;
|
|
92
|
-
const oklch2hex = (l, c, h) => {
|
|
93
|
-
return rgb2Hex((0, exports.oklch2rgb)([l, c, h]));
|
|
94
|
-
};
|
|
95
|
-
exports.oklch2hex = oklch2hex;
|
|
96
|
-
//# sourceMappingURL=oklch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oklch.js","sourceRoot":"","sources":["../../../../src/uno/logic/oklch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// @unocss-include
|
|
2
|
-
function clampByte(value) {
|
|
3
|
-
return Math.min(255, Math.max(0, Math.round(value)));
|
|
4
|
-
}
|
|
5
|
-
const multiplyMatrices = (A, B) => {
|
|
6
|
-
return [
|
|
7
|
-
A[0] * B[0] + A[1] * B[1] + A[2] * B[2],
|
|
8
|
-
A[3] * B[0] + A[4] * B[1] + A[5] * B[2],
|
|
9
|
-
A[6] * B[0] + A[7] * B[1] + A[8] * B[2],
|
|
10
|
-
];
|
|
11
|
-
};
|
|
12
|
-
const oklch2oklab = ([l, c, h]) => [
|
|
13
|
-
l,
|
|
14
|
-
isNaN(h) ? 0 : c * Math.cos((h * Math.PI) / 180),
|
|
15
|
-
isNaN(h) ? 0 : c * Math.sin((h * Math.PI) / 180),
|
|
16
|
-
];
|
|
17
|
-
const oklab2oklch = ([l, a, b]) => [
|
|
18
|
-
l,
|
|
19
|
-
Math.sqrt(a ** 2 + b ** 2),
|
|
20
|
-
Math.abs(a) < 0.0002 && Math.abs(b) < 0.0002
|
|
21
|
-
? NaN
|
|
22
|
-
: ((((Math.atan2(b, a) * 180) / Math.PI) % 360) + 360) % 360,
|
|
23
|
-
];
|
|
24
|
-
const rgb2srgbLinear = (rgb) => rgb.map((c) => Math.abs(c) <= 0.04045
|
|
25
|
-
? c / 12.92
|
|
26
|
-
: (c < 0 ? -1 : 1) * ((Math.abs(c) + 0.055) / 1.055) ** 2.4);
|
|
27
|
-
const srgbLinear2rgb = (rgb) => rgb.map((c) => Math.abs(c) > 0.0031308
|
|
28
|
-
? (c < 0 ? -1 : 1) * (1.055 * Math.abs(c) ** (1 / 2.4) - 0.055)
|
|
29
|
-
: 12.92 * c);
|
|
30
|
-
const oklab2xyz = (lab) => {
|
|
31
|
-
const LMSg = multiplyMatrices([
|
|
32
|
-
1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586,
|
|
33
|
-
-0.0638541728258133, 1, -0.0894841775298119, -1.2914855480194092,
|
|
34
|
-
], lab);
|
|
35
|
-
const LMS = LMSg.map((val) => val ** 3);
|
|
36
|
-
return multiplyMatrices([
|
|
37
|
-
1.2268798758459243, -0.5578149944602171, 0.2813910456659647,
|
|
38
|
-
-0.0405757452148008, 1.112286803280317, -0.0717110580655164,
|
|
39
|
-
-0.0763729366746601, -0.4214933324022432, 1.5869240198367816,
|
|
40
|
-
], LMS);
|
|
41
|
-
};
|
|
42
|
-
const xyz2oklab = (xyz) => {
|
|
43
|
-
const LMS = multiplyMatrices([
|
|
44
|
-
0.819022437996703, 0.3619062600528904, -0.1288737815209879,
|
|
45
|
-
0.0329836539323885, 0.9292868615863434, 0.0361446663506424,
|
|
46
|
-
0.0481771893596242, 0.2642395317527308, 0.6335478284694309,
|
|
47
|
-
], xyz);
|
|
48
|
-
const LMSg = LMS.map((val) => Math.cbrt(val));
|
|
49
|
-
return multiplyMatrices([
|
|
50
|
-
0.210454268309314, 0.7936177747023054, -0.0040720430116193,
|
|
51
|
-
1.9779985324311684, -2.4285922420485799, 0.450593709617411,
|
|
52
|
-
0.0259040424655478, 0.7827717124575296, -0.8086757549230774,
|
|
53
|
-
], LMSg);
|
|
54
|
-
};
|
|
55
|
-
const xyz2rgbLinear = (xyz) => {
|
|
56
|
-
return multiplyMatrices([
|
|
57
|
-
3.2409699419045226, -1.537383177570094, -0.4986107602930034,
|
|
58
|
-
-0.9692436362808796, 1.8759675015077202, 0.04155505740717559,
|
|
59
|
-
0.05563007969699366, -0.20397695888897652, 1.0569715142428786,
|
|
60
|
-
], xyz);
|
|
61
|
-
};
|
|
62
|
-
const rgbLinear2xyz = (rgb) => {
|
|
63
|
-
return multiplyMatrices([
|
|
64
|
-
0.41239079926595934, 0.357584339383878, 0.1804807884018343,
|
|
65
|
-
0.21263900587151027, 0.715168678767756, 0.07219231536073371,
|
|
66
|
-
0.01933081871559182, 0.11919477979462598, 0.9505321522496607,
|
|
67
|
-
], rgb);
|
|
68
|
-
};
|
|
69
|
-
function rgb2Hex([r, g, b]) {
|
|
70
|
-
return ('#' +
|
|
71
|
-
[r, g, b]
|
|
72
|
-
.map((x) => {
|
|
73
|
-
if (x > 1) {
|
|
74
|
-
x = 1;
|
|
75
|
-
}
|
|
76
|
-
else if (x < 0) {
|
|
77
|
-
x = 0;
|
|
78
|
-
}
|
|
79
|
-
return Math.round(x * 255)
|
|
80
|
-
.toString(16)
|
|
81
|
-
.padStart(2, '0');
|
|
82
|
-
})
|
|
83
|
-
.join(''));
|
|
84
|
-
}
|
|
85
|
-
export const oklch2rgb = (lch) => srgbLinear2rgb(xyz2rgbLinear(oklab2xyz(oklch2oklab(lch))));
|
|
86
|
-
export const rgb2oklch = (rgb) => oklab2oklch(xyz2oklab(rgbLinear2xyz(rgb2srgbLinear(rgb))));
|
|
87
|
-
export const oklch2hex = (l, c, h) => {
|
|
88
|
-
return rgb2Hex(oklch2rgb([l, c, h]));
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=oklch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oklch.js","sourceRoot":"","sources":["../../../../src/uno/logic/oklch.ts"],"names":[],"mappings":"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"}
|
package/src/uno/logic/oklch.ts
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
function clampByte(value: number) {
|
|
2
|
-
return Math.min(255, Math.max(0, Math.round(value)));
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
const multiplyMatrices = (A: number[], B: number[]) => {
|
|
6
|
-
return [
|
|
7
|
-
A[0] * B[0] + A[1] * B[1] + A[2] * B[2],
|
|
8
|
-
A[3] * B[0] + A[4] * B[1] + A[5] * B[2],
|
|
9
|
-
A[6] * B[0] + A[7] * B[1] + A[8] * B[2],
|
|
10
|
-
];
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const oklch2oklab = ([l, c, h]: number[]) => [
|
|
14
|
-
l,
|
|
15
|
-
isNaN(h) ? 0 : c * Math.cos((h * Math.PI) / 180),
|
|
16
|
-
isNaN(h) ? 0 : c * Math.sin((h * Math.PI) / 180),
|
|
17
|
-
];
|
|
18
|
-
const oklab2oklch = ([l, a, b]: number[]) => [
|
|
19
|
-
l,
|
|
20
|
-
Math.sqrt(a ** 2 + b ** 2),
|
|
21
|
-
Math.abs(a) < 0.0002 && Math.abs(b) < 0.0002
|
|
22
|
-
? NaN
|
|
23
|
-
: ((((Math.atan2(b, a) * 180) / Math.PI) % 360) + 360) % 360,
|
|
24
|
-
];
|
|
25
|
-
|
|
26
|
-
const rgb2srgbLinear = (rgb: number[]) =>
|
|
27
|
-
rgb.map((c) =>
|
|
28
|
-
Math.abs(c) <= 0.04045
|
|
29
|
-
? c / 12.92
|
|
30
|
-
: (c < 0 ? -1 : 1) * ((Math.abs(c) + 0.055) / 1.055) ** 2.4,
|
|
31
|
-
);
|
|
32
|
-
const srgbLinear2rgb = (rgb: number[]) =>
|
|
33
|
-
rgb.map((c) =>
|
|
34
|
-
Math.abs(c) > 0.0031308
|
|
35
|
-
? (c < 0 ? -1 : 1) * (1.055 * Math.abs(c) ** (1 / 2.4) - 0.055)
|
|
36
|
-
: 12.92 * c,
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
const oklab2xyz = (lab: number[]) => {
|
|
40
|
-
const LMSg = multiplyMatrices(
|
|
41
|
-
[
|
|
42
|
-
1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586,
|
|
43
|
-
-0.0638541728258133, 1, -0.0894841775298119, -1.2914855480194092,
|
|
44
|
-
],
|
|
45
|
-
lab,
|
|
46
|
-
);
|
|
47
|
-
const LMS = LMSg.map((val) => val ** 3);
|
|
48
|
-
return multiplyMatrices(
|
|
49
|
-
[
|
|
50
|
-
1.2268798758459243, -0.5578149944602171, 0.2813910456659647,
|
|
51
|
-
-0.0405757452148008, 1.112286803280317, -0.0717110580655164,
|
|
52
|
-
-0.0763729366746601, -0.4214933324022432, 1.5869240198367816,
|
|
53
|
-
],
|
|
54
|
-
LMS,
|
|
55
|
-
);
|
|
56
|
-
};
|
|
57
|
-
const xyz2oklab = (xyz: number[]) => {
|
|
58
|
-
const LMS = multiplyMatrices(
|
|
59
|
-
[
|
|
60
|
-
0.819022437996703, 0.3619062600528904, -0.1288737815209879,
|
|
61
|
-
0.0329836539323885, 0.9292868615863434, 0.0361446663506424,
|
|
62
|
-
0.0481771893596242, 0.2642395317527308, 0.6335478284694309,
|
|
63
|
-
],
|
|
64
|
-
xyz,
|
|
65
|
-
);
|
|
66
|
-
const LMSg = LMS.map((val) => Math.cbrt(val));
|
|
67
|
-
return multiplyMatrices(
|
|
68
|
-
[
|
|
69
|
-
0.210454268309314, 0.7936177747023054, -0.0040720430116193,
|
|
70
|
-
1.9779985324311684, -2.4285922420485799, 0.450593709617411,
|
|
71
|
-
0.0259040424655478, 0.7827717124575296, -0.8086757549230774,
|
|
72
|
-
],
|
|
73
|
-
LMSg,
|
|
74
|
-
);
|
|
75
|
-
};
|
|
76
|
-
const xyz2rgbLinear = (xyz: number[]) => {
|
|
77
|
-
return multiplyMatrices(
|
|
78
|
-
[
|
|
79
|
-
3.2409699419045226, -1.537383177570094, -0.4986107602930034,
|
|
80
|
-
-0.9692436362808796, 1.8759675015077202, 0.04155505740717559,
|
|
81
|
-
0.05563007969699366, -0.20397695888897652, 1.0569715142428786,
|
|
82
|
-
],
|
|
83
|
-
xyz,
|
|
84
|
-
);
|
|
85
|
-
};
|
|
86
|
-
const rgbLinear2xyz = (rgb: number[]) => {
|
|
87
|
-
return multiplyMatrices(
|
|
88
|
-
[
|
|
89
|
-
0.41239079926595934, 0.357584339383878, 0.1804807884018343,
|
|
90
|
-
0.21263900587151027, 0.715168678767756, 0.07219231536073371,
|
|
91
|
-
0.01933081871559182, 0.11919477979462598, 0.9505321522496607,
|
|
92
|
-
],
|
|
93
|
-
rgb,
|
|
94
|
-
);
|
|
95
|
-
};
|
|
96
|
-
function rgb2Hex([r, g, b]: number[]): string {
|
|
97
|
-
return (
|
|
98
|
-
'#' +
|
|
99
|
-
[r, g, b]
|
|
100
|
-
.map((x) => {
|
|
101
|
-
if (x > 1) {
|
|
102
|
-
x = 1;
|
|
103
|
-
} else if (x < 0) {
|
|
104
|
-
x = 0;
|
|
105
|
-
}
|
|
106
|
-
return Math.round(x * 255)
|
|
107
|
-
.toString(16)
|
|
108
|
-
.padStart(2, '0');
|
|
109
|
-
})
|
|
110
|
-
.join('')
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export const oklch2rgb = (lch: number[]) =>
|
|
115
|
-
srgbLinear2rgb(xyz2rgbLinear(oklab2xyz(oklch2oklab(lch))));
|
|
116
|
-
export const rgb2oklch = (rgb: number[]) =>
|
|
117
|
-
oklab2oklch(xyz2oklab(rgbLinear2xyz(rgb2srgbLinear(rgb))));
|
|
118
|
-
export const oklch2hex = (l: number, c: number, h: number): string => {
|
|
119
|
-
return rgb2Hex(oklch2rgb([l, c, h]));
|
|
120
|
-
};
|