chore(copy): em-dash sweep across user-facing JSX text + bump lint to error
Replaced 174 em-dashes (—) with " - " (space-hyphen-space) across 49 files in src/components + src/app. The em-dash reads as a tell-tale "AI-generated" marker per the user's design feedback; hyphens with spaces preserve the connector semantics without the AI tint. Touched only lines outside pure-comment context (// /* * */). Code comments, JSDoc, audit-log strings, structured logging strings, and templates outside the lint scope retain their em-dashes for now — they're not user-visible. Also captured two remaining cases that used the `—` HTML entity instead of the literal character (system-monitoring-dashboard, interest-stage-picker) — replaced with a plain hyphen. Bumped the existing `no-restricted-syntax` rule from `warn` → `error` in eslint.config.mjs scoped to src/components/**/*.tsx + src/app/**/*.tsx. New code reintroducing em-dashes in JSX text now fails the lint gate. Verified: tsc clean, vitest 1448/1448, eslint 0 em-dash warnings. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -245,7 +245,7 @@ function BulkArchiveWizardBody({ open, onOpenChange, clientIds, onSuccess }: Pro
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-xs text-muted-foreground">
|
||||
This action is reversible — restore individually from each archived client.
|
||||
This action is reversible - restore individually from each archived client.
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -175,7 +175,7 @@ function BulkHardDeleteDialogBody({ onOpenChange, clientIds, onDeleted }: Props)
|
||||
{stage === 'partial' && (
|
||||
<div className="space-y-3 text-sm">
|
||||
<div className="rounded-md border border-amber-300 bg-amber-50 p-3 text-amber-900">
|
||||
{partialDeleted} of {clientIds.length} permanently deleted. {skipped.length} skipped —
|
||||
{partialDeleted} of {clientIds.length} permanently deleted. {skipped.length} skipped -
|
||||
see below.
|
||||
</div>
|
||||
<div className="rounded-md border max-h-60 overflow-y-auto">
|
||||
|
||||
@@ -278,7 +278,7 @@ function SmartArchiveDialogBody({
|
||||
<DialogHeader>
|
||||
<DialogTitle>Archive {clientName}</DialogTitle>
|
||||
<DialogDescription>
|
||||
Archive is reversible — the client can be restored from the archived list. Decide what
|
||||
Archive is reversible - the client can be restored from the archived list. Decide what
|
||||
should happen to the relationships below before continuing.
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
@@ -314,7 +314,7 @@ function SmartArchiveDialogBody({
|
||||
<CardHeader className="pb-2">
|
||||
<CardTitle className="text-sm font-medium text-amber-900 flex items-center gap-2">
|
||||
<AlertTriangle className="h-4 w-4" aria-hidden />
|
||||
Late-stage interest — confirmation required
|
||||
Late-stage interest - confirmation required
|
||||
</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="text-xs text-amber-900">
|
||||
@@ -569,12 +569,12 @@ function SmartArchiveDialogBody({
|
||||
</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="text-xs text-muted-foreground space-y-1">
|
||||
<p>EOI documents — retained for audit (always)</p>
|
||||
{dossier.hasPortalUser && <p>Portal user — deactivated (login revoked)</p>}
|
||||
<p>EOI documents - retained for audit (always)</p>
|
||||
{dossier.hasPortalUser && <p>Portal user - deactivated (login revoked)</p>}
|
||||
{dossier.companies.length > 0 && (
|
||||
<p>Company memberships — end-dated to today (history preserved)</p>
|
||||
<p>Company memberships - end-dated to today (history preserved)</p>
|
||||
)}
|
||||
<p>Notes, contacts, tags, addresses — survive on the archived client</p>
|
||||
<p>Notes, contacts, tags, addresses - survive on the archived client</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ function SmartRestoreDialogBody({ open, onOpenChange, clientId, clientName, onSu
|
||||
<div key={r.id} className="flex items-start gap-2">
|
||||
<span className="mt-0.5">{iconFor(r.kind)}</span>
|
||||
<span>
|
||||
<span className="font-medium">{r.label}</span> — {r.reason}
|
||||
<span className="font-medium">{r.label}</span> - {r.reason}
|
||||
</span>
|
||||
</div>
|
||||
))}
|
||||
@@ -217,7 +217,7 @@ function SmartRestoreDialogBody({ open, onOpenChange, clientId, clientName, onSu
|
||||
<div key={r.id} className="flex items-start gap-2">
|
||||
<span className="mt-0.5">{iconFor(r.kind)}</span>
|
||||
<span>
|
||||
<span className="font-medium">{r.label}</span> — {r.reason}.{' '}
|
||||
<span className="font-medium">{r.label}</span> - {r.reason}.{' '}
|
||||
<span className="italic">{r.lockReason}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user