/** * Display Case — stable test ids for the browse chrome. * * These power the package's own end-to-end tests (see `e2e/`). They are the * single source of truth for chrome locators. * * The chrome (`shell.tsx`, `NavItem.tsx`) applies these as `data-testid` * attributes; e2e specs import this module and pass the constants/builders to * Playwright's `getByTestId` — never a raw text/role selector. See * `contributing/testing-best-practices.md` for the locator discipline. */ export const DcTestIds = { /** The chrome root (`
`). Present once the manifest loads. */ app: 'dc-app', /** The bracketed wordmark in the header, showing the showcase title. */ wordmark: 'dc-wordmark', /** The Dark/Light theme toggle button. Under the DOM substrate this *is* the * theme axis's control; a substrate declaring no theme axis still has it, * because the browse chrome is a DOM app with its own light/dark. */ themeToggle: 'dc-theme-toggle', /** * The control for a substrate-declared render axis, keyed by axis id — e.g. * `variantControl('cols')` → `dc-variant-cols`. Axes are declared by the * active substrate rather than fixed by Display Case, so locators are built * from the axis id instead of enumerated here. */ variantControl: (axisId: string) => `dc-variant-${axisId}`, /** The component-tree nav rail (`