ai-chat-ui-kit 0.1.0 → 0.1.1

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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -7
  3. package/package.json +8 -4
  4. package/.eslintrc.cjs +0 -74
  5. package/.github/actions/screenshot/action.yml +0 -35
  6. package/.github/workflows/pages.yml +0 -46
  7. package/docs/README.md +0 -176
  8. package/docs/api/components.md +0 -344
  9. package/docs/api/core.md +0 -349
  10. package/docs/chat-style-1-minimal.html +0 -78
  11. package/docs/chat-style-2-neon.html +0 -74
  12. package/docs/chat-style-3-glass.html +0 -73
  13. package/docs/chat-style-4-terminal.html +0 -84
  14. package/docs/chat-style-5-gradient.html +0 -69
  15. package/docs/chat-style-6-corporate.html +0 -116
  16. package/docs/examples/basic-chat.md +0 -291
  17. package/docs/examples/custom-plugins.md +0 -431
  18. package/docs/examples/multi-model.md +0 -466
  19. package/docs/guide/api-adapters.md +0 -431
  20. package/docs/guide/getting-started.md +0 -244
  21. package/docs/guide/headless-mode.md +0 -508
  22. package/docs/guide/plugins.md +0 -416
  23. package/docs/guide/themes.md +0 -327
  24. package/docs/index.html +0 -256
  25. package/docs/theme-preview-1-minimal.html +0 -74
  26. package/docs/theme-preview-2-neon.html +0 -73
  27. package/docs/theme-preview-3-glass.html +0 -77
  28. package/docs/theme-preview-4-terminal.html +0 -86
  29. package/docs/theme-preview-5-gradient.html +0 -79
  30. package/docs/theme-preview-6-corporate.html +0 -71
  31. package/examples/index.html +0 -414
  32. package/examples/react-app/App.tsx +0 -131
  33. package/examples/react-app/index.html +0 -12
  34. package/examples/react-app/main.tsx +0 -15
  35. package/examples/react-app/package.json +0 -24
  36. package/examples/vue-app/index.html +0 -12
  37. package/examples/vue-app/package.json +0 -22
  38. package/examples/vue-app/src/App.vue +0 -145
  39. package/examples/vue-app/src/main.ts +0 -9
  40. package/packages/components/package.json +0 -25
  41. package/packages/components/src/chat/chat.css +0 -80
  42. package/packages/components/src/chat/chat.ts +0 -236
  43. package/packages/components/src/index.ts +0 -36
  44. package/packages/components/src/input/input.css +0 -52
  45. package/packages/components/src/input/input.ts +0 -116
  46. package/packages/components/src/markdown/markdown.css +0 -118
  47. package/packages/components/src/markdown/markdown.ts +0 -229
  48. package/packages/components/src/message/message.css +0 -56
  49. package/packages/components/src/message/message.ts +0 -72
  50. package/packages/components/src/styles/global.css +0 -43
  51. package/packages/components/src/tool-call/tool-call.css +0 -98
  52. package/packages/components/src/tool-call/tool-call.ts +0 -171
  53. package/packages/components/src/types.ts +0 -55
  54. package/packages/components/src/utils/helpers.ts +0 -128
  55. package/packages/components/tsconfig.json +0 -25
  56. package/packages/components/tsup.config.ts +0 -18
  57. package/packages/core/package.json +0 -47
  58. package/packages/core/pnpm-lock.yaml +0 -2032
  59. package/packages/core/pnpm-workspace.yaml +0 -2
  60. package/packages/core/src/api/adapters.ts +0 -717
  61. package/packages/core/src/api/base.ts +0 -210
  62. package/packages/core/src/api/index.ts +0 -54
  63. package/packages/core/src/index.ts +0 -93
  64. package/packages/core/src/parser/latex.ts +0 -274
  65. package/packages/core/src/parser/markdown.test.ts +0 -58
  66. package/packages/core/src/parser/markdown.ts +0 -206
  67. package/packages/core/src/parser/mermaid.ts +0 -276
  68. package/packages/core/src/plugins/PluginManager.ts +0 -232
  69. package/packages/core/src/plugins/builtin.ts +0 -406
  70. package/packages/core/src/store/ChatStore.ts +0 -163
  71. package/packages/core/src/store/ModelConfigStore.ts +0 -136
  72. package/packages/core/src/store/ToolCallStore.ts +0 -164
  73. package/packages/core/src/store/base.ts +0 -75
  74. package/packages/core/src/types/index.ts +0 -133
  75. package/packages/core/tsup.config.ts +0 -18
  76. package/packages/themes/package.json +0 -33
  77. package/packages/themes/src/corporate/index.ts +0 -52
  78. package/packages/themes/src/corporate/theme.css +0 -228
  79. package/packages/themes/src/glass/index.ts +0 -52
  80. package/packages/themes/src/glass/theme.css +0 -237
  81. package/packages/themes/src/gradient/index.ts +0 -53
  82. package/packages/themes/src/gradient/theme.css +0 -218
  83. package/packages/themes/src/index.ts +0 -13
  84. package/packages/themes/src/minimal/index.ts +0 -52
  85. package/packages/themes/src/minimal/theme.css +0 -198
  86. package/packages/themes/src/neon/index.ts +0 -52
  87. package/packages/themes/src/neon/theme.css +0 -233
  88. package/packages/themes/src/terminal/index.ts +0 -52
  89. package/packages/themes/src/terminal/theme.css +0 -235
  90. package/packages/themes/src/types.ts +0 -10
  91. package/packages/themes/src/vite-env.d.ts +0 -9
  92. package/packages/themes/tsup.config.ts +0 -21
  93. package/pnpm-workspace.yaml +0 -4
  94. package/tsconfig.json +0 -27
  95. package/vite.config.ts +0 -25
  96. package/vitest.config.ts +0 -28
@@ -1,198 +0,0 @@
1
- /**
2
- * @generated-by AI: edenxpzhang
3
- * @generated-date 2026-05-13
4
- *
5
- * Minimal Clean —— 苹果极简风
6
- * 对齐 docs/chat-style-1-minimal.html
7
- */
8
-
9
- :root[data-theme='minimal'],
10
- .ai-theme-minimal {
11
- --ai-primary: #0071e3;
12
- --ai-primary-hover: #0077ed;
13
- --ai-primary-active: #0056b3;
14
- --ai-bg-primary: #ffffff;
15
- --ai-bg-secondary: #f5f5f7;
16
- --ai-bg-chat: #ffffff;
17
- --ai-text-primary: #1d1d1f;
18
- --ai-text-secondary: #86868b;
19
- --ai-text-tertiary: #a1a1a6;
20
- --ai-text-inverse: #ffffff;
21
- --ai-message-user-bg: #0071e3;
22
- --ai-message-user-text: #ffffff;
23
- --ai-message-ai-bg: #e5e5ea;
24
- --ai-message-ai-text: #1d1d1f;
25
- --ai-border: #e5e5ea;
26
- }
27
-
28
- /* 容器 */
29
- .ai-theme-minimal .ai-chat,
30
- [data-theme='minimal'] .ai-chat {
31
- background: var(--ai-bg-primary);
32
- border-radius: 24px;
33
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
34
- overflow: hidden;
35
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
36
- }
37
-
38
- /* Header */
39
- .ai-theme-minimal .ai-chat__header,
40
- [data-theme='minimal'] .ai-chat__header {
41
- padding: 20px;
42
- background: var(--ai-bg-primary);
43
- border-bottom: 1px solid var(--ai-border);
44
- display: flex;
45
- align-items: center;
46
- gap: 12px;
47
- }
48
- .ai-theme-minimal .ai-chat__avatar,
49
- [data-theme='minimal'] .ai-chat__avatar {
50
- width: 40px;
51
- height: 40px;
52
- border-radius: 50%;
53
- background: linear-gradient(135deg, #0071e3, #42a4ff);
54
- color: #fff;
55
- font-size: 18px;
56
- display: flex;
57
- align-items: center;
58
- justify-content: center;
59
- }
60
- .ai-theme-minimal .ai-chat__title,
61
- [data-theme='minimal'] .ai-chat__title {
62
- font-size: 16px;
63
- font-weight: 600;
64
- color: var(--ai-text-primary);
65
- }
66
- .ai-theme-minimal .ai-chat__subtitle,
67
- [data-theme='minimal'] .ai-chat__subtitle {
68
- font-size: 12px;
69
- color: var(--ai-text-secondary);
70
- }
71
-
72
- /* Messages */
73
- .ai-theme-minimal .ai-chat__messages,
74
- [data-theme='minimal'] .ai-chat__messages {
75
- background: var(--ai-bg-primary);
76
- padding: 20px;
77
- gap: 12px;
78
- }
79
-
80
- /* Message */
81
- .ai-theme-minimal .ai-message,
82
- [data-theme='minimal'] .ai-message {
83
- max-width: 75%;
84
- }
85
- .ai-theme-minimal .ai-message__avatar,
86
- [data-theme='minimal'] .ai-message__avatar {
87
- display: none; /* minimal 风格不需要头像 */
88
- }
89
- .ai-theme-minimal .ai-message__content,
90
- [data-theme='minimal'] .ai-message__content {
91
- padding: 12px 16px;
92
- border-radius: 18px;
93
- font-size: 14px;
94
- line-height: 1.5;
95
- }
96
- .ai-theme-minimal .ai-message--user .ai-message__content,
97
- [data-theme='minimal'] .ai-message--user .ai-message__content {
98
- background: var(--ai-message-user-bg);
99
- color: var(--ai-message-user-text);
100
- border-bottom-right-radius: 6px;
101
- }
102
- .ai-theme-minimal .ai-message--assistant .ai-message__content,
103
- [data-theme='minimal'] .ai-message--assistant .ai-message__content {
104
- background: var(--ai-message-ai-bg);
105
- color: var(--ai-message-ai-text);
106
- border-bottom-left-radius: 6px;
107
- }
108
- .ai-theme-minimal .ai-message__time,
109
- [data-theme='minimal'] .ai-message__time {
110
- display: none;
111
- }
112
-
113
- /* Input */
114
- .ai-theme-minimal .ai-input,
115
- [data-theme='minimal'] .ai-input {
116
- padding: 16px 20px;
117
- background: var(--ai-bg-primary);
118
- border-top: 1px solid var(--ai-border);
119
- }
120
- .ai-theme-minimal .ai-input__wrapper,
121
- [data-theme='minimal'] .ai-input__wrapper {
122
- display: flex;
123
- gap: 12px;
124
- align-items: center;
125
- }
126
- .ai-theme-minimal .ai-input__textarea,
127
- [data-theme='minimal'] .ai-input__textarea {
128
- flex: 1;
129
- padding: 12px 16px;
130
- border: 1px solid var(--ai-border);
131
- border-radius: 20px;
132
- background: #fff;
133
- color: var(--ai-text-primary);
134
- font-size: 14px;
135
- outline: none;
136
- resize: none;
137
- min-height: 44px;
138
- max-height: 120px;
139
- transition: border-color 0.2s;
140
- }
141
- .ai-theme-minimal .ai-input__textarea:focus,
142
- [data-theme='minimal'] .ai-input__textarea:focus {
143
- border-color: var(--ai-primary);
144
- }
145
- .ai-theme-minimal .ai-input__send,
146
- [data-theme='minimal'] .ai-input__send {
147
- width: 40px;
148
- height: 40px;
149
- border: none;
150
- border-radius: 50%;
151
- background: var(--ai-primary);
152
- color: #fff;
153
- font-size: 18px;
154
- cursor: pointer;
155
- transition: transform 0.2s;
156
- display: flex;
157
- align-items: center;
158
- justify-content: center;
159
- padding: 0;
160
- }
161
- .ai-theme-minimal .ai-input__send:hover:not(:disabled),
162
- [data-theme='minimal'] .ai-input__send:hover:not(:disabled) {
163
- transform: scale(1.05);
164
- }
165
- .ai-theme-minimal .ai-input__send:disabled,
166
- [data-theme='minimal'] .ai-input__send:disabled {
167
- opacity: 0.4;
168
- cursor: not-allowed;
169
- }
170
-
171
- /* Typing */
172
- .ai-theme-minimal .ai-typing-indicator,
173
- [data-theme='minimal'] .ai-typing-indicator {
174
- display: flex;
175
- gap: 4px;
176
- padding: 12px 16px;
177
- background: var(--ai-message-ai-bg);
178
- border-radius: 18px;
179
- align-self: flex-start;
180
- width: fit-content;
181
- }
182
- .ai-theme-minimal .ai-typing-indicator__dot,
183
- [data-theme='minimal'] .ai-typing-indicator__dot {
184
- width: 6px;
185
- height: 6px;
186
- background: var(--ai-text-secondary);
187
- border-radius: 50%;
188
- animation: ai-typing-bounce 1.4s infinite;
189
- }
190
- .ai-theme-minimal .ai-typing-indicator__dot:nth-child(2),
191
- [data-theme='minimal'] .ai-typing-indicator__dot:nth-child(2) { animation-delay: 0.2s; }
192
- .ai-theme-minimal .ai-typing-indicator__dot:nth-child(3),
193
- [data-theme='minimal'] .ai-typing-indicator__dot:nth-child(3) { animation-delay: 0.4s; }
194
-
195
- @keyframes ai-typing-bounce {
196
- 0%, 60%, 100% { transform: translateY(0); }
197
- 30% { transform: translateY(-8px); }
198
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * @generated-by AI: edenxpzhang
3
- * @generated-date 2026-05-13
4
- */
5
-
6
- import type { ThemeConfig } from '../types.js';
7
- import themeStyles from './theme.css?raw';
8
-
9
- export const neonTheme: ThemeConfig = {
10
- name: 'neon',
11
- variables: {
12
- '--ai-primary': '#7f5af0',
13
- '--ai-primary-hover': '#9f7aea',
14
- '--ai-primary-active': '#6b46c1',
15
- '--ai-bg-primary': '#1a1a2e',
16
- '--ai-bg-secondary': '#16213e',
17
- '--ai-bg-tertiary': '#0f3460',
18
- '--ai-bg-chat': '#0a0a0a',
19
- '--ai-text-primary': '#00ffff',
20
- '--ai-text-secondary': '#7f5af0',
21
- '--ai-text-tertiary': '#4a5568',
22
- '--ai-text-inverse': '#ffffff',
23
- '--ai-message-user-bg': 'linear-gradient(135deg, #7f5af0, #ff006e)',
24
- '--ai-message-user-text': '#ffffff',
25
- '--ai-message-ai-bg': '#16213e',
26
- '--ai-message-ai-text': '#00ffff',
27
- '--ai-message-border': '#0f3460',
28
- '--ai-input-bg': '#1a1a2e',
29
- '--ai-input-border': '#7f5af0',
30
- '--ai-input-focus-border': '#00ffff',
31
- '--ai-input-text': '#00ffff',
32
- '--ai-input-placeholder': '#7f5af0',
33
- '--ai-tool-call-bg': '#16213e',
34
- '--ai-tool-call-border': '#0f3460',
35
- '--ai-tool-call-success': '#00ff88',
36
- '--ai-tool-call-error': '#ff006e',
37
- '--ai-tool-call-running': '#7f5af0',
38
- '--ai-shadow-sm': '0 0 10px rgba(127, 90, 240, 0.3)',
39
- '--ai-shadow-md': '0 0 20px rgba(127, 90, 240, 0.3)',
40
- '--ai-shadow-lg': '0 0 30px rgba(120, 0, 255, 0.3), 0 0 60px rgba(0, 255, 255, 0.1)',
41
- '--ai-radius-sm': '4px',
42
- '--ai-radius-md': '8px',
43
- '--ai-radius-lg': '12px',
44
- '--ai-radius-xl': '16px',
45
- '--ai-spacing-xs': '4px',
46
- '--ai-spacing-sm': '8px',
47
- '--ai-spacing-md': '12px',
48
- '--ai-spacing-lg': '16px',
49
- '--ai-spacing-xl': '24px',
50
- },
51
- styles: themeStyles,
52
- };
@@ -1,233 +0,0 @@
1
- /**
2
- * @generated-by AI: edenxpzhang
3
- * @generated-date 2026-05-13
4
- *
5
- * Dark Neon —— 赛博朋克霓虹
6
- * 对齐 docs/chat-style-2-neon.html
7
- */
8
-
9
- :root[data-theme='neon'],
10
- .ai-theme-neon {
11
- --ai-primary: #7f5af0;
12
- --ai-primary-hover: #9f7aea;
13
- --ai-bg-primary: #1a1a2e;
14
- --ai-bg-secondary: #16213e;
15
- --ai-bg-tertiary: #0f3460;
16
- --ai-text-primary: #00ffff;
17
- --ai-text-secondary: #7f5af0;
18
- --ai-text-inverse: #ffffff;
19
- --ai-message-user-bg: linear-gradient(135deg, #7f5af0, #ff006e);
20
- --ai-message-user-text: #ffffff;
21
- --ai-message-ai-bg: #16213e;
22
- --ai-message-ai-text: #00ffff;
23
- }
24
-
25
- /* 全局背景 —— 让父容器或 body 也带上发光氛围 */
26
- .ai-theme-neon-host,
27
- body[data-theme='neon'] {
28
- background: #0a0a0a;
29
- }
30
- .ai-theme-neon-host::before,
31
- body[data-theme='neon']::before {
32
- content: '';
33
- position: fixed;
34
- inset: 0;
35
- background:
36
- radial-gradient(circle at 20% 50%, rgba(120, 0, 255, 0.15) 0%, transparent 50%),
37
- radial-gradient(circle at 80% 50%, rgba(0, 255, 255, 0.1) 0%, transparent 50%);
38
- pointer-events: none;
39
- z-index: 0;
40
- }
41
-
42
- /* 容器 */
43
- .ai-theme-neon .ai-chat,
44
- [data-theme='neon'] .ai-chat {
45
- background: var(--ai-bg-primary);
46
- border: 1px solid var(--ai-bg-secondary);
47
- border-radius: 16px;
48
- box-shadow:
49
- 0 0 30px rgba(120, 0, 255, 0.3),
50
- 0 0 60px rgba(0, 255, 255, 0.1);
51
- font-family: 'Courier New', monospace;
52
- position: relative;
53
- z-index: 1;
54
- }
55
-
56
- /* Header */
57
- .ai-theme-neon .ai-chat__header,
58
- [data-theme='neon'] .ai-chat__header {
59
- padding: 20px;
60
- background: linear-gradient(135deg, #16213e, #1a1a2e);
61
- border-bottom: 2px solid var(--ai-bg-tertiary);
62
- display: flex;
63
- align-items: center;
64
- gap: 12px;
65
- }
66
- .ai-theme-neon .ai-chat__avatar,
67
- [data-theme='neon'] .ai-chat__avatar {
68
- width: 8px;
69
- height: 8px;
70
- background: #00ff88;
71
- border-radius: 50%;
72
- box-shadow: 0 0 10px #00ff88;
73
- animation: ai-neon-pulse 2s infinite;
74
- }
75
- .ai-theme-neon .ai-chat__title,
76
- [data-theme='neon'] .ai-chat__title {
77
- font-size: 16px;
78
- font-weight: 600;
79
- color: #00ffff;
80
- text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
81
- }
82
- .ai-theme-neon .ai-chat__subtitle,
83
- [data-theme='neon'] .ai-chat__subtitle {
84
- font-size: 12px;
85
- color: #7f5af0;
86
- }
87
-
88
- @keyframes ai-neon-pulse {
89
- 0%, 100% { opacity: 1; }
90
- 50% { opacity: 0.5; }
91
- }
92
-
93
- /* Messages */
94
- .ai-theme-neon .ai-chat__messages,
95
- [data-theme='neon'] .ai-chat__messages {
96
- background: var(--ai-bg-primary);
97
- padding: 20px;
98
- gap: 16px;
99
- }
100
- .ai-theme-neon .ai-chat__messages::-webkit-scrollbar,
101
- [data-theme='neon'] .ai-chat__messages::-webkit-scrollbar { width: 6px; }
102
- .ai-theme-neon .ai-chat__messages::-webkit-scrollbar-thumb,
103
- [data-theme='neon'] .ai-chat__messages::-webkit-scrollbar-thumb {
104
- background: #7f5af0;
105
- border-radius: 3px;
106
- }
107
-
108
- /* Message */
109
- .ai-theme-neon .ai-message,
110
- [data-theme='neon'] .ai-message {
111
- max-width: 80%;
112
- }
113
- .ai-theme-neon .ai-message__avatar,
114
- [data-theme='neon'] .ai-message__avatar { display: none; }
115
- .ai-theme-neon .ai-message__content,
116
- [data-theme='neon'] .ai-message__content {
117
- padding: 14px 18px;
118
- border-radius: 12px;
119
- font-size: 14px;
120
- line-height: 1.6;
121
- position: relative;
122
- }
123
- .ai-theme-neon .ai-message--user .ai-message__content,
124
- [data-theme='neon'] .ai-message--user .ai-message__content {
125
- background: var(--ai-message-user-bg);
126
- color: var(--ai-message-user-text);
127
- border: 1px solid rgba(127, 90, 240, 0.5);
128
- box-shadow: 0 0 20px rgba(127, 90, 240, 0.3);
129
- }
130
- .ai-theme-neon .ai-message--assistant .ai-message__content,
131
- [data-theme='neon'] .ai-message--assistant .ai-message__content {
132
- background: var(--ai-message-ai-bg);
133
- color: var(--ai-message-ai-text);
134
- border: 1px solid rgba(0, 255, 255, 0.3);
135
- box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
136
- }
137
- .ai-theme-neon .ai-message--assistant .ai-message__content::before,
138
- [data-theme='neon'] .ai-message--assistant .ai-message__content::before {
139
- content: '⚡';
140
- position: absolute;
141
- left: -25px;
142
- top: 50%;
143
- transform: translateY(-50%);
144
- font-size: 16px;
145
- }
146
- .ai-theme-neon .ai-message__time,
147
- [data-theme='neon'] .ai-message__time { display: none; }
148
-
149
- /* Input */
150
- .ai-theme-neon .ai-input,
151
- [data-theme='neon'] .ai-input {
152
- padding: 16px 20px;
153
- background: var(--ai-bg-secondary);
154
- border-top: 2px solid var(--ai-bg-tertiary);
155
- }
156
- .ai-theme-neon .ai-input__wrapper,
157
- [data-theme='neon'] .ai-input__wrapper {
158
- display: flex;
159
- gap: 12px;
160
- align-items: center;
161
- }
162
- .ai-theme-neon .ai-input__textarea,
163
- [data-theme='neon'] .ai-input__textarea {
164
- flex: 1;
165
- padding: 12px 16px;
166
- background: var(--ai-bg-primary);
167
- border: 2px solid #7f5af0;
168
- border-radius: 12px;
169
- color: #00ffff;
170
- font-family: 'Courier New', monospace;
171
- font-size: 14px;
172
- outline: none;
173
- resize: none;
174
- min-height: 44px;
175
- max-height: 120px;
176
- transition: all 0.3s;
177
- }
178
- .ai-theme-neon .ai-input__textarea:focus,
179
- [data-theme='neon'] .ai-input__textarea:focus {
180
- border-color: #00ffff;
181
- box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
182
- }
183
- .ai-theme-neon .ai-input__textarea::placeholder,
184
- [data-theme='neon'] .ai-input__textarea::placeholder { color: #7f5af0; }
185
- .ai-theme-neon .ai-input__send,
186
- [data-theme='neon'] .ai-input__send {
187
- padding: 12px 24px;
188
- background: linear-gradient(135deg, #7f5af0, #ff006e);
189
- border: none;
190
- color: #fff;
191
- border-radius: 12px;
192
- cursor: pointer;
193
- font-weight: 600;
194
- font-size: 14px;
195
- text-transform: uppercase;
196
- letter-spacing: 1px;
197
- transition: all 0.3s;
198
- }
199
- .ai-theme-neon .ai-input__send:hover:not(:disabled),
200
- [data-theme='neon'] .ai-input__send:hover:not(:disabled) {
201
- box-shadow: 0 0 20px rgba(127, 90, 240, 0.5);
202
- transform: translateY(-2px);
203
- }
204
-
205
- /* Typing */
206
- .ai-theme-neon .ai-typing-indicator,
207
- [data-theme='neon'] .ai-typing-indicator {
208
- display: flex;
209
- gap: 6px;
210
- padding: 12px 18px;
211
- background: var(--ai-bg-secondary);
212
- border-radius: 12px;
213
- border: 1px solid rgba(0, 255, 255, 0.3);
214
- width: fit-content;
215
- }
216
- .ai-theme-neon .ai-typing-indicator__dot,
217
- [data-theme='neon'] .ai-typing-indicator__dot {
218
- width: 8px;
219
- height: 8px;
220
- background: #00ffff;
221
- border-radius: 50%;
222
- box-shadow: 0 0 6px #00ffff;
223
- animation: ai-typing-bounce 1.4s infinite;
224
- }
225
- .ai-theme-neon .ai-typing-indicator__dot:nth-child(2),
226
- [data-theme='neon'] .ai-typing-indicator__dot:nth-child(2) { animation-delay: 0.2s; }
227
- .ai-theme-neon .ai-typing-indicator__dot:nth-child(3),
228
- [data-theme='neon'] .ai-typing-indicator__dot:nth-child(3) { animation-delay: 0.4s; }
229
-
230
- @keyframes ai-typing-bounce {
231
- 0%, 60%, 100% { transform: translateY(0); }
232
- 30% { transform: translateY(-6px); }
233
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * @generated-by AI: edenxpzhang
3
- * @generated-date 2026-05-13
4
- */
5
-
6
- import type { ThemeConfig } from '../types.js';
7
- import themeStyles from './theme.css?raw';
8
-
9
- export const terminalTheme: ThemeConfig = {
10
- name: 'terminal',
11
- variables: {
12
- '--ai-primary': '#00ff00',
13
- '--ai-primary-hover': '#00ff00',
14
- '--ai-primary-active': '#00aa00',
15
- '--ai-bg-primary': '#0a0a0a',
16
- '--ai-bg-secondary': '#0c0c0c',
17
- '--ai-bg-tertiary': '#0a0a0a',
18
- '--ai-bg-chat': '#0a0a0a',
19
- '--ai-text-primary': '#00ff00',
20
- '--ai-text-secondary': '#00aa00',
21
- '--ai-text-tertiary': '#008000',
22
- '--ai-text-inverse': '#0a0a0a',
23
- '--ai-message-user-bg': 'transparent',
24
- '--ai-message-user-text': '#00ffff',
25
- '--ai-message-ai-bg': 'transparent',
26
- '--ai-message-ai-text': '#00ff00',
27
- '--ai-message-border': '#00ff00',
28
- '--ai-input-bg': 'transparent',
29
- '--ai-input-border': '#00ff00',
30
- '--ai-input-focus-border': '#00ff00',
31
- '--ai-input-text': '#00ff00',
32
- '--ai-input-placeholder': '#006600',
33
- '--ai-tool-call-bg': '#0c0c0c',
34
- '--ai-tool-call-border': '#00ff00',
35
- '--ai-tool-call-success': '#00ff00',
36
- '--ai-tool-call-error': '#ff0000',
37
- '--ai-tool-call-running': '#ffff00',
38
- '--ai-shadow-sm': '0 0 10px rgba(0, 255, 0, 0.2)',
39
- '--ai-shadow-md': '0 0 20px rgba(0, 255, 0, 0.3)',
40
- '--ai-shadow-lg': '0 0 30px rgba(0, 255, 0, 0.3), inset 0 0 30px rgba(0, 255, 0, 0.05)',
41
- '--ai-radius-sm': '0px',
42
- '--ai-radius-md': '0px',
43
- '--ai-radius-lg': '8px',
44
- '--ai-radius-xl': '8px',
45
- '--ai-spacing-xs': '4px',
46
- '--ai-spacing-sm': '8px',
47
- '--ai-spacing-md': '12px',
48
- '--ai-spacing-lg': '16px',
49
- '--ai-spacing-xl': '24px',
50
- },
51
- styles: themeStyles,
52
- };