From f4343d1a9369dd357b8565bd80f6efbcca4b39c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Valencia=20D=C3=ADaz?= Date: Sun, 6 Nov 2022 21:49:38 -0500 Subject: [PATCH] feat(coral-tokens): adding coral tokens package (#11) * fix: removing defaultCollection * feat(coral-tokens): adding style dictionary packages * feat(coral-tokens): adding shades tokens + lightness variables * feat(coral-tokens): adding color custom transform for shades * feat(coral-tokens): adding transform model * feat(coral-tokens): adding shades transform to custom transforms index * feat(coral-tokens): generation coral-tokens package * fix: update actions version * fix(coral-tokens): fix formatting issues * fix(coral-angular): ignoring generated files from linting * fix: removing wrong dependency * fix: updating yarn.lock --- .github/workflows/ci.yml | 4 +- nx.json | 3 - package.json | 3 + packages/coral-angular/.eslintignore | 1 + packages/coral-angular/project.json | 3 +- packages/coral-tokens/.eslintrc.json | 18 ++ packages/coral-tokens/project.json | 25 +++ .../src/extensions/transforms/index.ts | 10 + .../shades-transform/color-transform.ts | 26 +++ .../transforms/shades-transform/transform.ts | 14 ++ .../extensions/transforms/transform.model.ts | 6 + .../coral-tokens/src/tokens/color/shades.json | 181 ++++++++++++++++++ .../coral-tokens/src/tokens/lightness.json | 3 + .../coral-tokens/style-dictionary.config.ts | 25 +++ packages/coral-tokens/tsconfig.json | 10 + workspace.json | 3 +- yarn.lock | 117 ++++++++++- 17 files changed, 443 insertions(+), 9 deletions(-) create mode 100644 packages/coral-angular/.eslintignore create mode 100644 packages/coral-tokens/.eslintrc.json create mode 100644 packages/coral-tokens/project.json create mode 100644 packages/coral-tokens/src/extensions/transforms/index.ts create mode 100644 packages/coral-tokens/src/extensions/transforms/shades-transform/color-transform.ts create mode 100644 packages/coral-tokens/src/extensions/transforms/shades-transform/transform.ts create mode 100644 packages/coral-tokens/src/extensions/transforms/transform.model.ts create mode 100644 packages/coral-tokens/src/tokens/color/shades.json create mode 100644 packages/coral-tokens/src/tokens/lightness.json create mode 100644 packages/coral-tokens/style-dictionary.config.ts create mode 100644 packages/coral-tokens/tsconfig.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 13eec4d..9749827 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ env: jobs: ci: name: Nx Cloud - Main Job - uses: nrwl/ci/.github/workflows/nx-cloud-main.yml@v0.7 + uses: nrwl/ci/.github/workflows/nx-cloud-main.yml@v0.8.1 with: number-of-agents: 3 init-commands: | @@ -27,7 +27,7 @@ jobs: agents: name: Nx Cloud - Agents - uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.7 + uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.8.1 with: number-of-agents: 3 diff --git a/nx.json b/nx.json index 4599610..41fabda 100644 --- a/nx.json +++ b/nx.json @@ -14,9 +14,6 @@ } } }, - "cli": { - "defaultCollection": "@nxext/stencil" - }, "targetDefaults": { "build": { "dependsOn": ["^build"] diff --git a/package.json b/package.json index e359873..c8b6e28 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@nrwl/web": "14.7.13", "@nrwl/workspace": "14.7.13", "@nxext/stencil": "^14.0.6", + "@nxkit/style-dictionary": "^0.0.4", "@stencil/angular-output-target": "^0.4.0", "@stencil/core": "2.17.1", "@stencil/react-output-target": "^0.3.1", @@ -49,6 +50,7 @@ "@typescript-eslint/eslint-plugin": "^5.36.1", "@typescript-eslint/parser": "^5.36.1", "babel-jest": "27.4.1", + "chroma-js": "^2.4.2", "cypress": "^10.7.0", "eslint": "~8.15.0", "eslint-config-prettier": "8.1.0", @@ -70,6 +72,7 @@ "prettier": "^2.6.2", "puppeteer": "^15.5.0", "react-test-renderer": "18.2.0", + "style-dictionary": "^3.7.1", "ts-jest": "27.1.5", "ts-node": "10.9.1", "tsconfig-paths-webpack-plugin": "4.0.0", diff --git a/packages/coral-angular/.eslintignore b/packages/coral-angular/.eslintignore new file mode 100644 index 0000000..d2b1e9c --- /dev/null +++ b/packages/coral-angular/.eslintignore @@ -0,0 +1 @@ +packages/coral-angular/src/lib/generated \ No newline at end of file diff --git a/packages/coral-angular/project.json b/packages/coral-angular/project.json index 5e56c58..adc6975 100644 --- a/packages/coral-angular/project.json +++ b/packages/coral-angular/project.json @@ -36,7 +36,8 @@ "lintFilePatterns": [ "packages/coral-angular/**/*.ts", "packages/coral-angular/**/*.html" - ] + ], + "ignorePath": "packages/coral-angular/.eslintignore" } } }, diff --git a/packages/coral-tokens/.eslintrc.json b/packages/coral-tokens/.eslintrc.json new file mode 100644 index 0000000..9d9c0db --- /dev/null +++ b/packages/coral-tokens/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/packages/coral-tokens/project.json b/packages/coral-tokens/project.json new file mode 100644 index 0000000..5261441 --- /dev/null +++ b/packages/coral-tokens/project.json @@ -0,0 +1,25 @@ +{ + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "projectType": "application", + "sourceRoot": "packages/coral-tokens/src", + "targets": { + "build": { + "executor": "@nxkit/style-dictionary:build", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "dist/packages/coral-tokens", + "styleDictionaryConfig": "packages/coral-tokens/style-dictionary.config.ts", + "tsConfig": "packages/coral-tokens/tsconfig.json", + "customTransforms": "packages/coral-tokens/src/extensions/transforms/index.ts" + } + }, + "lint": { + "executor": "@nrwl/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": ["packages/coral-tokens/**/*.{js,ts}"] + } + } + }, + "tags": [] +} diff --git a/packages/coral-tokens/src/extensions/transforms/index.ts b/packages/coral-tokens/src/extensions/transforms/index.ts new file mode 100644 index 0000000..d88c2ee --- /dev/null +++ b/packages/coral-tokens/src/extensions/transforms/index.ts @@ -0,0 +1,10 @@ +import { CustomTransformsBuilder } from '@nxkit/style-dictionary'; +import { ShadesTransform } from './shades-transform/transform'; + +const customTransformsBuilder: CustomTransformsBuilder = () => { + return { + [ShadesTransform.name]: ShadesTransform.transform, + }; +}; + +export default customTransformsBuilder; diff --git a/packages/coral-tokens/src/extensions/transforms/shades-transform/color-transform.ts b/packages/coral-tokens/src/extensions/transforms/shades-transform/color-transform.ts new file mode 100644 index 0000000..c1222d5 --- /dev/null +++ b/packages/coral-tokens/src/extensions/transforms/shades-transform/color-transform.ts @@ -0,0 +1,26 @@ +// #NOTE: https://github.com/amzn/style-dictionary/tree/main/examples/advanced/transitive-transforms + +import * as chroma from 'chroma-js'; + +const setHslColor = (color: chroma.Color, lightness: number) => { + const [h, s] = color.hsl(); + return chroma(h, s, lightness / 100, 'hsl'); +}; + +export const colorTransform = (token) => { + const { value, modify = [] } = token; + let color = chroma(value); + + // iterate over the modify array (see tokens/color.json) + // and apply each modification in order + modify.forEach(({ type, amount }) => { + // modifier type must match a method name in chromajs + // https://gka.github.io/chroma.js/ + // chroma methods can be chained, so each time we override the color variable + // we can still call other chroma methods, similar to + // chroma(value).brighten(1).darken(1).hex(); + color = setHslColor(color, amount); + }); + + return color.hex(); +}; diff --git a/packages/coral-tokens/src/extensions/transforms/shades-transform/transform.ts b/packages/coral-tokens/src/extensions/transforms/shades-transform/transform.ts new file mode 100644 index 0000000..7ba18e2 --- /dev/null +++ b/packages/coral-tokens/src/extensions/transforms/shades-transform/transform.ts @@ -0,0 +1,14 @@ +import { CustomTransform } from '../transform.model'; +import { colorTransform } from './color-transform'; + +export const ShadesTransform: CustomTransform = { + name: 'shades-transform', + transform: { + type: `value`, + // only transforms that have transitive: true will be applied to tokens + // that alias/reference other tokens + transitive: true, + matcher: (token) => token?.attributes?.category === 'color' && token.modify, + transformer: colorTransform, + }, +}; diff --git a/packages/coral-tokens/src/extensions/transforms/transform.model.ts b/packages/coral-tokens/src/extensions/transforms/transform.model.ts new file mode 100644 index 0000000..1432e03 --- /dev/null +++ b/packages/coral-tokens/src/extensions/transforms/transform.model.ts @@ -0,0 +1,6 @@ +import { Transform } from 'style-dictionary'; + +export interface CustomTransform { + name: string; + transform: Transform; +} diff --git a/packages/coral-tokens/src/tokens/color/shades.json b/packages/coral-tokens/src/tokens/color/shades.json new file mode 100644 index 0000000..64fe88f --- /dev/null +++ b/packages/coral-tokens/src/tokens/color/shades.json @@ -0,0 +1,181 @@ +{ + "color": { + "primary": { + "0": { + "value": "#751aff" + }, + "10": { + "value": "{color.primary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.1}" + } + ] + }, + "20": { + "value": "{color.primary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.2}" + } + ] + }, + "30": { + "value": "{color.primary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.3}" + } + ] + }, + "40": { + "value": "{color.primary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.4}" + } + ] + }, + "50": { + "value": "{color.primary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.5}" + } + ] + }, + "60": { + "value": "{color.primary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.6}" + } + ] + } + }, + "secondary": { + "0": { + "value": "#ff751a" + }, + "10": { + "value": "{color.secondary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.1}" + } + ] + }, + "20": { + "value": "{color.secondary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.2}" + } + ] + }, + "30": { + "value": "{color.secondary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.3}" + } + ] + }, + "40": { + "value": "{color.secondary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.4}" + } + ] + }, + "50": { + "value": "{color.secondary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.5}" + } + ] + }, + "60": { + "value": "{color.secondary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.6}" + } + ] + } + }, + "tertiary": { + "0": { + "value": "#1aff94" + }, + "10": { + "value": "{color.tertiary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.1}" + } + ] + }, + "20": { + "value": "{color.tertiary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.2}" + } + ] + }, + "30": { + "value": "{color.tertiary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.3}" + } + ] + }, + "40": { + "value": "{color.tertiary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.4}" + } + ] + }, + "50": { + "value": "{color.tertiary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.5}" + } + ] + }, + "60": { + "value": "{color.tertiary.0}", + "modify": [ + { + "type": "set", + "amount": "{lightness.6}" + } + ] + } + } + } +} diff --git a/packages/coral-tokens/src/tokens/lightness.json b/packages/coral-tokens/src/tokens/lightness.json new file mode 100644 index 0000000..e74614d --- /dev/null +++ b/packages/coral-tokens/src/tokens/lightness.json @@ -0,0 +1,3 @@ +{ + "lightness": [55, 50, 45, 40, 35, 30, 25, 20] +} diff --git a/packages/coral-tokens/style-dictionary.config.ts b/packages/coral-tokens/style-dictionary.config.ts new file mode 100644 index 0000000..0ccb0b7 --- /dev/null +++ b/packages/coral-tokens/style-dictionary.config.ts @@ -0,0 +1,25 @@ +import { Config } from 'style-dictionary'; + +const config: Config = { + source: ['src/tokens/**/*.json'], + platforms: { + scss: { + transformGroup: 'scss', + buildPath: 'scss/', + transforms: [ + `attribute/cti`, + `name/cti/kebab`, + `shades-transform`, + `color/hex`, + ], + files: [ + { + destination: '_variables.scss', + format: 'scss/variables', + }, + ], + }, + }, +}; + +export default config; diff --git a/packages/coral-tokens/tsconfig.json b/packages/coral-tokens/tsconfig.json new file mode 100644 index 0000000..57e3147 --- /dev/null +++ b/packages/coral-tokens/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "sourceMap": false, + "outDir": "../../dist/out-tsc", + "allowJs": true, + "types": ["node"] + }, + "include": ["src/**/*.ts", "src/**/*.js", "style-dictionary.config.ts"] +} diff --git a/workspace.json b/workspace.json index f054b44..9103fc9 100644 --- a/workspace.json +++ b/workspace.json @@ -4,6 +4,7 @@ "projects": { "coral": "packages/coral", "coral-angular": "packages/coral-angular", - "coral-react": "packages/coral-react" + "coral-react": "packages/coral-react", + "coral-tokens": "packages/coral-tokens" } } diff --git a/yarn.lock b/yarn.lock index cc77617..3077e05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3735,6 +3735,11 @@ "@nrwl/devkit" "14.5.2" ignore "^5.2.0" +"@nxkit/style-dictionary@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@nxkit/style-dictionary/-/style-dictionary-0.0.4.tgz#2f006266d8499e16ca14fdde47699dd89e2401ef" + integrity sha512-5Uotke81tynBPm7CATr0ATdkDEXjxF8kEfaG/ql8ZbTfmQ39ObrBmFDtCBsxwzrHhK2x9uB2KhLxGVxibXeM3g== + "@octokit/auth-token@^3.0.0": version "3.0.1" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.1.tgz#88bc2baf5d706cb258474e722a720a8365dff2ec" @@ -7346,6 +7351,15 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001394, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz#30f67d55a865da43e0aeec003f073ea8764d5d7c" integrity sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA== +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -7393,6 +7407,24 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -7467,6 +7499,11 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +chroma-js@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.4.2.tgz#dffc214ed0c11fa8eefca2c36651d8e57cbfb2b0" + integrity sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A== + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -7842,6 +7879,15 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -10626,7 +10672,7 @@ glob@8.0.3, glob@^8.0.0, glob@^8.0.1: minimatch "^5.0.1" once "^1.3.0" -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -10955,6 +11001,14 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -13060,7 +13114,7 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@2.x, json5@^2.1.2, json5@^2.1.3, json5@^2.2.1: +json5@2.x, json5@^2.1.2, json5@^2.1.3, json5@^2.2.0, json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -15192,6 +15246,14 @@ path-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -17405,6 +17467,15 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -17586,6 +17657,14 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -18100,6 +18179,21 @@ strong-log-transformer@^2.1.0: minimist "^1.2.0" through "^2.3.4" +style-dictionary@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/style-dictionary/-/style-dictionary-3.7.1.tgz#d61c980513d7bb0a1946a9fab31491a672d0f6a2" + integrity sha512-yYU9Z/J8Znj9T9oJVjo8VOYamrOxv0UbBKPjhSt+PharxrhyQCM4RWb71fgEfv2pK9KO8G83/0ChDNQZ1mn0wQ== + dependencies: + chalk "^4.0.0" + change-case "^4.1.2" + commander "^8.3.0" + fs-extra "^10.0.0" + glob "^7.2.0" + json5 "^2.2.0" + jsonc-parser "^3.0.0" + lodash "^4.17.15" + tinycolor2 "^1.4.1" + style-inject@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" @@ -18462,6 +18556,11 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +tinycolor2@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -19069,6 +19168,20 @@ update-browserslist-db@^1.0.9: escalade "^3.1.1" picocolors "^1.0.0" +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"