@shane_donnelly/dsi-internal-react-utils 1.2.1 → 1.3.1

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 (36) hide show
  1. package/dist/BotMessage-9XyyKf52.js +242 -0
  2. package/dist/{MarkdownRenderer-vU2aoyaG.js → MarkdownRenderer-DsCX-ARI.js} +1 -1
  3. package/dist/SessionContainer-C4YWEApz.js +48 -0
  4. package/dist/{SessionHistory-BUYwbZjE.js → SessionHistory-uFMdR01J.js} +11 -23
  5. package/dist/{UserMessage-CkrDUpkQ.js → UserMessage-iwSKfrPo.js} +1 -1
  6. package/dist/{bs-CmZftXMO.js → bs-BGOTKj78.js} +20 -2
  7. package/dist/chatbot/BotMessage/ImageElement.d.ts +21 -0
  8. package/dist/chatbot/BotMessage/ImageElement.js +68 -0
  9. package/dist/chatbot/BotMessage/IsolatedHtmlElement.d.ts +26 -0
  10. package/dist/chatbot/BotMessage/IsolatedHtmlElement.js +35 -0
  11. package/dist/chatbot/BotMessage/PlotlyChartElement.d.ts +23 -0
  12. package/dist/chatbot/BotMessage/PlotlyChartElement.js +30 -0
  13. package/dist/chatbot/BotMessage/VegaChartElement.d.ts +21 -0
  14. package/dist/chatbot/BotMessage/VegaChartElement.js +17 -0
  15. package/dist/chatbot/BotMessage/index.d.ts +6 -16
  16. package/dist/chatbot/BotMessage/index.js +1 -1
  17. package/dist/chatbot/BotMessage/types.d.ts +16 -0
  18. package/dist/chatbot/BotMessage/types.js +0 -0
  19. package/dist/chatbot/InputBar/index.js +1 -1
  20. package/dist/chatbot/MarkdownRenderer/index.js +1 -1
  21. package/dist/chatbot/SessionContainer/index.js +1 -1
  22. package/dist/chatbot/SessionHistory/index.js +1 -1
  23. package/dist/chatbot/UserMessage/index.js +1 -1
  24. package/dist/chatbot/index.d.ts +1 -1
  25. package/dist/chatbot/index.js +6 -6
  26. package/dist/keycloak/core/client.d.ts +1 -1
  27. package/dist/keycloak/core/client.js +6 -3
  28. package/dist/keycloak/react/KeycloakProvider/index.js +16 -6
  29. package/dist/main.d.ts +1 -1
  30. package/dist/main.js +6 -6
  31. package/dist/style.css +1 -1
  32. package/dist/styles.module-DTfCO5TA.js +34 -0
  33. package/package.json +9 -5
  34. package/dist/BotMessage-DegH8sM-.js +0 -255
  35. package/dist/SessionContainer-DfTD7hX3.js +0 -50
  36. /package/dist/{InputBar-CVy2_QtC.js → InputBar-DOkn2T-l.js} +0 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Données de base pour tout élément d'un message bot.
3
+ *
4
+ * ```python
5
+ * # Pydantic (Python)
6
+ * class ElementData(BaseModel):
7
+ * index: int
8
+ * type: str
9
+ * ```
10
+ */
11
+ export interface ElementData {
12
+ /** Ordre d'affichage de l'élément dans le message */
13
+ index: number;
14
+ /** Type d'élément — doit correspondre à une clé du registry utilisé */
15
+ type: string;
16
+ }
File without changes
@@ -1,3 +1,3 @@
1
- import { t as e } from "../../InputBar-CVy2_QtC.js";
1
+ import { t as e } from "../../InputBar-DOkn2T-l.js";
2
2
  import { usePlusSlot as t } from "./usePlusSlot.js";
3
3
  export { e as InputBar, t as usePlusSlot };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../MarkdownRenderer-vU2aoyaG.js";
1
+ import { t as e } from "../../MarkdownRenderer-DsCX-ARI.js";
2
2
  export { e as MarkdownRenderer };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../SessionContainer-DfTD7hX3.js";
1
+ import { t as e } from "../../SessionContainer-C4YWEApz.js";
2
2
  export { e as SessionContainer };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../SessionHistory-BUYwbZjE.js";
1
+ import { t as e } from "../../SessionHistory-uFMdR01J.js";
2
2
  export { e as SessionHistory };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../UserMessage-CkrDUpkQ.js";
1
+ import { t as e } from "../../UserMessage-iwSKfrPo.js";
2
2
  export { e as UserMessage };
@@ -5,7 +5,7 @@ export type { MarkdownRendererProps } from './MarkdownRenderer';
5
5
  export { UserMessage } from './UserMessage';
6
6
  export type { UserMessageData, UserMessageProps } from './UserMessage';
7
7
  export { BotMessage, defaultBotMessageRegistry } from './BotMessage';
8
- export type { ElementData, TextElementData, ReasoningElementData, ToolElementData, SearchElementData, BotMessageData, BotMessageRegistry, BotMessageProps, } from './BotMessage';
8
+ export type { ElementData, TextElementData, ReasoningElementData, ToolElementData, SearchElementData, ImageElementData, IsolatedHtmlElementData, VegaChartElementData, PlotlyChartElementData, BotMessageData, BotMessageRegistry, BotMessageProps, } from './BotMessage';
9
9
  export { SessionHistory } from './SessionHistory';
10
10
  export type { SessionHistoryProps, SessionUserMessageSlots } from './SessionHistory';
11
11
  export { InputBar, usePlusSlot } from './InputBar';
@@ -1,11 +1,11 @@
1
- import { t as e } from "../MarkdownRenderer-vU2aoyaG.js";
1
+ import { t as e } from "../MarkdownRenderer-DsCX-ARI.js";
2
2
  import { getCurrentTheme as t, getTheme as n, setTheme as r } from "./theme/types.js";
3
3
  import { useTheme as i } from "./theme/useTheme.js";
4
4
  import "./theme/index.js";
5
- import { t as a } from "../UserMessage-CkrDUpkQ.js";
6
- import { n as o, t as s } from "../BotMessage-DegH8sM-.js";
7
- import { t as c } from "../SessionHistory-BUYwbZjE.js";
8
- import { t as l } from "../InputBar-CVy2_QtC.js";
5
+ import { t as a } from "../UserMessage-iwSKfrPo.js";
6
+ import { n as o, t as s } from "../BotMessage-9XyyKf52.js";
7
+ import { t as c } from "../SessionHistory-uFMdR01J.js";
8
+ import { t as l } from "../InputBar-DOkn2T-l.js";
9
9
  import { usePlusSlot as u } from "./InputBar/usePlusSlot.js";
10
- import { t as d } from "../SessionContainer-DfTD7hX3.js";
10
+ import { t as d } from "../SessionContainer-C4YWEApz.js";
11
11
  export { s as BotMessage, l as InputBar, e as MarkdownRenderer, d as SessionContainer, c as SessionHistory, a as UserMessage, o as defaultBotMessageRegistry, t as getCurrentTheme, n as getTheme, r as setTheme, u as usePlusSlot, i as useTheme };
@@ -5,7 +5,7 @@ import { KeycloakConfig, AuthUser } from './types';
5
5
  * @param config - Configuration du serveur Keycloak
6
6
  * @returns Instance Keycloak
7
7
  */
8
- export declare function createKeycloakInstance(config: KeycloakConfig): Keycloak;
8
+ export declare function createKeycloakInstance(config: KeycloakConfig): Promise<Keycloak>;
9
9
  /**
10
10
  * Initialise une instance Keycloak avec PKCE S256.
11
11
  * Traite un éventuel callback d'authentification dans l'URL,
@@ -1,7 +1,10 @@
1
- import e from "keycloak-js";
2
1
  //#region lib/keycloak/core/client.ts
3
- function t(t) {
4
- return new e({
2
+ async function e() {
3
+ let e = await import("keycloak-js");
4
+ return e.default ?? e;
5
+ }
6
+ async function t(t) {
7
+ return new (await (e()))({
5
8
  url: t.url,
6
9
  realm: t.realm,
7
10
  clientId: t.clientId
@@ -34,12 +34,22 @@ function u({ config: r, children: u, idpHint: d, refreshInterval: f = 300, minTo
34
34
  a(() => {
35
35
  if (S.current) return;
36
36
  S.current = !0;
37
- let n = e(r);
38
- x.current = n, t(n).then((e) => {
39
- E(n), e || g("unauthenticated");
40
- }).catch((e) => {
41
- console.error("[dsi-keycloak] Init error:", e), g("error");
42
- });
37
+ let n = !1;
38
+ return (async () => {
39
+ try {
40
+ let i = await e(r);
41
+ if (n) return;
42
+ x.current = i;
43
+ let a = await t(i);
44
+ if (n) return;
45
+ E(i), a || g("unauthenticated");
46
+ } catch (e) {
47
+ if (n) return;
48
+ console.error("[dsi-keycloak] Init error:", e), g("error");
49
+ }
50
+ })(), () => {
51
+ n = !0;
52
+ };
43
53
  }, []), a(() => {
44
54
  if (h !== "authenticated") return;
45
55
  let e = window.setInterval(() => {
package/dist/main.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { KeycloakProvider, useKeycloakAuth, logoutKeycloak, refreshTokenKeycloak, } from './keycloak';
2
2
  export type { KeycloakProviderProps, KeycloakConfig, KeycloakAuthOptions, AuthStatus, AuthUser, AuthContextValue, LoginOptions, LogoutOptions, } from './keycloak';
3
3
  export { setTheme, getTheme, getCurrentTheme, useTheme, MarkdownRenderer, UserMessage, BotMessage, defaultBotMessageRegistry, SessionHistory, InputBar, SessionContainer, usePlusSlot, } from './chatbot';
4
- export type { ColorPalette, Theme, MarkdownRendererProps, UserMessageData, UserMessageProps, ElementData, TextElementData, ReasoningElementData, ToolElementData, SearchElementData, BotMessageData, BotMessageRegistry, BotMessageProps, SessionHistoryProps, SessionUserMessageSlots, InputBarProps, ActionButtonType, SessionContainerProps, } from './chatbot';
4
+ export type { ColorPalette, Theme, MarkdownRendererProps, UserMessageData, UserMessageProps, ElementData, TextElementData, ReasoningElementData, ToolElementData, SearchElementData, ImageElementData, IsolatedHtmlElementData, VegaChartElementData, PlotlyChartElementData, BotMessageData, BotMessageRegistry, BotMessageProps, SessionHistoryProps, SessionUserMessageSlots, InputBarProps, ActionButtonType, SessionContainerProps, } from './chatbot';
package/dist/main.js CHANGED
@@ -1,15 +1,15 @@
1
- import { t as e } from "./MarkdownRenderer-vU2aoyaG.js";
1
+ import { t as e } from "./MarkdownRenderer-DsCX-ARI.js";
2
2
  import { logoutKeycloak as t, refreshTokenKeycloak as n } from "./keycloak/core/client.js";
3
3
  import { KeycloakProvider as r } from "./keycloak/react/KeycloakProvider/index.js";
4
4
  import { useKeycloakAuth as i } from "./keycloak/react/hooks/useKeycloakAuth.js";
5
5
  import "./keycloak/index.js";
6
6
  import { getCurrentTheme as a, getTheme as o, setTheme as s } from "./chatbot/theme/types.js";
7
7
  import { useTheme as c } from "./chatbot/theme/useTheme.js";
8
- import { t as l } from "./UserMessage-CkrDUpkQ.js";
9
- import { n as u, t as d } from "./BotMessage-DegH8sM-.js";
10
- import { t as f } from "./SessionHistory-BUYwbZjE.js";
11
- import { t as p } from "./InputBar-CVy2_QtC.js";
8
+ import { t as l } from "./UserMessage-iwSKfrPo.js";
9
+ import { n as u, t as d } from "./BotMessage-9XyyKf52.js";
10
+ import { t as f } from "./SessionHistory-uFMdR01J.js";
11
+ import { t as p } from "./InputBar-DOkn2T-l.js";
12
12
  import { usePlusSlot as m } from "./chatbot/InputBar/usePlusSlot.js";
13
- import { t as h } from "./SessionContainer-DfTD7hX3.js";
13
+ import { t as h } from "./SessionContainer-C4YWEApz.js";
14
14
  import "./chatbot/index.js";
15
15
  export { d as BotMessage, p as InputBar, r as KeycloakProvider, e as MarkdownRenderer, h as SessionContainer, f as SessionHistory, l as UserMessage, u as defaultBotMessageRegistry, a as getCurrentTheme, o as getTheme, t as logoutKeycloak, n as refreshTokenKeycloak, s as setTheme, i as useKeycloakAuth, m as usePlusSlot, c as useTheme };
package/dist/style.css CHANGED
@@ -1,2 +1,2 @@
1
- ._dsi-markdown_23cwi_1{color:inherit;word-break:break-word;font-family:inherit;font-size:1rem;line-height:1.7}._dsi-markdown_23cwi_1 h1,._dsi-markdown_23cwi_1 h2,._dsi-markdown_23cwi_1 h3,._dsi-markdown_23cwi_1 h4,._dsi-markdown_23cwi_1 h5,._dsi-markdown_23cwi_1 h6{margin:1.25em 0 .5em;font-weight:600;line-height:1.3}._dsi-markdown_23cwi_1 h1{font-size:1.6em}._dsi-markdown_23cwi_1 h2{font-size:1.35em}._dsi-markdown_23cwi_1 h3{font-size:1.15em}._dsi-markdown_23cwi_1 h4{font-size:1em}._dsi-markdown_23cwi_1 p{margin:.5em 0}._dsi-markdown_23cwi_1 a{color:var(--dsi-accent,#06c);text-underline-offset:2px;text-decoration:underline}._dsi-markdown_23cwi_1 a:hover{opacity:.8}._dsi-markdown_23cwi_1 ul,._dsi-markdown_23cwi_1 ol{margin:.5em 0;padding-left:1.5em}._dsi-markdown_23cwi_1 li{margin:.2em 0}._dsi-markdown_23cwi_1 li>p{margin:0}._dsi-markdown_23cwi_1 blockquote{border-left:3px solid var(--dsi-border,#e5e5e5);color:var(--dsi-text-secondary,#888);margin:.75em 0;padding:.4em 1em;font-style:italic}._dsi-markdown-table-wrapper_23cwi_64{width:100%;margin:.75em 0;display:inline-block;position:relative}._dsi-markdown-table-wrapper_23cwi_64 table{border-collapse:collapse;width:100%;margin:0;font-size:.9em}._dsi-markdown-table-wrapper_23cwi_64 th,._dsi-markdown-table-wrapper_23cwi_64 td{border:1px solid var(--dsi-border,#e5e5e5);text-align:left;padding:.45em .75em}._dsi-markdown-table-wrapper_23cwi_64 th{background:var(--dsi-bg-secondary,#f7f7f8);font-weight:600}._dsi-markdown-table-copy-btn_23cwi_86{background:var(--dsi-bg-secondary,#f7f7f8);border:1px solid var(--dsi-border,#e5e5e5);cursor:pointer;color:var(--dsi-text-secondary,#888);opacity:0;border-radius:4px;align-items:center;gap:4px;padding:4px 6px;font-family:inherit;font-size:.9em;transition:background .15s,color .15s,opacity .15s;display:flex;position:absolute;bottom:6px;right:6px}._dsi-markdown-table-wrapper_23cwi_64:hover ._dsi-markdown-table-copy-btn_23cwi_86{opacity:1}._dsi-markdown-table-copy-btn_23cwi_86:hover{color:var(--dsi-text-primary,#111);background:#0000000f}._dsi-markdown-table-copy-btn_23cwi_86 svg{font-size:1em}._dsi-markdown_23cwi_1 hr{border:none;border-top:1px solid var(--dsi-border,#e5e5e5);margin:1em 0}._dsi-markdown_23cwi_1 :not(pre)>code{background:var(--dsi-code-bg,#f6f8fa);color:var(--dsi-code-text,#24292e);border-radius:4px;padding:.15em .4em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.875em}._dsi-markdown-code-block_23cwi_133{background:var(--dsi-code-bg,#f6f8fa);border:1px solid var(--dsi-border,#e5e5e5);border-radius:8px;margin:.75em 0;position:relative;overflow:hidden}._dsi-markdown-code-lang_23cwi_142{border-bottom:1px solid var(--dsi-border,#e5e5e5);color:var(--dsi-text-secondary,#888);letter-spacing:.03em;background:#0000000a;justify-content:space-between;align-items:center;padding:.35em .75em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75em;display:flex}._dsi-markdown-copy-btn_23cwi_155{cursor:pointer;color:var(--dsi-text-secondary,#888);background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-family:inherit;font-size:.9em;transition:background .15s,color .15s;display:flex}._dsi-markdown-copy-btn_23cwi_155:hover{color:var(--dsi-text-primary,#111);background:#0000000f}._dsi-markdown-copy-btn_23cwi_155 svg{font-size:.9em}._dsi-markdown-code-block_23cwi_133 pre{color:var(--dsi-code-text,#24292e);background:0 0;margin:0;padding:.9em 1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.875em;line-height:1.6;overflow-x:auto}._dsi-markdown-code-block_23cwi_133 pre code{font-size:inherit;color:inherit;background:0 0;border-radius:0;padding:0}._dsi-markdown_23cwi_1 input[type=checkbox]{accent-color:var(--dsi-accent,#06c);margin-right:.4em}._dsi-markdown_23cwi_1 img{border-radius:4px;max-width:100%}._dsi-markdown_23cwi_1 del{opacity:.7}._dsi-bot-msg_9iqvz_2{width:100%;color:var(--dsi-text-primary,#111);flex-direction:column;gap:.5em;padding-bottom:1.4em;font-size:.95rem;display:flex;position:relative}._dsi-bot-loading-dot_9iqvz_15{color:var(--dsi-text-primary,#111);margin-bottom:.1em;animation:1.4s ease-in-out infinite _dsi-bot-pulse_9iqvz_1;display:block}@keyframes _dsi-bot-pulse_9iqvz_1{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.6)}}._dsi-bot-msg-footer_9iqvz_28{align-items:center;gap:.4em;height:1.2em;display:flex;position:absolute;bottom:0;left:0}._dsi-bot-copy-btn_9iqvz_39{cursor:pointer;color:var(--dsi-text-secondary,#888);background:0 0;border:none;border-radius:3px;align-items:center;gap:3px;padding:0;font-family:inherit;font-size:.85rem;line-height:1;transition:color .15s;display:flex}._dsi-bot-copy-btn_9iqvz_39:hover{color:var(--dsi-text-primary,#111)}._dsi-bot-copy-btn_9iqvz_39 svg{font-size:1em}._dsi-bot-msg-time_9iqvz_62{color:var(--dsi-text-secondary,#888);opacity:0;white-space:nowrap;font-size:.68rem;line-height:1;transition:opacity .15s}._dsi-bot-msg_9iqvz_2:hover ._dsi-bot-msg-time_9iqvz_62{opacity:1}._dsi-bot-reasoning_9iqvz_75,._dsi-bot-tool_9iqvz_76,._dsi-bot-search_9iqvz_77{color:var(--dsi-reasoning-text,#555);font-size:1em;font-style:italic}._dsi-bot-collapsible-header_9iqvz_84{cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;align-items:center;gap:.4em;max-width:30%;padding:.25em 0;display:flex}._dsi-bot-collapsible-header_9iqvz_84:focus-visible{outline:2px solid var(--dsi-accent,#06c);border-radius:3px}._dsi-bot-collapsible-header-inner_9iqvz_99{flex:1;align-items:center;gap:.4em;min-width:0;display:flex;overflow:hidden}._dsi-bot-element-title_9iqvz_108{white-space:nowrap;text-overflow:ellipsis;font-size:.9em;overflow:hidden}._dsi-bot-collapse-chevron_9iqvz_115{opacity:.5;flex-shrink:0;font-size:1em;transition:opacity .15s,transform .2s}._dsi-bot-collapsible-header_9iqvz_84:hover ._dsi-bot-collapse-chevron_9iqvz_115{opacity:.8}._dsi-bot-collapsible-body_9iqvz_126{border-left:2px solid var(--dsi-reasoning-border,var(--dsi-tool-border,#d1d5db));max-width:90%;padding:.4em 0 .25em .75em}._dsi-bot-collapsible-content_9iqvz_132{white-space:pre-wrap;word-break:break-word;margin:0;font-size:.9em}._dsi-bot-search-icon_9iqvz_140{flex-shrink:0;font-size:1em}._dsi-bot-spinner_9iqvz_146{border:1.5px solid #00000026;border-top-color:var(--dsi-text-secondary,#888);border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.7s linear infinite _dsi-spin_9iqvz_1;display:inline-block}@keyframes _dsi-spin_9iqvz_1{to{transform:rotate(360deg)}}._dsi-inputbar_1ngbl_2{box-sizing:border-box;flex-direction:column;gap:0;width:100%;display:flex;position:relative}._dsi-inputbar-upper-slot_1ngbl_12{border:1px solid var(--dsi-border,#e5e5e5);background:var(--dsi-input-bg,#fff);box-sizing:border-box;border-bottom:none;border-radius:14px 14px 0 0;width:100%;padding:.5em .75em}._dsi-inputbar-plus-slot_1ngbl_23{z-index:100;background:var(--dsi-input-bg,#fff);border:1px solid var(--dsi-border,#e5e5e5);box-sizing:border-box;border-radius:12px;min-width:180px;padding:.4em 0;position:absolute;bottom:calc(100% + 4px);left:0;box-shadow:0 4px 20px #0000001a}._dsi-inputbar-row_1ngbl_38{background:var(--dsi-input-bg,#fff);border:1px solid var(--dsi-border,#e5e5e5);box-sizing:border-box;border-radius:14px;align-items:flex-end;gap:8px;padding:.55em .75em;transition:border-color .15s;display:flex}._dsi-inputbar-row_1ngbl_38:focus-within{border-color:var(--dsi-accent,#06c)}._dsi-inputbar-row--with-upper_1ngbl_55{border-radius:0 0 14px 14px}._dsi-inputbar-textarea_1ngbl_60{resize:none;color:var(--dsi-text-primary,#111);background:0 0;border:none;outline:none;flex:1;min-height:24px;max-height:200px;padding:0;font-family:inherit;font-size:.95rem;line-height:1.5;overflow-y:auto}._dsi-inputbar-textarea_1ngbl_60::placeholder{color:var(--dsi-text-secondary,#888)}._dsi-inputbar-plus-btn_1ngbl_81{border:1px solid var(--dsi-border,#e5e5e5);background:var(--dsi-button-bg,transparent);width:32px;height:32px;color:var(--dsi-text-primary,#111);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.1em;transition:background .15s;display:flex}._dsi-inputbar-plus-btn_1ngbl_81:hover,._dsi-inputbar-plus-btn--open_1ngbl_100{background:var(--dsi-button-hover-bg,#f0f0f0)}._dsi-inputbar-action-btn_1ngbl_105{background:var(--dsi-action-btn-bg,#111);width:32px;height:32px;color:var(--dsi-action-btn-icon,#fff);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1em;transition:background .15s,opacity .15s;display:flex}._dsi-inputbar-action-btn_1ngbl_105:hover:not(:disabled){background:var(--dsi-action-btn-hover-bg,#333)}._dsi-inputbar-action-btn_1ngbl_105:disabled{opacity:.35;cursor:not-allowed}._dsi-user-msg-wrapper_e7uu3_1{flex-direction:column;align-items:flex-end;width:100%;padding-bottom:1.4em;display:flex;position:relative}._dsi-user-msg-top-slot_e7uu3_12{justify-content:flex-end;margin-bottom:4px;display:flex}._dsi-user-msg-row_e7uu3_19{align-items:center;gap:8px;max-width:70%;display:flex}._dsi-user-msg-left-slot_e7uu3_26,._dsi-user-msg-right-slot_e7uu3_27{flex-shrink:0;align-items:center;display:flex}._dsi-user-msg-bubble_e7uu3_34{background:var(--dsi-user-bubble-bg,#f0f0f0);color:var(--dsi-user-bubble-text,#111);word-break:break-word;border-radius:18px 18px 4px;min-width:40px;padding:10px 16px;font-size:.95rem;line-height:1.5}._dsi-user-msg-bottom-slot_e7uu3_46{justify-content:flex-end;margin-top:4px;display:flex}._dsi-user-msg-footer_e7uu3_53{opacity:0;align-items:center;gap:.35em;height:1.2em;transition:opacity .15s;display:flex;position:absolute;bottom:0;right:0}._dsi-user-msg-wrapper_e7uu3_1:hover ._dsi-user-msg-footer_e7uu3_53{opacity:1}._dsi-user-msg-copy-btn_e7uu3_69{cursor:pointer;color:var(--dsi-text-secondary,#888);background:0 0;border:none;border-radius:3px;align-items:center;gap:3px;padding:0;font-family:inherit;font-size:.85rem;line-height:1;transition:color .15s;display:flex}._dsi-user-msg-copy-btn_e7uu3_69:hover{color:var(--dsi-user-bubble-text,#111)}._dsi-user-msg-copy-btn_e7uu3_69 svg{font-size:.8em}._dsi-user-msg-time_e7uu3_92{color:var(--dsi-text-secondary,#888);white-space:nowrap;font-size:.68rem;line-height:1}._dsi-session-history_ju41j_1{box-sizing:border-box;flex-direction:column;gap:1.5em;width:100%;padding:1em 0;display:flex;overflow-y:auto}._dsi-session-container_1iida_1{box-sizing:border-box;background:var(--dsi-bg,#fff);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._dsi-session-container-history_1iida_11{box-sizing:border-box;flex:1;padding:0 1.5em;overflow-y:auto}._dsi-session-container-inputbar_1iida_18{box-sizing:border-box;flex-shrink:0;padding:.75em 1.5em 1em}
1
+ ._dsi-bot-msg_16idu_2{width:100%;color:var(--dsi-text-primary,#111);flex-direction:column;gap:.5em;padding-bottom:1.4em;font-size:.95rem;display:flex;position:relative}._dsi-bot-loading-dot_16idu_15{color:var(--dsi-text-primary,#111);margin-bottom:.1em;animation:1.4s ease-in-out infinite _dsi-bot-pulse_16idu_1;display:block}@keyframes _dsi-bot-pulse_16idu_1{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.6)}}._dsi-bot-msg-footer_16idu_28{align-items:center;gap:.4em;height:1.2em;display:flex;position:absolute;bottom:0;left:0}._dsi-bot-copy-btn_16idu_39{cursor:pointer;color:var(--dsi-text-secondary,#888);background:0 0;border:none;border-radius:3px;align-items:center;gap:3px;padding:0;font-family:inherit;font-size:.85rem;line-height:1;transition:color .15s;display:flex}._dsi-bot-copy-btn_16idu_39:hover{color:var(--dsi-text-primary,#111)}._dsi-bot-copy-btn_16idu_39 svg{font-size:1em}._dsi-bot-msg-time_16idu_62{color:var(--dsi-text-secondary,#888);opacity:0;white-space:nowrap;font-size:.68rem;line-height:1;transition:opacity .15s}._dsi-bot-msg_16idu_2:hover ._dsi-bot-msg-time_16idu_62{opacity:1}._dsi-bot-reasoning_16idu_75,._dsi-bot-tool_16idu_76,._dsi-bot-search_16idu_77{color:var(--dsi-reasoning-text,#555);font-size:1em;font-style:italic}._dsi-bot-collapsible-header_16idu_84{cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;align-items:center;gap:.4em;max-width:30%;padding:.25em 0;display:flex}._dsi-bot-collapsible-header_16idu_84:focus-visible{outline:2px solid var(--dsi-accent,#06c);border-radius:3px}._dsi-bot-collapsible-header-inner_16idu_99{flex:1;align-items:center;gap:.4em;min-width:0;display:flex;overflow:hidden}._dsi-bot-element-title_16idu_108{white-space:nowrap;text-overflow:ellipsis;font-size:.9em;overflow:hidden}._dsi-bot-collapse-chevron_16idu_115{opacity:.5;flex-shrink:0;font-size:1em;transition:opacity .15s,transform .2s}._dsi-bot-collapsible-header_16idu_84:hover ._dsi-bot-collapse-chevron_16idu_115{opacity:.8}._dsi-bot-collapsible-body_16idu_126{border-left:2px solid var(--dsi-reasoning-border,var(--dsi-tool-border,#d1d5db));max-width:90%;padding:.4em 0 .25em .75em}._dsi-bot-collapsible-content_16idu_132{white-space:pre-wrap;word-break:break-word;margin:0;font-size:.9em}._dsi-bot-search-icon_16idu_140{flex-shrink:0;font-size:1em}._dsi-bot-spinner_16idu_146{border:1.5px solid #00000026;border-top-color:var(--dsi-text-secondary,#888);border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.7s linear infinite _dsi-spin_16idu_1;display:inline-block}@keyframes _dsi-spin_16idu_1{to{transform:rotate(360deg)}}._dsi-bot-image-wrap_16idu_162{align-self:flex-start;max-width:100%;display:inline-block;position:relative}._dsi-bot-image_16idu_162{border-radius:8px;max-width:100%;height:auto;display:block}._dsi-bot-image-placeholder_16idu_177{width:200px;height:200px;color:var(--dsi-text-secondary,#888);background:#0000000a;border:1px dashed #0000001f;border-radius:8px;justify-content:center;align-items:center;font-size:.85em;display:flex}._dsi-bot-image-spinner_16idu_190{border:2px solid #00000026;border-top-color:var(--dsi-text-secondary,#888);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite _dsi-spin_16idu_1;display:inline-block}._dsi-bot-image-error_16idu_200{text-align:center;padding:0 .5em}._dsi-bot-image-actions_16idu_206{opacity:0;pointer-events:none;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}._dsi-bot-image-wrap_16idu_162:hover ._dsi-bot-image-actions_16idu_206{opacity:1;pointer-events:auto}._dsi-bot-image-btn_16idu_221{cursor:pointer;width:26px;height:26px;color:var(--dsi-text-secondary,#888);background:#ffffffd9;border:1px solid #00000014;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.85rem;transition:color .15s,background .15s;display:flex}._dsi-bot-image-btn_16idu_221:hover{color:var(--dsi-text-primary,#111);background:#fff}._dsi-bot-image-btn_16idu_221 svg{font-size:1em}._dsi-bot-iframe-wrap_16idu_245{border:1px solid var(--dsi-border,#00000014);background:var(--dsi-background,transparent);border-radius:8px;align-self:flex-start;max-width:100%;position:relative;overflow:hidden}._dsi-bot-iframe_16idu_245{border:0;width:100%;display:block}._dsi-bot-iframe-copy_16idu_262{cursor:pointer;color:var(--dsi-text-secondary,#888);opacity:0;background:#ffffffd9;border:1px solid #00000014;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;font-size:.85rem;transition:color .15s,background .15s;display:flex;position:absolute;top:6px;right:6px}._dsi-bot-iframe-wrap_16idu_245:hover ._dsi-bot-iframe-copy_16idu_262{opacity:1}._dsi-bot-iframe-copy_16idu_262:hover{color:var(--dsi-text-primary,#111);background:#fff}._dsi-bot-iframe-copy_16idu_262 svg{font-size:1em}._dsi-bot-chart-wrap_16idu_292{align-self:flex-start;max-width:100%}._dsi-markdown_23cwi_1{color:inherit;word-break:break-word;font-family:inherit;font-size:1rem;line-height:1.7}._dsi-markdown_23cwi_1 h1,._dsi-markdown_23cwi_1 h2,._dsi-markdown_23cwi_1 h3,._dsi-markdown_23cwi_1 h4,._dsi-markdown_23cwi_1 h5,._dsi-markdown_23cwi_1 h6{margin:1.25em 0 .5em;font-weight:600;line-height:1.3}._dsi-markdown_23cwi_1 h1{font-size:1.6em}._dsi-markdown_23cwi_1 h2{font-size:1.35em}._dsi-markdown_23cwi_1 h3{font-size:1.15em}._dsi-markdown_23cwi_1 h4{font-size:1em}._dsi-markdown_23cwi_1 p{margin:.5em 0}._dsi-markdown_23cwi_1 a{color:var(--dsi-accent,#06c);text-underline-offset:2px;text-decoration:underline}._dsi-markdown_23cwi_1 a:hover{opacity:.8}._dsi-markdown_23cwi_1 ul,._dsi-markdown_23cwi_1 ol{margin:.5em 0;padding-left:1.5em}._dsi-markdown_23cwi_1 li{margin:.2em 0}._dsi-markdown_23cwi_1 li>p{margin:0}._dsi-markdown_23cwi_1 blockquote{border-left:3px solid var(--dsi-border,#e5e5e5);color:var(--dsi-text-secondary,#888);margin:.75em 0;padding:.4em 1em;font-style:italic}._dsi-markdown-table-wrapper_23cwi_64{width:100%;margin:.75em 0;display:inline-block;position:relative}._dsi-markdown-table-wrapper_23cwi_64 table{border-collapse:collapse;width:100%;margin:0;font-size:.9em}._dsi-markdown-table-wrapper_23cwi_64 th,._dsi-markdown-table-wrapper_23cwi_64 td{border:1px solid var(--dsi-border,#e5e5e5);text-align:left;padding:.45em .75em}._dsi-markdown-table-wrapper_23cwi_64 th{background:var(--dsi-bg-secondary,#f7f7f8);font-weight:600}._dsi-markdown-table-copy-btn_23cwi_86{background:var(--dsi-bg-secondary,#f7f7f8);border:1px solid var(--dsi-border,#e5e5e5);cursor:pointer;color:var(--dsi-text-secondary,#888);opacity:0;border-radius:4px;align-items:center;gap:4px;padding:4px 6px;font-family:inherit;font-size:.9em;transition:background .15s,color .15s,opacity .15s;display:flex;position:absolute;bottom:6px;right:6px}._dsi-markdown-table-wrapper_23cwi_64:hover ._dsi-markdown-table-copy-btn_23cwi_86{opacity:1}._dsi-markdown-table-copy-btn_23cwi_86:hover{color:var(--dsi-text-primary,#111);background:#0000000f}._dsi-markdown-table-copy-btn_23cwi_86 svg{font-size:1em}._dsi-markdown_23cwi_1 hr{border:none;border-top:1px solid var(--dsi-border,#e5e5e5);margin:1em 0}._dsi-markdown_23cwi_1 :not(pre)>code{background:var(--dsi-code-bg,#f6f8fa);color:var(--dsi-code-text,#24292e);border-radius:4px;padding:.15em .4em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.875em}._dsi-markdown-code-block_23cwi_133{background:var(--dsi-code-bg,#f6f8fa);border:1px solid var(--dsi-border,#e5e5e5);border-radius:8px;margin:.75em 0;position:relative;overflow:hidden}._dsi-markdown-code-lang_23cwi_142{border-bottom:1px solid var(--dsi-border,#e5e5e5);color:var(--dsi-text-secondary,#888);letter-spacing:.03em;background:#0000000a;justify-content:space-between;align-items:center;padding:.35em .75em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75em;display:flex}._dsi-markdown-copy-btn_23cwi_155{cursor:pointer;color:var(--dsi-text-secondary,#888);background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-family:inherit;font-size:.9em;transition:background .15s,color .15s;display:flex}._dsi-markdown-copy-btn_23cwi_155:hover{color:var(--dsi-text-primary,#111);background:#0000000f}._dsi-markdown-copy-btn_23cwi_155 svg{font-size:.9em}._dsi-markdown-code-block_23cwi_133 pre{color:var(--dsi-code-text,#24292e);background:0 0;margin:0;padding:.9em 1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.875em;line-height:1.6;overflow-x:auto}._dsi-markdown-code-block_23cwi_133 pre code{font-size:inherit;color:inherit;background:0 0;border-radius:0;padding:0}._dsi-markdown_23cwi_1 input[type=checkbox]{accent-color:var(--dsi-accent,#06c);margin-right:.4em}._dsi-markdown_23cwi_1 img{border-radius:4px;max-width:100%}._dsi-markdown_23cwi_1 del{opacity:.7}._dsi-inputbar_1ngbl_2{box-sizing:border-box;flex-direction:column;gap:0;width:100%;display:flex;position:relative}._dsi-inputbar-upper-slot_1ngbl_12{border:1px solid var(--dsi-border,#e5e5e5);background:var(--dsi-input-bg,#fff);box-sizing:border-box;border-bottom:none;border-radius:14px 14px 0 0;width:100%;padding:.5em .75em}._dsi-inputbar-plus-slot_1ngbl_23{z-index:100;background:var(--dsi-input-bg,#fff);border:1px solid var(--dsi-border,#e5e5e5);box-sizing:border-box;border-radius:12px;min-width:180px;padding:.4em 0;position:absolute;bottom:calc(100% + 4px);left:0;box-shadow:0 4px 20px #0000001a}._dsi-inputbar-row_1ngbl_38{background:var(--dsi-input-bg,#fff);border:1px solid var(--dsi-border,#e5e5e5);box-sizing:border-box;border-radius:14px;align-items:flex-end;gap:8px;padding:.55em .75em;transition:border-color .15s;display:flex}._dsi-inputbar-row_1ngbl_38:focus-within{border-color:var(--dsi-accent,#06c)}._dsi-inputbar-row--with-upper_1ngbl_55{border-radius:0 0 14px 14px}._dsi-inputbar-textarea_1ngbl_60{resize:none;color:var(--dsi-text-primary,#111);background:0 0;border:none;outline:none;flex:1;min-height:24px;max-height:200px;padding:0;font-family:inherit;font-size:.95rem;line-height:1.5;overflow-y:auto}._dsi-inputbar-textarea_1ngbl_60::placeholder{color:var(--dsi-text-secondary,#888)}._dsi-inputbar-plus-btn_1ngbl_81{border:1px solid var(--dsi-border,#e5e5e5);background:var(--dsi-button-bg,transparent);width:32px;height:32px;color:var(--dsi-text-primary,#111);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.1em;transition:background .15s;display:flex}._dsi-inputbar-plus-btn_1ngbl_81:hover,._dsi-inputbar-plus-btn--open_1ngbl_100{background:var(--dsi-button-hover-bg,#f0f0f0)}._dsi-inputbar-action-btn_1ngbl_105{background:var(--dsi-action-btn-bg,#111);width:32px;height:32px;color:var(--dsi-action-btn-icon,#fff);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1em;transition:background .15s,opacity .15s;display:flex}._dsi-inputbar-action-btn_1ngbl_105:hover:not(:disabled){background:var(--dsi-action-btn-hover-bg,#333)}._dsi-inputbar-action-btn_1ngbl_105:disabled{opacity:.35;cursor:not-allowed}._dsi-user-msg-wrapper_e7uu3_1{flex-direction:column;align-items:flex-end;width:100%;padding-bottom:1.4em;display:flex;position:relative}._dsi-user-msg-top-slot_e7uu3_12{justify-content:flex-end;margin-bottom:4px;display:flex}._dsi-user-msg-row_e7uu3_19{align-items:center;gap:8px;max-width:70%;display:flex}._dsi-user-msg-left-slot_e7uu3_26,._dsi-user-msg-right-slot_e7uu3_27{flex-shrink:0;align-items:center;display:flex}._dsi-user-msg-bubble_e7uu3_34{background:var(--dsi-user-bubble-bg,#f0f0f0);color:var(--dsi-user-bubble-text,#111);word-break:break-word;border-radius:18px 18px 4px;min-width:40px;padding:10px 16px;font-size:.95rem;line-height:1.5}._dsi-user-msg-bottom-slot_e7uu3_46{justify-content:flex-end;margin-top:4px;display:flex}._dsi-user-msg-footer_e7uu3_53{opacity:0;align-items:center;gap:.35em;height:1.2em;transition:opacity .15s;display:flex;position:absolute;bottom:0;right:0}._dsi-user-msg-wrapper_e7uu3_1:hover ._dsi-user-msg-footer_e7uu3_53{opacity:1}._dsi-user-msg-copy-btn_e7uu3_69{cursor:pointer;color:var(--dsi-text-secondary,#888);background:0 0;border:none;border-radius:3px;align-items:center;gap:3px;padding:0;font-family:inherit;font-size:.85rem;line-height:1;transition:color .15s;display:flex}._dsi-user-msg-copy-btn_e7uu3_69:hover{color:var(--dsi-user-bubble-text,#111)}._dsi-user-msg-copy-btn_e7uu3_69 svg{font-size:.8em}._dsi-user-msg-time_e7uu3_92{color:var(--dsi-text-secondary,#888);white-space:nowrap;font-size:.68rem;line-height:1}._dsi-session-history_13fgm_1{box-sizing:border-box;flex-direction:column;gap:1.5em;width:100%;height:100%;padding:1em 0;display:flex;overflow-y:auto}._dsi-session-container_1iida_1{box-sizing:border-box;background:var(--dsi-bg,#fff);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._dsi-session-container-history_1iida_11{box-sizing:border-box;flex:1;padding:0 1.5em;overflow-y:auto}._dsi-session-container-inputbar_1iida_18{box-sizing:border-box;flex-shrink:0;padding:.75em 1.5em 1em}
2
2
  /*$vite$:1*/
@@ -0,0 +1,34 @@
1
+ //#region lib/chatbot/BotMessage/styles.module.css
2
+ var e = {
3
+ "dsi-bot-msg": "_dsi-bot-msg_16idu_2",
4
+ "dsi-bot-loading-dot": "_dsi-bot-loading-dot_16idu_15",
5
+ "dsi-bot-pulse": "_dsi-bot-pulse_16idu_1",
6
+ "dsi-bot-msg-footer": "_dsi-bot-msg-footer_16idu_28",
7
+ "dsi-bot-copy-btn": "_dsi-bot-copy-btn_16idu_39",
8
+ "dsi-bot-msg-time": "_dsi-bot-msg-time_16idu_62",
9
+ "dsi-bot-reasoning": "_dsi-bot-reasoning_16idu_75",
10
+ "dsi-bot-tool": "_dsi-bot-tool_16idu_76",
11
+ "dsi-bot-search": "_dsi-bot-search_16idu_77",
12
+ "dsi-bot-collapsible-header": "_dsi-bot-collapsible-header_16idu_84",
13
+ "dsi-bot-collapsible-header-inner": "_dsi-bot-collapsible-header-inner_16idu_99",
14
+ "dsi-bot-element-title": "_dsi-bot-element-title_16idu_108",
15
+ "dsi-bot-collapse-chevron": "_dsi-bot-collapse-chevron_16idu_115",
16
+ "dsi-bot-collapsible-body": "_dsi-bot-collapsible-body_16idu_126",
17
+ "dsi-bot-collapsible-content": "_dsi-bot-collapsible-content_16idu_132",
18
+ "dsi-bot-search-icon": "_dsi-bot-search-icon_16idu_140",
19
+ "dsi-bot-spinner": "_dsi-bot-spinner_16idu_146",
20
+ "dsi-spin": "_dsi-spin_16idu_1",
21
+ "dsi-bot-image-wrap": "_dsi-bot-image-wrap_16idu_162",
22
+ "dsi-bot-image": "_dsi-bot-image_16idu_162",
23
+ "dsi-bot-image-placeholder": "_dsi-bot-image-placeholder_16idu_177",
24
+ "dsi-bot-image-spinner": "_dsi-bot-image-spinner_16idu_190",
25
+ "dsi-bot-image-error": "_dsi-bot-image-error_16idu_200",
26
+ "dsi-bot-image-actions": "_dsi-bot-image-actions_16idu_206",
27
+ "dsi-bot-image-btn": "_dsi-bot-image-btn_16idu_221",
28
+ "dsi-bot-iframe-wrap": "_dsi-bot-iframe-wrap_16idu_245",
29
+ "dsi-bot-iframe": "_dsi-bot-iframe_16idu_245",
30
+ "dsi-bot-iframe-copy": "_dsi-bot-iframe-copy_16idu_262",
31
+ "dsi-bot-chart-wrap": "_dsi-bot-chart-wrap_16idu_292"
32
+ };
33
+ //#endregion
34
+ export { e as t };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shane_donnelly/dsi-internal-react-utils",
3
3
  "private": false,
4
- "version": "1.2.1",
4
+ "version": "1.3.1",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -22,10 +22,9 @@
22
22
  "eslint-plugin-react-refresh": "^0.5.2",
23
23
  "glob": "^13.0.6",
24
24
  "globals": "^17.4.0",
25
- "keycloak-js": "^26.0.0",
26
25
  "react": "^19.2.4",
27
26
  "react-dom": "^19.2.4",
28
- "typescript": "~6.0.2",
27
+ "typescript": "^6.0.2",
29
28
  "typescript-eslint": "^8.58.0",
30
29
  "vite": "^8.0.4",
31
30
  "vite-plugin-dts": "^4.5.4",
@@ -44,17 +43,22 @@
44
43
  "dist"
45
44
  ],
46
45
  "peerDependencies": {
47
- "keycloak-js": ">=25.0.0",
48
46
  "react": "^19.2.4",
49
47
  "react-dom": "^19.2.4"
50
48
  },
51
49
  "dependencies": {
50
+ "keycloak-js": "^26.0.0",
52
51
  "react-icons": "^5.6.0",
53
52
  "react-markdown": "^10.1.0",
53
+ "react-vega": "^8.0.0",
54
54
  "rehype-highlight": "^7.0.2",
55
55
  "rehype-katex": "^7.0.1",
56
56
  "rehype-raw": "^7.0.0",
57
57
  "remark-gfm": "^4.0.1",
58
- "remark-math": "^6.0.0"
58
+ "remark-math": "^6.0.0",
59
+ "vega-embed": "^7.1.0",
60
+ "vega-lite": "^6.4.3",
61
+ "plotly.js": "^3.5.1",
62
+ "react-plotly.js": "^2.6.0"
59
63
  }
60
64
  }
@@ -1,255 +0,0 @@
1
- import { t as e } from "./MarkdownRenderer-vU2aoyaG.js";
2
- import { useTheme as t } from "./chatbot/theme/useTheme.js";
3
- import { t as n } from "./iconBase-CDbPVA4E.js";
4
- import { n as r, t as i } from "./bs-CmZftXMO.js";
5
- import { useEffect as a, useState as o } from "react";
6
- import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
7
- //#region node_modules/react-icons/tb/index.mjs
8
- function u(e) {
9
- return n({
10
- tag: "svg",
11
- attr: {
12
- viewBox: "0 0 24 24",
13
- fill: "none",
14
- stroke: "currentColor",
15
- strokeWidth: "2",
16
- strokeLinecap: "round",
17
- strokeLinejoin: "round"
18
- },
19
- child: [
20
- {
21
- tag: "path",
22
- attr: { d: "M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" },
23
- child: []
24
- },
25
- {
26
- tag: "path",
27
- attr: { d: "M3.6 9h16.8" },
28
- child: []
29
- },
30
- {
31
- tag: "path",
32
- attr: { d: "M3.6 15h16.8" },
33
- child: []
34
- },
35
- {
36
- tag: "path",
37
- attr: { d: "M11.5 3a17 17 0 0 0 0 18" },
38
- child: []
39
- },
40
- {
41
- tag: "path",
42
- attr: { d: "M12.5 3a17 17 0 0 1 0 18" },
43
- child: []
44
- }
45
- ]
46
- })(e);
47
- }
48
- function d(e) {
49
- return n({
50
- tag: "svg",
51
- attr: {
52
- viewBox: "0 0 24 24",
53
- fill: "none",
54
- stroke: "currentColor",
55
- strokeWidth: "2",
56
- strokeLinecap: "round",
57
- strokeLinejoin: "round"
58
- },
59
- child: [{
60
- tag: "path",
61
- attr: { d: "M6 9l6 6l6 -6" },
62
- child: []
63
- }]
64
- })(e);
65
- }
66
- //#endregion
67
- //#region lib/chatbot/BotMessage/styles.module.css
68
- var f = {
69
- "dsi-bot-msg": "_dsi-bot-msg_9iqvz_2",
70
- "dsi-bot-loading-dot": "_dsi-bot-loading-dot_9iqvz_15",
71
- "dsi-bot-pulse": "_dsi-bot-pulse_9iqvz_1",
72
- "dsi-bot-msg-footer": "_dsi-bot-msg-footer_9iqvz_28",
73
- "dsi-bot-copy-btn": "_dsi-bot-copy-btn_9iqvz_39",
74
- "dsi-bot-msg-time": "_dsi-bot-msg-time_9iqvz_62",
75
- "dsi-bot-reasoning": "_dsi-bot-reasoning_9iqvz_75",
76
- "dsi-bot-tool": "_dsi-bot-tool_9iqvz_76",
77
- "dsi-bot-search": "_dsi-bot-search_9iqvz_77",
78
- "dsi-bot-collapsible-header": "_dsi-bot-collapsible-header_9iqvz_84",
79
- "dsi-bot-collapsible-header-inner": "_dsi-bot-collapsible-header-inner_9iqvz_99",
80
- "dsi-bot-element-title": "_dsi-bot-element-title_9iqvz_108",
81
- "dsi-bot-collapse-chevron": "_dsi-bot-collapse-chevron_9iqvz_115",
82
- "dsi-bot-collapsible-body": "_dsi-bot-collapsible-body_9iqvz_126",
83
- "dsi-bot-collapsible-content": "_dsi-bot-collapsible-content_9iqvz_132",
84
- "dsi-bot-search-icon": "_dsi-bot-search-icon_9iqvz_140",
85
- "dsi-bot-spinner": "_dsi-bot-spinner_9iqvz_146",
86
- "dsi-spin": "_dsi-spin_9iqvz_1"
87
- };
88
- //#endregion
89
- //#region lib/chatbot/BotMessage/index.tsx
90
- function p({ markdownText: t }) {
91
- return t ? /* @__PURE__ */ c(e, { text: t }) : null;
92
- }
93
- function m() {
94
- return /* @__PURE__ */ c("svg", {
95
- className: f["dsi-bot-loading-dot"],
96
- width: "10",
97
- height: "10",
98
- viewBox: "0 0 10 10",
99
- "aria-hidden": "true",
100
- children: /* @__PURE__ */ c("circle", {
101
- cx: "5",
102
- cy: "5",
103
- r: "4",
104
- fill: "currentColor"
105
- })
106
- });
107
- }
108
- function h({ text: e }) {
109
- let [t, n] = o(!1);
110
- return /* @__PURE__ */ c("button", {
111
- className: f["dsi-bot-copy-btn"],
112
- onClick: () => {
113
- navigator.clipboard.writeText(e).then(() => {
114
- n(!0), setTimeout(() => n(!1), 2e3);
115
- });
116
- },
117
- "aria-label": "Copier le message",
118
- type: "button",
119
- children: c(t ? i : r, {})
120
- });
121
- }
122
- function g({ defaultOpen: e, closeWhen: t = !1, header: n, content: r, className: i, style: s }) {
123
- let [u, p] = o(e);
124
- return a(() => {
125
- t && p(!1);
126
- }, [t]), /* @__PURE__ */ l("div", {
127
- className: i,
128
- style: s,
129
- children: [/* @__PURE__ */ l("div", {
130
- className: f["dsi-bot-collapsible-header"],
131
- onClick: () => p((e) => !e),
132
- role: "button",
133
- tabIndex: 0,
134
- onKeyDown: (e) => {
135
- (e.key === "Enter" || e.key === " ") && p((e) => !e);
136
- },
137
- "aria-expanded": u,
138
- children: [/* @__PURE__ */ c("div", {
139
- className: f["dsi-bot-collapsible-header-inner"],
140
- children: n
141
- }), /* @__PURE__ */ c(d, {
142
- className: f["dsi-bot-collapse-chevron"],
143
- style: { transform: u ? "rotate(0deg)" : "rotate(-90deg)" },
144
- "aria-hidden": "true"
145
- })]
146
- }), u && r && /* @__PURE__ */ c("div", {
147
- className: f["dsi-bot-collapsible-body"],
148
- children: r
149
- })]
150
- });
151
- }
152
- function _({ title: e, content: n, isLoading: r = !1, _isLastElement: i = !1 }) {
153
- let a = t();
154
- return /* @__PURE__ */ c(g, {
155
- defaultOpen: r || i,
156
- closeWhen: !r && !i,
157
- className: f["dsi-bot-reasoning"],
158
- style: {
159
- "--dsi-reasoning-border": a.reasoningBorder,
160
- "--dsi-reasoning-text": a.reasoningText
161
- },
162
- header: /* @__PURE__ */ c("span", {
163
- className: f["dsi-bot-element-title"],
164
- children: e || "Raisonnement"
165
- }),
166
- content: n ? /* @__PURE__ */ c("p", {
167
- className: f["dsi-bot-collapsible-content"],
168
- children: n
169
- }) : null
170
- });
171
- }
172
- function v({ title: e, content: n, isLoading: r = !1, _isLastElement: i = !1 }) {
173
- let a = t();
174
- return /* @__PURE__ */ c(g, {
175
- defaultOpen: r || i,
176
- closeWhen: !r && !i,
177
- className: f["dsi-bot-tool"],
178
- style: {
179
- "--dsi-tool-border": a.toolBorder,
180
- "--dsi-text-secondary": a.textSecondary,
181
- "--dsi-text-primary": a.textPrimary
182
- },
183
- header: /* @__PURE__ */ l(s, { children: [r && /* @__PURE__ */ c("span", { className: f["dsi-bot-spinner"] }), /* @__PURE__ */ c("span", {
184
- className: f["dsi-bot-element-title"],
185
- children: e || "Outil"
186
- })] }),
187
- content: n ? /* @__PURE__ */ c("p", {
188
- className: f["dsi-bot-collapsible-content"],
189
- children: n
190
- }) : null
191
- });
192
- }
193
- function y({ title: e, content: n, isLoading: r = !1, _isLastElement: i = !1 }) {
194
- let a = t();
195
- return /* @__PURE__ */ c(g, {
196
- defaultOpen: r || i,
197
- closeWhen: !r && !i,
198
- className: f["dsi-bot-search"],
199
- style: {
200
- "--dsi-tool-border": a.toolBorder,
201
- "--dsi-text-secondary": a.textSecondary,
202
- "--dsi-text-primary": a.textPrimary
203
- },
204
- header: /* @__PURE__ */ l(s, { children: [
205
- /* @__PURE__ */ c(u, { className: f["dsi-bot-search-icon"] }),
206
- r && /* @__PURE__ */ c("span", { className: f["dsi-bot-spinner"] }),
207
- /* @__PURE__ */ c("span", {
208
- className: f["dsi-bot-element-title"],
209
- children: e || "Recherche"
210
- })
211
- ] }),
212
- content: n ? /* @__PURE__ */ c("p", {
213
- className: f["dsi-bot-collapsible-content"],
214
- children: n
215
- }) : null
216
- });
217
- }
218
- var b = {
219
- text: p,
220
- reasoning: _,
221
- tool: v,
222
- search: y
223
- };
224
- function x({ message: e, registry: n = b }) {
225
- let r = t(), i = [...e.elements].sort((e, t) => e.index - t.index), a = [...i].reverse().find((e) => e.type === "text")?.markdownText ?? "";
226
- return /* @__PURE__ */ l("div", {
227
- className: f["dsi-bot-msg"],
228
- style: {
229
- "--dsi-text-primary": r.textPrimary,
230
- "--dsi-text-secondary": r.textSecondary,
231
- "--dsi-border": r.border
232
- },
233
- children: [
234
- e.isLoading && /* @__PURE__ */ c(m, {}),
235
- i.map((e, t) => {
236
- let r = n[e.type];
237
- if (!r) return null;
238
- let a = t === i.length - 1;
239
- return /* @__PURE__ */ c(r, {
240
- ...e,
241
- _isLastElement: a
242
- }, `${e.type}-${e.index}-${t}`);
243
- }),
244
- /* @__PURE__ */ l("div", {
245
- className: f["dsi-bot-msg-footer"],
246
- children: [!e.isLoading && /* @__PURE__ */ c(h, { text: a }), !e.isLoading && e.timeOrDateToDisplay && /* @__PURE__ */ c("span", {
247
- className: f["dsi-bot-msg-time"],
248
- children: e.timeOrDateToDisplay
249
- })]
250
- })
251
- ]
252
- });
253
- }
254
- //#endregion
255
- export { b as n, x as t };
@@ -1,50 +0,0 @@
1
- import { useTheme as e } from "./chatbot/theme/useTheme.js";
2
- import { t } from "./SessionHistory-BUYwbZjE.js";
3
- import { t as n } from "./InputBar-CVy2_QtC.js";
4
- import { useEffect as r, useMemo as i, useRef as a } from "react";
5
- import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
6
- //#region lib/chatbot/SessionContainer/styles.module.css
7
- var l = {
8
- "dsi-session-container": "_dsi-session-container_1iida_1",
9
- "dsi-session-container-history": "_dsi-session-container-history_1iida_11",
10
- "dsi-session-container-inputbar": "_dsi-session-container-inputbar_1iida_18"
11
- };
12
- //#endregion
13
- //#region lib/chatbot/SessionContainer/index.tsx
14
- function u({ userMessages: u, botMessages: d, orderedIds: f, botMessageRegistry: p, userMessageSlots: m, alternativeScreenComponent: h, isAlternativeScreenActive: g = !1, value: _, onChange: v, placeholder: y, actionButtonType: b, actionButtonEnabled: x, onActionButtonClick: S, plusSlot: C, upperSlot: w }) {
15
- let T = e(), E = a(null), D = i(() => {
16
- let e = new Map(u.map((e) => [e.id, e]));
17
- return f.filter((t) => e.has(t)).map((t) => e.get(t).text);
18
- }, [u, f]);
19
- return r(() => {
20
- E.current?.scrollIntoView({ behavior: "smooth" });
21
- }, [f.length]), /* @__PURE__ */ c("div", {
22
- className: l["dsi-session-container"],
23
- style: { "--dsi-bg": T.background },
24
- children: [/* @__PURE__ */ s("div", {
25
- className: l["dsi-session-container-history"],
26
- children: g ? h ?? null : /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s(t, {
27
- userMessages: u,
28
- botMessages: d,
29
- orderedIds: f,
30
- botMessageRegistry: p,
31
- userMessageSlots: m
32
- }), /* @__PURE__ */ s("div", { ref: E })] })
33
- }), /* @__PURE__ */ s("div", {
34
- className: l["dsi-session-container-inputbar"],
35
- children: /* @__PURE__ */ s(n, {
36
- value: _,
37
- onChange: v,
38
- placeholder: y,
39
- actionButtonType: b,
40
- actionButtonEnabled: x,
41
- onActionButtonClick: S,
42
- plusSlot: C,
43
- upperSlot: w,
44
- messageHistory: D
45
- })
46
- })]
47
- });
48
- }
49
- //#endregion
50
- export { u as t };