Skip to content

move to design system components, fix user verifier and auth flows#6

Merged
teallarson merged 13 commits intomainfrom
teallarson/ui-polish-brand-assets
Mar 3, 2026
Merged

move to design system components, fix user verifier and auth flows#6
teallarson merged 13 commits intomainfrom
teallarson/ui-polish-brand-assets

Conversation

@teallarson
Copy link
Copy Markdown
Collaborator

Summary

  • Adds @arcadeai/design-system@^3.30.0 as a dependency in both ai-sdk and mastra Next.js templates
  • Removes shadcn devDependency (no longer needed as a CLI tool)
  • Swaps CSS import: @import "shadcn/tailwind.css"@import "@arcadeai/design-system/index.css" in globals.css
  • Updates all component imports across 9 shared UI files to use @arcadeai/design-system instead of local @/components/ui/<name> paths
  • Deletes the 9 local shadcn component copies (accordion, badge, button, card, input, label, separator, sheet, skeleton)
  • Removes components.json (shadcn CLI config, no longer needed)

Test plan

  • Scaffold ai-sdk template and verify npm install resolves @arcadeai/design-system
  • Run next build on scaffolded ai-sdk project — should compile without TypeScript errors
  • Scaffold mastra template and repeat build check
  • Verify UI renders correctly: login page, dashboard, connection gate cards, task cards, stats bar
  • Toggle dark/light theme and confirm design system tokens apply correctly

🤖 Generated with Claude Code

teallarson and others added 2 commits March 3, 2026 12:33
- Add @arcadeai/design-system ^3.30.0 to ai-sdk and mastra package.json
- Remove shadcn devDependency (no longer needed)
- Swap @import "shadcn/tailwind.css" → @import "@arcadeai/design-system/index.css" in globals.css
- Update all component imports from @/components/ui/<name> to @arcadeai/design-system
- Delete 9 local shadcn component copies (accordion, badge, button, card, input, label, separator, sheet, skeleton)
- Remove components.json (shadcn CLI config, no longer needed)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@teallarson teallarson force-pushed the teallarson/ui-polish-brand-assets branch from f710460 to e2ad664 Compare March 3, 2026 17:33
@teallarson teallarson marked this pull request as ready for review March 3, 2026 17:36
teallarson and others added 11 commits March 3, 2026 12:42
Replace generic Lucide icons (MessageSquare, Calendar, etc.) with real
brand icons from @arcadeai/design-system/components/ui/atoms/icons:
Slack, GoogleCalendar, Linear, Github, Gmail.

Removed text-color overrides from source badges since brand icons render
their own brand colors rather than inheriting currentColor.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New GET /api/health route checks for ANTHROPIC_API_KEY/OPENAI_API_KEY
  and ARCADE_GATEWAY_URL, returning actionable warnings if missing
- ConfigWarningBanner component renders amber banner below the header
  in both the connection gate and connected dashboard states
- Fix: add font-sans to globals.css @layer base body rule and layout.tsx
  body className to override the GT Sectra serif font embedded in
  @arcadeai/design-system/index.css

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- README: add bun prerequisite, fix npm→bun for generated project commands,
  update generated project structure tree (dashboard, health, sources routes)
- ai-sdk + mastra README.md.hbs: replace chat page with dashboard page,
  update project structure tree and How It Works section, fix localhost port
- ai-sdk + mastra CLAUDE.md: fix app/chat/page.tsx → app/dashboard/page.tsx,
  update frontend tech stack to mention @arcadeai/design-system, add
  "Claude Code Notes" section with safe/caution edit guidance
- agent-playbook.md.hbs: fix npm→bun in verification commands
- Root CLAUDE.md: add "Notes for agents" section covering package manager
  split, template system overview, UI component library, and e2e testing
- Prettier: reformat langchain HTML/JS templates and shared nextjs-ui files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tool-status.tsx was still using generic Lucide icons (MessageSquare,
GitPullRequest, Mail, etc.) for the source status pills. Switch to the
same brand icons from @arcadeai/design-system/components/ui/atoms/icons
already used in task-card.tsx and stats-bar.tsx.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- stats-bar: replace CardHeader+CardAction grid with explicit flexbox so
  icon and label sit side-by-side; add activeSource/onSourceClick props;
  clicking a source card filters the task list, clicking it again (or
  Total) clears the filter
- header: remove onChatToggle/chatOpen props and MessageSquare button
  (chat UI was removed; icon was a leftover)
- dashboard: wire activeSource state to StatsBar + filteredItems; remove
  ChatPanel import and render; simplify Header call sites

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tailwind v4 doesn't scan node_modules by default, so compound/arbitrary
classes used only by @arcadeai/design-system components (e.g.
@container/card-header, grid-rows-[auto_auto], auto-rows-min,
has-data-[slot=card-action]:grid-cols-[1fr_auto]) were never generated.
Adding @source tells Tailwind to scan the package and emit those classes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the hardcoded "Other" / Globe fallback with a dynamic label
derived from the source key (underscores → spaces, title-cased), so
unknown sources like "my_tool" show as "My Tool" rather than "Other".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
muted-foreground (~#9a9a9a) on muted background (~#363636 dark /
#f5f5f5 light) is ~4.2:1 and ~4.4:1 respectively — both under the 4.5:1
AA threshold for 12px text. Adding text-foreground to each pill overrides
the inherited muted-foreground, giving white-on-dark (~14:1) and
near-black-on-light (~13:1) in all states.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Source badges used light-only tints (bg-red-100, bg-blue-100, etc.) —
white text from the outline Badge variant on those light backgrounds is
~1.5:1. Added explicit dark: variants (950 bg, 900 border, 200 text) for
each source so both modes get readable colored-badge text (~7:1+).

Also fixed P1 badge (hardcoded text-amber-800 with no dark variant) and
scheduled-time text (text-blue-600 → dark:text-blue-400 for ~3:1 → ~5:1
on dark card backgrounds).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The regex ^(google|calendar)[._] failed to match Arcade's actual tool
naming convention: GoogleCalendar.WhoAmI has no separator between the
words, so the regex saw 'google' followed by 'C' (not [._]) and fell
through to "other".

New approach: split on '.' to extract the service prefix, then match
exact service names including "googlecalendar". Also replace the "other"
fallback with the actual lowercase service prefix so unrecognized tools
(e.g. Notion.WhoAmI → "notion") show their real name in the UI instead
of the unhelpful generic label.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add SourceAuthGate component: blocks dashboard on first load until all
  tools are either authorized or skipped; shows per-source Authorize/Skip
  buttons with a Continue button enabled only when no tools are pending
- Add "skipped" status to SourceStatus type and tool-status components
- Fix verify route: redirect to /dashboard?error=verify_session_required
  (instead of silent redirect to /) with detailed console logging
- Strip debug console.log added during verifier testing
- Document cookie domain mismatch gotcha (must access app via ngrok URL,
  not localhost, when using ARCADE_CUSTOM_VERIFIER)
- Document stale flow_id fix (delete .arcade-auth/, restart, re-auth)
  in coat-security partial, env-vars-table, CLAUDE.md, and README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@teallarson teallarson changed the title Adopt @arcadeai/design-system for Next.js templates move to design system components, fix user verifier and auth flows Mar 3, 2026
@teallarson teallarson merged commit 432c935 into main Mar 3, 2026
@teallarson teallarson deleted the teallarson/ui-polish-brand-assets branch March 3, 2026 21:19
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.

1 participant