llmasaservice-ui 0.7.29 → 0.8.0

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/index.css CHANGED
@@ -1,432 +1,274 @@
1
1
  /* src/ChatPanel.css */
2
- .side-panel {
2
+ *,
3
+ *::before,
4
+ *::after {
5
+ box-sizing: border-box;
6
+ margin: 0;
7
+ padding: 0;
8
+ }
9
+ :root {
10
+ --spacing-small: 0.3rem;
11
+ --spacing-medium: 0.5rem;
12
+ --spacing-large: 1rem;
13
+ --border-radius: 10px;
14
+ --icon-size: 1.25rem;
15
+ --background-color: #fff;
16
+ --title-text-color: #555;
17
+ --title-background-color: #fff;
18
+ --title-divider-color: #eee;
19
+ --input-background-color: #eee;
20
+ --input-border-color: #ddd;
21
+ --input-text-color: #555;
22
+ --button-background-color: #eee;
23
+ --button-border-color: #ddd;
24
+ --button-text-color: #555;
25
+ --button-background-color-hover: #777;
26
+ --button-text-color-hover: #fff;
27
+ --button-drop-shadow: 2px 2px 4px rgba(0, 0, 0, 0.15);
28
+ --button-action-background-color: transparent;
29
+ --button-action-text-color: #999;
30
+ --prompt-background-color: #eeeeee;
31
+ --prompt-text-color: #000;
32
+ --response-background-color: #ffffff;
33
+ --response-text-color: #000;
34
+ --button-scroll-background-color: #777;
35
+ --button-scroll-text-color: #fff;
36
+ --button-scroll-background-color-hover: #999;
37
+ --table-border-color: #777;
38
+ --powered-by-text-color: #999;
39
+ }
40
+ .dark-theme {
41
+ --background-color: #1a1a1a;
42
+ --title-text-color: #e0e0e0;
43
+ --title-background-color: #1a1a1a;
44
+ --title-divider-color: #333;
45
+ --input-background-color: #2c2c2c;
46
+ --input-border-color: #444;
47
+ --input-text-color: #e0e0e0;
48
+ --button-background-color: #3a3a3a;
49
+ --button-border-color: #555;
50
+ --button-text-color: #e0e0e0;
51
+ --button-background-color-hover: #505050;
52
+ --button-text-color-hover: #fff;
53
+ --button-drop-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
54
+ --button-action-background-color: transparent;
55
+ --button-action-text-color: #bbb;
56
+ --prompt-background-color: #333333;
57
+ --prompt-text-color: #ffffff;
58
+ --response-background-color: #1a1a1a;
59
+ --response-text-color: #e0e0e0;
60
+ --button-scroll-background-color: #505050;
61
+ --button-scroll-text-color: #fff;
62
+ --button-scroll-background-color-hover: #606060;
63
+ --table-border-color: #444;
64
+ }
65
+ .llm-panel {
3
66
  font-family:
4
- "Roboto",
5
- Arial,
6
- Helvetica,
67
+ "Inter",
68
+ system-ui,
69
+ -apple-system,
70
+ "Segoe UI",
71
+ Roboto,
7
72
  sans-serif;
8
- font-size: small;
9
- color: #1a1a1a;
10
- background-color: #ffffff;
73
+ font-size: 0.875rem;
74
+ background-color: var(--background-color);
11
75
  display: flex;
12
76
  flex-direction: column;
77
+ position: relative;
78
+ padding: var(--spacing-medium);
13
79
  }
14
- .side-panel .title {
15
- font-size: 1.5rem;
16
- font-weight: bold;
17
- padding: 0.5rem 0.75rem;
18
- margin-bottom: 0.75rem;
19
- border-bottom: 1px solid #e5e7eb;
80
+ .llm-panel .title {
81
+ font-size: 1rem;
82
+ padding: var(--spacing-medium);
83
+ border-bottom: 0.5px solid var(--title-divider-color);
20
84
  text-align: center;
21
- color: #007bff;
85
+ color: var(--title-text-color);
86
+ background-color: var(--title-background-color);
22
87
  }
23
- .side-panel .input-container {
88
+ .llm-panel .input-container {
24
89
  display: flex;
25
90
  flex-direction: row;
26
91
  align-items: center;
27
- margin-top: 5px;
92
+ margin-top: var(--spacing-small);
28
93
  }
29
- .side-panel textarea {
94
+ .llm-panel textarea {
30
95
  flex: 1;
31
- padding: 10px;
32
- margin-right: 10px;
33
- border-radius: 8px;
34
- height: 50px;
35
- min-height: 50px;
96
+ color: var(--input-text-color);
97
+ margin: 0 var(--spacing-small);
98
+ padding: var(--spacing-medium);
99
+ border-radius: var(--border-radius);
100
+ height: 3rem;
101
+ min-height: 3rem;
36
102
  resize: vertical;
37
- border: 1px solid #ddd;
38
- color: #333;
39
- background-color: #fff;
40
- }
41
- .side-panel .send-button {
42
- background-color: lightblue;
43
- color: #0056b3;
103
+ background-color: var(--input-background-color);
104
+ border: 1px solid var(--input-border-color);
105
+ }
106
+ .llm-panel textarea:focus,
107
+ .llm-panel input:focus {
108
+ outline: none;
109
+ border: 2px solid var(--button-background-color-hover);
110
+ box-shadow: 0 0 5px var(--button-background-color-hover);
111
+ }
112
+ .llm-panel .send-button {
113
+ margin-right: var(--spacing-small);
114
+ background-color: var(--button-background-color);
115
+ color: var(--button-text-color);
44
116
  border: none;
45
- border-radius: 50%;
117
+ border-radius: var(--border-radius);
46
118
  cursor: pointer;
47
- height: 40px;
48
- width: 40px;
49
- box-shadow: 0 4px 6px rgba(0, 123, 255, 0.3);
50
- transition: background-color 0.3s ease, transform 0.3s ease;
119
+ height: 2.5rem;
120
+ width: 2.5rem;
121
+ transition: background-color 0.3s ease;
51
122
  }
52
- .side-panel .send-button:hover {
53
- background-color: #0056b3;
54
- transform: scale(1.1);
55
- color: white;
123
+ .llm-panel .send-button:hover {
124
+ background-color: var(--button-background-color-hover);
125
+ color: var(--button-text-color-hover);
56
126
  }
57
- .side-panel .history-entry {
58
- background-color: white;
59
- padding-bottom: 10px;
60
- border-radius: 10px;
127
+ .llm-panel .history-entry {
128
+ background-color: var(--background-color);
129
+ padding-bottom: var(--spacing-medium);
130
+ border-radius: var(--border-radius);
131
+ margin-bottom: var(--spacing-medium);
61
132
  }
62
- .side-panel .responseArea {
133
+ .llm-panel .responseArea {
63
134
  flex: 1;
64
- background-color: white;
65
- border-radius: 10px;
135
+ background-color: var(--background-color);
136
+ border-radius: var(--border-radius);
66
137
  overflow-y: auto;
67
- box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
138
+ padding: var(--spacing-medium);
139
+ margin-top: var(--spacing-medium);
68
140
  }
69
- .side-panel .prompt {
141
+ .llm-panel .prompt {
70
142
  align-self: flex-start;
71
- padding: 10px;
72
- border-top-left-radius: 15px;
73
- border-top-right-radius: 15px;
74
- border-bottom-right-radius: 15px;
75
- margin-right: 5%;
76
- margin-bottom: 10px;
77
- max-width: 90%;
78
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
143
+ padding: var(--spacing-medium);
144
+ border-radius: 25px;
145
+ margin-left: 5%;
146
+ max-width: 100%;
79
147
  white-space: pre-wrap;
80
- background-color: #e0f7fa;
81
- color: #000;
148
+ background-color: var(--prompt-background-color);
149
+ color: var(--prompt-text-color);
150
+ margin-top: var(--spacing-small);
82
151
  }
83
- .side-panel .response {
152
+ .llm-panel .response {
84
153
  align-self: flex-end;
85
- padding: 10px;
86
- border-top-left-radius: 15px;
87
- border-top-right-radius: 15px;
88
- border-bottom-left-radius: 15px;
89
- margin-left: 5%;
90
- max-width: 90%;
91
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
92
- background: #e0f7fa;
93
- color: #000;
94
- }
95
- .side-panel .copy-button {
96
- font-size: 12px;
97
- border: 0;
98
- background-color: transparent;
99
- color: #007bff;
100
- cursor: pointer;
101
- width: 30px;
102
- height: 30px;
103
- display: flex;
104
- justify-content: center;
105
- align-items: center;
106
- }
107
- .side-panel .thumbs-button {
108
- font-size: 12px;
109
- border: 0;
110
- background-color: transparent;
111
- color: #007bff;
154
+ padding: var(--spacing-small);
155
+ background-color: var(--response-background-color);
156
+ color: var(--response-text-color);
157
+ margin-top: var(--spacing-small);
158
+ }
159
+ .llm-panel .copy-button,
160
+ .llm-panel .thumbs-button {
161
+ font-size: 0.75rem;
162
+ border: none;
163
+ background-color: var(--button-action-background-color);
164
+ color: var(--button-action-text-color);
112
165
  cursor: pointer;
113
- width: 30px;
114
- height: 30px;
166
+ width: 1rem;
167
+ height: 1rem;
115
168
  display: flex;
116
169
  justify-content: center;
117
170
  align-items: center;
171
+ margin: var(--spacing-medium);
118
172
  }
119
- .side-panel .copy-button:hover,
120
- .side-panel .thumbs-button:hover {
121
- color: white;
122
- border-radius: 50%;
123
- background-color: #0056b3;
124
- }
125
- .side-panel .icon-svg {
126
- width: 20px;
127
- height: 20px;
173
+ .llm-panel .copy-button:hover,
174
+ .llm-panel .thumbs-button:hover {
175
+ color: var(--button-text-color-hover);
176
+ background-color: var(--button-background-color-hover);
177
+ box-shadow: 0 0 5px var(--button-background-color-hover);
128
178
  }
129
- .side-panel .icon-svg-large {
130
- margin-right: 4px;
131
- margin-top: 5px;
179
+ .llm-panel .icon-svg,
180
+ .llm-panel .icon-svg-large {
181
+ width: var(--icon-size);
182
+ height: var(--icon-size);
183
+ margin: 0;
132
184
  }
133
- .side-panel .button-container {
185
+ .llm-panel .button-container {
134
186
  display: flex;
135
- margin-top: 10px;
187
+ margin-top: var(--spacing-medium);
136
188
  }
137
- .side-panel .button-container-actions {
189
+ .llm-panel .button-container-actions {
138
190
  display: flex;
139
- margin-top: 10px;
140
191
  justify-content: space-between;
141
- gap: 5px;
192
+ gap: 0;
142
193
  }
143
- .side-panel .scroll-button {
194
+ .llm-panel .scroll-button {
144
195
  position: absolute;
145
196
  left: 50%;
146
197
  transform: translateX(-50%);
147
198
  bottom: 5%;
148
- background-color: #007bff;
149
- color: white;
199
+ background-color: var(--button-scroll-background-color);
200
+ color: var(--button-scroll-text-color);
150
201
  border: none;
151
202
  border-radius: 50%;
152
- width: 40px;
153
- height: 40px;
203
+ height: 2.5rem;
204
+ width: 2.5rem;
154
205
  display: flex;
155
206
  align-items: center;
156
207
  justify-content: center;
157
208
  cursor: pointer;
158
209
  z-index: 10;
159
210
  }
160
- .side-panel .scroll-button:hover {
161
- background-color: #0056b3;
211
+ .llm-panel .scroll-button:hover {
212
+ background-color: var(--button-scroll-background-color-hover);
162
213
  }
163
- .side-panel table {
214
+ .llm-panel table {
164
215
  border-collapse: collapse;
165
216
  margin-bottom: 1em;
166
- border: 1px solid #777;
217
+ border: 1px solid var(--table-border-color);
167
218
  }
168
- .side-panel th,
169
- .side-panel td {
170
- border: 1px solid #777;
219
+ .llm-panel th,
220
+ .llm-panel td {
221
+ border: 1px solid var(--table-border-color);
171
222
  padding: 8px;
172
223
  }
173
- .side-panel .save-button {
224
+ .llm-panel .save-button {
174
225
  flex: 1;
175
- background-color: lightblue;
176
- color: #0056b3;
177
- border: none;
178
- border-radius: 2px;
226
+ background-color: var(--button-background-color);
227
+ color: var(--button-text-color);
228
+ border: 1px solid var(--button-border-color);
229
+ border-radius: var(--border-radius);
179
230
  cursor: pointer;
180
231
  padding: 5px 10px;
181
232
  font-size: 0.8em;
182
- margin-top: 5px;
233
+ margin: var(--spacing-small);
183
234
  transition: background-color 0.3s ease, transform 0.3s ease;
235
+ box-shadow: var(--button-drop-shadow);
184
236
  }
185
- .side-panel .save-button:hover {
186
- background-color: #0056b3;
187
- color: white;
188
- }
189
- .suggestions-container {
190
- display: flex;
191
- flex-wrap: wrap;
237
+ .llm-panel .save-button:hover {
238
+ background-color: var(--button-background-color-hover);
239
+ color: var(--button-text-color-hover);
192
240
  }
193
- .side-panel .suggestion-button {
194
- background-color: lightblue;
195
- color: #0056b3;
196
- border: none;
197
- border-radius: 5px;
241
+ .llm-panel .suggestion-button {
242
+ background-color: var(--button-background-color);
243
+ color: var(--button-text-color);
244
+ border: 1px solid var(--button-border-color);
245
+ border-radius: var(--border-radius);
198
246
  padding: 5px 10px;
199
247
  font-size: 0.8em;
200
248
  cursor: pointer;
201
- margin: 5px;
249
+ margin: var(--spacing-small);
250
+ box-shadow: var(--button-drop-shadow);
202
251
  }
203
- .suggestion-button:hover {
204
- background-color: #0056b3;
205
- color: white;
252
+ .llm-panel .suggestion-button:hover {
253
+ background-color: var(--button-background-color-hover);
254
+ color: var(--button-text-color-hover);
206
255
  }
207
- .suggestion-button:disabled {
256
+ .llm-panel .suggestion-button:disabled {
208
257
  background-color: #cccccc;
209
258
  color: #666666;
210
259
  cursor: not-allowed;
211
260
  }
212
- .side-panel-dark {
213
- font-family:
214
- "Roboto",
215
- Arial,
216
- Helvetica,
217
- sans-serif;
218
- font-size: small;
219
- color: #eee;
220
- background-color: #424242;
221
- display: flex;
222
- flex-direction: column;
223
- justify-content: space-between;
224
- padding: 10px;
225
- box-shadow: 5px 0 5px rgba(0, 0, 0, 0.1);
226
- max-height: 90%;
227
- }
228
- .side-panel-dark .title {
229
- font-size: 24px;
230
- font-weight: bold;
231
- margin-bottom: 10px;
232
- text-align: center;
233
- }
234
- .side-panel-dark .input-container {
235
- display: flex;
236
- flex-direction: row;
237
- align-items: center;
238
- margin-top: 5px;
239
- }
240
- .side-panel-dark textarea {
241
- flex: 1;
242
- padding: 10px;
243
- margin-right: 10px;
244
- border-radius: 8px;
245
- height: 50px;
246
- min-height: 50px;
247
- resize: vertical;
248
- color: #333;
249
- border: 1px solid #ddd;
250
- }
251
- .side-panel-dark .send-button {
252
- background-color: #424242;
253
- color: white;
254
- border: none;
255
- border-radius: 50%;
256
- cursor: pointer;
257
- height: 40px;
258
- width: 40px;
259
- display: flex;
260
- justify-content: center;
261
- align-items: center;
262
- box-shadow: 0 4px 6px rgba(0, 123, 255, 0.3);
263
- transition: background-color 0.3s ease, transform 0.3s ease;
264
- }
265
- .side-panel-dark .send-button:hover {
266
- background-color: #0056b3;
267
- transform: scale(1.1);
268
- }
269
- .side-panel-dark .history-entry {
270
- background-color: #424242;
271
- padding-bottom: 10px;
272
- border-radius: 10px;
273
- }
274
- .side-panel-dark .responseArea {
275
- flex: 1;
276
- background-color: #424242;
277
- border-radius: 10px;
278
- overflow-y: auto;
279
- box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
280
- }
281
- .side-panel-dark .prompt {
282
- align-self: flex-start;
283
- background-color: #303030;
284
- padding: 10px;
285
- border-top-left-radius: 15px;
286
- border-top-right-radius: 15px;
287
- border-bottom-right-radius: 15px;
288
- margin-right: 5%;
289
- margin-bottom: 10px;
290
- max-width: 90%;
291
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
292
- white-space: pre-wrap;
293
- }
294
- .side-panel-dark .response {
295
- align-self: flex-end;
296
- padding: 10px;
297
- border-top-left-radius: 15px;
298
- border-top-right-radius: 15px;
299
- border-bottom-left-radius: 15px;
300
- margin-left: 5%;
301
- max-width: 90%;
302
- background-color: #3a3737;
303
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
304
- }
305
- .side-panel-dark .copy-button {
306
- font-size: 12px;
307
- border: 0;
308
- background-color: transparent;
309
- color: #aaa;
310
- cursor: pointer;
311
- width: 30px;
312
- height: 30px;
313
- display: flex;
314
- justify-content: center;
315
- align-items: center;
316
- }
317
- .side-panel-dark .icon-svg {
318
- width: 20px;
319
- height: 20px;
320
- }
321
- .side-panel-dark .icon-svg-large {
322
- margin-right: 4px;
323
- margin-top: 5px;
324
- }
325
- .side-panel-dark .copy-button:hover,
326
- .side-panel-dark .thumbs-button:hover {
327
- color: #0056b3;
328
- border-radius: 50%;
329
- background-color: #e2e6ea;
330
- }
331
- .side-panel-dark .thumbs-button {
332
- font-size: 12px;
333
- border: 0;
334
- background-color: transparent;
335
- color: #aaa;
336
- cursor: pointer;
337
- width: 30px;
338
- height: 30px;
339
- display: flex;
340
- justify-content: center;
341
- align-items: center;
342
- }
343
- .side-panel-dark .button-container {
344
- display: flex;
345
- margin-top: 10px;
346
- }
347
- .side-panel-dark .button-container-actions {
348
- display: flex;
349
- margin-top: 10px;
350
- justify-content: space-between;
351
- gap: 5px;
352
- }
353
- .side-panel-dark .scroll-button {
354
- position: absolute;
355
- left: 50%;
356
- transform: translateX(-50%);
357
- bottom: 5%;
358
- background-color: #007bff;
359
- color: white;
360
- border: none;
361
- border-radius: 50%;
362
- width: 40px;
363
- height: 40px;
364
- display: flex;
365
- align-items: center;
366
- justify-content: center;
367
- cursor: pointer;
368
- z-index: 10;
369
- }
370
- .side-panel-dark .scroll-button:hover {
371
- background-color: #0056b3;
372
- }
373
- .side-panel-dark table {
374
- border-collapse: collapse;
375
- margin-bottom: 1em;
376
- border: 1px solid #ddd;
377
- }
378
- .side-panel-dark th,
379
- .side-panel-dark td {
380
- border: 1px solid #ddd;
381
- padding: 8px;
382
- }
383
- .side-panel-dark a {
384
- color: #ddd;
385
- }
386
- .side-panel-dark a:hover {
387
- color: #fff;
388
- }
389
- .side-panel-dark .save-button {
390
- flex: 1;
391
- background-color: #3a3737;
392
- color: white;
393
- border: none;
394
- border-radius: 2px;
395
- cursor: pointer;
396
- padding: 5px 10px;
397
- font-size: 0.8em;
398
- margin-top: 5px;
399
- }
400
- .side-panel-dark .save-button:hover {
401
- background-color: #0056b3;
402
- color: white;
403
- }
404
- .side-panel-dark .suggestion-button {
405
- background-color: #0056b3;
406
- color: white;
407
- border: none;
408
- border-radius: 5px;
409
- padding: 5px 10px;
410
- font-size: 0.8em;
411
- cursor: pointer;
412
- margin: 5px;
413
- }
414
- .side-panel-dark .suggestion-button:hover {
415
- background-color: lightblue;
416
- color: black;
417
- }
418
261
  .powered-by {
419
- margin-top: 3px;
420
262
  display: flex;
421
263
  justify-content: center;
422
264
  align-items: center;
423
- color: lightgrey;
265
+ color: var(--powered-by-text-color);
424
266
  font-size: 0.8em;
425
267
  height: 100%;
426
268
  text-align: center;
427
269
  }
428
270
  .powered-by a {
429
- color: lightgrey;
271
+ color: var(--powered-by-text-color);
430
272
  text-decoration: underline;
431
273
  }
432
274
  .modal-overlay {
@@ -475,5 +317,5 @@
475
317
  .error-message {
476
318
  color: red;
477
319
  font-size: 0.8em;
478
- margin-top: 5px;
320
+ margin-top: var(--spacing-small);
479
321
  }
package/dist/index.js CHANGED
@@ -772,7 +772,7 @@ var ChatPanel = ({
772
772
  "div",
773
773
  {
774
774
  style: { width, height },
775
- className: "side-panel" + (theme === "light" ? "" : "-dark")
775
+ className: "llm-panel" + (theme === "light" ? "" : " dark-theme")
776
776
  },
777
777
  title && title !== "" ? /* @__PURE__ */ import_react3.default.createElement("div", { className: "title" }, title) : null,
778
778
  /* @__PURE__ */ import_react3.default.createElement("div", { className: "responseArea", ref: responseAreaRef }, initialMessage && initialMessage !== "" ? /* @__PURE__ */ import_react3.default.createElement("div", { className: "history-entry" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "response" }, /* @__PURE__ */ import_react3.default.createElement(
package/dist/index.mjs CHANGED
@@ -738,7 +738,7 @@ var ChatPanel = ({
738
738
  "div",
739
739
  {
740
740
  style: { width, height },
741
- className: "side-panel" + (theme === "light" ? "" : "-dark")
741
+ className: "llm-panel" + (theme === "light" ? "" : " dark-theme")
742
742
  },
743
743
  title && title !== "" ? /* @__PURE__ */ React3.createElement("div", { className: "title" }, title) : null,
744
744
  /* @__PURE__ */ React3.createElement("div", { className: "responseArea", ref: responseAreaRef }, initialMessage && initialMessage !== "" ? /* @__PURE__ */ React3.createElement("div", { className: "history-entry" }, /* @__PURE__ */ React3.createElement("div", { className: "response" }, /* @__PURE__ */ React3.createElement(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llmasaservice-ui",
3
- "version": "0.7.29",
3
+ "version": "0.8.0",
4
4
  "description": "Prebuilt UI components for LLMAsAService.io",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",