@yancyyu/openhermit 1.6.39 → 1.6.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-renderer/assets/{ProjectEditorOverlay-krO5vQxX.js → ProjectEditorOverlay-Br0X83Jf.js} +3 -3
- package/dist-renderer/assets/{TeamGraphOverlay-DqhQzcTr.js → TeamGraphOverlay-DHMTbZPZ.js} +1 -1
- package/dist-renderer/assets/{_basePickBy-B7kSYPxr.js → _basePickBy-DzIiX7yH.js} +1 -1
- package/dist-renderer/assets/{_baseUniq-CnjxqwAk.js → _baseUniq-6hZuzTLU.js} +1 -1
- package/dist-renderer/assets/{arc-CLeZuINP.js → arc-CXgO6fx_.js} +1 -1
- package/dist-renderer/assets/{architectureDiagram-VXUJARFQ-QKtqaqdY.js → architectureDiagram-VXUJARFQ-DKWgtDHr.js} +1 -1
- package/dist-renderer/assets/{blockDiagram-VD42YOAC-BqdrzO_f.js → blockDiagram-VD42YOAC-DOMUcC40.js} +1 -1
- package/dist-renderer/assets/{c4Diagram-YG6GDRKO-gwPlCxDC.js → c4Diagram-YG6GDRKO-B_k2L7qX.js} +1 -1
- package/dist-renderer/assets/channel-D0XS_akr.js +1 -0
- package/dist-renderer/assets/{chunk-4BX2VUAB-C6XLurL4.js → chunk-4BX2VUAB-BeD_ccFy.js} +1 -1
- package/dist-renderer/assets/{chunk-55IACEB6-Ds6quhEP.js → chunk-55IACEB6-ClZfkA5w.js} +1 -1
- package/dist-renderer/assets/{chunk-B4BG7PRW-5UlA1_e9.js → chunk-B4BG7PRW-5XluxXsn.js} +1 -1
- package/dist-renderer/assets/{chunk-DI55MBZ5-ywFrqIsY.js → chunk-DI55MBZ5-BzIjjNVm.js} +1 -1
- package/dist-renderer/assets/{chunk-FMBD7UC4-C7ifUA17.js → chunk-FMBD7UC4-HgH3MK_H.js} +1 -1
- package/dist-renderer/assets/{chunk-QN33PNHL-BxGCo80U.js → chunk-QN33PNHL-WeC5T3Ba.js} +1 -1
- package/dist-renderer/assets/{chunk-QZHKN3VN-B2CuaZs6.js → chunk-QZHKN3VN-Cu1ApHfW.js} +1 -1
- package/dist-renderer/assets/{chunk-TZMSLE5B-Ds1hInvp.js → chunk-TZMSLE5B-BOhlynJM.js} +1 -1
- package/dist-renderer/assets/classDiagram-2ON5EDUG-D13Ffs0U.js +1 -0
- package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-D13Ffs0U.js +1 -0
- package/dist-renderer/assets/clone-B1ZrxI1D.js +1 -0
- package/dist-renderer/assets/{cose-bilkent-S5V4N54A-Cz1GVtLp.js → cose-bilkent-S5V4N54A-DGZSihDQ.js} +1 -1
- package/dist-renderer/assets/{dagre-6UL2VRFP-BrmR-P4h.js → dagre-6UL2VRFP-CnxwCbku.js} +1 -1
- package/dist-renderer/assets/{diagram-PSM6KHXK-DbNjC5Rg.js → diagram-PSM6KHXK-DsIhoxdI.js} +1 -1
- package/dist-renderer/assets/{diagram-QEK2KX5R-qkRX5_Mq.js → diagram-QEK2KX5R-Cmh9KUF5.js} +1 -1
- package/dist-renderer/assets/{diagram-S2PKOQOG-CyL5rCv2.js → diagram-S2PKOQOG-CKxV456A.js} +1 -1
- package/dist-renderer/assets/{erDiagram-Q2GNP2WA-Dox3-bA5.js → erDiagram-Q2GNP2WA-EnvYjOjc.js} +1 -1
- package/dist-renderer/assets/{flowDiagram-NV44I4VS-BtkaxlDL.js → flowDiagram-NV44I4VS-BmNeWY_A.js} +1 -1
- package/dist-renderer/assets/{ganttDiagram-JELNMOA3-Dhy_d9GK.js → ganttDiagram-JELNMOA3-D30fyK-u.js} +1 -1
- package/dist-renderer/assets/{gitGraphDiagram-V2S2FVAM-B5XRhIQA.js → gitGraphDiagram-V2S2FVAM-CrUNiYg1.js} +1 -1
- package/dist-renderer/assets/{graph-CsoEwUhS.js → graph-CY1gTfTb.js} +1 -1
- package/dist-renderer/assets/{index-Bu2R-Se7.js → index-59r209c1.js} +39 -39
- package/dist-renderer/assets/{index-NhHNs2Oo.js → index-9_hO4N1e.js} +1 -1
- package/dist-renderer/assets/{index-BWPWmJNo.js → index-BC2hXmg_.js} +1 -1
- package/dist-renderer/assets/{index-D-3KgskL.js → index-CaEbzwAU.js} +1 -1
- package/dist-renderer/assets/{index-DGEBzLNT.js → index-D5K-SjBG.js} +1 -1
- package/dist-renderer/assets/{index-h17WuEyf.js → index-DMR9B1UP.js} +1 -1
- package/dist-renderer/assets/index-iyjkpSus.css +32 -0
- package/dist-renderer/assets/{infoDiagram-HS3SLOUP-hMGmNojH.js → infoDiagram-HS3SLOUP-By_XUlcD.js} +1 -1
- package/dist-renderer/assets/{journeyDiagram-XKPGCS4Q-DXV2rBDl.js → journeyDiagram-XKPGCS4Q-BM1LJE9m.js} +1 -1
- package/dist-renderer/assets/{kanban-definition-3W4ZIXB7-Bf99WLRy.js → kanban-definition-3W4ZIXB7-DHIW3aTA.js} +1 -1
- package/dist-renderer/assets/{layout-C3XWrpwo.js → layout-DAKiL_Mo.js} +1 -1
- package/dist-renderer/assets/{linear-OEEcn8KN.js → linear-DwOaRYea.js} +1 -1
- package/dist-renderer/assets/{mindmap-definition-VGOIOE7T-Dpi3S2x4.js → mindmap-definition-VGOIOE7T-b7bJ2cha.js} +1 -1
- package/dist-renderer/assets/{pieDiagram-ADFJNKIX-xTPPhtNx.js → pieDiagram-ADFJNKIX-DxyL9Zr2.js} +1 -1
- package/dist-renderer/assets/{quadrantDiagram-AYHSOK5B-euniyDlz.js → quadrantDiagram-AYHSOK5B-CR33pHlF.js} +1 -1
- package/dist-renderer/assets/{requirementDiagram-UZGBJVZJ-D9Uiw4kF.js → requirementDiagram-UZGBJVZJ-BAiSRSlh.js} +1 -1
- package/dist-renderer/assets/{sankeyDiagram-TZEHDZUN-CySU4nED.js → sankeyDiagram-TZEHDZUN-C8JmDjoa.js} +1 -1
- package/dist-renderer/assets/{sequenceDiagram-WL72ISMW-JVGpET6V.js → sequenceDiagram-WL72ISMW-c1d0Wi1m.js} +1 -1
- package/dist-renderer/assets/{stateDiagram-FKZM4ZOC-B2FY5qqi.js → stateDiagram-FKZM4ZOC-nT8BiH2O.js} +1 -1
- package/dist-renderer/assets/{stateDiagram-v2-4FDKWEC3-DcoMiR8H.js → stateDiagram-v2-4FDKWEC3-Dmibmlso.js} +1 -1
- package/dist-renderer/assets/{timeline-definition-IT6M3QCI-DmycNUUe.js → timeline-definition-IT6M3QCI-DpoRepUA.js} +1 -1
- package/dist-renderer/assets/{treemap-GDKQZRPO-DPq4gZuB.js → treemap-GDKQZRPO-C41UJeIH.js} +1 -1
- package/dist-renderer/assets/{xychartDiagram-PRI3JC2R-J6VVJzRq.js → xychartDiagram-PRI3JC2R-KMjGARKN.js} +1 -1
- package/dist-renderer/index.html +2 -2
- package/package.json +1 -1
- package/src/renderer/components/chat/ChatHistoryItem.tsx +1 -1
- package/src/renderer/components/chat/SessionContextPanel/DirectoryTree/DirectoryTreeNode.tsx +1 -1
- package/src/renderer/components/chat/SessionContextPanel/items/ClaudeMdItem.tsx +1 -1
- package/src/renderer/components/chat/SessionContextPanel/items/MentionedFileItem.tsx +1 -1
- package/src/renderer/components/chat/SessionContextPanel/items/TaskCoordinationItem.tsx +1 -1
- package/src/renderer/components/chat/SessionContextPanel/items/ThinkingTextItem.tsx +1 -1
- package/src/renderer/components/chat/SessionContextPanel/items/ToolOutputItem.tsx +1 -1
- package/src/renderer/components/chat/SessionContextPanel/items/UserMessageItem.tsx +1 -1
- package/src/renderer/components/chat/items/SubagentItem.tsx +2 -2
- package/src/renderer/components/chat/viewers/MermaidDiagram.tsx +2 -2
- package/src/renderer/components/common/ErrorBoundary.tsx +1 -1
- package/src/renderer/components/dashboard/CliStatusBanner.tsx +8 -8
- package/src/renderer/components/extensions/ExtensionStoreView.tsx +1 -1
- package/src/renderer/components/extensions/common/ExtensionToast.tsx +3 -3
- package/src/renderer/components/extensions/common/SourceBadge.tsx +1 -1
- package/src/renderer/components/extensions/plugins/CategoryChips.tsx +1 -1
- package/src/renderer/components/extensions/plugins/PluginCard.tsx +1 -1
- package/src/renderer/components/extensions/plugins/PluginDetailDialog.tsx +2 -2
- package/src/renderer/components/extensions/skills/SkillEditorDialog.tsx +1 -1
- package/src/renderer/components/layout/PaneResizeHandle.tsx +2 -2
- package/src/renderer/components/layout/Sidebar.tsx +2 -2
- package/src/renderer/components/layout/SortableTab.tsx +2 -2
- package/src/renderer/components/report/sections/CostSection.tsx +2 -2
- package/src/renderer/components/report/sections/InsightsSection.tsx +1 -1
- package/src/renderer/components/runtime/ProviderRuntimeBackendSelector.tsx +4 -4
- package/src/renderer/components/search/CommandPalette.tsx +4 -4
- package/src/renderer/components/settings/SettingsTabs.tsx +1 -1
- package/src/renderer/components/settings/components/SettingsSelect.tsx +2 -2
- package/src/renderer/components/settings/components/SettingsToggle.tsx +1 -1
- package/src/renderer/components/settings/sections/AdvancedSection.tsx +3 -3
- package/src/renderer/components/settings/sections/CliStatusSection.tsx +1 -1
- package/src/renderer/components/settings/sections/GeneralSection.tsx +1 -1
- package/src/renderer/components/sidebar/SessionFiltersPopover.tsx +1 -1
- package/src/renderer/components/sidebar/SessionItem.tsx +3 -3
- package/src/renderer/components/sidebar/SidebarSessions.tsx +2 -2
- package/src/renderer/components/sidebar/WorkspaceBrowser.tsx +1 -1
- package/src/renderer/components/sidebar/taskFiltersState.ts +1 -1
- package/src/renderer/components/system-manager/SystemManagerView.tsx +1 -1
- package/src/renderer/components/team/CcSessionsSection.tsx +5 -5
- package/src/renderer/components/team/ClaudeLogsFilterPopover.tsx +1 -1
- package/src/renderer/components/team/ClaudeLogsPanel.tsx +1 -1
- package/src/renderer/components/team/CollapsibleTeamSection.tsx +1 -1
- package/src/renderer/components/team/ProcessesSection.tsx +2 -2
- package/src/renderer/components/team/TaskTooltip.tsx +2 -2
- package/src/renderer/components/team/TeamDetailView.tsx +1 -1
- package/src/renderer/components/team/TeamListFilterPopover.tsx +1 -1
- package/src/renderer/components/team/TeamListView.tsx +2 -2
- package/src/renderer/components/team/TeamSessionsSection.tsx +6 -6
- package/src/renderer/components/team/UnreadCommentsBadge.tsx +1 -1
- package/src/renderer/components/team/activity/ActivityItem.tsx +10 -10
- package/src/renderer/components/team/activity/ActivityTimeline.tsx +5 -5
- package/src/renderer/components/team/activity/LeadThoughtsGroup.tsx +3 -3
- package/src/renderer/components/team/activity/ReplyQuoteBlock.tsx +4 -4
- package/src/renderer/components/team/dialogs/CreateTaskDialog.tsx +2 -2
- package/src/renderer/components/team/dialogs/LaunchTeamDialog.tsx +1 -1
- package/src/renderer/components/team/dialogs/PlatformBindingDialog.tsx +1 -1
- package/src/renderer/components/team/dialogs/PlatformManualForm.tsx +1 -1
- package/src/renderer/components/team/dialogs/PlatformSetupQR.tsx +4 -4
- package/src/renderer/components/team/dialogs/SendMessageDialog.tsx +6 -6
- package/src/renderer/components/team/dialogs/SkipPermissionsCheckbox.tsx +6 -6
- package/src/renderer/components/team/dialogs/StatusHistoryTimeline.tsx +1 -1
- package/src/renderer/components/team/dialogs/TaskAttachments.tsx +1 -1
- package/src/renderer/components/team/dialogs/TaskCommentInput.tsx +6 -6
- package/src/renderer/components/team/dialogs/TaskCommentsSection.tsx +4 -4
- package/src/renderer/components/team/dialogs/TaskDetailDialog.tsx +3 -3
- package/src/renderer/components/team/editor/EditorFileTree.tsx +4 -4
- package/src/renderer/components/team/editor/EditorSearchPanel.tsx +1 -1
- package/src/renderer/components/team/editor/MarkdownSplitView.tsx +1 -1
- package/src/renderer/components/team/editor/NewFileDialog.tsx +1 -1
- package/src/renderer/components/team/editor/ProjectEditorOverlay.tsx +1 -1
- package/src/renderer/components/team/editor/SearchInFilesPanel.tsx +1 -1
- package/src/renderer/components/team/kanban/KanbanFilterPopover.tsx +4 -4
- package/src/renderer/components/team/kanban/KanbanSearchInput.tsx +1 -1
- package/src/renderer/components/team/kanban/KanbanSortPopover.tsx +5 -5
- package/src/renderer/components/team/kanban/KanbanTaskCard.tsx +4 -4
- package/src/renderer/components/team/members/MemberDraftRow.tsx +1 -1
- package/src/renderer/components/team/members/MemberStatsTab.tsx +2 -2
- package/src/renderer/components/team/members/MemberWorkspaceTab.tsx +1 -1
- package/src/renderer/components/team/messages/MessageComposer.tsx +2 -2
- package/src/renderer/components/team/messages/MessagesFilterPopover.tsx +1 -1
- package/src/renderer/components/team/messages/MessagesPanel.tsx +7 -7
- package/src/renderer/components/team/review/ChangeReviewDialog.tsx +1 -1
- package/src/renderer/components/team/schedule/ScheduleStatusBadge.tsx +1 -1
- package/src/renderer/components/team/sidebar/TeamSidebarRail.tsx +4 -4
- package/src/renderer/components/team/tasks/TaskRow.tsx +1 -1
- package/src/renderer/components/team/tools/SkillChip.tsx +1 -1
- package/src/renderer/components/team/tools/ToolsSection.tsx +1 -1
- package/src/renderer/components/ui/MemberSelect.tsx +2 -2
- package/src/renderer/components/ui/MentionSuggestionList.tsx +2 -2
- package/src/renderer/components/ui/MentionableTextarea.tsx +3 -3
- package/src/renderer/constants/teamColors.ts +5 -5
- package/src/renderer/index.css +18 -18
- package/src/renderer/utils/codemirrorTheme.ts +3 -3
- package/dist-renderer/assets/channel-DpMHF50r.js +0 -1
- package/dist-renderer/assets/classDiagram-2ON5EDUG-CBYCBVRl.js +0 -1
- package/dist-renderer/assets/classDiagram-v2-WZHVMYZB-CBYCBVRl.js +0 -1
- package/dist-renderer/assets/clone-DcMF6Psb.js +0 -1
- package/dist-renderer/assets/index-CnWV3BhG.css +0 -32
|
@@ -232,7 +232,7 @@ export const PluginDetailDialog = ({
|
|
|
232
232
|
{plugin.homepage && (
|
|
233
233
|
<Button
|
|
234
234
|
variant="link"
|
|
235
|
-
className="h-auto justify-start p-0 text-sm text-
|
|
235
|
+
className="h-auto justify-start p-0 text-sm text-indigo-400"
|
|
236
236
|
onClick={() => void api.openExternal(plugin.homepage!)}
|
|
237
237
|
>
|
|
238
238
|
<ExternalLink className="mr-1 size-3.5" />
|
|
@@ -242,7 +242,7 @@ export const PluginDetailDialog = ({
|
|
|
242
242
|
{plugin.author?.email && (
|
|
243
243
|
<Button
|
|
244
244
|
variant="link"
|
|
245
|
-
className="h-auto justify-start p-0 text-sm text-
|
|
245
|
+
className="h-auto justify-start p-0 text-sm text-indigo-400"
|
|
246
246
|
onClick={() => void api.openExternal(`mailto:${plugin.author!.email}`)}
|
|
247
247
|
>
|
|
248
248
|
<Mail className="mr-1 size-3.5" />
|
|
@@ -801,7 +801,7 @@ export const SkillEditorDialog = ({
|
|
|
801
801
|
</div>
|
|
802
802
|
<div
|
|
803
803
|
className={`w-1 shrink-0 cursor-col-resize border-x border-border ${
|
|
804
|
-
isResizing ? 'bg-
|
|
804
|
+
isResizing ? 'bg-indigo-500/50' : 'hover:bg-indigo-500/30'
|
|
805
805
|
}`}
|
|
806
806
|
onMouseDown={(event) => {
|
|
807
807
|
event.preventDefault();
|
|
@@ -73,8 +73,8 @@ export const PaneResizeHandle = ({ leftPaneId }: PaneResizeHandleProps): React.J
|
|
|
73
73
|
return (
|
|
74
74
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions -- resize handle requires mouse interaction
|
|
75
75
|
<div
|
|
76
|
-
className={`flex w-1 shrink-0 cursor-col-resize items-center justify-center transition-colors hover:bg-
|
|
77
|
-
isResizing ? 'bg-
|
|
76
|
+
className={`flex w-1 shrink-0 cursor-col-resize items-center justify-center transition-colors hover:bg-indigo-500/50 ${
|
|
77
|
+
isResizing ? 'bg-indigo-500/50' : ''
|
|
78
78
|
}`}
|
|
79
79
|
style={{
|
|
80
80
|
backgroundColor: isResizing ? undefined : 'var(--color-border)',
|
|
@@ -153,8 +153,8 @@ export const Sidebar = (): React.JSX.Element => {
|
|
|
153
153
|
<button
|
|
154
154
|
type="button"
|
|
155
155
|
aria-label="调整侧栏宽度"
|
|
156
|
-
className={`absolute left-0 top-0 z-20 h-full w-1 cursor-col-resize border-0 bg-transparent p-0 transition-colors hover:bg-
|
|
157
|
-
isResizing ? 'bg-
|
|
156
|
+
className={`absolute left-0 top-0 z-20 h-full w-1 cursor-col-resize border-0 bg-transparent p-0 transition-colors hover:bg-indigo-500/50 ${
|
|
157
|
+
isResizing ? 'bg-indigo-500/50' : ''
|
|
158
158
|
}`}
|
|
159
159
|
onMouseDown={handleResizeStart}
|
|
160
160
|
/>
|
|
@@ -120,7 +120,7 @@ export const SortableTab = ({
|
|
|
120
120
|
outlineOffset: '-1px',
|
|
121
121
|
borderTop: isActive ? '1px solid var(--color-border)' : '1px solid transparent',
|
|
122
122
|
borderLeft: '1px solid var(--color-border-subtle)',
|
|
123
|
-
borderRight: '1px solid transparent',
|
|
123
|
+
borderRight: isActive ? '1px solid var(--color-border)' : '1px solid transparent',
|
|
124
124
|
borderBottom: isActive ? '1px solid var(--color-surface-raised)' : '1px solid transparent',
|
|
125
125
|
borderTopLeftRadius: '0',
|
|
126
126
|
borderTopRightRadius: '0',
|
|
@@ -181,7 +181,7 @@ export const SortableTab = ({
|
|
|
181
181
|
)}
|
|
182
182
|
{isPinned && (
|
|
183
183
|
<span title="已固定会话">
|
|
184
|
-
<Pin className="size-3 shrink-0 text-
|
|
184
|
+
<Pin className="size-3 shrink-0 text-indigo-400" />
|
|
185
185
|
</span>
|
|
186
186
|
)}
|
|
187
187
|
<span
|
|
@@ -97,7 +97,7 @@ export const CostSection = ({
|
|
|
97
97
|
<div className="mb-1.5 flex h-3 w-full overflow-hidden rounded-full">
|
|
98
98
|
<div
|
|
99
99
|
className="h-full"
|
|
100
|
-
style={{ width: `${parentPct}%`, backgroundColor: '#
|
|
100
|
+
style={{ width: `${parentPct}%`, backgroundColor: '#818cf8' }}
|
|
101
101
|
/>
|
|
102
102
|
<div
|
|
103
103
|
className="h-full"
|
|
@@ -108,7 +108,7 @@ export const CostSection = ({
|
|
|
108
108
|
<div className="flex items-center gap-1.5">
|
|
109
109
|
<span
|
|
110
110
|
className="inline-block size-2 rounded-full"
|
|
111
|
-
style={{ backgroundColor: '#
|
|
111
|
+
style={{ backgroundColor: '#818cf8' }}
|
|
112
112
|
/>
|
|
113
113
|
<span className="text-text-secondary">主会话:{fmt(data.parentCostUsd)}</span>
|
|
114
114
|
</div>
|
|
@@ -153,7 +153,7 @@ export const InsightsSection = ({
|
|
|
153
153
|
<div className="mb-2 text-xs font-medium text-text-muted">
|
|
154
154
|
Agent Tree ({agentTree.agentCount} agent{agentTree.agentCount !== 1 ? 's' : ''})
|
|
155
155
|
{agentTree.hasTeamMode && (
|
|
156
|
-
<span className="ml-2 rounded px-1.5 py-0.5 text-xs" style={{ color: '#
|
|
156
|
+
<span className="ml-2 rounded px-1.5 py-0.5 text-xs" style={{ color: '#818cf8' }}>
|
|
157
157
|
Team Mode
|
|
158
158
|
</span>
|
|
159
159
|
)}
|
|
@@ -190,8 +190,8 @@ export const ProviderRuntimeBackendSelector = ({
|
|
|
190
190
|
<span
|
|
191
191
|
className="shrink-0 rounded-full px-1.5 py-0.5 text-[10px]"
|
|
192
192
|
style={{
|
|
193
|
-
color: '#
|
|
194
|
-
backgroundColor: 'rgba(
|
|
193
|
+
color: '#a5b4fc',
|
|
194
|
+
backgroundColor: 'rgba(99, 102, 241, 0.14)',
|
|
195
195
|
}}
|
|
196
196
|
>
|
|
197
197
|
{getProviderRuntimeBackendAudienceLabel(option)}
|
|
@@ -258,8 +258,8 @@ export const ProviderRuntimeBackendSelector = ({
|
|
|
258
258
|
<span
|
|
259
259
|
className="rounded-full px-1.5 py-0.5 text-[10px]"
|
|
260
260
|
style={{
|
|
261
|
-
color: '#
|
|
262
|
-
backgroundColor: 'rgba(
|
|
261
|
+
color: '#a5b4fc',
|
|
262
|
+
backgroundColor: 'rgba(99, 102, 241, 0.14)',
|
|
263
263
|
}}
|
|
264
264
|
>
|
|
265
265
|
{selectedAudienceLabel}
|
|
@@ -117,7 +117,7 @@ const SessionResultItemInner = ({
|
|
|
117
117
|
<div className="flex items-start gap-3">
|
|
118
118
|
<div
|
|
119
119
|
className={`mt-0.5 shrink-0 ${
|
|
120
|
-
result.messageType === 'user' ? 'text-
|
|
120
|
+
result.messageType === 'user' ? 'text-indigo-400' : 'text-green-400'
|
|
121
121
|
}`}
|
|
122
122
|
>
|
|
123
123
|
{result.messageType === 'user' ? <User className="size-4" /> : <Bot className="size-4" />}
|
|
@@ -125,8 +125,8 @@ const SessionResultItemInner = ({
|
|
|
125
125
|
<div className="min-w-0 flex-1">
|
|
126
126
|
{showProjectName && projectName && (
|
|
127
127
|
<div className="mb-1 flex items-center gap-2">
|
|
128
|
-
<FolderGit2 className="size-3 text-
|
|
129
|
-
<span className="truncate text-xs font-medium text-
|
|
128
|
+
<FolderGit2 className="size-3 text-indigo-400" />
|
|
129
|
+
<span className="truncate text-xs font-medium text-indigo-400">{projectName}</span>
|
|
130
130
|
</div>
|
|
131
131
|
)}
|
|
132
132
|
<div className="mb-1 flex items-center gap-2">
|
|
@@ -486,7 +486,7 @@ export const CommandPalette = (): React.JSX.Element | null => {
|
|
|
486
486
|
onClick={() => setGlobalSearchEnabled(!globalSearchEnabled)}
|
|
487
487
|
className={`flex items-center gap-1.5 rounded px-2 py-1 text-xs transition-colors ${
|
|
488
488
|
globalSearchEnabled
|
|
489
|
-
? 'bg-
|
|
489
|
+
? 'bg-indigo-500/20 text-indigo-400 hover:bg-indigo-500/30'
|
|
490
490
|
: 'text-text-muted hover:bg-surface-raised hover:text-text'
|
|
491
491
|
}`}
|
|
492
492
|
title={
|
|
@@ -75,7 +75,7 @@ export const SettingsTabs = ({
|
|
|
75
75
|
}`}
|
|
76
76
|
style={{
|
|
77
77
|
borderLeft: index > 0 ? '1px solid var(--color-border-subtle)' : undefined,
|
|
78
|
-
color: isActive ? '#
|
|
78
|
+
color: isActive ? '#818cf8' : undefined,
|
|
79
79
|
}}
|
|
80
80
|
>
|
|
81
81
|
<Icon className={`size-3 ${isActive ? 'opacity-90' : 'opacity-40'}`} />
|
|
@@ -86,13 +86,13 @@ export const SettingsSelect = <T extends string | number>({
|
|
|
86
86
|
onClick={() => handleSelect(option.value)}
|
|
87
87
|
className={`flex w-full items-center justify-between gap-3 px-3 py-2 text-left text-sm transition-colors duration-100 ${
|
|
88
88
|
value === option.value
|
|
89
|
-
? 'bg-
|
|
89
|
+
? 'bg-indigo-500/10 text-indigo-300'
|
|
90
90
|
: 'hover:bg-white/5'
|
|
91
91
|
} `}
|
|
92
92
|
style={value !== option.value ? { color: 'var(--color-text-secondary)' } : undefined}
|
|
93
93
|
>
|
|
94
94
|
<span className="whitespace-nowrap">{option.label}</span>
|
|
95
|
-
{value === option.value && <Check className="size-4 shrink-0 text-
|
|
95
|
+
{value === option.value && <Check className="size-4 shrink-0 text-indigo-400" />}
|
|
96
96
|
</button>
|
|
97
97
|
))}
|
|
98
98
|
</div>
|
|
@@ -29,7 +29,7 @@ export const SettingsToggle = ({
|
|
|
29
29
|
onClick={handleClick}
|
|
30
30
|
className="relative inline-flex h-5 w-9 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-[var(--color-text)]/20 focus:ring-offset-2 focus:ring-offset-[var(--color-surface)]"
|
|
31
31
|
style={{
|
|
32
|
-
backgroundColor: enabled ? '#
|
|
32
|
+
backgroundColor: enabled ? '#6366f1' : '#3f3f46',
|
|
33
33
|
opacity: disabled ? 0.5 : 1,
|
|
34
34
|
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
35
35
|
}}
|
|
@@ -163,10 +163,10 @@ export const AdvancedSection = ({}: AdvancedSectionProps): React.JSX.Element =>
|
|
|
163
163
|
<div className="flex flex-wrap gap-2 py-2">
|
|
164
164
|
<button
|
|
165
165
|
onClick={() => setCcConfigOpen(true)}
|
|
166
|
-
className="flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium transition-all duration-150 hover:bg-
|
|
166
|
+
className="flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium transition-all duration-150 hover:bg-indigo-500/5"
|
|
167
167
|
style={{
|
|
168
|
-
borderColor: 'rgba(
|
|
169
|
-
color: '#
|
|
168
|
+
borderColor: 'rgba(99, 102, 241, 0.3)',
|
|
169
|
+
color: '#818cf8',
|
|
170
170
|
}}
|
|
171
171
|
>
|
|
172
172
|
<FileEdit className="size-4" />
|
|
@@ -64,7 +64,7 @@ export const SessionFiltersPopover = ({
|
|
|
64
64
|
>
|
|
65
65
|
<Filter size={14} />
|
|
66
66
|
{activeCount > 0 && (
|
|
67
|
-
<span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-
|
|
67
|
+
<span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-indigo-500 text-[10px] font-medium text-white">
|
|
68
68
|
{activeCount}
|
|
69
69
|
</span>
|
|
70
70
|
)}
|
|
@@ -292,18 +292,18 @@ export const SessionItem = ({
|
|
|
292
292
|
checked={isSelected ?? false}
|
|
293
293
|
onChange={() => onToggleSelect?.()}
|
|
294
294
|
onClick={(e) => e.stopPropagation()}
|
|
295
|
-
className="size-3.5 shrink-0 accent-
|
|
295
|
+
className="size-3.5 shrink-0 accent-indigo-500"
|
|
296
296
|
/>
|
|
297
297
|
)}
|
|
298
298
|
{session.isOngoing && <OngoingIndicator />}
|
|
299
|
-
{isPinned && <Pin className="size-2.5 shrink-0 text-
|
|
299
|
+
{isPinned && <Pin className="size-2.5 shrink-0 text-indigo-400" />}
|
|
300
300
|
{isHidden && <EyeOff className="size-2.5 shrink-0 text-zinc-500" />}
|
|
301
301
|
{isTeam ? (
|
|
302
302
|
<span
|
|
303
303
|
className="flex items-center gap-1.5 truncate text-[13px] font-medium leading-tight"
|
|
304
304
|
style={{ color: isActive ? 'var(--color-text)' : 'var(--color-text-muted)' }}
|
|
305
305
|
>
|
|
306
|
-
<Users className="size-3 shrink-0 text-
|
|
306
|
+
<Users className="size-3 shrink-0 text-indigo-400" />
|
|
307
307
|
<span className="truncate">{parsed.displayText}</span>
|
|
308
308
|
</span>
|
|
309
309
|
) : (
|
|
@@ -657,7 +657,7 @@ const SessionRow = ({
|
|
|
657
657
|
<span
|
|
658
658
|
className={
|
|
659
659
|
session.lastMessage.role === 'user'
|
|
660
|
-
? 'text-
|
|
660
|
+
? 'text-indigo-400'
|
|
661
661
|
: 'text-[var(--color-text-muted)]'
|
|
662
662
|
}
|
|
663
663
|
>
|
|
@@ -714,7 +714,7 @@ const SessionRow = ({
|
|
|
714
714
|
<span
|
|
715
715
|
className={`shrink-0 text-[10px] font-medium ${
|
|
716
716
|
msg.role === 'user'
|
|
717
|
-
? 'text-
|
|
717
|
+
? 'text-indigo-400'
|
|
718
718
|
: 'text-[var(--color-text-muted)]'
|
|
719
719
|
}`}
|
|
720
720
|
>
|
|
@@ -150,7 +150,7 @@ const TeamWorkspace = ({
|
|
|
150
150
|
{projectPath}
|
|
151
151
|
</span>
|
|
152
152
|
</span>
|
|
153
|
-
<span className="shrink-0 rounded bg-
|
|
153
|
+
<span className="shrink-0 rounded bg-indigo-500/20 px-1.5 py-0.5 text-[10px] font-medium text-indigo-400">
|
|
154
154
|
当前
|
|
155
155
|
</span>
|
|
156
156
|
</button>
|
|
@@ -12,7 +12,7 @@ export type TaskStatusFilterId =
|
|
|
12
12
|
| 'approved';
|
|
13
13
|
|
|
14
14
|
export const STATUS_OPTIONS: { id: TaskStatusFilterId; label: string; color: string }[] = [
|
|
15
|
-
{ id: 'todo', label: 'TODO', color: '#
|
|
15
|
+
{ id: 'todo', label: 'TODO', color: '#6366f1' },
|
|
16
16
|
{ id: 'in_progress', label: 'IN PROGRESS', color: '#eab308' },
|
|
17
17
|
{ id: 'needs_fix', label: 'NEEDS FIXES', color: '#f43f5e' },
|
|
18
18
|
{ id: 'done', label: 'DONE', color: '#22c55e' },
|
|
@@ -320,7 +320,7 @@ function CcSessionRow({
|
|
|
320
320
|
<div
|
|
321
321
|
className={`group relative rounded-xl border transition-colors ${
|
|
322
322
|
isExpanded
|
|
323
|
-
? 'border-
|
|
323
|
+
? 'border-indigo-500/20 bg-indigo-500/[0.04]'
|
|
324
324
|
: session.live
|
|
325
325
|
? 'border-emerald-500/20 bg-emerald-500/[0.04] hover:bg-emerald-500/[0.08]'
|
|
326
326
|
: 'border-transparent bg-[var(--color-surface)] hover:border-[var(--color-border)] hover:bg-[var(--color-surface-raised)]'
|
|
@@ -340,7 +340,7 @@ function CcSessionRow({
|
|
|
340
340
|
{session.live ? (
|
|
341
341
|
<Radio size={12} className="animate-pulse text-emerald-400" />
|
|
342
342
|
) : session.active ? (
|
|
343
|
-
<Wifi size={12} className="text-
|
|
343
|
+
<Wifi size={12} className="text-indigo-400" />
|
|
344
344
|
) : (
|
|
345
345
|
<WifiOff size={12} className="text-[var(--color-text-muted)] opacity-50" />
|
|
346
346
|
)}
|
|
@@ -371,7 +371,7 @@ function CcSessionRow({
|
|
|
371
371
|
<span
|
|
372
372
|
className={
|
|
373
373
|
session.lastMessage.role === 'user'
|
|
374
|
-
? 'text-
|
|
374
|
+
? 'text-indigo-400'
|
|
375
375
|
: 'text-[var(--color-text-muted)]'
|
|
376
376
|
}
|
|
377
377
|
>
|
|
@@ -425,14 +425,14 @@ function CcSessionRow({
|
|
|
425
425
|
key={`${msg.timestamp}-${i}`}
|
|
426
426
|
className={`rounded-lg px-3 py-2 text-[11px] leading-relaxed ${
|
|
427
427
|
isUserMessage
|
|
428
|
-
? 'bg-
|
|
428
|
+
? 'bg-indigo-500/10 text-[var(--color-text)]'
|
|
429
429
|
: 'bg-[var(--color-surface-raised)] text-[var(--color-text)]'
|
|
430
430
|
}`}
|
|
431
431
|
>
|
|
432
432
|
<div className="mb-1 flex items-center gap-2">
|
|
433
433
|
<span
|
|
434
434
|
className={`shrink-0 text-[10px] font-medium ${
|
|
435
|
-
isUserMessage ? 'text-
|
|
435
|
+
isUserMessage ? 'text-indigo-400' : 'text-[var(--color-text-muted)]'
|
|
436
436
|
}`}
|
|
437
437
|
>
|
|
438
438
|
{isUserMessage ? '用户' : 'Agent'}
|
|
@@ -112,7 +112,7 @@ export const ClaudeLogsFilterPopover = ({
|
|
|
112
112
|
>
|
|
113
113
|
<Filter size={14} />
|
|
114
114
|
{activeCount > 0 && (
|
|
115
|
-
<span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-
|
|
115
|
+
<span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-indigo-500 text-[10px] font-medium text-white">
|
|
116
116
|
{activeCount}
|
|
117
117
|
</span>
|
|
118
118
|
)}
|
|
@@ -115,7 +115,7 @@ export const ClaudeLogsPanel = ({
|
|
|
115
115
|
<Button
|
|
116
116
|
variant="outline"
|
|
117
117
|
size="sm"
|
|
118
|
-
className="h-7 border-
|
|
118
|
+
className="h-7 border-indigo-500/30 bg-indigo-600 px-2 text-xs text-white hover:bg-indigo-500"
|
|
119
119
|
onClick={applyPending}
|
|
120
120
|
>
|
|
121
121
|
+{pendingNewCount} 条新日志
|
|
@@ -122,7 +122,7 @@ export const CollapsibleTeamSection = ({
|
|
|
122
122
|
</span>
|
|
123
123
|
)}
|
|
124
124
|
{secondaryBadge != null && secondaryBadge > 0 && (
|
|
125
|
-
<span className="text-[10px] tabular-nums text-
|
|
125
|
+
<span className="text-[10px] tabular-nums text-indigo-400 opacity-70" title={`${secondaryBadge} unread`}>
|
|
126
126
|
+{secondaryBadge}
|
|
127
127
|
</span>
|
|
128
128
|
)}
|
|
@@ -130,7 +130,7 @@ export const ProcessesSection = memo(function ProcessesSection({
|
|
|
130
130
|
{proc.url && (
|
|
131
131
|
<button
|
|
132
132
|
type="button"
|
|
133
|
-
className="text-[var(--color-text-secondary)] underline decoration-dotted underline-offset-2 transition-colors hover:text-
|
|
133
|
+
className="text-[var(--color-text-secondary)] underline decoration-dotted underline-offset-2 transition-colors hover:text-indigo-400"
|
|
134
134
|
onClick={() => void api.openExternal(proc.url!)}
|
|
135
135
|
title={proc.url}
|
|
136
136
|
>
|
|
@@ -156,7 +156,7 @@ export const ProcessesSection = memo(function ProcessesSection({
|
|
|
156
156
|
{alive && proc.url && (
|
|
157
157
|
<button
|
|
158
158
|
type="button"
|
|
159
|
-
className="flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-
|
|
159
|
+
className="flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-indigo-400 transition-colors hover:bg-indigo-500/10"
|
|
160
160
|
onClick={() => void api.openExternal(proc.url!)}
|
|
161
161
|
title="在浏览器中打开"
|
|
162
162
|
>
|
|
@@ -18,8 +18,8 @@ import type { TeamTaskWithKanban } from '@shared/types';
|
|
|
18
18
|
* Matches the kanban column palette from KanbanBoard.tsx.
|
|
19
19
|
*/
|
|
20
20
|
const STATUS_COLORS: Record<string, { text: string; bg: string }> = {
|
|
21
|
-
pending: { text: '#
|
|
22
|
-
todo: { text: '#
|
|
21
|
+
pending: { text: '#818cf8', bg: 'rgba(99, 102, 241, 0.15)' }, // blue
|
|
22
|
+
todo: { text: '#818cf8', bg: 'rgba(99, 102, 241, 0.15)' },
|
|
23
23
|
in_progress: { text: '#facc15', bg: 'rgba(234, 179, 8, 0.15)' }, // yellow
|
|
24
24
|
completed: { text: '#4ade80', bg: 'rgba(34, 197, 94, 0.15)' }, // green
|
|
25
25
|
done: { text: '#4ade80', bg: 'rgba(34, 197, 94, 0.15)' },
|
|
@@ -2142,7 +2142,7 @@ export const TeamDetailView = ({
|
|
|
2142
2142
|
</div>
|
|
2143
2143
|
<div className="flex items-center gap-3 py-2">
|
|
2144
2144
|
<p className="text-sm font-medium text-text">{draftDisplayName}</p>
|
|
2145
|
-
<span className="rounded-full bg-
|
|
2145
|
+
<span className="rounded-full bg-indigo-500/20 px-2 py-0.5 text-[10px] font-medium text-indigo-400">
|
|
2146
2146
|
{getCommandForHarness()}
|
|
2147
2147
|
</span>
|
|
2148
2148
|
</div>
|
|
@@ -93,7 +93,7 @@ export const TeamListFilterPopover = ({
|
|
|
93
93
|
>
|
|
94
94
|
<Filter size={14} />
|
|
95
95
|
{activeCount > 0 && (
|
|
96
|
-
<span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-
|
|
96
|
+
<span className="absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-indigo-500 text-[10px] font-medium text-white">
|
|
97
97
|
{activeCount}
|
|
98
98
|
</span>
|
|
99
99
|
)}
|
|
@@ -974,7 +974,7 @@ export const TeamListView = (): React.JSX.Element => {
|
|
|
974
974
|
{template.members.map((member) => (
|
|
975
975
|
<span
|
|
976
976
|
key={member.name}
|
|
977
|
-
className="rounded bg-
|
|
977
|
+
className="rounded bg-indigo-500/10 px-1.5 py-0.5 text-[10px] text-indigo-300"
|
|
978
978
|
>
|
|
979
979
|
{member.name}
|
|
980
980
|
{member.role ? ` · ${formatTeamRoleLabel(member.role)}` : ''}
|
|
@@ -1233,7 +1233,7 @@ export const TeamListView = (): React.JSX.Element => {
|
|
|
1233
1233
|
<div className="mt-2 flex items-center gap-1.5 pl-[42px] text-[10px] tabular-nums">
|
|
1234
1234
|
{team.stats && team.stats.sessions > 0 ? (
|
|
1235
1235
|
<>
|
|
1236
|
-
<span className="text-
|
|
1236
|
+
<span className="text-indigo-400">{team.stats.sessions} sessions</span>
|
|
1237
1237
|
<span className="text-[var(--color-text-muted)] opacity-30">·</span>
|
|
1238
1238
|
<span className="text-emerald-400">{formatTokensCompact(team.stats.tokens)}</span>
|
|
1239
1239
|
{team.stats.durationMs > 0 && (
|
|
@@ -128,7 +128,7 @@ export const TeamSessionsSection = ({
|
|
|
128
128
|
{selectedSessionId !== null && (
|
|
129
129
|
<button
|
|
130
130
|
type="button"
|
|
131
|
-
className="flex w-full items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs text-
|
|
131
|
+
className="flex w-full items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs text-indigo-600 transition-colors hover:bg-indigo-500/10 dark:text-indigo-400"
|
|
132
132
|
onClick={() => onSelectSession(null)}
|
|
133
133
|
>
|
|
134
134
|
<FilterX size={12} />
|
|
@@ -176,10 +176,10 @@ const SessionRow = ({
|
|
|
176
176
|
return (
|
|
177
177
|
<div
|
|
178
178
|
className={`group flex w-full items-center gap-2 rounded-md px-2.5 py-2 text-left text-xs transition-colors hover:bg-[var(--color-surface-raised)] ${
|
|
179
|
-
isLead ? 'border border-
|
|
180
|
-
} ${isSelected ? 'bg-
|
|
179
|
+
isLead ? 'border border-indigo-500/20 bg-indigo-500/5' : ''
|
|
180
|
+
} ${isSelected ? 'bg-indigo-500/10 ring-1 ring-indigo-400/50' : ''}`}
|
|
181
181
|
>
|
|
182
|
-
{isLead && <Crown size={12} className="shrink-0 text-
|
|
182
|
+
{isLead && <Crown size={12} className="shrink-0 text-indigo-400" />}
|
|
183
183
|
|
|
184
184
|
<button type="button" className="min-w-0 flex-1 text-left" onClick={onClick}>
|
|
185
185
|
<div className="flex items-center gap-1.5">
|
|
@@ -199,7 +199,7 @@ const SessionRow = ({
|
|
|
199
199
|
{isLead && (
|
|
200
200
|
<>
|
|
201
201
|
<span style={{ opacity: 0.5 }}>·</span>
|
|
202
|
-
<span className="text-
|
|
202
|
+
<span className="text-indigo-600 dark:text-indigo-400">负责人</span>
|
|
203
203
|
</>
|
|
204
204
|
)}
|
|
205
205
|
</div>
|
|
@@ -210,7 +210,7 @@ const SessionRow = ({
|
|
|
210
210
|
<TooltipTrigger asChild>
|
|
211
211
|
<button
|
|
212
212
|
type="button"
|
|
213
|
-
className={`rounded p-0.5 text-[var(--color-text-muted)] transition-opacity hover:text-
|
|
213
|
+
className={`rounded p-0.5 text-[var(--color-text-muted)] transition-opacity hover:text-indigo-400 ${
|
|
214
214
|
isSelected ? 'opacity-100' : 'opacity-0 group-hover:opacity-100'
|
|
215
215
|
}`}
|
|
216
216
|
onClick={(e) => {
|
|
@@ -21,7 +21,7 @@ export const UnreadCommentsBadge = ({
|
|
|
21
21
|
{totalCount}
|
|
22
22
|
</span>
|
|
23
23
|
{unreadCount > 0 ? (
|
|
24
|
-
<span className="absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-
|
|
24
|
+
<span className="absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-indigo-500 px-1 text-[8px] font-bold leading-none text-white shadow-sm">
|
|
25
25
|
{unreadCount}
|
|
26
26
|
</span>
|
|
27
27
|
) : null}
|
|
@@ -223,8 +223,8 @@ const SessionSourceBadge = ({ message }: { message: InboxMessage }): React.JSX.E
|
|
|
223
223
|
className="inline-flex max-w-[180px] items-center truncate rounded-full px-1.5 py-0.5 text-[10px] font-medium"
|
|
224
224
|
title={`${platform}${label}${session?.key ? ` (${session.key})` : ''}`}
|
|
225
225
|
style={{
|
|
226
|
-
backgroundColor: 'rgba(
|
|
227
|
-
color: '#
|
|
226
|
+
backgroundColor: 'rgba(99, 102, 241, 0.12)',
|
|
227
|
+
color: '#a5b4fc',
|
|
228
228
|
}}
|
|
229
229
|
>
|
|
230
230
|
{platform}
|
|
@@ -578,7 +578,7 @@ function linkifyTaskIds(text: string, onClick: (taskId: string) => void): React.
|
|
|
578
578
|
<TaskTooltip key={i} taskId={taskId}>
|
|
579
579
|
<button
|
|
580
580
|
type="button"
|
|
581
|
-
className="inline cursor-pointer font-medium text-
|
|
581
|
+
className="inline cursor-pointer font-medium text-indigo-600 hover:underline dark:text-indigo-400"
|
|
582
582
|
onClick={(e) => {
|
|
583
583
|
e.stopPropagation();
|
|
584
584
|
onClick(taskId);
|
|
@@ -636,7 +636,7 @@ const TaskRecipientBadge = ({
|
|
|
636
636
|
className="inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-medium tracking-wide"
|
|
637
637
|
style={{
|
|
638
638
|
backgroundColor: 'rgba(96, 165, 250, 0.14)',
|
|
639
|
-
color: '#
|
|
639
|
+
color: '#818cf8',
|
|
640
640
|
border: '1px solid rgba(96, 165, 250, 0.3)',
|
|
641
641
|
}}
|
|
642
642
|
>
|
|
@@ -1209,7 +1209,7 @@ export const ActivityItem = memo(
|
|
|
1209
1209
|
<div className="flex min-w-0 flex-1 items-center gap-2 overflow-hidden">
|
|
1210
1210
|
{isUnread ? (
|
|
1211
1211
|
<span
|
|
1212
|
-
className="size-2 shrink-0 rounded-full bg-
|
|
1212
|
+
className="size-2 shrink-0 rounded-full bg-indigo-500"
|
|
1213
1213
|
title="未读"
|
|
1214
1214
|
aria-hidden
|
|
1215
1215
|
/>
|
|
@@ -1239,7 +1239,7 @@ export const ActivityItem = memo(
|
|
|
1239
1239
|
<button
|
|
1240
1240
|
type="button"
|
|
1241
1241
|
aria-label="展开消息"
|
|
1242
|
-
className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-
|
|
1242
|
+
className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-indigo-500/50 group-hover:opacity-100"
|
|
1243
1243
|
style={{ color: CARD_ICON_MUTED }}
|
|
1244
1244
|
onClick={(e) => {
|
|
1245
1245
|
e.stopPropagation();
|
|
@@ -1279,7 +1279,7 @@ export const ActivityItem = memo(
|
|
|
1279
1279
|
<div className="flex min-w-0 items-center gap-2">
|
|
1280
1280
|
{isUnread ? (
|
|
1281
1281
|
<span
|
|
1282
|
-
className="size-2 shrink-0 rounded-full bg-
|
|
1282
|
+
className="size-2 shrink-0 rounded-full bg-indigo-500"
|
|
1283
1283
|
title="未读"
|
|
1284
1284
|
aria-hidden
|
|
1285
1285
|
/>
|
|
@@ -1322,7 +1322,7 @@ export const ActivityItem = memo(
|
|
|
1322
1322
|
<button
|
|
1323
1323
|
type="button"
|
|
1324
1324
|
aria-label="展开消息"
|
|
1325
|
-
className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-
|
|
1325
|
+
className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-indigo-500/50 group-hover:opacity-100"
|
|
1326
1326
|
style={{ color: CARD_ICON_MUTED }}
|
|
1327
1327
|
onClick={(e) => {
|
|
1328
1328
|
e.stopPropagation();
|
|
@@ -1361,7 +1361,7 @@ export const ActivityItem = memo(
|
|
|
1361
1361
|
<>
|
|
1362
1362
|
{isUnread ? (
|
|
1363
1363
|
<span
|
|
1364
|
-
className="size-2 shrink-0 rounded-full bg-
|
|
1364
|
+
className="size-2 shrink-0 rounded-full bg-indigo-500"
|
|
1365
1365
|
title="未读"
|
|
1366
1366
|
aria-hidden
|
|
1367
1367
|
/>
|
|
@@ -1406,7 +1406,7 @@ export const ActivityItem = memo(
|
|
|
1406
1406
|
<button
|
|
1407
1407
|
type="button"
|
|
1408
1408
|
aria-label="展开消息"
|
|
1409
|
-
className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-
|
|
1409
|
+
className="absolute right-0 top-1/2 -translate-y-1/2 rounded p-0.5 opacity-0 transition-opacity focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-indigo-500/50 group-hover:opacity-100"
|
|
1410
1410
|
style={{ color: CARD_ICON_MUTED }}
|
|
1411
1411
|
onClick={(e) => {
|
|
1412
1412
|
e.stopPropagation();
|