@amirjalili1374/ui-kit 1.10.13 → 1.10.15

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/README.md CHANGED
@@ -20,7 +20,7 @@ npm install @amirjalili1374/ui-kit
20
20
  ```
21
21
 
22
22
  This repository is developed and validated with Node.js `^20.19.0 || >=22.12.0`
23
- and npm 11. The committed `package-lock.json` is the canonical lockfile.
23
+ and Bun 1.4.0. The committed `bun.lock` is the canonical lockfile.
24
24
 
25
25
  ## Peer Dependencies
26
26
 
@@ -327,7 +327,7 @@ See [Form presentation components](docs/components/FORM_PRESENTATION.md) for con
327
327
  To build the library for distribution:
328
328
 
329
329
  ```bash
330
- npm run build:lib
330
+ bun run build:lib
331
331
  ```
332
332
 
333
333
  This runs fail-closed TypeScript checking, builds ESM and CommonJS outputs,
@@ -339,8 +339,8 @@ Output files will be in the `dist` directory:
339
339
  - `style.css` - Compiled CSS
340
340
  - `index.d.ts` - TypeScript declarations
341
341
 
342
- The normal `npm run build` command builds the demo application. Use
343
- `npm run build:lib` for the publishable package.
342
+ The normal `bun run build` command builds the demo application. Use
343
+ `bun run build:lib` for the publishable package.
344
344
 
345
345
  ### Optional Excel export
346
346
 
@@ -359,41 +359,41 @@ when client-side export is invoked.
359
359
  Before publishing, validate and inspect the packed package:
360
360
 
361
361
  ```bash
362
- npm ci
363
- npm run validate
362
+ bun install --frozen-lockfile
363
+ bun run validate
364
364
  npm pack --dry-run
365
365
  ```
366
366
 
367
367
  Publishing remains a manual, separately authorized operation. The `prepublishOnly`
368
- hook rebuilds the library, but does not replace `npm run validate`.
368
+ hook rebuilds the library, but does not replace `bun run validate`.
369
369
 
370
370
  ## Development
371
371
 
372
372
  ### Run Development Server
373
373
 
374
374
  ```bash
375
- npm run dev
375
+ bun run dev
376
376
  ```
377
377
 
378
378
  ### Type Checking
379
379
 
380
380
  ```bash
381
- npm run typecheck
381
+ bun run typecheck
382
382
  ```
383
383
 
384
384
  ### Linting
385
385
 
386
386
  ```bash
387
- npm run lint:check # read-only
388
- npm run lint:fix # explicit auto-fix
387
+ bun run lint:check # read-only
388
+ bun run lint:fix # explicit auto-fix
389
389
  ```
390
390
 
391
391
  ### Tests and package consumer validation
392
392
 
393
393
  ```bash
394
394
  npm test
395
- npm run test:coverage
396
- npm run test:consumer
395
+ bun run test:coverage
396
+ bun run test:consumer
397
397
  ```
398
398
 
399
399
  `test:consumer` packs the built library, installs the tarball into a fresh temporary
@@ -404,7 +404,7 @@ table selection/helpers, and initial public-component accessibility contracts.
404
404
  ### Formatting
405
405
 
406
406
  ```bash
407
- npm run format
407
+ bun run format
408
408
  ```
409
409
 
410
410
  ## Updating the Library
@@ -413,9 +413,9 @@ To update and republish the library:
413
413
 
414
414
  1. Make your changes to components, composables, or utilities
415
415
  2. Update the version in `package.json`
416
- 3. Build the library: `npm run build:lib`
416
+ 3. Build the library: `bun run build:lib`
417
417
  4. Test locally if possible
418
- 5. Run `npm run validate`
418
+ 5. Run `bun run validate`
419
419
  6. Inspect `npm pack --dry-run`
420
420
  7. Publish only through the separately authorized release process
421
421
 
@@ -423,6 +423,39 @@ For npm scoped packages, make sure you have the correct permissions.
423
423
 
424
424
  ## What's Included vs Excluded
425
425
 
426
+ ### Chat primitives
427
+
428
+ The package exposes transport- and store-agnostic building blocks for chat UIs:
429
+
430
+ - `UiChatShell`
431
+ - `UiChatMessage`
432
+ - `UiChatMarkdown`
433
+ - `UiChatComposer`
434
+ - `UiChatPromptNavigator`
435
+
436
+ The consuming application remains responsible for sessions, REST/SSE/WebSocket
437
+ transport, mention data loading, routing, persistence, and business-specific
438
+ labels. Components communicate through props, slots, and events only.
439
+
440
+ ```vue
441
+ <UiChatShell :jump-visible="showJump" @jump-to-bottom="scrollToBottom">
442
+ <UiChatMessage
443
+ v-for="message in messages"
444
+ :key="message.id"
445
+ :message="message"
446
+ @edit="editMessage"
447
+ />
448
+
449
+ <template #navigator>
450
+ <UiChatPromptNavigator :prompts="prompts" :active-index="activePrompt" @select="scrollToPrompt" />
451
+ </template>
452
+
453
+ <template #composer>
454
+ <UiChatComposer v-model="input" :streaming="streaming" @send="send" @stop="stop" />
455
+ </template>
456
+ </UiChatShell>
457
+ ```
458
+
426
459
  ### ✅ Included (Generic & Reusable)
427
460
  - Global UI components
428
461
  - Generic composables (data table, selection, etc.)
@@ -0,0 +1,64 @@
1
+ import type { UiChatMention, UiChatMentionCategory, UiChatMentionOption } from './types';
2
+ type __VLS_Props = {
3
+ modelValue: string;
4
+ disabled?: boolean;
5
+ streaming?: boolean;
6
+ mentionOpen?: boolean;
7
+ mentionLoading?: boolean;
8
+ mentionCategory?: string;
9
+ mentionQuery?: string;
10
+ categories?: UiChatMentionCategory[];
11
+ options?: UiChatMentionOption[];
12
+ mentions?: UiChatMention[];
13
+ placeholder?: string;
14
+ sendLabel?: string;
15
+ stopLabel?: string;
16
+ emptyLabel?: string;
17
+ referenceLabel?: string;
18
+ status?: string;
19
+ hint?: string;
20
+ };
21
+ declare var __VLS_19: {};
22
+ type __VLS_Slots = {} & {
23
+ leading?: (props: typeof __VLS_19) => any;
24
+ };
25
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
26
+ stop: () => any;
27
+ "update:modelValue": (value: string) => any;
28
+ send: (value: string) => any;
29
+ "select-category": (category: UiChatMentionCategory) => any;
30
+ "select-option": (option: UiChatMentionOption) => any;
31
+ "remove-mention": (index: number) => any;
32
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
33
+ onStop?: () => any;
34
+ "onUpdate:modelValue"?: (value: string) => any;
35
+ onSend?: (value: string) => any;
36
+ "onSelect-category"?: (category: UiChatMentionCategory) => any;
37
+ "onSelect-option"?: (option: UiChatMentionOption) => any;
38
+ "onRemove-mention"?: (index: number) => any;
39
+ }>, {
40
+ disabled: boolean;
41
+ options: UiChatMentionOption[];
42
+ placeholder: string;
43
+ hint: string;
44
+ status: string;
45
+ streaming: boolean;
46
+ mentionOpen: boolean;
47
+ mentionLoading: boolean;
48
+ mentionCategory: string;
49
+ mentionQuery: string;
50
+ categories: UiChatMentionCategory[];
51
+ mentions: UiChatMention[];
52
+ sendLabel: string;
53
+ stopLabel: string;
54
+ emptyLabel: string;
55
+ referenceLabel: string;
56
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
57
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
58
+ declare const _default: typeof __VLS_export;
59
+ export default _default;
60
+ type __VLS_WithSlots<T, S> = T & {
61
+ new (): {
62
+ $slots: S;
63
+ };
64
+ };
@@ -0,0 +1,12 @@
1
+ import 'highlight.js/styles/github-dark.css';
2
+ type __VLS_Props = {
3
+ content: string;
4
+ copyLabel?: string;
5
+ copiedLabel?: string;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
8
+ copyLabel: string;
9
+ copiedLabel: string;
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,48 @@
1
+ import type { UiChatMessageModel } from './types';
2
+ type __VLS_Props = {
3
+ message: UiChatMessageModel;
4
+ editingDisabled?: boolean;
5
+ labels?: Partial<{
6
+ edit: string;
7
+ copy: string;
8
+ copied: string;
9
+ cancel: string;
10
+ save: string;
11
+ typing: string;
12
+ copyCode: string;
13
+ codeCopied: string;
14
+ }>;
15
+ };
16
+ declare var __VLS_1: {
17
+ message: UiChatMessageModel;
18
+ };
19
+ type __VLS_Slots = {} & {
20
+ avatar?: (props: typeof __VLS_1) => any;
21
+ };
22
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
23
+ edit: (message: UiChatMessageModel, content: string) => any;
24
+ copy: (message: UiChatMessageModel) => any;
25
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
26
+ onEdit?: (message: UiChatMessageModel, content: string) => any;
27
+ onCopy?: (message: UiChatMessageModel) => any;
28
+ }>, {
29
+ labels: Partial<{
30
+ edit: string;
31
+ copy: string;
32
+ copied: string;
33
+ cancel: string;
34
+ save: string;
35
+ typing: string;
36
+ copyCode: string;
37
+ codeCopied: string;
38
+ }>;
39
+ editingDisabled: boolean;
40
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
41
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
42
+ declare const _default: typeof __VLS_export;
43
+ export default _default;
44
+ type __VLS_WithSlots<T, S> = T & {
45
+ new (): {
46
+ $slots: S;
47
+ };
48
+ };
@@ -0,0 +1,19 @@
1
+ import type { UiChatPrompt } from './types';
2
+ type __VLS_Props = {
3
+ prompts: UiChatPrompt[];
4
+ activeIndex: number;
5
+ ariaLabel?: string;
6
+ previewLength?: number;
7
+ expandDelay?: number;
8
+ };
9
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ select: (index: number) => any;
11
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onSelect?: (index: number) => any;
13
+ }>, {
14
+ ariaLabel: string;
15
+ previewLength: number;
16
+ expandDelay: number;
17
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -0,0 +1,34 @@
1
+ type __VLS_Props = {
2
+ jumpVisible?: boolean;
3
+ jumpLabel?: string;
4
+ };
5
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_14: {};
6
+ type __VLS_Slots = {} & {
7
+ header?: (props: typeof __VLS_1) => any;
8
+ } & {
9
+ default?: (props: typeof __VLS_3) => any;
10
+ } & {
11
+ navigator?: (props: typeof __VLS_5) => any;
12
+ } & {
13
+ composer?: (props: typeof __VLS_14) => any;
14
+ };
15
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
16
+ viewport: import("vue").Ref<HTMLElement, HTMLElement>;
17
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
+ scroll: (event: Event) => any;
19
+ "jump-to-bottom": () => any;
20
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ onScroll?: (event: Event) => any;
22
+ "onJump-to-bottom"?: () => any;
23
+ }>, {
24
+ jumpVisible: boolean;
25
+ jumpLabel: string;
26
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
28
+ declare const _default: typeof __VLS_export;
29
+ export default _default;
30
+ type __VLS_WithSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -0,0 +1,28 @@
1
+ import type { Component } from 'vue';
2
+ export type UiChatRole = 'user' | 'assistant' | 'system';
3
+ export type UiChatMessageStatus = 'streaming' | 'completed' | 'failed';
4
+ export interface UiChatMessageModel {
5
+ id: string;
6
+ role: UiChatRole;
7
+ content: string;
8
+ status?: UiChatMessageStatus;
9
+ createdAt?: string;
10
+ }
11
+ export interface UiChatPrompt {
12
+ id: string;
13
+ content: string;
14
+ }
15
+ export interface UiChatMentionCategory {
16
+ id: string;
17
+ title: string;
18
+ icon?: Component;
19
+ }
20
+ export interface UiChatMentionOption {
21
+ value: string;
22
+ title: string;
23
+ }
24
+ export interface UiChatMention {
25
+ id: string;
26
+ label: string;
27
+ category: string;
28
+ }
package/dist/favicon.svg CHANGED
@@ -1,13 +1 @@
1
- <svg width="105" height="122" viewBox="0 0 105 122" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M0.220679 121.058C0.220679 92.4054 0.220679 63.6714 0.220679 35.0454C0.220679 34.5374 0.220679 34.0249 0.247638 33.4899C0.510165 29.7773 1.93441 26.2417 4.31835 23.3845C5.89578 21.5258 7.93307 20.1137 10.2267 19.2893C11.0489 20.5929 11.8891 21.9326 12.7069 23.2632C10.5188 23.9223 8.59385 25.2542 7.20505 27.0697C5.81626 28.8853 5.0342 31.0923 4.96984 33.3776C4.91143 34.452 4.85751 35.5578 4.7991 36.6637C4.6688 36.6637 4.83954 104.125 4.83954 116.446C18.7366 116.446 32.6156 116.419 46.5126 116.446C46.5126 116.37 46.5441 82.7539 46.4857 82.7539C43.7464 82.2044 41.1533 81.0848 38.8744 79.4679C35.5833 76.8763 33.1639 73.3389 31.9417 69.331C30.7748 65.5788 30.1455 61.68 30.0725 57.7511C29.9922 56.1261 30.0312 54.4974 30.1894 52.8782C32.7708 54.4214 35.0032 56.4851 36.7447 58.9379C37.8506 60.483 38.8289 62.1157 39.6697 63.8198C40.0112 63.8198 40.2718 63.8198 40.5953 63.8198C40.6695 62.2982 40.9167 60.7901 41.3321 59.3245C41.8191 57.4918 42.5762 55.7419 43.5787 54.1324C44.2244 53.0098 44.9963 51.9645 45.8791 51.0171C46.5435 52.0853 47.0846 53.2254 47.4921 54.4156C48.6829 58.0616 49.5077 61.8172 49.9543 65.6269C50.5609 70.1222 50.7945 74.577 51.0776 79.1128C51.0776 93.0707 51.0776 107.101 51.0776 121.058C34.1268 121.058 17.1775 121.058 0.220679 121.058Z" fill="#A36943"/>
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M54.034 121.04C54.0071 107.222 54.0071 93.3404 54.0071 79.5219C54.1958 75.7188 54.3575 71.9203 54.8293 68.1398C55.1749 62.2031 56.6543 56.3878 59.1876 51.0082C60.1671 52.0682 61.0218 53.2371 61.7351 54.4921C63.1059 56.8634 64.0145 59.4733 64.413 62.1835C64.4804 62.687 64.5073 63.3118 64.5388 63.8467H65.5003C66.1269 62.5736 66.8198 61.3342 67.5761 60.1337C69.2689 57.7585 71.2591 55.6101 73.4979 53.7413C73.8933 53.4581 74.2887 53.1749 74.7155 52.8917C74.7825 52.8946 74.8495 52.8855 74.9133 52.8648C75.0481 54.4021 75.084 55.935 75.084 57.4814C75.1954 62.8648 74.0119 68.1961 71.6333 73.0262C70.3416 75.5319 68.4973 77.7109 66.24 79.3985C63.9826 81.0861 61.3713 82.2381 58.6035 82.7675C58.554 93.9338 58.6035 105.221 58.6035 116.482C59.0528 116.482 97.1224 116.482 100.317 116.482V101.477H100.402V38.4438H100.317C100.29 36.857 100.259 35.2431 100.205 33.6293C100.179 31.3087 99.4164 29.0564 98.0273 27.1979C96.6381 25.3393 94.6942 23.9708 92.4766 23.2902C92.9259 22.4945 94.4041 20.0715 94.9029 19.2444C97.7678 20.4173 100.233 22.3935 102.002 24.9351C103.771 27.4768 104.768 30.4756 104.873 33.5709C104.873 62.7064 104.895 91.8644 104.94 121.045L54.034 121.04Z" fill="#A36943"/>
4
- <path fill-rule="evenodd" clip-rule="evenodd" d="M40.6986 33.7643C37.7693 29.4895 34.4772 25.4753 30.8588 21.7663C32.5152 15.862 33.4372 9.7759 33.604 3.64575C36.0049 10.6603 40.1539 16.9465 45.6589 21.9102C44.4928 26.0456 42.8334 30.0256 40.7165 33.7643H40.6986Z" fill="#A36943"/>
5
- <path fill-rule="evenodd" clip-rule="evenodd" d="M64.359 33.7463C62.1888 30.0325 60.5351 26.0398 59.4436 21.8787C64.8743 16.9033 69.004 10.6725 71.4715 3.7312C71.5618 9.8419 72.4947 15.9109 74.2437 21.7663C70.747 25.5886 67.4477 29.5871 64.359 33.7463Z" fill="#A36943"/>
6
- <path fill-rule="evenodd" clip-rule="evenodd" d="M27.206 57.0183C27.2913 58.205 27.3767 59.4233 27.489 60.6415C25.7701 57.0598 24.6341 53.2265 24.1237 49.2863C23.8901 47.74 23.7868 46.1666 23.5576 44.6157C23.0782 40.5621 22.119 36.5798 20.7 32.7527C17.7805 24.8281 12.8207 17.8156 6.32225 12.4249C4.62387 11.2921 4.59242 11.3236 4.52502 11.2112C8.05775 11.662 11.5139 12.5858 14.8006 13.9578C24.1512 18.7087 32.1309 25.7747 37.9803 34.4833C41.1518 38.9603 43.4967 43.9692 44.9041 49.2729C43.3664 48.4818 41.6234 48.1814 39.9098 48.4121C38.1962 48.6427 36.5944 49.3935 35.3204 50.5631C34.5297 51.6105 34.1612 52.2622 34.0759 52.2892C32.1215 50.7552 30.0276 49.4082 27.8215 48.266C27.4136 51.1642 27.2049 54.087 27.197 57.0138L27.206 57.0183Z" fill="black"/>
7
- <path fill-rule="evenodd" clip-rule="evenodd" d="M78.009 57.0183C78.009 55.1707 77.8787 53.3411 77.7259 51.4981C77.6136 50.4237 77.4698 49.3448 77.3305 48.2704C75.1247 49.4413 73.0207 50.7946 71.0402 52.3162C70.5429 51.3928 69.8629 50.5804 69.0417 49.9284C68.2204 49.2764 67.275 48.7986 66.2632 48.5239C65.2513 48.2493 64.1942 48.1836 63.1562 48.3309C62.1182 48.4782 61.121 48.8355 60.2255 49.3808C61.6844 43.8652 64.1607 38.6709 67.5267 34.0653C75.8074 22.7327 86.0022 12.8879 100.609 11.1887C95.4044 15.1622 91.0487 20.1393 87.7997 25.826C84.5507 31.5126 82.4744 37.7933 81.6933 44.2966C81.3473 46.85 80.9879 49.5112 80.5431 52.0465C79.9984 55.146 78.996 58.1472 77.5687 60.9517C77.7933 59.7559 77.8472 58.2545 78.018 57.0318L78.009 57.0183Z" fill="black"/>
8
- <path fill-rule="evenodd" clip-rule="evenodd" d="M48.2559 50.6171C47.5775 48.8909 46.8766 46.9939 46.1981 45.2228C45.4927 43.582 44.7828 41.9367 44.0459 40.278C43.5966 39.3789 42.5543 37.2616 42.1229 36.3446C47.1272 26.4946 50.6561 15.9618 52.5962 5.08423C54.6044 15.9922 58.1235 26.5666 63.0516 36.5019C60.7376 41.2264 58.8685 45.6768 56.959 50.6126C56.4385 49.9581 55.7771 49.4294 55.024 49.0661C54.271 48.7027 53.4457 48.5141 52.6097 48.5141C51.7737 48.5141 50.9484 48.7027 50.1954 49.0661C49.4424 49.4294 48.7809 49.9581 48.2604 50.6126L48.2559 50.6171Z" fill="black"/>
9
- <path fill-rule="evenodd" clip-rule="evenodd" d="M16.8539 10.6943C15.1061 7.34979 18.9836 4.62117 21.6525 3.85247C26.9319 2.33755 31.5642 4.45483 30.3511 11.8541C29.9361 14.5387 29.2912 17.1827 28.4235 19.7568C24.1821 15.3424 18.4624 13.7646 16.8539 10.6943Z" fill="black"/>
10
- <path fill-rule="evenodd" clip-rule="evenodd" d="M76.8273 19.7928C75.2008 14.5963 71.8176 5.06619 78.8043 3.66815C82.3987 2.9489 87.7903 4.36945 88.7608 8.73438C89.6954 13.0049 80.7452 14.9019 76.8273 19.7928Z" fill="black"/>
11
- <path fill-rule="evenodd" clip-rule="evenodd" d="M46.4048 18.9433C42.9559 15.3968 39.9848 11.4147 37.567 7.09813C35.5946 2.42751 38.8251 0.238301 42.8059 0.107937C45.7534 0.0135356 48.6469 1.00702 49.2534 3.25467C50.3587 7.34539 47.5865 14.4929 46.4048 18.9567V18.9433Z" fill="black"/>
12
- <path fill-rule="evenodd" clip-rule="evenodd" d="M58.7068 18.8803C57.8082 14.6682 54.2452 5.74497 56.0829 2.82752C56.8833 1.79869 57.9437 1.00219 59.1544 0.520158C60.3652 0.0381288 61.6826 -0.111941 62.9708 0.085417C75.3177 2.17573 62.3282 14.3445 58.7068 18.8803Z" fill="black"/>
13
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="105" height="122" fill="none" viewBox="0 0 105 122"><path fill="#a36943" fill-rule="evenodd" d="M.22 121.058V35.045c0-.508 0-1.02.028-1.555a17.73 17.73 0 0 1 4.07-10.106 13.93 13.93 0 0 1 5.909-4.095 406 406 0 0 1 2.48 3.974A10.88 10.88 0 0 0 4.97 33.378c-.059 1.074-.112 2.18-.17 3.286-.131 0 .04 67.461.04 79.782 13.897 0 27.776-.027 41.673 0 0-.076.031-33.692-.027-33.692a19.9 19.9 0 0 1-7.612-3.286 20.5 20.5 0 0 1-6.932-10.137 41.6 41.6 0 0 1-1.87-11.58 33 33 0 0 1 .117-4.873 21.7 21.7 0 0 1 6.556 6.06 35 35 0 0 1 2.925 4.882h.925a20 20 0 0 1 .737-4.495 19.1 19.1 0 0 1 2.247-5.193 17 17 0 0 1 2.3-3.115 16.6 16.6 0 0 1 1.613 3.399 58 58 0 0 1 2.462 11.21c.607 4.496.84 8.951 1.124 13.487v41.945zm53.814-.018c-.027-13.818-.027-27.7-.027-41.518.189-3.803.35-7.602.822-11.382a46.6 46.6 0 0 1 4.359-17.132 19 19 0 0 1 2.547 3.484 21.7 21.7 0 0 1 2.678 7.692c.067.503.094 1.128.126 1.663h.961a41 41 0 0 1 2.076-3.713 34 34 0 0 1 5.922-6.393c.395-.283.79-.566 1.218-.85a.6.6 0 0 0 .197-.026c.135 1.537.171 3.07.171 4.616a33.6 33.6 0 0 1-3.45 15.545 18.6 18.6 0 0 1-13.03 9.742c-.05 11.166 0 22.453 0 33.714h41.713v-15.005h.085V38.444h-.085c-.027-1.587-.058-3.2-.112-4.815a10.95 10.95 0 0 0-7.728-10.339c.449-.796 1.927-3.218 2.426-4.046a16.07 16.07 0 0 1 9.97 14.327q0 43.703.067 87.474zM40.699 33.764a90 90 0 0 0-9.84-11.998 74.6 74.6 0 0 0 2.745-18.12c2.4 7.014 6.55 13.3 12.055 18.264a53.6 53.6 0 0 1-4.942 11.854zm23.66-.018a47.3 47.3 0 0 1-4.915-11.867A45.1 45.1 0 0 0 71.472 3.73a66.5 66.5 0 0 0 2.772 18.035 152 152 0 0 0-9.885 11.98" clip-rule="evenodd"/><path fill="#000" fill-rule="evenodd" d="M27.206 57.018c.085 1.187.17 2.405.283 3.624a37.3 37.3 0 0 1-3.365-11.356c-.234-1.546-.337-3.12-.566-4.67A51.5 51.5 0 0 0 20.7 32.753 47.95 47.95 0 0 0 6.322 12.425c-1.698-1.133-1.73-1.101-1.797-1.214a39.7 39.7 0 0 1 10.276 2.747 61.46 61.46 0 0 1 23.18 20.525 46 46 0 0 1 6.923 14.79 8.45 8.45 0 0 0-9.584 1.29c-.79 1.047-1.159 1.7-1.244 1.726a39.7 39.7 0 0 0-6.254-4.023 64 64 0 0 0-.625 8.748zm50.803 0c0-1.847-.13-3.677-.283-5.52-.112-1.074-.256-2.153-.395-3.228a45 45 0 0 0-6.29 4.046 7.73 7.73 0 0 0-7.885-3.985 7.7 7.7 0 0 0-2.93 1.05 45.8 45.8 0 0 1 7.3-15.316c8.281-11.332 18.476-21.177 33.083-22.876a49 49 0 0 0-18.916 33.108c-.346 2.553-.705 5.214-1.15 7.75a31.8 31.8 0 0 1-2.974 8.905c.224-1.196.278-2.697.449-3.92zm-29.753-6.401c-.678-1.726-1.38-3.623-2.058-5.394a446 446 0 0 0-2.152-4.945c-.45-.9-1.492-3.016-1.923-3.933a112.7 112.7 0 0 0 10.473-31.26 119.3 119.3 0 0 0 10.456 31.417c-2.314 4.724-4.184 9.175-6.093 14.11a5.558 5.558 0 0 0-8.699 0zM16.854 10.694c-1.748-3.344 2.13-6.073 4.799-6.842 5.279-1.514 9.911.603 8.698 8.002a47.4 47.4 0 0 1-1.927 7.903c-4.242-4.415-9.962-5.992-11.57-9.063m59.973 9.099c-1.626-5.197-5.01-14.727 1.977-16.125 3.595-.72 8.986.701 9.957 5.066.934 4.27-8.016 6.168-11.934 11.059m-30.422-.85a56.8 56.8 0 0 1-8.838-11.845c-1.972-4.67 1.258-6.86 5.239-6.99 2.947-.094 5.84.899 6.447 3.147 1.106 4.09-1.666 11.238-2.848 15.702zm12.302-.063c-.899-4.212-4.462-13.135-2.624-16.052A7.32 7.32 0 0 1 62.97.085c12.347 2.09-.643 14.26-4.264 18.795" clip-rule="evenodd"/></svg>
package/dist/index.d.ts CHANGED
@@ -49,6 +49,12 @@ export { default as UiField } from './components/form/UiField.vue';
49
49
  export { default as UiFieldMessage } from './components/form/UiFieldMessage.vue';
50
50
  export { default as UiFormActions } from './components/form/UiFormActions.vue';
51
51
  export type { UiFieldMessageVariant, UiFormActionsAlign } from './components/form/types';
52
+ export { default as UiChatShell } from './components/chat/UiChatShell.vue';
53
+ export { default as UiChatMessage } from './components/chat/UiChatMessage.vue';
54
+ export { default as UiChatMarkdown } from './components/chat/UiChatMarkdown.vue';
55
+ export { default as UiChatComposer } from './components/chat/UiChatComposer.vue';
56
+ export { default as UiChatPromptNavigator } from './components/chat/UiChatPromptNavigator.vue';
57
+ export type { UiChatRole, UiChatMessageStatus, UiChatMessageModel, UiChatPrompt, UiChatMentionCategory, UiChatMentionOption, UiChatMention } from './components/chat/types';
52
58
  export { default as AppSidebar } from './components/layout/AppSidebar.vue';
53
59
  export { default as AppHeader } from './components/layout/AppHeader.vue';
54
60
  export { default as AppHeaderMenu } from './components/layout/AppHeaderMenu.vue';