@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.
@@ -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":"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"}
@@ -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
+ }