Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions .changeset/auto-collapse-large-diffs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
"@adobe/token-diff-generator": patch
"@adobe/spectrum-component-diff-generator": patch
---

feat: auto-collapse details sections with more than 20 items

Diff report templates now automatically collapse `<details>` sections
when they contain more than 20 items, improving readability for large
diffs like repository-wide changes. Sections with 20 or fewer items
remain open by default for quick scanning.

19 changes: 19 additions & 0 deletions .changeset/repo-rename.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
"@adobe/spectrum-tokens": major
"@adobe/spectrum-component-api-schemas": major
"@adobe/spectrum-design-data-mcp": patch
---

BREAKING CHANGE: Repository renamed from spectrum-tokens to
spectrum-design-data

**Breaking Changes:**
- JSON Schema `$id` URIs changed (spectrum-tokens → spectrum-design-data)
- External tools referencing schemas by `$id` must update references

**Changes:**
- Updated all GitHub repository and Pages URLs
- Updated schema base URIs to maintain consistency

**Note:** NPM package names unchanged. GitHub redirects are in place.

10 changes: 10 additions & 0 deletions .github/actions/diff-pr-comment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,16 @@ runs:
if [ "${{ inputs.diff-generated }}" == "true" ]; then
# Decode base64 content and append to file
echo "${{ inputs.diff-content }}" | base64 -d >> /tmp/comment_body.md
elif [ "${{ inputs.diff-generated }}" == "too-large" ]; then
# Diff too large case
echo "⚠️ **The diff output is too large to display in a PR comment.**" >> /tmp/comment_body.md
echo "" >> /tmp/comment_body.md
echo "${{ inputs.diff-content }}" >> /tmp/comment_body.md
echo "" >> /tmp/comment_body.md
echo "For large-scale changes like repository renames, please run the diff tool locally:" >> /tmp/comment_body.md
echo '```bash' >> /tmp/comment_body.md
echo "pnpm --filter @adobe/${{ inputs.diff-type }}-diff-generator exec -- tdiff report --otb ${{ github.base_ref }} --ntb ${{ github.head_ref }}" >> /tmp/comment_body.md
echo '```' >> /tmp/comment_body.md
elif [ "${{ inputs.diff-generated }}" == "false" ]; then
# No changes case
echo "No ${{ steps.comment-details.outputs.description }} changes detected in this pull request." >> /tmp/comment_body.md
Expand Down
15 changes: 12 additions & 3 deletions .github/actions/generate-diff/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,18 @@ runs:

# Check if the command succeeded and output file exists
if [ $exit_code -eq 0 ] && [ -f "${{ inputs.output-file }}" ] && [ -s "${{ inputs.output-file }}" ]; then
echo "diff_generated=true" >> $GITHUB_OUTPUT
# Use base64 encoding to safely pass multiline content
echo "diff_content=$(base64 -w 0 < "${{ inputs.output-file }}")" >> $GITHUB_OUTPUT
# Check file size (GitHub Actions output limit is ~1MB, base64 adds 33% overhead)
file_size=$(wc -c < "${{ inputs.output-file }}")
max_size=$((750 * 1024)) # 750KB limit to be safe

if [ $file_size -gt $max_size ]; then
echo "diff_generated=too-large" >> $GITHUB_OUTPUT
echo "diff_content=Diff output is too large to display in PR comment (${file_size} bytes). Please check the workflow artifacts or run the diff tool locally." >> $GITHUB_OUTPUT
else
echo "diff_generated=true" >> $GITHUB_OUTPUT
# Use base64 encoding to safely pass multiline content
echo "diff_content=$(base64 -w 0 < "${{ inputs.output-file }}")" >> $GITHUB_OUTPUT
fi
elif [ $exit_code -eq 0 ] && [ -f "${{ inputs.output-file }}" ]; then
# Command succeeded but file exists but is empty (no changes)
echo "diff_generated=false" >> $GITHUB_OUTPUT
Expand Down
48 changes: 24 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
Note: for [Spectrum 2](https://s2.spectrum.adobe.com/) token data has been graduated to the `main` branch. If you need access to the S1 data, use the [`s1-legacy` branch](https://github.com/adobe/spectrum-tokens/tree/s1-legacy) and `v12.x.x` packages on [NPM](https://www.npmjs.com/package/@adobe/spectrum-tokens?activeTab=versions).
Note: for [Spectrum 2](https://s2.spectrum.adobe.com/) token data has been graduated to the `main` branch. If you need access to the S1 data, use the [`s1-legacy` branch](https://github.com/adobe/spectrum-design-data/tree/s1-legacy) and `v12.x.x` packages on [NPM](https://www.npmjs.com/package/@adobe/spectrum-tokens?activeTab=versions).

The [Spectrum token visualizer](https://opensource.adobe.com/spectrum-tokens/visualizer/) shows the token data for S1. For Spectrum 2 data, use [opensource.adobe.com/spectrum-tokens/s2-visualizer/](https://opensource.adobe.com/spectrum-tokens/s2-visualizer/).
The [Spectrum token visualizer](https://opensource.adobe.com/spectrum-design-data/visualizer/) shows the token data for S1. For Spectrum 2 data, use [opensource.adobe.com/spectrum-design-data/s2-visualizer/](https://opensource.adobe.com/spectrum-design-data/s2-visualizer/).

# Spectrum Tokens Monorepo

This repo uses:

- [pnpm](https://pnpm.io/) for package management
- [moon](https://moonrepo.dev/moon) to manage task running
- [Changesets](https://github.com/changesets/changesets) for automated versioning and releasing
- [Prettier](https://prettier.io/) for code formatting/linting
- [commitlint](https://commitlint.js.org/) and [Convetional Commits](https://www.conventionalcommits.org/en/v1.0.0/) to standardize commit messages
- [husky](https://typicode.github.io/husky/) to automate formatting of committed files and linting of commit messages
* [pnpm](https://pnpm.io/) for package management
* [moon](https://moonrepo.dev/moon) to manage task running
* [Changesets](https://github.com/changesets/changesets) for automated versioning and releasing
* [Prettier](https://prettier.io/) for code formatting/linting
* [commitlint](https://commitlint.js.org/) and [Convetional Commits](https://www.conventionalcommits.org/en/v1.0.0/) to standardize commit messages
* [husky](https://typicode.github.io/husky/) to automate formatting of committed files and linting of commit messages

Packages in this monorepo:

## Core Packages

- [Spectrum Tokens](packages/tokens/) design tokens for Spectrum, Adobe's design system.
- [Spectrum Component Schemas](packages/component-schemas/) JSON schemas for validating Spectrum component APIs and properties.
* [Spectrum Tokens](packages/tokens/) design tokens for Spectrum, Adobe's design system.
* [Spectrum Component Schemas](packages/component-schemas/) JSON schemas for validating Spectrum component APIs and properties.

## Documentation & Visualization

- [Spectrum Token Visualizer Tool](docs/visualizer/) a visualizer for inspecting S1 tokens. Published as a [static site](https://opensource.adobe.com/spectrum-tokens/visualizer/).
- [Spectrum Token Visualizer Tool S2](docs/s2-visualizer/) a version of the visualizer that shows the Spectrum 2 data. Published as a [static site](https://opensource.adobe.com/spectrum-tokens/s2-visualizer/).
- [Spectrum S2 Tokens Viewer](docs/s2-tokens-viewer/) an enhanced token viewer with component usage analysis for Spectrum 2 tokens.
- [Spectrum Tokens Docs](docs/site/) a static site to show the component options API and other token data.
- [Release Timeline Visualization](docs/release-timeline/) interactive charts showing release frequency and development activity patterns. Published as a [static site](https://opensource.adobe.com/spectrum-tokens/release-timeline/).
* [Spectrum Token Visualizer Tool](docs/visualizer/) a visualizer for inspecting S1 tokens. Published as a [static site](https://opensource.adobe.com/spectrum-design-data/visualizer/).
* [Spectrum Token Visualizer Tool S2](docs/s2-visualizer/) a version of the visualizer that shows the Spectrum 2 data. Published as a [static site](https://opensource.adobe.com/spectrum-design-data/s2-visualizer/).
* [Spectrum S2 Tokens Viewer](docs/s2-tokens-viewer/) an enhanced token viewer with component usage analysis for Spectrum 2 tokens.
* [Spectrum Tokens Docs](docs/site/) a static site to show the component options API and other token data.
* [Release Timeline Visualization](docs/release-timeline/) interactive charts showing release frequency and development activity patterns. Published as a [static site](https://opensource.adobe.com/spectrum-design-data/release-timeline/).

## Development Tools

- [Spectrum Token Diff Generator](tools/diff-generator/) a library and cli tool that reports changes made between two schema/releases/branches.
- [Optimized Diff Engine](tools/optimized-diff/) high-performance diff algorithm for large token datasets.
- [Release Analyzer](tools/release-analyzer/) tool for analyzing release history and generating data for change frequency visualization.
- [Token Changeset Generator](tools/token-changeset-generator/) automates creation of changeset files from token diff analysis.
- [Token CSV Generator](tools/token-csv-generator/) exports token data to CSV format for analysis and reporting.
- [Transform Tokens JSON](tools/transform-tokens-json/) utilities for merging and transforming token data between formats.
- [Token Manifest Builder](tools/token-manifest-builder/) generates manifest files for token distribution.
- [Spectrum Design Data MCP](tools/spectrum-design-data-mcp/) Model Context Protocol server providing AI assistants with structured access to Spectrum design system data.
* [Spectrum Token Diff Generator](tools/diff-generator/) a library and cli tool that reports changes made between two schema/releases/branches.
* [Optimized Diff Engine](tools/optimized-diff/) high-performance diff algorithm for large token datasets.
* [Release Analyzer](tools/release-analyzer/) tool for analyzing release history and generating data for change frequency visualization.
* [Token Changeset Generator](tools/token-changeset-generator/) automates creation of changeset files from token diff analysis.
* [Token CSV Generator](tools/token-csv-generator/) exports token data to CSV format for analysis and reporting.
* [Transform Tokens JSON](tools/transform-tokens-json/) utilities for merging and transforming token data between formats.
* [Token Manifest Builder](tools/token-manifest-builder/) generates manifest files for token distribution.
* [Spectrum Design Data MCP](tools/spectrum-design-data-mcp/) Model Context Protocol server providing AI assistants with structured access to Spectrum design system data.

## Setup monorepo locally

1. Install pnpm using [this guide](https://pnpm.io/installation).
1. Install dependencies
2. Install dependencies
```bash
pnpm i
```
Expand Down
18 changes: 10 additions & 8 deletions docs/release-timeline/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,21 @@

### Minor Changes

- [#566](https://github.com/adobe/spectrum-tokens/pull/566) [`e0de953`](https://github.com/adobe/spectrum-tokens/commit/e0de953fb8ef5aba92782838094eeec3a4c78321) Thanks [@GarthDB](https://github.com/GarthDB)! - Add release timeline visualization and analysis tools for Spectrum Tokens change tracking.
* [#566](https://github.com/adobe/spectrum-design-data/pull/566) [`e0de953`](https://github.com/adobe/spectrum-design-data/commit/e0de953fb8ef5aba92782838094eeec3a4c78321) Thanks [@GarthDB](https://github.com/GarthDB)! - Add release timeline visualization and analysis tools for Spectrum Tokens change tracking.

This adds new internal tooling for analyzing and visualizing the frequency and scope of Spectrum Tokens releases:
- **Release Analyzer Tool** (`tools/release-analyzer/`): Parses git tags and CHANGELOG.md to extract release data and change scope metrics
- **Interactive Timeline Visualization** (`docs/release-timeline/`): D3.js-powered charts showing release frequency, change scope, and development activity over time
- **GitHub Pages Integration**: Build system to deploy static visualization to `/spectrum-tokens/release-timeline/`

* **Release Analyzer Tool** (`tools/release-analyzer/`): Parses git tags and CHANGELOG.md to extract release data and change scope metrics
* **Interactive Timeline Visualization** (`docs/release-timeline/`): D3.js-powered charts showing release frequency, change scope, and development activity over time
* **GitHub Pages Integration**: Build system to deploy static visualization to `/spectrum-tokens/release-timeline/`

These tools provide data-driven insights into design system evolution patterns and coordination costs, supporting the business case for systematic token infrastructure at scale.

The visualization demonstrates:
- 220+ releases across 3 years with varying change scope (1-2000+ tokens)
- High development activity (61 beta releases, 24 experimental snapshots)
- 11 concurrent development feature streams
- Clear trends in release frequency and impact

* 220+ releases across 3 years with varying change scope (1-2000+ tokens)
* High development activity (61 beta releases, 24 experimental snapshots)
* 11 concurrent development feature streams
* Clear trends in release frequency and impact

All new packages are marked as private and will not be published to npm.
44 changes: 23 additions & 21 deletions docs/s2-tokens-viewer/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,67 +4,69 @@

### Patch Changes

- Updated dependencies [[`f64bee3`](https://github.com/adobe/spectrum-tokens/commit/f64bee3900c874775f2d3424516786a0d644d057)]:
- @adobe/spectrum-tokens@13.16.0
* Updated dependencies \[[`f64bee3`](https://github.com/adobe/spectrum-design-data/commit/f64bee3900c874775f2d3424516786a0d644d057)]:
* [**@adobe/spectrum-tokens**](https://github.com/adobe/spectrum-tokens)@13.16.0

## 0.1.7

### Patch Changes

- Updated dependencies [[`1e860c4`](https://github.com/adobe/spectrum-tokens/commit/1e860c4436c58ceca6f4500ea7e24d6d8cdd20c8)]:
- @adobe/spectrum-tokens@13.15.1
* Updated dependencies \[[`1e860c4`](https://github.com/adobe/spectrum-design-data/commit/1e860c4436c58ceca6f4500ea7e24d6d8cdd20c8)]:
* [**@adobe/spectrum-tokens**](https://github.com/adobe/spectrum-tokens)@13.15.1

## 0.1.6

### Patch Changes

- Updated dependencies [[`3df7197`](https://github.com/adobe/spectrum-tokens/commit/3df7197e7da23c9bb107f7dfcd935b5c62a86041)]:
- @adobe/spectrum-tokens@13.15.0
* Updated dependencies \[[`3df7197`](https://github.com/adobe/spectrum-design-data/commit/3df7197e7da23c9bb107f7dfcd935b5c62a86041)]:
* [**@adobe/spectrum-tokens**](https://github.com/adobe/spectrum-tokens)@13.15.0

## 0.1.5

### Patch Changes

- Updated dependencies [[`b4df84e`](https://github.com/adobe/spectrum-tokens/commit/b4df84e2f2ca246332907f9ddda94438288dd98e)]:
- @adobe/spectrum-tokens@13.14.1
* Updated dependencies \[[`b4df84e`](https://github.com/adobe/spectrum-design-data/commit/b4df84e2f2ca246332907f9ddda94438288dd98e)]:
* [**@adobe/spectrum-tokens**](https://github.com/adobe/spectrum-tokens)@13.14.1

## 0.1.4

### Patch Changes

- Updated dependencies [[`336f672`](https://github.com/adobe/spectrum-tokens/commit/336f67216dfd875f0feb65c10059d9f3fe6dcaf7)]:
- @adobe/spectrum-tokens@13.14.0
* Updated dependencies \[[`336f672`](https://github.com/adobe/spectrum-design-data/commit/336f67216dfd875f0feb65c10059d9f3fe6dcaf7)]:
* [**@adobe/spectrum-tokens**](https://github.com/adobe/spectrum-tokens)@13.14.0

## 0.1.3

### Patch Changes

- Updated dependencies [[`1d4973e`](https://github.com/adobe/spectrum-tokens/commit/1d4973e78d814575da231c2c4080ead8a190d2fc)]:
- @adobe/spectrum-tokens@13.13.0
* Updated dependencies \[[`1d4973e`](https://github.com/adobe/spectrum-design-data/commit/1d4973e78d814575da231c2c4080ead8a190d2fc)]:
* [**@adobe/spectrum-tokens**](https://github.com/adobe/spectrum-tokens)@13.13.0

## 0.1.2

### Patch Changes

- [#544](https://github.com/adobe/spectrum-tokens/pull/544) [`18dc0e1`](https://github.com/adobe/spectrum-tokens/commit/18dc0e12537e73d7290ae9b227754b5240807cf3) Thanks [@GarthDB](https://github.com/GarthDB)! - Fix moon.yml command chaining syntax for newer moon version
* [#544](https://github.com/adobe/spectrum-design-data/pull/544) [`18dc0e1`](https://github.com/adobe/spectrum-design-data/commit/18dc0e12537e73d7290ae9b227754b5240807cf3) Thanks [@GarthDB](https://github.com/GarthDB)! - Fix moon.yml command chaining syntax for newer moon version

Updated command chaining in moon.yml tasks to use proper shell syntax instead of && as array elements. This resolves issues with the viewer:export task failing after moon version update.

## 0.1.1

### Patch Changes

- [#533](https://github.com/adobe/spectrum-tokens/pull/533) [`27fe5e4`](https://github.com/adobe/spectrum-tokens/commit/27fe5e44fed13b7b1fddd02f614251cc47c4f8eb) Thanks [@GarthDB](https://github.com/GarthDB)! - Improve S2 tokens viewer self-containment and deployment
* [#533](https://github.com/adobe/spectrum-design-data/pull/533) [`27fe5e4`](https://github.com/adobe/spectrum-design-data/commit/27fe5e44fed13b7b1fddd02f614251cc47c4f8eb) Thanks [@GarthDB](https://github.com/GarthDB)! - Improve S2 tokens viewer self-containment and deployment

**Enhancements:**
- Add workspace dependency on `@adobe/spectrum-tokens` package
- Add prepare script to automatically copy token files locally
- Update file paths to use relative paths instead of absolute paths
- Make viewer fully self-contained with local token files

* Add workspace dependency on `@adobe/spectrum-tokens` package
* Add prepare script to automatically copy token files locally
* Update file paths to use relative paths instead of absolute paths
* Make viewer fully self-contained with local token files

**Technical Changes:**
- Updated `package.json` to include workspace dependency and prepare script
- Modified `index.html` to load token files from relative paths (`packages/tokens/src/`)
- Added local copies of all Spectrum 2 token JSON files for standalone operation

* Updated `package.json` to include workspace dependency and prepare script
* Modified `index.html` to load token files from relative paths (`packages/tokens/src/`)
* Added local copies of all Spectrum 2 token JSON files for standalone operation

These changes make the S2 tokens viewer easier to deploy and more portable, eliminating dependencies on external file paths while maintaining full functionality.
Loading
Loading