@n8n/chat 1.38.2 → 1.39.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.
Files changed (99) hide show
  1. package/dist/App.vue.d.ts +3 -0
  2. package/dist/{src/api → api}/message.d.ts +1 -1
  3. package/dist/chat.bundle.es.js +11261 -11250
  4. package/dist/chat.bundle.umd.js +68 -68
  5. package/dist/chat.es.js +14695 -14684
  6. package/dist/chat.umd.js +79 -79
  7. package/dist/{chunk-CzJRh2MK.mjs → chunk-CfuSfYee.mjs} +1 -1
  8. package/dist/components/Button.vue.d.ts +22 -0
  9. package/dist/components/Chat.vue.d.ts +3 -0
  10. package/dist/{src/components → components}/ChatFile.vue.d.ts +3 -2
  11. package/dist/components/ChatWindow.vue.d.ts +3 -0
  12. package/dist/components/GetStarted.vue.d.ts +3 -0
  13. package/dist/components/GetStartedFooter.vue.d.ts +3 -0
  14. package/dist/components/Input.vue.d.ts +26 -0
  15. package/dist/components/Layout.vue.d.ts +17 -0
  16. package/dist/components/MarkdownRenderer.vue.d.ts +6 -0
  17. package/dist/components/Message.vue.d.ts +23 -0
  18. package/dist/components/MessageActions.vue.d.ts +7 -0
  19. package/dist/components/MessageTyping.vue.d.ts +8 -0
  20. package/dist/components/MessageWithButtons.vue.d.ts +11 -0
  21. package/dist/components/MessagesList.vue.d.ts +19 -0
  22. package/dist/components/PoweredBy.vue.d.ts +3 -0
  23. package/dist/{src/composables → composables}/useChat.d.ts +1 -1
  24. package/dist/{src/composables → composables}/useOptions.d.ts +1 -1
  25. package/dist/{src/constants → constants}/defaults.d.ts +1 -1
  26. package/dist/{src/constants → constants}/symbols.d.ts +1 -1
  27. package/dist/{emojiData-zOxnhmb7-C97kuCPz.mjs → emojiData-zOxnhmb7-BiMnajJ0.mjs} +1 -1
  28. package/dist/{emojiData-zOxnhmb7-ChqWj722.mjs → emojiData-zOxnhmb7-Cva46NKj.mjs} +1 -1
  29. package/dist/{en-Ubc0tWnj-BbtrgScn.mjs → en-BQBg3T3M-B_V6rxAT.mjs} +9 -1
  30. package/dist/{en-Ubc0tWnj-Ccd43kzZ.mjs → en-BQBg3T3M-MgWgDoNZ.mjs} +10 -2
  31. package/dist/event-buses/chatEventBus.d.ts +1 -0
  32. package/dist/{src/index.d.ts → index.d.ts} +1 -1
  33. package/dist/{lucideIconData-CKJ1do82-fJdcWW0C.mjs → lucideIconData-CKJ1do82-jhj1Rcg3.mjs} +1 -1
  34. package/dist/{lucideIconData-CKJ1do82-C5whF1bB.mjs → lucideIconData-CKJ1do82-tA2ErCVE.mjs} +1 -1
  35. package/dist/{node-icons-CaKBLFvs-Bd9TKLMg.mjs → node-icons-CaKBLFvs-39eD8B9H.mjs} +1 -1
  36. package/dist/{node-icons-CaKBLFvs-lzoTKC8T.mjs → node-icons-CaKBLFvs-DAsjpdTv.mjs} +2 -2
  37. package/dist/{src/plugins → plugins}/chat.d.ts +1 -1
  38. package/dist/style.css +1 -1
  39. package/dist/{src/types → types}/chat.d.ts +2 -2
  40. package/dist/{src/utils → utils}/credentialStatus.d.ts +1 -1
  41. package/dist/{src/utils → utils}/streaming.d.ts +1 -1
  42. package/dist/{src/utils → utils}/streamingHandlers.d.ts +1 -1
  43. package/dist/{vue.runtime.esm-bundler-C69TZWHJ.mjs → vue.runtime.esm-bundler-DGbwaopa.mjs} +2 -2
  44. package/package.json +5 -2
  45. package/dist/src/App.vue.d.ts +0 -2
  46. package/dist/src/__stories__/App.stories.d.ts +0 -18
  47. package/dist/src/__tests__/Chat.spec.d.ts +0 -1
  48. package/dist/src/__tests__/Input.spec.d.ts +0 -1
  49. package/dist/src/__tests__/MessageActions.spec.d.ts +0 -1
  50. package/dist/src/__tests__/MessageWithButtons.spec.d.ts +0 -1
  51. package/dist/src/__tests__/api/generic.spec.d.ts +0 -1
  52. package/dist/src/__tests__/api/message.spec.d.ts +0 -1
  53. package/dist/src/__tests__/index.spec.d.ts +0 -1
  54. package/dist/src/__tests__/plugins/chat.spec.d.ts +0 -1
  55. package/dist/src/__tests__/plugins/chat.test.d.ts +0 -1
  56. package/dist/src/__tests__/setup.d.ts +0 -0
  57. package/dist/src/__tests__/utils/create.d.ts +0 -5
  58. package/dist/src/__tests__/utils/credentialStatus.spec.d.ts +0 -1
  59. package/dist/src/__tests__/utils/fetch.d.ts +0 -13
  60. package/dist/src/__tests__/utils/index.d.ts +0 -3
  61. package/dist/src/__tests__/utils/selectors.d.ts +0 -12
  62. package/dist/src/__tests__/utils/streaming.spec.d.ts +0 -1
  63. package/dist/src/__tests__/utils/streamingHandlers.spec.d.ts +0 -1
  64. package/dist/src/__tests__/utils/utils.spec.d.ts +0 -1
  65. package/dist/src/components/Button.vue.d.ts +0 -26
  66. package/dist/src/components/Chat.vue.d.ts +0 -2
  67. package/dist/src/components/ChatWindow.vue.d.ts +0 -2
  68. package/dist/src/components/GetStarted.vue.d.ts +0 -2
  69. package/dist/src/components/GetStartedFooter.vue.d.ts +0 -2
  70. package/dist/src/components/Input.vue.d.ts +0 -34
  71. package/dist/src/components/Layout.vue.d.ts +0 -23
  72. package/dist/src/components/MarkdownRenderer.vue.d.ts +0 -5
  73. package/dist/src/components/Message.vue.d.ts +0 -39
  74. package/dist/src/components/MessageActions.vue.d.ts +0 -6
  75. package/dist/src/components/MessageTyping.vue.d.ts +0 -76
  76. package/dist/src/components/MessageWithButtons.vue.d.ts +0 -10
  77. package/dist/src/components/MessagesList.vue.d.ts +0 -164
  78. package/dist/src/components/PoweredBy.vue.d.ts +0 -2
  79. package/dist/src/event-buses/chatEventBus.d.ts +0 -1
  80. /package/dist/{src/api → api}/generic.d.ts +0 -0
  81. /package/dist/{src/api → api}/index.d.ts +0 -0
  82. /package/dist/{src/components → components}/index.d.ts +0 -0
  83. /package/dist/{src/composables → composables}/index.d.ts +0 -0
  84. /package/dist/{src/composables → composables}/useI18n.d.ts +0 -0
  85. /package/dist/{src/constants → constants}/index.d.ts +0 -0
  86. /package/dist/{src/constants → constants}/localStorage.d.ts +0 -0
  87. /package/dist/{src/constants → constants}/messageComponents.d.ts +0 -0
  88. /package/dist/{src/event-buses → event-buses}/index.d.ts +0 -0
  89. /package/dist/{src/plugins → plugins}/index.d.ts +0 -0
  90. /package/dist/{src/types → types}/credentialStatus.d.ts +0 -0
  91. /package/dist/{src/types → types}/index.d.ts +0 -0
  92. /package/dist/{src/types → types}/messages.d.ts +0 -0
  93. /package/dist/{src/types → types}/options.d.ts +0 -0
  94. /package/dist/{src/types → types}/streaming.d.ts +0 -0
  95. /package/dist/{src/types → types}/webhook.d.ts +0 -0
  96. /package/dist/{src/utils → utils}/event-bus.d.ts +0 -0
  97. /package/dist/{src/utils → utils}/index.d.ts +0 -0
  98. /package/dist/{src/utils → utils}/mount.d.ts +0 -0
  99. /package/dist/{src/utils → utils}/utils.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- /*! Package version @n8n/chat@1.38.2 */
1
+ /*! Package version @n8n/chat@1.39.0 */
2
2
  //#region \0rolldown/runtime.js
3
3
  var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (e && (t = e(e = 0)), t), s = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), c = (e, n) => {
4
4
  let r = {};
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ type?: 'primary' | 'secondary';
3
+ element?: 'button' | 'a';
4
+ disabled?: boolean;
5
+ };
6
+ declare var __VLS_7: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_7) => any;
9
+ };
10
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
11
+ type: "primary" | "secondary";
12
+ element: "button" | "a";
13
+ disabled: boolean;
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -4,9 +4,10 @@ type __VLS_Props = {
4
4
  isPreviewable?: boolean;
5
5
  href?: string;
6
6
  };
7
- declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
8
8
  remove: (value: File) => any;
9
9
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
10
10
  onRemove?: ((value: File) => any) | undefined;
11
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
11
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
12
13
  export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,26 @@
1
+ export interface ChatInputProps {
2
+ placeholder?: string;
3
+ }
4
+ export interface ArrowKeyDownPayload {
5
+ key: 'ArrowUp' | 'ArrowDown';
6
+ currentInputValue: string;
7
+ }
8
+ declare var __VLS_1: {};
9
+ type __VLS_Slots = {} & {
10
+ leftPanel?: (props: typeof __VLS_1) => any;
11
+ };
12
+ declare const __VLS_base: import('vue').DefineComponent<ChatInputProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
13
+ arrowKeyDown: (value: ArrowKeyDownPayload) => any;
14
+ }, string, import('vue').PublicProps, Readonly<ChatInputProps> & Readonly<{
15
+ onArrowKeyDown?: ((value: ArrowKeyDownPayload) => any) | undefined;
16
+ }>, {
17
+ placeholder: string;
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
19
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
22
+ type __VLS_WithSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -0,0 +1,17 @@
1
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
2
+ type __VLS_Slots = {} & {
3
+ header?: (props: typeof __VLS_1) => any;
4
+ } & {
5
+ default?: (props: typeof __VLS_3) => any;
6
+ } & {
7
+ footer?: (props: typeof __VLS_5) => any;
8
+ };
9
+ declare const __VLS_base: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
10
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
13
+ type __VLS_WithSlots<T, S> = T & {
14
+ new (): {
15
+ $slots: S;
16
+ };
17
+ };
@@ -0,0 +1,6 @@
1
+ type __VLS_Props = {
2
+ text: string;
3
+ };
4
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
@@ -0,0 +1,23 @@
1
+ import { ChatMessage } from '../types';
2
+ type __VLS_Props = {
3
+ message: ChatMessage;
4
+ };
5
+ type __VLS_Slots = {
6
+ beforeMessage(props: {
7
+ message: ChatMessage;
8
+ }): ChatMessage;
9
+ default: {
10
+ message: ChatMessage;
11
+ };
12
+ };
13
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
14
+ scrollToView: () => void;
15
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
19
+ type __VLS_WithSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -0,0 +1,7 @@
1
+ import { ChatMessage } from '../types';
2
+ type __VLS_Props = {
3
+ message: ChatMessage;
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,8 @@
1
+ type __VLS_Props = {
2
+ animation?: 'bouncing' | 'scaling';
3
+ };
4
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
5
+ animation: "bouncing" | "scaling";
6
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,11 @@
1
+ type __VLS_Props = {
2
+ text: string;
3
+ buttons: Array<{
4
+ text: string;
5
+ link: string;
6
+ type: 'primary' | 'secondary';
7
+ }>;
8
+ };
9
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import { ChatMessage } from '../types';
2
+ type __VLS_Props = {
3
+ messages: ChatMessage[];
4
+ emptyText?: string;
5
+ };
6
+ type __VLS_Slots = {
7
+ beforeMessage(props: {
8
+ message: ChatMessage;
9
+ }): ChatMessage;
10
+ };
11
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -1,2 +1,2 @@
1
- import { Chat } from '../../types';
1
+ import { Chat } from '../types';
2
2
  export declare function useChat(): Chat;
@@ -1,4 +1,4 @@
1
- import { ChatOptions } from '../../types';
1
+ import { ChatOptions } from '../types';
2
2
  export declare function useOptions(): {
3
3
  options: ChatOptions;
4
4
  };
@@ -1,3 +1,3 @@
1
- import { ChatOptions } from '../../types';
1
+ import { ChatOptions } from '../types';
2
2
  export declare const defaultOptions: ChatOptions;
3
3
  export declare const defaultMountingTarget = "#n8n-chat";
@@ -1,4 +1,4 @@
1
1
  import { InjectionKey } from 'vue';
2
- import { Chat, ChatOptions } from '../../types';
2
+ import { Chat, ChatOptions } from '../types';
3
3
  export declare const ChatSymbol: InjectionKey<Chat>;
4
4
  export declare const ChatOptionsSymbol: InjectionKey<ChatOptions>;
@@ -1,4 +1,4 @@
1
- /*! Package version @n8n/chat@1.38.2 */
1
+ /*! Package version @n8n/chat@1.39.0 */
2
2
  //#region ../design-system/dist/emojiData-zOxnhmb7.js
3
3
  var e = [
4
4
  {
@@ -1,4 +1,4 @@
1
- /*! Package version @n8n/chat@1.38.2 */
1
+ /*! Package version @n8n/chat@1.39.0 */
2
2
  //#region ../design-system/dist/emojiData-zOxnhmb7.js
3
3
  var e = [
4
4
  {
@@ -1,4 +1,4 @@
1
- /*! Package version @n8n/chat@1.38.2 */
1
+ /*! Package version @n8n/chat@1.39.0 */
2
2
  //#region \0rolldown/runtime.js
3
3
  var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (e && (t = e(e = 0)), t), s = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), c = (e, n) => {
4
4
  let r = {};
@@ -5065,6 +5065,9 @@ var wn, Tn = o((() => {
5065
5065
  "nds.userInfo.you": "(you)",
5066
5066
  "nds.userSelect.selectUser": "Select User",
5067
5067
  "nds.userSelect.noMatchingUsers": "No matching users",
5068
+ "nds.select.placeholder": "Select an option",
5069
+ "nds.select.clear": "Clear selection",
5070
+ "nds.select.noResults": "No results found",
5068
5071
  "nds.inputNumber.increase": "Increase",
5069
5072
  "nds.inputNumber.decrease": "Decrease",
5070
5073
  "notice.showMore": "Show more",
@@ -5141,6 +5144,9 @@ var wn, Tn = o((() => {
5141
5144
  "assistantChat.blankStateInputPlaceholder": "What would you like to automate?",
5142
5145
  "assistantChat.copy": "Copy",
5143
5146
  "assistantChat.copied": "Copied",
5147
+ "assistantChat.messageActions": "Message actions",
5148
+ "assistantChat.readAloud": "Read aloud",
5149
+ "assistantChat.stopReading": "Stop reading",
5144
5150
  "assistantChat.characterLimit": "You've reached the {limit} character limit",
5145
5151
  "aiAssistant.builder.canvas.thinking": "Working...",
5146
5152
  "aiAssistant.builder.streamAbortedMessage": "Task aborted",
@@ -5274,6 +5280,8 @@ var wn, Tn = o((() => {
5274
5280
  "markdownEditor.heading3": "Heading 3",
5275
5281
  "markdownEditor.rawMarkdownView": "Raw markdown",
5276
5282
  "markdownEditor.formattedMarkdownView": "Formatted view",
5283
+ "markdownEditor.expand": "Expand editor",
5284
+ "markdownEditor.collapse": "Collapse editor",
5277
5285
  "markdownEditor.linkDialogTitle": "Add link",
5278
5286
  "markdownEditor.linkUrl": "Link URL",
5279
5287
  "markdownEditor.linkPlaceholder": "https://example.com",
@@ -1,5 +1,5 @@
1
- /*! Package version @n8n/chat@1.38.2 */
2
- import { a as e, i as t, n, r, t as i } from "./chunk-CzJRh2MK.mjs";
1
+ /*! Package version @n8n/chat@1.39.0 */
2
+ import { a as e, i as t, n, r, t as i } from "./chunk-CfuSfYee.mjs";
3
3
  //#region ../../../@n8n/utils/dist/string/truncate.mjs
4
4
  var a = (e, t = 30) => e.length > t ? e.slice(0, t) + "..." : e;
5
5
  function o(e, t, n = 5, r = 1) {
@@ -5050,6 +5050,9 @@ var _n, vn = n((() => {
5050
5050
  "nds.userInfo.you": "(you)",
5051
5051
  "nds.userSelect.selectUser": "Select User",
5052
5052
  "nds.userSelect.noMatchingUsers": "No matching users",
5053
+ "nds.select.placeholder": "Select an option",
5054
+ "nds.select.clear": "Clear selection",
5055
+ "nds.select.noResults": "No results found",
5053
5056
  "nds.inputNumber.increase": "Increase",
5054
5057
  "nds.inputNumber.decrease": "Decrease",
5055
5058
  "notice.showMore": "Show more",
@@ -5126,6 +5129,9 @@ var _n, vn = n((() => {
5126
5129
  "assistantChat.blankStateInputPlaceholder": "What would you like to automate?",
5127
5130
  "assistantChat.copy": "Copy",
5128
5131
  "assistantChat.copied": "Copied",
5132
+ "assistantChat.messageActions": "Message actions",
5133
+ "assistantChat.readAloud": "Read aloud",
5134
+ "assistantChat.stopReading": "Stop reading",
5129
5135
  "assistantChat.characterLimit": "You've reached the {limit} character limit",
5130
5136
  "aiAssistant.builder.canvas.thinking": "Working...",
5131
5137
  "aiAssistant.builder.streamAbortedMessage": "Task aborted",
@@ -5259,6 +5265,8 @@ var _n, vn = n((() => {
5259
5265
  "markdownEditor.heading3": "Heading 3",
5260
5266
  "markdownEditor.rawMarkdownView": "Raw markdown",
5261
5267
  "markdownEditor.formattedMarkdownView": "Formatted view",
5268
+ "markdownEditor.expand": "Expand editor",
5269
+ "markdownEditor.collapse": "Collapse editor",
5262
5270
  "markdownEditor.linkDialogTitle": "Add link",
5263
5271
  "markdownEditor.linkUrl": "Link URL",
5264
5272
  "markdownEditor.linkPlaceholder": "https://example.com",
@@ -0,0 +1 @@
1
+ export declare const chatEventBus: import('../utils').EventBus;
@@ -1,2 +1,2 @@
1
- import { ChatOptions } from '../types';
1
+ import { ChatOptions } from './types';
2
2
  export declare function createChat(options?: Partial<ChatOptions>): import('vue').App<Element>;
@@ -1,4 +1,4 @@
1
- /*! Package version @n8n/chat@1.38.2 */
1
+ /*! Package version @n8n/chat@1.39.0 */
2
2
  //#region ../design-system/dist/lucideIconData-CKJ1do82.js
3
3
  var e = {
4
4
  "a-arrow-down": {
@@ -1,4 +1,4 @@
1
- /*! Package version @n8n/chat@1.38.2 */
1
+ /*! Package version @n8n/chat@1.39.0 */
2
2
  //#region ../design-system/dist/lucideIconData-CKJ1do82.js
3
3
  var e = {
4
4
  "a-arrow-down": {
@@ -1,4 +1,4 @@
1
- /*! Package version @n8n/chat@1.38.2 */
1
+ /*! Package version @n8n/chat@1.39.0 */
2
2
  import { createElementBlock as e, createElementVNode as t, createStaticVNode as n, openBlock as r } from "vue";
3
3
  //#region ../design-system/dist/node-icons-CaKBLFvs.js
4
4
  var i = {
@@ -1,5 +1,5 @@
1
- /*! Package version @n8n/chat@1.38.2 */
2
- import { b as e, h as t, v as n, z as r } from "./vue.runtime.esm-bundler-C69TZWHJ.mjs";
1
+ /*! Package version @n8n/chat@1.39.0 */
2
+ import { b as e, h as t, v as n, z as r } from "./vue.runtime.esm-bundler-DGbwaopa.mjs";
3
3
  //#region ../design-system/dist/node-icons-CaKBLFvs.js
4
4
  var i = {
5
5
  xmlns: "http://www.w3.org/2000/svg",
@@ -1,3 +1,3 @@
1
1
  import { Plugin } from 'vue';
2
- import { ChatOptions } from '../../types';
2
+ import { ChatOptions } from '../types';
3
3
  export declare const ChatPlugin: Plugin<ChatOptions>;
package/dist/style.css CHANGED
@@ -1,3 +1,3 @@
1
- /*! Package version @n8n/chat@1.38.2 */
1
+ /*! Package version @n8n/chat@1.39.0 */
2
2
  :root{--chat--color--primary:#e74266;--chat--color--primary-shade-50:#db4061;--chat--color--primary--shade-100:#cf3c5c;--chat--color--secondary:#20b69e;--chat--color-secondary-shade-50:#1ca08a;--chat--color-white:#fff;--chat--color-light:#f2f4f8;--chat--color-light-shade-50:#e6e9f1;--chat--color-light-shade-100:#c2c5cc;--chat--color-medium:#d2d4d9;--chat--color-dark:#101330;--chat--color-disabled:#d2d4d9;--chat--color-typing:#404040;--chat--spacing:1rem;--chat--border-radius:.25rem;--chat--transition-duration:.15s;--chat--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--chat--font-family--monospace:ui-monospace, Menlo, Consolas, "DejaVu Sans Mono", monospace;--chat--window--width:400px;--chat--window--height:600px;--chat--window--bottom:var(--chat--spacing);--chat--window--right:var(--chat--spacing);--chat--window--z-index:9999;--chat--window--border:1px solid var(--chat--color-light-shade-50);--chat--window--border-radius:var(--chat--border-radius);--chat--window--margin-bottom:var(--chat--spacing);--chat--header-height:auto;--chat--header--padding:var(--chat--spacing);--chat--header--background:var(--chat--color-dark);--chat--header--color:var(--chat--color-light);--chat--header--border-top:none;--chat--header--border-bottom:none;--chat--header--border-left:none;--chat--header--border-right:none;--chat--heading--font-size:2em;--chat--subtitle--font-size:inherit;--chat--subtitle--line-height:1.8;--chat--message--font-size:1rem;--chat--message--padding:var(--chat--spacing);--chat--message--border-radius:var(--chat--border-radius);--chat--message-line-height:1.5;--chat--message--margin-bottom:calc(var(--chat--spacing) * 1);--chat--message--bot--background:var(--chat--color-white);--chat--message--bot--color:var(--chat--color-dark);--chat--message--bot--border:none;--chat--message--user--background:var(--chat--color--secondary);--chat--message--user--color:var(--chat--color-white);--chat--message--user--border:none;--chat--message--pre--background:#0000000d;--chat--messages-list--padding:var(--chat--spacing);--chat--toggle--size:64px;--chat--toggle--width:var(--chat--toggle--size);--chat--toggle--height:var(--chat--toggle--size);--chat--toggle--border-radius:50%;--chat--toggle--background:var(--chat--color--primary);--chat--toggle--hover--background:var(--chat--color--primary-shade-50);--chat--toggle--active--background:var(--chat--color--primary--shade-100);--chat--toggle--color:var(--chat--color-white);--chat--textarea--height:50px;--chat--textarea--max-height:30rem;--chat--input--width:100%;--chat--input--font-size:inherit;--chat--input--border:0;--chat--input--border-radius:0;--chat--input--padding:.8rem;--chat--input--background:var(--chat--color-white);--chat--input--text-color:initial;--chat--input--line-height:1.5;--chat--input--placeholder--font-size:var(--chat--input--font-size);--chat--input--border-active:0;--chat--input--left--panel--width:2rem;--chat--input--container--background:var(--chat--color-white);--chat--input--container--border:0;--chat--input--container--border-radius:0;--chat--input--container--padding:0;--chat--input--button--border-radius:16px;--chat--button--padding:calc(var(--chat--spacing) * 5 / 8) var(--chat--spacing);--chat--button--border-radius:var(--chat--border-radius);--chat--button--font-size:1rem;--chat--button--line-height:1;--chat--button--color--primary:var(--chat--color-light);--chat--button--background--primary:var(--chat--color--secondary);--chat--button--border--primary:none;--chat--button--color--primary--hover:var(--chat--color-light);--chat--button--background--primary--hover:var(--chat--color-secondary-shade-50);--chat--button--border--primary--hover:none;--chat--button--color--primary--disabled:var(--chat--color-light);--chat--button--background--primary--disabled:#81bbb1;--chat--button--border--primary--disabled:none;--chat--button--color--secondary:var(--chat--color-light);--chat--button--background--secondary:#949494;--chat--button--border--secondary:none;--chat--button--color--secondary--hover:var(--chat--color-light);--chat--button--background--secondary--hover:#828282;--chat--button--border--secondary--hover:none;--chat--button--color--secondary--disabled:var(--chat--color-light);--chat--button--background--secondary--disabled:#c7c7c7;--chat--button--border--secondary--disabled:none;--chat--close--button--color-hover:var(--chat--color--primary);--chat--message--actions--color:var(--chat--color--primary);--chat--message--actions--gap:var(--chat--spacing);--chat--input--send--button--background:var(--chat--color-white);--chat--input--send--button--color:var(--chat--color--secondary);--chat--input--send--button--background-hover:var(--chat--color--primary-shade-50);--chat--input--send--button--color-hover:var(--chat--color-secondary-shade-50);--chat--input--file--button--background:var(--chat--color-white);--chat--input--file--button--color:var(--chat--color--secondary);--chat--input--file--button--background-hover:var(--chat--input--file--button--background);--chat--input--file--button--color-hover:var(--chat--color-secondary-shade-50);--chat--files-spacing:.25rem;--chat--body--background:var(--chat--color-light);--chat--footer--padding:0;--chat--footer--background:var(--chat--color-light);--chat--footer--color:var(--chat--color-dark);--chat--footer--border-top:1px solid var(--chat--color-light-shade-100)}.n8n-chat{--spacing--5xs:calc(var(--chat--spacing) / 8);--spacing--4xs:calc(var(--chat--spacing) / 4);--spacing--2xs:calc(var(--chat--spacing) / 2);--font-family--monospace:var(--chat--font-family--monospace);--font-size--3xs:calc(var(--chat--message--font-size) * 5 / 8);--font-size--xs:calc(var(--chat--message--font-size) * 13 / 16);--font-size--sm:calc(var(--chat--message--font-size) * 7 / 8);--font-size--md:var(--chat--message--font-size);--font-size--lg:calc(var(--chat--message--font-size) * 9 / 8);--font-size--xl:calc(var(--chat--message--font-size) * 5 / 4);--font-weight--regular:400;--font-weight--medium:500;--font-weight--bold:600;--line-height--md:1.3;--line-height--lg:1.35;--line-height--xl:var(--chat--message-line-height);--radius--sm:calc(var(--chat--border-radius) / 2);--radius--lg:calc(var(--chat--border-radius) * 2);--radius--xl:calc(var(--chat--border-radius) * 3);--border-width:1px;--border-style:solid;--color--primary:var(--chat--color--primary);--color--background:var(--chat--color-light);--color--foreground:var(--chat--color-light-shade-50);--color--foreground--shade-1:var(--chat--color-light-shade-100);--color--foreground--tint-1:var(--chat--color-light);--color--neutral-200:var(--chat--color-light-shade-50);--color--neutral-300:var(--chat--color-light-shade-100);--color--text:currentColor;--color--text--shade-1:currentColor;--color--text--tint-1:currentColor}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}[data-theme=dark] pre code.hljs{padding:1em;display:block;overflow-x:auto}[data-theme=dark] code.hljs{padding:3px 5px}[data-theme=dark] .hljs{color:#adbac7;background:#22272e}[data-theme=dark] .hljs-doctag,[data-theme=dark] .hljs-keyword,[data-theme=dark] .hljs-meta .hljs-keyword,[data-theme=dark] .hljs-template-tag,[data-theme=dark] .hljs-template-variable,[data-theme=dark] .hljs-type,[data-theme=dark] .hljs-variable.language_{color:#f47067}[data-theme=dark] .hljs-title,[data-theme=dark] .hljs-title.class_,[data-theme=dark] .hljs-title.class_.inherited__,[data-theme=dark] .hljs-title.function_{color:#dcbdfb}[data-theme=dark] .hljs-attr,[data-theme=dark] .hljs-attribute,[data-theme=dark] .hljs-literal,[data-theme=dark] .hljs-meta,[data-theme=dark] .hljs-number,[data-theme=dark] .hljs-operator,[data-theme=dark] .hljs-variable,[data-theme=dark] .hljs-selector-attr,[data-theme=dark] .hljs-selector-class,[data-theme=dark] .hljs-selector-id{color:#6cb6ff}[data-theme=dark] .hljs-regexp,[data-theme=dark] .hljs-string,[data-theme=dark] .hljs-meta .hljs-string{color:#96d0ff}[data-theme=dark] .hljs-built_in,[data-theme=dark] .hljs-symbol{color:#f69d50}[data-theme=dark] .hljs-comment,[data-theme=dark] .hljs-code,[data-theme=dark] .hljs-formula{color:#768390}[data-theme=dark] .hljs-name,[data-theme=dark] .hljs-quote,[data-theme=dark] .hljs-selector-tag,[data-theme=dark] .hljs-selector-pseudo{color:#8ddb8c}[data-theme=dark] .hljs-subst{color:#adbac7}[data-theme=dark] .hljs-section{color:#316dca;font-weight:700}[data-theme=dark] .hljs-bullet{color:#eac55f}[data-theme=dark] .hljs-emphasis{color:#adbac7;font-style:italic}[data-theme=dark] .hljs-strong{color:#adbac7;font-weight:700}[data-theme=dark] .hljs-addition{color:#b4f1b4;background-color:#1b4721}[data-theme=dark] .hljs-deletion{color:#ffd8d3;background-color:#78191b}@media (prefers-color-scheme:dark){body:not([data-theme]) pre code.hljs{padding:1em;display:block;overflow-x:auto}body:not([data-theme]) code.hljs{padding:3px 5px}body:not([data-theme]) .hljs{color:#adbac7;background:#22272e}body:not([data-theme]) .hljs-doctag,body:not([data-theme]) .hljs-keyword,body:not([data-theme]) .hljs-meta .hljs-keyword,body:not([data-theme]) .hljs-template-tag,body:not([data-theme]) .hljs-template-variable,body:not([data-theme]) .hljs-type,body:not([data-theme]) .hljs-variable.language_{color:#f47067}body:not([data-theme]) .hljs-title,body:not([data-theme]) .hljs-title.class_,body:not([data-theme]) .hljs-title.class_.inherited__,body:not([data-theme]) .hljs-title.function_{color:#dcbdfb}body:not([data-theme]) .hljs-attr,body:not([data-theme]) .hljs-attribute,body:not([data-theme]) .hljs-literal,body:not([data-theme]) .hljs-meta,body:not([data-theme]) .hljs-number,body:not([data-theme]) .hljs-operator,body:not([data-theme]) .hljs-variable,body:not([data-theme]) .hljs-selector-attr,body:not([data-theme]) .hljs-selector-class,body:not([data-theme]) .hljs-selector-id{color:#6cb6ff}body:not([data-theme]) .hljs-regexp,body:not([data-theme]) .hljs-string,body:not([data-theme]) .hljs-meta .hljs-string{color:#96d0ff}body:not([data-theme]) .hljs-built_in,body:not([data-theme]) .hljs-symbol{color:#f69d50}body:not([data-theme]) .hljs-comment,body:not([data-theme]) .hljs-code,body:not([data-theme]) .hljs-formula{color:#768390}body:not([data-theme]) .hljs-name,body:not([data-theme]) .hljs-quote,body:not([data-theme]) .hljs-selector-tag,body:not([data-theme]) .hljs-selector-pseudo{color:#8ddb8c}body:not([data-theme]) .hljs-subst{color:#adbac7}body:not([data-theme]) .hljs-section{color:#316dca;font-weight:700}body:not([data-theme]) .hljs-bullet{color:#eac55f}body:not([data-theme]) .hljs-emphasis{color:#adbac7;font-style:italic}body:not([data-theme]) .hljs-strong{color:#adbac7;font-weight:700}body:not([data-theme]) .hljs-addition{color:#b4f1b4;background-color:#1b4721}body:not([data-theme]) .hljs-deletion{color:#ffd8d3;background-color:#78191b}}.n8n-markdown{--markdown--spacing:var(--spacing--2xs);color:inherit;-webkit-text-size-adjust:100%;word-break:break-word;line-height:1.5em;display:block}.n8n-markdown *,.n8n-markdown :before,.n8n-markdown :after{box-sizing:border-box}.n8n-markdown p,.n8n-markdown li{font-size:inherit;line-height:inherit;margin:calc(var(--markdown--spacing) * 2) 0}.n8n-markdown p:first-child,.n8n-markdown li:first-child{margin-top:0}.n8n-markdown p:last-child,.n8n-markdown li:last-child{margin-bottom:0}.n8n-markdown li{margin:0}.n8n-markdown h1,.n8n-markdown h2,.n8n-markdown h3,.n8n-markdown h4,.n8n-markdown h5,.n8n-markdown h6{color:var(--color--text--shade-1);line-height:var(--line-height--md);font-weight:var(--font-weight--bold);scroll-margin-top:calc(var(--markdown--spacing) * 4);margin:0}.n8n-markdown h1{font-size:var(--font-size--xl);margin-top:calc(var(--markdown--spacing) * 3)}.n8n-markdown h2{font-size:var(--font-size--lg);margin-top:calc(var(--markdown--spacing) * 4)}.n8n-markdown h3{font-size:var(--font-size--md);margin-top:calc(var(--markdown--spacing) * 4)}.n8n-markdown h4{font-size:var(--font-size--sm);margin-top:calc(var(--markdown--spacing) * 4)}.n8n-markdown h5,.n8n-markdown h6{font-size:var(--font-size--sm);margin-top:calc(var(--markdown--spacing) * 3)}.n8n-markdown h2+h3{margin-top:calc(var(--markdown--spacing) * 3)}.n8n-markdown li>:is(h1,h2,h3,h4,h5,h6,p,strong):first-child{margin-top:0}.n8n-markdown strong,.n8n-markdown b{color:var(--color--text--shade-1);font-weight:var(--font-weight--bold)}.n8n-markdown a:not(:where(h1,h2,h3,h4,h5,h6) *){color:var(--color--text--shade-1);font-weight:var(--font-weight--medium);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.n8n-markdown a:not(:where(h1,h2,h3,h4,h5,h6) *):hover{color:var(--color--primary)}.n8n-markdown a:not(:where(h1,h2,h3,h4,h5,h6) *) code{font-weight:var(--font-weight--medium)}.n8n-markdown pre,.n8n-markdown code,.n8n-markdown kbd,.n8n-markdown samp{font-family:var(--font-family--monospace), "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-variant-ligatures:none}.n8n-markdown :not(pre)>code{font-weight:var(--font-weight--medium);font-size:var(--font-size--sm);padding:calc(var(--markdown--spacing) * .25) calc(var(--markdown--spacing) * .5);line-height:var(--line-height--lg);background-color:var(--chat--message--pre--background,var(--color--background));border-radius:var(--radius--sm)}.n8n-markdown :is(h1,h2,h3,h4,h5,h6) code{font-weight:var(--font-weight--bold)}.n8n-markdown pre{width:100%;font-family:var(--font-family--monospace);font-size:var(--font-size--sm);line-height:var(--line-height--xl);margin:var(--markdown--spacing) 0 calc(var(--markdown--spacing) * 2.5);white-space:pre-wrap;box-sizing:border-box;padding:calc(var(--markdown--spacing) * 2);background:var(--chat--message--pre--background,var(--color--background));border-radius:var(--radius--lg);tab-size:4;position:relative}.n8n-markdown pre code{font-family:var(--font-family--monospace)}.n8n-markdown pre code:before,.n8n-markdown pre code:after{content:none}.n8n-markdown pre code:last-of-type{padding-bottom:0}.n8n-markdown pre code *+*{margin-top:0}.n8n-markdown pre~pre{margin-bottom:calc(var(--markdown--spacing) * 2.5)}.n8n-markdown.n8n-markdown--single-pre pre{background:0 0;border-radius:0;margin:0}.n8n-markdown .n8n-markdown-code-block-actions{top:var(--markdown--spacing);right:var(--markdown--spacing);pointer-events:none;z-index:1;justify-content:flex-end;height:0;display:flex;position:sticky}.n8n-markdown .n8n-markdown-code-block-actions>*{pointer-events:auto}.n8n-markdown blockquote{border-left:calc(var(--markdown--spacing) * .5) solid var(--color--foreground--shade-1);padding-left:calc(var(--markdown--spacing) * 2);margin:calc(var(--markdown--spacing) * 2) 0;color:var(--color--text--tint-1);font-style:italic}.n8n-markdown blockquote p:first-of-type:before{content:open-quote}.n8n-markdown blockquote p:last-of-type:after{content:close-quote}.n8n-markdown hr{border:none;border-top:var(--border-width) var(--border-style) var(--color--foreground);margin:calc(var(--markdown--spacing) * 3) 0}.n8n-markdown hr+h2{margin-top:calc(var(--markdown--spacing) * 3)}.n8n-markdown ol{padding-left:calc(var(--markdown--spacing) * 4);margin:calc(var(--markdown--spacing) * 2) 0;list-style-type:decimal;list-style-position:outside}.n8n-markdown ol li+li{margin-top:calc(var(--markdown--spacing) * 1.5)}.n8n-markdown ol li::marker{font-family:var(--font-family--monospace);color:var(--color--text)}.n8n-markdown ul{padding-left:calc(var(--markdown--spacing) * 4);margin:calc(var(--markdown--spacing) * 2) 0;list-style-type:disc;list-style-position:outside}.n8n-markdown ul li+li{margin-top:var(--markdown--spacing)}.n8n-markdown ul li::marker{color:var(--color--foreground--shade-1)}.n8n-markdown ul[data-type=taskList]{padding-left:0;list-style:none}.n8n-markdown ul[data-type=taskList] li{align-items:flex-start;gap:var(--spacing--2xs);display:flex}.n8n-markdown ul[data-type=taskList] li>label{-webkit-user-select:none;user-select:none;flex:none}.n8n-markdown ul[data-type=taskList] li>div{flex:auto;min-width:0}.n8n-markdown ul ul,.n8n-markdown ol ol,.n8n-markdown ul ol,.n8n-markdown ol ul{margin-top:var(--markdown--spacing);padding-left:calc(var(--markdown--spacing) * 3);margin-bottom:0}.n8n-markdown .n8n-markdown-footnote-ref{font-size:var(--font-size--3xs);color:var(--color--text);background:var(--color--foreground--tint-1);border-radius:var(--radius--xl);padding:var(--spacing--4xs) var(--spacing--2xs);margin-inline:var(--spacing--5xs);vertical-align:middle;white-space:nowrap;line-height:1;font-weight:var(--font-weight--regular);display:inline-block}.n8n-markdown .n8n-markdown-table-container{width:100%;overflow-x:auto}.n8n-markdown table{table-layout:auto;width:100%;margin:calc(var(--markdown--spacing) * 2) 0;font-size:var(--font-size--sm);line-height:var(--line-height--lg)}.n8n-markdown thead{border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:var(--color--neutral-300)}.n8n-markdown thead th{color:var(--color--text--shade-1);font-weight:var(--font-weight--bold);vertical-align:bottom;padding-inline:.6em;text-align:start;padding-bottom:.8em}.n8n-markdown thead th:first-child,.n8n-markdown tbody td:first-child,.n8n-markdown tfoot td:first-child{padding-inline-start:0}.n8n-markdown thead th:last-child,.n8n-markdown tbody td:last-child,.n8n-markdown tfoot td:last-child{padding-inline-end:0}.n8n-markdown tbody tr{border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:var(--color--neutral-200)}.n8n-markdown tbody tr:last-child{border-bottom-width:0}.n8n-markdown tbody td,.n8n-markdown tfoot td{vertical-align:baseline;padding-top:.8em;padding-inline:.6em;padding-bottom:.8em}.n8n-markdown tfoot{border-top-style:solid;border-top-width:1px;border-top-color:var(--color--neutral-300)}.n8n-markdown td code{font-size:var(--font-size--xs)}.n8n-markdown th,.n8n-markdown td{text-align:start}.n8n-markdown figure{margin:calc(var(--markdown--spacing) * 2) 0}.n8n-markdown figcaption{margin-top:calc(var(--markdown--spacing) * 1.5);text-align:center;font-size:var(--font-size--sm);color:var(--color--text--tint-1);font-style:italic}.n8n-markdown img{max-width:100%;height:auto}.n8n-chat pre code.hljs{padding:1em;display:block;overflow-x:auto}.n8n-chat code.hljs{padding:3px 5px}.n8n-chat .hljs{color:#24292e;background:#fff}.n8n-chat .hljs-doctag,.n8n-chat .hljs-keyword,.n8n-chat .hljs-meta .hljs-keyword,.n8n-chat .hljs-template-tag,.n8n-chat .hljs-template-variable,.n8n-chat .hljs-type,.n8n-chat .hljs-variable.language_{color:#d73a49}.n8n-chat .hljs-title,.n8n-chat .hljs-title.class_,.n8n-chat .hljs-title.class_.inherited__,.n8n-chat .hljs-title.function_{color:#6f42c1}.n8n-chat .hljs-attr,.n8n-chat .hljs-attribute,.n8n-chat .hljs-literal,.n8n-chat .hljs-meta,.n8n-chat .hljs-number,.n8n-chat .hljs-operator,.n8n-chat .hljs-variable,.n8n-chat .hljs-selector-attr,.n8n-chat .hljs-selector-class,.n8n-chat .hljs-selector-id{color:#005cc5}.n8n-chat .hljs-regexp,.n8n-chat .hljs-string,.n8n-chat .hljs-meta .hljs-string{color:#032f62}.n8n-chat .hljs-built_in,.n8n-chat .hljs-symbol{color:#e36209}.n8n-chat .hljs-comment,.n8n-chat .hljs-code,.n8n-chat .hljs-formula{color:#6a737d}.n8n-chat .hljs-name,.n8n-chat .hljs-quote,.n8n-chat .hljs-selector-tag,.n8n-chat .hljs-selector-pseudo{color:#22863a}.n8n-chat .hljs-subst{color:#24292e}.n8n-chat .hljs-section{color:#005cc5;font-weight:700}.n8n-chat .hljs-bullet{color:#735c0f}.n8n-chat .hljs-emphasis{color:#24292e;font-style:italic}.n8n-chat .hljs-strong{color:#24292e;font-weight:700}.n8n-chat .hljs-addition{color:#22863a;background-color:#f0fff4}.n8n-chat .hljs-deletion{color:#b31d28;background-color:#ffeef0}.chat-button-wrapper-disabled{cursor:not-allowed}.chat-button{text-align:center;vertical-align:middle;-webkit-user-select:none;user-select:none;padding:var(--chat--button--padding);font-size:var(--chat--button--font-size);line-height:var(--chat--button--line-height);border-radius:var(--chat--button--border-radius);transition:color var(--chat--transition-duration) ease-in-out, background-color var(--chat--transition-duration) ease-in-out, border-color var(--chat--transition-duration) ease-in-out, box-shadow var(--chat--transition-duration) ease-in-out;cursor:pointer;text-decoration:none;display:inline-flex}.chat-button:focus{outline:0;box-shadow:0 0 0 .2rem #007bff40}.chat-button-primary{color:var(--chat--button--color--primary);background-color:var(--chat--button--background--primary);border:var(--chat--button--border--primary)}.chat-button-primary:hover{color:var(--chat--button--color--primary--hover);background-color:var(--chat--button--background--primary--hover);border:var(--chat--button--border--primary--hover)}.chat-button-primary-disabled{pointer-events:none;color:var(--chat--button--color--primary--disabled);background-color:var(--chat--button--background--primary--disabled);border:var(--chat--button--border--primary--disabled)}.chat-button-secondary{color:var(--chat--button--color--secondary);background-color:var(--chat--button--background--secondary);border:var(--chat--button--border--secondary)}.chat-button-secondary:hover{color:var(--chat--button--color--secondary--hover);background-color:var(--chat--button--background--secondary--hover);border:var(--chat--button--border--secondary--hover)}.chat-button-secondary-disabled{pointer-events:none;color:var(--chat--button--color--secondary--disabled);background-color:var(--chat--button--background--secondary--disabled);border:var(--chat--button--border--secondary--disabled)}.chat-message-markdown{box-sizing:border-box;font-size:inherit;display:block}.chat-message-markdown>:first-child{margin-top:0}.chat-message-markdown>:last-child{margin-bottom:0}.chat-message-markdown pre{font-family:inherit;font-size:inherit;white-space:pre-wrap;box-sizing:border-box;padding:var(--chat--spacing);background:var(--chat--message--pre--background);border-radius:var(--chat--border-radius);margin:0}._buttons_omuwb_1{gap:var(--chat--spacing);margin-top:var(--chat--spacing);display:flex}.chat-get-started{padding-top:var(--chat--spacing);padding-bottom:var(--chat--spacing);justify-content:center;align-items:center;height:100%;display:flex}.chat-powered-by{text-align:center}.chat-powered-by a{color:var(--chat--color--primary);text-decoration:none}.chat-get-started-footer{padding:var(--chat--spacing)}.chat-file[data-v-dc3234f3]{width:fit-content;max-width:15rem;color:var(--chat--color-dark);border:1px solid var(--chat--color-dark);background:#fff;border-radius:.25rem;flex-wrap:nowrap;align-items:center;gap:.25rem;padding:.5rem;font-size:.75rem;display:flex}.chat-file[data-v-dc3234f3]:has(.chat-file-preview){cursor:pointer}.chat-icon[data-v-dc3234f3]{flex-shrink:0}.chat-file-name-tooltip[data-v-dc3234f3]{overflow:hidden}.chat-file-name[data-v-dc3234f3]{text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;overflow:hidden}.chat-file-delete[data-v-dc3234f3],.chat-file-preview[data-v-dc3234f3]{cursor:pointer;background:0 0;border:none;flex-shrink:0;display:block}.chat-file-delete[data-v-dc3234f3]{position:relative}.chat-file-delete[data-v-dc3234f3]:hover{color:red}.chat-file-delete[data-v-dc3234f3]:before{content:"";position:absolute;inset:-10px}.chat-input[data-v-8cd4704b]{flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.chat-input[data-v-8cd4704b] *{box-sizing:border-box}.chat-inputs[data-v-8cd4704b]{width:var(--chat--input--width,100%);background:var(--chat--input--container--background,var(--color--background--light-2));border:var(--chat--input--container--border,1px solid var(--color--foreground--tint-1));border-radius:var(--chat--input--container--border-radius,24px);padding:var(--chat--input--container--padding,12px);justify-content:center;align-items:flex-end;display:flex}.chat-inputs textarea[data-v-8cd4704b]{font-family:inherit;font-size:var(--chat--input--font-size);border-radius:var(--chat--input--border-radius);width:100%;padding:var(--chat--input--padding);min-height:var(--chat--textarea--height);max-height:var(--chat--textarea--max-height);height:var(--chat--textarea--height);resize:none;background:var(--chat--input--background,white);color:var(--chat--input--text-color,initial);line-height:var(--chat--input--line-height,1.5);border:none;outline:none;overflow-y:auto}.chat-inputs textarea[data-v-8cd4704b]::placeholder{font-size:var(--chat--input--placeholder--font-size,var(--chat--input--font-size))}.chat-inputs-controls[data-v-8cd4704b]{display:flex}.chat-input-send-button[data-v-8cd4704b],.chat-input-file-button[data-v-8cd4704b]{height:var(--chat--textarea--height);width:var(--chat--textarea--height);background:var(--chat--input--send--button--background,transparent);cursor:pointer;color:var(--chat--input--send--button--color,var(--chat--color--secondary));border-radius:var(--chat--input--button--border-radius,16px);transition:all var(--chat--transition-duration,.15s) ease;border:none;justify-content:center;align-items:center;margin:8px;font-size:24px;display:inline-flex}.chat-input-send-button svg[data-v-8cd4704b],.chat-input-file-button svg[data-v-8cd4704b]{min-width:fit-content}.chat-input-send-button[disabled][data-v-8cd4704b],.chat-input-file-button[disabled][data-v-8cd4704b]{cursor:no-drop;color:var(--chat--color-disabled)}.chat-input-send-button[data-v-8cd4704b]:hover:not([disabled]),.chat-input-file-button[data-v-8cd4704b]:hover:not([disabled]){background:var(--chat--input--send--button--background-hover,#0000000d);color:var(--chat--input--send--button--color-hover,var(--chat--color--secondary))}.chat-input-file-button[data-v-8cd4704b]{background:var(--chat--input--file--button--background,transparent);color:var(--chat--input--file--button--color,var(--chat--color--secondary))}.chat-input-file-button[data-v-8cd4704b]:hover:not([disabled]){background:var(--chat--input--file--button--background-hover,#0000000d);color:var(--chat--input--file--button--color-hover,var(--chat--color--secondary))}.chat-files[data-v-8cd4704b]{width:100%;padding:var(--chat--files-spacing);flex-flow:wrap;gap:.5rem;display:flex;overflow:hidden auto}.chat-input-left-panel[data-v-8cd4704b]{width:var(--chat--input--left--panel--width);margin-left:.4rem}.chat-layout{width:100%;height:100%;font-family:var(--chat--font-family);flex-direction:column;display:flex;overflow-y:auto}.chat-layout .chat-header{height:var(--chat--header-height);padding:var(--chat--header--padding);background:var(--chat--header--background);color:var(--chat--header--color);border-top:var(--chat--header--border-top);border-bottom:var(--chat--header--border-bottom);border-left:var(--chat--header--border-left);border-right:var(--chat--header--border-right);flex-direction:column;justify-content:center;gap:1em;display:flex}.chat-layout .chat-header h1{font-size:var(--chat--heading--font-size);color:var(--chat--header--color)}.chat-layout .chat-header p{font-size:var(--chat--subtitle--font-size);line-height:var(--chat--subtitle--line-height)}.chat-layout .chat-body{background:var(--chat--body--background);flex-direction:column;flex:1;min-height:100px;display:flex;position:relative;overflow-y:auto}.chat-layout .chat-footer{border-top:var(--chat--footer--border-top,1px solid var(--chat--color-light-shade-100));background:var(--chat--footer--background);padding:var(--chat--footer--padding);color:var(--chat--footer--color)}.message-actions[data-v-41aa479b]{gap:var(--chat--message--actions--gap);margin:0 var(--chat--message--actions--gap);align-items:center;display:inline-flex}.icon[data-v-41aa479b]{color:var(--chat--message--actions--color);cursor:pointer}.icon[data-v-41aa479b]:hover{color:var(--chat--message--actions--hover)}.chat-message{max-width:fit-content;font-size:var(--chat--message--font-size);padding:var(--chat--message--padding);border-radius:var(--chat--message--border-radius);scroll-margin:3rem;display:block;position:relative;overflow:hidden}.chat-message .chat-message-actions{opacity:0;gap:1rem;display:flex;position:absolute;bottom:calc(100% - .5rem);left:0;transform:translateY(-.25rem)}.chat-message.chat-message-from-user .chat-message-actions{left:auto;right:0}.chat-message:hover .chat-message-actions{opacity:1}.chat-message p{line-height:var(--chat--message-line-height);word-wrap:break-word}.chat-message+.chat-message{margin-top:var(--chat--message--margin-bottom)}.chat-message.chat-message-from-user+.chat-message.chat-message-from-bot,.chat-message.chat-message-from-bot+.chat-message.chat-message-from-user{margin-top:var(--chat--spacing)}.chat-message.chat-message-from-bot:not(.chat-message-transparent){background-color:var(--chat--message--bot--background);border:var(--chat--message--bot--border)}.chat-message.chat-message-from-bot{color:var(--chat--message--bot--color);border-bottom-left-radius:0}.chat-message.chat-message-from-user:not(.chat-message-transparent){background-color:var(--chat--message--user--background);border:var(--chat--message--user--border)}.chat-message.chat-message-from-user{color:var(--chat--message--user--color);border-bottom-right-radius:0;margin-left:auto}.chat-message .chat-message-files{flex-wrap:wrap;gap:.25rem;padding-top:.5rem;display:flex}.chat-window-wrapper{bottom:var(--chat--window--bottom);right:var(--chat--window--right);z-index:var(--chat--window--z-index);max-width:calc(100% - var(--chat--window--right,var(--chat--spacing)) * 2);max-height:calc(100% - var(--chat--window--bottom,var(--chat--spacing)) * 2);flex-direction:column;display:flex;position:fixed}.chat-window-wrapper .chat-window{width:var(--chat--window--width);height:var(--chat--window--height);border:var(--chat--window--border,1px solid var(--chat--color-light-shade-100));border-radius:var(--chat--window--border-radius,var(--chat--border-radius));max-width:100%;max-height:100%;margin-bottom:var(--chat--window--margin-bottom,var(--chat--spacing));transform-origin:100% 100%;display:flex;overflow:hidden}.chat-window-wrapper .chat-window .chat-layout{flex:1;width:auto;height:auto}.chat-window-wrapper .chat-window-toggle{background:var(--chat--toggle--background);color:var(--chat--toggle--color);cursor:pointer;width:var(--chat--toggle--width);height:var(--chat--toggle--height);border-radius:var(--chat--toggle--border-radius,50%);transition:transform var(--chat--transition-duration) ease, background var(--chat--transition-duration) ease;flex:none;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.chat-window-wrapper .chat-window-toggle:hover,.chat-window-wrapper .chat-window-toggle:focus{background:var(--chat--toggle--hover--background);transform:scale(1.05)}.chat-window-wrapper .chat-window-toggle:active{background:var(--chat--toggle--active--background);transform:scale(.95)}.chat-window-transition-enter-active,.chat-window-transition-leave-active{transition:transform var(--chat--transition-duration) ease, opacity var(--chat--transition-duration) ease}.chat-window-transition-enter-from,.chat-window-transition-leave-to{opacity:0;transform:scale(0)}.chat-window-toggle-transition-enter-active,.chat-window-toggle-transition-leave-active{transition:opacity var(--chat--transition-duration) ease}.chat-window-toggle-transition-enter-from,.chat-window-toggle-transition-leave-to{opacity:0}.chat-message-typing{max-width:80px}.chat-message-typing.chat-message-typing-animation-scaling .chat-message-typing-circle{animation:.8s ease-in-out 3.6s infinite chat-message-typing-animation-scaling}.chat-message-typing.chat-message-typing-animation-bouncing .chat-message-typing-circle{animation:.8s ease-in-out 3.6s infinite chat-message-typing-animation-bouncing}.chat-message-typing .chat-message-typing-body{justify-content:center;align-items:center;display:flex}.chat-message-typing .chat-message-typing-circle{background-color:var(--chat--color-typing);border-radius:50%;width:10px;height:10px;margin:3px;display:block}.chat-message-typing .chat-message-typing-circle:first-child{animation-delay:0s}.chat-message-typing .chat-message-typing-circle:nth-child(2){animation-delay:.333s}.chat-message-typing .chat-message-typing-circle:nth-child(3){animation-delay:.666s}@keyframes chat-message-typing-animation-scaling{0%{transform:scale(1)}33%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}@keyframes chat-message-typing-animation-bouncing{0%{transform:translateY(0)}33%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.chat-messages-list{padding:var(--chat--messages-list--padding);margin-top:auto;display:block}.empty-container{justify-content:center;align-items:center;display:flex;container-type:size}.empty-container p{max-width:16em;margin:0}.empty{text-align:center;color:var(--color--text);justify-content:center;align-items:center;gap:var(--spacing--xs);padding-inline:var(--spacing--md);padding-bottom:var(--spacing--lg);flex-direction:column;display:flex;overflow:hidden}.emptyIcon{zoom:2.5;color:var(--color-button-secondary-border)}@container (height<150px){.empty{text-align:left;flex-direction:row}.emptyIcon{zoom:1.5}}.chat-heading{justify-content:space-between;align-items:center;display:flex}.chat-close-button{cursor:pointer;background:0 0;border:none;display:flex}.chat-close-button:hover{color:var(--chat--close--button--color-hover,var(--chat--color--primary))}
3
3
  /*$vite$:1*/
@@ -1,6 +1,6 @@
1
1
  import { Ref } from 'vue';
2
- import { CredentialStatus } from '../../types/credentialStatus';
3
- import { ChatMessage } from '../../types/messages';
2
+ import { CredentialStatus } from './credentialStatus';
3
+ import { ChatMessage } from './messages';
4
4
  import { SendMessageResponse } from './webhook';
5
5
  export interface Chat {
6
6
  initialMessages: Ref<ChatMessage[]>;
@@ -1,3 +1,3 @@
1
- import { CredentialStatus } from '../../types';
1
+ import { CredentialStatus } from '../types';
2
2
  export declare const CREDENTIAL_STATUS_MESSAGE_TYPE = "n8n-chat:credential-status";
3
3
  export declare function listenForCredentialStatus(onStatus: (status: CredentialStatus) => void): () => void;
@@ -1,4 +1,4 @@
1
- import { ChatMessage, ChatMessageText } from '../../types';
1
+ import { ChatMessage, ChatMessageText } from '../types';
2
2
  export interface NodeRunData {
3
3
  content: string;
4
4
  isComplete: boolean;
@@ -1,5 +1,5 @@
1
1
  import { Ref } from 'vue';
2
- import { ChatMessage, ChatMessageText, ChatOptions } from '../../types';
2
+ import { ChatMessage, ChatMessageText, ChatOptions } from '../types';
3
3
  import { StreamingMessageManager } from './streaming';
4
4
  export declare function handleStreamingChunk(chunk: string, nodeId: string | undefined, streamingManager: StreamingMessageManager, receivedMessage: Ref<ChatMessageText | null>, messages: Ref<ChatMessage[]>, runIndex?: number): void;
5
5
  export declare function handleNodeStart(nodeId: string, streamingManager: StreamingMessageManager, runIndex?: number): void;
@@ -1,5 +1,5 @@
1
- /*! Package version @n8n/chat@1.38.2 */
2
- import { r as e } from "./chunk-CzJRh2MK.mjs";
1
+ /*! Package version @n8n/chat@1.39.0 */
2
+ import { r as e } from "./chunk-CfuSfYee.mjs";
3
3
  //#region ../../../../node_modules/.pnpm/@vue+shared@3.5.40/node_modules/@vue/shared/dist/shared.esm-bundler.js
4
4
  /* @__NO_SIDE_EFFECTS__ */
5
5
  function t(e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/chat",
3
- "version": "1.38.2",
3
+ "version": "1.39.0",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/chat.umd.js",
6
6
  "module": "./dist/chat.es.js",
@@ -27,7 +27,7 @@
27
27
  ],
28
28
  "license": "SEE LICENSE IN LICENSE.md",
29
29
  "dependencies": {
30
- "@n8n/design-system": "2.38.2",
30
+ "@n8n/design-system": "2.39.0",
31
31
  "@vueuse/core": "^14.3.0",
32
32
  "highlight.js": "11.12.0",
33
33
  "markdown-it": "^13.0.2",
@@ -36,6 +36,9 @@
36
36
  "vue": "^3.5.13",
37
37
  "vue-markdown-render": "^2.2.1"
38
38
  },
39
+ "peerDependencies": {
40
+ "@vue/language-core": "^3.3.11"
41
+ },
39
42
  "homepage": "https://n8n.io",
40
43
  "author": {
41
44
  "name": "Jan Oberhauser",
@@ -1,2 +0,0 @@
1
- declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
- export default _default;
@@ -1,18 +0,0 @@
1
- import { StoryObj } from '@storybook/vue3';
2
- import { ChatOptions } from '../../types';
3
- declare const meta: {
4
- title: string;
5
- render: (args: Partial<ChatOptions>) => {
6
- setup(): {};
7
- template: string;
8
- };
9
- parameters: {
10
- layout: string;
11
- };
12
- tags: string[];
13
- };
14
- export default meta;
15
- type Story = StoryObj<typeof meta>;
16
- export declare const Fullscreen: Story;
17
- export declare const Windowed: Story;
18
- export declare const WorkflowChat: Story;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
File without changes
@@ -1,5 +0,0 @@
1
- import { createChat } from '../../../index';
2
- export declare function createTestChat(options?: Parameters<typeof createChat>[0]): {
3
- unmount: () => void;
4
- container: Element;
5
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,13 +0,0 @@
1
- import { LoadPreviousSessionResponse, SendMessageResponse } from '../../../types';
2
- export declare function createFetchResponse<T>(data: T): () => Promise<Response>;
3
- export declare const createGetLatestMessagesResponse: (data?: LoadPreviousSessionResponse["data"]) => LoadPreviousSessionResponse;
4
- export declare const createSendMessageResponse: (output: SendMessageResponse["output"]) => SendMessageResponse;
5
- export declare function createMockStreamingFetchResponse(chunks: Array<{
6
- type: string;
7
- content?: string;
8
- metadata?: {
9
- nodeId: string;
10
- nodeName: string;
11
- timestamp: number;
12
- };
13
- }>): () => Promise<Response>;
@@ -1,3 +0,0 @@
1
- export * from './create';
2
- export * from './fetch';
3
- export * from './selectors';