Skip to main content

packages/common

The common package is a shared React component library consumed by both the full-suite and a11y apps. It lives in packages/common/ and is referenced via pnpm workspace protocol ("common": "workspace:*").
Never copy-paste components between apps. If a component is needed in both, it belongs in packages/common. If it’s specific to one app, keep it in that app’s src/components/.

Component Categories

Location: packages/common/src/components/

Auth Components (auth/)

UI for login, signup, and authentication flows shared between both apps.

Issue Display (issues/)

Components for listing, filtering, and displaying audit issues.

Accessibility Results (accessibility/)

Charts, tables, and detail views for WCAG audit results.

Performance Results (performance/)

Lighthouse score displays and metric breakdowns.

Billing UI (billing/)

Plan comparison cards, billing history tables, upgrade prompts.

Scan Components (scan/)

Scan configuration forms, progress indicators.

Setup / Onboarding (setup/)

Website setup wizard steps, onboarding flows.

Off-boarding (off-boarding/)

Account cancellation flows.

Checklist (checklist/)

Interactive accessibility compliance checklist.

Radix UI Wrappers (shadcn/)

Custom-styled wrappers around Radix UI primitives used throughout both apps:

Utility Components


Shared Types

File: packages/common/src/types/index.ts Key types used across both apps:

Shared Utilities

Location: packages/common/src/utils/

Shared Hooks

Location: packages/common/src/hooks/

Styling in common

The common package doesn’t have its own Tailwind config. It relies on the consuming app’s Tailwind setup. The apps include common’s source in their Tailwind content paths:
All Tailwind classes used in common components must use the wy- prefix (set in each app’s Tailwind config).

packages/focus-order (@webyes/focus-order)

The focus-order package is a standalone accessibility library that visualises keyboard focus order in web pages. It’s published as a dual ESM/CJS npm package. Package name: @webyes/focus-order Reference: "@webyes/focus-order": "workspace:*" in app dependencies

What It Does

When called, it:
  1. Scans the DOM for all focusable elements (links, buttons, inputs, etc.)
  2. Supports iframes — crawls into iframe documents
  3. Supports Shadow DOM — finds elements inside shadow roots
  4. Detects screen-reader-only elements — flags elements not visually visible
  5. Renders numbered badges next to each focusable element
  6. Draws SVG lines connecting badges in tab order
  7. Repositions badges on scroll and resize

Main Export


Types


Utility Functions


Build Output

Build command: