From 858f890ed3c76370fdb02c4432e9eaece40755d8 Mon Sep 17 00:00:00 2001 From: Michael Chihlas Date: Sun, 22 Mar 2026 02:08:57 -0400 Subject: [PATCH] refactor: migrate session, script-builder, account to Design System v4 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../components/account/DeleteAccountModal.tsx | 18 ++--- .../components/account/LeaveAccountModal.tsx | 14 ++-- .../account/NotificationSettings.tsx | 80 +++++++++---------- .../account/TransferOwnershipModal.tsx | 26 +++--- .../script-builder/SaveToLibraryDialog.tsx | 38 ++++----- .../script-builder/ScriptBuilderChat.tsx | 18 ++--- .../script-builder/ScriptBuilderInput.tsx | 4 +- .../script-builder/ScriptCodeBlock.tsx | 16 ++-- .../script-builder/ScriptPreviewModal.tsx | 20 ++--- .../session/AddSupportingDataModal.tsx | 38 ++++----- frontend/src/components/session/CSATModal.tsx | 10 +-- .../components/session/ContinuationModal.tsx | 22 ++--- .../components/session/ExportPreviewModal.tsx | 38 ++++----- .../src/components/session/ForkTreeModal.tsx | 14 ++-- .../session/PostStepActionModal.tsx | 24 +++--- .../session/SaveSessionAsTreeModal.tsx | 26 +++--- .../components/session/ScratchpadSidebar.tsx | 32 ++++---- .../src/components/session/SessionFilters.tsx | 58 +++++++------- .../session/SessionOutcomeModal.tsx | 20 ++--- .../components/session/SessionTimeline.tsx | 46 +++++------ .../components/session/ShareSessionModal.tsx | 46 +++++------ .../session/SharedSessionTreePreview.tsx | 16 ++-- .../src/components/session/StepFeedback.tsx | 6 +- .../components/session/StepRatingModal.tsx | 32 ++++---- .../session/SupportingDataPanel.tsx | 32 ++++---- .../components/session/TicketContextPanel.tsx | 78 +++++++++--------- .../session/TicketLinkIndicator.tsx | 18 ++--- .../components/session/TicketPickerModal.tsx | 40 +++++----- .../components/session/UpdateTicketModal.tsx | 40 +++++----- .../session/VariablePromptModal.tsx | 12 +-- 30 files changed, 441 insertions(+), 441 deletions(-) diff --git a/frontend/src/components/account/DeleteAccountModal.tsx b/frontend/src/components/account/DeleteAccountModal.tsx index 53f5b275..6c568ca3 100644 --- a/frontend/src/components/account/DeleteAccountModal.tsx +++ b/frontend/src/components/account/DeleteAccountModal.tsx @@ -36,27 +36,27 @@ export function DeleteAccountModal({ onClose }: Props) { return (
-
+
-

Delete Account

+

Delete Account

-

+

This action is permanent. Your account, data, and all associated flows will be permanently deleted.

- + setPassword(e.target.value)} required className={cn( - 'mt-1 block w-full rounded-[10px] border border-border bg-card px-3 py-2', - 'text-foreground focus:border-primary focus:outline-hidden' + 'mt-1 block w-full rounded-lg border border-[#1e2130] bg-[#14161d] px-3 py-2', + 'text-[#e2e5eb] focus:border-primary focus:outline-hidden' )} />
@@ -68,8 +68,8 @@ export function DeleteAccountModal({ onClose }: Props) { type="button" onClick={onClose} className={cn( - 'rounded-[10px] px-4 py-2 text-sm font-medium', - 'bg-white/[0.04] border border-brand-border text-foreground' + 'rounded-lg px-4 py-2 text-sm font-medium', + 'bg-white/[0.04] border border-brand-border text-[#e2e5eb]' )} > Cancel @@ -78,7 +78,7 @@ export function DeleteAccountModal({ onClose }: Props) { type="submit" disabled={isSubmitting || !password} className={cn( - 'rounded-[10px] px-4 py-2 text-sm font-semibold', + 'rounded-lg px-4 py-2 text-sm font-semibold', 'bg-rose-500 text-white hover:bg-rose-400 disabled:opacity-50' )} > diff --git a/frontend/src/components/account/LeaveAccountModal.tsx b/frontend/src/components/account/LeaveAccountModal.tsx index b8a8e22a..aad8dc12 100644 --- a/frontend/src/components/account/LeaveAccountModal.tsx +++ b/frontend/src/components/account/LeaveAccountModal.tsx @@ -31,21 +31,21 @@ export function LeaveAccountModal({ accountName, onClose }: Props) { return (
-
+
-

Leave Account

+

Leave Account

-

- Are you sure you want to leave {accountName}? +

+ Are you sure you want to leave {accountName}? A new personal account will be created for you.

{showDropdown && ( -
+
{(Object.entries(CHANNEL_LABELS) as [ChannelType, string][]).map(([key, label]) => { const Icon = CHANNEL_ICONS[key] return ( ) @@ -214,15 +214,15 @@ export function NotificationSettings() { {/* Loading */} {loading && (
- +
)} {/* Empty state */} {!loading && configs.length === 0 && !addingChannel && ( -
- -

+

+ +

No notification channels configured. Add a channel to receive alerts for session events.

@@ -234,11 +234,11 @@ export function NotificationSettings() { {configs.map(config => { const Icon = CHANNEL_ICONS[config.channel] return ( -
+
{/* Header row */}
- - + + {CHANNEL_LABELS[config.channel]} {config.is_active ? 'Active' : 'Inactive'} @@ -259,20 +259,20 @@ export function NotificationSettings() {
{config.webhook_url && (
- + Webhook URL -

+

{maskWebhookUrl(config.webhook_url)}

)} {config.email_addresses && config.email_addresses.length > 0 && (
- + Email Addresses -

+

{config.email_addresses.join(', ')}

@@ -281,7 +281,7 @@ export function NotificationSettings() { {/* Event toggles */}
- + Events
@@ -294,28 +294,28 @@ export function NotificationSettings() { type="checkbox" checked={config.events_enabled[eventKey] ?? false} onChange={() => handleToggleEvent(config, eventKey)} - className="h-3.5 w-3.5 rounded border-border bg-card text-primary focus:ring-primary/30 focus:ring-offset-0 cursor-pointer accent-[#06b6d4]" + className="h-3.5 w-3.5 rounded border-[#1e2130] bg-[#14161d] text-primary focus:ring-primary/30 focus:ring-offset-0 cursor-pointer accent-[#06b6d4]" /> - {eventLabel} + {eventLabel} ))}
{/* Action buttons */} -
+
@@ -324,8 +324,8 @@ export function NotificationSettings() { onClick={() => handleTest(config.id)} disabled={testingId === config.id} className={cn( - 'inline-flex items-center gap-1.5 rounded-[10px] px-3 py-1.5 text-sm font-medium', - 'bg-[rgba(255,255,255,0.04)] border border-[rgba(255,255,255,0.06)] text-foreground', + 'inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-sm font-medium', + 'bg-[rgba(255,255,255,0.04)] border border-[rgba(255,255,255,0.06)] text-[#e2e5eb]', 'hover:border-[rgba(255,255,255,0.12)] transition-all', 'disabled:opacity-50 disabled:cursor-not-allowed' )} @@ -349,7 +349,7 @@ export function NotificationSettings() { ) : ( diff --git a/frontend/src/components/account/TransferOwnershipModal.tsx b/frontend/src/components/account/TransferOwnershipModal.tsx index ff2120df..10b32ae7 100644 --- a/frontend/src/components/account/TransferOwnershipModal.tsx +++ b/frontend/src/components/account/TransferOwnershipModal.tsx @@ -40,27 +40,27 @@ export function TransferOwnershipModal({ members, onClose, onTransferred }: Prop return (
-
+
-

Transfer Ownership

+

Transfer Ownership

-

+

This will make the selected member the new account owner. You will become an engineer.

{nonOwnerMembers.length === 0 ? ( -

No other members to transfer to.

+

No other members to transfer to.

) : (
- +
- + setPassword(e.target.value)} required className={cn( - 'mt-1 block w-full rounded-[10px] border border-border bg-card px-3 py-2', - 'text-foreground focus:border-primary focus:outline-hidden' + 'mt-1 block w-full rounded-lg border border-[#1e2130] bg-[#14161d] px-3 py-2', + 'text-[#e2e5eb] focus:border-primary focus:outline-hidden' )} />
@@ -89,8 +89,8 @@ export function TransferOwnershipModal({ members, onClose, onTransferred }: Prop type="button" onClick={onClose} className={cn( - 'rounded-[10px] px-4 py-2 text-sm font-medium', - 'bg-white/[0.04] border border-brand-border text-foreground' + 'rounded-lg px-4 py-2 text-sm font-medium', + 'bg-white/[0.04] border border-brand-border text-[#e2e5eb]' )} > Cancel @@ -99,7 +99,7 @@ export function TransferOwnershipModal({ members, onClose, onTransferred }: Prop type="submit" disabled={isSubmitting || !password} className={cn( - 'rounded-[10px] px-4 py-2 text-sm font-semibold', + 'rounded-lg px-4 py-2 text-sm font-semibold', 'bg-amber-500 text-brand-dark hover:bg-amber-400', 'disabled:opacity-50' )} diff --git a/frontend/src/components/script-builder/SaveToLibraryDialog.tsx b/frontend/src/components/script-builder/SaveToLibraryDialog.tsx index 45713177..159c12b3 100644 --- a/frontend/src/components/script-builder/SaveToLibraryDialog.tsx +++ b/frontend/src/components/script-builder/SaveToLibraryDialog.tsx @@ -63,16 +63,16 @@ export function SaveToLibraryDialog({ return (
{ if (e.target === e.currentTarget) onClose() }} > -
+
{/* Header */}
-

Save to Library

+

Save to Library

@@ -82,7 +82,7 @@ export function SaveToLibraryDialog({ {/* Name */}
-