/**
* 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 (`