From bee6054f8da67e26dcfdf572103eebabbd6443c0 Mon Sep 17 00:00:00 2001 From: Harsohail Brar <47438886+harsohailB@users.noreply.github.com> Date: Sun, 22 May 2022 13:14:09 -0600 Subject: feat: color module (#801) Co-authored-by: Shinigami --- src/definitions/color.ts | 15 + src/definitions/commerce.ts | 4 - src/definitions/definitions.ts | 2 + src/definitions/index.ts | 1 + src/faker.ts | 2 + src/index.ts | 9 + src/locales/ar/color/human.ts | 34 ++ src/locales/ar/color/index.ts | 12 + src/locales/ar/commerce/color.ts | 34 -- src/locales/ar/commerce/index.ts | 2 - src/locales/ar/index.ts | 2 + src/locales/az/color/human.ts | 20 ++ src/locales/az/color/index.ts | 12 + src/locales/az/commerce/color.ts | 20 -- src/locales/az/commerce/index.ts | 2 - src/locales/az/index.ts | 2 + src/locales/el/color/human.ts | 19 + src/locales/el/color/index.ts | 12 + src/locales/el/commerce/color.ts | 19 - src/locales/el/commerce/index.ts | 2 - src/locales/el/index.ts | 2 + src/locales/en/color/human.ts | 33 ++ src/locales/en/color/index.ts | 14 + src/locales/en/color/space.ts | 43 +++ src/locales/en/commerce/color.ts | 33 -- src/locales/en/commerce/index.ts | 2 - src/locales/en/index.ts | 2 + src/locales/es/color/human.ts | 11 + src/locales/es/color/index.ts | 12 + src/locales/es/commerce/color.ts | 11 - src/locales/es/commerce/index.ts | 2 - src/locales/es/index.ts | 2 + src/locales/es_MX/color/human.ts | 33 ++ src/locales/es_MX/color/index.ts | 12 + src/locales/es_MX/commerce/color.ts | 33 -- src/locales/es_MX/commerce/index.ts | 2 - src/locales/es_MX/index.ts | 2 + src/locales/fa/color/human.ts | 22 ++ src/locales/fa/color/index.ts | 12 + src/locales/fa/commerce/color.ts | 22 -- src/locales/fa/commerce/index.ts | 2 - src/locales/fa/index.ts | 2 + src/locales/he/color/human.ts | 33 ++ src/locales/he/color/index.ts | 12 + src/locales/he/commerce/color.ts | 33 -- src/locales/he/commerce/index.ts | 2 - src/locales/he/index.ts | 2 + src/locales/hy/color/human.ts | 14 + src/locales/hy/color/index.ts | 12 + src/locales/hy/commerce/color.ts | 14 - src/locales/hy/commerce/index.ts | 12 - src/locales/hy/index.ts | 4 +- src/locales/lv/color/human.ts | 25 ++ src/locales/lv/color/index.ts | 12 + src/locales/lv/commerce/color.ts | 25 -- src/locales/lv/commerce/index.ts | 2 - src/locales/lv/index.ts | 2 + src/locales/nl/color/human.ts | 38 ++ src/locales/nl/color/index.ts | 12 + src/locales/nl/commerce/color.ts | 38 -- src/locales/nl/commerce/index.ts | 2 - src/locales/nl/index.ts | 2 + src/locales/pt_BR/color/human.ts | 47 +++ src/locales/pt_BR/color/index.ts | 12 + src/locales/pt_BR/commerce/color.ts | 47 --- src/locales/pt_BR/commerce/index.ts | 2 - src/locales/pt_BR/index.ts | 2 + src/locales/pt_PT/color/human.ts | 29 ++ src/locales/pt_PT/color/index.ts | 12 + src/locales/pt_PT/commerce/color.ts | 29 -- src/locales/pt_PT/commerce/index.ts | 2 - src/locales/pt_PT/index.ts | 2 + src/locales/ru/color/human.ts | 33 ++ src/locales/ru/color/index.ts | 12 + src/locales/ru/commerce/color.ts | 33 -- src/locales/ru/commerce/index.ts | 2 - src/locales/ru/index.ts | 2 + src/locales/sv/color/human.ts | 17 + src/locales/sv/color/index.ts | 12 + src/locales/sv/commerce/color.ts | 17 - src/locales/sv/commerce/index.ts | 2 - src/locales/sv/index.ts | 2 + src/locales/tr/color/human.ts | 33 ++ src/locales/tr/color/index.ts | 12 + src/locales/tr/commerce/color.ts | 33 -- src/locales/tr/commerce/index.ts | 2 - src/locales/tr/index.ts | 2 + src/locales/ur/color/human.ts | 15 + src/locales/ur/color/index.ts | 12 + src/locales/ur/commerce/color.ts | 15 - src/locales/ur/commerce/index.ts | 2 - src/locales/ur/index.ts | 2 + src/modules/color/index.ts | 696 ++++++++++++++++++++++++++++++++++++ src/modules/commerce/index.ts | 15 +- src/modules/random/index.ts | 2 +- src/modules/vehicle/index.ts | 2 +- 96 files changed, 1477 insertions(+), 512 deletions(-) create mode 100644 src/definitions/color.ts create mode 100644 src/locales/ar/color/human.ts create mode 100644 src/locales/ar/color/index.ts delete mode 100644 src/locales/ar/commerce/color.ts create mode 100644 src/locales/az/color/human.ts create mode 100644 src/locales/az/color/index.ts delete mode 100644 src/locales/az/commerce/color.ts create mode 100644 src/locales/el/color/human.ts create mode 100644 src/locales/el/color/index.ts delete mode 100644 src/locales/el/commerce/color.ts create mode 100644 src/locales/en/color/human.ts create mode 100644 src/locales/en/color/index.ts create mode 100644 src/locales/en/color/space.ts delete mode 100644 src/locales/en/commerce/color.ts create mode 100644 src/locales/es/color/human.ts create mode 100644 src/locales/es/color/index.ts delete mode 100644 src/locales/es/commerce/color.ts create mode 100644 src/locales/es_MX/color/human.ts create mode 100644 src/locales/es_MX/color/index.ts delete mode 100644 src/locales/es_MX/commerce/color.ts create mode 100644 src/locales/fa/color/human.ts create mode 100644 src/locales/fa/color/index.ts delete mode 100644 src/locales/fa/commerce/color.ts create mode 100644 src/locales/he/color/human.ts create mode 100644 src/locales/he/color/index.ts delete mode 100644 src/locales/he/commerce/color.ts create mode 100644 src/locales/hy/color/human.ts create mode 100644 src/locales/hy/color/index.ts delete mode 100644 src/locales/hy/commerce/color.ts delete mode 100644 src/locales/hy/commerce/index.ts create mode 100644 src/locales/lv/color/human.ts create mode 100644 src/locales/lv/color/index.ts delete mode 100644 src/locales/lv/commerce/color.ts create mode 100644 src/locales/nl/color/human.ts create mode 100644 src/locales/nl/color/index.ts delete mode 100644 src/locales/nl/commerce/color.ts create mode 100644 src/locales/pt_BR/color/human.ts create mode 100644 src/locales/pt_BR/color/index.ts delete mode 100644 src/locales/pt_BR/commerce/color.ts create mode 100644 src/locales/pt_PT/color/human.ts create mode 100644 src/locales/pt_PT/color/index.ts delete mode 100644 src/locales/pt_PT/commerce/color.ts create mode 100644 src/locales/ru/color/human.ts create mode 100644 src/locales/ru/color/index.ts delete mode 100644 src/locales/ru/commerce/color.ts create mode 100644 src/locales/sv/color/human.ts create mode 100644 src/locales/sv/color/index.ts delete mode 100644 src/locales/sv/commerce/color.ts create mode 100644 src/locales/tr/color/human.ts create mode 100644 src/locales/tr/color/index.ts delete mode 100644 src/locales/tr/commerce/color.ts create mode 100644 src/locales/ur/color/human.ts create mode 100644 src/locales/ur/color/index.ts delete mode 100644 src/locales/ur/commerce/color.ts create mode 100644 src/modules/color/index.ts (limited to 'src') diff --git a/src/definitions/color.ts b/src/definitions/color.ts new file mode 100644 index 00000000..a5bbd282 --- /dev/null +++ b/src/definitions/color.ts @@ -0,0 +1,15 @@ +import type { LocaleEntry } from './definitions'; + +/** + * The possible definitions related to color. + */ +export type ColorDefinitions = LocaleEntry<{ + /** + * Human readable color names + */ + human: string[]; + /** + * Color space names. + */ + space: string[]; +}>; diff --git a/src/definitions/commerce.ts b/src/definitions/commerce.ts index 65aef4ba..8157c1fc 100644 --- a/src/definitions/commerce.ts +++ b/src/definitions/commerce.ts @@ -4,10 +4,6 @@ import type { LocaleEntry } from './definitions'; * The possible definitions related to commerce. */ export type CommerceDefinitions = LocaleEntry<{ - /** - * Human readable color names - */ - color: string[]; /** * Department names inside a shop. */ diff --git a/src/definitions/definitions.ts b/src/definitions/definitions.ts index fae443ba..092c73a2 100644 --- a/src/definitions/definitions.ts +++ b/src/definitions/definitions.ts @@ -1,5 +1,6 @@ import type { AddressDefinitions } from './address'; import type { AnimalDefinitions } from './animal'; +import type { ColorDefinitions } from './color'; import type { CommerceDefinitions } from './commerce'; import type { CompanyDefinitions } from './company'; import type { DatabaseDefinitions } from './database'; @@ -26,6 +27,7 @@ export type LocaleEntry = Partial & export interface Definitions { address: AddressDefinitions; animal: AnimalDefinitions; + color: ColorDefinitions; commerce: CommerceDefinitions; company: CompanyDefinitions; database: DatabaseDefinitions; diff --git a/src/definitions/index.ts b/src/definitions/index.ts index bcfcab0f..7341e241 100644 --- a/src/definitions/index.ts +++ b/src/definitions/index.ts @@ -1,5 +1,6 @@ export type { AddressDefinitions } from './address'; export type { AnimalDefinitions } from './animal'; +export type { ColorDefinitions } from './color'; export type { CommerceDefinitions, CommerceProductNameDefinitions, diff --git a/src/faker.ts b/src/faker.ts index 3a7962c8..a252a3e0 100644 --- a/src/faker.ts +++ b/src/faker.ts @@ -3,6 +3,7 @@ import { FakerError } from './errors/faker-error'; import type { KnownLocale } from './locales'; import { Address } from './modules/address'; import { Animal } from './modules/animal'; +import { Color } from './modules/color'; import { Commerce } from './modules/commerce'; import { Company } from './modules/company'; import { Database } from './modules/database'; @@ -60,6 +61,7 @@ export class Faker { readonly address: Address = new Address(this); readonly animal: Animal = new Animal(this); + readonly color: Color = new Color(this); readonly commerce: Commerce = new Commerce(this); readonly company: Company = new Company(this); readonly database: Database = new Database(this); diff --git a/src/index.ts b/src/index.ts index 64223a09..d437fd9d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,6 +4,7 @@ import allLocales from './locales'; export type { AddressDefinitions, AnimalDefinitions, + ColorDefinitions, CommerceDefinitions, CommerceProductNameDefinitions, CompanyDefinitions, @@ -27,6 +28,14 @@ export type { } from './definitions'; export { FakerError } from './errors/faker-error'; export type { FakerOptions, UsableLocale, UsedLocales } from './faker'; +export type { + Casing, + ColorFormat, + CSSFunction, + CSSSpace, + NumberColorFormat, + StringColorFormat, +} from './modules/color'; export { Gender } from './modules/name'; export type { GenderType } from './modules/name'; export { Faker }; diff --git a/src/locales/ar/color/human.ts b/src/locales/ar/color/human.ts new file mode 100644 index 00000000..71b2a10d --- /dev/null +++ b/src/locales/ar/color/human.ts @@ -0,0 +1,34 @@ +export default [ + 'أحمر', + 'أحمر غامق', + 'أحمر فاتح', + 'أخضر', + 'أخضر غامق', + 'أخضر فاتح', + 'زيتوني', + 'فيروزي', + 'أزرق', + 'أزرق غامق', + 'أزرق فاتح', + 'تركواز', + 'أزرق سماوي', + 'أصفر', + 'ليموني', + 'أرجواني', + 'بنفسجي', + 'أرجواني فاتح', + 'أرجواني خفيف', + 'أبيض', + 'أسود', + 'برتقالي', + 'زهري', + 'بني', + 'كستنائي', + 'أسمر', + 'عاجي', + 'نيلي', + 'ذهبي', + 'فضي', + 'رمادي', + 'رصاصي', +]; diff --git a/src/locales/ar/color/index.ts b/src/locales/ar/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/ar/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/ar/commerce/color.ts b/src/locales/ar/commerce/color.ts deleted file mode 100644 index 71b2a10d..00000000 --- a/src/locales/ar/commerce/color.ts +++ /dev/null @@ -1,34 +0,0 @@ -export default [ - 'أحمر', - 'أحمر غامق', - 'أحمر فاتح', - 'أخضر', - 'أخضر غامق', - 'أخضر فاتح', - 'زيتوني', - 'فيروزي', - 'أزرق', - 'أزرق غامق', - 'أزرق فاتح', - 'تركواز', - 'أزرق سماوي', - 'أصفر', - 'ليموني', - 'أرجواني', - 'بنفسجي', - 'أرجواني فاتح', - 'أرجواني خفيف', - 'أبيض', - 'أسود', - 'برتقالي', - 'زهري', - 'بني', - 'كستنائي', - 'أسمر', - 'عاجي', - 'نيلي', - 'ذهبي', - 'فضي', - 'رمادي', - 'رصاصي', -]; diff --git a/src/locales/ar/commerce/index.ts b/src/locales/ar/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/ar/commerce/index.ts +++ b/src/locales/ar/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/ar/index.ts b/src/locales/ar/index.ts index e3e47d94..643d2823 100644 --- a/src/locales/ar/index.ts +++ b/src/locales/ar/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import date from './date'; import name_ from './name'; @@ -17,6 +18,7 @@ const ar: LocaleDefinition = { separator: ' & ', address, cell_phone, + color, commerce, date, name: name_, diff --git a/src/locales/az/color/human.ts b/src/locales/az/color/human.ts new file mode 100644 index 00000000..c84f6270 --- /dev/null +++ b/src/locales/az/color/human.ts @@ -0,0 +1,20 @@ +export default [ + 'ala', + 'açıq bənövşəyi', + 'ağ', + 'mavi', + 'boz', + 'bənövşəyi', + 'göy rəng', + 'gümüşü', + 'kardinal', + 'narıncı', + 'qara', + 'qırmızı', + 'qəhvəyi', + 'tünd göy', + 'tünd qırmızı', + 'xlorofil', + 'yaşıl', + 'çəhrayı', +]; diff --git a/src/locales/az/color/index.ts b/src/locales/az/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/az/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/az/commerce/color.ts b/src/locales/az/commerce/color.ts deleted file mode 100644 index c84f6270..00000000 --- a/src/locales/az/commerce/color.ts +++ /dev/null @@ -1,20 +0,0 @@ -export default [ - 'ala', - 'açıq bənövşəyi', - 'ağ', - 'mavi', - 'boz', - 'bənövşəyi', - 'göy rəng', - 'gümüşü', - 'kardinal', - 'narıncı', - 'qara', - 'qırmızı', - 'qəhvəyi', - 'tünd göy', - 'tünd qırmızı', - 'xlorofil', - 'yaşıl', - 'çəhrayı', -]; diff --git a/src/locales/az/commerce/index.ts b/src/locales/az/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/az/commerce/index.ts +++ b/src/locales/az/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/az/index.ts b/src/locales/az/index.ts index 05b10fd4..55d7d807 100644 --- a/src/locales/az/index.ts +++ b/src/locales/az/index.ts @@ -4,6 +4,7 @@ */ import type { LocaleDefinition } from '../..'; import address from './address'; +import color from './color'; import commerce from './commerce'; import company from './company'; import date from './date'; @@ -15,6 +16,7 @@ const az: LocaleDefinition = { title: 'Azerbaijani', separator: ' və ', address, + color, commerce, company, date, diff --git a/src/locales/el/color/human.ts b/src/locales/el/color/human.ts new file mode 100644 index 00000000..fb1de99c --- /dev/null +++ b/src/locales/el/color/human.ts @@ -0,0 +1,19 @@ +export default [ + 'κοκκικο', + 'πράσινο', + 'μπλε', + 'κίτρινο', + 'μωβ', + 'λευκό', + 'μαύρο', + 'πορτοκαλί', + 'ροζ', + 'γκρί', + 'βιολετί', + 'τρικουάζ', + 'λαδί', + 'χρυσό', + 'φουξια', + 'κυανό', + 'ασημί', +]; diff --git a/src/locales/el/color/index.ts b/src/locales/el/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/el/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/el/commerce/color.ts b/src/locales/el/commerce/color.ts deleted file mode 100644 index fb1de99c..00000000 --- a/src/locales/el/commerce/color.ts +++ /dev/null @@ -1,19 +0,0 @@ -export default [ - 'κοκκικο', - 'πράσινο', - 'μπλε', - 'κίτρινο', - 'μωβ', - 'λευκό', - 'μαύρο', - 'πορτοκαλί', - 'ροζ', - 'γκρί', - 'βιολετί', - 'τρικουάζ', - 'λαδί', - 'χρυσό', - 'φουξια', - 'κυανό', - 'ασημί', -]; diff --git a/src/locales/el/commerce/index.ts b/src/locales/el/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/el/commerce/index.ts +++ b/src/locales/el/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/el/index.ts b/src/locales/el/index.ts index 430bdf68..69b91f40 100644 --- a/src/locales/el/index.ts +++ b/src/locales/el/index.ts @@ -7,6 +7,7 @@ import address from './address'; import app from './app'; import business from './business'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import company from './company'; import finance from './finance'; @@ -24,6 +25,7 @@ const el: LocaleDefinition = { app, business, cell_phone, + color, commerce, company, finance, diff --git a/src/locales/en/color/human.ts b/src/locales/en/color/human.ts new file mode 100644 index 00000000..6a9071ae --- /dev/null +++ b/src/locales/en/color/human.ts @@ -0,0 +1,33 @@ +export default [ + 'red', + 'green', + 'blue', + 'yellow', + 'purple', + 'mint green', + 'teal', + 'white', + 'black', + 'orange', + 'pink', + 'grey', + 'maroon', + 'violet', + 'turquoise', + 'tan', + 'sky blue', + 'salmon', + 'plum', + 'orchid', + 'olive', + 'magenta', + 'lime', + 'ivory', + 'indigo', + 'gold', + 'fuchsia', + 'cyan', + 'azure', + 'lavender', + 'silver', +]; diff --git a/src/locales/en/color/index.ts b/src/locales/en/color/index.ts new file mode 100644 index 00000000..2f84c198 --- /dev/null +++ b/src/locales/en/color/index.ts @@ -0,0 +1,14 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; +import space from './space'; + +const color: ColorDefinitions = { + human, + space, +}; + +export default color; diff --git a/src/locales/en/color/space.ts b/src/locales/en/color/space.ts new file mode 100644 index 00000000..2fe91419 --- /dev/null +++ b/src/locales/en/color/space.ts @@ -0,0 +1,43 @@ +export default [ + 'CIE 1931 XYZ', + 'CIEUVW', + 'Uniform Color Spaces (UCSs)', + 'CIELUV', + 'CIELAB', + 'HSLuv', + 'sRGB', + 'Adobe RGB', + 'Adobe Wide Gamut RGB', + 'Rec. 2100', + 'ProPhoto RGB Color Space', + 'scRGB', + 'DCI-P3', + 'Display-P3', + 'Rec. 601', + 'Rec. 709', + 'Academy Color Encoding System (ACES)', + 'Rec. 2020', + 'YPbPr', + 'YDbDr', + 'YIQ', + 'xvYCC', + 'sYCC', + 'HSV', + 'HSL', + 'HWB', + 'RGBA', + 'HSLA', + 'LCh', + 'CMY', + 'CMYK', + 'Munsell Color System', + 'Natural Color System (NSC)', + 'Pantone Matching System (PMS)', + 'RAL', + 'Federal Standard 595C', + 'British Standard Colour (BS)', + 'HKS', + 'LMS', + 'RG', + 'RGK', +]; diff --git a/src/locales/en/commerce/color.ts b/src/locales/en/commerce/color.ts deleted file mode 100644 index 6a9071ae..00000000 --- a/src/locales/en/commerce/color.ts +++ /dev/null @@ -1,33 +0,0 @@ -export default [ - 'red', - 'green', - 'blue', - 'yellow', - 'purple', - 'mint green', - 'teal', - 'white', - 'black', - 'orange', - 'pink', - 'grey', - 'maroon', - 'violet', - 'turquoise', - 'tan', - 'sky blue', - 'salmon', - 'plum', - 'orchid', - 'olive', - 'magenta', - 'lime', - 'ivory', - 'indigo', - 'gold', - 'fuchsia', - 'cyan', - 'azure', - 'lavender', - 'silver', -]; diff --git a/src/locales/en/commerce/index.ts b/src/locales/en/commerce/index.ts index 2f3f890d..dab2aa69 100644 --- a/src/locales/en/commerce/index.ts +++ b/src/locales/en/commerce/index.ts @@ -3,13 +3,11 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_description from './product_description'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_description, product_name, diff --git a/src/locales/en/index.ts b/src/locales/en/index.ts index ded35323..75bd0437 100644 --- a/src/locales/en/index.ts +++ b/src/locales/en/index.ts @@ -8,6 +8,7 @@ import animal from './animal'; import app from './app'; import business from './business'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import company from './company'; import database from './database'; @@ -32,6 +33,7 @@ const en: LocaleDefinition = { app, business, cell_phone, + color, commerce, company, database, diff --git a/src/locales/es/color/human.ts b/src/locales/es/color/human.ts new file mode 100644 index 00000000..c30d0894 --- /dev/null +++ b/src/locales/es/color/human.ts @@ -0,0 +1,11 @@ +export default [ + 'Rojo', + 'Azul', + 'Negro', + 'Gris', + 'Blanco', + 'Amarillo', + 'Verde', + 'Morado', + 'Violeta', +]; diff --git a/src/locales/es/color/index.ts b/src/locales/es/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/es/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/es/commerce/color.ts b/src/locales/es/commerce/color.ts deleted file mode 100644 index c30d0894..00000000 --- a/src/locales/es/commerce/color.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default [ - 'Rojo', - 'Azul', - 'Negro', - 'Gris', - 'Blanco', - 'Amarillo', - 'Verde', - 'Morado', - 'Violeta', -]; diff --git a/src/locales/es/commerce/index.ts b/src/locales/es/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/es/commerce/index.ts +++ b/src/locales/es/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/es/index.ts b/src/locales/es/index.ts index dd8a4775..b97f68a2 100644 --- a/src/locales/es/index.ts +++ b/src/locales/es/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import company from './company'; import internet from './internet'; @@ -15,6 +16,7 @@ const es: LocaleDefinition = { title: 'Spanish', address, cell_phone, + color, commerce, company, internet, diff --git a/src/locales/es_MX/color/human.ts b/src/locales/es_MX/color/human.ts new file mode 100644 index 00000000..9d7e4a07 --- /dev/null +++ b/src/locales/es_MX/color/human.ts @@ -0,0 +1,33 @@ +export default [ + 'rojo', + 'verde', + 'azul', + 'amarillo', + 'morado', + 'Menta verde', + 'teal', + 'blanco', + 'negro', + 'Naranja', + 'Rosa', + 'gris', + 'marrón', + 'violeta', + 'turquesa', + 'tan', + 'cielo azul', + 'salmón', + 'ciruela', + 'orquídea', + 'aceituna', + 'magenta', + 'Lima', + 'marfil', + 'índigo', + 'oro', + 'fucsia', + 'cian', + 'azul', + 'lavanda', + 'plata', +]; diff --git a/src/locales/es_MX/color/index.ts b/src/locales/es_MX/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/es_MX/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/es_MX/commerce/color.ts b/src/locales/es_MX/commerce/color.ts deleted file mode 100644 index 9d7e4a07..00000000 --- a/src/locales/es_MX/commerce/color.ts +++ /dev/null @@ -1,33 +0,0 @@ -export default [ - 'rojo', - 'verde', - 'azul', - 'amarillo', - 'morado', - 'Menta verde', - 'teal', - 'blanco', - 'negro', - 'Naranja', - 'Rosa', - 'gris', - 'marrón', - 'violeta', - 'turquesa', - 'tan', - 'cielo azul', - 'salmón', - 'ciruela', - 'orquídea', - 'aceituna', - 'magenta', - 'Lima', - 'marfil', - 'índigo', - 'oro', - 'fucsia', - 'cian', - 'azul', - 'lavanda', - 'plata', -]; diff --git a/src/locales/es_MX/commerce/index.ts b/src/locales/es_MX/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/es_MX/commerce/index.ts +++ b/src/locales/es_MX/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/es_MX/index.ts b/src/locales/es_MX/index.ts index 189829fa..c60536e9 100644 --- a/src/locales/es_MX/index.ts +++ b/src/locales/es_MX/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import company from './company'; import internet from './internet'; @@ -18,6 +19,7 @@ const es_MX: LocaleDefinition = { separator: ' & ', address, cell_phone, + color, commerce, company, internet, diff --git a/src/locales/fa/color/human.ts b/src/locales/fa/color/human.ts new file mode 100644 index 00000000..bc002f4b --- /dev/null +++ b/src/locales/fa/color/human.ts @@ -0,0 +1,22 @@ +export default [ + 'قرمز', + 'سبز', + 'آبی', + 'زرد', + 'بنفش', + 'فیروزه ای', + 'سفید', + 'سیاه', + 'قهوه ای', + 'نارنجی', + 'صورتی', + 'خاکستری', + 'خرمایی', + 'آبی آسمانی', + 'ارغوانی', + 'زیتونی', + 'نیلی', + 'طلایی', + 'لاجوردی', + 'نقره ای', +]; diff --git a/src/locales/fa/color/index.ts b/src/locales/fa/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/fa/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/fa/commerce/color.ts b/src/locales/fa/commerce/color.ts deleted file mode 100644 index bc002f4b..00000000 --- a/src/locales/fa/commerce/color.ts +++ /dev/null @@ -1,22 +0,0 @@ -export default [ - 'قرمز', - 'سبز', - 'آبی', - 'زرد', - 'بنفش', - 'فیروزه ای', - 'سفید', - 'سیاه', - 'قهوه ای', - 'نارنجی', - 'صورتی', - 'خاکستری', - 'خرمایی', - 'آبی آسمانی', - 'ارغوانی', - 'زیتونی', - 'نیلی', - 'طلایی', - 'لاجوردی', - 'نقره ای', -]; diff --git a/src/locales/fa/commerce/index.ts b/src/locales/fa/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/fa/commerce/index.ts +++ b/src/locales/fa/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/fa/index.ts b/src/locales/fa/index.ts index 9f53ec55..b554f801 100644 --- a/src/locales/fa/index.ts +++ b/src/locales/fa/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import company from './company'; import date from './date'; @@ -19,6 +20,7 @@ const fa: LocaleDefinition = { title: 'Farsi', address, cell_phone, + color, commerce, company, date, diff --git a/src/locales/he/color/human.ts b/src/locales/he/color/human.ts new file mode 100644 index 00000000..a6223626 --- /dev/null +++ b/src/locales/he/color/human.ts @@ -0,0 +1,33 @@ +export default [ + 'אדום', + 'ירוק', + 'כחול', + 'צהוב', + 'סגול', + 'ירוק מנטה', + 'ירוק כחלחל', + 'לבן', + 'שחור', + 'כתום', + 'ורוד', + 'אפור', + 'חוּם עֲרמוֹנִי', + 'סָגוֹל', + 'טורקיז', + 'שזוף', + 'שמים כחולים', + 'סלמון', + 'שזיף', + 'סחלב', + 'זית', + 'מגנטה', + 'ליים', + 'שנהב', + 'אינדיגו', + 'זהב', + 'ורוד פוקסיה', + 'טורקיז', + 'צבע תכלת', + 'לבנדר', + 'כסף', +]; diff --git a/src/locales/he/color/index.ts b/src/locales/he/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/he/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/he/commerce/color.ts b/src/locales/he/commerce/color.ts deleted file mode 100644 index a6223626..00000000 --- a/src/locales/he/commerce/color.ts +++ /dev/null @@ -1,33 +0,0 @@ -export default [ - 'אדום', - 'ירוק', - 'כחול', - 'צהוב', - 'סגול', - 'ירוק מנטה', - 'ירוק כחלחל', - 'לבן', - 'שחור', - 'כתום', - 'ורוד', - 'אפור', - 'חוּם עֲרמוֹנִי', - 'סָגוֹל', - 'טורקיז', - 'שזוף', - 'שמים כחולים', - 'סלמון', - 'שזיף', - 'סחלב', - 'זית', - 'מגנטה', - 'ליים', - 'שנהב', - 'אינדיגו', - 'זהב', - 'ורוד פוקסיה', - 'טורקיז', - 'צבע תכלת', - 'לבנדר', - 'כסף', -]; diff --git a/src/locales/he/commerce/index.ts b/src/locales/he/commerce/index.ts index 2f3f890d..dab2aa69 100644 --- a/src/locales/he/commerce/index.ts +++ b/src/locales/he/commerce/index.ts @@ -3,13 +3,11 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_description from './product_description'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_description, product_name, diff --git a/src/locales/he/index.ts b/src/locales/he/index.ts index 1ab59ac8..38a26a29 100644 --- a/src/locales/he/index.ts +++ b/src/locales/he/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import date from './date'; import lorem from './lorem'; @@ -17,6 +18,7 @@ const he: LocaleDefinition = { separator: 'ו ', address, cell_phone, + color, commerce, date, lorem, diff --git a/src/locales/hy/color/human.ts b/src/locales/hy/color/human.ts new file mode 100644 index 00000000..fab129e0 --- /dev/null +++ b/src/locales/hy/color/human.ts @@ -0,0 +1,14 @@ +export default [ + 'կարմիր', + 'կանաչ', + 'կապույտ', + 'դեղին', + 'մանուշակագույն', + 'սպիտակ', + 'սև', + 'նարնջագույն', + 'վարդագույն', + 'մոխրագույն', + 'երկնագույն', + 'ոսկեգույն', +]; diff --git a/src/locales/hy/color/index.ts b/src/locales/hy/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/hy/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/hy/commerce/color.ts b/src/locales/hy/commerce/color.ts deleted file mode 100644 index fab129e0..00000000 --- a/src/locales/hy/commerce/color.ts +++ /dev/null @@ -1,14 +0,0 @@ -export default [ - 'կարմիր', - 'կանաչ', - 'կապույտ', - 'դեղին', - 'մանուշակագույն', - 'սպիտակ', - 'սև', - 'նարնջագույն', - 'վարդագույն', - 'մոխրագույն', - 'երկնագույն', - 'ոսկեգույն', -]; diff --git a/src/locales/hy/commerce/index.ts b/src/locales/hy/commerce/index.ts deleted file mode 100644 index 26b2864f..00000000 --- a/src/locales/hy/commerce/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* - * This file is automatically generated. - * Run 'pnpm run generate:locales' to update. - */ -import type { CommerceDefinitions } from '../../..'; -import color from './color'; - -const commerce: CommerceDefinitions = { - color, -}; - -export default commerce; diff --git a/src/locales/hy/index.ts b/src/locales/hy/index.ts index 2f9da62c..1a1fb639 100644 --- a/src/locales/hy/index.ts +++ b/src/locales/hy/index.ts @@ -4,7 +4,7 @@ */ import type { LocaleDefinition } from '../..'; import address from './address'; -import commerce from './commerce'; +import color from './color'; import date from './date'; import internet from './internet'; import lorem from './lorem'; @@ -15,7 +15,7 @@ const hy: LocaleDefinition = { title: 'Armenian', separator: ' և ', address, - commerce, + color, date, internet, lorem, diff --git a/src/locales/lv/color/human.ts b/src/locales/lv/color/human.ts new file mode 100644 index 00000000..fb99fb4a --- /dev/null +++ b/src/locales/lv/color/human.ts @@ -0,0 +1,25 @@ +export default [ + 'sarkana', + 'zaļa', + 'zila', + 'dzeltena', + 'ruda', + 'zaļgan-zila', + 'balta', + 'melna', + 'oranža', + 'rozā', + 'pelēka', + 'sarkan-brūna', + 'violeta', + 'gaišzila', + 'zeltaina', + 'debess-zila', + 'olīv', + 'purpura', + 'krēma', + 'zelta', + 'красно-пурпурный', + 'lillā', + 'sudrabaina', +]; diff --git a/src/locales/lv/color/index.ts b/src/locales/lv/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/lv/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/lv/commerce/color.ts b/src/locales/lv/commerce/color.ts deleted file mode 100644 index fb99fb4a..00000000 --- a/src/locales/lv/commerce/color.ts +++ /dev/null @@ -1,25 +0,0 @@ -export default [ - 'sarkana', - 'zaļa', - 'zila', - 'dzeltena', - 'ruda', - 'zaļgan-zila', - 'balta', - 'melna', - 'oranža', - 'rozā', - 'pelēka', - 'sarkan-brūna', - 'violeta', - 'gaišzila', - 'zeltaina', - 'debess-zila', - 'olīv', - 'purpura', - 'krēma', - 'zelta', - 'красно-пурпурный', - 'lillā', - 'sudrabaina', -]; diff --git a/src/locales/lv/commerce/index.ts b/src/locales/lv/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/lv/commerce/index.ts +++ b/src/locales/lv/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/lv/index.ts b/src/locales/lv/index.ts index 31fe8253..527d7c3f 100644 --- a/src/locales/lv/index.ts +++ b/src/locales/lv/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import company from './company'; import date from './date'; @@ -18,6 +19,7 @@ const lv: LocaleDefinition = { separator: ' un ', address, cell_phone, + color, commerce, company, date, diff --git a/src/locales/nl/color/human.ts b/src/locales/nl/color/human.ts new file mode 100644 index 00000000..4c8928e1 --- /dev/null +++ b/src/locales/nl/color/human.ts @@ -0,0 +1,38 @@ +export default [ + 'rood', + 'groen', + 'blauw', + 'koningblauw', + 'geel', + 'purper', + 'muntgroen', + 'groenblauw', + 'wit', + 'zwart', + 'oranje', + 'roze', + 'grijs', + 'donkergrijs', + 'oker', + 'terracotta', + 'kastanjebruin', + 'paars', + 'turkoois', + 'bruin', + 'hemelsblauw', + 'zalmroze', + 'oudroze', + 'appelgroen', + 'levend wit', + 'olijfgroen', + 'magenta', + 'limoen', + 'ivoor', + 'indigo', + 'goud', + 'fuchsia', + 'cyaan', + 'azuurblauw', + 'lavendel', + 'zilver', +]; diff --git a/src/locales/nl/color/index.ts b/src/locales/nl/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/nl/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/nl/commerce/color.ts b/src/locales/nl/commerce/color.ts deleted file mode 100644 index 4c8928e1..00000000 --- a/src/locales/nl/commerce/color.ts +++ /dev/null @@ -1,38 +0,0 @@ -export default [ - 'rood', - 'groen', - 'blauw', - 'koningblauw', - 'geel', - 'purper', - 'muntgroen', - 'groenblauw', - 'wit', - 'zwart', - 'oranje', - 'roze', - 'grijs', - 'donkergrijs', - 'oker', - 'terracotta', - 'kastanjebruin', - 'paars', - 'turkoois', - 'bruin', - 'hemelsblauw', - 'zalmroze', - 'oudroze', - 'appelgroen', - 'levend wit', - 'olijfgroen', - 'magenta', - 'limoen', - 'ivoor', - 'indigo', - 'goud', - 'fuchsia', - 'cyaan', - 'azuurblauw', - 'lavendel', - 'zilver', -]; diff --git a/src/locales/nl/commerce/index.ts b/src/locales/nl/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/nl/commerce/index.ts +++ b/src/locales/nl/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/nl/index.ts b/src/locales/nl/index.ts index 7dc23561..6e6fb8a5 100644 --- a/src/locales/nl/index.ts +++ b/src/locales/nl/index.ts @@ -4,6 +4,7 @@ */ import type { LocaleDefinition } from '../..'; import address from './address'; +import color from './color'; import commerce from './commerce'; import company from './company'; import date from './date'; @@ -16,6 +17,7 @@ import phone_number from './phone_number'; const nl: LocaleDefinition = { title: 'Dutch', address, + color, commerce, company, date, diff --git a/src/locales/pt_BR/color/human.ts b/src/locales/pt_BR/color/human.ts new file mode 100644 index 00000000..e2f37a86 --- /dev/null +++ b/src/locales/pt_BR/color/human.ts @@ -0,0 +1,47 @@ +export default [ + 'amarelo', + 'âmbar', + 'ametista', + 'azul', + 'azul celeste', + 'azul marinho', + 'azul petróleo', + 'açafrão', + 'bordô', + 'bronze', + 'caramelo', + 'castanho ', + 'cenoura', + 'cinza', + 'cobre', + 'coral', + 'dourado', + 'escarlate', + 'esmeralda', + 'ferrugem', + 'fuligem', + 'fúchsia', + 'grená', + 'índigo', + 'jade', + 'laranja', + 'lilás', + 'limão', + 'madeira', + 'magenta', + 'marrom', + 'ouro', + 'pele', + 'prata', + 'preto', + 'púrpura', + 'rosa', + 'roxo', + 'salmão', + 'turquesa', + 'verde', + 'verde lima', + 'verde-azulado', + 'vermelho', + 'violeta', +]; diff --git a/src/locales/pt_BR/color/index.ts b/src/locales/pt_BR/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/pt_BR/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/pt_BR/commerce/color.ts b/src/locales/pt_BR/commerce/color.ts deleted file mode 100644 index e2f37a86..00000000 --- a/src/locales/pt_BR/commerce/color.ts +++ /dev/null @@ -1,47 +0,0 @@ -export default [ - 'amarelo', - 'âmbar', - 'ametista', - 'azul', - 'azul celeste', - 'azul marinho', - 'azul petróleo', - 'açafrão', - 'bordô', - 'bronze', - 'caramelo', - 'castanho ', - 'cenoura', - 'cinza', - 'cobre', - 'coral', - 'dourado', - 'escarlate', - 'esmeralda', - 'ferrugem', - 'fuligem', - 'fúchsia', - 'grená', - 'índigo', - 'jade', - 'laranja', - 'lilás', - 'limão', - 'madeira', - 'magenta', - 'marrom', - 'ouro', - 'pele', - 'prata', - 'preto', - 'púrpura', - 'rosa', - 'roxo', - 'salmão', - 'turquesa', - 'verde', - 'verde lima', - 'verde-azulado', - 'vermelho', - 'violeta', -]; diff --git a/src/locales/pt_BR/commerce/index.ts b/src/locales/pt_BR/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/pt_BR/commerce/index.ts +++ b/src/locales/pt_BR/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/pt_BR/index.ts b/src/locales/pt_BR/index.ts index a23c5227..de563dcd 100644 --- a/src/locales/pt_BR/index.ts +++ b/src/locales/pt_BR/index.ts @@ -4,6 +4,7 @@ */ import type { LocaleDefinition } from '../..'; import address from './address'; +import color from './color'; import commerce from './commerce'; import company from './company'; import date from './date'; @@ -15,6 +16,7 @@ import phone_number from './phone_number'; const pt_BR: LocaleDefinition = { title: 'Portuguese (Brazil)', address, + color, commerce, company, date, diff --git a/src/locales/pt_PT/color/human.ts b/src/locales/pt_PT/color/human.ts new file mode 100644 index 00000000..cf682574 --- /dev/null +++ b/src/locales/pt_PT/color/human.ts @@ -0,0 +1,29 @@ +export default [ + 'vermelho', + 'verde', + 'azul', + 'amarelo', + 'roxo', + 'branco', + 'preto', + 'laranja', + 'rosa', + 'cinzento', + 'castanho', + 'violeta', + 'turquesa', + 'bronzeado', + 'salmão', + 'ameixa', + 'orquídea', + 'magenta', + 'lima', + 'marfim', + 'índigo', + 'ouro', + 'fúcsia', + 'ciano', + 'azure', + 'lavanda', + 'prata', +]; diff --git a/src/locales/pt_PT/color/index.ts b/src/locales/pt_PT/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/pt_PT/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/pt_PT/commerce/color.ts b/src/locales/pt_PT/commerce/color.ts deleted file mode 100644 index cf682574..00000000 --- a/src/locales/pt_PT/commerce/color.ts +++ /dev/null @@ -1,29 +0,0 @@ -export default [ - 'vermelho', - 'verde', - 'azul', - 'amarelo', - 'roxo', - 'branco', - 'preto', - 'laranja', - 'rosa', - 'cinzento', - 'castanho', - 'violeta', - 'turquesa', - 'bronzeado', - 'salmão', - 'ameixa', - 'orquídea', - 'magenta', - 'lima', - 'marfim', - 'índigo', - 'ouro', - 'fúcsia', - 'ciano', - 'azure', - 'lavanda', - 'prata', -]; diff --git a/src/locales/pt_PT/commerce/index.ts b/src/locales/pt_PT/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/pt_PT/commerce/index.ts +++ b/src/locales/pt_PT/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/pt_PT/index.ts b/src/locales/pt_PT/index.ts index cd2281d8..ca3a9f30 100644 --- a/src/locales/pt_PT/index.ts +++ b/src/locales/pt_PT/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import date from './date'; import internet from './internet'; @@ -15,6 +16,7 @@ const pt_PT: LocaleDefinition = { title: 'Portuguese (Portugal)', address, cell_phone, + color, commerce, date, internet, diff --git a/src/locales/ru/color/human.ts b/src/locales/ru/color/human.ts new file mode 100644 index 00000000..2f4af921 --- /dev/null +++ b/src/locales/ru/color/human.ts @@ -0,0 +1,33 @@ +export default [ + 'красный', + 'зеленый', + 'синий', + 'желтый', + 'багровый', + 'мятный', + 'зеленовато-голубой', + 'белый', + 'черный', + 'оранжевый', + 'розовый', + 'серый', + 'красно-коричневый', + 'фиолетовый', + 'бирюзовый', + 'желто-коричневый', + 'небесно голубой', + 'оранжево-розовый', + 'темно-фиолетовый', + 'орхидный', + 'оливковый', + 'пурпурный', + 'лимонный', + 'кремовый', + 'сине-фиолетовый', + 'золотой', + 'красно-пурпурный', + 'голубой', + 'лазурный', + 'лиловый', + 'серебряный', +]; diff --git a/src/locales/ru/color/index.ts b/src/locales/ru/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/ru/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/ru/commerce/color.ts b/src/locales/ru/commerce/color.ts deleted file mode 100644 index 2f4af921..00000000 --- a/src/locales/ru/commerce/color.ts +++ /dev/null @@ -1,33 +0,0 @@ -export default [ - 'красный', - 'зеленый', - 'синий', - 'желтый', - 'багровый', - 'мятный', - 'зеленовато-голубой', - 'белый', - 'черный', - 'оранжевый', - 'розовый', - 'серый', - 'красно-коричневый', - 'фиолетовый', - 'бирюзовый', - 'желто-коричневый', - 'небесно голубой', - 'оранжево-розовый', - 'темно-фиолетовый', - 'орхидный', - 'оливковый', - 'пурпурный', - 'лимонный', - 'кремовый', - 'сине-фиолетовый', - 'золотой', - 'красно-пурпурный', - 'голубой', - 'лазурный', - 'лиловый', - 'серебряный', -]; diff --git a/src/locales/ru/commerce/index.ts b/src/locales/ru/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/ru/commerce/index.ts +++ b/src/locales/ru/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/ru/index.ts b/src/locales/ru/index.ts index b5366714..d8e94dee 100644 --- a/src/locales/ru/index.ts +++ b/src/locales/ru/index.ts @@ -4,6 +4,7 @@ */ import type { LocaleDefinition } from '../..'; import address from './address'; +import color from './color'; import commerce from './commerce'; import company from './company'; import date from './date'; @@ -17,6 +18,7 @@ const ru: LocaleDefinition = { title: 'Russian', separator: ' и ', address, + color, commerce, company, date, diff --git a/src/locales/sv/color/human.ts b/src/locales/sv/color/human.ts new file mode 100644 index 00000000..359cbdaa --- /dev/null +++ b/src/locales/sv/color/human.ts @@ -0,0 +1,17 @@ +export default [ + 'vit', + 'silver', + 'grå', + 'svart', + 'röd', + 'grön', + 'blå', + 'gul', + 'lila', + 'indigo', + 'guld', + 'brun', + 'rosa', + 'purpur', + 'korall', +]; diff --git a/src/locales/sv/color/index.ts b/src/locales/sv/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/sv/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/sv/commerce/color.ts b/src/locales/sv/commerce/color.ts deleted file mode 100644 index 359cbdaa..00000000 --- a/src/locales/sv/commerce/color.ts +++ /dev/null @@ -1,17 +0,0 @@ -export default [ - 'vit', - 'silver', - 'grå', - 'svart', - 'röd', - 'grön', - 'blå', - 'gul', - 'lila', - 'indigo', - 'guld', - 'brun', - 'rosa', - 'purpur', - 'korall', -]; diff --git a/src/locales/sv/commerce/index.ts b/src/locales/sv/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/sv/commerce/index.ts +++ b/src/locales/sv/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/sv/index.ts b/src/locales/sv/index.ts index dc0f0985..6c5ffe69 100644 --- a/src/locales/sv/index.ts +++ b/src/locales/sv/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import company from './company'; import date from './date'; @@ -17,6 +18,7 @@ const sv: LocaleDefinition = { title: 'Swedish', address, cell_phone, + color, commerce, company, date, diff --git a/src/locales/tr/color/human.ts b/src/locales/tr/color/human.ts new file mode 100644 index 00000000..313a8afc --- /dev/null +++ b/src/locales/tr/color/human.ts @@ -0,0 +1,33 @@ +export default [ + 'kırmızı', + 'yeşil', + 'mavi', + 'sarı', + 'mor', + 'nane yeşili', + 'mavi', + 'beyaz', + 'siyah', + 'turuncu', + 'pembe', + 'gri', + 'bordo', + 'menekşe', + 'turkuaz', + 'tan', + 'gökyüzü mavisi', + 'somon', + 'erik', + 'orkide', + 'zeytin', + 'eflatun', + 'misket limonu', + 'fildişi', + 'indigo', + 'altın', + 'fuşya', + 'camgöbeği', + 'masmavi', + 'lavanta', + 'gümüş', +]; diff --git a/src/locales/tr/color/index.ts b/src/locales/tr/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/tr/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/tr/commerce/color.ts b/src/locales/tr/commerce/color.ts deleted file mode 100644 index 313a8afc..00000000 --- a/src/locales/tr/commerce/color.ts +++ /dev/null @@ -1,33 +0,0 @@ -export default [ - 'kırmızı', - 'yeşil', - 'mavi', - 'sarı', - 'mor', - 'nane yeşili', - 'mavi', - 'beyaz', - 'siyah', - 'turuncu', - 'pembe', - 'gri', - 'bordo', - 'menekşe', - 'turkuaz', - 'tan', - 'gökyüzü mavisi', - 'somon', - 'erik', - 'orkide', - 'zeytin', - 'eflatun', - 'misket limonu', - 'fildişi', - 'indigo', - 'altın', - 'fuşya', - 'camgöbeği', - 'masmavi', - 'lavanta', - 'gümüş', -]; diff --git a/src/locales/tr/commerce/index.ts b/src/locales/tr/commerce/index.ts index 2f3f890d..dab2aa69 100644 --- a/src/locales/tr/commerce/index.ts +++ b/src/locales/tr/commerce/index.ts @@ -3,13 +3,11 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_description from './product_description'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_description, product_name, diff --git a/src/locales/tr/index.ts b/src/locales/tr/index.ts index 7a7fac2f..70a988b6 100644 --- a/src/locales/tr/index.ts +++ b/src/locales/tr/index.ts @@ -5,6 +5,7 @@ import type { LocaleDefinition } from '../..'; import address from './address'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import internet from './internet'; import lorem from './lorem'; @@ -15,6 +16,7 @@ const tr: LocaleDefinition = { title: 'Turkish', address, cell_phone, + color, commerce, internet, lorem, diff --git a/src/locales/ur/color/human.ts b/src/locales/ur/color/human.ts new file mode 100644 index 00000000..717ffb4c --- /dev/null +++ b/src/locales/ur/color/human.ts @@ -0,0 +1,15 @@ +export default [ + 'سرخ', + 'ہرا', + 'نیلا', + 'پیلا', + 'ہلکا ہرا', + 'سفہد', + 'کالا', + 'نارنجی', + 'پیکا', + 'مہندی', + 'آسمانی', + 'سنہری', + 'چاندنی', +]; diff --git a/src/locales/ur/color/index.ts b/src/locales/ur/color/index.ts new file mode 100644 index 00000000..79cc39f0 --- /dev/null +++ b/src/locales/ur/color/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { ColorDefinitions } from '../../..'; +import human from './human'; + +const color: ColorDefinitions = { + human, +}; + +export default color; diff --git a/src/locales/ur/commerce/color.ts b/src/locales/ur/commerce/color.ts deleted file mode 100644 index 717ffb4c..00000000 --- a/src/locales/ur/commerce/color.ts +++ /dev/null @@ -1,15 +0,0 @@ -export default [ - 'سرخ', - 'ہرا', - 'نیلا', - 'پیلا', - 'ہلکا ہرا', - 'سفہد', - 'کالا', - 'نارنجی', - 'پیکا', - 'مہندی', - 'آسمانی', - 'سنہری', - 'چاندنی', -]; diff --git a/src/locales/ur/commerce/index.ts b/src/locales/ur/commerce/index.ts index 823fcbd2..7e5f4475 100644 --- a/src/locales/ur/commerce/index.ts +++ b/src/locales/ur/commerce/index.ts @@ -3,12 +3,10 @@ * Run 'pnpm run generate:locales' to update. */ import type { CommerceDefinitions } from '../../..'; -import color from './color'; import department from './department'; import product_name from './product_name'; const commerce: CommerceDefinitions = { - color, department, product_name, }; diff --git a/src/locales/ur/index.ts b/src/locales/ur/index.ts index 49aae08e..5794e793 100644 --- a/src/locales/ur/index.ts +++ b/src/locales/ur/index.ts @@ -8,6 +8,7 @@ import animal from './animal'; import app from './app'; import business from './business'; import cell_phone from './cell_phone'; +import color from './color'; import commerce from './commerce'; import date from './date'; import finance from './finance'; @@ -25,6 +26,7 @@ const ur: LocaleDefinition = { app, business, cell_phone, + color, commerce, date, finance, diff --git a/src/modules/color/index.ts b/src/modules/color/index.ts new file mode 100644 index 00000000..8b5fdba2 --- /dev/null +++ b/src/modules/color/index.ts @@ -0,0 +1,696 @@ +import type { Faker } from '../../faker'; + +/** + * Color space names supported by CSS. + */ +export const CSS_SPACES = [ + 'sRGB', + 'display-p3', + 'rec2020', + 'a98-rgb', + 'prophoto-rgb', + 'rec2020', +] as const; + +/** + * Functions supported by CSS to produce color. + */ +export const CSS_FUNCTIONS = [ + 'rgb', + 'rgba', + 'hsl', + 'hsla', + 'hwb', + 'cmyk', + 'lab', + 'lch', + 'color', +] as const; + +export type CSSFunction = typeof CSS_FUNCTIONS[number]; +export type CSSSpace = typeof CSS_SPACES[number]; +export type StringColorFormat = 'css' | 'binary'; +export type NumberColorFormat = 'decimal'; +export type ColorFormat = StringColorFormat | NumberColorFormat; +export type Casing = 'lower' | 'upper' | 'mixed'; + +/** + * Formats the hex format of a generated color string according + * to options specified by user. + * + * @param hexColor Hex color string to be formatted. + * @param options Options object. + * @param options.prefix Prefix of the generated hex color. Defaults to `'0x'`. + * @param options.casing Letter type case of the generated hex color. Defaults to `'mixed'`. + */ +function formatHexColor( + hexColor: string, + options?: { + prefix?: string; + casing?: Casing; + } +): string { + switch (options?.casing) { + case 'upper': + hexColor = hexColor.toUpperCase(); + break; + case 'lower': + hexColor = hexColor.toLowerCase(); + break; + } + if (options?.prefix) { + hexColor = options.prefix + hexColor; + } + return hexColor; +} + +/** + * Converts an array of numbers into binary string format. + * + * @param values Array of values to be converted. + */ +function toBinary(values: number[]): string { + const binary: string[] = values.map((value) => { + const isFloat = value % 1 !== 0; + if (isFloat) { + const buffer = new ArrayBuffer(4); + new DataView(buffer).setFloat32(0, value); + const bytes = new Uint8Array(buffer); + return toBinary(Array.from(bytes)).split(' ').join(''); + } + return (value >>> 0).toString(2).padStart(8, '0'); + }); + return binary.join(' '); +} + +/** + * Converts an array of numbers into CSS accepted format. + * + * @param values Array of values to be converted. + * @param cssFunction CSS function to be generated for the color. Defaults to `'rgb'`. + * @param space Color space to format CSS color function with. Defaults to `'sRGB'`. + */ +function toCSS( + values: number[], + cssFunction: CSSFunction = 'rgb', + space: CSSSpace = 'sRGB' +): string { + const percentage = (value: number) => Math.round(value * 100); + switch (cssFunction) { + case 'rgba': + return `rgba(${values[0]}, ${values[1]}, ${values[2]}, ${values[3]})`; + case 'color': + return `color(${space} ${values[0]} ${values[1]} ${values[2]})`; + case 'cmyk': + return `cmyk(${percentage(values[0])}%, ${percentage( + values[1] + )}%, ${percentage(values[2])}%, ${percentage(values[3])}%)`; + case 'hsl': + return `hsl(${values[0]}deg ${percentage(values[1])}% ${percentage( + values[2] + )}%)`; + case 'hsla': + return `hsl(${values[0]}deg ${percentage(values[1])}% ${percentage( + values[2] + )}% / ${percentage(values[3])})`; + case 'hwb': + return `hwb(${values[0]} ${percentage(values[1])}% ${percentage( + values[2] + )}%)`; + case 'lab': + return `lab(${percentage(values[0])}% ${values[1]} ${values[2]})`; + case 'lch': + return `lch(${percentage(values[0])}% ${values[1]} ${values[2]})`; + case 'rgb': + default: + return `rgb(${values[0]}, ${values[1]}, ${values[2]})`; + } +} + +/** + * Converts an array of color values to the specified color format. + * + * @param values Array of color values to be converted. + * @param format Format of generated RGB color. + * @param cssFunction CSS function to be generated for the color. Defaults to `'rgb'`. + * @param space Color space to format CSS color function with. Defaults to `'sRGB'`. + */ +function toColorFormat( + values: number[], + format: ColorFormat, + cssFunction: CSSFunction = 'rgb', + space: CSSSpace = 'sRGB' +): string | number[] { + switch (format) { + case 'css': + return toCSS(values, cssFunction, space); + case 'binary': + return toBinary(values); + default: + return values; + } +} + +/** + * Module to generate colors. + */ +export class Color { + constructor(private readonly faker: Faker) { + // Bind `this` so namespaced is working correctly + for (const name of Object.getOwnPropertyNames(Color.prototype)) { + if (name === 'constructor' || typeof this[name] !== 'function') { + continue; + } + this[name] = this[name].bind(this); + } + } + + /** + * Returns a random human readable color name. + * + * @example + * faker.color.human() // 'red' + */ + human(): string { + return this.faker.helpers.arrayElement(this.faker.definitions.color.human); + } + + /** + * Returns a random color space name from the worldwide accepted color spaces. + * Source: https://en.wikipedia.org/wiki/List_of_color_spaces_and_their_uses + * + * @example + * faker.color.space() // 'sRGB' + */ + space(): string { + return this.faker.helpers.arrayElement(this.faker.definitions.color.space); + } + + /** + * Returns a random css supported color function name. + * + * @example + * faker.color.cssSupportedFunction() // 'rgb' + */ + cssSupportedFunction(): string { + return this.faker.helpers.arrayElement(CSS_FUNCTIONS); + } + + /** + * Returns a random css supported color space name. + * + * @example + * faker.color.cssSupportedSpace() // 'display-p3' + */ + cssSupportedSpace(): string { + return this.faker.helpers.arrayElement(CSS_SPACES); + } + + /** + * Returns an RGB color. + * + * @example + * faker.color.rgb() // '0xffffFF' + */ + rgb(): string; + /** + * Returns an RGB color. + * + * @param options Options object. + * @param options.prefix Prefix of the generated hex color. Only applied when 'hex' format is used. Defaults to `'0x'`. + * @param options.casing Letter type case of the generated hex color. Only applied when `'hex'` format is used. Defaults to `'mixed'`. + * @param options.format Format of generated RGB color. Defaults to `hex`. + * @param options.includeAlpha Adds an alpha value to the color (RGBA). Defaults to `false`. + * + * @example + * faker.color.rgb() // '0xffffFF' + * faker.color.rgb({ prefix: '#' }) // '#ffffFF' + * faker.color.rgb({ casing: 'upper' }) // '0xFFFFFF' + * faker.color.rgb({ casing: 'lower' }) // '0xffffff' + * faker.color.rgb({ prefix: '#', casing: 'lower' }) // '#ffffff' + * faker.color.rgb({ format: 'hex', casing: 'lower' }) // '#ffffff' + * faker.color.rgb({ format: 'css' }) // 'rgb(255, 0, 0)' + * faker.color.rgb({ format: 'binary' }) // '10000000 00000000 11111111' + */ + rgb(options?: { + prefix?: string; + casing?: Casing; + format?: 'hex' | StringColorFormat; + includeAlpha?: boolean; + }): string; + /** + * Returns an RGB color. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'hex'`. + * @param options.includeAlpha Adds an alpha value to the color (RGBA). Defaults to `false`. + * + * @example + * faker.color.rgb() // '0xffffFF' + * faker.color.rgb({ format: 'decimal' }) // [255, 255, 255] + * faker.color.rgb({ format: 'decimal', includeAlpha: true }) // [255, 255, 255, 0.4] + */ + rgb(options?: { + format?: NumberColorFormat; + includeAlpha?: boolean; + }): number[]; + /** + * Returns an RGB color. + * + * @param options Options object. + * @param options.prefix Prefix of the generated hex color. Only applied when `'hex'` format is used. Defaults to `'0x'`. + * @param options.casing Letter type case of the generated hex color. Only applied when `'hex'` format is used. Defaults to `'mixed'`. + * @param options.format Format of generated RGB color. Defaults to `'hex'`. + * @param options.includeAlpha Adds an alpha value to the color (RGBA). Defaults to `false`. + * + * @example + * faker.color.rgb() // '0xffffFF' + * faker.color.rgb({ prefix: '#' }) // '#ffffFF' + * faker.color.rgb({ casing: 'upper' }) // '0xFFFFFF' + * faker.color.rgb({ casing: 'lower' }) // '0xffffff' + * faker.color.rgb({ prefix: '#', casing: 'lower' }) // '#ffffff' + * faker.color.rgb({ format: 'hex', casing: 'lower' }) // '#ffffff' + * faker.color.rgb({ format: 'decimal' }) // [255, 255, 255] + * faker.color.rgb({ format: 'css' }) // 'rgb(255, 0, 0)' + * faker.color.rgb({ format: 'binary' }) // '10000000 00000000 11111111' + * faker.color.rgb({ format: 'decimal', includeAlpha: true }) // [255, 255, 255, 0.4] + */ + rgb(options?: { + prefix?: string; + casing?: Casing; + format?: 'hex' | ColorFormat; + includeAlpha?: boolean; + }): string | number[]; + rgb(options?: { + prefix?: string; + casing?: Casing; + format?: 'hex' | ColorFormat; + includeAlpha?: boolean; + }): string | number[] { + const { + format = 'hex', + includeAlpha = false, + prefix = '#', + casing = 'lower', + } = options || {}; + options = { format, includeAlpha, prefix, casing }; + let color: string | number[]; + let cssFunction: CSSFunction = 'rgb'; + if (format === 'hex') { + color = this.faker.datatype.hexadecimal(includeAlpha ? 8 : 6).slice(2); + color = formatHexColor(color, options); + return color; + } + color = Array.from({ length: 3 }).map(() => + this.faker.datatype.number({ min: 0, max: 255 }) + ); + if (includeAlpha) { + color.push( + this.faker.datatype.float({ min: 0, max: 1, precision: 0.01 }) + ); + cssFunction = 'rgba'; + } + return toColorFormat(color, format, cssFunction); + } + + /** + * Returns a CMYK color. + * + * @example + * faker.color.cmyk() // [0.31, 0.52, 0.32, 0.43] + */ + cmyk(): number[]; + /** + * Returns a CMYK color. + * + * @param options Options object. + * @param options.format Format of generated CMYK color. Defaults to `'decimal'`. + * + * @example + * faker.color.cmyk() // [0.31, 0.52, 0.32, 0.43] + * faker.color.cmyk({ format: 'css' }) // cmyk(100%, 0%, 0%, 0%) + * faker.color.cmyk({ format: 'binary' }) // (8-32 bits) x 4 + */ + cmyk(options?: { format?: StringColorFormat }): string; + /** + * Returns a CMYK color. + * + * @param options Options object. + * @param options.format Format of generated CMYK color. Defaults to `'decimal'`. + * + * @example + * faker.color.cmyk() // [0.31, 0.52, 0.32, 0.43] + * faker.color.cmyk({ format: 'decimal' }) // [0.31, 0.52, 0.32, 0.43] + */ + cmyk(options?: { format?: NumberColorFormat }): number[]; + /** + * Returns a CMYK color. + * + * @param options Options object. + * @param options.format Format of generated CMYK color. Defaults to `'decimal'`. + * + * @example + * faker.color.cmyk() // [0.31, 0.52, 0.32, 0.43] + * faker.color.cmyk({ format: 'decimal' }) // [0.31, 0.52, 0.32, 0.43] + * faker.color.cmyk({ format: 'css' }) // cmyk(100%, 0%, 0%, 0%) + * faker.color.cmyk({ format: 'binary' }) // (8-32 bits) x 4 + */ + cmyk(options?: { format?: ColorFormat }): string | number[]; + cmyk(options?: { format?: ColorFormat }): string | number[] { + const color: string | number[] = Array.from({ length: 4 }).map(() => + this.faker.datatype.float({ min: 0, max: 1, precision: 0.01 }) + ); + return toColorFormat(color, options?.format || 'decimal', 'cmyk'); + } + + /** + * Returns an HSL color. + * + * @example + * faker.color.hsl() // [201, 0.23, 0.32] + */ + hsl(): number[]; + /** + * Returns an HSL color. + * + * @param options Options object. + * @param options.format Format of generated HSL color. Defaults to `'decimal'`. + * @param options.includeAlpha Adds an alpha value to the color (RGBA). Defaults to `false`. + * + * @example + * faker.color.hsl() // [201, 0.23, 0.32] + * faker.color.hsl({ format: 'css' }) // hsl(0deg, 100%, 80%) + * faker.color.hsl({ format: 'css', includeAlpha: true }) // hsl(0deg 100% 50% / 0.5) + * faker.color.hsl({ format: 'binary' }) // (8-32 bits) x 3 + * faker.color.hsl({ format: 'binary', includeAlpha: true }) // (8-32 bits) x 4 + */ + hsl(options?: { format?: StringColorFormat; includeAlpha?: boolean }): string; + /** + * Returns an HSL color. + * + * @param options Options object. + * @param options.format Format of generated HSL color. Defaults to `'decimal'`. + * @param options.includeAlpha Adds an alpha value to the color (RGBA). Defaults to `false`. + * + * @example + * faker.color.hsl() // [201, 0.23, 0.32] + * faker.color.hsl({ format: 'decimal' }) // [300, 0.21, 0.52] + * faker.color.hsl({ format: 'decimal', includeAlpha: true }) // [300, 0.21, 0.52, 0.28] + */ + hsl(options?: { + format?: NumberColorFormat; + includeAlpha?: boolean; + }): number[]; + /** + * Returns an HSL color. + * + * @param options Options object. + * @param options.format Format of generated HSL color. Defaults to `'decimal'`. + * @param options.includeAlpha Adds an alpha value to the color (RGBA). Defaults to `false`. + * + * @example + * faker.color.hsl() // [201, 0.23, 0.32] + * faker.color.hsl({ format: 'decimal' }) // [300, 0.21, 0.52] + * faker.color.hsl({ format: 'decimal', includeAlpha: true }) // [300, 0.21, 0.52, 0.28] + * faker.color.hsl({ format: 'css' }) // hsl(0deg, 100%, 80%) + * faker.color.hsl({ format: 'css', includeAlpha: true }) // hsl(0deg 100% 50% / 0.5) + * faker.color.hsl({ format: 'binary' }) // (8-32 bits) x 3 + * faker.color.hsl({ format: 'binary', includeAlpha: true }) // (8-32 bits) x 4 + */ + hsl(options?: { + format?: ColorFormat; + includeAlpha?: boolean; + }): string | number[]; + hsl(options?: { + format?: ColorFormat; + includeAlpha?: boolean; + }): string | number[] { + const hsl: number[] = [this.faker.datatype.number({ min: 0, max: 360 })]; + for (let i = 0; i < (options?.includeAlpha ? 3 : 2); i++) { + hsl.push(this.faker.datatype.float({ min: 0, max: 1, precision: 0.01 })); + } + return toColorFormat( + hsl, + options?.format || 'decimal', + options?.includeAlpha ? 'hsla' : 'hsl' + ); + } + + /** + * Returns an HWB color. + * + * @example + * faker.color.hwb() // [201, 0.21, 0.31] + */ + hwb(): number[]; + /** + * Returns an HWB color. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.hwb() // [201, 0.21, 0.31] + * faker.color.hwb({ format: 'css' }) // hwb(194 0% 0%) + * faker.color.hwb({ format: 'binary' }) // (8-32 bits x 3) + */ + hwb(options?: { format?: StringColorFormat }): string; + /** + * Returns an HWB color. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.hwb() // [201, 0.21, 0.31] + * faker.color.hwb({ format: 'decimal' }) // [201, 0.21, 0.31] + */ + hwb(options?: { format?: NumberColorFormat }): number[]; + /** + * Returns an HWB color. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.hwb() // [201, 0.21, 0.31] + * faker.color.hwb({ format: 'decimal' }) // [201, 0.21, 0.31] + * faker.color.hwb({ format: 'css' }) // hwb(194 0% 0%) + * faker.color.hwb({ format: 'binary' }) // (8-32 bits x 3) + */ + hwb(options?: { format?: ColorFormat }): string | number[]; + /** + * Returns an HWB color. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.hwb() // [201, 0.21, 0.31] + * faker.color.hwb({ format: 'decimal' }) // [201, 0.21, 0.31] + * faker.color.hwb({ format: 'css' }) // hwb(194 0% 0%) + * faker.color.hwb({ format: 'binary' }) // (8-32 bits x 3) + */ + hwb(options?: { format?: ColorFormat }): string | number[] { + const hsl: number[] = [this.faker.datatype.number({ min: 0, max: 360 })]; + for (let i = 0; i < 2; i++) { + hsl.push(this.faker.datatype.float({ min: 0, max: 1, precision: 0.01 })); + } + return toColorFormat(hsl, options?.format || 'decimal', 'hwb'); + } + + /** + * Returns a LAB (CIELAB) color. + * + * @example + * faker.color.lab() // [0.832133, -80.3245, 100.1234] + */ + lab(): number[]; + /** + * Returns a LAB (CIELAB) color. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.lab() // [0.832133, -80.3245, 100.1234] + * faker.color.lab({ format: 'css' }) // lab(29.2345% 39.3825 20.0664) + * faker.color.lab({ format: 'binary' }) // (8-32 bits x 3) + */ + lab(options?: { format?: StringColorFormat }): string; + /** + * Returns a LAB (CIELAB) color. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.lab() // [0.832133, -80.3245, 100.1234] + * faker.color.lab({ format: 'decimal' }) // [0.856773, -80.2345, 100.2341] + */ + lab(options?: { format?: NumberColorFormat }): number[]; + /** + * Returns a LAB (CIELAB) color. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.lab() // [0.832133, -80.3245, 100.1234] + * faker.color.lab({ format: 'decimal' }) // [0.856773, -80.2345, 100.2341] + * faker.color.lab({ format: 'css' }) // lab(29.2345% 39.3825 20.0664) + * faker.color.lab({ format: 'binary' }) // (8-32 bits x 3) + */ + lab(options?: { format?: ColorFormat }): string | number[]; + lab(options?: { format?: ColorFormat }): string | number[] { + const lab = [ + this.faker.datatype.float({ min: 0, max: 1, precision: 0.000001 }), + ]; + for (let i = 0; i < 2; i++) { + lab.push( + this.faker.datatype.float({ min: -100, max: 100, precision: 0.0001 }) + ); + } + return toColorFormat(lab, options?.format || 'decimal', 'lab'); + } + + /** + * Returns an LCH color. Even though upper bound of + * chroma in LCH color space is theoretically unbounded, + * it is bounded to 230 as anything above will not + * make a noticeable difference in the browser. + * + * @example + * faker.color.lch() // [0.522345, 72.2, 56.2] + */ + lch(): number[]; + /** + * Returns an LCH color. Even though upper bound of + * chroma in LCH color space is theoretically unbounded, + * it is bounded to 230 as anything above will not + * make a noticeable difference in the browser. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.lch() // [0.522345, 72.2, 56.2] + * faker.color.lch({ format: 'css' }) // lch(52.2345% 72.2 56.2) + * faker.color.lch({ format: 'binary' }) // (8-32 bits x 3) + */ + lch(options?: { format?: StringColorFormat }): string; + /** + * Returns an LCH color. Even though upper bound of + * chroma in LCH color space is theoretically unbounded, + * it is bounded to 230 as anything above will not + * make a noticeable difference in the browser. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.lch() // [0.522345, 72.2, 56.2] + * faker.color.lch({ format: 'decimal' }) // [0.522345, 72.2, 56.2] + */ + lch(options?: { format?: NumberColorFormat }): number[]; + /** + * Returns an LCH color. Even though upper bound of + * chroma in LCH color space is theoretically unbounded, + * it is bounded to 230 as anything above will not + * make a noticeable difference in the browser. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * + * @example + * faker.color.lch() // [0.522345, 72.2, 56.2] + * faker.color.lch({ format: 'decimal' }) // [0.522345, 72.2, 56.2] + * faker.color.lch({ format: 'css' }) // lch(52.2345% 72.2 56.2) + * faker.color.lch({ format: 'binary' }) // (8-32 bits x 3) + */ + lch(options?: { format?: ColorFormat }): string | number[]; + lch(options?: { format?: ColorFormat }): string | number[] { + const lch = [ + this.faker.datatype.float({ min: 0, max: 1, precision: 0.000001 }), + ]; + for (let i = 0; i < 2; i++) { + lch.push( + this.faker.datatype.number({ min: 0, max: 230, precision: 0.1 }) + ); + } + return toColorFormat(lch, options?.format || 'decimal', 'lch'); + } + + /** + * Returns a random color based on CSS color space specified. + * + * @example + * faker.color.colorByCSSColorSpace() // [0.93, 1, 0.82] + */ + colorByCSSColorSpace(): number[]; + /** + * Returns a random color based on CSS color space specified. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * @param options.space Color space to generate the color for. Defaults to `'sRGB'`. + * + * @example + * faker.color.colorByCSSColorSpace() // [0.93, 1, 0.82] + * faker.color.colorByCSSColorSpace({ format: 'css', space: 'display-p3' }) // color(display-p3 0.12 1 0.23) + * faker.color.colorByCSSColorSpace({ format: 'binary' }) // (8-32 bits x 3) + */ + colorByCSSColorSpace(options?: { + format?: StringColorFormat; + space?: CSSSpace; + }): string; + /** + * Returns a random color based on CSS color space specified. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * @param options.space Color space to generate the color for. Defaults to `'sRGB'`. + * + * @example + * faker.color.colorByCSSColorSpace() // [0.93, 1, 0.82] + * faker.color.colorByCSSColorSpace({ format: 'decimal' }) // [0.12, 0.21, 0.31] + */ + colorByCSSColorSpace(options?: { + format?: NumberColorFormat; + space?: CSSSpace; + }): number[]; + /** + * Returns a random color based on CSS color space specified. + * + * @param options Options object. + * @param options.format Format of generated RGB color. Defaults to `'decimal'`. + * @param options.space Color space to generate the color for. Defaults to `'sRGB'`. + * + * @example + * faker.color.colorByCSSColorSpace() // [0.93, 1, 0.82] + * faker.color.colorByCSSColorSpace({ format: 'decimal' }) // [0.12, 0.21, 0.31] + * faker.color.colorByCSSColorSpace({ format: 'css', space: 'display-p3' }) // color(display-p3 0.12 1 0.23) + * faker.color.colorByCSSColorSpace({ format: 'binary' }) // (8-32 bits x 3) + */ + colorByCSSColorSpace(options?: { + format?: ColorFormat; + space?: CSSSpace; + }): string | number[]; + colorByCSSColorSpace(options?: { + format?: ColorFormat; + space?: CSSSpace; + }): string | number[] { + if (options?.format === 'css' && !options?.space) { + options = { ...options, space: 'sRGB' }; + } + const color = Array.from({ length: 3 }).map(() => + this.faker.datatype.float({ min: 0, max: 1, precision: 0.0001 }) + ); + return toColorFormat( + color, + options?.format || 'decimal', + 'color', + options?.space + ); + } +} diff --git a/src/modules/commerce/index.ts b/src/modules/commerce/index.ts index 71ce96d6..d17c473b 100644 --- a/src/modules/commerce/index.ts +++ b/src/modules/commerce/index.ts @@ -1,4 +1,5 @@ -import type { Faker } from '../..'; +import type { Faker } from '../../faker'; +import { deprecated } from '../../internal/deprecated'; /** * Module to generate commerce and product related entries. @@ -19,11 +20,17 @@ export class Commerce { * * @example * faker.commerce.color() // 'red' + * + * @deprecated */ color(): string { - return this.faker.helpers.arrayElement( - this.faker.definitions.commerce.color - ); + deprecated({ + deprecated: 'faker.commerce.color()', + proposed: 'faker.color.human()', + since: 'v7.0.0', + until: 'v8.0.0', + }); + return this.faker.color.human(); } /** diff --git a/src/modules/random/index.ts b/src/modules/random/index.ts index 57783c9b..616dc4dd 100644 --- a/src/modules/random/index.ts +++ b/src/modules/random/index.ts @@ -121,7 +121,7 @@ export class Random { this.faker.commerce.productAdjective, this.faker.commerce.productMaterial, this.faker.commerce.product, - this.faker.commerce.color, + this.faker.color.human, this.faker.company.catchPhraseAdjective, this.faker.company.catchPhraseDescriptor, diff --git a/src/modules/vehicle/index.ts b/src/modules/vehicle/index.ts index fb5cd9f9..903dab53 100644 --- a/src/modules/vehicle/index.ts +++ b/src/modules/vehicle/index.ts @@ -97,7 +97,7 @@ export class Vehicle { * faker.vehicle.color() // 'red' */ color(): string { - return this.faker.commerce.color(); + return this.faker.color.human(); } /** -- cgit v1.2.3