From 13b2083594a0921160764ce5ad7aaf7a5d40756d Mon Sep 17 00:00:00 2001 From: Dean Tarisai Date: Fri, 22 Mar 2024 18:09:59 +0200 Subject: [PATCH 1/2] Fixed type errors --- types/colors.d.ts | 35 +---------------------------------- types/utils.d.ts | 1 - 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/types/colors.d.ts b/types/colors.d.ts index 91fd7e85..f0cbf433 100644 --- a/types/colors.d.ts +++ b/types/colors.d.ts @@ -26,32 +26,6 @@ declare function getNearestColor( num?: number ): ColorToken | Array | Map; -/** - * - * Returns the color as a simulation of the passed in `defeciencyType` of color vision deficiency with the deficiency filter's intensity determined by the `severity` value. - * @param deficiencyType The type of color vision deficiency. To avoid writing the long types, the expected parameters are simply the colors that are hard to perceive for the type of color blindness. For example those with 'tritanopia' are unable to perceive 'blue' light. Default is `'red'` when the defeciency parameter is undefined or any falsy value. - * @param color The color to return its simulated variant. - * @param severity The intensity of the filter. The exepected value is between [0,1]. For example 0.5 - * @returns The color as its simulated variant. Preserves the `ColorToken` type of the pased in color. - * @example - * - * import { colorDeficiency, color2hex } from 'huetiful-js' - -// Here we are simulating color blindness of tritanomaly or we can't see 'blue'. -// We are passing in our color as an array of channel values in the mode "rgb". The severity is set to 0.1 -let tritanomaly = colorDeficiency('blue') -console.log(tritanomaly(['rgb', 230, 100, 50, 0.5], 0.1)) -// #dd663680 - -// Here we are simulating color blindness of tritanomaly or we can't see 'red'. The severity is not explicitly set so it defaults to 1 -let protanopia = colorDeficiency('red') -console.log(protanopia({ h: 20, w: 50, b: 30, mode: 'hwb' })) -// #9f9f9f - */ -declare function colorDeficiency( - deficiencyType?: DeficiencyType -): (color: ColorToken, severity?: number) => string; - /** * * A wrapper function for ColorBrewer's map of sequential color schemes. @@ -151,11 +125,4 @@ declare function tailwindColors( shade: TailwindColorFamilies | 'all', value?: ScaleValues ): string | Array; -export { - colorDeficiency, - getNearestColor, - diverging, - qualitative, - sequential, - tailwindColors -}; +export { getNearestColor, diverging, qualitative, sequential, tailwindColors }; diff --git a/types/utils.d.ts b/types/utils.d.ts index 944e4002..c0f0f370 100644 --- a/types/utils.d.ts +++ b/types/utils.d.ts @@ -3,7 +3,6 @@ import { ColorToken, HueColorSpaces, HueFamily, - DeficiencyType, UniformColorSpaces } from './types'; From db89b85993d8442ba500f9c564b7c356eca24ada Mon Sep 17 00:00:00 2001 From: Dean Tarisai Date: Fri, 22 Mar 2024 18:18:07 +0200 Subject: [PATCH 2/2] Fixed path error in build file and removed demo files --- build.cjs | 2 +- demo.js | 76 ------------------------------------------------ demo/demo.js | 75 ----------------------------------------------- demo/sample.png | Bin 60804 -> 0 bytes 4 files changed, 1 insertion(+), 152 deletions(-) delete mode 100644 demo.js delete mode 100644 demo/demo.js delete mode 100644 demo/sample.png diff --git a/build.cjs b/build.cjs index 777444ba..24aa7764 100644 --- a/build.cjs +++ b/build.cjs @@ -1,6 +1,6 @@ // eslint-disable-next-line no-undef var { build } = require('esbuild'); -var { dependencies } = require('../../../package.json'); +var { dependencies } = require('./package.json'); build({ legalComments: 'inline', diff --git a/demo.js b/demo.js deleted file mode 100644 index 72811bf8..00000000 --- a/demo.js +++ /dev/null @@ -1,76 +0,0 @@ -import * as huetiful from '../src/index.js'; -import { log } from 'console'; - -// (1. Parsing color tokens to different types -var [colArrWithAlpha, colorObj, namedColor, colorNum, colorHex, sample] = [ - ['rgb', 100, 30, 80, 0.2], - { l: 20, c: 40, h: 80, mode: 'lch' }, - pink, - 6000, - '#fc3ba1', - [ - '#00ffdc', - '#00ff78', - '#00c000', - '#007e00', - '#164100', - '#ffff00', - '#310000', - '#3e0000', - '#4e0000', - '#600000', - '#720000' - ] -]; - -log(huetiful.color2hex(colorObj)); -log(huetiful.num2color(colorNum)); -log(huetiful.toCIE('lab')(namedColor)); -log(huetiful.color2hex(colArrWithAlpha)); -log(huetiful.color2tuple(colorHex, 'oklch')); - -// (2. Fetching swatches from bundled color maps -let swatches = huetiful.tailwindColors('all', '400'); -log(swatches); -// (3. Getting and setting properties - -// Setting luminance -let setLum = huetiful.setLuminance(colArrWithAlpha, 0.5); - -// Check the color's initial luminance -log(huetiful.getLuminance(colArrWithAlpha)); - -log(huetiful.getLuminance(setLum)); - -// (4. Sorting and filtering collections of color - -// sort colors by hue angle in descending order -console.log(huetiful.sortByHue(sample, 'desc')); - -// Filter out colors that have chroma channel below 0.1 -console.log(filterByChroma(sample, 0.1)); - -// (5. Getting the stats of color attributes in a collection - -let [meanHue, meanDistance] = [ - huetiful.getMeanHue(sample, 'lch'), - huetiful.getMeanDistance(sample, 'blue') -]; - -// log the mean hue angle from the collection -log(meanHue); - -// log the mean distance between colors in the collection -log(meanDistance); - -// (6. Method chaining - -// Chaining collection methods -let chain1 = huetiful - .load(sample) - .filterByHue(30, 80) - .sortByHue('desc') - .output(); - -// Chaining color methods we first convert it to a pastel color and then return the color visision deficiency simulation of the color for someone who has trouble seeing red. -let chain2 = huetiful.color(colorHex).pastel().deficiency('red', 0.4); diff --git a/demo/demo.js b/demo/demo.js deleted file mode 100644 index d5622e8f..00000000 --- a/demo/demo.js +++ /dev/null @@ -1,75 +0,0 @@ -import * as huetiful from '../src/index.js'; -import { log } from 'console'; - -// (1. Parsing color tokens to different types -var [colArrWithAlpha, colorObj, namedColor, colorNum, colorHex, sample] = [ - ['rgb', 100, 30, 80, 0.2], - { l: 20, c: 40, h: 80, mode: 'lch' }, - 'pink', - 6000, - '#fc3ba1', - [ - '#00ffdc', - '#00ff78', - '#00c000', - '#007e00', - '#164100', - '#ffff00', - '#310000', - '#3e0000', - '#4e0000', - '#600000', - '#720000' - ] -]; - -log(huetiful.color2hex(colorObj)); -log(huetiful.num2color(colorNum)); -log(huetiful.color2hex(colArrWithAlpha)); -log(huetiful.color2tuple(colorHex, 'oklch')); - -// (2. Fetching swatches from bundled color maps -let swatches = huetiful.tailwindColors('all', '400'); -log(swatches); -// (3. Getting and setting properties - -// Setting luminance -let setLum = huetiful.setLuminance(colArrWithAlpha, 0.5); - -// Check the color's initial luminance -log(huetiful.getLuminance(colArrWithAlpha)); - -log(huetiful.getLuminance(setLum)); - -// (4. Sorting and filtering collections of color - -// sort colors by hue angle in descending order -console.log(huetiful.sortByHue(sample, 'desc')); - -// Filter out colors that have chroma channel below 0.1 -console.log(huetiful.filterByChroma(sample, 0.1)); - -// (5. Getting the stats of color attributes in a collection - -let [meanHue, meanDistance] = [ - huetiful.getMeanHue(sample, 'lch'), - huetiful.getMeanDistance(sample, 'blue') -]; - -// log the mean hue angle from the collection -log(meanHue); - -// log the mean distance between colors in the collection -log(meanDistance); - -// (6. Method chaining - -// Chaining collection methods -let chain1 = huetiful - .load(sample) - .filterByHue(30, 80) - .sortByHue('desc') - .output(); - -// Chaining color methods we first convert it to a pastel color and then return the color visision deficiency simulation of the color for someone who has trouble seeing red. -let chain2 = huetiful.color(colorHex).pastel().deficiency('red', 0.4); diff --git a/demo/sample.png b/demo/sample.png deleted file mode 100644 index ab1b168ea78f276a4d238f37aae39e32db18138c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60804 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