Skip to content

feat(mcp): add shared MCP App widget kit - #475

Merged
dsklyar merged 5 commits into
mainfrom
danielsklyar/zel-8213-mcp-ui-common
Aug 26, 2026
Merged

feat(mcp): add shared MCP App widget kit#475
dsklyar merged 5 commits into
mainfrom
danielsklyar/zel-8213-mcp-ui-common

Conversation

@dsklyar

@dsklyar dsklyar commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add a private @transcend-io/mcp-ui-common kit (Grid, Heading, MetricCard, ProgressBar, Spinner) with makeEnum variants. Spinner is a LogoSpinner-style port with its own CSS, inlined by the view build.
  • Teach discoverMcpAppViews to @source the kit only when a package declares it, so hello-world and other views do not pick up its CSS.
  • Extend the shared MCP App theme with card, fill, metric type, lg, and max-w-view tokens. Card surfaces stay on Transcend light tokens (status colors have no dark palette yet). Comments describe the primitives, not a specific dashboard. Views follow the host/OS prefers-reduced-motion setting.

Test plan

  • pnpm run --dir dev/mcp-ui-common typecheck:ui
  • pnpm vitest run scripts/mcp-app-views.test.ts scripts/mcp-app-build.test.ts
  • pnpm run check:deps
  • pnpm run check:changeset
  • Screenshotted the grid at 760px, 480px, and 360px container widths: 3, 2, and 1 columns.

Stack

Foundation for #476. This PR should merge first.

Demo(s) of components based on the dashboard stacked #476.

Screen.Recording.2026-08-25.at.17.03.03.mov

Extract reusable view widgets into a private workspace package and opt consuming packages into its Tailwind sources without bloating unrelated views.
@dsklyar
dsklyar requested review from a team as code owners August 25, 2026 22:58
@linear-code

linear-code Bot commented Aug 25, 2026

Copy link
Copy Markdown

ZEL-8213

function formatMetric(value: number, format: MetricFormat | undefined): string {
const resolved = format ?? MetricFormat.Compact;
if (resolved === MetricFormat.Percent) {
return new Intl.NumberFormat('en', {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to explore derivation of locale from MCP harness

giacaglia
giacaglia previously approved these changes Aug 25, 2026

@giacaglia giacaglia left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is nice!

@pkg-pr-new

pkg-pr-new Bot commented Aug 25, 2026

Copy link
Copy Markdown

Open in StackBlitz

@transcend-io/airgap.js-types

pnpm add https://pkg.pr.new/@transcend-io/airgap.js-types@475
yarn add https://pkg.pr.new/@transcend-io/airgap.js-types@475.tgz

@transcend-io/cli

pnpm add https://pkg.pr.new/@transcend-io/cli@475
yarn add https://pkg.pr.new/@transcend-io/cli@475.tgz

@transcend-io/design-tokens

pnpm add https://pkg.pr.new/@transcend-io/design-tokens@475
yarn add https://pkg.pr.new/@transcend-io/design-tokens@475.tgz

@transcend-io/internationalization

pnpm add https://pkg.pr.new/@transcend-io/internationalization@475
yarn add https://pkg.pr.new/@transcend-io/internationalization@475.tgz

@transcend-io/privacy-types

pnpm add https://pkg.pr.new/@transcend-io/privacy-types@475
yarn add https://pkg.pr.new/@transcend-io/privacy-types@475.tgz

@transcend-io/sdk

pnpm add https://pkg.pr.new/@transcend-io/sdk@475
yarn add https://pkg.pr.new/@transcend-io/sdk@475.tgz

@transcend-io/type-utils

pnpm add https://pkg.pr.new/@transcend-io/type-utils@475
yarn add https://pkg.pr.new/@transcend-io/type-utils@475.tgz

@transcend-io/utils

pnpm add https://pkg.pr.new/@transcend-io/utils@475
yarn add https://pkg.pr.new/@transcend-io/utils@475.tgz

@transcend-io/mcp

pnpm add https://pkg.pr.new/@transcend-io/mcp@475
yarn add https://pkg.pr.new/@transcend-io/mcp@475.tgz

@transcend-io/mcp-server-admin

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-admin@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-admin@475.tgz

@transcend-io/mcp-server-assessment

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-assessment@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-assessment@475.tgz

@transcend-io/mcp-server-base

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-base@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-base@475.tgz

@transcend-io/mcp-server-consent

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-consent@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-consent@475.tgz

@transcend-io/mcp-server-discovery

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-discovery@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-discovery@475.tgz

@transcend-io/mcp-server-docs

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-docs@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-docs@475.tgz

@transcend-io/mcp-server-dsr

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-dsr@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-dsr@475.tgz

@transcend-io/mcp-server-inventory

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-inventory@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-inventory@475.tgz

@transcend-io/mcp-server-preferences

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-preferences@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-preferences@475.tgz

@transcend-io/mcp-server-workflows

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-workflows@475
yarn add https://pkg.pr.new/@transcend-io/mcp-server-workflows@475.tgz

commit: ea742b1

Honor the host OS instead of freezing or exempting animations in the shared theme.
These tokens are used by every view, so the comments should describe the
layout primitive rather than the inventory dashboard that motivated the values.
A host sizes the iframe to its own panel, so a breakpoint never reports the
display width. Claude's inline panel measures just under `lg`, which stacked
three metric cards that had room to sit side by side.
The classes already show the row is container-sized; the Claude-panel
anecdote does not belong on the component or in the shared README.
@dsklyar
dsklyar added this pull request to the merge queue Aug 26, 2026
Merged via the queue into main with commit 656903e Aug 26, 2026
5 checks passed
@dsklyar
dsklyar deleted the danielsklyar/zel-8213-mcp-ui-common branch August 26, 2026 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants