Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .design-sync/config.json

Large diffs are not rendered by default.

16 changes: 9 additions & 7 deletions docs/design-system/ADOPTION.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -334,13 +334,15 @@ chrome differs between them.
This PR records executable evidence rather than committing image baselines. The generated adoption
manifest remains `baseline: not-committed`, and no Playwright snapshot PNG is an adoption claim.

| Surface | Current adopted evidence | Focused owner/check |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| forms | `FormField` is mounted by `TextField`/`Select`; required labels carry a text marker and optional labels remain unmarked. | `tests/ui-v2-form-field.dom.test.tsx` |
| headers/catalogues | Shared mode status notices now delegate to DS `EmptyState`; therapy loading/empty wrappers delegate to `LoadingPanel`/`EmptyState`; differential and favourites chip wrappers delegate to DS `Chip` while retaining their surface-specific density/tone mapping. | `tests/design-system-target-evidence.test.ts`, `tests/mode-home-status-notice.dom.test.tsx` |
| overlays | `Sheet` portals to `OverlayRoot`'s modal host by default. Settings, the mobile Clinical Guide sidebar, and the three answer-review sheets use that default; none opts out with `portal={false}`. | `tests/sheet.dom.test.tsx`, `tests/design-system-target-evidence.test.ts` |
| answer | The three product copy paths share the payload builder described in §2.6; answer-review overlays retain their existing content, dismissal, and focus-return props while using the portal default. | `tests/answer-copy-payload.test.ts`, `tests/answer-clipboard-product-path.dom.test.tsx` |
| cross-mode links | `responsive-compact` deliberately mounts a phone chip rail and an `md+` card rail so SSR and hydration agree. CSS makes only one rail visible/in the accessibility tree; selectors and analytics must target the variant rail, while `cross-mode-links-rail` remains the phone-only contract. | `tests/design-system-target-evidence.test.ts`, focused `tests/ui-smoke.spec.ts` CrossModeLinks journeys |
| Surface | Current adopted evidence | Focused owner/check |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| forms | `FormField` is mounted by `TextField`/`Select`/`Checkbox`/`RadioGroup`; required labels carry a text marker and optional labels remain unmarked; validation errors associate via `aria-describedby`; form state is preserved across back-navigation. | `tests/ui-v2-form-field.dom.test.tsx`, `tests/forms-back-navigation.dom.test.tsx` |
| catalogues | Shared search, sort, and filter action bars across Differentials, Formulations, and Specifiers are standardized under `<CatalogueToolbar />`; shared mode status notices delegate to DS `EmptyState`; therapy loading/empty wrappers delegate to `LoadingPanel`/`EmptyState`; differential and favourites chip wrappers delegate to DS `Chip` while retaining their surface-specific density/tone mapping. | `tests/design-system-target-evidence.test.ts`, `tests/catalogue-toolbar.dom.test.tsx`, `tests/mode-home-status-notice.dom.test.tsx` |
| docs | `DocumentFrame` serves as single canonical viewing chrome across document details and viewer surfaces; document section nav supports keyboard & anchor navigation; document search filter shelf and clinical summary toggle are integrated. | `tests/document-section-nav.dom.test.tsx`, `tests/document-frame-contract.test.ts` |
| provenance | `DoseLine` and `AnswerFooter` wire source provenance badges (`SourceDesignationBadge`, `SourceStatusBadge`, `SourceProvenance`) so dose rows, guideline citations, and answer footer strips display source authority and currency cleanly when metadata is present in the payload. | `tests/dose-line.dom.test.tsx`, `tests/ui-v2-answer-safety.dom.test.tsx` |
| overlays | `Sheet` portals to `OverlayRoot`'s modal host by default. Settings, the mobile Clinical Guide sidebar, and the three answer-review sheets use that default; none opts out with `portal={false}`. | `tests/sheet.dom.test.tsx`, `tests/design-system-target-evidence.test.ts` |
| answer | The three product copy paths share the payload builder described in §2.6; answer-review overlays retain their existing content, dismissal, and focus-return props while using the portal default. | `tests/answer-copy-payload.test.ts`, `tests/answer-clipboard-product-path.dom.test.tsx` |
| cross-mode links | `responsive-compact` deliberately mounts a phone chip rail and an `md+` card rail so SSR and hydration agree. CSS makes only one rail visible/in the accessibility tree; selectors and analytics must target the variant rail, while `cross-mode-links-rail` remains the phone-only contract. | `tests/design-system-target-evidence.test.ts`, focused `tests/ui-smoke.spec.ts` CrossModeLinks journeys |

**Residual evidence requirement.** Static and DOM checks establish portal ownership and preserve
focus-return inputs, but they do not prove every nested overlay's keyboard sequence in a real browser.
Expand Down
8 changes: 4 additions & 4 deletions docs/design-system/COMPONENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -955,15 +955,15 @@ tests to run.

Registered public components: 54
Components with a valid design-sync preview: 54
Components with product imports: 33
Components with product imports: 34

This generated snapshot is a local source-derived inventory. It does not assert remote design-project publication.

| Component | Family | Built | Locally registered | Observed v2 mount | Proof declared | Baseline committed | Product imports |
| ------------------------ | -------- | ----- | ------------------ | --------------------- | -------------- | ------------------ | --------------: |
| `AccessibleTable` | source | yes | yes | inherited-global-root | yes | no | 4 |
| `AnswerCard` | answer | yes | yes | inherited-global-root | yes | no | 1 |
| `AnswerFooter` | answer | yes | yes | no | yes | no | 0 |
| `AnswerFooter` | answer | yes | yes | inherited-global-root | yes | no | 1 |
| `AsyncButton` | controls | yes | yes | inherited-global-root | yes | no | 4 |
| `Breadcrumb` | layout | yes | yes | inherited-global-root | yes | no | 1 |
| `Button` | controls | yes | yes | inherited-global-root | yes | no | 3 |
Expand DownExpand Up@@ -1003,9 +1003,9 @@ This generated snapshot is a local source-derived inventory. It does not assert
| `Select` | controls | yes | yes | inherited-global-root | yes | no | 2 |
| `Sheet` | layout | yes | yes | inherited-global-root | yes | no | 25 |
| `Skeleton` | feedback | yes | yes | inherited-global-root | yes | no | 6 |
| `SourceDesignationBadge` | source | yes | yes | inherited-global-root | yes | no | 2 |
| `SourceDesignationBadge` | source | yes | yes | inherited-global-root | yes | no | 4 |
| `SourceProvenance` | source | yes | yes | inherited-global-root | yes | no | 1 |
| `SourceStatusBadge` | source | yes | yes | inherited-global-root | yes | no | 2 |
| `SourceStatusBadge` | source | yes | yes | inherited-global-root | yes | no | 4 |
| `StageList` | feedback | yes | yes | no | yes | no | 0 |
| `StatusMark` | source | yes | yes | inherited-global-root | yes | no | 2 |
| `Tabs` | controls | yes | yes | inherited-global-root | yes | no | 2 |
Expand Down
57 changes: 34 additions & 23 deletions docs/design-system/adoption-manifest.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -166,11 +166,11 @@
{
"name": "AnswerFooter",
"family": "answer",
"source": "src/components/ui/answer-card.tsx",
"source": "src/components/answer/AnswerFooter.tsx",
"sourceExported": true,
"entryExported": true,
"directImportFiles": [],
"productImportFiles": [],
"directImportFiles": ["src/components/ui/answer-card.tsx"],
"productImportFiles": ["src/components/ui/answer-card.tsx"],
"designSync": {
"listedInSourceMap": true,
"listedInDtsProps": true,
Expand All@@ -181,6 +181,7 @@
"tests/design-sync-contract.test.ts",
"tests/design-sync-visual-exports.test.ts",
"tests/design-system-adoption.test.ts",
"tests/dose-line.dom.test.tsx",
"tests/ui-v2-answer-safety.dom.test.tsx",
"tests/ui-v2-components.dom.test.tsx"
],
Expand All@@ -192,8 +193,8 @@
},
"built": true,
"locallyRegistered": true,
"v2ShellMounted": false,
"v2MountMode": "none",
"v2ShellMounted": true,
"v2MountMode": "inherited-global-root",
"proofDeclared": true,
"baselineCommitted": false
},
Expand DownExpand Up@@ -488,12 +489,12 @@
"sourceExported": true,
"entryExported": true,
"directImportFiles": [
"src/components/ui/answer-card.tsx",
"src/components/answer/AnswerFooter.tsx",
"src/components/ui/retrieval-state-banner.tsx",
"src/components/ui/verification-notice.tsx"
],
"productImportFiles": [
"src/components/ui/answer-card.tsx",
"src/components/answer/AnswerFooter.tsx",
"src/components/ui/retrieval-state-banner.tsx",
"src/components/ui/verification-notice.tsx"
],
Expand DownExpand Up@@ -589,7 +590,7 @@
{
"name": "DoseLine",
"family": "answer",
"source": "src/components/ui/answer-card.tsx",
"source": "src/components/ui/dose-line.tsx",
"sourceExported": true,
"entryExported": true,
"directImportFiles": [],
Expand All@@ -602,6 +603,7 @@
},
"testFiles": [
"tests/design-sync-visual-exports.test.ts",
"tests/dose-line.dom.test.tsx",
"tests/ui-v2-answer-safety.dom.test.tsx",
"tests/ui-v2-components.dom.test.tsx"
],
Expand DownExpand Up@@ -1044,12 +1046,12 @@
"entryExported": true,
"directImportFiles": [
"src/components/AccessibleTable.tsx",
"src/components/ui/answer-card.tsx",
"src/components/answer/AnswerFooter.tsx",
"src/components/ui/date-display.tsx"
],
"productImportFiles": [
"src/components/AccessibleTable.tsx",
"src/components/ui/answer-card.tsx",
"src/components/answer/AnswerFooter.tsx",
"src/components/ui/date-display.tsx"
],
"designSync": {
Expand All@@ -1062,6 +1064,7 @@
"tests/design-sync-contract.test.ts",
"tests/design-sync-visual-exports.test.ts",
"tests/design-system-adoption.test.ts",
"tests/dose-line.dom.test.tsx",
"tests/ui-v2-answer-safety.dom.test.tsx"
],
"baseline": {
Expand DownExpand Up@@ -1234,8 +1237,8 @@
"source": "src/components/ui/quantity.tsx",
"sourceExported": true,
"entryExported": true,
"directImportFiles": ["src/components/ui/answer-card.tsx"],
"productImportFiles": ["src/components/ui/answer-card.tsx"],
"directImportFiles": ["src/components/ui/dose-line.tsx"],
"productImportFiles": ["src/components/ui/dose-line.tsx"],
"designSync": {
"listedInSourceMap": true,
"listedInDtsProps": true,
Expand DownExpand Up@@ -1454,11 +1457,11 @@
"entryExported": true,
"directImportFiles": [
"src/components/clinical-dashboard/settings-dialog.tsx",
"src/components/formulation/formulation-builder-page.tsx"
"src/components/ui/catalogue-toolbar.tsx"
],
"productImportFiles": [
"src/components/clinical-dashboard/settings-dialog.tsx",
"src/components/formulation/formulation-builder-page.tsx"
"src/components/ui/catalogue-toolbar.tsx"
],
"designSync": {
"listedInSourceMap": true,
Expand DownExpand Up@@ -1641,12 +1644,16 @@
"sourceExported": true,
"entryExported": true,
"directImportFiles": [
"src/components/answer/AnswerFooter.tsx",
"src/components/clinical-dashboard/document-admin.tsx",
"src/components/therapy-compass/screens/detail-screen.tsx"
"src/components/therapy-compass/screens/detail-screen.tsx",
"src/components/ui/dose-line.tsx"
],
"productImportFiles": [
"src/components/answer/AnswerFooter.tsx",
"src/components/clinical-dashboard/document-admin.tsx",
"src/components/therapy-compass/screens/detail-screen.tsx"
"src/components/therapy-compass/screens/detail-screen.tsx",
"src/components/ui/dose-line.tsx"
],
"designSync": {
"listedInSourceMap": true,
Expand DownExpand Up@@ -1703,12 +1710,16 @@
"sourceExported": true,
"entryExported": true,
"directImportFiles": [
"src/components/answer/AnswerFooter.tsx",
"src/components/clinical-dashboard/document-admin.tsx",
"src/components/therapy-compass/screens/detail-screen.tsx"
"src/components/therapy-compass/screens/detail-screen.tsx",
"src/components/ui/dose-line.tsx"
],
"productImportFiles": [
"src/components/answer/AnswerFooter.tsx",
"src/components/clinical-dashboard/document-admin.tsx",
"src/components/therapy-compass/screens/detail-screen.tsx"
"src/components/therapy-compass/screens/detail-screen.tsx",
"src/components/ui/dose-line.tsx"
],
"designSync": {
"listedInSourceMap": true,
Expand DownExpand Up@@ -1765,11 +1776,11 @@
"sourceExported": true,
"entryExported": true,
"directImportFiles": [
"src/components/ui/answer-card.tsx",
"src/components/ui/citation.tsx",
"src/components/ui/dose-line.tsx",
"src/components/ui/retrieval-state-banner.tsx"
],
"productImportFiles": ["src/components/ui/answer-card.tsx", "src/components/ui/retrieval-state-banner.tsx"],
"productImportFiles": ["src/components/ui/dose-line.tsx", "src/components/ui/retrieval-state-banner.tsx"],
"designSync": {
"listedInSourceMap": true,
"listedInDtsProps": true,
Expand DownExpand Up@@ -1839,13 +1850,13 @@
"src/components/clinical-dashboard/account-setup-dialog.tsx",
"src/components/clinical-dashboard/patient-profile-panel.tsx",
"src/components/clinical-dashboard/settings-dialog.tsx",
"src/components/formulation/formulation-builder-page.tsx"
"src/components/ui/catalogue-toolbar.tsx"
],
"productImportFiles": [
"src/components/clinical-dashboard/account-setup-dialog.tsx",
"src/components/clinical-dashboard/patient-profile-panel.tsx",
"src/components/clinical-dashboard/settings-dialog.tsx",
"src/components/formulation/formulation-builder-page.tsx"
"src/components/ui/catalogue-toolbar.tsx"
],
"designSync": {
"listedInSourceMap": true,
Expand DownExpand Up@@ -3432,7 +3443,7 @@
"summary": {
"registeredComponentCount": 54,
"previewCount": 54,
"productImportedComponentCount": 33,
"productImportedComponentCount": 34,
"rootCount": 59,
"productionRouteCount": 51,
"nextUiEntryCount": 103
Expand Down
Loading
Loading