@udixio/theme 2.1.17 → 2.1.19
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/CHANGELOG.md +22 -0
- package/dist/bin.cjs +1 -1
- package/dist/bin.js +1 -1
- package/dist/browser.cjs +10 -7
- package/dist/browser.js +12 -9
- package/dist/config/config.interface.d.ts +3 -1
- package/dist/config/config.interface.d.ts.map +1 -1
- package/dist/context/context.d.ts +3 -1
- package/dist/context/context.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/{load-from-path-CuZeSC9R.cjs → load-from-path-CuBpH2Cs.cjs} +2 -2
- package/dist/{load-from-path-IJo3DMek.js → load-from-path-CvD4a_os.js} +1 -1
- package/dist/{loader-COk_13QK.cjs → loader-BN_VoxCd.cjs} +71 -5
- package/dist/{loader-DPnknsVo.js → loader-J0nrh600.js} +78 -12
- package/dist/material-color-utilities/index.d.ts +1 -0
- package/dist/material-color-utilities/index.d.ts.map +1 -1
- package/dist/node.cjs +11 -8
- package/dist/node.js +14 -11
- package/dist/palette/palette.api.d.ts +6 -0
- package/dist/palette/palette.api.d.ts.map +1 -1
- package/dist/palette/palette.d.ts +1 -0
- package/dist/palette/palette.d.ts.map +1 -1
- package/dist/palette/palette.manager.d.ts +2 -0
- package/dist/palette/palette.manager.d.ts.map +1 -1
- package/dist/{font.plugin-CE1jX3iF.js → serialize-BlsUXsgT.js} +13 -2
- package/dist/{font.plugin-DKvzB0yr.cjs → serialize-NWi8E_Ms.cjs} +12 -1
- package/dist/serialize.d.ts +17 -0
- package/dist/serialize.d.ts.map +1 -0
- package/dist/variant/variants/index.d.ts +1 -0
- package/dist/variant/variants/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config/config.interface.ts +3 -2
- package/src/context/context.ts +8 -1
- package/src/index.ts +1 -0
- package/src/material-color-utilities/index.ts +1 -0
- package/src/palette/palette.api.ts +28 -0
- package/src/palette/palette.manager.ts +28 -4
- package/src/palette/palette.ts +9 -0
- package/src/serialize.ts +20 -0
- package/src/variant/variants/index.ts +8 -0
- package/src/variant/variants/udixio.variant.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
## 2.1.19 (2026-04-09)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **theme:** add worker-based CSS generation and theme serialization ([14af45b](https://github.com/Udixio/UI/commit/14af45b))
|
|
6
|
+
- **theme:** export `htc` from material-color-utilities ([f100207](https://github.com/Udixio/UI/commit/f100207))
|
|
7
|
+
- **theme:** enhance palette management with callbacks, overrides, and synchronization ([d404896](https://github.com/Udixio/UI/commit/d404896))
|
|
8
|
+
|
|
9
|
+
### ❤️ Thank You
|
|
10
|
+
|
|
11
|
+
- Joël VIGREUX
|
|
12
|
+
|
|
13
|
+
## 2.1.18 (2026-03-22)
|
|
14
|
+
|
|
15
|
+
### 🚀 Features
|
|
16
|
+
|
|
17
|
+
- **theme:** enhance `sourceColor` flexibility and improve context handling ([9bb6068](https://github.com/Udixio/UI/commit/9bb6068))
|
|
18
|
+
|
|
19
|
+
### ❤️ Thank You
|
|
20
|
+
|
|
21
|
+
- Joël VIGREUX
|
|
22
|
+
|
|
1
23
|
## 2.1.17 (2026-03-20)
|
|
2
24
|
|
|
3
25
|
### 🩹 Fixes
|
package/dist/bin.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const commander = require("commander");
|
|
3
3
|
const chokidar = require("chokidar");
|
|
4
4
|
const chalk = require("chalk");
|
|
5
|
-
const loadFromPath = require("./load-from-path-
|
|
5
|
+
const loadFromPath = require("./load-from-path-CuBpH2Cs.cjs");
|
|
6
6
|
const program = new commander.Command();
|
|
7
7
|
async function runOnce(configPath) {
|
|
8
8
|
try {
|
package/dist/bin.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import chokidar from "chokidar";
|
|
3
3
|
import chalk from "chalk";
|
|
4
|
-
import { l as loadFromPath } from "./load-from-path-
|
|
4
|
+
import { l as loadFromPath } from "./load-from-path-CvD4a_os.js";
|
|
5
5
|
const program = new Command();
|
|
6
6
|
async function runOnce(configPath) {
|
|
7
7
|
try {
|
package/dist/browser.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const loader = require("./loader-
|
|
4
|
-
const
|
|
3
|
+
const loader = require("./loader-BN_VoxCd.cjs");
|
|
4
|
+
const serialize = require("./serialize-NWi8E_Ms.cjs");
|
|
5
5
|
exports.API = loader.API;
|
|
6
6
|
exports.AppContainer = loader.AppContainer;
|
|
7
7
|
exports.AppModule = loader.AppModule;
|
|
@@ -16,6 +16,7 @@ exports.Context = loader.Context;
|
|
|
16
16
|
exports.ContextModule = loader.ContextModule;
|
|
17
17
|
exports.ContrastCurve = loader.ContrastCurve;
|
|
18
18
|
exports.DynamicColor = loader.DynamicColor;
|
|
19
|
+
exports.Hct = loader.Hct;
|
|
19
20
|
exports.Palette = loader.Palette;
|
|
20
21
|
exports.PaletteApi = loader.PaletteApi;
|
|
21
22
|
exports.PaletteModule = loader.PaletteModule;
|
|
@@ -30,6 +31,7 @@ exports.expressiveVariant = loader.expressiveVariant;
|
|
|
30
31
|
exports.getInitialToneFromBackground = loader.getInitialToneFromBackground;
|
|
31
32
|
exports.getPiecewiseHue = loader.getPiecewiseHue;
|
|
32
33
|
exports.getRotatedHue = loader.getRotatedHue;
|
|
34
|
+
exports.getVariantByName = loader.getVariantByName;
|
|
33
35
|
exports.highestSurface = loader.highestSurface;
|
|
34
36
|
exports.loader = loader.loader;
|
|
35
37
|
exports.neutralVariant = loader.neutralVariant;
|
|
@@ -37,8 +39,9 @@ exports.tonalSpotVariant = loader.tonalSpotVariant;
|
|
|
37
39
|
exports.toneDeltaPair = loader.toneDeltaPair;
|
|
38
40
|
exports.variant = loader.variant;
|
|
39
41
|
exports.vibrantVariant = loader.vibrantVariant;
|
|
40
|
-
exports.FontFamily =
|
|
41
|
-
exports.FontPlugin =
|
|
42
|
-
exports.PluginAbstract =
|
|
43
|
-
exports.PluginImplAbstract =
|
|
44
|
-
exports.defineConfig =
|
|
42
|
+
exports.FontFamily = serialize.FontFamily;
|
|
43
|
+
exports.FontPlugin = serialize.FontPlugin;
|
|
44
|
+
exports.PluginAbstract = serialize.PluginAbstract;
|
|
45
|
+
exports.PluginImplAbstract = serialize.PluginImplAbstract;
|
|
46
|
+
exports.defineConfig = serialize.defineConfig;
|
|
47
|
+
exports.serializeThemeContext = serialize.serializeThemeContext;
|
package/dist/browser.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A, a, b, C, c, d, e, f, g, h, i, j, k, D, P, l, m, n, o, V, p, q, r, s, t, u, v, w, x, y, z, B, E, F, G } from "./loader-
|
|
2
|
-
import { F as F2, a as a2, P as P2, b as b2, d as d2 } from "./
|
|
1
|
+
import { A, a, b, C, c, d, e, f, g, h, i, j, k, D, H, P, l, m, n, o, V, p, q, r, s, t, u, v, w, x, y, z, B, E, F, G, I } from "./loader-J0nrh600.js";
|
|
2
|
+
import { F as F2, a as a2, P as P2, b as b2, d as d2, s as s2 } from "./serialize-BlsUXsgT.js";
|
|
3
3
|
export {
|
|
4
4
|
A as API,
|
|
5
5
|
a as AppContainer,
|
|
@@ -17,6 +17,7 @@ export {
|
|
|
17
17
|
D as DynamicColor,
|
|
18
18
|
F2 as FontFamily,
|
|
19
19
|
a2 as FontPlugin,
|
|
20
|
+
H as Hct,
|
|
20
21
|
P as Palette,
|
|
21
22
|
l as PaletteApi,
|
|
22
23
|
m as PaletteModule,
|
|
@@ -34,11 +35,13 @@ export {
|
|
|
34
35
|
u as getInitialToneFromBackground,
|
|
35
36
|
v as getPiecewiseHue,
|
|
36
37
|
w as getRotatedHue,
|
|
37
|
-
x as
|
|
38
|
-
y as
|
|
39
|
-
z as
|
|
40
|
-
B as
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
x as getVariantByName,
|
|
39
|
+
y as highestSurface,
|
|
40
|
+
z as loader,
|
|
41
|
+
B as neutralVariant,
|
|
42
|
+
s2 as serializeThemeContext,
|
|
43
|
+
E as tonalSpotVariant,
|
|
44
|
+
F as toneDeltaPair,
|
|
45
|
+
G as variant,
|
|
46
|
+
I as vibrantVariant
|
|
44
47
|
};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { AddColorsOptions } from '../color';
|
|
2
|
+
import { Hct } from '../material-color-utilities/htc';
|
|
2
3
|
import { PluginAbstract } from '../plugin';
|
|
3
4
|
import { Variant } from '../variant/variant';
|
|
4
5
|
import { PaletteCallback } from '../palette/palette';
|
|
6
|
+
import { Context } from '../context';
|
|
5
7
|
export interface ConfigInterface {
|
|
6
|
-
sourceColor: string;
|
|
8
|
+
sourceColor: string | Hct | ((context: Context) => string | Hct);
|
|
7
9
|
contrastLevel?: number;
|
|
8
10
|
isDark?: boolean;
|
|
9
11
|
variant?: Variant;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.interface.d.ts","sourceRoot":"","sources":["../../src/config/config.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"config.interface.d.ts","sourceRoot":"","sources":["../../src/config/config.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,GAAG,CAAC,CAAC;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CACtC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Hct } from '../material-color-utilities/htc';
|
|
2
2
|
import { Variant } from '../variant/variant';
|
|
3
|
+
import { ConfigInterface } from '../config';
|
|
3
4
|
export interface ContextOptions {
|
|
4
|
-
sourceColor:
|
|
5
|
+
sourceColor: ConfigInterface['sourceColor'] | Hct;
|
|
5
6
|
contrastLevel: number;
|
|
6
7
|
isDark: boolean;
|
|
7
8
|
variant: Variant;
|
|
@@ -33,6 +34,7 @@ export declare class Context {
|
|
|
33
34
|
get contrastLevel(): number;
|
|
34
35
|
set sourceColor(sourceColor: string);
|
|
35
36
|
get sourceColor(): Hct;
|
|
37
|
+
get rawSourceColor(): ContextOptions['sourceColor'];
|
|
36
38
|
set variant(variant: Variant);
|
|
37
39
|
get variant(): Variant;
|
|
38
40
|
temp<T>(args: Partial<ContextOptions>, callback: () => T): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAEzB;;IAUP;;;;;;;;OAQG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,EACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,GAC5B;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,YAAY,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,CAAA;KAAE;IAsBjD,GAAG,CAAC,OAAO,EAAE,cAAc;IAoBpB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC;IA4B3C,OAAO,CAAC,UAAU;IAalB,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAE3B;IACD,IAAI,MAAM,YAET;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,EAEtC;IACD,IAAI,aAAa,IAHgB,MAAM,CAKtC;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAElC;IACD,IAAI,WAAW,IAAI,GAAG,CASrB;IACD,IAAI,cAAc,IAAI,cAAc,CAAC,aAAa,CAAC,CAElD;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAE3B;IACD,IAAI,OAAO,IAHU,OAAO,CAK3B;IAED,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAW5D,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,KAAK,IAAI,GAAG,IAAI;CAG/D"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
@@ -21,7 +21,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
21
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
22
|
mod
|
|
23
23
|
));
|
|
24
|
-
const loader = require("./loader-
|
|
24
|
+
const loader = require("./loader-BN_VoxCd.cjs");
|
|
25
25
|
const fs = require("node:fs");
|
|
26
26
|
var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
27
27
|
function _interopNamespaceDefault(e) {
|
|
@@ -44,7 +44,7 @@ const fs__namespace = /* @__PURE__ */ _interopNamespaceDefault(fs);
|
|
|
44
44
|
async function resolveConfig(configPath = "./theme.config") {
|
|
45
45
|
const { createJiti } = await import("jiti");
|
|
46
46
|
const { resolve } = await import("pathe");
|
|
47
|
-
const jiti = createJiti(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("load-from-path-
|
|
47
|
+
const jiti = createJiti(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("load-from-path-CuBpH2Cs.cjs", document.baseURI).href, {
|
|
48
48
|
debug: process.env.NODE_ENV === "development",
|
|
49
49
|
fsCache: true,
|
|
50
50
|
interopDefault: true
|
|
@@ -2591,11 +2591,17 @@ class Context {
|
|
|
2591
2591
|
}
|
|
2592
2592
|
get sourceColor() {
|
|
2593
2593
|
let sourceColor = this.getOptions().sourceColor;
|
|
2594
|
+
if (typeof sourceColor == "function") {
|
|
2595
|
+
sourceColor = sourceColor(this);
|
|
2596
|
+
}
|
|
2594
2597
|
if (typeof sourceColor === "string") {
|
|
2595
2598
|
sourceColor = Hct.fromInt(materialColorUtilities.argbFromHex(sourceColor));
|
|
2596
2599
|
}
|
|
2597
2600
|
return sourceColor;
|
|
2598
2601
|
}
|
|
2602
|
+
get rawSourceColor() {
|
|
2603
|
+
return this.getOptions().sourceColor;
|
|
2604
|
+
}
|
|
2599
2605
|
set variant(variant2) {
|
|
2600
2606
|
this.update({ variant: variant2 });
|
|
2601
2607
|
}
|
|
@@ -2657,6 +2663,14 @@ class Palette {
|
|
|
2657
2663
|
this.chromaCache = result.chroma;
|
|
2658
2664
|
}
|
|
2659
2665
|
}
|
|
2666
|
+
setCallback(callback) {
|
|
2667
|
+
this.callback = callback;
|
|
2668
|
+
this.dependencies = null;
|
|
2669
|
+
this.cache.clear();
|
|
2670
|
+
this.hueCache = null;
|
|
2671
|
+
this.chromaCache = null;
|
|
2672
|
+
this.update([]);
|
|
2673
|
+
}
|
|
2660
2674
|
clearCache() {
|
|
2661
2675
|
this.cache.clear();
|
|
2662
2676
|
this.hueCache = null;
|
|
@@ -2733,6 +2747,31 @@ class PaletteApi {
|
|
|
2733
2747
|
}
|
|
2734
2748
|
});
|
|
2735
2749
|
}
|
|
2750
|
+
override(args) {
|
|
2751
|
+
Object.entries(args).forEach(([key, callback]) => {
|
|
2752
|
+
if (typeof callback === "string") {
|
|
2753
|
+
this.paletteManager.override(key, Hct.fromInt(materialColorUtilities.argbFromHex(callback)));
|
|
2754
|
+
} else {
|
|
2755
|
+
this.paletteManager.override(key, callback);
|
|
2756
|
+
}
|
|
2757
|
+
});
|
|
2758
|
+
}
|
|
2759
|
+
getSerializableState() {
|
|
2760
|
+
const result = {};
|
|
2761
|
+
for (const [key, palette] of Object.entries(this.paletteManager._palettes)) {
|
|
2762
|
+
result[key] = { hue: palette.hue, chroma: palette.chroma };
|
|
2763
|
+
}
|
|
2764
|
+
return result;
|
|
2765
|
+
}
|
|
2766
|
+
sync(args) {
|
|
2767
|
+
const incoming = new Set(Object.keys(args ?? {}));
|
|
2768
|
+
Object.keys(this.paletteManager._palettes).forEach((key) => {
|
|
2769
|
+
if (!incoming.has(key)) {
|
|
2770
|
+
this.paletteManager.remove(key);
|
|
2771
|
+
}
|
|
2772
|
+
});
|
|
2773
|
+
if (args) this.override(args);
|
|
2774
|
+
}
|
|
2736
2775
|
get(key) {
|
|
2737
2776
|
return this.paletteManager.get(key);
|
|
2738
2777
|
}
|
|
@@ -2788,13 +2827,31 @@ class PaletteManager {
|
|
|
2788
2827
|
this._palettes[key] = palette;
|
|
2789
2828
|
}
|
|
2790
2829
|
update(key, args) {
|
|
2791
|
-
|
|
2830
|
+
const existing = this._palettes[key];
|
|
2831
|
+
if (!existing) {
|
|
2792
2832
|
throw new Error(`Palette with key ${key} not found`);
|
|
2793
2833
|
}
|
|
2794
|
-
if (
|
|
2795
|
-
|
|
2834
|
+
if (args instanceof Palette) {
|
|
2835
|
+
this.set(key, args);
|
|
2836
|
+
} else {
|
|
2837
|
+
existing.setCallback(args);
|
|
2838
|
+
}
|
|
2839
|
+
}
|
|
2840
|
+
remove(key) {
|
|
2841
|
+
delete this._palettes[key];
|
|
2842
|
+
}
|
|
2843
|
+
override(key, args) {
|
|
2844
|
+
const callback = args instanceof Hct ? (context) => context.variant.customPalettes(context, args) : args;
|
|
2845
|
+
if (this._palettes[key]) {
|
|
2846
|
+
this.update(key, callback);
|
|
2847
|
+
} else {
|
|
2848
|
+
const palette = new Palette(key, callback, this.context);
|
|
2849
|
+
this.set(key, palette);
|
|
2850
|
+
const isVariantPalette = !!this.context.variant.palettes[key];
|
|
2851
|
+
if (!isVariantPalette) {
|
|
2852
|
+
this.colorApi.addFromCustomPalette(key);
|
|
2853
|
+
}
|
|
2796
2854
|
}
|
|
2797
|
-
this.set(key, args);
|
|
2798
2855
|
}
|
|
2799
2856
|
}
|
|
2800
2857
|
const PaletteModule = {
|
|
@@ -3101,7 +3158,7 @@ const highestSurface = (context, colorService) => {
|
|
|
3101
3158
|
};
|
|
3102
3159
|
const createMinContrastToneAdjuster = (ctx, colors, options) => {
|
|
3103
3160
|
const { selfKey, referenceKey } = options;
|
|
3104
|
-
const minContrast = ctx.contrastLevel >= 0 ? normalize(ctx.contrastLevel, [0, 1], [
|
|
3161
|
+
const minContrast = ctx.contrastLevel >= 0 ? normalize(ctx.contrastLevel, [0, 1], [3, 7]) : normalize(ctx.contrastLevel, [-1, 0], [0, 3]);
|
|
3105
3162
|
const referenceTone = referenceKey ? colors.get(referenceKey).getTone() : highestSurface(ctx, colors).getTone();
|
|
3106
3163
|
const baseTone = colors.get(selfKey).options.tone;
|
|
3107
3164
|
let selfTone = baseTone;
|
|
@@ -3836,6 +3893,13 @@ const Variants = {
|
|
|
3836
3893
|
Vibrant: vibrantVariant,
|
|
3837
3894
|
Udixio: udixioVariant
|
|
3838
3895
|
};
|
|
3896
|
+
function getVariantByName(name) {
|
|
3897
|
+
const found = Object.values(Variants).find((v) => v.name === name);
|
|
3898
|
+
if (!found) {
|
|
3899
|
+
throw new Error(`Unknown variant: "${name}". Known: ${Object.values(Variants).map((v) => v.name).join(", ")}`);
|
|
3900
|
+
}
|
|
3901
|
+
return found;
|
|
3902
|
+
}
|
|
3839
3903
|
const loader = async (config, load = true) => {
|
|
3840
3904
|
const api = bootstrap();
|
|
3841
3905
|
const init = () => {
|
|
@@ -3887,6 +3951,7 @@ exports.Context = Context;
|
|
|
3887
3951
|
exports.ContextModule = ContextModule;
|
|
3888
3952
|
exports.ContrastCurve = ContrastCurve;
|
|
3889
3953
|
exports.DynamicColor = DynamicColor;
|
|
3954
|
+
exports.Hct = Hct;
|
|
3890
3955
|
exports.Palette = Palette;
|
|
3891
3956
|
exports.PaletteApi = PaletteApi;
|
|
3892
3957
|
exports.PaletteModule = PaletteModule;
|
|
@@ -3901,6 +3966,7 @@ exports.expressiveVariant = expressiveVariant;
|
|
|
3901
3966
|
exports.getInitialToneFromBackground = getInitialToneFromBackground;
|
|
3902
3967
|
exports.getPiecewiseHue = getPiecewiseHue;
|
|
3903
3968
|
exports.getRotatedHue = getRotatedHue;
|
|
3969
|
+
exports.getVariantByName = getVariantByName;
|
|
3904
3970
|
exports.highestSurface = highestSurface$1;
|
|
3905
3971
|
exports.loader = loader;
|
|
3906
3972
|
exports.neutralVariant = neutralVariant;
|
|
@@ -2590,11 +2590,17 @@ class Context {
|
|
|
2590
2590
|
}
|
|
2591
2591
|
get sourceColor() {
|
|
2592
2592
|
let sourceColor = this.getOptions().sourceColor;
|
|
2593
|
+
if (typeof sourceColor == "function") {
|
|
2594
|
+
sourceColor = sourceColor(this);
|
|
2595
|
+
}
|
|
2593
2596
|
if (typeof sourceColor === "string") {
|
|
2594
2597
|
sourceColor = Hct.fromInt(argbFromHex(sourceColor));
|
|
2595
2598
|
}
|
|
2596
2599
|
return sourceColor;
|
|
2597
2600
|
}
|
|
2601
|
+
get rawSourceColor() {
|
|
2602
|
+
return this.getOptions().sourceColor;
|
|
2603
|
+
}
|
|
2598
2604
|
set variant(variant2) {
|
|
2599
2605
|
this.update({ variant: variant2 });
|
|
2600
2606
|
}
|
|
@@ -2656,6 +2662,14 @@ class Palette {
|
|
|
2656
2662
|
this.chromaCache = result.chroma;
|
|
2657
2663
|
}
|
|
2658
2664
|
}
|
|
2665
|
+
setCallback(callback) {
|
|
2666
|
+
this.callback = callback;
|
|
2667
|
+
this.dependencies = null;
|
|
2668
|
+
this.cache.clear();
|
|
2669
|
+
this.hueCache = null;
|
|
2670
|
+
this.chromaCache = null;
|
|
2671
|
+
this.update([]);
|
|
2672
|
+
}
|
|
2659
2673
|
clearCache() {
|
|
2660
2674
|
this.cache.clear();
|
|
2661
2675
|
this.hueCache = null;
|
|
@@ -2732,6 +2746,31 @@ class PaletteApi {
|
|
|
2732
2746
|
}
|
|
2733
2747
|
});
|
|
2734
2748
|
}
|
|
2749
|
+
override(args) {
|
|
2750
|
+
Object.entries(args).forEach(([key, callback]) => {
|
|
2751
|
+
if (typeof callback === "string") {
|
|
2752
|
+
this.paletteManager.override(key, Hct.fromInt(argbFromHex(callback)));
|
|
2753
|
+
} else {
|
|
2754
|
+
this.paletteManager.override(key, callback);
|
|
2755
|
+
}
|
|
2756
|
+
});
|
|
2757
|
+
}
|
|
2758
|
+
getSerializableState() {
|
|
2759
|
+
const result = {};
|
|
2760
|
+
for (const [key, palette] of Object.entries(this.paletteManager._palettes)) {
|
|
2761
|
+
result[key] = { hue: palette.hue, chroma: palette.chroma };
|
|
2762
|
+
}
|
|
2763
|
+
return result;
|
|
2764
|
+
}
|
|
2765
|
+
sync(args) {
|
|
2766
|
+
const incoming = new Set(Object.keys(args ?? {}));
|
|
2767
|
+
Object.keys(this.paletteManager._palettes).forEach((key) => {
|
|
2768
|
+
if (!incoming.has(key)) {
|
|
2769
|
+
this.paletteManager.remove(key);
|
|
2770
|
+
}
|
|
2771
|
+
});
|
|
2772
|
+
if (args) this.override(args);
|
|
2773
|
+
}
|
|
2735
2774
|
get(key) {
|
|
2736
2775
|
return this.paletteManager.get(key);
|
|
2737
2776
|
}
|
|
@@ -2787,13 +2826,31 @@ class PaletteManager {
|
|
|
2787
2826
|
this._palettes[key] = palette;
|
|
2788
2827
|
}
|
|
2789
2828
|
update(key, args) {
|
|
2790
|
-
|
|
2829
|
+
const existing = this._palettes[key];
|
|
2830
|
+
if (!existing) {
|
|
2791
2831
|
throw new Error(`Palette with key ${key} not found`);
|
|
2792
2832
|
}
|
|
2793
|
-
if (
|
|
2794
|
-
|
|
2833
|
+
if (args instanceof Palette) {
|
|
2834
|
+
this.set(key, args);
|
|
2835
|
+
} else {
|
|
2836
|
+
existing.setCallback(args);
|
|
2837
|
+
}
|
|
2838
|
+
}
|
|
2839
|
+
remove(key) {
|
|
2840
|
+
delete this._palettes[key];
|
|
2841
|
+
}
|
|
2842
|
+
override(key, args) {
|
|
2843
|
+
const callback = args instanceof Hct ? (context) => context.variant.customPalettes(context, args) : args;
|
|
2844
|
+
if (this._palettes[key]) {
|
|
2845
|
+
this.update(key, callback);
|
|
2846
|
+
} else {
|
|
2847
|
+
const palette = new Palette(key, callback, this.context);
|
|
2848
|
+
this.set(key, palette);
|
|
2849
|
+
const isVariantPalette = !!this.context.variant.palettes[key];
|
|
2850
|
+
if (!isVariantPalette) {
|
|
2851
|
+
this.colorApi.addFromCustomPalette(key);
|
|
2852
|
+
}
|
|
2795
2853
|
}
|
|
2796
|
-
this.set(key, args);
|
|
2797
2854
|
}
|
|
2798
2855
|
}
|
|
2799
2856
|
const PaletteModule = {
|
|
@@ -3100,7 +3157,7 @@ const highestSurface = (context, colorService) => {
|
|
|
3100
3157
|
};
|
|
3101
3158
|
const createMinContrastToneAdjuster = (ctx, colors, options) => {
|
|
3102
3159
|
const { selfKey, referenceKey } = options;
|
|
3103
|
-
const minContrast = ctx.contrastLevel >= 0 ? normalize(ctx.contrastLevel, [0, 1], [
|
|
3160
|
+
const minContrast = ctx.contrastLevel >= 0 ? normalize(ctx.contrastLevel, [0, 1], [3, 7]) : normalize(ctx.contrastLevel, [-1, 0], [0, 3]);
|
|
3104
3161
|
const referenceTone = referenceKey ? colors.get(referenceKey).getTone() : highestSurface(ctx, colors).getTone();
|
|
3105
3162
|
const baseTone = colors.get(selfKey).options.tone;
|
|
3106
3163
|
let selfTone = baseTone;
|
|
@@ -3835,6 +3892,13 @@ const Variants = {
|
|
|
3835
3892
|
Vibrant: vibrantVariant,
|
|
3836
3893
|
Udixio: udixioVariant
|
|
3837
3894
|
};
|
|
3895
|
+
function getVariantByName(name) {
|
|
3896
|
+
const found = Object.values(Variants).find((v) => v.name === name);
|
|
3897
|
+
if (!found) {
|
|
3898
|
+
throw new Error(`Unknown variant: "${name}". Known: ${Object.values(Variants).map((v) => v.name).join(", ")}`);
|
|
3899
|
+
}
|
|
3900
|
+
return found;
|
|
3901
|
+
}
|
|
3838
3902
|
const loader = async (config, load = true) => {
|
|
3839
3903
|
const api = bootstrap();
|
|
3840
3904
|
const init = () => {
|
|
@@ -3874,12 +3938,14 @@ const loader = async (config, load = true) => {
|
|
|
3874
3938
|
};
|
|
3875
3939
|
export {
|
|
3876
3940
|
API as A,
|
|
3877
|
-
|
|
3941
|
+
neutralVariant as B,
|
|
3878
3942
|
Color as C,
|
|
3879
3943
|
DynamicColor as D,
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3944
|
+
tonalSpotVariant as E,
|
|
3945
|
+
toneDeltaPair as F,
|
|
3946
|
+
variant as G,
|
|
3947
|
+
Hct as H,
|
|
3948
|
+
vibrantVariant as I,
|
|
3883
3949
|
Palette as P,
|
|
3884
3950
|
Variant as V,
|
|
3885
3951
|
AppContainer as a,
|
|
@@ -3905,7 +3971,7 @@ export {
|
|
|
3905
3971
|
getInitialToneFromBackground as u,
|
|
3906
3972
|
getPiecewiseHue as v,
|
|
3907
3973
|
getRotatedHue as w,
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3974
|
+
getVariantByName as x,
|
|
3975
|
+
highestSurface$1 as y,
|
|
3976
|
+
loader as z
|
|
3911
3977
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material-color-utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/material-color-utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC"}
|
package/dist/node.cjs
CHANGED
|
@@ -22,9 +22,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
22
|
mod
|
|
23
23
|
));
|
|
24
24
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
25
|
-
const loader = require("./loader-
|
|
26
|
-
const
|
|
27
|
-
const loadFromPath = require("./load-from-path-
|
|
25
|
+
const loader = require("./loader-BN_VoxCd.cjs");
|
|
26
|
+
const serialize = require("./serialize-NWi8E_Ms.cjs");
|
|
27
|
+
const loadFromPath = require("./load-from-path-CuBpH2Cs.cjs");
|
|
28
28
|
let unpluginInstance = null;
|
|
29
29
|
const createUnpluginTheme = async () => {
|
|
30
30
|
if (unpluginInstance) {
|
|
@@ -161,6 +161,7 @@ exports.Context = loader.Context;
|
|
|
161
161
|
exports.ContextModule = loader.ContextModule;
|
|
162
162
|
exports.ContrastCurve = loader.ContrastCurve;
|
|
163
163
|
exports.DynamicColor = loader.DynamicColor;
|
|
164
|
+
exports.Hct = loader.Hct;
|
|
164
165
|
exports.Palette = loader.Palette;
|
|
165
166
|
exports.PaletteApi = loader.PaletteApi;
|
|
166
167
|
exports.PaletteModule = loader.PaletteModule;
|
|
@@ -175,6 +176,7 @@ exports.expressiveVariant = loader.expressiveVariant;
|
|
|
175
176
|
exports.getInitialToneFromBackground = loader.getInitialToneFromBackground;
|
|
176
177
|
exports.getPiecewiseHue = loader.getPiecewiseHue;
|
|
177
178
|
exports.getRotatedHue = loader.getRotatedHue;
|
|
179
|
+
exports.getVariantByName = loader.getVariantByName;
|
|
178
180
|
exports.highestSurface = loader.highestSurface;
|
|
179
181
|
exports.loader = loader.loader;
|
|
180
182
|
exports.neutralVariant = loader.neutralVariant;
|
|
@@ -182,11 +184,12 @@ exports.tonalSpotVariant = loader.tonalSpotVariant;
|
|
|
182
184
|
exports.toneDeltaPair = loader.toneDeltaPair;
|
|
183
185
|
exports.variant = loader.variant;
|
|
184
186
|
exports.vibrantVariant = loader.vibrantVariant;
|
|
185
|
-
exports.FontFamily =
|
|
186
|
-
exports.FontPlugin =
|
|
187
|
-
exports.PluginAbstract =
|
|
188
|
-
exports.PluginImplAbstract =
|
|
189
|
-
exports.defineConfig =
|
|
187
|
+
exports.FontFamily = serialize.FontFamily;
|
|
188
|
+
exports.FontPlugin = serialize.FontPlugin;
|
|
189
|
+
exports.PluginAbstract = serialize.PluginAbstract;
|
|
190
|
+
exports.PluginImplAbstract = serialize.PluginImplAbstract;
|
|
191
|
+
exports.defineConfig = serialize.defineConfig;
|
|
192
|
+
exports.serializeThemeContext = serialize.serializeThemeContext;
|
|
190
193
|
exports.loadFromPath = loadFromPath.loadFromPath;
|
|
191
194
|
exports.resolveConfig = loadFromPath.resolveConfig;
|
|
192
195
|
exports.esbuildPlugin = esbuildPlugin;
|
package/dist/node.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A, a, b, C, c, d, e, f, g, h, i, j, k, D, P, l, m, n, o, V, p, q, r, s, t, u, v, w, x, y, z, B, E, F, G } from "./loader-
|
|
2
|
-
import { F as F2, a as a2, P as P2, b as b2, d as d2 } from "./
|
|
3
|
-
import { l as loadFromPath } from "./load-from-path-
|
|
4
|
-
import { r as r2 } from "./load-from-path-
|
|
1
|
+
import { A, a, b, C, c, d, e, f, g, h, i, j, k, D, H, P, l, m, n, o, V, p, q, r, s, t, u, v, w, x, y, z, B, E, F, G, I } from "./loader-J0nrh600.js";
|
|
2
|
+
import { F as F2, a as a2, P as P2, b as b2, d as d2, s as s2 } from "./serialize-BlsUXsgT.js";
|
|
3
|
+
import { l as loadFromPath } from "./load-from-path-CvD4a_os.js";
|
|
4
|
+
import { r as r2 } from "./load-from-path-CvD4a_os.js";
|
|
5
5
|
let unpluginInstance = null;
|
|
6
6
|
const createUnpluginTheme = async () => {
|
|
7
7
|
if (unpluginInstance) {
|
|
@@ -141,6 +141,7 @@ export {
|
|
|
141
141
|
D as DynamicColor,
|
|
142
142
|
F2 as FontFamily,
|
|
143
143
|
a2 as FontPlugin,
|
|
144
|
+
H as Hct,
|
|
144
145
|
P as Palette,
|
|
145
146
|
l as PaletteApi,
|
|
146
147
|
m as PaletteModule,
|
|
@@ -159,17 +160,19 @@ export {
|
|
|
159
160
|
u as getInitialToneFromBackground,
|
|
160
161
|
v as getPiecewiseHue,
|
|
161
162
|
w as getRotatedHue,
|
|
162
|
-
x as
|
|
163
|
+
x as getVariantByName,
|
|
164
|
+
y as highestSurface,
|
|
163
165
|
loadFromPath,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
+
z as loader,
|
|
167
|
+
B as neutralVariant,
|
|
166
168
|
r2 as resolveConfig,
|
|
167
169
|
rollupPlugin,
|
|
168
|
-
|
|
169
|
-
E as
|
|
170
|
+
s2 as serializeThemeContext,
|
|
171
|
+
E as tonalSpotVariant,
|
|
172
|
+
F as toneDeltaPair,
|
|
170
173
|
unpluginUdixioTheme,
|
|
171
|
-
|
|
172
|
-
|
|
174
|
+
G as variant,
|
|
175
|
+
I as vibrantVariant,
|
|
173
176
|
vitePlugin,
|
|
174
177
|
webpackPlugin
|
|
175
178
|
};
|
|
@@ -7,6 +7,12 @@ export declare class PaletteApi {
|
|
|
7
7
|
paletteManager: PaletteManager;
|
|
8
8
|
});
|
|
9
9
|
add(args: Record<string, PaletteCallback | string>): void;
|
|
10
|
+
override(args: Record<string, PaletteCallback | string>): void;
|
|
11
|
+
getSerializableState(): Record<string, {
|
|
12
|
+
hue: number;
|
|
13
|
+
chroma: number;
|
|
14
|
+
}>;
|
|
15
|
+
sync(args: Record<string, PaletteCallback | string> | undefined): void;
|
|
10
16
|
get(key: 'primary' | 'secondary' | 'tertiary' | 'neutral' | 'neutralVariant' | 'error' | string): Palette;
|
|
11
17
|
getAll(): Readonly<Record<string, Palette>>;
|
|
12
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.api.d.ts","sourceRoot":"","sources":["../../src/palette/palette.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAIrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEhE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBACpC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,cAAc,CAAA;KAAE;IAIlE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,GAAG,IAAI;IAazD,GAAG,CACD,GAAG,EACC,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,OAAO,GACP,MAAM,GACT,OAAO;IAIV,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAG5C"}
|
|
1
|
+
{"version":3,"file":"palette.api.d.ts","sourceRoot":"","sources":["../../src/palette/palette.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAIrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEhE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBACpC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,cAAc,CAAA;KAAE;IAIlE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,GAAG,IAAI;IAazD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,GAAG,IAAI;IAU9D,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQvE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI;IAUtE,GAAG,CACD,GAAG,EACC,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,OAAO,GACP,MAAM,GACT,OAAO;IAIV,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAG5C"}
|
|
@@ -15,6 +15,7 @@ export declare class Palette {
|
|
|
15
15
|
constructor(name: string, callback: PaletteCallback, context: Context);
|
|
16
16
|
static fromVariant(name: string, color: Hct, ctx: Context): Palette;
|
|
17
17
|
update(change: Partial<keyof Context>[]): void;
|
|
18
|
+
setCallback(callback: PaletteCallback): void;
|
|
18
19
|
private clearCache;
|
|
19
20
|
/**
|
|
20
21
|
* @param tone HCT tone, measured from 0 to 100.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/palette/palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,OAAO;IAQT,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,OAAO;IATzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAuB;IAE1C,OAAO,CAAC,YAAY,CAAkC;gBAG7C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO;IAKzB,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO;IAOnE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,OAAO,CAAC,EAAE,GAAG,IAAI;IA6B9C,OAAO,CAAC,UAAU;IAMlB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAmB1B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIzB,IAAI,GAAG,IAAI,MAAM,CAMhB;IACD,IAAI,MAAM,IAAI,MAAM,CAMnB;IAED,OAAO,CAAC,WAAW;CAkBpB"}
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/palette/palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,OAAO;IAQT,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,OAAO;IATzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAuB;IAE1C,OAAO,CAAC,YAAY,CAAkC;gBAG7C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO;IAKzB,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO;IAOnE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,OAAO,CAAC,EAAE,GAAG,IAAI;IA6B9C,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAS5C,OAAO,CAAC,UAAU;IAMlB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAmB1B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIzB,IAAI,GAAG,IAAI,MAAM,CAMhB;IACD,IAAI,MAAM,IAAI,MAAM,CAMnB;IAED,OAAO,CAAC,WAAW;CAkBpB"}
|
|
@@ -16,5 +16,7 @@ export declare class PaletteManager {
|
|
|
16
16
|
get(key: 'primary' | 'secondary' | 'tertiary' | 'neutral' | 'neutralVariant' | 'error' | string): Palette;
|
|
17
17
|
private set;
|
|
18
18
|
update(key: string, args: PaletteCallback | Palette): void;
|
|
19
|
+
remove(key: string): void;
|
|
20
|
+
override(key: string, args: Hct | PaletteCallback): void;
|
|
19
21
|
}
|
|
20
22
|
//# sourceMappingURL=palette.manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.manager.d.ts","sourceRoot":"","sources":["../../src/palette/palette.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,qBAAa,cAAc;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKhD;gBAEW,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE;IAW1D,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,eAAe,GAAG,IAAI;IAWhE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,GAAG,IAAI;IAS1D,GAAG,CACD,GAAG,EACC,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,OAAO,GACP,MAAM,GACT,OAAO;IAQV,OAAO,CAAC,GAAG;IAIX,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"palette.manager.d.ts","sourceRoot":"","sources":["../../src/palette/palette.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,qBAAa,cAAc;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKhD;gBAEW,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE;IAW1D,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,eAAe,GAAG,IAAI;IAWhE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,GAAG,IAAI;IAS1D,GAAG,CACD,GAAG,EACC,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,OAAO,GACP,MAAM,GACT,OAAO;IAQV,OAAO,CAAC,GAAG;IAIX,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,GAAG,IAAI;IAY1D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,eAAe,GAAG,IAAI;CAiBzD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import "./loader-
|
|
4
|
+
import "./loader-J0nrh600.js";
|
|
5
5
|
class PluginAbstract {
|
|
6
6
|
constructor(options) {
|
|
7
7
|
__publicField(this, "options");
|
|
@@ -219,10 +219,21 @@ class FontPluginImpl extends PluginImplAbstract {
|
|
|
219
219
|
});
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
|
+
function serializeThemeContext(api) {
|
|
223
|
+
const sc = api.context.sourceColor;
|
|
224
|
+
return {
|
|
225
|
+
isDark: api.context.isDark,
|
|
226
|
+
contrastLevel: api.context.contrastLevel,
|
|
227
|
+
sourceColor: { hue: sc.hue, chroma: sc.chroma, tone: sc.tone },
|
|
228
|
+
variantName: api.context.variant.name,
|
|
229
|
+
palettes: api.palettes.getSerializableState()
|
|
230
|
+
};
|
|
231
|
+
}
|
|
222
232
|
export {
|
|
223
233
|
FontFamily as F,
|
|
224
234
|
PluginAbstract as P,
|
|
225
235
|
FontPlugin as a,
|
|
226
236
|
PluginImplAbstract as b,
|
|
227
|
-
defineConfig as d
|
|
237
|
+
defineConfig as d,
|
|
238
|
+
serializeThemeContext as s
|
|
228
239
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
require("./loader-
|
|
5
|
+
require("./loader-BN_VoxCd.cjs");
|
|
6
6
|
class PluginAbstract {
|
|
7
7
|
constructor(options) {
|
|
8
8
|
__publicField(this, "options");
|
|
@@ -220,8 +220,19 @@ class FontPluginImpl extends PluginImplAbstract {
|
|
|
220
220
|
});
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
+
function serializeThemeContext(api) {
|
|
224
|
+
const sc = api.context.sourceColor;
|
|
225
|
+
return {
|
|
226
|
+
isDark: api.context.isDark,
|
|
227
|
+
contrastLevel: api.context.contrastLevel,
|
|
228
|
+
sourceColor: { hue: sc.hue, chroma: sc.chroma, tone: sc.tone },
|
|
229
|
+
variantName: api.context.variant.name,
|
|
230
|
+
palettes: api.palettes.getSerializableState()
|
|
231
|
+
};
|
|
232
|
+
}
|
|
223
233
|
exports.FontFamily = FontFamily;
|
|
224
234
|
exports.FontPlugin = FontPlugin;
|
|
225
235
|
exports.PluginAbstract = PluginAbstract;
|
|
226
236
|
exports.PluginImplAbstract = PluginImplAbstract;
|
|
227
237
|
exports.defineConfig = defineConfig;
|
|
238
|
+
exports.serializeThemeContext = serializeThemeContext;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { API } from './API';
|
|
2
|
+
export interface ThemeContextSnapshot {
|
|
3
|
+
isDark: boolean;
|
|
4
|
+
contrastLevel: number;
|
|
5
|
+
sourceColor: {
|
|
6
|
+
hue: number;
|
|
7
|
+
chroma: number;
|
|
8
|
+
tone: number;
|
|
9
|
+
};
|
|
10
|
+
variantName: string;
|
|
11
|
+
palettes: Record<string, {
|
|
12
|
+
hue: number;
|
|
13
|
+
chroma: number;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
export declare function serializeThemeContext(api: API): ThemeContextSnapshot;
|
|
17
|
+
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,oBAAoB,CASpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/variant/variants/index.ts"],"names":[],"mappings":"AAMA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAElC,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/variant/variants/index.ts"],"names":[],"mappings":"AAMA,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAElC,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAMvF"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { AddColorsOptions } from '../color';
|
|
2
|
-
|
|
2
|
+
import { Hct } from '../material-color-utilities/htc';
|
|
3
3
|
import { PluginAbstract } from '../plugin';
|
|
4
4
|
import { Variant } from '../variant/variant';
|
|
5
5
|
import { PaletteCallback } from '../palette/palette';
|
|
6
|
+
import { Context } from '../context';
|
|
6
7
|
|
|
7
8
|
export interface ConfigInterface {
|
|
8
|
-
sourceColor: string;
|
|
9
|
+
sourceColor: string | Hct | ((context: Context) => string | Hct);
|
|
9
10
|
contrastLevel?: number;
|
|
10
11
|
isDark?: boolean;
|
|
11
12
|
variant?: Variant;
|
package/src/context/context.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { argbFromHex } from '@material/material-color-utilities';
|
|
2
2
|
import { Hct } from '../material-color-utilities/htc';
|
|
3
3
|
import { Variant } from '../variant/variant';
|
|
4
|
+
import { ConfigInterface } from '../config';
|
|
4
5
|
|
|
5
6
|
export interface ContextOptions {
|
|
6
|
-
sourceColor:
|
|
7
|
+
sourceColor: ConfigInterface['sourceColor'] | Hct;
|
|
7
8
|
contrastLevel: number;
|
|
8
9
|
isDark: boolean;
|
|
9
10
|
variant: Variant;
|
|
@@ -138,11 +139,17 @@ export class Context {
|
|
|
138
139
|
}
|
|
139
140
|
get sourceColor(): Hct {
|
|
140
141
|
let sourceColor = this.getOptions().sourceColor;
|
|
142
|
+
if (typeof sourceColor == 'function') {
|
|
143
|
+
sourceColor = sourceColor(this);
|
|
144
|
+
}
|
|
141
145
|
if (typeof sourceColor === 'string') {
|
|
142
146
|
sourceColor = Hct.fromInt(argbFromHex(sourceColor));
|
|
143
147
|
}
|
|
144
148
|
return sourceColor;
|
|
145
149
|
}
|
|
150
|
+
get rawSourceColor(): ContextOptions['sourceColor'] {
|
|
151
|
+
return this.getOptions().sourceColor;
|
|
152
|
+
}
|
|
146
153
|
|
|
147
154
|
set variant(variant: Variant) {
|
|
148
155
|
this.update({ variant });
|
package/src/index.ts
CHANGED
|
@@ -24,6 +24,34 @@ export class PaletteApi {
|
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
override(args: Record<string, PaletteCallback | string>): void {
|
|
28
|
+
Object.entries(args).forEach(([key, callback]) => {
|
|
29
|
+
if (typeof callback === 'string') {
|
|
30
|
+
this.paletteManager.override(key, Hct.fromInt(argbFromHex(callback)));
|
|
31
|
+
} else {
|
|
32
|
+
this.paletteManager.override(key, callback);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
getSerializableState(): Record<string, { hue: number; chroma: number }> {
|
|
38
|
+
const result: Record<string, { hue: number; chroma: number }> = {};
|
|
39
|
+
for (const [key, palette] of Object.entries(this.paletteManager._palettes)) {
|
|
40
|
+
result[key] = { hue: palette.hue, chroma: palette.chroma };
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
sync(args: Record<string, PaletteCallback | string> | undefined): void {
|
|
46
|
+
const incoming = new Set(Object.keys(args ?? {}));
|
|
47
|
+
Object.keys(this.paletteManager._palettes).forEach((key) => {
|
|
48
|
+
if (!incoming.has(key)) {
|
|
49
|
+
this.paletteManager.remove(key);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
if (args) this.override(args);
|
|
53
|
+
}
|
|
54
|
+
|
|
27
55
|
get(
|
|
28
56
|
key:
|
|
29
57
|
| 'primary'
|
|
@@ -68,12 +68,36 @@ export class PaletteManager {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
update(key: string, args: PaletteCallback | Palette): void {
|
|
71
|
-
|
|
71
|
+
const existing = this._palettes[key];
|
|
72
|
+
if (!existing) {
|
|
72
73
|
throw new Error(`Palette with key ${key} not found`);
|
|
73
74
|
}
|
|
74
|
-
if (
|
|
75
|
-
|
|
75
|
+
if (args instanceof Palette) {
|
|
76
|
+
this.set(key, args);
|
|
77
|
+
} else {
|
|
78
|
+
existing.setCallback(args);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
remove(key: string): void {
|
|
83
|
+
delete this._palettes[key];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
override(key: string, args: Hct | PaletteCallback): void {
|
|
87
|
+
const callback: PaletteCallback =
|
|
88
|
+
args instanceof Hct
|
|
89
|
+
? (context) => context.variant.customPalettes(context, args)
|
|
90
|
+
: args;
|
|
91
|
+
|
|
92
|
+
if (this._palettes[key]) {
|
|
93
|
+
this.update(key, callback);
|
|
94
|
+
} else {
|
|
95
|
+
const palette = new Palette(key, callback, this.context);
|
|
96
|
+
this.set(key, palette);
|
|
97
|
+
const isVariantPalette = !!this.context.variant.palettes[key];
|
|
98
|
+
if (!isVariantPalette) {
|
|
99
|
+
this.colorApi.addFromCustomPalette(key);
|
|
100
|
+
}
|
|
76
101
|
}
|
|
77
|
-
this.set(key, args);
|
|
78
102
|
}
|
|
79
103
|
}
|
package/src/palette/palette.ts
CHANGED
|
@@ -57,6 +57,15 @@ export class Palette {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
setCallback(callback: PaletteCallback): void {
|
|
61
|
+
this.callback = callback;
|
|
62
|
+
this.dependencies = null;
|
|
63
|
+
this.cache.clear();
|
|
64
|
+
this.hueCache = null;
|
|
65
|
+
this.chromaCache = null;
|
|
66
|
+
this.update([]);
|
|
67
|
+
}
|
|
68
|
+
|
|
60
69
|
private clearCache() {
|
|
61
70
|
this.cache.clear();
|
|
62
71
|
this.hueCache = null;
|
package/src/serialize.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { API } from './API';
|
|
2
|
+
|
|
3
|
+
export interface ThemeContextSnapshot {
|
|
4
|
+
isDark: boolean;
|
|
5
|
+
contrastLevel: number;
|
|
6
|
+
sourceColor: { hue: number; chroma: number; tone: number };
|
|
7
|
+
variantName: string;
|
|
8
|
+
palettes: Record<string, { hue: number; chroma: number }>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function serializeThemeContext(api: API): ThemeContextSnapshot {
|
|
12
|
+
const sc = api.context.sourceColor;
|
|
13
|
+
return {
|
|
14
|
+
isDark: api.context.isDark,
|
|
15
|
+
contrastLevel: api.context.contrastLevel,
|
|
16
|
+
sourceColor: { hue: sc.hue, chroma: sc.chroma, tone: sc.tone },
|
|
17
|
+
variantName: api.context.variant.name,
|
|
18
|
+
palettes: api.palettes.getSerializableState(),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -16,3 +16,11 @@ export const Variants = {
|
|
|
16
16
|
Vibrant: vibrantVariant,
|
|
17
17
|
Udixio: udixioVariant,
|
|
18
18
|
};
|
|
19
|
+
|
|
20
|
+
export function getVariantByName(name: string): (typeof Variants)[keyof typeof Variants] {
|
|
21
|
+
const found = Object.values(Variants).find((v) => v.name === name);
|
|
22
|
+
if (!found) {
|
|
23
|
+
throw new Error(`Unknown variant: "${name}". Known: ${Object.values(Variants).map((v) => v.name).join(', ')}`);
|
|
24
|
+
}
|
|
25
|
+
return found;
|
|
26
|
+
}
|
|
@@ -85,8 +85,8 @@ export const createMinContrastToneAdjuster = (
|
|
|
85
85
|
const { selfKey, referenceKey } = options;
|
|
86
86
|
const minContrast =
|
|
87
87
|
ctx.contrastLevel >= 0
|
|
88
|
-
? normalize(ctx.contrastLevel, [0, 1], [
|
|
89
|
-
: normalize(ctx.contrastLevel, [-1, 0], [0,
|
|
88
|
+
? normalize(ctx.contrastLevel, [0, 1], [3, 7])
|
|
89
|
+
: normalize(ctx.contrastLevel, [-1, 0], [0, 3]);
|
|
90
90
|
|
|
91
91
|
const referenceTone = referenceKey
|
|
92
92
|
? colors.get(referenceKey).getTone()
|