@visma-swno/gaia-chat-ui 2.1.3 → 4.0.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 (212) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +27 -5
  3. package/dist/app/app.d.ts +41 -0
  4. package/dist/app/app.styles.d.ts +2 -0
  5. package/dist/{src/app → app}/controllers/error-controller.d.ts +0 -1
  6. package/dist/{src/app → app}/localization.d.ts +1 -2
  7. package/dist/auth/auth-errors.d.ts +17 -0
  8. package/dist/auth/auth-provider.d.ts +10 -0
  9. package/dist/auth/strategies/base-strategy.d.ts +21 -0
  10. package/dist/auth/strategies/null-auth-strategy.d.ts +8 -0
  11. package/dist/auth/strategies/visitor-token-strategy.d.ts +9 -0
  12. package/dist/auth/strategies/visma-token-strategy.d.ts +9 -0
  13. package/dist/auth/strategy-factory.d.ts +13 -0
  14. package/dist/auth/token-cache.d.ts +17 -0
  15. package/dist/auth/token-parser.d.ts +6 -0
  16. package/dist/auth/types.d.ts +17 -0
  17. package/dist/components/app-header/app-header.d.ts +25 -0
  18. package/dist/components/app-header/app-header.styles.d.ts +2 -0
  19. package/dist/components/avatar/avatar.d.ts +17 -0
  20. package/dist/components/avatar/avatar.styles.d.ts +2 -0
  21. package/dist/components/button/button.d.ts +16 -0
  22. package/dist/components/button/button.styles.d.ts +2 -0
  23. package/dist/components/conversation/conversation.d.ts +39 -0
  24. package/dist/components/conversation/conversation.styles.d.ts +2 -0
  25. package/dist/components/conversation/message-renderers.d.ts +39 -0
  26. package/dist/components/conversation/scroll-controller.d.ts +47 -0
  27. package/dist/components/disclaimer/disclaimer.d.ts +10 -0
  28. package/dist/components/disclaimer/disclaimer.styles.d.ts +2 -0
  29. package/dist/components/error-notification/error-notification.d.ts +16 -0
  30. package/dist/components/error-notification/error-notification.styles.d.ts +2 -0
  31. package/dist/components/feedback/feedback.d.ts +26 -0
  32. package/dist/components/feedback/feedback.styles.d.ts +2 -0
  33. package/dist/components/icon/icon-library.d.ts +40 -0
  34. package/dist/components/icon/icon.d.ts +19 -0
  35. package/dist/components/icon/icon.styles.d.ts +2 -0
  36. package/dist/components/markdown-content/markdown-content.d.ts +11 -0
  37. package/dist/components/markdown-content/markdown-content.styles.d.ts +2 -0
  38. package/dist/components/message/message.d.ts +12 -0
  39. package/dist/components/message/message.styles.d.ts +2 -0
  40. package/dist/components/message-composer/message-composer.d.ts +52 -0
  41. package/dist/components/message-composer/message-composer.styles.d.ts +2 -0
  42. package/dist/components/message-composer/resize-controller.d.ts +11 -0
  43. package/dist/components/popover/popover.d.ts +45 -0
  44. package/dist/components/popover/popover.styles.d.ts +2 -0
  45. package/dist/components/shared/base-element.d.ts +6 -0
  46. package/dist/components/shared/watch.d.ts +11 -0
  47. package/dist/components/source-list/source-list.d.ts +15 -0
  48. package/dist/components/source-list/source-list.styles.d.ts +2 -0
  49. package/dist/components/spinner/spinner.d.ts +10 -0
  50. package/dist/components/spinner/spinner.styles.d.ts +2 -0
  51. package/dist/components/typing-indicator/typing-indicator.d.ts +10 -0
  52. package/dist/components/typing-indicator/typing-indicator.styles.d.ts +2 -0
  53. package/dist/components/welcome-message/welcome-message.d.ts +15 -0
  54. package/dist/components/welcome-message/welcome-message.styles.d.ts +2 -0
  55. package/dist/core/context/app-context.d.ts +49 -0
  56. package/dist/{src/core → core}/effects/bootstrap-effect.d.ts +5 -2
  57. package/dist/{src/core → core}/effects/conversation-effect.d.ts +5 -2
  58. package/dist/{src/core → core}/effects/feedback-effect.d.ts +5 -3
  59. package/dist/{src/core → core}/effects/stream-effect.d.ts +9 -3
  60. package/dist/{src/core → core}/effects/stream-event-router.d.ts +0 -1
  61. package/dist/core/effects/support-effect.d.ts +33 -0
  62. package/dist/{src/core → core}/effects/task-runner.d.ts +0 -1
  63. package/dist/{src/core → core}/errors/app-error.d.ts +0 -1
  64. package/dist/{src/core → core}/events/public/app.d.ts +0 -21
  65. package/dist/{src/core → core}/events/transport/sse.d.ts +0 -1
  66. package/dist/{src/core → core}/events/transport/ws.d.ts +0 -1
  67. package/dist/{src/core → core}/state/index.d.ts +0 -1
  68. package/dist/{src/core → core}/state/root-reducer.d.ts +0 -1
  69. package/dist/{src/core → core}/state/slices/config-slice.d.ts +0 -1
  70. package/dist/{src/core → core}/state/slices/messages-slice.d.ts +0 -1
  71. package/dist/{src/core → core}/state/slices/session-slice.d.ts +0 -1
  72. package/dist/{src/core → core}/state/slices/ui-slice.d.ts +0 -1
  73. package/dist/{src/core → core}/state/store.d.ts +0 -1
  74. package/dist/core/types/host-context.d.ts +49 -0
  75. package/dist/{src/core → core}/types.d.ts +0 -1
  76. package/dist/{src/core → core}/utils/message-factory.d.ts +0 -1
  77. package/dist/{da-CIz_JTpK.js → da-BhU73DwX.js} +10 -8
  78. package/dist/fi-CWA_79BI.js +47 -0
  79. package/dist/{src/generated → generated}/locale-codes.d.ts +2 -3
  80. package/dist/{src/generated → generated}/locales/da.d.ts +6 -4
  81. package/dist/generated/locales/fi.d.ts +43 -0
  82. package/dist/{src/generated → generated}/locales/nb.d.ts +6 -4
  83. package/dist/generated/locales/nl.d.ts +43 -0
  84. package/dist/{src/generated → generated}/locales/sv.d.ts +6 -4
  85. package/dist/index-DCCkNOcP.js +7847 -0
  86. package/dist/index.d.ts +3 -2
  87. package/dist/index.es.js +1 -2
  88. package/dist/index.umd.js +500 -570
  89. package/dist/infra/http/api-client.d.ts +13 -0
  90. package/dist/{src/infra → infra}/http/api-error.d.ts +0 -1
  91. package/dist/infra/http/auth-header-strategy.d.ts +14 -0
  92. package/dist/{src/infra → infra}/http/guards.d.ts +0 -1
  93. package/dist/{src/infra → infra}/signalr/signalr-error.d.ts +0 -1
  94. package/dist/{src/infra → infra}/sse/sse.d.ts +0 -1
  95. package/dist/{src/infra → infra}/sse/stream-error.d.ts +0 -1
  96. package/dist/{src/infra → infra}/storage/bootstrap-config-storage.d.ts +0 -1
  97. package/dist/{src/infra → infra}/storage/conversation-id-storage.d.ts +0 -1
  98. package/dist/{src/infra → infra}/storage/types.d.ts +0 -1
  99. package/dist/{src/infra → infra}/storage/visitor-token-storage.d.ts +0 -1
  100. package/dist/{nb-BRpEPPS7.js → nb-BWt8rKAf.js} +10 -8
  101. package/dist/nl-dkWq4g54.js +47 -0
  102. package/dist/{src/services → services}/bootstrap-service.d.ts +2 -2
  103. package/dist/{src/services → services}/chat-service.d.ts +2 -1
  104. package/dist/{src/services → services}/feedback-service.d.ts +0 -1
  105. package/dist/services/support-service.d.ts +7 -0
  106. package/dist/styles/host.styles.d.ts +2 -0
  107. package/dist/{sv-DMfrf_18.js → sv-Dyhy3RXT.js} +10 -8
  108. package/package.json +43 -20
  109. package/custom-elements.json +0 -261
  110. package/dist/da-CIz_JTpK.js.map +0 -1
  111. package/dist/index-CEIcDKQq.js +0 -6286
  112. package/dist/index-CEIcDKQq.js.map +0 -1
  113. package/dist/index.es.js.map +0 -1
  114. package/dist/index.umd.js.map +0 -1
  115. package/dist/nb-BRpEPPS7.js.map +0 -1
  116. package/dist/package.json.d.ts +0 -89
  117. package/dist/src/app/app.d.ts +0 -52
  118. package/dist/src/app/app.d.ts.map +0 -1
  119. package/dist/src/app/controllers/error-controller.d.ts.map +0 -1
  120. package/dist/src/app/localization.d.ts.map +0 -1
  121. package/dist/src/app/middlewares/middleware.d.ts +0 -12
  122. package/dist/src/app/middlewares/middleware.d.ts.map +0 -1
  123. package/dist/src/auth/access-token-provider.d.ts +0 -27
  124. package/dist/src/auth/access-token-provider.d.ts.map +0 -1
  125. package/dist/src/auth/auth-errors.d.ts +0 -13
  126. package/dist/src/auth/auth-errors.d.ts.map +0 -1
  127. package/dist/src/auth/strategies/strategy.d.ts +0 -38
  128. package/dist/src/auth/strategies/strategy.d.ts.map +0 -1
  129. package/dist/src/auth/strategies/visitor-token-strategy.d.ts +0 -14
  130. package/dist/src/auth/strategies/visitor-token-strategy.d.ts.map +0 -1
  131. package/dist/src/auth/strategies/visma-token-strategy.d.ts +0 -10
  132. package/dist/src/auth/strategies/visma-token-strategy.d.ts.map +0 -1
  133. package/dist/src/auth/strategy-factory.d.ts +0 -10
  134. package/dist/src/auth/strategy-factory.d.ts.map +0 -1
  135. package/dist/src/components/base-tw-element.d.ts +0 -5
  136. package/dist/src/components/base-tw-element.d.ts.map +0 -1
  137. package/dist/src/components/composer.d.ts +0 -21
  138. package/dist/src/components/composer.d.ts.map +0 -1
  139. package/dist/src/components/error-message.d.ts +0 -9
  140. package/dist/src/components/error-message.d.ts.map +0 -1
  141. package/dist/src/components/feedback-form.d.ts +0 -14
  142. package/dist/src/components/feedback-form.d.ts.map +0 -1
  143. package/dist/src/components/menu.d.ts +0 -11
  144. package/dist/src/components/menu.d.ts.map +0 -1
  145. package/dist/src/components/message/assistant.d.ts +0 -14
  146. package/dist/src/components/message/assistant.d.ts.map +0 -1
  147. package/dist/src/components/message/base.d.ts +0 -14
  148. package/dist/src/components/message/base.d.ts.map +0 -1
  149. package/dist/src/components/message/index.d.ts +0 -5
  150. package/dist/src/components/message/index.d.ts.map +0 -1
  151. package/dist/src/components/message/operator.d.ts +0 -7
  152. package/dist/src/components/message/operator.d.ts.map +0 -1
  153. package/dist/src/components/message/system.d.ts +0 -11
  154. package/dist/src/components/message/system.d.ts.map +0 -1
  155. package/dist/src/components/message/user.d.ts +0 -7
  156. package/dist/src/components/message/user.d.ts.map +0 -1
  157. package/dist/src/components/message-list.d.ts +0 -25
  158. package/dist/src/components/message-list.d.ts.map +0 -1
  159. package/dist/src/components/shared/markdown.d.ts +0 -2
  160. package/dist/src/components/shared/markdown.d.ts.map +0 -1
  161. package/dist/src/components/thinking-indicator.d.ts +0 -5
  162. package/dist/src/components/thinking-indicator.d.ts.map +0 -1
  163. package/dist/src/components/welcome-message.d.ts +0 -11
  164. package/dist/src/components/welcome-message.d.ts.map +0 -1
  165. package/dist/src/core/effects/bootstrap-effect.d.ts.map +0 -1
  166. package/dist/src/core/effects/conversation-effect.d.ts.map +0 -1
  167. package/dist/src/core/effects/feedback-effect.d.ts.map +0 -1
  168. package/dist/src/core/effects/stream-effect.d.ts.map +0 -1
  169. package/dist/src/core/effects/stream-event-router.d.ts.map +0 -1
  170. package/dist/src/core/effects/support-effect.d.ts +0 -25
  171. package/dist/src/core/effects/support-effect.d.ts.map +0 -1
  172. package/dist/src/core/effects/task-runner.d.ts.map +0 -1
  173. package/dist/src/core/errors/app-error.d.ts.map +0 -1
  174. package/dist/src/core/events/internal/commands.d.ts +0 -48
  175. package/dist/src/core/events/internal/commands.d.ts.map +0 -1
  176. package/dist/src/core/events/internal/index.d.ts +0 -3
  177. package/dist/src/core/events/internal/index.d.ts.map +0 -1
  178. package/dist/src/core/events/internal/utils.d.ts +0 -17
  179. package/dist/src/core/events/internal/utils.d.ts.map +0 -1
  180. package/dist/src/core/events/public/app.d.ts.map +0 -1
  181. package/dist/src/core/events/transport/sse.d.ts.map +0 -1
  182. package/dist/src/core/events/transport/ws.d.ts.map +0 -1
  183. package/dist/src/core/state/index.d.ts.map +0 -1
  184. package/dist/src/core/state/root-reducer.d.ts.map +0 -1
  185. package/dist/src/core/state/slices/config-slice.d.ts.map +0 -1
  186. package/dist/src/core/state/slices/messages-slice.d.ts.map +0 -1
  187. package/dist/src/core/state/slices/session-slice.d.ts.map +0 -1
  188. package/dist/src/core/state/slices/ui-slice.d.ts.map +0 -1
  189. package/dist/src/core/state/store.d.ts.map +0 -1
  190. package/dist/src/core/types.d.ts.map +0 -1
  191. package/dist/src/core/utils/message-factory.d.ts.map +0 -1
  192. package/dist/src/generated/locale-codes.d.ts.map +0 -1
  193. package/dist/src/generated/locales/da.d.ts.map +0 -1
  194. package/dist/src/generated/locales/nb.d.ts.map +0 -1
  195. package/dist/src/generated/locales/sv.d.ts.map +0 -1
  196. package/dist/src/index.d.ts +0 -3
  197. package/dist/src/index.d.ts.map +0 -1
  198. package/dist/src/infra/http/api-client.d.ts +0 -16
  199. package/dist/src/infra/http/api-client.d.ts.map +0 -1
  200. package/dist/src/infra/http/api-error.d.ts.map +0 -1
  201. package/dist/src/infra/http/guards.d.ts.map +0 -1
  202. package/dist/src/infra/signalr/signalr-error.d.ts.map +0 -1
  203. package/dist/src/infra/sse/sse.d.ts.map +0 -1
  204. package/dist/src/infra/sse/stream-error.d.ts.map +0 -1
  205. package/dist/src/infra/storage/bootstrap-config-storage.d.ts.map +0 -1
  206. package/dist/src/infra/storage/conversation-id-storage.d.ts.map +0 -1
  207. package/dist/src/infra/storage/types.d.ts.map +0 -1
  208. package/dist/src/infra/storage/visitor-token-storage.d.ts.map +0 -1
  209. package/dist/src/services/bootstrap-service.d.ts.map +0 -1
  210. package/dist/src/services/chat-service.d.ts.map +0 -1
  211. package/dist/src/services/feedback-service.d.ts.map +0 -1
  212. package/dist/sv-DMfrf_18.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ import { AuthProvider } from '../../auth/auth-provider';
2
+ export declare class ApiClient {
3
+ readonly authProvider: AuthProvider;
4
+ private readonly version;
5
+ private _baseUrl;
6
+ constructor(authProvider: AuthProvider, baseUrl: string);
7
+ set baseUrl(baseUrl: string);
8
+ request(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
9
+ private handleAuthRetry;
10
+ private sendRequestOnce;
11
+ private composeHeaders;
12
+ private formatUrl;
13
+ }
@@ -19,4 +19,3 @@ export declare class ApiError extends Error {
19
19
  get isServerError(): boolean;
20
20
  get isNetworkError(): boolean;
21
21
  }
22
- //# sourceMappingURL=api-error.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { AuthStrategy } from '../../auth/strategies/base-strategy';
2
+ export interface AuthHeaderStrategy {
3
+ headerName: string;
4
+ headerValue(token: string): string;
5
+ }
6
+ export declare class BearerAuthHeader implements AuthHeaderStrategy {
7
+ readonly headerName = "Authorization";
8
+ headerValue(token: string): string;
9
+ }
10
+ export declare class VisitorAuthHeader implements AuthHeaderStrategy {
11
+ readonly headerName = "VSN-Assistant-Visitor";
12
+ headerValue(token: string): string;
13
+ }
14
+ export declare function getAuthHeaderStrategy(strategy: AuthStrategy): AuthHeaderStrategy;
@@ -3,4 +3,3 @@ export declare function buildApiError(res: Response): Promise<ApiError>;
3
3
  export declare function ensureOk(res: Response): Promise<void>;
4
4
  export declare function ensureBody(res: Response): ReadableStream<Uint8Array<ArrayBuffer>>;
5
5
  export declare function ensureBodyJson<T extends object>(res: Response): Promise<T>;
6
- //# sourceMappingURL=guards.d.ts.map
@@ -2,4 +2,3 @@ export declare class SignalRError extends Error {
2
2
  readonly innerError?: unknown | undefined;
3
3
  constructor(message?: string, innerError?: unknown | undefined);
4
4
  }
5
- //# sourceMappingURL=signalr-error.d.ts.map
@@ -1,2 +1 @@
1
1
  export declare function streamIterator(stream: ReadableStream, abortSignal?: AbortSignal): AsyncGenerator<import('eventsource-parser/stream').EventSourceMessage, void, unknown>;
2
- //# sourceMappingURL=sse.d.ts.map
@@ -3,4 +3,3 @@ export declare class StreamError extends Error {
3
3
  readonly errorType?: string | undefined;
4
4
  constructor(innerError?: unknown | undefined, message?: string, errorType?: string | undefined);
5
5
  }
6
- //# sourceMappingURL=stream-error.d.ts.map
@@ -7,4 +7,3 @@ export declare class BootstrapConfigStorage implements IStorage<BootstrapConfigR
7
7
  save(value: BootstrapConfigResponse): void;
8
8
  clear(): void;
9
9
  }
10
- //# sourceMappingURL=bootstrap-config-storage.d.ts.map
@@ -5,4 +5,3 @@ export declare class ConversationIdStorage implements IStorage<string> {
5
5
  save(value: string): void;
6
6
  clear(): void;
7
7
  }
8
- //# sourceMappingURL=conversation-id-storage.d.ts.map
@@ -3,4 +3,3 @@ export interface IStorage<TValue> {
3
3
  save(value: TValue): void;
4
4
  clear(): void;
5
5
  }
6
- //# sourceMappingURL=types.d.ts.map
@@ -5,4 +5,3 @@ export declare class VisitorTokenStorage implements IStorage<string> {
5
5
  save(value: string): void;
6
6
  clear(): void;
7
7
  }
8
- //# sourceMappingURL=visitor-token-storage.d.ts.map
@@ -1,7 +1,6 @@
1
- import { s as e } from "./index-CEIcDKQq.js";
1
+ import { s as e } from "./index-DCCkNOcP.js";
2
2
  const t = {
3
3
  "assistant-message-approve": "Ja",
4
- "assistant-message-citations-length": e`Brukte ${0} kilder`,
5
4
  "assistant-message-decline": "Nei",
6
5
  "composer-error-character-limit": "Karakterbegrensning overskredet.",
7
6
  "composer-placeholder": "Skriv inn spørsmålet ditt her...",
@@ -21,25 +20,28 @@ const t = {
21
20
  "error-sse-error": "Live responsestream avbrutt. Prøv igjen.",
22
21
  "error-token-expired": "Din tilgangsnøkkel har utløpt.",
23
22
  "error-token-invalid": "Din tilgangsnøkkel er ugyldig.",
24
- "error-token-required": "Du må ha en tilgangsnøkkel for å fortsette.",
25
23
  "error-unexpected-error": "Uventet feil. Vennligst prøv igjen.",
26
24
  "error-ws-error": "Live chatsesjon feil. Det kan hjelpe å prøve igjen.",
27
- "feedback-form-cancel": "Avbryt",
28
25
  "feedback-form-comment-placeholder": "Skriv inn tilbakemeldingen her",
29
26
  "feedback-form-comments-title": "Eventuelle tilbakemeldinger?",
30
27
  "feedback-form-description": "Vennligst del dine tanker og forslag for å hjelpe oss å forbedre.",
28
+ "feedback-form-rating-hint": "Veldig misfornøyd → Veldig fornøyd",
29
+ "feedback-form-reset": "Tilbakestill",
31
30
  "feedback-form-satisfaction-title--assistant": "Hvor fornøyd er du med assistenten?",
32
31
  "feedback-form-satisfaction-title--support": "Hvor fornøyd er du med hjelpen du fikk?",
33
- "feedback-form-submit": "Send tilbakemelding",
32
+ "feedback-form-submit": "Send",
34
33
  "feedback-form-title": "Feedback",
34
+ "source-list-found-sources": e`Fant ${0} kilder`,
35
35
  "system-message-provide-feedback": "Gi tilbakemelding",
36
- "system-message-start-new-conversation": "Start ny samtale",
36
+ "system-message-start-new-conversation": "Ny samtale",
37
37
  "system-message-support-completed": "Du har blitt frakoblet fra den menneskelige support agenten.",
38
38
  "system-message-support-feedback": "For å fortsette, vennligst start en ny samtale. Vi vil også gjerne høre din tilbakemelding på vår supportopplevelse!",
39
39
  "system-message-support-started": "Du har blitt koblet til en menneskelig support agent.",
40
- "thinking-indicator-text": "Tenker..."
40
+ "thinking-indicator-text": "Tenker...",
41
+ "tooltip-clear-conversation": "Slett samtale",
42
+ "tooltip-minimize-chat": "Minimer chat",
43
+ "tooltip-open-feedback": "Åpne tilbakemeldingsskjema"
41
44
  };
42
45
  export {
43
46
  t as templates
44
47
  };
45
- //# sourceMappingURL=nb-BRpEPPS7.js.map
@@ -0,0 +1,47 @@
1
+ import { s as e } from "./index-DCCkNOcP.js";
2
+ const o = {
3
+ "assistant-message-approve": "Ja",
4
+ "assistant-message-decline": "Nee",
5
+ "composer-error-character-limit": "Tekenlimiet overschreden.",
6
+ "composer-placeholder": "Typ hier je vraag...",
7
+ "disclaimer-link": "hier",
8
+ "disclaimer-text": "Antwoorden worden gegenereerd door AI en kunnen fouten bevatten, lees meer",
9
+ "error-auth-generic": "Authenticatiefout. Authenticeer opnieuw.",
10
+ "error-forbidden": "Je hebt geen toegang tot deze actie.",
11
+ "error-network-error": "Netwerkfout. Controleer je verbinding.",
12
+ "error-not-found": "Niet gevonden.",
13
+ "error-offline": "Je bent offline. Controleer je verbinding.",
14
+ "error-profile-not-found": "Kon het huidige profiel niet laden. Gebruik je het juiste profiel?",
15
+ "error-rate-limit": "Te veel verzoeken. Doe het rustig aan.",
16
+ "error-request-canceled": "Verzoek geannuleerd.",
17
+ "error-server-error": "Er is een probleem met de server. Probeer het opnieuw.",
18
+ "error-session-expired": "Je sessie is verlopen. Log opnieuw in.",
19
+ "error-something-went-wrong": "Er is iets misgegaan.",
20
+ "error-sse-error": "Live-responsstroom onderbroken. Probeer het opnieuw.",
21
+ "error-token-expired": "Je toegangstoken is verlopen.",
22
+ "error-token-invalid": "Je toegangstoken is ongeldig.",
23
+ "error-unexpected-error": "Onverwachte fout. Probeer het opnieuw.",
24
+ "error-ws-error": "Verbindingsfout live chat. Opnieuw verbinden kan helpen.",
25
+ "feedback-form-comment-placeholder": "Voer hier je opmerking in",
26
+ "feedback-form-comments-title": "Nog andere opmerkingen?",
27
+ "feedback-form-description": "Deel je ideëen en suggesties om ons te helpen verbeteren.",
28
+ "feedback-form-rating-hint": "Zeer ontevreden → Zeer tevreden",
29
+ "feedback-form-reset": "Wissen",
30
+ "feedback-form-satisfaction-title--assistant": "Hoe tevreden ben je over de assistent?",
31
+ "feedback-form-satisfaction-title--support": "Hoe tevreden ben je over de ontvangen hulp?",
32
+ "feedback-form-submit": "Verzenden",
33
+ "feedback-form-title": "Feedback",
34
+ "source-list-found-sources": e`${0} bronnen gevonden`,
35
+ "system-message-provide-feedback": "Geef feedback",
36
+ "system-message-start-new-conversation": "Nieuw gesprek",
37
+ "system-message-support-completed": "De verbinding met de supportmedewerker is verbroken.",
38
+ "system-message-support-feedback": "Start een nieuw gesprek om door te gaan. We horen ook graag je feedback over onze support!",
39
+ "system-message-support-started": "Je bent doorverbonden met een supportmedewerker.",
40
+ "thinking-indicator-text": "Aan het denken...",
41
+ "tooltip-clear-conversation": "Gesprek wissen",
42
+ "tooltip-minimize-chat": "Chat minimaliseren",
43
+ "tooltip-open-feedback": "Feedback openen"
44
+ };
45
+ export {
46
+ o as templates
47
+ };
@@ -1,6 +1,7 @@
1
1
  import { ApiClient } from '../infra/http/api-client';
2
2
  export type WelcomeMessageContentBlock = {
3
- icon: 'SparklesIcon' | 'LightBulbIcon' | 'MessageCircleIcon';
3
+ icon: 'SparklesIcon' | 'LightBulbIcon' | 'MessageCircleIcon' | 'MegaphoneIcon';
4
+ headline: string;
4
5
  text: string;
5
6
  };
6
7
  export type WelcomeMessage = {
@@ -20,4 +21,3 @@ export declare class BootstrapService {
20
21
  getBootstrapConfig(): Promise<BootstrapConfigResponse>;
21
22
  clearBootstrapConfig(): void;
22
23
  }
23
- //# sourceMappingURL=bootstrap-service.d.ts.map
@@ -1,11 +1,13 @@
1
1
  import { ChatSseEvent } from '../core/events/transport/sse';
2
2
  import { Conversation } from '../core/types';
3
+ import { HostContext } from '../core/types/host-context';
3
4
  import { ApiClient } from '../infra/http/api-client';
4
5
  export type SendMessageRequest = {
5
6
  message: string;
6
7
  profileId: string;
7
8
  conversationId: string | null;
8
9
  partnerId: string | null;
10
+ hostContext?: HostContext | null;
9
11
  };
10
12
  export type ApproveToolCallRequest = {
11
13
  conversationId: string;
@@ -26,4 +28,3 @@ export declare class ChatService {
26
28
  getConversationHistory(conversationId: string): Promise<Conversation>;
27
29
  private parseSseEvent;
28
30
  }
29
- //# sourceMappingURL=chat-service.d.ts.map
@@ -10,4 +10,3 @@ export declare class FeedbackService {
10
10
  constructor(apiClient: ApiClient);
11
11
  submitFeedback(request: SubmitFeedbackRequest): Promise<void>;
12
12
  }
13
- //# sourceMappingURL=feedback-service.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { ApiClient } from '../infra/http/api-client';
2
+ export declare class SupportService {
3
+ private readonly apiClient;
4
+ constructor(apiClient: ApiClient);
5
+ sendMessage(conversationId: string, content: string): Promise<void>;
6
+ sendTyping(conversationId: string): Promise<void>;
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -1,7 +1,6 @@
1
- import { s as e } from "./index-CEIcDKQq.js";
1
+ import { s as e } from "./index-DCCkNOcP.js";
2
2
  const t = {
3
3
  "assistant-message-approve": "Ja",
4
- "assistant-message-citations-length": e`Använde ${0} källor`,
5
4
  "assistant-message-decline": "Nej",
6
5
  "composer-error-character-limit": "Teckenbegränsningen har överskridits.",
7
6
  "composer-placeholder": "Skriv din fråga här...",
@@ -21,25 +20,28 @@ const t = {
21
20
  "error-sse-error": "Live-svarströmmen avbröts. Försök igen.",
22
21
  "error-token-expired": "Din åtkomsttoken har löpt ut.",
23
22
  "error-token-invalid": "Din åtkomsttoken är ogiltig.",
24
- "error-token-required": "Du måste ange en åtkomsttoken för att fortsätta.",
25
23
  "error-unexpected-error": "Oväntat fel. Vänligen försök igen.",
26
24
  "error-ws-error": "Fel vid livechattanslutning. Att återansluta kan hjälpa.",
27
- "feedback-form-cancel": "Avbryt",
28
25
  "feedback-form-comment-placeholder": "Skriv din kommentar här",
29
26
  "feedback-form-comments-title": "Några ytterligare kommentarer?",
30
27
  "feedback-form-description": "Dela gärna dina tankar och förslag för att hjälpa oss att bli bättre.",
28
+ "feedback-form-rating-hint": "Mycket missnöjd → Mycket nöjd",
29
+ "feedback-form-reset": "Återställ",
31
30
  "feedback-form-satisfaction-title--assistant": "Hur nöjd är du med assistenten?",
32
31
  "feedback-form-satisfaction-title--support": "Hur nöjd är du med hjälpen du fick?",
33
- "feedback-form-submit": "Skicka feedback",
32
+ "feedback-form-submit": "Skicka",
34
33
  "feedback-form-title": "Feedback",
34
+ "source-list-found-sources": e`Hittade ${0} källor`,
35
35
  "system-message-provide-feedback": "Lämna feedback",
36
- "system-message-start-new-conversation": "Starta ny konversation",
36
+ "system-message-start-new-conversation": "Ny konversation",
37
37
  "system-message-support-completed": "Du har blivit frånkopplad från supportagenten.",
38
38
  "system-message-support-feedback": "För att fortsätta, vänligen starta en ny konversation. Vi vill också gärna höra din feedback om vår supportupplevelse!",
39
39
  "system-message-support-started": "Du har blivit ansluten till en mänsklig supportagent.",
40
- "thinking-indicator-text": "Tänker..."
40
+ "thinking-indicator-text": "Tänker...",
41
+ "tooltip-clear-conversation": "Rensa konversation",
42
+ "tooltip-minimize-chat": "Minimera chatt",
43
+ "tooltip-open-feedback": "Öppna feedback"
41
44
  };
42
45
  export {
43
46
  t as templates
44
47
  };
45
- //# sourceMappingURL=sv-DMfrf_18.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@visma-swno/gaia-chat-ui",
3
3
  "type": "module",
4
- "version": "2.1.3",
4
+ "version": "4.0.0",
5
5
  "description": "Web component library for the Gaia Assistant Chat UI",
6
6
  "repository": "https://github.com/visma-swno/vsn-assistant.git",
7
7
  "author": "Visma Software Nordic",
@@ -9,14 +9,15 @@
9
9
  "main": "dist/index.umd.js",
10
10
  "module": "dist/index.es.js",
11
11
  "types": "dist/index.d.ts",
12
- "customElements": "custom-elements.json",
12
+ "customElements": "dist/custom-elements.json",
13
13
  "exports": {
14
14
  ".": {
15
15
  "types": "./dist/index.d.ts",
16
16
  "require": "./dist/index.umd.js",
17
17
  "import": "./dist/index.es.js"
18
18
  },
19
- "./custom-elements.json": "./custom-elements.json"
19
+ "./dist/custom-elements.json": "./dist/custom-elements.json",
20
+ "./package.json": "./package.json"
20
21
  },
21
22
  "files": [
22
23
  "dist",
@@ -24,58 +25,80 @@
24
25
  "CHANGELOG.md",
25
26
  "custom-elements.json"
26
27
  ],
28
+ "browserslist": [
29
+ "defaults",
30
+ "not IE 11",
31
+ "maintained node versions"
32
+ ],
27
33
  "sideEffects": true,
28
34
  "scripts": {
29
35
  "clean": "rimraf dist && rimraf -g \"./*.tgz\"",
30
- "build": "tsc -p tsconfig.app.json && vite build",
36
+ "build": "vite build",
31
37
  "dev": "vite",
32
38
  "lint": "yarn lint:eslint && yarn lint:lit-analyzer",
33
- "lint:eslint": "eslint \"src/**/*.ts\"",
39
+ "lint:eslint": "eslint \"**/*.ts\"",
34
40
  "lint:lit-analyzer": "lit-analyzer \"src/**/*.ts\" --strict",
35
- "test:unit": "vitest run --reporter=default",
36
- "test:unit:watch": "vitest",
37
- "test:unit:cov": "vitest run --coverage",
41
+ "test": "vitest run --reporter=default",
42
+ "test:watch": "vitest",
43
+ "test:cov": "vitest run --coverage",
38
44
  "test:e2e": "playwright test",
39
- "analyze": "cem analyze --litelement --globs \"src/app/*.ts\"",
40
- "analyze:watch": "cem analyze --litelement --globs \"src/app/*.ts\" --watch",
41
- "prepack": "yarn clean && yarn build"
45
+ "prepack": "yarn clean && yarn build",
46
+ "storybook": "storybook dev -p 6006",
47
+ "build-storybook": "storybook build"
42
48
  },
43
49
  "devDependencies": {
44
50
  "@axe-core/playwright": "^4.10.2",
45
- "@custom-elements-manifest/analyzer": "^0.10.5",
51
+ "@custom-elements-manifest/analyzer": "^0.11.0",
46
52
  "@lit/localize-tools": "^0.8.0",
47
53
  "@open-wc/testing": "^4.0.0",
48
54
  "@playwright/test": "^1.55.0",
49
- "@tailwindcss/typography": "^0.5.16",
50
- "@tailwindcss/vite": "^4.1.12",
55
+ "@storybook/web-components-vite": "^9.1.10",
51
56
  "@testing-library/dom": "^10.4.1",
52
57
  "@testing-library/user-event": "^14.6.1",
53
58
  "@types/node": "^24.3.0",
54
59
  "@types/testing-library__dom": "^7.5.0",
55
60
  "@vitest/browser": "^3.2.4",
56
61
  "@vitest/coverage-v8": "^3.2.4",
62
+ "@wc-toolkit/jsx-types": "^1.4.2",
63
+ "autoprefixer": "^10.4.21",
64
+ "cssnano": "^7.1.1",
65
+ "custom-element-vs-code-integration": "^1.5.0",
57
66
  "eslint": "^9.34.0",
58
67
  "eslint-config-prettier": "^10.1.8",
59
- "eslint-import-resolver-typescript": "^4.4.4",
60
68
  "eslint-plugin-import": "^2.32.0",
61
69
  "eslint-plugin-lit": "^2.1.1",
70
+ "eslint-plugin-lit-a11y": "^5.1.1",
71
+ "eslint-plugin-perfectionist": "^4.15.1",
62
72
  "eslint-plugin-prettier": "^5.5.4",
63
- "happy-dom": "^18.0.1",
73
+ "eslint-plugin-storybook": "9.1.16",
74
+ "eslint-plugin-wc": "^3.0.2",
75
+ "happy-dom": "^20.0.0",
64
76
  "jwt-decode": "^4.0.0",
65
77
  "lit": "^3.3.1",
66
78
  "lit-analyzer": "^2.0.3",
79
+ "postcss": "^8.5.6",
80
+ "postcss-lit": "^1.3.1",
67
81
  "prettier": "^3.6.2",
68
- "prettier-plugin-tailwindcss": "^0.6.14",
69
82
  "rimraf": "^6.0.1",
70
- "tailwindcss": "^4.1.12",
83
+ "storybook": "9.1.16",
84
+ "stylelint": "^16.25.0",
85
+ "stylelint-config-recess-order": "^7.4.0",
86
+ "stylelint-config-standard": "^39.0.1",
87
+ "stylelint-declaration-strict-value": "^1.10.11",
88
+ "stylelint-order": "^7.0.0",
89
+ "stylelint-value-no-unknown-custom-properties": "^6.0.1",
71
90
  "ts-lit-plugin": "^2.0.2",
72
91
  "typescript": "^5.9.2",
73
92
  "typescript-eslint": "^8.40.0",
74
93
  "vite": "^7.1.3",
94
+ "vite-plugin-cem": "^0.8.4",
75
95
  "vite-plugin-dts": "^4.5.4",
76
- "vitest": "^3.2.4"
96
+ "vitest": "^3.2.4",
97
+ "vitest-axe": "1.0.0-pre.5"
77
98
  },
78
99
  "dependencies": {
100
+ "@floating-ui/dom": "^1.7.4",
101
+ "@lit/context": "^1.1.6",
79
102
  "@lit/localize": "^0.12.2",
80
103
  "@microsoft/signalr": "^9.0.6",
81
104
  "classnames": "^2.5.1",
@@ -84,4 +107,4 @@
84
107
  "lit": "^3.3.1",
85
108
  "marked": "^16.2.0"
86
109
  }
87
- }
110
+ }