diff --git a/.changeset/pretty-apes-pump.md b/.changeset/pretty-apes-pump.md new file mode 100644 index 000000000..2620703a9 --- /dev/null +++ b/.changeset/pretty-apes-pump.md @@ -0,0 +1,5 @@ +--- +'@primer/primitives': patch +--- + +add option to remove descriptions from css output diff --git a/.changeset/tricky-maps-buy.md b/.changeset/tricky-maps-buy.md new file mode 100644 index 000000000..decfbe32d --- /dev/null +++ b/.changeset/tricky-maps-buy.md @@ -0,0 +1,5 @@ +--- +"@primer/primitives": patch +--- + +Minor docs fixes diff --git a/.github/workflows/a11y-contrast.yml b/.github/workflows/a11y-contrast.yml index 653c04010..bb15cf34d 100644 --- a/.github/workflows/a11y-contrast.yml +++ b/.github/workflows/a11y-contrast.yml @@ -6,32 +6,12 @@ on: - main jobs: - # JOB to run change detection changes: - runs-on: ubuntu-latest - # Required permissions - permissions: - pull-requests: read - # Set job outputs to values from filter step - outputs: - tokens: ${{ steps.filter.outputs.tokens }} - # transformation: ${{ steps.filter.outputs.transformation }} - steps: - # For pull requests it's not necessary to checkout the code - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: | - tokens: - - 'src/tokens/**' - - 'data/**' - - name: No changes to tokens detected - if: ${{ steps.filter.outputs.tokens == 'false' }} - run: echo "No changes to tokens detected, skipping further jobs checking tokens" + uses: ./.github/workflows/hasChanged.yml build: needs: changes - if: ${{ needs.changes.outputs.tokens == 'true' }} + if: needs.changes.outputs.oldTokens == 'true' name: Check design token color contrast runs-on: ubuntu-latest steps: @@ -42,9 +22,10 @@ jobs: uses: actions/setup-node@v3 with: node-version: 18 + cache: 'npm' - name: Install dependencies - run: npm ci --no-audit --no-fund + run: npm ci --no-audit --no-fund --ignore-scripts - name: Build tokens run: npm run build # building v1 as they are currently used for contrast check diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index abdeefc4e..df259539b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,81 +19,22 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 + cache: 'npm' - name: Install dependencies - run: npm ci --legacy-peer-deps --no-audit --no-fund && cd docs && npm ci --legacy-peer-deps --no-audit --no-fund + run: npm ci --no-audit --no-fund --ignore-scripts - name: Build v1 tokens run: npm run build - - name: Build v2 tokens - run: npm run build:tokens + - name: Build v8 tokens + run: npm run build:next - lint: - if: ${{ github.repository == 'primer/primitives' }} - name: Code linting check - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: 16 - - - name: Install dependencies - run: npm ci --legacy-peer-deps --no-audit --no-fund && cd docs && npm ci --legacy-peer-deps --no-audit --no-fund - - - name: Build v1 tokens - run: npm run build - - - name: Build v2 tokens - run: npm run build:tokens - - - name: Lint + - name: Code linting check run: npm run lint - formatting: - if: ${{ github.repository == 'primer/primitives' }} - name: Code formatting check - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: 16 - - - name: Install dependencies - run: npm ci --legacy-peer-deps --no-audit --no-fund && cd docs && npm ci --legacy-peer-deps --no-audit --no-fund - - - name: Lint + - name: Code formatting check run: npm run format:check - test: - if: ${{ github.repository == 'primer/primitives' }} - name: Unit tests - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: 16 - - - name: Install dependencies - run: npm ci --legacy-peer-deps --no-audit --no-fund && cd docs && npm ci --legacy-peer-deps --no-audit --no-fund - - - name: Build v1 tokens - run: npm run build - - - name: Build v2 tokens - run: npm run build:tokens - - name: Run unit tests - run: npm test + run: npm test \ No newline at end of file diff --git a/.github/workflows/consumer_test.yml b/.github/workflows/consumer_test.yml index 44f41f9eb..e42afe729 100644 --- a/.github/workflows/consumer_test.yml +++ b/.github/workflows/consumer_test.yml @@ -11,24 +11,7 @@ env: jobs: changes: - runs-on: ubuntu-latest - # Required permissions - permissions: - pull-requests: read - # Set job outputs to values from filter step - outputs: - outputAffected: ${{ steps.filter.outputs.outputAffected }} - steps: - # For pull requests it's not necessary to checkout the code - - uses: dorny/paths-filter@v2 - id: filter - with: - list-files: shell - filters: | - outputAffected: - - '!(*.md|**/**/*.md|**/**/*.test.ts|**/**/*.test.js|docs/**|storybook/**)' - - name: Detecting changes that effect output - run: echo ${{ steps.filter.outputs.outputAffected == 'true' && 'Committed changes may affect output' || 'Committed changes do not affect output' }} + uses: ./.github/workflows/hasChanged.yml test: needs: changes @@ -48,7 +31,7 @@ jobs: - name: Set up Node uses: actions/setup-node@v3 with: - node-version: '16' + node-version: 16 - name: Caching dependencies uses: actions/cache@v3 @@ -59,7 +42,7 @@ jobs: ${{ runner.os }}-node- - name: Install local dependencies - run: npm install --legacy-peer-deps + run: npm install --legacy-peer-deps --ignore-scripts - name: Install consumer dependencies (reference) run: pushd ${{env.TEST_FOLDER}}; npm install --legacy-peer-deps; popd diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index cd1f8e727..f92f44e0a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -19,3 +19,4 @@ jobs: install: npm ci --legacy-peer-deps --no-audit --no-fund && cd docs && npm ci --legacy-peer-deps --no-audit --no-fund && cd .. build: npm run build:tokens && npm run build && npm run build:next && cd docs && npm run build output_dir: docs/public + diff --git a/.github/workflows/deploy_preview.yml b/.github/workflows/deploy_preview.yml index 94fc2f208..5c2232132 100644 --- a/.github/workflows/deploy_preview.yml +++ b/.github/workflows/deploy_preview.yml @@ -15,10 +15,11 @@ jobs: uses: primer/.github/.github/workflows/deploy_preview.yml@main with: node_version: 18 - install: npm ci --no-audit --no-fund + install: npm ci --no-audit --no-fund --ignore-scripts && npm run install:storybook && npm run install:docs build: npm run build:tokens && npm run build && npm run build:next && cd docs && npm run build:preview output_dir: docs/public + post_storybook: needs: deploy name: Link storybook diff --git a/.github/workflows/ui_test_primitives_diff.yml b/.github/workflows/design_token_diff.yml similarity index 84% rename from .github/workflows/ui_test_primitives_diff.yml rename to .github/workflows/design_token_diff.yml index ec759e228..7855ade54 100644 --- a/.github/workflows/ui_test_primitives_diff.yml +++ b/.github/workflows/design_token_diff.yml @@ -4,8 +4,11 @@ on: pull_request: jobs: + changes: + uses: ./.github/workflows/hasChanged.yml + test: - if: ${{ github.repository == 'primer/primitives' }} + if: ${{ github.repository == 'primer/primitives' && needs.changes.outputs.outputAffected == 'true' }} name: Primitives v2 runs-on: ubuntu-latest steps: @@ -21,7 +24,8 @@ jobs: - name: Set up Node uses: actions/setup-node@v3 with: - node-version: '16' + node-version: 16 + cache: 'npm' - name: Cache dependencies uses: actions/cache@v3 @@ -32,10 +36,10 @@ jobs: ${{ runner.os }}-node- - name: Install dependencies - run: npm install --legacy-peer-deps + run: npm install --legacy-peer-deps --ignore-scripts - name: Install dependencies (reference) - run: pushd temp-main; npm install --legacy-peer-deps; popd + run: pushd temp-main; npm install --legacy-peer-deps --ignore-scripts; popd - name: Build run: npm run build:tokens diff --git a/.github/workflows/diff-v8.yml b/.github/workflows/diff-v8.yml new file mode 100644 index 000000000..6636cd2d4 --- /dev/null +++ b/.github/workflows/diff-v8.yml @@ -0,0 +1,128 @@ +# Posts a comment listing all the variables that changed in a PR +name: Show diff for v8 design token changes +on: + pull_request: + branches-ignore: + - 'changeset-release/**' +jobs: + changes: + uses: ./.github/workflows/hasChanged.yml + + diff: + needs: changes + if: ${{ needs.changes.outputs.tokens == 'true' }} + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Checkout base branch + uses: actions/checkout@v3 + with: + ref: ${{ github.base_ref }} + path: base + + - name: Set up Node + uses: actions/setup-node@v3 + with: + node-version: 16 + cache: 'npm' + + - name: Install dependencies + run: npm ci --no-audit --no-fund --include=dev --ignore-scripts + + - name: Build v8 tokens + run: npm run build:next + + - name: Install dependencies (base) + run: pushd base; npm i --no-audit --no-fund --ignore-scripts; popd + + - name: Build (base) + run: pushd base; npm run build:next; popd + + - name: Install dependecies for diffing + run: npm install shelljs + + - name: Diff v8 tokens + uses: actions/github-script@v6 + with: + script: | + const cssFolder = 'tokens-next-private/css' + const shell = require('shelljs') + const globber = await glob.create(cssFolder + '/**/**/*.css') + const files = await globber.glob() + + // create diffs + const diffs = files.map(file => { + // run diff + const diff = shell.exec(`diff -u ${file.replace(cssFolder, 'base/' + cssFolder)} ${file}`) + // get filename + const regexRunnerPath = new RegExp('^[a-z\/]+\/tokens-next-private', 'g') + const filename = file.replaceAll(regexRunnerPath,'') + + console.log('Checking diff for ' + filename + '...') + + if (diff.stderr) { + console.error(diff.stderr) + core.setFailed(diff.stderr) + } + + if (diff.stdout === '') { + console.log('No diff for ' + filename + '\n') + } else { + console.log(diff.stdout + '\n') + } + + return { + file: filename, + diff: diff.stdout || '' + } + }) + // filter files with no diffs + .filter(item => { + return item.diff !== '' + }) + + // prepare comment body + let body = '## Design Token Diff\n\n' + if (diffs.length === 0) { + body += 'No design tokens changed' + } else { + body += diffs.map(({file, diff}) => + '
' + + `

${file}

\n` + + " \n"+ + " ```diff"+ + ` ${diff}` + + " ```"+ + '\n
' + ).join('\n') + } + // get comments + const {data: comments} = await github.rest.issues.listComments({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo + }); + + // get comment if exists + const existingComment = comments.filter(comment => comment.body.includes('## Design Token Diff')); + // if token issue exists, update it + if(existingComment.length > 0) { + await github.rest.issues.updateComment({ + comment_id: existingComment[0].id, + owner: context.repo.owner, + repo: context.repo.repo, + body + }) + } + + // if comment does not exist, create it + else { + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body + }) + } diff --git a/.github/workflows/diff.yml b/.github/workflows/diff.yml index 73f1ff545..5431fdf87 100644 --- a/.github/workflows/diff.yml +++ b/.github/workflows/diff.yml @@ -5,31 +5,12 @@ on: branches-ignore: - 'changeset-release/**' jobs: - # JOB to run change detection changes: - runs-on: ubuntu-latest - # Required permissions - permissions: - pull-requests: read - # Set job outputs to values from filter step - outputs: - tokens: ${{ steps.filter.outputs.tokens }} - steps: - # For pull requests it's not necessary to checkout the code - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: | - tokens: - - 'src/tokens/**' - - 'data/**' - - name: No changes to tokens detected - if: ${{ steps.filter.outputs.tokens == 'false' }} - run: echo "No changes to tokens detected, skipping further jobs checking tokens" + uses: ./.github/workflows/hasChanged.yml comment: needs: changes - if: ${{ needs.changes.outputs.tokens == 'true' }} + if: ${{ needs.changes.outputs.tokens == 'true' || needs.changes.outputs.oldTokens == 'true' }} runs-on: ubuntu-latest steps: - name: Checkout repository @@ -38,7 +19,8 @@ jobs: - name: Set up node uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 16 + cache: 'npm' - name: Create comment (if necessary) uses: actions/github-script@v5 @@ -80,10 +62,11 @@ jobs: - name: Set up Node uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 16 + cache: 'npm' - name: Install dependencies - run: npm ci --no-audit --no-fund --include=dev + run: npm ci --no-audit --no-fund --include=dev --ignore-scripts - name: Build tokens run: npm run build @@ -92,7 +75,7 @@ jobs: run: npm run build:tokens - name: Install dependencies (base) - run: pushd base; npm i --no-audit --no-fund; popd + run: pushd base; npm i --no-audit --no-fund --ignore-scripts; popd - name: Build (base) run: pushd base; npm run build; popd diff --git a/.github/workflows/hasChanged.yml b/.github/workflows/hasChanged.yml new file mode 100644 index 000000000..dd3e3b0a3 --- /dev/null +++ b/.github/workflows/hasChanged.yml @@ -0,0 +1,85 @@ +name: Check if files or folders have been changed + +on: + workflow_call: + outputs: + outputAffected: + description: "Boolean value indicating changes in any file or folder that has an effect on the output" + value: ${{ jobs.hasChanged.outputs.oldTokens || jobs.hasChanged.outputs.src || jobs.hasChanged.outputs.buildScripts }} + tokens: + description: "Boolean value indicating change in src/tokens folder" + value: ${{ jobs.hasChanged.outputs.tokens }} + oldTokens: + description: "Boolean value indicating change in data folder" + value: ${{ jobs.hasChanged.outputs.oldTokens }} + src: + description: "Boolean value indicating change in src folder" + value: ${{ jobs.hasChanged.outputs.src }} + scripts: + description: "Boolean value indicating change in scripts folder" + value: ${{ jobs.hasChanged.outputs.scripts }} + buildScripts: + description: "Boolean value indicating change in build files in the build folder" + value: ${{ jobs.hasChanged.outputs.buildScripts }} + dependencies: + description: "Boolean value indicating change in dependencies" + value: ${{ jobs.hasChanged.outputs.dependencies }} + docs: + description: "Boolean value indicating change in docs folder" + value: ${{ jobs.hasChanged.outputs.docs }} +jobs: + hasChanged: + name: Checking for changes + runs-on: ubuntu-latest + # Required permissions + permissions: + pull-requests: read + outputs: + outputAffected: ${{ steps.filter.outputs.outputAffected }} + tokens: ${{ steps.filter.outputs.tokens }} + oldTokens: ${{ steps.filter.outputs.oldTokens }} + src: ${{ steps.filter.outputs.src }} + scripts: ${{ steps.filter.outputs.scripts }} + buildScripts: ${{ steps.filter.outputs.buildScripts }} + dependencies: ${{ steps.filter.outputs.dependencies }} + docs: ${{ steps.filter.outputs.docs }} + steps: + - uses: actions/checkout@v3 + - uses: dorny/paths-filter@v2 + id: filter + with: + list-files: shell + filters: | + tokens: + - 'src/tokens/**' + oldTokens: + - 'data/**' + src: + - 'src/**/**.ts' + - 'src/**/**.json' + - 'src/**/**.json5' + scripts: + - 'scripts/**' + buildScripts: + - 'scripts/build.ts' + - 'scripts/buildTokens.ts' + - 'scripts/themes.config.ts' + - 'tsconfig.json' + - 'tsconfig.build.json' + - 'package.json' + dependencies: + - 'package.json' + - 'package-lock.json' + docs: + - 'docs/**' + - name: Detecting changes that effect output + if: steps.filter.outputs.tokens == 'true' || steps.filter.outputs.oldTokens == 'true' || steps.filter.outputs.src == 'true' || steps.filter.outputs.scripts == 'true' || steps.filter.outputs.dependencies == 'true' || steps.filter.outputs.docs == 'true' + run: | + echo Changes detected + echo - tokens: ${{ steps.filter.outputs.tokens }} + echo - oldTokens: ${{ steps.filter.outputs.oldTokens }} + echo - src: ${{ steps.filter.outputs.src }} + echo - scripts: ${{ steps.filter.outputs.scripts }} + echo - buildScripts: ${{ steps.filter.outputs.buildScripts }} + echo - dependencies: ${{ steps.filter.outputs.dependencies }} + echo - docs: ${{ steps.filter.outputs.docs }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 83a70fc1f..2e47f8158 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,8 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 16 + cache: 'npm' - name: Install dependencies run: npm ci --legacy-peer-deps --no-audit --no-fund && pushd docs; npm ci --legacy-peer-deps --no-audit --no-fund; popd diff --git a/.github/workflows/release_candidate.yml b/.github/workflows/release_candidate.yml index a7747d23d..f9fc23eec 100644 --- a/.github/workflows/release_candidate.yml +++ b/.github/workflows/release_candidate.yml @@ -20,7 +20,8 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 16 + cache: 'npm' - name: Install dependencies run: npm ci --legacy-peer-deps diff --git a/__tests__/buildJs/pathToDotNotation.test.js b/__tests__/buildJs/pathToDotNotation.test.js deleted file mode 100644 index e5c4e2a20..000000000 --- a/__tests__/buildJs/pathToDotNotation.test.js +++ /dev/null @@ -1,16 +0,0 @@ -const {pathToDotNotation} = require('../../build') - -// eslint-disable-next-line i18n-text/no-en -describe('Token formatters: dot.notation', () => { - it('returns a valid token name in dot.notation', () => { - expect(pathToDotNotation({path: ['red']})).toBe('red') - expect(pathToDotNotation({path: ['color', 'red']})).toBe('color.red') - expect(pathToDotNotation({path: ['color', 'functional', 'danger']})).toBe('color.functional.danger') - }) - - it('works as expected with empty token path', () => { - expect(pathToDotNotation({path: []})).toBe('') - expect(() => pathToDotNotation({path: null})).toThrowError() - expect(() => pathToDotNotation([])).toThrowError() - }) -}) diff --git a/__tests__/buildJs/pathToKebabCase.test.js b/__tests__/buildJs/pathToKebabCase.test.js deleted file mode 100644 index e9dc33b83..000000000 --- a/__tests__/buildJs/pathToKebabCase.test.js +++ /dev/null @@ -1,16 +0,0 @@ -const {pathToKebabCase} = require('../../build') - -// eslint-disable-next-line i18n-text/no-en -describe('Token formatters: kebab-case', () => { - it('returns a valid token name in kebab-case', () => { - expect(pathToKebabCase({path: ['red']})).toBe('red') - expect(pathToKebabCase({path: ['color', 'red']})).toBe('color-red') - expect(pathToKebabCase({path: ['color', 'functional', 'danger']})).toBe('color-functional-danger') - }) - - it('works as expected with empty token path', () => { - expect(pathToKebabCase({path: []})).toBe('') - expect(() => pathToKebabCase({path: null})).toThrowError() - expect(() => pathToKebabCase([])).toThrowError() - }) -}) diff --git a/__tests__/buildJs/pathToPascalCase.test.js b/__tests__/buildJs/pathToPascalCase.test.js deleted file mode 100644 index c2e1578f0..000000000 --- a/__tests__/buildJs/pathToPascalCase.test.js +++ /dev/null @@ -1,16 +0,0 @@ -const {pathToPascalCase} = require('../../build') - -// eslint-disable-next-line i18n-text/no-en -describe('Token formatters: PascalCase', () => { - test('returns a valid token name in PascalCase', () => { - expect(pathToPascalCase({path: ['red']})).toBe('Red') - expect(pathToPascalCase({path: ['color', 'red']})).toBe('ColorRed') - expect(pathToPascalCase({path: ['color', 'functional', 'danger']})).toBe('ColorFunctionalDanger') - }) - - it('works as expected with empty token path', () => { - expect(pathToPascalCase({path: []})).toBe('') - expect(() => pathToPascalCase({path: null})).toThrowError() - expect(() => pathToPascalCase([])).toThrowError() - }) -}) diff --git a/docs/storybook/.storybook/main.ts b/docs/storybook/.storybook/main.ts index b278de952..9debd0054 100644 --- a/docs/storybook/.storybook/main.ts +++ b/docs/storybook/.storybook/main.ts @@ -7,6 +7,7 @@ const config: StorybookConfig = { '@storybook/addon-interactions', '@storybook/addon-a11y', 'storybook-addon-rem', + 'storybook-addon-paddings', ], framework: { name: '@storybook/react-webpack5', diff --git a/docs/storybook/.storybook/preview.js b/docs/storybook/.storybook/preview.js index d9f134e03..cfe6cfc2d 100644 --- a/docs/storybook/.storybook/preview.js +++ b/docs/storybook/.storybook/preview.js @@ -21,6 +21,14 @@ const preview = { order: ['Color', 'Typography', 'Size', 'Demos', 'Migration'], }, }, + paddings: { + values: [ + {name: 'Small', value: '1rem'}, + {name: 'Medium', value: '2rem'}, + {name: 'None', value: '0px'}, + ], + default: 'Small', + }, }, } @@ -327,7 +335,6 @@ const tempTheme = deepmerge(theme, { export const decorators = [ (Story, context) => { - console.log('test:', context.globals.theme) const {parameters} = context const defaultStoryType = 'swatch' const storyType = parameters.storyType || defaultStoryType diff --git a/docs/storybook/.storybook/storybook.css b/docs/storybook/.storybook/storybook.css index f2ed7738f..5dcef3959 100644 --- a/docs/storybook/.storybook/storybook.css +++ b/docs/storybook/.storybook/storybook.css @@ -23,8 +23,6 @@ .story-wrap { font-family: var(--fontStack-system); color: var(--fgColor-default); - /* background-color: var(--bgColor-default); */ - padding: 1rem; } #storybook-preview-wrapper { @@ -153,3 +151,14 @@ code { border: unset; color: var(--fgColor-default) !important; } + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + word-wrap: normal; + border: 0; +} diff --git a/docs/storybook/package-lock.json b/docs/storybook/package-lock.json index db3d7751a..1d9c268f5 100644 --- a/docs/storybook/package-lock.json +++ b/docs/storybook/package-lock.json @@ -32,10 +32,11 @@ "@storybook/react": "^7.0.6", "@storybook/react-webpack5": "^7.0.6", "@storybook/testing-library": "^0.0.14-next.1", - "@storybook/theming": "6.5.16", + "@storybook/theming": "^7.0.6", "babel-loader": "^8.3.0", "prop-types": "^15.8.1", "storybook": "^7.0.6", + "storybook-addon-paddings": "^5.0.0", "storybook-addon-rem": "^1.3.0", "typescript": "^4.9.4" } @@ -2835,26 +2836,6 @@ } } }, - "node_modules/@storybook/addon-actions/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/addon-backgrounds": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.7.tgz", @@ -2889,26 +2870,6 @@ } } }, - "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/addon-controls": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.7.tgz", @@ -2944,26 +2905,6 @@ } } }, - "node_modules/@storybook/addon-controls/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/addon-docs": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.7.tgz", @@ -3001,26 +2942,6 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/addon-docs/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/addon-essentials": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.7.tgz", @@ -3103,26 +3024,6 @@ } } }, - "node_modules/@storybook/addon-interactions/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/addon-links": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.7.tgz", @@ -3249,26 +3150,6 @@ } } }, - "node_modules/@storybook/addon-toolbars/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/addon-viewport": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.7.tgz", @@ -3302,26 +3183,6 @@ } } }, - "node_modules/@storybook/addon-viewport/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/addons": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-7.0.7.tgz", @@ -3405,26 +3266,6 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/blocks/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/blocks/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3535,26 +3376,6 @@ } } }, - "node_modules/@storybook/builder-webpack5/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { "version": "16.18.24", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.24.tgz", @@ -4011,26 +3832,6 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/components/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/core-client": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.7.tgz", @@ -4553,26 +4354,6 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/manager-api/node_modules/@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@storybook/manager-api/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5125,15 +4906,15 @@ } }, "node_modules/@storybook/theming": { - "version": "6.5.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.16.tgz", - "integrity": "sha512-hNLctkjaYLRdk1+xYTkC1mg4dYz2wSv6SqbLpcKMbkPHTE0ElhddGPHQqB362md/w9emYXNkt1LSMD8Xk9JzVQ==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", + "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.5.16", - "core-js": "^3.8.2", - "memoizerific": "^1.11.3", - "regenerator-runtime": "^0.13.7" + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.7", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" }, "funding": { "type": "opencollective", @@ -5144,20 +4925,6 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/theming/node_modules/@storybook/client-logger": { - "version": "6.5.16", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.16.tgz", - "integrity": "sha512-pxcNaCj3ItDdicPTXTtmYJE3YC1SjxFrBmHcyrN+nffeNyiMuViJdOOZzzzucTUG0wcOOX8jaSyak+nnHg5H1Q==", - "dev": true, - "dependencies": { - "core-js": "^3.8.2", - "global": "^4.4.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, "node_modules/@storybook/types": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.7.tgz", @@ -12814,6 +12581,32 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/storybook-addon-paddings": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/storybook-addon-paddings/-/storybook-addon-paddings-5.0.0.tgz", + "integrity": "sha512-+4x9zlOS82tHg4wmm1j67kiwDho+l7CfOttshczlcFQCOP2mHM3PrpXnxbNus5v6xf46Qh0vnYzD+wg0tfZY3Q==", + "dev": true, + "dependencies": { + "memoizerific": "^1.11.0" + }, + "peerDependencies": { + "@storybook/components": "^7.0.0", + "@storybook/manager-api": "^7.0.0", + "@storybook/preview-api": "^7.0.0", + "@storybook/theming": "^7.0.0", + "@storybook/types": "^7.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/storybook-addon-rem": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/storybook-addon-rem/-/storybook-addon-rem-1.3.0.tgz", @@ -12982,6 +12775,26 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/storybook-addon-rem/node_modules/@storybook/theming": { + "version": "6.5.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.16.tgz", + "integrity": "sha512-hNLctkjaYLRdk1+xYTkC1mg4dYz2wSv6SqbLpcKMbkPHTE0ElhddGPHQqB362md/w9emYXNkt1LSMD8Xk9JzVQ==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "6.5.16", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/storybook-addon-rem/node_modules/isobject": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", @@ -16092,20 +15905,6 @@ "telejson": "^7.0.3", "ts-dedent": "^2.0.0", "uuid": "^9.0.0" - }, - "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - } } }, "@storybook/addon-backgrounds": { @@ -16124,20 +15923,6 @@ "@storybook/types": "7.0.7", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" - }, - "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - } } }, "@storybook/addon-controls": { @@ -16157,20 +15942,6 @@ "@storybook/types": "7.0.7", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" - }, - "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - } } }, "@storybook/addon-docs": { @@ -16200,20 +15971,6 @@ "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", "ts-dedent": "^2.0.0" - }, - "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - } } }, "@storybook/addon-essentials": { @@ -16268,20 +16025,6 @@ "jest-mock": "^27.0.6", "polished": "^4.2.2", "ts-dedent": "^2.2.0" - }, - "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - } } }, "@storybook/addon-links": { @@ -16344,20 +16087,6 @@ "@storybook/manager-api": "7.0.7", "@storybook/preview-api": "7.0.7", "@storybook/theming": "7.0.7" - }, - "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - } } }, "@storybook/addon-viewport": { @@ -16375,20 +16104,6 @@ "@storybook/theming": "7.0.7", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" - }, - "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - } } }, "@storybook/addons": { @@ -16442,18 +16157,6 @@ "util-deprecate": "^1.0.2" }, "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -16546,18 +16249,6 @@ "webpack-virtual-modules": "^0.4.3" }, "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - }, "@types/node": { "version": "16.18.24", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.24.tgz", @@ -16889,20 +16580,6 @@ "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" - }, - "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - } } }, "@storybook/core-client": { @@ -17306,18 +16983,6 @@ "ts-dedent": "^2.0.0" }, "dependencies": { - "@storybook/theming": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", - "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", - "dev": true, - "requires": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.7", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - } - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -17705,27 +17370,15 @@ } }, "@storybook/theming": { - "version": "6.5.16", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.16.tgz", - "integrity": "sha512-hNLctkjaYLRdk1+xYTkC1mg4dYz2wSv6SqbLpcKMbkPHTE0ElhddGPHQqB362md/w9emYXNkt1LSMD8Xk9JzVQ==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.7.tgz", + "integrity": "sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==", "dev": true, "requires": { - "@storybook/client-logger": "6.5.16", - "core-js": "^3.8.2", - "memoizerific": "^1.11.3", - "regenerator-runtime": "^0.13.7" - }, - "dependencies": { - "@storybook/client-logger": { - "version": "6.5.16", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.5.16.tgz", - "integrity": "sha512-pxcNaCj3ItDdicPTXTtmYJE3YC1SjxFrBmHcyrN+nffeNyiMuViJdOOZzzzucTUG0wcOOX8jaSyak+nnHg5H1Q==", - "dev": true, - "requires": { - "core-js": "^3.8.2", - "global": "^4.4.0" - } - } + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.7", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" } }, "@storybook/types": { @@ -23205,6 +22858,15 @@ "@storybook/cli": "7.0.7" } }, + "storybook-addon-paddings": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/storybook-addon-paddings/-/storybook-addon-paddings-5.0.0.tgz", + "integrity": "sha512-+4x9zlOS82tHg4wmm1j67kiwDho+l7CfOttshczlcFQCOP2mHM3PrpXnxbNus5v6xf46Qh0vnYzD+wg0tfZY3Q==", + "dev": true, + "requires": { + "memoizerific": "^1.11.0" + } + }, "storybook-addon-rem": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/storybook-addon-rem/-/storybook-addon-rem-1.3.0.tgz", @@ -23329,6 +22991,18 @@ "regenerator-runtime": "^0.13.7" } }, + "@storybook/theming": { + "version": "6.5.16", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.5.16.tgz", + "integrity": "sha512-hNLctkjaYLRdk1+xYTkC1mg4dYz2wSv6SqbLpcKMbkPHTE0ElhddGPHQqB362md/w9emYXNkt1LSMD8Xk9JzVQ==", + "dev": true, + "requires": { + "@storybook/client-logger": "6.5.16", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7" + } + }, "isobject": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", diff --git a/docs/storybook/package.json b/docs/storybook/package.json index e1ff0327c..28feea4c9 100644 --- a/docs/storybook/package.json +++ b/docs/storybook/package.json @@ -8,6 +8,7 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.21.0", + "@storybook/addon-a11y": "^7.0.6", "@storybook/addon-essentials": "^7.0.6", "@storybook/addon-interactions": "^7.0.6", "@storybook/addon-links": "^7.0.6", @@ -15,12 +16,12 @@ "@storybook/react": "^7.0.6", "@storybook/react-webpack5": "^7.0.6", "@storybook/testing-library": "^0.0.14-next.1", - "@storybook/theming": "6.5.16", - "@storybook/addon-a11y": "^7.0.6", - "storybook-addon-rem": "^1.3.0", + "@storybook/theming": "^7.0.6", "babel-loader": "^8.3.0", "prop-types": "^15.8.1", "storybook": "^7.0.6", + "storybook-addon-paddings": "^5.0.0", + "storybook-addon-rem": "^1.3.0", "typescript": "^4.9.4" }, "dependencies": { diff --git a/docs/storybook/stories/Color/Functional/Background.stories.tsx b/docs/storybook/stories/Color/Functional/Background.stories.tsx index 7bbe70047..bc8a80e62 100644 --- a/docs/storybook/stories/Color/Functional/Background.stories.tsx +++ b/docs/storybook/stories/Color/Functional/Background.stories.tsx @@ -9,7 +9,7 @@ export default { }, } -const bgColors = ['bgColor-default', 'bgColor-muted', 'bgColor-disabled'] +const bgColors = ['bgColor-default', 'bgColor-muted', 'bgColor-disabled', 'bgColor-emphasis'] export const Background = () => { return ( diff --git a/docs/storybook/stories/Color/Patterns/AllPatterns.stories.tsx b/docs/storybook/stories/Color/Patterns/AllPatterns.stories.tsx index 33df1638c..a33710d34 100644 --- a/docs/storybook/stories/Color/Patterns/AllPatterns.stories.tsx +++ b/docs/storybook/stories/Color/Patterns/AllPatterns.stories.tsx @@ -72,12 +72,31 @@ export const Avatar = () => { } export const Control = () => { - const data = getTokensByName(colorTokens, 'control').map(token => { + const control = getTokensByName(colorTokens, 'control').map(token => { return { id: token.name, ...token, } }) + + const controlKnob = getTokensByName(colorTokens, 'controlKnob').map(token => { + return { + id: token.name, + ...token, + } + }) + + const controlTrack = getTokensByName(colorTokens, 'controlTrack').map(token => { + return { + id: token.name, + ...token, + } + }) + + const data = control.concat(controlKnob, controlTrack).map((item, index) => ({ + ...item, + index, + })) return ( diff --git a/docs/storybook/stories/Demos/Components.stories.tsx b/docs/storybook/stories/Demos/Components.stories.tsx index 543995d90..e1942a87e 100644 --- a/docs/storybook/stories/Demos/Components.stories.tsx +++ b/docs/storybook/stories/Demos/Components.stories.tsx @@ -19,7 +19,7 @@ export const FlashDemo = () => { export const LabelDemo = () => { return ( -
+
@@ -35,7 +35,7 @@ export const LabelDemo = () => { export const StateLabelDemo = () => { return ( -
+
Open Closed Closed diff --git a/docs/storybook/stories/Migration/v8/DeprecatedPatternTokensMap.json b/docs/storybook/stories/Migration/v8/DeprecatedPatternTokensMap.json index a7f643727..9f116b294 100644 --- a/docs/storybook/stories/Migration/v8/DeprecatedPatternTokensMap.json +++ b/docs/storybook/stories/Migration/v8/DeprecatedPatternTokensMap.json @@ -36,6 +36,9 @@ "color-timeline-badge-bg": { "background": "timelineBadge-bgColor" }, + "color-btn-text": { + "color": "control-fgColor-rest" + }, "color-btn-bg": { "background": "button-default-bgColor-rest" }, diff --git a/docs/storybook/stories/Size/Border.stories.tsx b/docs/storybook/stories/Size/Border.stories.tsx index 8befb29f0..06831eee7 100644 --- a/docs/storybook/stories/Size/Border.stories.tsx +++ b/docs/storybook/stories/Size/Border.stories.tsx @@ -35,9 +35,9 @@ export const BorderSize = () => { return ( - +

Border size - +

{ return ( - +

Border radius - +

{ return ( - +

Focus outline - +

{ return ( - +

Breakpoints - +

{ return ( - +

Control stack - +

{ return ( - +

Responsive control stack - +

{ return ( - +

Touch target - +

{ return ( - +

Responsive touch target - +

{ return ( - +

Base size - +

{ return ( - +

Stack - +

{ }) return ( - +

Viewport ranges - +

{ return ( - +

Base weight - +

{ return ( - +

Font family - +

{ header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + width: 'auto', renderCell: row => { return

{row.value}

}, @@ -81,9 +81,9 @@ export const FontShorthand = () => { return ( - +

Font shorthand - +

{ } }) - const filteredData = data.filter(item => item.id.includes('display')) + const filteredData = data.filter(item => !item.id.includes('shorthand') && item.id.includes('display')) return ( @@ -158,7 +158,6 @@ export const Display = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', renderCell: row => { return ( @@ -189,7 +188,6 @@ export const Display = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', renderCell: row => { return

{row.value}

}, @@ -216,7 +214,9 @@ export const TitleLarge = () => { } }) - const filteredData = data.filter(item => item.id.includes('title') && item.id.includes('large')) + const filteredData = data.filter( + item => !item.id.includes('shorthand') && item.id.includes('title') && item.id.includes('large'), + ) return ( @@ -232,7 +232,6 @@ export const TitleLarge = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', renderCell: row => { return ( @@ -263,7 +262,7 @@ export const TitleLarge = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -290,7 +289,9 @@ export const TitleMedium = () => { } }) - const filteredData = data.filter(item => item.id.includes('title') && item.id.includes('medium')) + const filteredData = data.filter( + item => !item.id.includes('shorthand') && item.id.includes('title') && item.id.includes('medium'), + ) return ( @@ -306,7 +307,7 @@ export const TitleMedium = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -337,7 +338,7 @@ export const TitleMedium = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -364,7 +365,9 @@ export const TitleSmall = () => { } }) - const filteredData = data.filter(item => item.id.includes('title') && item.id.includes('small')) + const filteredData = data.filter( + item => !item.id.includes('shorthand') && item.id.includes('title') && item.id.includes('small'), + ) return ( @@ -380,7 +383,7 @@ export const TitleSmall = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -411,7 +414,7 @@ export const TitleSmall = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -438,7 +441,7 @@ export const Subtitle = () => { } }) - const filteredData = data.filter(item => item.id.includes('subtitle')) + const filteredData = data.filter(item => !item.id.includes('shorthand') && item.id.includes('subtitle')) return ( @@ -454,7 +457,7 @@ export const Subtitle = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -485,7 +488,7 @@ export const Subtitle = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -512,7 +515,9 @@ export const BodyLarge = () => { } }) - const filteredData = data.filter(item => item.id.includes('body') && item.id.includes('large')) + const filteredData = data.filter( + item => !item.id.includes('shorthand') && item.id.includes('body') && item.id.includes('large'), + ) return ( @@ -528,7 +533,7 @@ export const BodyLarge = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -559,7 +564,7 @@ export const BodyLarge = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -586,7 +591,9 @@ export const BodyMedium = () => { } }) - const filteredData = data.filter(item => item.id.includes('body') && item.id.includes('medium')) + const filteredData = data.filter( + item => !item.id.includes('shorthand') && item.id.includes('title') && item.id.includes('medium'), + ) return ( @@ -602,7 +609,7 @@ export const BodyMedium = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -633,7 +640,7 @@ export const BodyMedium = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -660,7 +667,9 @@ export const BodySmall = () => { } }) - const filteredData = data.filter(item => item.id.includes('body') && item.id.includes('small')) + const filteredData = data.filter( + item => !item.id.includes('shorthand') && item.id.includes('title') && item.id.includes('small'), + ) return ( @@ -676,7 +685,7 @@ export const BodySmall = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -707,7 +716,7 @@ export const BodySmall = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -734,7 +743,7 @@ export const Caption = () => { } }) - const filteredData = data.filter(item => item.id.includes('caption')) + const filteredData = data.filter(item => !item.id.includes('shorthand') && item.id.includes('caption')) return ( @@ -750,7 +759,7 @@ export const Caption = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -781,7 +790,7 @@ export const Caption = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -808,7 +817,7 @@ export const CodeBlock = () => { } }) - const filteredData = data.filter(item => item.id.includes('codeBlock')) + const filteredData = data.filter(item => !item.id.includes('shorthand') && item.id.includes('codeBlock')) return ( @@ -824,7 +833,7 @@ export const CodeBlock = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -855,7 +864,7 @@ export const CodeBlock = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -882,7 +891,7 @@ export const InlineCodeBlock = () => { } }) - const filteredData = data.filter(item => item.id.includes('codeInline')) + const filteredData = data.filter(item => !item.id.includes('shorthand') && item.id.includes('codeInline')) return ( @@ -898,7 +907,7 @@ export const InlineCodeBlock = () => { header: 'Property', field: 'name', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return ( @@ -929,7 +938,7 @@ export const InlineCodeBlock = () => { header: 'Output value', field: 'value', rowHeader: true, - width: 'growCollapse', + renderCell: row => { return

{row.value}

}, @@ -960,9 +969,9 @@ export const Overview = () => { return ( - +

Overview - +

{ header: 'Description', field: 'comment', rowHeader: true, - width: 'growCollapse', + width: 'auto', renderCell: row => { return (

{ const {selector, selectorLight, selectorDark} = options - const {outputReferences} = options + const {outputReferences, descriptions} = options + const formatting: LineFormatting = { + commentStyle: descriptions ? 'long' : 'none', + } // add file header const output = [fileHeader({file})] // add single theme css output.push(`${selector || ':root'}${selectorLight ? `, ${selectorLight}` : ''}{ - ${formattedVariables({format: 'css', dictionary, outputReferences})} + ${formattedVariables({format: 'css', dictionary, outputReferences, formatting})} }`) // add auto dark theme css if (selectorDark) { output.push(`@media (prefers-color-scheme: dark) { ${selectorDark} { - ${formattedVariables({format: 'css', dictionary, outputReferences})} + ${formattedVariables({format: 'css', dictionary, outputReferences, formatting})} } }`) } diff --git a/src/formats/cssVariables.ts b/src/formats/cssVariables.ts new file mode 100644 index 000000000..9d8d90b92 --- /dev/null +++ b/src/formats/cssVariables.ts @@ -0,0 +1,25 @@ +import StyleDictionary from 'style-dictionary' +import type {FormatterArguments} from 'style-dictionary/types/Format' +import type {LineFormatting} from 'style-dictionary/types/FormatHelpers' +const {fileHeader, formattedVariables} = StyleDictionary.formatHelpers + +/** + * @description Converts `StyleDictionary.dictionary.tokens` to css with prefers dark and light section + * @param arguments [FormatterArguments](https://github.com/amzn/style-dictionary/blob/main/types/Format.d.ts) + * @param arguments.options outputReferences `boolean`, selector `string`, selectorLight `string`, selectorDark `string` + * @returns formatted `string` + */ +export const cssVariables: StyleDictionary.Formatter = ({dictionary, options = {}, file}: FormatterArguments) => { + const selector = options.selector ? options.selector : `:root` + const {outputReferences, descriptions} = options + const formatting: LineFormatting = { + commentStyle: descriptions ? 'long' : 'none', + } + + return `${fileHeader({file})}${selector} {\n${formattedVariables({ + format: 'css', + dictionary, + outputReferences, + formatting, + })}\n}\n` +} diff --git a/src/formats/cssWrapMediaQuery.test.ts b/src/formats/cssWrapMediaQuery.test.ts index 93d3468eb..cd459ca30 100644 --- a/src/formats/cssWrapMediaQuery.test.ts +++ b/src/formats/cssWrapMediaQuery.test.ts @@ -1,5 +1,5 @@ import {cssWrapMediaQuery} from './cssWrapMediaQuery' -import {getMockFormatterArguments} from '~/src/test-utilities' +import {getMockDictionary, getMockFormatterArguments, getMockToken} from '~/src/test-utilities' import {format} from 'prettier' describe('Format: tokens nested in media query', () => { @@ -65,4 +65,106 @@ describe('Format: tokens nested in media query', () => { ) expect(cssWrapMediaQuery(input)).toStrictEqual(expectedOutput) }) + + it('Show comment if option.description is true', () => { + const input = getMockFormatterArguments({ + dictionary: getMockDictionary({ + tokens: { + subgroup: { + red: getMockToken({ + name: 'red', + value: 'transformedValue', + comment: 'This is a description', + }), + }, + }, + }), + options: { + mediaQuery: { + 'size-fine.css': '(pointer: fine)', + }, + descriptions: true, + }, + file: { + destination: 'size-fine.css', + options: { + showFileHeader: false, + }, + }, + }) + + const expectedOutput = format( + ` @media (pointer: fine) { + :root { + --red: transformedValue; /* This is a description */ + } + }`, + {parser: 'css', printWidth: 500}, + ) + expect(cssWrapMediaQuery(input)).toStrictEqual(expectedOutput) + }) + + it('Hides comment if option.description is false or not set', () => { + const input = getMockFormatterArguments({ + dictionary: getMockDictionary({ + tokens: { + subgroup: { + red: getMockToken({ + name: 'red', + value: 'transformedValue', + comment: 'This is a description', + }), + }, + }, + }), + options: { + mediaQuery: { + 'size-fine.css': '(pointer: fine)', + }, + descriptions: false, + }, + file: { + destination: 'size-fine.css', + options: { + showFileHeader: false, + }, + }, + }) + + const inputUnset = getMockFormatterArguments({ + dictionary: getMockDictionary({ + tokens: { + subgroup: { + red: getMockToken({ + name: 'red', + value: 'transformedValue', + comment: 'This is a description', + }), + }, + }, + }), + options: { + mediaQuery: { + 'size-fine.css': '(pointer: fine)', + }, + }, + file: { + destination: 'size-fine.css', + options: { + showFileHeader: false, + }, + }, + }) + + const expectedOutput = format( + ` @media (pointer: fine) { + :root { + --red: transformedValue; + } + }`, + {parser: 'css', printWidth: 500}, + ) + expect(cssWrapMediaQuery(input)).toStrictEqual(expectedOutput) + expect(cssWrapMediaQuery(inputUnset)).toStrictEqual(expectedOutput) + }) }) diff --git a/src/formats/cssWrapMediaQuery.ts b/src/formats/cssWrapMediaQuery.ts index 3b37eeb5f..f99bbb0d0 100644 --- a/src/formats/cssWrapMediaQuery.ts +++ b/src/formats/cssWrapMediaQuery.ts @@ -1,6 +1,7 @@ import StyleDictionary from 'style-dictionary' import type {FormatterArguments} from 'style-dictionary/types/Format' import {format} from 'prettier' +import type {LineFormatting} from 'style-dictionary/types/FormatHelpers' const {fileHeader, formattedVariables} = StyleDictionary.formatHelpers /** @@ -9,7 +10,10 @@ const {fileHeader, formattedVariables} = StyleDictionary.formatHelpers * @returns formatted `string` */ export const cssWrapMediaQuery: StyleDictionary.Formatter = ({dictionary, options, file}: FormatterArguments) => { - const {outputReferences} = options + const {outputReferences, descriptions} = options + const formatting: LineFormatting = { + commentStyle: descriptions ? 'long' : 'none', + } // get specific media query or use screen const mediaQuery = options.mediaQuery?.[file.destination] || 'screen' // add file header @@ -17,7 +21,7 @@ export const cssWrapMediaQuery: StyleDictionary.Formatter = ({dictionary, option // add meadia query output.push(`@media ${mediaQuery} {\n:root {`) // add tokens - output.push(formattedVariables({format: 'css', dictionary, outputReferences})) + output.push(formattedVariables({format: 'css', dictionary, outputReferences, formatting})) // close media query output.push(`}\n}`) // return prettified diff --git a/src/formats/index.ts b/src/formats/index.ts index c7b232975..6e2067d42 100644 --- a/src/formats/index.ts +++ b/src/formats/index.ts @@ -1,6 +1,7 @@ export {cssThemed} from './cssThemed' export {cssCustomMedia} from './cssCustomMedia' export {cssWrapMediaQuery} from './cssWrapMediaQuery' +export {cssVariables} from './cssVariables' export {javascriptCommonJs} from './javascriptCommonJs' export {javascriptEsm} from './javascriptEsm' export {jsonNestedPrefixed} from './jsonNestedPrefixed' diff --git a/src/platforms/css.ts b/src/platforms/css.ts index 5528605a6..99b4a74da 100644 --- a/src/platforms/css.ts +++ b/src/platforms/css.ts @@ -44,6 +44,7 @@ export const css: PlatformInitializer = (outputFile, prefix, buildPath, options) options: { showFileHeader: false, outputReferences: false, + descriptions: false, selector, selectorLight, selectorDark, @@ -56,6 +57,7 @@ export const css: PlatformInitializer = (outputFile, prefix, buildPath, options) filter: token => isSource(token) && options?.themed !== true, options: { showFileHeader: false, + descriptions: false, ...options?.options, }, }, @@ -77,6 +79,7 @@ export const css: PlatformInitializer = (outputFile, prefix, buildPath, options) 'src/tokens/functional/size/size-fine.json', ]), options: { + descriptions: false, showFileHeader: false, mediaQuery: { 'css/functional/size/size-fine.css': '(pointer: fine)', diff --git a/src/tokens/functional/color/dark/patterns-dark.json5 b/src/tokens/functional/color/dark/patterns-dark.json5 index 6d1a28f95..eb4d90d4f 100644 --- a/src/tokens/functional/color/dark/patterns-dark.json5 +++ b/src/tokens/functional/color/dark/patterns-dark.json5 @@ -6,7 +6,7 @@ alpha: 0.1, }, borderColor: { - $value: 'transparent', + $value: '{borderColor.muted}', $type: 'color', }, }, diff --git a/src/tokens/functional/size/border.json b/src/tokens/functional/size/border.json index 1e8d2dd06..13f5324bd 100644 --- a/src/tokens/functional/size/border.json +++ b/src/tokens/functional/size/border.json @@ -1,7 +1,8 @@ { "boxShadow": { "thin": { - "value": "inset 0 0 0 {borderWidth.thin}" + "value": "inset 0 0 0 {borderWidth.thin}", + "description": "Thin shadow for borders" }, "thick": { "value": "inset 0 0 0 {borderWidth.thick}"