@a_ng_d/utils-ui-color-palette 1.0.1
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/LICENSE +21 -0
- package/README.md +158 -0
- package/dist/color-BND6T00o.js +485 -0
- package/dist/color-BND6T00o.js.map +1 -0
- package/dist/index-Beb8qoyd.js +1403 -0
- package/dist/index-Beb8qoyd.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/color/color.d.ts +46 -0
- package/dist/modules/color/color.d.ts.map +1 -0
- package/dist/modules/color/color.js +6 -0
- package/dist/modules/color/color.js.map +1 -0
- package/dist/modules/contrast/contrast.d.ts +20 -0
- package/dist/modules/contrast/contrast.d.ts.map +1 -0
- package/dist/modules/contrast/contrast.js +203 -0
- package/dist/modules/contrast/contrast.js.map +1 -0
- package/dist/modules/data/data.d.ts +19 -0
- package/dist/modules/data/data.d.ts.map +1 -0
- package/dist/modules/data/data.js +263 -0
- package/dist/modules/data/data.js.map +1 -0
- package/dist/types/color.types.d.ts +16 -0
- package/dist/types/color.types.d.ts.map +1 -0
- package/dist/types/configuration.types.d.ts +152 -0
- package/dist/types/configuration.types.d.ts.map +1 -0
- package/dist/types/data.types.d.ts +77 -0
- package/dist/types/data.types.d.ts.map +1 -0
- package/dist/types/model.types.d.ts +7 -0
- package/dist/types/model.types.d.ts.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sources":["../../../src/modules/data/data.ts"],"sourcesContent":["import chroma from 'chroma-js'\nimport { Hsluv } from 'hsluv'\nimport {\n MetaConfiguration,\n BaseConfiguration,\n ScaleConfiguration,\n ThemeConfiguration,\n FullConfiguration,\n} from '@tps/configuration.types'\nimport {\n PaletteData,\n PaletteDataColorItem,\n PaletteDataThemeItem,\n} from '@tps/data.types'\nimport Color from '@modules/color/color'\nimport { Channel, HexModel } from '@tps/color.types'\n\nexport default class Data {\n private base: BaseConfiguration\n private themes: Array<ThemeConfiguration>\n private meta: MetaConfiguration\n private paletteData: PaletteData\n private currentScale: ScaleConfiguration\n\n constructor({\n base,\n themes,\n meta,\n }: {\n base: BaseConfiguration\n themes: Array<ThemeConfiguration>\n meta: MetaConfiguration\n }) {\n this.base = base\n this.themes = themes\n this.meta = meta\n this.paletteData = {\n name: base.name ?? 'UI Color Palette',\n description: base.description,\n themes: [],\n version: process.env.VERSION ?? '1.0.0',\n type: 'palette',\n }\n this.currentScale =\n themes.find((theme) => theme.isEnabled)?.scale ??\n ({} as ScaleConfiguration)\n }\n\n searchForShadeStyleId = (\n themes: Array<PaletteDataThemeItem>,\n themeId: string,\n colorId: string,\n shadeName: string\n ) => {\n const themeMatch = themes.find((theme) => theme.id === themeId),\n colorMatch =\n themeMatch === undefined\n ? undefined\n : themeMatch.colors.find((color) => color.id === colorId),\n shadeMatch =\n colorMatch === undefined\n ? undefined\n : colorMatch.shades.find((shade) => shade.name === shadeName),\n styleId = shadeMatch === undefined ? '' : shadeMatch.styleId\n\n return styleId === undefined ? '' : styleId\n }\n\n makePaletteData = (previousData?: PaletteData) => {\n this.themes.forEach((theme) => {\n const paletteDataThemeItem: PaletteDataThemeItem = {\n id: theme.id,\n name: theme.name,\n description: theme.description,\n colors: [],\n type: theme.type,\n }\n this.base.colors.forEach((color) => {\n const scaledColors = Object.entries(theme.scale)\n .reverse()\n .map((lightness) => {\n if (color.alpha.isEnabled) {\n const foregroundColorData = new Color({\n render: 'RGB',\n sourceColor: [\n color.rgb.r * 255,\n color.rgb.g * 255,\n color.rgb.b * 255,\n ],\n alpha: parseFloat((lightness[1] / 100).toFixed(2)),\n hueShifting:\n color.hue.shift !== undefined ? color.hue.shift : 0,\n chromaShifting:\n color.chroma.shift !== undefined ? color.chroma.shift : 100,\n algorithmVersion: this.base.algorithmVersion,\n visionSimulationMode: theme.visionSimulationMode,\n })\n const backgroundColorData = new Color({\n render: 'RGB',\n sourceColor: chroma(color.alpha.backgroundColor).rgb(),\n algorithmVersion: this.base.algorithmVersion,\n visionSimulationMode: theme.visionSimulationMode,\n })\n\n switch (this.base.colorSpace) {\n case 'LCH':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.lcha(),\n backgroundColorData.lcha(),\n ]\n case 'OKLCH':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.oklcha(),\n backgroundColorData.oklcha(),\n ]\n case 'LAB':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.laba(),\n backgroundColorData.laba(),\n ]\n case 'OKLAB':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.oklaba(),\n backgroundColorData.oklaba(),\n ]\n case 'HSL':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.hsla(),\n backgroundColorData.hsla(),\n ]\n case 'HSLUV':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.hsluva(),\n backgroundColorData.hsluva(),\n ]\n default:\n return [lightness, [0, 0, 0], [255, 255, 255]]\n }\n } else {\n const colorData = new Color({\n render: 'RGB',\n sourceColor: [\n color.rgb.r * 255,\n color.rgb.g * 255,\n color.rgb.b * 255,\n ],\n lightness: lightness[1],\n hueShifting:\n color.hue.shift !== undefined ? color.hue.shift : 0,\n chromaShifting:\n color.chroma.shift !== undefined ? color.chroma.shift : 100,\n algorithmVersion: this.base.algorithmVersion,\n visionSimulationMode: theme.visionSimulationMode,\n })\n\n switch (this.base.colorSpace) {\n case 'LCH':\n return [lightness, colorData.lch()]\n case 'OKLCH':\n return [lightness, colorData.oklch()]\n case 'LAB':\n return [lightness, colorData.lab()]\n case 'OKLAB':\n return [lightness, colorData.oklab()]\n case 'HSL':\n return [lightness, colorData.hsl()]\n case 'HSLUV':\n return [lightness, colorData.hsluv()]\n default:\n return [lightness, [0, 0, 0]]\n }\n }\n })\n\n const paletteDataColorItem: PaletteDataColorItem = {\n id: color.id,\n name: color.name,\n description: color.description,\n shades: [],\n type: 'color',\n },\n sourceColor: Channel = [\n color.rgb.r * 255,\n color.rgb.g * 255,\n color.rgb.b * 255,\n ]\n\n const sourceHsluv = new Hsluv()\n sourceHsluv.rgb_r = color.rgb.r\n sourceHsluv.rgb_g = color.rgb.g\n sourceHsluv.rgb_b = color.rgb.b\n sourceHsluv.rgbToHsluv()\n\n paletteDataColorItem.shades.push({\n name: 'source',\n description: 'Source color',\n hex: chroma(sourceColor).hex(),\n rgb: sourceColor,\n gl: chroma(sourceColor).gl(),\n lch: chroma(sourceColor).lch(),\n oklch: chroma(sourceColor).oklch(),\n lab: chroma(sourceColor).lab(),\n oklab: chroma(sourceColor).oklab(),\n hsl: chroma(sourceColor).hsl(),\n hsluv: [\n sourceHsluv.hsluv_h,\n sourceHsluv.hsluv_s,\n sourceHsluv.hsluv_l,\n ],\n styleId: this.searchForShadeStyleId(\n previousData?.themes ?? this.paletteData.themes,\n theme.id,\n color.id,\n 'source'\n ),\n type: 'source color',\n })\n\n const distances = scaledColors.map((shade) =>\n chroma.distance(\n chroma(sourceColor).hex(),\n chroma(shade[1] as Channel).hex(),\n 'rgb'\n )\n )\n const minDistanceIndex = distances.indexOf(Math.min(...distances))\n\n scaledColors.forEach((scaledColor, index) => {\n const distance: number = chroma.distance(\n chroma(sourceColor).hex(),\n chroma(scaledColor[1] as Channel).hex(),\n 'rgb'\n )\n const scaleName: string =\n Object.keys(this.currentScale).find(\n (key) => key === scaledColor[0][0]\n ) ?? '0'\n const newHsluv = new Hsluv()\n const simulatedSourceColorRgb = new Color({\n render: 'RGB',\n sourceColor: chroma(sourceColor).rgb(),\n visionSimulationMode: theme.visionSimulationMode,\n }).setColor() as Channel\n const simulatedSourceColorHex = new Color({\n render: 'HEX',\n sourceColor: chroma(sourceColor).rgb(),\n visionSimulationMode: theme.visionSimulationMode,\n }).setColor() as HexModel\n\n if (\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ) {\n newHsluv.rgb_r = Number(simulatedSourceColorRgb[0]) / 255\n newHsluv.rgb_g = Number(simulatedSourceColorRgb[1]) / 255\n newHsluv.rgb_b = Number(simulatedSourceColorRgb[2]) / 255\n } else {\n newHsluv.rgb_r = Number(scaledColor[1][0]) / 255\n newHsluv.rgb_g = Number(scaledColor[1][1]) / 255\n newHsluv.rgb_b = Number(scaledColor[1][2]) / 255\n }\n newHsluv.rgbToHsluv()\n\n paletteDataColorItem.shades.push({\n name: scaleName,\n description: `Shade color with ${typeof scaledColor[0][1] === 'number' ? scaledColor[0][1].toFixed(1) : scaledColor[0][1]}% of ${\n color.alpha.isEnabled ? 'opacity' : 'lightness'\n }`,\n hex:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).hex()\n : chroma(scaledColor[1] as Channel).hex(),\n rgb:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).rgb()\n : chroma(scaledColor[1] as Channel).rgb(),\n gl:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).gl()\n : chroma(scaledColor[1] as Channel).gl(),\n lch:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).lch()\n : chroma(scaledColor[1] as Channel).lch(),\n oklch:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).oklch()\n : chroma(scaledColor[1] as Channel).oklch(),\n lab:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).lab()\n : chroma(scaledColor[1] as Channel).lab(),\n oklab:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).oklab()\n : chroma(scaledColor[1] as Channel).oklab(),\n hsl:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).hsl()\n : chroma(scaledColor[1] as Channel).hsl(),\n hsluv: [newHsluv.hsluv_h, newHsluv.hsluv_s, newHsluv.hsluv_l],\n alpha: color.alpha.isEnabled\n ? parseFloat(((scaledColor[0][1] as number) / 100).toFixed(2))\n : undefined,\n backgroundColor:\n color.alpha.isEnabled && color.alpha.backgroundColor\n ? chroma(scaledColor[2] as Channel).rgb()\n : undefined,\n mixedColor:\n color.alpha.isEnabled && color.alpha.backgroundColor\n ? new Color({\n visionSimulationMode: theme.visionSimulationMode,\n }).mixColorsRgb(\n [\n ...(scaledColor[1] as Channel),\n parseFloat(\n ((scaledColor[0][1] as number) / 100).toFixed(2)\n ),\n ],\n [...(scaledColor[2] as Channel), 1]\n )\n : undefined,\n styleId: this.searchForShadeStyleId(\n previousData?.themes ?? this.paletteData.themes,\n theme.id,\n color.id,\n scaleName\n ),\n isClosestToRef: distance < 4 && !this.base.areSourceColorsLocked,\n isSourceColorLocked:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled,\n isTransparent: color.alpha.isEnabled,\n type: 'color shade',\n })\n })\n\n paletteDataThemeItem.colors.push(paletteDataColorItem)\n })\n this.paletteData.themes.push(paletteDataThemeItem)\n })\n\n return this.paletteData\n }\n\n makePaletteFullData = () => {\n const fullPaletteData = {\n base: this.base,\n themes: this.themes,\n meta: this.meta,\n data: this.makePaletteData(),\n type: 'UI_COLOR_PALETTE',\n version: process.env.VERSION ?? '1.0.0',\n } as FullConfiguration\n\n return fullPaletteData\n }\n}\n"],"names":["Data","base","themes","meta","__publicField","themeId","colorId","shadeName","themeMatch","theme","colorMatch","color","shadeMatch","shade","styleId","previousData","paletteDataThemeItem","scaledColors","lightness","foregroundColorData","Color","backgroundColorData","chroma","colorData","paletteDataColorItem","sourceColor","sourceHsluv","Hsluv","distances","minDistanceIndex","scaledColor","index","distance","scaleName","key","newHsluv","simulatedSourceColorRgb","simulatedSourceColorHex","_a"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type HexModel = `#${string}` | string;
|
|
2
|
+
export interface RgbModel {
|
|
3
|
+
r: number;
|
|
4
|
+
g: number;
|
|
5
|
+
b: number;
|
|
6
|
+
a?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface HslModel {
|
|
9
|
+
h: number;
|
|
10
|
+
s: number;
|
|
11
|
+
l: number;
|
|
12
|
+
a: number;
|
|
13
|
+
}
|
|
14
|
+
export type Channel = [number, number, number];
|
|
15
|
+
export type ChannelWithAlpha = [number, number, number, number];
|
|
16
|
+
//# sourceMappingURL=color.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.types.d.ts","sourceRoot":"","sources":["../../src/types/color.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,GAAG,MAAM,CAAA;AAE5C,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,CAAC,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { HexModel, RgbModel } from './color.types';
|
|
2
|
+
import { PaletteData } from './data.types';
|
|
3
|
+
import { ColorFormat } from './model.types';
|
|
4
|
+
|
|
5
|
+
export type ThirdParty = 'COOLORS' | 'REALTIME_COLORS' | 'COLOUR_LOVERS';
|
|
6
|
+
export interface BaseConfiguration {
|
|
7
|
+
[key: string]: string | number | boolean | object | undefined;
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
preset: PresetConfiguration;
|
|
11
|
+
shift: ShiftConfiguration;
|
|
12
|
+
areSourceColorsLocked: LockedSourceColorsConfiguration;
|
|
13
|
+
colors: Array<ColorConfiguration>;
|
|
14
|
+
colorSpace: ColorSpaceConfiguration;
|
|
15
|
+
algorithmVersion: AlgorithmVersionConfiguration;
|
|
16
|
+
}
|
|
17
|
+
export interface SourceColorConfiguration {
|
|
18
|
+
name: string;
|
|
19
|
+
rgb: RgbModel;
|
|
20
|
+
source: 'CANVAS' | 'REMOTE' | ThirdParty;
|
|
21
|
+
id: string;
|
|
22
|
+
isRemovable: boolean;
|
|
23
|
+
hue?: {
|
|
24
|
+
shift: number;
|
|
25
|
+
isLocked: boolean;
|
|
26
|
+
};
|
|
27
|
+
chroma?: {
|
|
28
|
+
shift: number;
|
|
29
|
+
isLocked: boolean;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export interface ExchangeConfiguration {
|
|
33
|
+
[key: string]: string | number | boolean | object | undefined;
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
preset: PresetConfiguration;
|
|
37
|
+
scale: ScaleConfiguration;
|
|
38
|
+
shift: ShiftConfiguration;
|
|
39
|
+
areSourceColorsLocked: LockedSourceColorsConfiguration;
|
|
40
|
+
colorSpace: ColorSpaceConfiguration;
|
|
41
|
+
visionSimulationMode: VisionSimulationModeConfiguration;
|
|
42
|
+
textColorsTheme: TextColorsThemeConfiguration<'HEX'>;
|
|
43
|
+
algorithmVersion: AlgorithmVersionConfiguration;
|
|
44
|
+
}
|
|
45
|
+
export interface ExtractOfBaseConfiguration {
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
preset: string;
|
|
49
|
+
colors: Array<ColorConfiguration>;
|
|
50
|
+
themes: Array<ThemeConfiguration>;
|
|
51
|
+
screenshot: Uint8Array | null;
|
|
52
|
+
devStatus: string | null;
|
|
53
|
+
}
|
|
54
|
+
export type Easing = 'NONE' | 'LINEAR' | 'EASE_IN' | 'EASE_OUT' | 'EASE_IN_OUT' | 'FAST_EASE_IN' | 'FAST_EASE_OUT' | 'FAST_EASE_IN_OUT' | 'SLOW_EASE_IN' | 'SLOW_EASE_OUT' | 'SLOW_EASE_IN_OUT';
|
|
55
|
+
export interface PresetConfiguration {
|
|
56
|
+
id: string;
|
|
57
|
+
name: string;
|
|
58
|
+
stops: Array<number>;
|
|
59
|
+
min: number;
|
|
60
|
+
max: number;
|
|
61
|
+
easing: Easing;
|
|
62
|
+
family?: string;
|
|
63
|
+
}
|
|
64
|
+
export type ScaleConfiguration = Record<string, number>;
|
|
65
|
+
export interface ShiftConfiguration {
|
|
66
|
+
chroma: number;
|
|
67
|
+
}
|
|
68
|
+
export type LockedSourceColorsConfiguration = boolean;
|
|
69
|
+
export interface ColorConfiguration {
|
|
70
|
+
id: string;
|
|
71
|
+
name: string;
|
|
72
|
+
description: string;
|
|
73
|
+
rgb: RgbModel;
|
|
74
|
+
hue: {
|
|
75
|
+
shift: number;
|
|
76
|
+
isLocked: boolean;
|
|
77
|
+
};
|
|
78
|
+
chroma: {
|
|
79
|
+
shift: number;
|
|
80
|
+
isLocked: boolean;
|
|
81
|
+
};
|
|
82
|
+
alpha: {
|
|
83
|
+
isEnabled: boolean;
|
|
84
|
+
backgroundColor: HexModel;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export interface ThemeConfiguration {
|
|
88
|
+
id: string;
|
|
89
|
+
name: string;
|
|
90
|
+
description: string;
|
|
91
|
+
scale: ScaleConfiguration;
|
|
92
|
+
visionSimulationMode: VisionSimulationModeConfiguration;
|
|
93
|
+
textColorsTheme: TextColorsThemeConfiguration<'HEX'>;
|
|
94
|
+
paletteBackground: HexModel;
|
|
95
|
+
isEnabled: boolean;
|
|
96
|
+
type: 'default theme' | 'custom theme';
|
|
97
|
+
}
|
|
98
|
+
export interface ExportConfiguration {
|
|
99
|
+
format: 'JSON' | 'CSS' | 'TAILWIND' | 'SWIFT' | 'KT' | 'XML' | 'CSV';
|
|
100
|
+
context: 'TOKENS_DTCG' | 'TOKENS_GLOBAL' | 'TOKENS_AMZN_STYLE_DICTIONARY' | 'TOKENS_TOKENS_STUDIO' | 'CSS' | 'TAILWIND' | 'APPLE_SWIFTUI' | 'APPLE_UIKIT' | 'ANDROID_COMPOSE' | 'ANDROID_XML' | 'CSV';
|
|
101
|
+
label: string;
|
|
102
|
+
colorSpace: ColorSpaceConfiguration;
|
|
103
|
+
mimeType: 'application/json' | 'text/css' | 'text/javascript' | 'text/swift' | 'text/x-kotlin' | 'text/xml' | 'text/csv';
|
|
104
|
+
data: any;
|
|
105
|
+
}
|
|
106
|
+
export type ColorSpaceConfiguration = 'LCH' | 'OKLCH' | 'LAB' | 'OKLAB' | 'HSL' | 'HSLUV' | 'RGB' | 'HEX' | 'P3';
|
|
107
|
+
export type VisionSimulationModeConfiguration = 'NONE' | 'PROTANOMALY' | 'PROTANOPIA' | 'DEUTERANOMALY' | 'DEUTERANOPIA' | 'TRITANOMALY' | 'TRITANOPIA' | 'ACHROMATOMALY' | 'ACHROMATOPSIA';
|
|
108
|
+
export interface TextColorsThemeConfiguration<T extends 'HEX' | 'RGB'> {
|
|
109
|
+
lightColor: ColorFormat<T>;
|
|
110
|
+
darkColor: ColorFormat<T>;
|
|
111
|
+
}
|
|
112
|
+
export type ViewConfiguration = 'PALETTE_WITH_PROPERTIES' | 'PALETTE' | 'SHEET';
|
|
113
|
+
export type AlgorithmVersionConfiguration = 'v1' | 'v2' | 'v3';
|
|
114
|
+
export interface DatesConfiguration {
|
|
115
|
+
createdAt: Date | string;
|
|
116
|
+
updatedAt: Date | string;
|
|
117
|
+
publishedAt: Date | string;
|
|
118
|
+
}
|
|
119
|
+
export interface PublicationConfiguration {
|
|
120
|
+
isPublished: boolean;
|
|
121
|
+
isShared: boolean;
|
|
122
|
+
}
|
|
123
|
+
export interface CreatorConfiguration {
|
|
124
|
+
creatorFullName: string;
|
|
125
|
+
creatorAvatar: string;
|
|
126
|
+
creatorId: string;
|
|
127
|
+
}
|
|
128
|
+
export interface UserConfiguration {
|
|
129
|
+
id: string;
|
|
130
|
+
fullName: string;
|
|
131
|
+
avatar: string;
|
|
132
|
+
}
|
|
133
|
+
export interface MetaConfiguration {
|
|
134
|
+
id: string;
|
|
135
|
+
dates: DatesConfiguration;
|
|
136
|
+
publicationStatus: PublicationConfiguration;
|
|
137
|
+
creatorIdentity: CreatorConfiguration;
|
|
138
|
+
}
|
|
139
|
+
export interface FullConfiguration {
|
|
140
|
+
base: BaseConfiguration;
|
|
141
|
+
themes: Array<ThemeConfiguration>;
|
|
142
|
+
meta: MetaConfiguration;
|
|
143
|
+
data: PaletteData;
|
|
144
|
+
type: 'UI_COLOR_PALETTE';
|
|
145
|
+
}
|
|
146
|
+
export interface DocumentConfiguration {
|
|
147
|
+
id?: string;
|
|
148
|
+
view?: ViewConfiguration;
|
|
149
|
+
isLinkedToPalette?: boolean;
|
|
150
|
+
updatedAt?: Date | string;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=configuration.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.types.d.ts","sourceRoot":"","sources":["../../src/types/configuration.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Channel, ChannelWithAlpha, HexModel } from './color.types';
|
|
2
|
+
import { ColorConfiguration, PresetConfiguration, ThemeConfiguration } from './configuration.types';
|
|
3
|
+
|
|
4
|
+
export interface PaletteData {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
themes: Array<PaletteDataThemeItem>;
|
|
8
|
+
collectionId?: string;
|
|
9
|
+
version: string;
|
|
10
|
+
type: 'palette';
|
|
11
|
+
}
|
|
12
|
+
export interface PaletteDataThemeItem {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
colors: Array<PaletteDataColorItem>;
|
|
17
|
+
modeId?: string;
|
|
18
|
+
type: 'default theme' | 'custom theme';
|
|
19
|
+
}
|
|
20
|
+
export interface PaletteDataColorItem {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
shades: Array<PaletteDataShadeItem>;
|
|
25
|
+
type: 'color';
|
|
26
|
+
}
|
|
27
|
+
export interface PaletteDataShadeItem {
|
|
28
|
+
name: string;
|
|
29
|
+
description: string;
|
|
30
|
+
hex: HexModel;
|
|
31
|
+
rgb: Channel;
|
|
32
|
+
gl: ChannelWithAlpha;
|
|
33
|
+
lch: Channel;
|
|
34
|
+
oklch: Channel;
|
|
35
|
+
lab: Channel;
|
|
36
|
+
oklab: Channel;
|
|
37
|
+
hsl: Channel;
|
|
38
|
+
hsluv: Channel;
|
|
39
|
+
alpha?: number;
|
|
40
|
+
backgroundColor?: Channel;
|
|
41
|
+
mixedColor?: Channel;
|
|
42
|
+
styleId: string;
|
|
43
|
+
isClosestToRef?: boolean;
|
|
44
|
+
isSourceColorLocked?: boolean;
|
|
45
|
+
isTransparent?: boolean;
|
|
46
|
+
type: 'source color' | 'color shade';
|
|
47
|
+
}
|
|
48
|
+
export interface ColourLovers {
|
|
49
|
+
id: number;
|
|
50
|
+
apiUrl: string;
|
|
51
|
+
badgeUrl: string;
|
|
52
|
+
colors: Array<HexModel>;
|
|
53
|
+
dateCreated: Date | string;
|
|
54
|
+
description: string;
|
|
55
|
+
imageUrl: string;
|
|
56
|
+
numComments: number;
|
|
57
|
+
numHearts: number;
|
|
58
|
+
numViews: number;
|
|
59
|
+
numVotes: number;
|
|
60
|
+
rank: number;
|
|
61
|
+
title: string;
|
|
62
|
+
url: string;
|
|
63
|
+
userName: string;
|
|
64
|
+
}
|
|
65
|
+
export interface ExternalPalettes {
|
|
66
|
+
palette_id: string;
|
|
67
|
+
screenshot: string;
|
|
68
|
+
name: string;
|
|
69
|
+
preset: PresetConfiguration;
|
|
70
|
+
colors: Array<ColorConfiguration>;
|
|
71
|
+
themes: Array<ThemeConfiguration>;
|
|
72
|
+
creator_avatar: string;
|
|
73
|
+
creator_full_name: string;
|
|
74
|
+
creator_id: string;
|
|
75
|
+
is_shared: boolean;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.types.d.ts","sourceRoot":"","sources":["../../src/types/data.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,eAAe,GAAG,cAAc,CAAA;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACnC,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,QAAQ,CAAA;IACb,GAAG,EAAE,OAAO,CAAA;IACZ,EAAE,EAAE,gBAAgB,CAAA;IACpB,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,cAAc,GAAG,aAAa,CAAA;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IACvB,WAAW,EAAE,IAAI,GAAG,MAAM,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACjC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Channel, ChannelWithAlpha, HexModel } from './color.types';
|
|
2
|
+
|
|
3
|
+
export type ColorFormat<T extends 'HEX' | 'RGB'> = T extends 'HEX' ? HexModel : Channel | ChannelWithAlpha;
|
|
4
|
+
export interface ActionsList {
|
|
5
|
+
[action: string]: () => void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=model.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.types.d.ts","sourceRoot":"","sources":["../../src/types/model.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEnE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,IAAI,CAAC,SAAS,KAAK,GAC9D,QAAQ,GACR,OAAO,GAAG,gBAAgB,CAAA;AAE9B,MAAM,WAAW,WAAW;IAC1B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,CAAA;CAC7B"}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@a_ng_d/utils-ui-color-palette",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "1.0.1",
|
|
5
|
+
"description": "Core utilities library for UI Color Palette - a color management plugin for design tools. This library provides the foundational color manipulation, contrast calculation, and palette generation features used in the plugin.",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/a-ng-d/utils-ui-color-palette.git"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"color",
|
|
12
|
+
"palette",
|
|
13
|
+
"contrast",
|
|
14
|
+
"utilities",
|
|
15
|
+
"figma"
|
|
16
|
+
],
|
|
17
|
+
"author": "Aurélien Grimaud",
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://github.com/a-ng-d/utils-ui-color-palette/issues"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://github.com/a-ng-d/utils-ui-color-palette#readme",
|
|
23
|
+
"type": "module",
|
|
24
|
+
"files": [
|
|
25
|
+
"dist"
|
|
26
|
+
],
|
|
27
|
+
"exports": "./dist/index.js",
|
|
28
|
+
"module": "./dist/index.js",
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc && vite build",
|
|
32
|
+
"test": "vitest",
|
|
33
|
+
"test:coverage": "vitest run --coverage",
|
|
34
|
+
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
35
|
+
"format": "prettier --check .",
|
|
36
|
+
"format:fix": "prettier --write ."
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/apca-w3": "^0.1.3",
|
|
40
|
+
"@types/chroma-js": "^3.1.1",
|
|
41
|
+
"@types/node": "^22.10.1",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
|
43
|
+
"@typescript-eslint/parser": "^7.2.0",
|
|
44
|
+
"@vitest/coverage-v8": "^1.6.0",
|
|
45
|
+
"dotenv-cli": "^7.4.2",
|
|
46
|
+
"eslint": "^8.57.0",
|
|
47
|
+
"eslint-config-prettier": "^9.1.0",
|
|
48
|
+
"glob": "^10.3.12",
|
|
49
|
+
"prettier": "^3.2.5",
|
|
50
|
+
"typescript": "^5.4.3",
|
|
51
|
+
"vite": "^5.2.0",
|
|
52
|
+
"vite-plugin-dts": "^3.9.1",
|
|
53
|
+
"vite-tsconfig-paths": "^4.3.2",
|
|
54
|
+
"vitest": "^1.6.0"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"apca-w3": "^0.1.9",
|
|
58
|
+
"chroma-js": "^2.4.2",
|
|
59
|
+
"hsluv": "^1.0.1"
|
|
60
|
+
}
|
|
61
|
+
}
|