From ea592481d137b8e8a7033c9d324550445982d0eb Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Thu, 15 Jan 2026 12:30:53 +0530 Subject: [PATCH] feat: Update settings pages UI (#13191) --- .../dashboard/assets/scss/_next-colors.scss | 4 + .../dashboard/assets/scss/_woot.scss | 14 +- .../Campaigns/CampaignLayout.vue | 10 +- .../CompaniesHeader/CompanyHeader.vue | 6 +- .../Companies/CompaniesListLayout.vue | 6 +- .../Contacts/ContactsHeader/ContactHeader.vue | 2 +- .../Contacts/ContactsListLayout.vue | 3 +- .../ConversationCardExpanded.vue | 4 +- .../Conversation/InboxName.vue | 2 +- .../AttributeListItem.vue | 91 +++---- .../CustomAttributes/AttributeBadge.vue | 16 +- .../components-next/EmptyStateLayout.vue | 2 +- .../HelpCenter/HelpCenterLayout.vue | 14 +- .../components-next/SidebarActionsHeader.vue | 2 +- .../components-next/avatar/Avatar.vue | 3 +- .../components-next/captain/PageLayout.vue | 12 +- .../captain/pageComponents/Paywall.vue | 2 +- .../FeatureSpotlightPopover.vue | 2 +- .../dashboard/components-next/label/Label.vue | 54 +++- .../components-next/tabbar/TabBar.vue | 2 +- .../components-next/table/BaseTable.story.vue | 175 ++++++++++++ .../components-next/table/BaseTable.vue | 60 +++++ .../components-next/table/BaseTableCell.vue | 22 ++ .../components-next/table/BaseTableRow.vue | 14 + .../dashboard/components-next/table/index.js | 3 + .../year-in-review/ShareModal.vue | 2 +- .../components/Accordion/AccordionItem.vue | 2 +- .../dashboard/components/ChatListHeader.vue | 2 +- .../dashboard/components/FormSection.vue | 31 --- .../components/widgets/LoadingState.vue | 2 +- .../components/widgets/SettingIntroBanner.vue | 2 +- .../conversation/ConversationHeader.vue | 2 +- .../dashboard/i18n/locale/en/agentBots.json | 5 +- .../dashboard/i18n/locale/en/agentMgmt.json | 2 + .../i18n/locale/en/attributesMgmt.json | 2 + .../dashboard/i18n/locale/en/automation.json | 6 +- .../dashboard/i18n/locale/en/cannedMgmt.json | 2 + .../dashboard/i18n/locale/en/customRole.json | 2 + .../dashboard/i18n/locale/en/inboxMgmt.json | 2 + .../i18n/locale/en/integrationApps.json | 3 + .../i18n/locale/en/integrations.json | 16 +- .../dashboard/i18n/locale/en/labelsMgmt.json | 5 +- .../dashboard/i18n/locale/en/macros.json | 5 +- .../dashboard/i18n/locale/en/mfa.json | 2 +- .../dashboard/i18n/locale/en/sla.json | 12 +- .../i18n/locale/en/teamsSettings.json | 6 +- .../dashboard/routes/dashboard/Dashboard.vue | 2 +- .../dashboard/captain/responses/Index.vue | 4 +- .../companies/pages/CompaniesIndex.vue | 2 +- .../inbox/components/InboxListHeader.vue | 12 +- .../routes/dashboard/notifications/routes.js | 7 +- .../dashboard/settings/SettingsHeader.vue | 4 +- .../dashboard/settings/SettingsLayout.vue | 2 +- .../settings/SettingsSubPageHeader.vue | 6 +- .../dashboard/settings/SettingsWrapper.vue | 12 +- .../routes/dashboard/settings/Wrapper.vue | 2 +- .../dashboard/settings/account/Index.vue | 3 +- .../account/components/SectionLayout.vue | 4 +- .../dashboard/settings/agentBots/Index.vue | 154 ++++++----- .../dashboard/settings/agents/Index.vue | 196 ++++++++------ .../settings/attributes/CustomAttribute.vue | 176 ------------ .../dashboard/settings/attributes/Index.vue | 29 +- .../dashboard/settings/auditlogs/Index.vue | 121 +++++---- .../settings/automation/AutomationRuleRow.vue | 98 ++++--- .../dashboard/settings/automation/Index.vue | 39 +-- .../dashboard/settings/canned/Index.vue | 205 +++++++------- .../components/BaseSettingsHeader.vue | 101 ++++--- .../dashboard/settings/customRoles/Index.vue | 51 ++-- .../component/CustomRolePaywall.vue | 2 +- .../component/CustomRoleTableBody.vue | 85 +++--- .../dashboard/settings/inbox/ImapSettings.vue | 2 +- .../routes/dashboard/settings/inbox/Index.vue | 148 +++++----- .../settings/inbox/PreChatForm/Settings.vue | 2 +- .../dashboard/settings/inbox/Settings.vue | 6 +- .../dashboard/settings/inbox/SmtpSettings.vue | 2 +- .../settings/inbox/WidgetBuilder.vue | 4 +- .../inbox/components/AccountHealth.vue | 2 +- .../inbox/components/BotConfiguration.vue | 2 +- .../inbox/components/WeeklyAvailability.vue | 2 +- .../dashboard/settings/inbox/inbox.routes.js | 4 +- .../inbox/settingsPage/ConfigurationPage.vue | 14 +- .../settingsPage/CustomerSatisfactionPage.vue | 2 +- .../DashboardApps/DashboardAppsRow.vue | 81 +++--- .../integrations/DashboardApps/Index.vue | 97 +++---- .../dashboard/settings/integrations/Index.vue | 25 +- .../integrations/IntegrationHooks.vue | 51 ++-- .../settings/integrations/Linear.vue | 22 +- .../integrations/MultipleIntegrationHooks.vue | 203 +++++++------- .../settings/integrations/Notion.vue | 22 +- .../settings/integrations/Shopify.vue | 124 +++++---- .../dashboard/settings/integrations/Slack.vue | 67 +++-- .../settings/integrations/Webhooks/Index.vue | 39 +-- .../integrations/Webhooks/WebhookRow.vue | 83 +++--- .../integrations/integrations.routes.js | 24 +- .../dashboard/settings/labels/Index.vue | 127 +++++---- .../dashboard/settings/macros/Index.vue | 44 +-- .../dashboard/settings/macros/MacroEditor.vue | 2 +- .../dashboard/settings/macros/MacroForm.vue | 6 +- .../settings/macros/MacroProperties.vue | 63 ++--- .../settings/macros/MacrosTableRow.vue | 105 +++++--- .../dashboard/settings/profile/Index.vue | 118 ++++---- .../settings/profile/MfaSettings.vue | 19 +- .../settings/profile/profile.routes.js | 4 +- .../reports/components/ReportHeader.vue | 13 +- .../reports/components/ReportsWrapper.vue | 2 +- .../dashboard/settings/security/Index.vue | 5 +- .../routes/dashboard/settings/sla/Index.vue | 203 +++++++++++--- .../{components => }/SLAPaywallEnterprise.vue | 5 +- .../sla/components/BaseEmptyState.vue | 33 --- .../sla/components/SLABusinessHoursLabel.vue | 32 --- .../settings/sla/components/SLAEmptyState.vue | 21 -- .../settings/sla/components/SLAHeader.vue | 30 --- .../settings/sla/components/SLAListItem.vue | 71 ----- .../sla/components/SLAListItemLoading.vue | 41 --- .../sla/components/SLAResponseTime.vue | 37 --- .../settings/teams/AgentSelector.vue | 253 +++++++++--------- .../settings/teams/Edit/EditAgents.vue | 6 +- .../routes/dashboard/settings/teams/Index.vue | 159 ++++++----- theme/colors.js | 4 + theme/icons.js | 25 ++ 120 files changed, 2388 insertions(+), 2023 deletions(-) create mode 100644 app/javascript/dashboard/components-next/table/BaseTable.story.vue create mode 100644 app/javascript/dashboard/components-next/table/BaseTable.vue create mode 100644 app/javascript/dashboard/components-next/table/BaseTableCell.vue create mode 100644 app/javascript/dashboard/components-next/table/BaseTableRow.vue create mode 100644 app/javascript/dashboard/components-next/table/index.js delete mode 100644 app/javascript/dashboard/components/FormSection.vue delete mode 100644 app/javascript/dashboard/routes/dashboard/settings/attributes/CustomAttribute.vue rename app/javascript/dashboard/routes/dashboard/settings/sla/{components => }/SLAPaywallEnterprise.vue (87%) delete mode 100644 app/javascript/dashboard/routes/dashboard/settings/sla/components/BaseEmptyState.vue delete mode 100644 app/javascript/dashboard/routes/dashboard/settings/sla/components/SLABusinessHoursLabel.vue delete mode 100644 app/javascript/dashboard/routes/dashboard/settings/sla/components/SLAEmptyState.vue delete mode 100644 app/javascript/dashboard/routes/dashboard/settings/sla/components/SLAHeader.vue delete mode 100644 app/javascript/dashboard/routes/dashboard/settings/sla/components/SLAListItem.vue delete mode 100644 app/javascript/dashboard/routes/dashboard/settings/sla/components/SLAListItemLoading.vue delete mode 100644 app/javascript/dashboard/routes/dashboard/settings/sla/components/SLAResponseTime.vue diff --git a/app/javascript/dashboard/assets/scss/_next-colors.scss b/app/javascript/dashboard/assets/scss/_next-colors.scss index f2d38a35f..8cd221658 100644 --- a/app/javascript/dashboard/assets/scss/_next-colors.scss +++ b/app/javascript/dashboard/assets/scss/_next-colors.scss @@ -122,6 +122,8 @@ --overlay-avatar: 255, 255, 255, 0.67; --button-color: 255 255 255; --button-hover-color: 255, 255, 255, 0.2; + --label-background: 247 247 247; + --label-border: 0, 0, 0, 0.04; --alpha-1: 215, 215, 215, 0.22; --alpha-2: 196, 197, 198, 0.22; @@ -252,6 +254,8 @@ --overlay-avatar: 0, 0, 0, 0.05; --button-color: 42 43 51; --button-hover-color: 0, 0, 0, 0.15; + --label-background: 36 38 45; + --label-border: 255, 255, 255, 0.03; --alpha-1: 35, 36, 42, 0.8; --alpha-2: 147, 153, 176, 0.12; diff --git a/app/javascript/dashboard/assets/scss/_woot.scss b/app/javascript/dashboard/assets/scss/_woot.scss index a52c435e1..64397c4a6 100644 --- a/app/javascript/dashboard/assets/scss/_woot.scss +++ b/app/javascript/dashboard/assets/scss/_woot.scss @@ -101,21 +101,23 @@ body { /* heading-1: Large heading for pages and panels */ .text-heading-1 { - @apply font-interDisplay text-base font-medium; - line-height: 24px; /* 150% */ + @apply font-inter text-lg font-520; + line-height: 24px; /* 133.333% */ + letter-spacing: -0.27px; } /* heading-2: Secondary heading for sections */ .text-heading-2 { - @apply font-interDisplay text-sm font-medium; - line-height: 21px; /* 150% */ + @apply font-inter text-base font-medium; + line-height: 24px; /* 133.333% */ + letter-spacing: -0.27px; } /* heading-3: For card headings, breadcrumbs, subsections */ .text-heading-3 { - @apply font-interDisplay text-sm font-medium; + @apply font-inter text-sm font-medium; line-height: 21px; /* 150% */ - letter-spacing: 0.14px; + letter-spacing: -0.27px; } /* label: Standard label text for form fields */ diff --git a/app/javascript/dashboard/components-next/Campaigns/CampaignLayout.vue b/app/javascript/dashboard/components-next/Campaigns/CampaignLayout.vue index 50cafee9d..a95c09c8c 100644 --- a/app/javascript/dashboard/components-next/Campaigns/CampaignLayout.vue +++ b/app/javascript/dashboard/components-next/Campaigns/CampaignLayout.vue @@ -22,11 +22,11 @@ const handleButtonClick = () => {