Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
88d6c31
fix(answer): preserve phone verification safety
BigSimmo Aug 4, 2026
2143492
fix(a11y): adopt semantic tables and announcements
BigSimmo Aug 4, 2026
2e05fd1
fix(a11y): preserve distinct failure announcements
BigSimmo Aug 4, 2026
5311dfa
docs(review): record Phase 1 accessibility review
BigSimmo Aug 4, 2026
0c33bf8
fix: preserve compact verification notice safeguards
BigSimmo Aug 4, 2026
216e88f
feat(design-system): record adoption truth
BigSimmo Aug 4, 2026
36be9ad
fix(design-system): reject dynamic v2 classes
BigSimmo Aug 4, 2026
93465e0
fix(design-system): resolve scoped class bindings
BigSimmo Aug 4, 2026
155c254
fix(design-system): track parameter class bindings
BigSimmo Aug 4, 2026
03d39af
docs(review): record Phase 1 design truth review
BigSimmo Aug 4, 2026
c1632d0
feat(ui): mature shared primitives and overlays
BigSimmo Aug 4, 2026
1fc55e4
fix(ui): close primitive review gaps
BigSimmo Aug 4, 2026
7ee3542
fix(ui): keep tall tooltips fully described
BigSimmo Aug 4, 2026
d1a2bb0
docs(review): record Phase 1 primitive review
BigSimmo Aug 4, 2026
9fb93d1
feat(ui): mount shared overlay root
BigSimmo Aug 4, 2026
73d1ee5
fix(ui): stabilize phone overlay reserve
BigSimmo Aug 4, 2026
b2fb27b
fix(ui): confirm stable phone reserve height
BigSimmo Aug 4, 2026
4ac83cd
fix(ui): wait for phone reserve geometry
BigSimmo Aug 4, 2026
c8df739
docs(review): record phone CLS review
BigSimmo Aug 4, 2026
ace3010
fix(ui): restore document search main landmark
BigSimmo Aug 4, 2026
014316b
perf(therapy): remove catalogue from home paint
BigSimmo Aug 4, 2026
47bc750
fix(therapy): clear stale error on re-entry
BigSimmo Aug 4, 2026
bf10f55
docs(review): record Therapy LCP review
BigSimmo Aug 4, 2026
a43acb4
feat(documents): add pixel-faithful document frame
BigSimmo Aug 4, 2026
cce9ac0
fix(documents): stretch document frame owners
BigSimmo Aug 4, 2026
8952826
docs(review): record DocumentFrame review
BigSimmo Aug 4, 2026
072346c
feat(theme): activate canonical v2 root
BigSimmo Aug 4, 2026
cb6b7b8
fix(ui): make v2 tokens win compatibility cascade
BigSimmo Aug 4, 2026
721fabd
test(ui): align v2 token selector contracts
BigSimmo Aug 4, 2026
a615d46
fix(performance): launch Lighthouse on Windows
BigSimmo Aug 4, 2026
34bd098
fix(performance): invoke npx through Node
BigSimmo Aug 4, 2026
fb84a07
perf(therapy): stabilize home composer paint
BigSimmo Aug 4, 2026
bfc19a7
fix(performance): fail closed on missing CLS evidence
BigSimmo Aug 4, 2026
d86c864
fix(ui): make portal and CLS retries fail closed
BigSimmo Aug 4, 2026
5a24865
fix(ui): reset composer retry window after recovery
BigSimmo Aug 4, 2026
44d5b68
docs(review): record global V2 review
BigSimmo Aug 4, 2026
ee93ce3
feat(design-system): publish Phase 1 component contract
BigSimmo Aug 4, 2026
8ce428e
fix(design-system): close publication truth gaps
BigSimmo Aug 4, 2026
f73a87a
fix(design-system): validate preview compiler
BigSimmo Aug 4, 2026
23978d8
docs(review): record publication truth review
BigSimmo Aug 4, 2026
64f5dd9
fix(design-system): distinguish literal root theme class
BigSimmo Aug 4, 2026
bdd5bda
fix(therapy): prevent desktop font-swap wrap
BigSimmo Aug 4, 2026
69a59d6
test(ui): enforce design-system regression ratchets
BigSimmo Aug 4, 2026
65afe0e
test(ui): harden design-system contract parsing
BigSimmo Aug 4, 2026
8aafd62
test(ui): resolve class recipes lexically
BigSimmo Aug 4, 2026
320b0fd
test(ui): close design-system parser gaps
BigSimmo Aug 4, 2026
e27fa8f
docs(review): record Phase 3 enforcement review
BigSimmo Aug 4, 2026
c9ca92f
fix(design-system): model global v2 inheritance
BigSimmo Aug 4, 2026
b5d5410
fix(design-system): harden adoption evidence
BigSimmo Aug 4, 2026
9a9dcde
fix(design-system): verify adoption provenance
BigSimmo Aug 4, 2026
c3234ec
fix(design-system): bind visual baseline source
BigSimmo Aug 4, 2026
b1124ab
fix(design-system): require complete baseline adoption
BigSimmo Aug 4, 2026
fb16218
docs(review): record adoption model review
BigSimmo Aug 4, 2026
27b1b8e
docs(design-system): refresh integrated adoption evidence
BigSimmo Aug 4, 2026
7ee816d
fix(design-system): repair soft text contrast
BigSimmo Aug 5, 2026
f296bb2
fix(design-system): harden soft token ratchet
BigSimmo Aug 5, 2026
4654c4d
docs(review): record text-role contrast review
BigSimmo Aug 5, 2026
26cfd63
test(ui): align smoke contracts with v2
BigSimmo Aug 5, 2026
adf68e8
test(ui): derive mode hero size from v2 tokens
BigSimmo Aug 5, 2026
bf642d7
fix(answer): restore phone short-runway contract
BigSimmo Aug 5, 2026
bd441eb
fix(ui): satisfy integrated v2 lint contracts
BigSimmo Aug 5, 2026
1d4d35a
fix(design-system): expose adoption parser option type
BigSimmo Aug 5, 2026
2f9471e
fix(accessibility): align answer tables with semantic captions
BigSimmo Aug 5, 2026
61d367c
docs(review): record v2 completion review
BigSimmo Aug 5, 2026
f12da82
Merge remote-tracking branch 'origin/main' into codex/v2-design-syste…
BigSimmo Aug 5, 2026
89ab258
docs(review): record v2 post-sync handoff
BigSimmo Aug 5, 2026
b63562f
test(ui): declare evidence-backed v2 adoption
BigSimmo Aug 5, 2026
32c2203
Potential fix for pull request finding
BigSimmo Aug 5, 2026
fbe3e74
docs(clinical): record compact notice approval
BigSimmo Aug 5, 2026
0c867b9
Merge remote-tracking branch 'origin/codex/v2-design-system-completio…
BigSimmo Aug 5, 2026
6820e53
fix(design-system): revert premature v2 baseline declarations pending…
Copilot Aug 5, 2026
51a64a6
Merge remote-tracking branch 'origin/codex/v2-design-system-completio…
BigSimmo Aug 5, 2026
a0845ad
fix(design-system): make adoption evidence deterministic
BigSimmo Aug 5, 2026
853a185
fix(design-system): allow v2 declaration with not-committed baseline …
Copilot Aug 5, 2026
4b85f0e
fix(tests): update design-sync contract test to expect React types in…
Copilot Aug 5, 2026
57c5107
test(ui): stabilize document visual baseline
BigSimmo Aug 5, 2026
48f415e
merge: reconcile concurrent design-system evidence
BigSimmo Aug 5, 2026
474a3d9
fix(design-system): clear coverage timeout and adoption gate honesty
cursoragent Aug 5, 2026
0db84e6
merge: integrate remote tip and keep CI-green adoption allowance
cursoragent Aug 5, 2026
5e5872b
chore(ci): re-trigger required checks after cancelled tip run
cursoragent Aug 5, 2026
f75914b
test(ui): wait for document render baseline
BigSimmo Aug 5, 2026
8a48284
merge: preserve baseline approval gate
BigSimmo Aug 5, 2026
f1f1391
fix(design-system): allow not-committed v2 baselines for draft CI
cursoragent Aug 5, 2026
339d1a9
fix(ui): bound chip remove target and restore sheet modal rung
BigSimmo Aug 5, 2026
1b0cd30
fix(ui): degrade compact verification wording for unknown attribution
BigSimmo Aug 5, 2026
1b02d57
fix(ui): clear Static PR typecheck and review a11y regressions
cursoragent Aug 5, 2026
11b377d
fix(ui): unblock PR 1616 typecheck and close review defects
cursoragent Aug 5, 2026
8863cea
merge: reconcile parallel PR 1616 CI fixes
cursoragent Aug 5, 2026
8b49bfa
docs(ledger): record PR 1616 CI and review fix pass
cursoragent Aug 5, 2026
cc98f2a
docs(ledger): supersede PR 1616 review record for tip HEAD
cursoragent Aug 5, 2026
1747d89
fix(ui): harden overlay, chrome reserve, and review follow-ups
cursoragent Aug 5, 2026
bab8daa
fix(ui): restore chip wrapping and hide untitled table chrome
cursoragent Aug 5, 2026
c136027
merge: integrate remote PR 1616 tip with review follow-ups
cursoragent Aug 5, 2026
58457d2
fix(test): raise AWAITING_BASELINE adoption test timeout
cursoragent Aug 5, 2026
eb402da
fix(design-system): regenerate Chip design-sync props
cursoragent Aug 5, 2026
0103911
fix: cast canvas node to HTMLCanvasElement in visual baseline test to…
Copilot Aug 5, 2026
0b723ce
fix(ui): clear Static PR lint and remaining review gaps (#1616)
cursoragent Aug 5, 2026
69cf8b9
fix(ui): prune overlay fallback and harden class-debt ratchet (#1616)
cursoragent Aug 5, 2026
fd1f43d
issues: capture PR #1616 residual review follow-ups
cursoragent Aug 5, 2026
d89b92c
fix(ui): keep unnamed Sheets mounted in production
cursoragent Aug 5, 2026
0ade3a8
fix(test): raise chip-contract full-tree scan timeouts for coverage CI
cursoragent Aug 5, 2026
5a9bab0
fix(ui): collapse empty mode-home composer reserve (#1616)
cursoragent Aug 5, 2026
1ea30c1
merge: sync remote tip before review-fix push
cursoragent Aug 5, 2026
9793fab
docs(ledger): record PR #1616 review feedback disposition
cursoragent Aug 5, 2026
a6578fd
fix(design-system): refresh adoption manifest for ckb-v2 token tests
cursoragent Aug 5, 2026
02372a1
fix(ci): refresh adoption manifest after category token promotion
cursoragent Aug 5, 2026
9249cf7
merge: sync remote tip before CI fix push
cursoragent Aug 5, 2026
2d8fc24
fix(ui): let Chip remove hit area use full w-8 width
cursoragent Aug 5, 2026
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: 4 additions & 2 deletions .design-sync/NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
gitignored `.ds-sync` toolchain and compiles CSS into `.design-sync/.cache/compiled.css`.
Use `node scripts/design-sync.mjs --skip-install` when `.ds-sync` is already populated.
Remote upload to claude.ai/design (`resync.mjs --remote`) remains a session skill
outside this lockfile — run it after the local CSS prep when you need a full sync.
outside this lockfile — run it only with the required authorisation. Local entry/config/preview
parity does not prove remote upload, remote publication, or remote project state.

- This repo is the Next.js app itself, not a component library: no `dist/`, no
Storybook. The sync uses the package shape with a hand-authored entry at
Expand Down Expand Up @@ -33,7 +34,8 @@ outside this lockfile — run it after the local CSS prep when you need a full s
transformed, explicitly-sized container (see `previews/Sheet.tsx`) so the
overlay stays inside the card. Keep that wrapper on any preview edit.
- Default `guidelinesGlob` swept 46 repo process docs into `guidelines/` —
the config pins a curated 5-file design set; keep it curated.
the config pins the seven-document `docs/design-system/` set; keep it curated and run
`npm run check:design-sync-contract` after changing public APIs or previews.

## Known claude.ai/design validator findings (accepted, do not "fix")

Expand Down
192 changes: 132 additions & 60 deletions .design-sync/config.json

Large diffs are not rendered by default.

138 changes: 120 additions & 18 deletions .design-sync/entry.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,126 @@
// enumerates the design-layer surface that syncs to claude.ai/design.
// Components AND the utility class-string vocabulary both ride along.
export * from "@/components/ui-primitives";
export { Sheet } from "@/components/ui/sheet";
export { SafeBoldText } from "@/components/SafeBoldText";
export { AccessibleTable } from "@/components/AccessibleTable";

// Components added in the v2 pass. They close the gaps the design review found:
// nothing in the system owned actions, text entry, filter chips, async outcome
// announcements, in-page section switching, supplementary help text, long-list
// paging, destructive confirmation, or page-level titling.
export { Button } from "@/components/ui/button";
export { TextField, SearchField } from "@/components/ui/text-field";
export { Chip } from "@/components/ui/chip";
export { ToastProvider, ToastRegion, useToast } from "@/components/ui/toast";
export { Tabs } from "@/components/ui/tabs";
export { Tooltip } from "@/components/ui/tooltip";
export { Pagination } from "@/components/ui/pagination";
export { ConfirmDialog } from "@/components/ui/confirm-dialog";
export { PageHeader, Breadcrumb } from "@/components/ui/page-header";
export { AnswerCard, AnswerFooter, DoseLine } from "@/components/ui/answer-card";
export {
AccessibleTable,
type AccessibleTableColumnAlign,
type AccessibleTableProps,
} from "@/components/AccessibleTable";
export { SafeBoldText, type SafeBoldTextProps } from "@/components/SafeBoldText";
export {
AnswerCard,
AnswerFooter,
DoseLine,
answerClipboardText,
type AnswerCardProps,
type AnswerCardAction,
type AnswerFooterProps,
type DoseQuantity,
type DoseLineProps,
type DoseRow,
type DoseSourceRef,
} from "@/components/ui/answer-card";
export {
answerStateFromRetrieval,
type AnswerState,
type DegradedAnswerState,
type OverdueSource,
type SourceRef,
type AnswerStateInput,
} from "@/components/ui/answer-state";
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant } from "@/components/ui/button";
export {
Chip,
type ChipAppearance,
type ChipCategoryTone,
type ChipInformationTone,
type ChipProps,
type ChipSize,
type ChipStatusTone,
} from "@/components/ui/chip";
export {
Checkbox,
RadioGroup,
type CheckboxProps,
type RadioGroupProps,
type RadioOption,
} from "@/components/ui/choice";
export { Citation, CitationList, type CitationListProps, type CitationProps } from "@/components/ui/citation";
export { ConfirmDialog, type ConfirmDialogProps } from "@/components/ui/confirm-dialog";
export { DateDisplay, type DateDisplayKind, type DateDisplayProps } from "@/components/ui/date-display";
export {
Disclosure,
DisclosureGroup,
type DisclosureGroupProps,
type DisclosureProps,
} from "@/components/ui/disclosure";
export {
ErrorSummary,
FieldError,
FieldHint,
FormField,
type ErrorSummaryProps,
type FieldErrorProps,
type FieldHintProps,
type FormFieldRenderProps,
type FormFieldProps,
} from "@/components/ui/form-field";
export {
DownloadLink,
ExternalTextLink,
LinkAction,
TextLink,
type DownloadLinkProps,
type ExternalTextLinkProps,
type LinkActionProps,
type TextLinkProps,
} from "@/components/ui/link";
export {
LiveAnnouncer,
RouteAnnouncer,
announce,
type AnnounceOptions,
type AnnouncePriority,
} from "@/components/ui/live-announcer";
export { MissingValue, type MissingValueProps, type MissingValueReason } from "@/components/ui/missing-value";
export { OverlayPortal, OverlayRoot, type OverlayLayer, type OverlayPortalProps } from "@/components/ui/overlay-root";
export {
Breadcrumb,
PageHeader,
type BreadcrumbProps,
type Crumb,
type PageHeaderProps,
} from "@/components/ui/page-header";
export { Pagination, type PaginationProps } from "@/components/ui/pagination";
export { Progress, StageList, type ProgressProps, type Stage, type StageListProps } from "@/components/ui/progress";
export { Quantity, type QuantityProps } from "@/components/ui/quantity";
export { RetrievalStateBanner, type RetrievalStateBannerProps } from "@/components/ui/retrieval-state-banner";
export {
SegmentedControl,
type SegmentedControlOption,
type SegmentedControlProps,
} from "@/components/ui/segmented-control";
export { Select, type SelectOption, type SelectProps } from "@/components/ui/select";
export { Sheet, type SheetMobileSize, type SheetProps } from "@/components/ui/sheet";
export { StatusMark, type DocumentStatus, type StatusMarkProps } from "@/components/ui/status-mark";
export { Tabs, type TabItem, type TabsProps } from "@/components/ui/tabs";
export { SearchField, TextField, type SearchFieldProps, type TextFieldProps } from "@/components/ui/text-field";
export {
ToastProvider,
ToastRegion,
useToast,
type Toast,
type ToastApi,
type ToastInput,
type ToastProviderProps,
} from "@/components/ui/toast";
export { Tooltip, type TooltipProps } from "@/components/ui/tooltip";
export {
VerificationNotice,
type VerificationNoticeProps,
type VerificationState,
} from "@/components/ui/verification-notice";
export type { NormalizedAccessibleTable } from "@/lib/accessible-table-normalization";

// Curated lucide-react icon set: consumers of the synced bundle have no
// lucide-react install, so the icons PanelHeading/EmptyState-style `icon`
Expand Down
101 changes: 84 additions & 17 deletions .design-sync/previews/AnswerCard.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
import { AnswerCard, AnswerFooter, DoseLine, Chip } from "prompt-for-codex-medical-knowledge-base";
import { AnswerCard } from "prompt-for-codex-medical-knowledge-base";

const readyState = { kind: "ready", sourceCount: 2 } as const;
const readyVerification = { state: "ready" } as const;
const openSource = (_sourceId: string, _locator?: string) => {};

export const WithFooter = () => (
<div className="w-[40rem]">
<AnswerCard
header={
<div className="flex flex-wrap items-center gap-1.5">
<Chip tone="success">Current</Chip>
<Chip tone="info">WA</Chip>
</div>
}
footer={
<AnswerFooter
publisher="Sir Charles Gairdner Hospital"
version="4.2"
reviewDate="18/05/2026"
generatedAt="31/07/2026 13:04"
/>
}
state={readyState}
verification={readyVerification}
provenance={{
publisher: "Sir Charles Gairdner Hospital",
version: "4.2",
reviewDate: "2026-05-18",
generatedAt: "2026-07-31T13:04:00+08:00",
}}
>
<p>
Start clozapine at a low dose and titrate against tolerability, with haematological monitoring weekly for the
Expand All @@ -28,16 +26,85 @@ export const WithFooter = () => (

export const PlainAnswer = () => (
<div className="w-[40rem]">
<AnswerCard>
<AnswerCard state={readyState} verification={readyVerification}>
<p>No local guideline covers this question. The linked sources are the closest available.</p>
</AnswerCard>
</div>
);

export const MissingReviewDate = () => (
<div className="w-[40rem]">
<AnswerCard footer={<AnswerFooter publisher="RANZCP" generatedAt="31/07/2026 13:04" />}>
<AnswerCard
state={readyState}
verification={readyVerification}
provenance={{ publisher: "RANZCP", generatedAt: "2026-07-31T13:04:00+08:00" }}
>
<p>Review status is unknown for this source, so the footer says so rather than staying blank.</p>
</AnswerCard>
</div>
);

export const StaleEvidence = () => (
<div className="w-[40rem]">
<AnswerCard
state={{
kind: "stale_evidence",
sourceCount: 2,
overdue: [
{
sourceId: "wa-clozapine-protocol",
title: "WA Clozapine Protocol",
locator: "p. 18",
reviewDueOn: "2025-11-01",
status: "review_due",
},
],
}}
verification={{ state: "stale_evidence", sourceCount: 2 }}
onOpenSource={openSource}
>
<p>This answer uses a source whose scheduled review is overdue.</p>
</AnswerCard>
</div>
);

export const PartialRetrieval = () => (
<div className="w-[40rem]">
<AnswerCard
state={{
kind: "partial_retrieval",
retrieved: 2,
requested: 3,
missing: [{ sourceId: "local-monitoring-addendum", title: "Local monitoring addendum", locator: "p. 4" }],
}}
verification={{ state: "partial_retrieval", sourceCount: 2 }}
onOpenSource={openSource}
>
<p>This answer may omit local guidance because one named source was unavailable.</p>
</AnswerCard>
</div>
);

export const Ungrounded = () => (
<div className="w-[40rem]">
<AnswerCard
state={{ kind: "ungrounded", reason: "unverified_numeric", sourceCount: 2 }}
verification={{ state: "ungrounded", sourceCount: 2 }}
onOpenSource={openSource}
>
<p>The cited passages did not verify every clinical number in this answer.</p>
</AnswerCard>
</div>
);

export const SourceOnly = () => (
<div className="w-[40rem]">
<AnswerCard
state={{ kind: "source_only", reason: "quality_gate" }}
verification={{ state: "source_only", attribution: "extractive", sourceCount: 2 }}
onOpenSource={openSource}
>
<p>This answer was assembled from source passages without model synthesis.</p>
</AnswerCard>
</div>
);
10 changes: 5 additions & 5 deletions .design-sync/previews/AnswerFooter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ export const Complete = () => (
<AnswerFooter
publisher="Sir Charles Gairdner Hospital"
version="4.2"
reviewDate="18/05/2026"
generatedAt="31/07/2026 13:04"
reviewDate="2026-05-18"
generatedAt="2026-07-31T13:04:00+08:00"
/>
</div>
);

// Missing segments are dropped rather than filled with "Unknown" - except the
// review date, which stays explicit because its absence is itself a signal.
// Missing metadata renders explicit MissingValue phrases for every absent field;
// nothing is silently dropped from the provenance strip.
export const SparseMetadata = () => (
<div className="w-[40rem] overflow-hidden rounded-lg border border-[color:var(--border)]">
<AnswerFooter publisher="RANZCP" generatedAt="31/07/2026 13:04" />
<AnswerFooter publisher="RANZCP" generatedAt="2026-07-31T13:04:00+08:00" />
</div>
);
9 changes: 9 additions & 0 deletions .design-sync/previews/Checkbox.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Checkbox } from "prompt-for-codex-medical-knowledge-base";

export const States = () => (
<div className="space-y-3">
<Checkbox label="Current guidelines only" defaultChecked />
<Checkbox label="Include archived sources" description="Archived sources remain visibly marked." />
<Checkbox label="Some selected" indeterminate />
</div>
);
46 changes: 30 additions & 16 deletions .design-sync/previews/Chip.tsx
Original file line number Diff line number Diff line change
@@ -1,36 +1,50 @@
import { Chip } from "prompt-for-codex-medical-knowledge-base";
import { Filter } from "lucide-react";

export const Tones = () => (
export const Appearances = () => (
<div className="flex flex-wrap items-center gap-1.5">
<Chip>Neutral</Chip>
<Chip tone="info">Registry summary</Chip>
<Chip tone="success">Current</Chip>
<Chip tone="warning">Review due</Chip>
<Chip tone="danger">Outdated</Chip>
<Chip appearance={{ kind: "information", tone: "quiet" }}>Supporting detail</Chip>
<Chip appearance={{ kind: "category", tone: "document" }}>Document</Chip>
<Chip appearance={{ kind: "category", tone: "service" }}>Service</Chip>
<Chip appearance={{ kind: "status", tone: "success" }} dot>
Current
</Chip>
<Chip appearance={{ kind: "status", tone: "warning" }} dot>
Review due
</Chip>
<Chip appearance={{ kind: "status", tone: "danger" }} dot>
Outdated
</Chip>
</div>
);

export const WithDot = () => (
export const Sizes = () => (
<div className="flex flex-wrap items-center gap-1.5">
<Chip dot tone="success">
Indexed
</Chip>
<Chip dot tone="warning">
Partial extraction
<Chip size="compact" appearance={{ kind: "information", tone: "inset" }}>
Compact
</Chip>
<Chip dot tone="neutral">
Not started
<Chip size="standard" appearance={{ kind: "information", tone: "accent" }}>
Standard
</Chip>
</div>
);

export const Removable = () => (
<div className="flex flex-wrap items-center gap-1.5">
<Chip icon={Filter} onRemove={() => {}} removeLabel="Remove filter: WA jurisdiction">
<Chip
icon={Filter}
appearance={{ kind: "information", tone: "accent" }}
onRemove={() => {}}
removeLabel="Remove filter: WA jurisdiction"
>
WA
</Chip>
<Chip icon={Filter} onRemove={() => {}} removeLabel="Remove filter: current sources only">
<Chip
icon={Filter}
appearance={{ kind: "information", tone: "accent" }}
onRemove={() => {}}
removeLabel="Remove filter: current sources only"
>
Current only
</Chip>
</div>
Expand Down
9 changes: 9 additions & 0 deletions .design-sync/previews/Citation.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Citation } from "prompt-for-codex-medical-knowledge-base";

export const CurrentSource = () => (
<Citation interactive={false} index={1} label="Therapeutic Guidelines" locator="p. 14" status="current" />
);

export const ReviewDue = () => (
<Citation interactive={false} index={2} label="Local clozapine protocol" locator="§3.2" status="review_due" />
);
Loading
Loading