@ouraihub/aether-ui 0.1.1 → 0.1.2

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 (34) hide show
  1. package/package.json +2 -2
  2. package/src/chat/ChatComposer.svelte +47 -5
  3. package/src/chat/ChatPanel.css +380 -380
  4. package/src/chat/ChatPanel.svelte +48 -51
  5. package/src/chat/ChatPanelComposer.svelte +44 -25
  6. package/src/chat/ChatPanelHeader.svelte +1 -25
  7. package/src/chat/ChatPanelMode.svelte +3 -3
  8. package/src/chat/ChatPanelToolbar.svelte +14 -3
  9. package/src/chat/ContextUsageStatus.svelte +97 -0
  10. package/src/chat/ModelEffortPicker.svelte +326 -0
  11. package/src/chat/PickerEffort.svelte +71 -0
  12. package/src/chat/ReasoningControl.svelte +10 -112
  13. package/src/chat/ReasoningSlider.svelte +174 -0
  14. package/src/chat/SkillPicker.svelte +1 -0
  15. package/src/chat/UsageControl.svelte +12 -5
  16. package/src/chat/UsageDetails.svelte +19 -3
  17. package/src/chat/chat-attachments.svelte.ts +9 -5
  18. package/src/chat/chat-panel-models.svelte.ts +97 -0
  19. package/src/chat/chat-panel-props.ts +6 -0
  20. package/src/chat/context-status.ts +101 -0
  21. package/src/chat/icons/LICENSE-REMIX +186 -0
  22. package/src/chat/icons/LICENSE-SIMPLE-ICONS +30 -0
  23. package/src/chat/icons/PathIcon.svelte +8 -0
  24. package/src/chat/icons/effort-icons.ts +65 -0
  25. package/src/chat/icons/status-icons.ts +105 -0
  26. package/src/chat/index.ts +20 -0
  27. package/src/chat/model-effort.ts +177 -0
  28. package/src/chat/test-support/chat-fixture.ts +16 -0
  29. package/src/i18n/en-chat.d.ts +1 -0
  30. package/src/i18n/en-chat.js +201 -0
  31. package/src/i18n/en.ts +24 -174
  32. package/src/i18n/zh-CN-chat.d.ts +1 -0
  33. package/src/i18n/zh-CN-chat.js +190 -0
  34. package/src/i18n/zh-CN.ts +2 -158
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ouraihub/aether-ui",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "license": "LGPL-3.0-only",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,7 +30,7 @@
30
30
  "svelte": "^5.57.1"
31
31
  },
32
32
  "dependencies": {
33
- "@ouraihub/aether-contracts": "0.1.1",
33
+ "@ouraihub/aether-contracts": "0.1.2",
34
34
  "@internationalized/date": "3.12.4",
35
35
  "@lucide/svelte": "0.561.0",
36
36
  "@tauri-apps/api": "2.11.1",
@@ -195,6 +195,8 @@
195
195
  /* Hallmark · component: integrated composer · theme: host semantic tokens */
196
196
  .composer-shell {
197
197
  min-width: 0;
198
+ container-type: inline-size;
199
+ container-name: composer;
198
200
  }
199
201
  .composer {
200
202
  box-sizing: border-box;
@@ -218,10 +220,12 @@
218
220
  top: 0.25rem;
219
221
  right: 0.25rem;
220
222
  }
221
- .expand-control :global(button),
222
- .composer-tools :global(button) {
223
- min-width: 44px;
224
- min-height: 44px;
223
+ @media (pointer: coarse) {
224
+ .expand-control :global(button),
225
+ .composer-tools :global(button) {
226
+ min-width: 44px;
227
+ min-height: 44px;
228
+ }
225
229
  }
226
230
  .composer-top {
227
231
  padding-right: 2.75rem;
@@ -260,17 +264,55 @@
260
264
  .tool-group {
261
265
  display: flex;
262
266
  align-items: center;
263
- flex-wrap: wrap;
267
+ flex-wrap: nowrap;
264
268
  gap: 0.25rem;
265
269
  min-width: 0;
266
270
  }
267
271
  .composer-tools {
268
272
  justify-content: space-between;
269
273
  gap: 0.5rem;
274
+ overflow: visible;
275
+ }
276
+ /* Tools then the model pill on the left; only the pill shrinks. Usage and send stay whole. */
277
+ .tool-group:first-child {
278
+ flex: 1 1 auto;
279
+ }
280
+ .tool-group > :global(:not([data-composer-model])) {
281
+ flex-shrink: 0;
270
282
  }
271
283
  .send-tools {
284
+ flex: 0 0 auto;
285
+ justify-content: flex-end;
272
286
  margin-left: auto;
273
287
  }
288
+ @container composer (max-width: 560px) {
289
+ .composer-tools :global([data-composer-mode-label]),
290
+ .composer-tools :global([data-composer-model-detail]),
291
+ .composer-tools :global([data-composer-capacity]) {
292
+ display: none;
293
+ }
294
+ .composer-tools :global([data-composer-model]) {
295
+ flex: 0 1 auto;
296
+ min-width: 4.5rem;
297
+ max-width: 9rem;
298
+ padding-inline: 2px;
299
+ }
300
+ .composer-tools {
301
+ gap: 2px;
302
+ }
303
+ }
304
+ @container composer (max-width: 400px) {
305
+ .composer-tools :global([data-composer-model]) {
306
+ max-width: 6rem;
307
+ }
308
+ .composer-tools :global([data-slot='select-trigger']) {
309
+ max-width: 5.5rem;
310
+ overflow: hidden;
311
+ }
312
+ .composer-tools :global([data-composer-model] [data-icon='inline-end']) {
313
+ display: none;
314
+ }
315
+ }
274
316
  .composer-override {
275
317
  min-width: 0;
276
318
  }