diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..6950e07d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,91 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [3.0.1](https://github.com/prjctimg/huetiful/compare/v2.3.0...v3.0.1) (2024-08-30) + + +### Performance Improvements + +* added missing file ([3069d35](https://github.com/prjctimg/huetiful/commit/3069d35f5a75908050e0afd6acde8e96545f5791)) +* created index file for palettes subdir ([046f770](https://github.com/prjctimg/huetiful/commit/046f7709d05cb2dee490e3eb20ef6fa41acda5c7)) +* created index file for palettes subdir ([4b312c4](https://github.com/prjctimg/huetiful/commit/4b312c4ad8c226e7804c46409521d1482a07a573)) + + +### Miscellaneous Chores + +* release 3.0.0 ([67391c2](https://github.com/prjctimg/huetiful/commit/67391c29a60ed5964c98e7e27f73d051bdacbc22)) +* release 3.0.1 ([253655e](https://github.com/prjctimg/huetiful/commit/253655ec1dcf65752160a93f453fcc7d27a81975)) + +## [2.3.0](https://github.com/xml-wizard/huetiful/compare/v2.2.0...v2.3.0) (2024-04-08) + + +### Features + +* fixed icon not rendering ([54c66d6](https://github.com/xml-wizard/huetiful/commit/54c66d6430b3b981e41f8228edbb71a56c66165f)) + +## [2.2.0](https://github.com/xml-wizard/huetiful/compare/v2.1.0...v2.2.0) (2024-03-26) + + +### Features + +* added distribution function ([9432c30](https://github.com/xml-wizard/huetiful/commits/9432c300618f412b0f7d04727005a70f0b1fff36)) + + +### Documentation changes + +* moved docs to generators.js from declaration file ([a994e94](https://github.com/xml-wizard/huetiful/commits/a994e9418588a767bb282bc2f6ea0900e0d4948c)) + + +### Bug fixes + +* fixed base distribution function to handle overrides with defaults ([f8c7c7c](https://github.com/xml-wizard/huetiful/commits/f8c7c7cd951bbd107fae2e686039edc40c672b45)) +* fixed type errors in generators ([fce44cb](https://github.com/xml-wizard/huetiful/commits/fce44cbbe004e2cbfada167a32ad1292f7128585)) + +## [2.2.0](https://github.com/xml-wizard/huetiful/compare/v2.1.1...v2.2.0) (2024-03-28) + + +### Features + +* added release-please-npm.yml workflow to publish when a new release is merged ([fce329a](https://github.com/xml-wizard/huetiful/commit/fce329a84a60b2eb44adcdb16799bb8235e33fc5)) + +### 2.0.0 (stable) + +##### Notable changes + +- Stylish new look on the docs :rocket: . [See the updated docs :scroll: here][home] +- The codebase is now pure JavaScript. Types now live seperately in `.d.ts` files. This is eliminate the need for a build step just to be able to test our code. It will also make it possible to run this library on [NPM+Runkit][npm] +- More automated workflow. Testing,publishing to NPM and deploying the docs is all automated via GitHub Actions +- Full test coverage of the public API with Jasmine :herb: +- Updated the contributing guidelines. See the [CONTRIBUTING :open_hands: file](./CONTRIBUTING.md) here +- Wiki with some example use cases and in depth explanations of some the library behaviours. + +##### New features :toolbox: + +- **Added 6 utilities:** + +1. `getFarthestChromaFrom` +2. `getFarthestHueFrom` +3. `getFarthestLightnessFrom` +4. `getNearestChromaFrom` +5. `getNearestHueFrom` +6. `getNearestLightnessFrom` + +Which are similar to i.e `getNearestChroma` but take an additional against param which takes every color in the collection as a subtrahend and returning the specified extremum of the factor being queried. + +##### Enhancements :pill: + +- The array methods for example any function that took an array as the first argument now accepts any `ArrayLike` objects as well as plain objects and `Map` objects. In short its fully generic. If a plain object is passed as the collection it returns a `Map`. This is true for in `filterBy` functions which will return a `Map` with the falsy colors removed. In `sortBy` functions, an ordered `Map` is returned because this object remembers insertion order and is more effecient if you want to perform frequent actions on the collection. +- Converters have been enhanced to take an additional `colorspace` parameter for example `num2rgb`. [See the updated converters here][converters] +- `isAchromatic` now checks if a color is achromatic in additional colorspaces as well. This is optional via a second param `colorspace`. The default colorspace is 'lch' + +##### Bug fixes :snail: + +- Fixed precision issue when working with color tokens as plain objects. by first converting all colors to hex. + +... And more!!! + + +[npm]: https://npmjs.org/package/huetiful-js +[home]: https://prjctimg.io/huetiful +[converters]: https://prjctimg.io/huetiful/converters.html diff --git a/package.json b/package.json index 831b52ec..f422ba0d 100644 --- a/package.json +++ b/package.json @@ -1,108 +1,168 @@ { - "name": "huetiful-js", - "version": "2.3.0", - "type": "module", - "module": "./build/huetiful.esm.js", - "browser": "./build/huetiful.min.js", - "jsdelivr": "./build/huetiful.min.js", - "types": "./build/types/index.d.ts", - "description": "JavaScript utility library for simple 🧮, fast ⏱️ and accessible ♿ color manipulation.", - "dependencies": { - "culori": "^4.0.1" - }, - "devDependencies": { - "@types/culori": "^2.1.0", - "commitizen": "^4.3.0", - "cz-emoji-conventional": "^1.0.2", - "esbuild": "^0.17.19", - "eslint": "^8.57.0", - "github-markdown-css": "^5.6.1", - "jasmine": "5.1.0", - "prettier": "^3.2.0", - "tsup": "^8.2.4", - "typescript": "^5.0.2" - }, - "scripts": { - "test": "npx jasmine", - "code:build": "npx esbuild ./lib/index.ts --format=esm --bundle --outfile=./build/huetiful.min.js --minify --minify-whitespace --minify-syntax & npx esbuild ./lib/index.ts --format=esm --bundle --outfile=./build/huetiful.js --keep-names & npx esbuild ./lib/index.ts --format=esm --bundle --outfile=./build/huetiful.esm.js --external:$'(node -p \"Object.keys(require('./package.json').dependencies).join(',')\")'", - "code:publish": "npm run code:build & npx tsup --format=esm ./lib/index.ts --dts-only --outDir=./build/types", - "code:format": "npx prettier \"./lib/*/index.ts\" --write", - "code:lint": "npx eslint --fix --ext ./lib/*/index.ts", - "start": "npx tsx watch app.ts" - }, - "prettier": { - "semi": true, - "singleQuote": true, - "printWidth": 80, - "tabWidth": 2, - "useTabs": true, - "trailingComma": "none", - "bracketSpacing": true - }, - "eslintIgnore": [ - "*.cjs", - ".mjs" - ], - "config": { - "commitizen": { - "path": "cz-emoji-conventional" - } - }, - "eslintConfig": { - "rules": { - "prefer-const": 0, - "no-console": 1, - "no-ternary": 0, - "no-var": 1, - "no-explicit-any": 0, - "no-useless-escape": 0 - }, - "parserOptions": { - "sourceType": "module", - "ecmaVersion": "latest" - } - }, - "files": [ - "build", - "CHANGELOG.md", - "readme.md", - "contributing.md", - "license" - ], - "repository": { - "type": "git", - "url": "https://github.com/prjctimg/huetiful.git" - }, - "keywords": [ - "small", - "lch", - "D65", - "lab", - "oklch", - "rgb", - "jch", - "color-schemes", - "colors", - "culori", - "palettes", - "colors", - "generator", - "filter", - "sort", - "luminance", - "contrast" - ], - "author": "ディーン・タリサイ", - "email": "prjctimg@outlook.com", - "homepage": "https://huetiful-js.com", - "license": "Apache-2.0", - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "bugs": { - "url": "https://github.com/prjctimg/huetiful/issues" - }, - "publishConfig": { - "registry": "https://npm.pkg.github.com" - } + "name": "huetiful-js", + "version": "3.0.1", + "type": "module", + "module": "./lib/huetiful.esm.js", + "main": "./src/index.js", + "browser": "./lib/huetiful.min.js", + "jsdelivr": "./lib/huetiful.min.js", + "types": "./types/index.d.ts", + "exports": { + ".": "./src/index.js", + "./accessibility": "./src/accessibility/index.js", + "./collection": "./src/collection/index.js", + "./generators": "./src/generators/index.js", + "./wrappers": "./src/wrappers/index.js", + "./palettes": "./src/palettes/index.js", + "./constants": "./src/constants/index.js", + "./utils": "./src/utils/index.js" + }, + "description": "JavaScript utility library for simple 🧮, fast ⏱️ and accessible ♿ color manipulation.", + "dependencies": { + "culori": "^4.0.1" + }, + "devDependencies": { + "@types/culori": "^2.1.0", + "commitizen": "^4.3.0", + "cz-emoji-conventional": "^1.0.2", + "esbuild": "^0.17.19", + "eslint": "^8.57.0", + "jasmine": "5.1.0", + "nodemon": "^3.0.1", + "prettier": "^3.2.0", + "remark-toc": "^9.0.0", + "typedoc": "^0.26.4", + "typedoc-plugin-markdown": "^4.2.0", + "typedoc-plugin-remark": "^1.0.2", + "typescript": "^5.0.2" + }, + "scripts": { + "test": "npx jasmine", + "docs": "npx typedoc && node ./jobs/docs.cjs", + "build": "node ./jobs/build.cjs", + "code:publish": "npm run build & npx tsc", + "format": "npx prettier \"./src/*.js\" --write", + "lint": "npx eslint --fix --ext ./src/*/index.js", + "start": "npx nodemon app.js --watch" + }, + "prettier": { + "semi": true, + "singleQuote": true, + "printWidth": 80, + "tabWidth": 2, + "useTabs": true, + "trailingComma": "none", + "bracketSpacing": true + }, + "typedocOptions": { + "entryPoints": [ + "./src/accessibility/index.js", + "./src/collection/index.js", + "./src/constants/index.js", + "./src/generators/index.js", + "./src/palettes/index.js", + "./src/utilities/index.js", + "./src/wrappers/index.js" + ], + "excludeTags": [ + "@internal" + ], + "outputFileStrategy": "modules", + "fileExtension": ".mdx", + "entryFileName": "index", + "expandObjects": true, + "excludeNotDocumented": true, + "excludeReferences": false, + "plugin": [ + "typedoc-plugin-markdown", + "typedoc-plugin-remark" + ], + "entryPointStrategy": "resolve", + "out": ".temp", + "exclude": [ + "./internal" + ], + "groupOrder": [ + "Function", + "Class", + "Constructor", + "Property", + "Method", + "TypeAlias" + ], + "hidePageTitle": true, + "hidePageHeader": true, + "hideGroupHeadings": false, + "tsconfig": "./tsconfig.json", + "disableSources": true + }, + "eslintIgnore": [ + "*.cjs", + ".mjs" + ], + "config": { + "commitizen": { + "path": "cz-emoji-conventional" + } + }, + "eslintConfig": { + "rules": { + "prefer-const": 0, + "no-console": 1, + "no-ternary": 0, + "no-var": 1, + "no-explicit-any": 0, + "no-useless-escape": 0 + }, + "parserOptions": { + "sourceType": "module", + "ecmaVersion": "latest" + } + }, + "files": [ + "lib", + "src", + "types", + "CHANGELOG.md", + "CODE_OF_CONDUCT.md", + "README.md", + "CONTRIBUTING.md", + "LICENSE.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/prjctimg/huetiful.git" + }, + "keywords": [ + "small", + "lch", + "D65", + "lab", + "oklch", + "rgb", + "jch", + "color-schemes", + "colors", + "culori", + "palettes", + "colors", + "generator", + "filter", + "sort", + "luminance", + "contrast" + ], + "author": "ディーン・タリサイ", + "email": "prjctimg@outlook.com", + "homepage": "https://huetiful-js.com", + "license": "Apache-2.0", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "bugs": { + "url": "https://github.com/prjctimg/huetiful/issues" + }, + "publishConfig": { + "registry": "https://npm.pkg.github.com" + } }