@nextclaw/ui 0.12.14 → 0.12.16

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.
Files changed (92) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/assets/{api-C51456xV.js → api-BIg--UMJ.js} +1 -1
  3. package/dist/assets/{app-manager-provider-D_cKqqRG.js → app-manager-provider-BfKiVYea.js} +1 -1
  4. package/dist/assets/{app-navigation.config-Dve1W20Y.js → app-navigation.config-xIjCAn-R.js} +1 -1
  5. package/dist/assets/{book-open-B4mOKdz8.js → book-open-CUd69I2f.js} +1 -1
  6. package/dist/assets/{channels-list-page-WJ7d4zMI.js → channels-list-page-5wQy-UW7.js} +1 -1
  7. package/dist/assets/chat-CXrERmQ1.js +60 -0
  8. package/dist/assets/{chat-page-DLFTPfmu.js → chat-page-CTLX0KsB.js} +1 -1
  9. package/dist/assets/{chunk-JZWAC4HX-ptDyT_1C.js → chunk-JZWAC4HX-THqEFwu9.js} +1 -1
  10. package/dist/assets/{config-split-page-B3PRA_AV.js → config-split-page-UJSTBsEU.js} +1 -1
  11. package/dist/assets/{createLucideIcon-C_GFKVuW.js → createLucideIcon-DVAlgDOi.js} +1 -1
  12. package/dist/assets/{desktop-update-config-CzGi43xw.js → desktop-update-config-B0vQ5JID.js} +1 -1
  13. package/dist/assets/{dialog-BHcaU6NE.js → dialog-t7OAmObC.js} +1 -1
  14. package/dist/assets/{dist-DtBFqZ6_.js → dist-DWPNydLC.js} +1 -1
  15. package/dist/assets/doc-browser-BIggpN8Z.js +1 -0
  16. package/dist/assets/{doc-browser-CwgI7ipB.js → doc-browser-DznuT-CU.js} +1 -1
  17. package/dist/assets/{doc-browser-context-Dib9sS83.js → doc-browser-context-zXaTjrpA.js} +1 -1
  18. package/dist/assets/{doc-browser-CoKIUCJj.js → doc-browser-t96ibd-b.js} +1 -1
  19. package/dist/assets/{es2015-BlNhrQUG.js → es2015-BRVsmfFO.js} +1 -1
  20. package/dist/assets/{external-link-DP2IJ7AM.js → external-link-D1Xqff6i.js} +1 -1
  21. package/dist/assets/{folder-BPwc278w.js → folder-B_fuaX3x.js} +1 -1
  22. package/dist/assets/{hash-CvcvtMBq.js → hash-BRvv_UUq.js} +1 -1
  23. package/dist/assets/i18n-CF_jgT_-.js +1 -0
  24. package/dist/assets/index-DuHqJ8wn.css +1 -0
  25. package/dist/assets/{index-CAYF44Dz.js → index-mw77my39.js} +2 -2
  26. package/dist/assets/{key-round-BQXmPSxD.js → key-round-DFVNXZcD.js} +1 -1
  27. package/dist/assets/loader-circle-DEz3bHGb.js +1 -0
  28. package/dist/assets/{logo-badge-uB4SwANR.js → logo-badge-CRVKkIl9.js} +1 -1
  29. package/dist/assets/{logos-BcELLmYh.js → logos-BVCi_7_I.js} +1 -1
  30. package/dist/assets/marketplace-page-DVmk8dZk.js +1 -0
  31. package/dist/assets/{marketplace-page-DiqqX25V.js → marketplace-page-apq5LpYx.js} +1 -1
  32. package/dist/assets/mcp-marketplace-page-CskrJuKU.js +1 -0
  33. package/dist/assets/{mcp-marketplace-page-C_akqPwv.js → mcp-marketplace-page-DiqTAdRJ.js} +1 -1
  34. package/dist/assets/message-square-CLhDWybk.js +1 -0
  35. package/dist/assets/{model-config-B0L43HTL.js → model-config-cth12uRn.js} +1 -1
  36. package/dist/assets/{notice-card-C9PFAR67.js → notice-card-CXY09tsa.js} +1 -1
  37. package/dist/assets/play-CnnPm8ca.js +1 -0
  38. package/dist/assets/plus-CdYMdiws.js +1 -0
  39. package/dist/assets/{popover-B8msg2FQ.js → popover-CbQxrchk.js} +1 -1
  40. package/dist/assets/{provider-scoped-model-input-DeAo2Y65.js → provider-scoped-model-input-CZEB2m98.js} +1 -1
  41. package/dist/assets/{providers-list-5_VShcn7.js → providers-list-Dsj2BYPm.js} +1 -1
  42. package/dist/assets/{refresh-ccw-CeG203yU.js → refresh-ccw-C-ytTHiq.js} +1 -1
  43. package/dist/assets/remote-DMMC2PSo.js +1 -0
  44. package/dist/assets/{rotate-cw-F7aThvYj.js → rotate-cw-ClSrRUa0.js} +1 -1
  45. package/dist/assets/{runtime-config-page-B-y_0HIS.js → runtime-config-page-JpAUjHTI.js} +1 -1
  46. package/dist/assets/{save-7ztImRj7.js → save-KxhpE3Zr.js} +1 -1
  47. package/dist/assets/{search-DZSNKEGp.js → search-Bz3Q64sr.js} +1 -1
  48. package/dist/assets/{search-config-DJTm9Fno.js → search-config-C_xRBv_i.js} +1 -1
  49. package/dist/assets/{secrets-config-DKFeFii1.js → secrets-config-BOL024Fj.js} +1 -1
  50. package/dist/assets/{select-DRDejPLk.js → select-tRTLG4FK.js} +1 -1
  51. package/dist/assets/{sessions-config-page-CZGqS32n.js → sessions-config-page-CLEEGNYL.js} +1 -1
  52. package/dist/assets/{setting-row-BcF6eTW0.js → setting-row-DMDgBCC7.js} +1 -1
  53. package/dist/assets/{settings-DjvNMJde.js → settings-Cto6z-Ij.js} +1 -1
  54. package/dist/assets/skeleton-BwfJfVK3.js +1 -0
  55. package/dist/assets/{sparkles-CyDTgTM4.js → sparkles-xZ74eW0P.js} +1 -1
  56. package/dist/assets/{status-dot-aQU9Mia4.js → status-dot-Bobpfutv.js} +1 -1
  57. package/dist/assets/{tabs-custom-C4P7g4vR.js → tabs-custom-C3Mf-NLb.js} +1 -1
  58. package/dist/assets/{tag-chip-CVIqyMv7.js → tag-chip-BZ14i5b1.js} +1 -1
  59. package/dist/assets/{theme-provider-dHqcWU-j.js → theme-provider-D6Cgm6i-.js} +1 -1
  60. package/dist/assets/{tooltip-C6VPreZ7.js → tooltip-7lsLGcL9.js} +1 -1
  61. package/dist/assets/{trash-2-C1cdqL6V.js → trash-2-WFSNa5oj.js} +1 -1
  62. package/dist/assets/{use-config-DFja1sda.js → use-config-CXu7dFzw.js} +1 -1
  63. package/dist/assets/{use-confirm-dialog-DvIbSUX3.js → use-confirm-dialog-Df1SozKw.js} +1 -1
  64. package/dist/assets/{use-infinite-scroll-loader-D8h0k-iL.js → use-infinite-scroll-loader-BogRuzgz.js} +1 -1
  65. package/dist/assets/{use-viewport-layout-D-pjxsyz.js → use-viewport-layout-CWlW5b-T.js} +1 -1
  66. package/dist/assets/x-BvS2y4e_.js +1 -0
  67. package/dist/index.html +39 -39
  68. package/package.json +4 -4
  69. package/src/features/chat/components/chat-sidebar-session-item.tsx +22 -24
  70. package/src/features/chat/components/conversation/chat-input-bar.container.tsx +5 -1
  71. package/src/features/chat/managers/ncp-chat-input.manager.test.ts +29 -0
  72. package/src/features/chat/utils/chat-input-bar.utils.test.ts +26 -0
  73. package/src/features/chat/utils/chat-input-toolbar.utils.ts +19 -18
  74. package/src/features/chat/utils/ncp-chat-input-availability.utils.test.ts +35 -3
  75. package/src/features/chat/utils/ncp-chat-input-availability.utils.ts +4 -6
  76. package/src/index.css +97 -5
  77. package/src/shared/components/common/agent-avatar.test.tsx +33 -0
  78. package/src/shared/components/common/agent-avatar.tsx +6 -9
  79. package/src/shared/lib/i18n/chat.ts +1 -0
  80. package/dist/assets/chat-BxA-mw53.js +0 -58
  81. package/dist/assets/doc-browser-DYKpRqe-.js +0 -1
  82. package/dist/assets/i18n-BnNAQpVM.js +0 -1
  83. package/dist/assets/index-mRmSAB-e.css +0 -1
  84. package/dist/assets/loader-circle-C6gg2m2a.js +0 -1
  85. package/dist/assets/marketplace-page-0sEdt5sA.js +0 -1
  86. package/dist/assets/mcp-marketplace-page-B8vmu9xe.js +0 -1
  87. package/dist/assets/message-square-CLVODA23.js +0 -1
  88. package/dist/assets/play-DeNVUA5C.js +0 -1
  89. package/dist/assets/plus-BptLViq1.js +0 -1
  90. package/dist/assets/remote-pzp4oLcL.js +0 -1
  91. package/dist/assets/skeleton-5Mg6vZHN.js +0 -1
  92. package/dist/assets/x-BjMO7v8q.js +0 -1
@@ -1,4 +1,5 @@
1
1
  import { cn } from '@/shared/lib/utils';
2
+ import { Bot } from 'lucide-react';
2
3
 
3
4
  type AgentAvatarProps = {
4
5
  agentId: string;
@@ -25,14 +26,6 @@ function hashText(value: string): number {
25
26
  return Math.abs(hash);
26
27
  }
27
28
 
28
- function resolveLetter(value: string): string {
29
- const trimmed = value.trim();
30
- if (!trimmed) {
31
- return 'A';
32
- }
33
- return trimmed.slice(0, 1).toUpperCase();
34
- }
35
-
36
29
  export function AgentAvatar({ agentId, displayName, avatarUrl, className }: AgentAvatarProps) {
37
30
  const seed = displayName?.trim() || agentId;
38
31
  const [bgClass, textClass] = PALETTE[hashText(agentId) % PALETTE.length] ?? PALETTE[0];
@@ -57,7 +50,11 @@ export function AgentAvatar({ agentId, displayName, avatarUrl, className }: Agen
57
50
  )}
58
51
  aria-label={displayName?.trim() || agentId}
59
52
  >
60
- {resolveLetter(seed)}
53
+ {agentId.trim().toLowerCase() === 'main' ? (
54
+ <Bot className="h-[55%] w-[55%]" strokeWidth={2.4} />
55
+ ) : (
56
+ (seed.trim() || 'A').slice(0, 1).toUpperCase()
57
+ )}
61
58
  </div>
62
59
  );
63
60
  }
@@ -68,6 +68,7 @@ export const CHAT_LABELS: Record<string, { zh: string; en: string }> = {
68
68
  en: 'Chat startup failed. Please retry in a moment or inspect the service logs.'
69
69
  },
70
70
  chatInputPlaceholder: { zh: '输入消息,输入 / 选择技能,Enter 发送,Shift + Enter 换行', en: 'Type a message, type / to select skills, Enter to send, Shift + Enter for newline' },
71
+ chatInputPlaceholderCompact: { zh: '发消息...', en: 'Message NextClaw...' },
71
72
  chatInputHint: { zh: '支持多轮上下文,默认走当前会话。', en: 'Multi-turn context is preserved in the current session.' },
72
73
  chatSlashSectionCommands: { zh: '命令', en: 'Commands' },
73
74
  chatSlashSectionSkills: { zh: '技能', en: 'Skills' },