@clubmed/usg-chat-ui 1.0.1 → 1.2.4

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 (106) hide show
  1. package/chunks/_commonjsHelpers.js +9 -0
  2. package/chunks/_commonjsHelpers.js.map +1 -0
  3. package/chunks/browser.js +579 -0
  4. package/chunks/browser.js.map +1 -0
  5. package/chunks/client.js +27323 -0
  6. package/chunks/client.js.map +1 -0
  7. package/chunks/index.js +59 -32
  8. package/chunks/index.js.map +1 -1
  9. package/chunks/index2.js +32 -59
  10. package/chunks/index2.js.map +1 -1
  11. package/chunks/index3.js +22 -740
  12. package/chunks/index3.js.map +1 -1
  13. package/chunks/index4.js +740 -22
  14. package/chunks/index4.js.map +1 -1
  15. package/chunks/index5.js +1 -1
  16. package/chunks/index6.js +144 -150
  17. package/chunks/index6.js.map +1 -1
  18. package/chunks/index7.js +14 -13
  19. package/chunks/index7.js.map +1 -1
  20. package/chunks/magic-string.es.js +664 -0
  21. package/chunks/magic-string.es.js.map +1 -0
  22. package/chunks/react.esm.js +10007 -0
  23. package/chunks/react.esm.js.map +1 -0
  24. package/chunks/{collaboration.js → useCollaboration.js} +536 -523
  25. package/chunks/useCollaboration.js.map +1 -0
  26. package/chunks/vi.2VT5v0um.js +10573 -0
  27. package/chunks/vi.2VT5v0um.js.map +1 -0
  28. package/contexts/ChatContext.d.ts +2 -1
  29. package/contexts/ChatContext.js +32 -30
  30. package/contexts/ChatContext.js.map +1 -1
  31. package/core/interfaces/ChatConfig.d.ts +4 -0
  32. package/core/interfaces/StoryVersion.d.ts +7 -2
  33. package/index.d.ts +1 -0
  34. package/molecules/AiElements/Message.js +1 -1
  35. package/molecules/AiElements/Response.js +15 -13
  36. package/molecules/AiElements/Response.js.map +1 -1
  37. package/molecules/AiElements/Sources.d.ts +2 -2
  38. package/molecules/AiElements/Sources.js.map +1 -1
  39. package/molecules/Buttons/Button.d.ts +1 -1
  40. package/molecules/Buttons/Button.js +2 -2
  41. package/molecules/{AiElements → CodeBlock}/CodeBlock.d.ts +5 -2
  42. package/molecules/CodeBlock/CodeBlock.js +128 -0
  43. package/molecules/CodeBlock/CodeBlock.js.map +1 -0
  44. package/molecules/CodeBlock/CodeBlock.test.d.ts +1 -0
  45. package/molecules/CodeBlock/CodeBlock.test.js +3158 -0
  46. package/molecules/CodeBlock/CodeBlock.test.js.map +1 -0
  47. package/molecules/CodeBlock/highlightCode.d.ts +2 -0
  48. package/molecules/CodeBlock/highlightCode.js +5850 -0
  49. package/molecules/CodeBlock/highlightCode.js.map +1 -0
  50. package/molecules/CodeBlock/highlightCode.test.d.ts +1 -0
  51. package/molecules/CodeBlock/highlightCode.test.js +47 -0
  52. package/molecules/CodeBlock/highlightCode.test.js.map +1 -0
  53. package/molecules/Collapsibles/Collapsible.js +1 -1
  54. package/molecules/Forms/InputGroups/InputGroup.js +1 -1
  55. package/molecules/Labels/Label.js +2 -2
  56. package/molecules/Notifications/{Sonner.js → Toaster.js} +2 -2
  57. package/molecules/Notifications/Toaster.js.map +1 -0
  58. package/molecules/Notifications/{use-toast.js → useToast.js} +1 -1
  59. package/molecules/Notifications/useToast.js.map +1 -0
  60. package/{organisms → molecules}/RichText/DynamicEditor.js.map +1 -1
  61. package/molecules/RichText/EditorWithAI.js +55854 -0
  62. package/molecules/RichText/EditorWithAI.js.map +1 -0
  63. package/molecules/RichText/useCollaboration.d.ts +9 -0
  64. package/molecules/RichText/useCollaboration.js +8 -0
  65. package/molecules/RichText/useCollaboration.js.map +1 -0
  66. package/molecules/RichText/useCollaboration.test.d.ts +1 -0
  67. package/molecules/RichText/useCollaboration.test.js +70 -0
  68. package/molecules/RichText/useCollaboration.test.js.map +1 -0
  69. package/molecules/Tabs/Tabs.js +1 -1
  70. package/organisms/canvas/ApiDocsCanvas.js +15 -15
  71. package/organisms/canvas/ApiDocsCanvas.js.map +1 -1
  72. package/organisms/canvas/ReleaseNoteCanvas.js +2 -2
  73. package/organisms/canvas/ReleaseNoteCanvas.js.map +1 -1
  74. package/organisms/canvas/StoryCanvas.js +2 -2
  75. package/organisms/canvas/StoryCanvas.js.map +1 -1
  76. package/organisms/chat/MessageActions.js +1 -1
  77. package/organisms/chat/MessageActions.js.map +1 -1
  78. package/organisms/chat/hooks/useChat.js +1 -1
  79. package/organisms/chat/hooks/useChat.js.map +1 -1
  80. package/organisms/chat/hooks/useChatKeyboardsShortcuts.js +16 -33
  81. package/organisms/chat/hooks/useChatKeyboardsShortcuts.js.map +1 -1
  82. package/organisms/chat/hooks/useConversations.js +1 -1
  83. package/organisms/chat/hooks/useConversations.js.map +1 -1
  84. package/organisms/settings/SettingsModal.js +1 -1
  85. package/package.json +3 -4
  86. package/.npm/_logs/2026-01-19T16_54_30_380Z-debug-0.log +0 -19
  87. package/.npm/_logs/2026-01-19T16_54_30_467Z-debug-0.log +0 -19
  88. package/.npm/_logs/2026-01-19T16_54_30_553Z-debug-0.log +0 -14
  89. package/chunks/collaboration.js.map +0 -1
  90. package/core/collaboration.d.ts +0 -6
  91. package/core/collaboration.js +0 -5
  92. package/core/collaboration.js.map +0 -1
  93. package/molecules/AiElements/CodeBlock.js +0 -6525
  94. package/molecules/AiElements/CodeBlock.js.map +0 -1
  95. package/molecules/Notifications/Sonner.js.map +0 -1
  96. package/molecules/Notifications/use-toast.js.map +0 -1
  97. package/molecules/index.d.ts +0 -28
  98. package/molecules/index.js +0 -88
  99. package/molecules/index.js.map +0 -1
  100. package/organisms/RichText/EditorWithAI.js +0 -83167
  101. package/organisms/RichText/EditorWithAI.js.map +0 -1
  102. /package/molecules/Notifications/{Sonner.d.ts → Toaster.d.ts} +0 -0
  103. /package/molecules/Notifications/{use-toast.d.ts → useToast.d.ts} +0 -0
  104. /package/{organisms → molecules}/RichText/DynamicEditor.d.ts +0 -0
  105. /package/{organisms → molecules}/RichText/DynamicEditor.js +0 -0
  106. /package/{organisms → molecules}/RichText/EditorWithAI.d.ts +0 -0
@@ -1,32 +1,15 @@
1
- import { useKeyboardShortcuts as s } from "../../../utils/keyboard-shortcuts.js";
2
- import { useState as p } from "react";
3
- import "../../../molecules/Alerts/Alert.js";
4
- import "../../../molecules/AiElements/Branch.js";
5
- import "../../../molecules/AiElements/CodeBlock.js";
6
- import "react/jsx-runtime";
7
- import "../../../molecules/Forms/Inputs/Input.js";
8
- import "../../../molecules/AiElements/Reasoning.js";
9
- import "../../../molecules/AiElements/Response.js";
10
- import "../../../molecules/Badges/Badge.js";
11
- import "../../../molecules/Cards/Card.js";
12
- import "../../../molecules/Labels/Label.js";
13
- import "../../../molecules/Loaders/Loader.js";
14
- import "../../../molecules/Modals/Modal.js";
15
- import "../../../chunks/index3.js";
16
- import "react-dom";
17
- import { useToast as n } from "../../../molecules/Notifications/use-toast.js";
18
- import "../../../molecules/ScrollAreas/ScrollArea.js";
19
- import "../../../molecules/Forms/Switches/Switch.js";
20
- import "../../../molecules/Tabs/Tabs.js";
21
- import { useConversations as m } from "./useConversations.js";
22
- import { useCanvasStore as a } from "../../../utils/canvas-store.js";
23
- function z() {
24
- const { toast: o } = n(), {
25
- setChatMessages: r
26
- } = m(), [e, t] = p(!1), {
27
- closeCanvas: i
28
- } = a();
29
- return s([
1
+ import { useKeyboardShortcuts as n } from "../../../utils/keyboard-shortcuts.js";
2
+ import { useState as a } from "react";
3
+ import { useToast as i } from "../../../molecules/Notifications/useToast.js";
4
+ import { useConversations as c } from "./useConversations.js";
5
+ import { useCanvasStore as p } from "../../../utils/canvas-store.js";
6
+ function f() {
7
+ const { toast: e } = i(), {
8
+ setChatMessages: s
9
+ } = c(), [o, t] = a(!1), {
10
+ closeCanvas: r
11
+ } = p();
12
+ return n([
30
13
  {
31
14
  key: ",",
32
15
  ctrl: !0,
@@ -38,7 +21,7 @@ function z() {
38
21
  ctrl: !0,
39
22
  description: "Clear conversation",
40
23
  action: () => {
41
- r([]), o({
24
+ s([]), e({
42
25
  title: "Cleared",
43
26
  description: "Conversation history cleared"
44
27
  });
@@ -47,14 +30,14 @@ function z() {
47
30
  {
48
31
  key: "Escape",
49
32
  description: "Close canvas",
50
- action: () => i()
33
+ action: () => r()
51
34
  }
52
35
  ]), {
53
- settingsOpen: e,
36
+ settingsOpen: o,
54
37
  setSettingsOpen: t
55
38
  };
56
39
  }
57
40
  export {
58
- z as useChatKeyboardsShortcuts
41
+ f as useChatKeyboardsShortcuts
59
42
  };
60
43
  //# sourceMappingURL=useChatKeyboardsShortcuts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useChatKeyboardsShortcuts.js","sources":["../../../../lib/organisms/chat/hooks/useChatKeyboardsShortcuts.ts"],"sourcesContent":["import {useKeyboardShortcuts} from \"@clubmed/usg-chat-ui/utils/keyboard-shortcuts\";\nimport {useState} from \"react\";\nimport {useToast} from \"@clubmed/usg-chat-ui/molecules/index\";\nimport {useConversations} from \"@clubmed/usg-chat-ui/organisms/chat/hooks/useConversations\";\nimport {useCanvasStore} from \"@clubmed/usg-chat-ui/utils/canvas-store\";\n\nexport function useChatKeyboardsShortcuts() {\n const {toast} = useToast();\n\n const {\n setChatMessages\n } = useConversations();\n\n const [settingsOpen, setSettingsOpen] = useState(false);\n const {\n closeCanvas\n } = useCanvasStore();\n\n useKeyboardShortcuts([\n {\n key: \",\",\n ctrl: true,\n description: \"Open settings\",\n action: () => setSettingsOpen(true),\n },\n {\n key: \"k\",\n ctrl: true,\n description: \"Clear conversation\",\n action: () => {\n setChatMessages([]);\n toast({\n title: \"Cleared\",\n description: \"Conversation history cleared\",\n });\n },\n },\n {\n key: \"Escape\",\n description: \"Close canvas\",\n action: () => closeCanvas(),\n },\n ]);\n\n return {\n settingsOpen,\n setSettingsOpen,\n }\n}"],"names":["useChatKeyboardsShortcuts","toast","useToast","setChatMessages","useConversations","settingsOpen","setSettingsOpen","useState","closeCanvas","useCanvasStore","useKeyboardShortcuts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAMO,SAASA,IAA4B;AAC1C,QAAM,EAAC,OAAAC,EAAA,IAASC,EAAA,GAEV;AAAA,IACJ,iBAAAC;AAAA,EAAA,IACEC,EAAA,GAEE,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAChD;AAAA,IACJ,aAAAC;AAAA,EAAA,IACEC,EAAA;AAEJ,SAAAC,EAAqB;AAAA,IACnB;AAAA,MACE,KAAK;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,MACb,QAAQ,MAAMJ,EAAgB,EAAI;AAAA,IAAA;AAAA,IAEpC;AAAA,MACE,KAAK;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,MACb,QAAQ,MAAM;AACZ,QAAAH,EAAgB,CAAA,CAAE,GAClBF,EAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,QAAA,CACd;AAAA,MACH;AAAA,IAAA;AAAA,IAEF;AAAA,MACE,KAAK;AAAA,MACL,aAAa;AAAA,MACb,QAAQ,MAAMO,EAAA;AAAA,IAAY;AAAA,EAC5B,CACD,GAEM;AAAA,IACL,cAAAH;AAAA,IACA,iBAAAC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useChatKeyboardsShortcuts.js","sources":["../../../../lib/organisms/chat/hooks/useChatKeyboardsShortcuts.ts"],"sourcesContent":["import {useKeyboardShortcuts} from \"@clubmed/usg-chat-ui/utils/keyboard-shortcuts\";\nimport {useState} from \"react\";\nimport {useToast} from \"@clubmed/usg-chat-ui/molecules/Notifications/useToast\";\nimport {useConversations} from \"@clubmed/usg-chat-ui/organisms/chat/hooks/useConversations\";\nimport {useCanvasStore} from \"@clubmed/usg-chat-ui/utils/canvas-store\";\n\nexport function useChatKeyboardsShortcuts() {\n const {toast} = useToast();\n\n const {\n setChatMessages\n } = useConversations();\n\n const [settingsOpen, setSettingsOpen] = useState(false);\n const {\n closeCanvas\n } = useCanvasStore();\n\n useKeyboardShortcuts([\n {\n key: \",\",\n ctrl: true,\n description: \"Open settings\",\n action: () => setSettingsOpen(true),\n },\n {\n key: \"k\",\n ctrl: true,\n description: \"Clear conversation\",\n action: () => {\n setChatMessages([]);\n toast({\n title: \"Cleared\",\n description: \"Conversation history cleared\",\n });\n },\n },\n {\n key: \"Escape\",\n description: \"Close canvas\",\n action: () => closeCanvas(),\n },\n ]);\n\n return {\n settingsOpen,\n setSettingsOpen,\n }\n}\n"],"names":["useChatKeyboardsShortcuts","toast","useToast","setChatMessages","useConversations","settingsOpen","setSettingsOpen","useState","closeCanvas","useCanvasStore","useKeyboardShortcuts"],"mappings":";;;;;AAMO,SAASA,IAA4B;AAC1C,QAAM,EAAC,OAAAC,EAAA,IAASC,EAAA,GAEV;AAAA,IACJ,iBAAAC;AAAA,EAAA,IACEC,EAAA,GAEE,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAChD;AAAA,IACJ,aAAAC;AAAA,EAAA,IACEC,EAAA;AAEJ,SAAAC,EAAqB;AAAA,IACnB;AAAA,MACE,KAAK;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,MACb,QAAQ,MAAMJ,EAAgB,EAAI;AAAA,IAAA;AAAA,IAEpC;AAAA,MACE,KAAK;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,MACb,QAAQ,MAAM;AACZ,QAAAH,EAAgB,CAAA,CAAE,GAClBF,EAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,QAAA,CACd;AAAA,MACH;AAAA,IAAA;AAAA,IAEF;AAAA,MACE,KAAK;AAAA,MACL,aAAa;AAAA,MACb,QAAQ,MAAMO,EAAA;AAAA,IAAY;AAAA,EAC5B,CACD,GAEM;AAAA,IACL,cAAAH;AAAA,IACA,iBAAAC;AAAA,EAAA;AAEJ;"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useState as u, useRef as I, useCallback as m, useEffect as b } from "react";
3
- import { useToast as R } from "../../../molecules/Notifications/use-toast.js";
3
+ import { useToast as R } from "../../../molecules/Notifications/useToast.js";
4
4
  import { useChatApiClient as D, useChatConfig as Q } from "../../../contexts/ChatContext.js";
5
5
  function S() {
6
6
  const { toast: o } = R(), l = D(), { isAuthenticated: y, dbUserId: p } = Q(), [a, d] = u([]), [i, f] = u(null), [w, E] = u(0), [v, g] = u(!1), [, T] = u(!1), n = I(!1), c = I(null), h = m(
@@ -1 +1 @@
1
- {"version":3,"file":"useConversations.js","sources":["../../../../lib/organisms/chat/hooks/useConversations.ts"],"sourcesContent":["\"use client\";\n\nimport {useCallback, useEffect, useRef, useState} from \"react\";\nimport type {ConversationMessage, ConversationSummary} from \"../../../core/interfaces\";\nimport type {ChatMessage} from \"../types\";\nimport {useToast} from \"../../../molecules/Notifications/use-toast\";\nimport {useChatApiClient, useChatConfig} from \"../../../contexts/ChatContext\";\n\nexport function useConversations() {\n const {toast} = useToast();\n const apiClient = useChatApiClient();\n const {isAuthenticated, dbUserId} = useChatConfig();\n\n const [chatMessages, setChatMessages] = useState<ChatMessage[]>([]);\n const [currentConversationId, setCurrentConversationId] = useState<string | null>(null);\n const [sidebarRefreshTrigger, setSidebarRefreshTrigger] = useState(0);\n const [isLoadingMessage, setIsLoadingMessage] = useState(false);\n const [, setSavingConversation] = useState(false);\n const isLoadingConversationRef = useRef(false);\n const saveTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const loadConversation = useCallback(\n async (conversation: ConversationSummary | null) => {\n try {\n isLoadingConversationRef.current = true;\n\n if (!conversation) {\n setChatMessages([]);\n setCurrentConversationId(null);\n setTimeout(() => {\n isLoadingConversationRef.current = false;\n }, 500);\n return;\n }\n\n const messages: ChatMessage[] = conversation.messages.map((msg, idx: number) => ({\n key: `msg-${idx}`,\n from: msg.role,\n versions: [\n {\n id: msg.id || `msg-${idx}`,\n content: msg.content,\n responseType: msg.responseType,\n canvasData: msg.canvasData,\n followupQuestions: msg.followupQuestions,\n },\n ],\n avatar: msg.role === \"user\" ? \"https://github.com/haydenbleasel.png\" : \"https://github.com/openai.png\",\n name: msg.role === \"user\" ? \"User\" : \"Assistant\",\n sources: msg.sources,\n reasoning: msg.reasoning,\n }));\n\n setChatMessages(messages);\n setCurrentConversationId(conversation.id);\n\n setTimeout(() => {\n isLoadingConversationRef.current = false;\n }, 500);\n } catch (error) {\n console.error(\"Error loading conversation:\", error);\n isLoadingConversationRef.current = false;\n toast({\n title: \"Erreur\",\n description: \"Impossible de charger la conversation\",\n variant: \"destructive\",\n });\n }\n },\n [toast]\n );\n\n const handleNewConversation = useCallback(() => {\n isLoadingConversationRef.current = true;\n setChatMessages([]);\n setCurrentConversationId(null);\n setTimeout(() => {\n isLoadingConversationRef.current = false;\n }, 500);\n }, []);\n\n const saveConversation = useCallback(async () => {\n if (!isAuthenticated || !dbUserId || chatMessages.length === 0) {\n return;\n }\n\n try {\n setSavingConversation(true);\n\n const messages: ConversationMessage[] = chatMessages.flatMap((msg) =>\n msg.versions.map((v: ChatMessage[\"versions\"][number]) => ({\n id: v.id,\n role: msg.from,\n content: v.content,\n responseType: v.responseType,\n canvasData: v.canvasData,\n followupQuestions: v.followupQuestions,\n sources: msg.sources,\n reasoning: msg.reasoning,\n }))\n );\n\n const data = await apiClient.saveConversation({\n conversationId: currentConversationId,\n userId: dbUserId,\n messages,\n });\n setCurrentConversationId(data.id);\n setSidebarRefreshTrigger((prev) => prev + 1);\n } catch (error) {\n console.error(\"Error saving conversation:\", error);\n const errorMessage = error instanceof Error ? error.message : \"Failed to save conversation\";\n toast({\n title: \"Erreur de sauvegarde\",\n description: errorMessage,\n variant: \"destructive\",\n });\n } finally {\n setSavingConversation(false);\n }\n }, [apiClient, chatMessages, currentConversationId, dbUserId, isAuthenticated, toast]);\n\n useEffect(() => {\n if (!currentConversationId) {\n return;\n }\n\n const loadConversationFromId = async () => {\n try {\n setIsLoadingMessage(true);\n\n const conversation = await apiClient.getConversation(currentConversationId);\n\n await loadConversation(conversation);\n } catch (error) {\n console.error(\"Error loading conversation:\", error);\n toast({\n title: \"Erreur\",\n description: \"Impossible de charger la conversation\",\n variant: \"destructive\",\n });\n } finally {\n setIsLoadingMessage(false);\n }\n };\n\n void loadConversationFromId();\n }, [apiClient, currentConversationId, loadConversation, toast]);\n\n useEffect(() => {\n if (isLoadingConversationRef.current) {\n return;\n }\n\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current);\n }\n\n if (chatMessages.length === 0 || isLoadingMessage) {\n return;\n }\n\n saveTimeoutRef.current = setTimeout(() => {\n if (!isLoadingMessage) {\n saveConversation();\n }\n }, 1500);\n\n return () => {\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current);\n }\n };\n }, [chatMessages, isLoadingMessage, saveConversation]);\n\n return {\n chatMessages,\n setChatMessages,\n currentConversationId,\n sidebarRefreshTrigger,\n isLoadingMessage,\n setIsLoadingMessage,\n loadConversation,\n handleNewConversation,\n saveConversation,\n };\n}\n"],"names":["useConversations","toast","useToast","apiClient","useChatApiClient","isAuthenticated","dbUserId","useChatConfig","chatMessages","setChatMessages","useState","currentConversationId","setCurrentConversationId","sidebarRefreshTrigger","setSidebarRefreshTrigger","isLoadingMessage","setIsLoadingMessage","setSavingConversation","isLoadingConversationRef","useRef","saveTimeoutRef","loadConversation","useCallback","conversation","messages","msg","idx","error","handleNewConversation","saveConversation","v","data","prev","errorMessage","useEffect"],"mappings":";;;;AAQO,SAASA,IAAmB;AACjC,QAAM,EAAC,OAAAC,EAAA,IAASC,EAAA,GACVC,IAAYC,EAAA,GACZ,EAAC,iBAAAC,GAAiB,UAAAC,EAAA,IAAYC,EAAA,GAE9B,CAACC,GAAcC,CAAe,IAAIC,EAAwB,CAAA,CAAE,GAC5D,CAACC,GAAuBC,CAAwB,IAAIF,EAAwB,IAAI,GAChF,CAACG,GAAuBC,CAAwB,IAAIJ,EAAS,CAAC,GAC9D,CAACK,GAAkBC,CAAmB,IAAIN,EAAS,EAAK,GACxD,GAAGO,CAAqB,IAAIP,EAAS,EAAK,GAC1CQ,IAA2BC,EAAO,EAAK,GACvCC,IAAiBD,EAA8B,IAAI,GAEnDE,IAAmBC;AAAA,IACvB,OAAOC,MAA6C;AAClD,UAAI;AAGF,YAFAL,EAAyB,UAAU,IAE/B,CAACK,GAAc;AACjB,UAAAd,EAAgB,CAAA,CAAE,GAClBG,EAAyB,IAAI,GAC7B,WAAW,MAAM;AACf,YAAAM,EAAyB,UAAU;AAAA,UACrC,GAAG,GAAG;AACN;AAAA,QACF;AAEA,cAAMM,IAA0BD,EAAa,SAAS,IAAI,CAACE,GAAKC,OAAiB;AAAA,UAC/E,KAAK,OAAOA,CAAG;AAAA,UACf,MAAMD,EAAI;AAAA,UACV,UAAU;AAAA,YACR;AAAA,cACE,IAAIA,EAAI,MAAM,OAAOC,CAAG;AAAA,cACxB,SAASD,EAAI;AAAA,cACb,cAAcA,EAAI;AAAA,cAClB,YAAYA,EAAI;AAAA,cAChB,mBAAmBA,EAAI;AAAA,YAAA;AAAA,UACzB;AAAA,UAEF,QAAQA,EAAI,SAAS,SAAS,yCAAyC;AAAA,UACvE,MAAMA,EAAI,SAAS,SAAS,SAAS;AAAA,UACrC,SAASA,EAAI;AAAA,UACb,WAAWA,EAAI;AAAA,QAAA,EACf;AAEF,QAAAhB,EAAgBe,CAAQ,GACxBZ,EAAyBW,EAAa,EAAE,GAExC,WAAW,MAAM;AACf,UAAAL,EAAyB,UAAU;AAAA,QACrC,GAAG,GAAG;AAAA,MACR,SAASS,GAAO;AACd,gBAAQ,MAAM,+BAA+BA,CAAK,GAClDT,EAAyB,UAAU,IACnCjB,EAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,SAAS;AAAA,QAAA,CACV;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAACA,CAAK;AAAA,EAAA,GAGF2B,IAAwBN,EAAY,MAAM;AAC9C,IAAAJ,EAAyB,UAAU,IACnCT,EAAgB,CAAA,CAAE,GAClBG,EAAyB,IAAI,GAC7B,WAAW,MAAM;AACf,MAAAM,EAAyB,UAAU;AAAA,IACrC,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAECW,IAAmBP,EAAY,YAAY;AAC/C,QAAI,GAACjB,KAAmB,CAACC,KAAYE,EAAa,WAAW;AAI7D,UAAI;AACF,QAAAS,EAAsB,EAAI;AAE1B,cAAMO,IAAkChB,EAAa;AAAA,UAAQ,CAACiB,MAC5DA,EAAI,SAAS,IAAI,CAACK,OAAwC;AAAA,YACxD,IAAIA,EAAE;AAAA,YACN,MAAML,EAAI;AAAA,YACV,SAASK,EAAE;AAAA,YACX,cAAcA,EAAE;AAAA,YAChB,YAAYA,EAAE;AAAA,YACd,mBAAmBA,EAAE;AAAA,YACrB,SAASL,EAAI;AAAA,YACb,WAAWA,EAAI;AAAA,UAAA,EACf;AAAA,QAAA,GAGEM,IAAO,MAAM5B,EAAU,iBAAiB;AAAA,UAC5C,gBAAgBQ;AAAA,UAChB,QAAQL;AAAA,UACR,UAAAkB;AAAA,QAAA,CACD;AACD,QAAAZ,EAAyBmB,EAAK,EAAE,GAChCjB,EAAyB,CAACkB,MAASA,IAAO,CAAC;AAAA,MAC7C,SAASL,GAAO;AACd,gBAAQ,MAAM,8BAA8BA,CAAK;AACjD,cAAMM,IAAeN,aAAiB,QAAQA,EAAM,UAAU;AAC9D,QAAA1B,EAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAagC;AAAA,UACb,SAAS;AAAA,QAAA,CACV;AAAA,MACH,UAAA;AACE,QAAAhB,EAAsB,EAAK;AAAA,MAC7B;AAAA,EACF,GAAG,CAACd,GAAWK,GAAcG,GAAuBL,GAAUD,GAAiBJ,CAAK,CAAC;AAErF,SAAAiC,EAAU,MAAM;AACd,QAAI,CAACvB;AACH;AAsBF,KAnB+B,YAAY;AACzC,UAAI;AACF,QAAAK,EAAoB,EAAI;AAExB,cAAMO,IAAe,MAAMpB,EAAU,gBAAgBQ,CAAqB;AAE1E,cAAMU,EAAiBE,CAAY;AAAA,MACrC,SAASI,GAAO;AACd,gBAAQ,MAAM,+BAA+BA,CAAK,GAClD1B,EAAM;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,UACb,SAAS;AAAA,QAAA,CACV;AAAA,MACH,UAAA;AACE,QAAAe,EAAoB,EAAK;AAAA,MAC3B;AAAA,IACF,GAEK;AAAA,EACP,GAAG,CAACb,GAAWQ,GAAuBU,GAAkBpB,CAAK,CAAC,GAE9DiC,EAAU,MAAM;AACd,QAAI,CAAAhB,EAAyB,YAIzBE,EAAe,WACjB,aAAaA,EAAe,OAAO,GAGjC,EAAAZ,EAAa,WAAW,KAAKO;AAIjC,aAAAK,EAAe,UAAU,WAAW,MAAM;AACxC,QAAKL,KACHc,EAAA;AAAA,MAEJ,GAAG,IAAI,GAEA,MAAM;AACX,QAAIT,EAAe,WACjB,aAAaA,EAAe,OAAO;AAAA,MAEvC;AAAA,EACF,GAAG,CAACZ,GAAcO,GAAkBc,CAAgB,CAAC,GAE9C;AAAA,IACL,cAAArB;AAAA,IACA,iBAAAC;AAAA,IACA,uBAAAE;AAAA,IACA,uBAAAE;AAAA,IACA,kBAAAE;AAAA,IACA,qBAAAC;AAAA,IACA,kBAAAK;AAAA,IACA,uBAAAO;AAAA,IACA,kBAAAC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useConversations.js","sources":["../../../../lib/organisms/chat/hooks/useConversations.ts"],"sourcesContent":["\"use client\";\n\nimport {useCallback, useEffect, useRef, useState} from \"react\";\nimport type {ConversationMessage, ConversationSummary} from \"../../../core/interfaces\";\nimport type {ChatMessage} from \"../types\";\nimport {useToast} from \"../../../molecules/Notifications/useToast\";\nimport {useChatApiClient, useChatConfig} from \"../../../contexts/ChatContext\";\n\nexport function useConversations() {\n const {toast} = useToast();\n const apiClient = useChatApiClient();\n const {isAuthenticated, dbUserId} = useChatConfig();\n\n const [chatMessages, setChatMessages] = useState<ChatMessage[]>([]);\n const [currentConversationId, setCurrentConversationId] = useState<string | null>(null);\n const [sidebarRefreshTrigger, setSidebarRefreshTrigger] = useState(0);\n const [isLoadingMessage, setIsLoadingMessage] = useState(false);\n const [, setSavingConversation] = useState(false);\n const isLoadingConversationRef = useRef(false);\n const saveTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const loadConversation = useCallback(\n async (conversation: ConversationSummary | null) => {\n try {\n isLoadingConversationRef.current = true;\n\n if (!conversation) {\n setChatMessages([]);\n setCurrentConversationId(null);\n setTimeout(() => {\n isLoadingConversationRef.current = false;\n }, 500);\n return;\n }\n\n const messages: ChatMessage[] = conversation.messages.map((msg, idx: number) => ({\n key: `msg-${idx}`,\n from: msg.role,\n versions: [\n {\n id: msg.id || `msg-${idx}`,\n content: msg.content,\n responseType: msg.responseType,\n canvasData: msg.canvasData,\n followupQuestions: msg.followupQuestions,\n },\n ],\n avatar: msg.role === \"user\" ? \"https://github.com/haydenbleasel.png\" : \"https://github.com/openai.png\",\n name: msg.role === \"user\" ? \"User\" : \"Assistant\",\n sources: msg.sources,\n reasoning: msg.reasoning,\n }));\n\n setChatMessages(messages);\n setCurrentConversationId(conversation.id);\n\n setTimeout(() => {\n isLoadingConversationRef.current = false;\n }, 500);\n } catch (error) {\n console.error(\"Error loading conversation:\", error);\n isLoadingConversationRef.current = false;\n toast({\n title: \"Erreur\",\n description: \"Impossible de charger la conversation\",\n variant: \"destructive\",\n });\n }\n },\n [toast]\n );\n\n const handleNewConversation = useCallback(() => {\n isLoadingConversationRef.current = true;\n setChatMessages([]);\n setCurrentConversationId(null);\n setTimeout(() => {\n isLoadingConversationRef.current = false;\n }, 500);\n }, []);\n\n const saveConversation = useCallback(async () => {\n if (!isAuthenticated || !dbUserId || chatMessages.length === 0) {\n return;\n }\n\n try {\n setSavingConversation(true);\n\n const messages: ConversationMessage[] = chatMessages.flatMap((msg) =>\n msg.versions.map((v: ChatMessage[\"versions\"][number]) => ({\n id: v.id,\n role: msg.from,\n content: v.content,\n responseType: v.responseType,\n canvasData: v.canvasData,\n followupQuestions: v.followupQuestions,\n sources: msg.sources,\n reasoning: msg.reasoning,\n }))\n );\n\n const data = await apiClient.saveConversation({\n conversationId: currentConversationId,\n userId: dbUserId,\n messages,\n });\n setCurrentConversationId(data.id);\n setSidebarRefreshTrigger((prev) => prev + 1);\n } catch (error) {\n console.error(\"Error saving conversation:\", error);\n const errorMessage = error instanceof Error ? error.message : \"Failed to save conversation\";\n toast({\n title: \"Erreur de sauvegarde\",\n description: errorMessage,\n variant: \"destructive\",\n });\n } finally {\n setSavingConversation(false);\n }\n }, [apiClient, chatMessages, currentConversationId, dbUserId, isAuthenticated, toast]);\n\n useEffect(() => {\n if (!currentConversationId) {\n return;\n }\n\n const loadConversationFromId = async () => {\n try {\n setIsLoadingMessage(true);\n\n const conversation = await apiClient.getConversation(currentConversationId);\n\n await loadConversation(conversation);\n } catch (error) {\n console.error(\"Error loading conversation:\", error);\n toast({\n title: \"Erreur\",\n description: \"Impossible de charger la conversation\",\n variant: \"destructive\",\n });\n } finally {\n setIsLoadingMessage(false);\n }\n };\n\n void loadConversationFromId();\n }, [apiClient, currentConversationId, loadConversation, toast]);\n\n useEffect(() => {\n if (isLoadingConversationRef.current) {\n return;\n }\n\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current);\n }\n\n if (chatMessages.length === 0 || isLoadingMessage) {\n return;\n }\n\n saveTimeoutRef.current = setTimeout(() => {\n if (!isLoadingMessage) {\n saveConversation();\n }\n }, 1500);\n\n return () => {\n if (saveTimeoutRef.current) {\n clearTimeout(saveTimeoutRef.current);\n }\n };\n }, [chatMessages, isLoadingMessage, saveConversation]);\n\n return {\n chatMessages,\n setChatMessages,\n currentConversationId,\n sidebarRefreshTrigger,\n isLoadingMessage,\n setIsLoadingMessage,\n loadConversation,\n handleNewConversation,\n saveConversation,\n };\n}\n"],"names":["useConversations","toast","useToast","apiClient","useChatApiClient","isAuthenticated","dbUserId","useChatConfig","chatMessages","setChatMessages","useState","currentConversationId","setCurrentConversationId","sidebarRefreshTrigger","setSidebarRefreshTrigger","isLoadingMessage","setIsLoadingMessage","setSavingConversation","isLoadingConversationRef","useRef","saveTimeoutRef","loadConversation","useCallback","conversation","messages","msg","idx","error","handleNewConversation","saveConversation","v","data","prev","errorMessage","useEffect"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { Input as re } from "../../molecules/Forms/Inputs/Input.js";
7
7
  import { Label as T } from "../../molecules/Labels/Label.js";
8
8
  import { Tabs as ie, TabsList as ce, TabsTrigger as X, TabsContent as Y } from "../../molecules/Tabs/Tabs.js";
9
9
  import { useCanvasStore as de } from "../../utils/canvas-store.js";
10
- import { t as o } from "../../chunks/index3.js";
10
+ import { t as o } from "../../chunks/index4.js";
11
11
  import { useChatConfig as me, useChatApiClient as ue } from "../../contexts/ChatContext.js";
12
12
  import { JiraConnectionTab as he } from "./JiraConnectionTab.js";
13
13
  import { useChatJira as xe } from "../../contexts/ChatJiraContext.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clubmed/usg-chat-ui",
3
- "version": "1.0.1",
3
+ "version": "1.2.4",
4
4
  "description": "Reusable ClubMed USG chat experience",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -11,7 +11,7 @@
11
11
  "import": "./index.js",
12
12
  "types": "./index.d.ts"
13
13
  },
14
- "./styles.css": "./styles/index.css",
14
+ "./styles.css": "./assets/style.css",
15
15
  "./core/*": {
16
16
  "types": "./core/*.d.ts",
17
17
  "import": "./core/*.js",
@@ -44,8 +44,7 @@
44
44
  }
45
45
  },
46
46
  "sideEffects": [
47
- "./styles/index.css",
48
- "./dist/assets/style.css"
47
+ "./assets/style.css"
49
48
  ],
50
49
  "scripts": {
51
50
  "clean": "rimraf dist",
@@ -1,19 +0,0 @@
1
- 0 verbose cli /usr/local/bin/node /usr/local/bin/npm
2
- 1 info using npm@10.9.2
3
- 2 info using node@v22.17.0
4
- 3 silly config load:file:/usr/local/lib/node_modules/npm/npmrc
5
- 4 silly config load:file:/builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npmrc
6
- 5 silly config load:file:/root/.npmrc
7
- 6 silly config load:file:/usr/local/etc/npmrc
8
- 7 verbose title npm config set strict-ssl false
9
- 8 verbose argv "config" "set" "strict-ssl" "false"
10
- 9 verbose logfile logs-max:10 dir:/builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npm/_logs/2026-01-19T16_54_30_380Z-
11
- 10 verbose logfile /builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npm/_logs/2026-01-19T16_54_30_380Z-debug-0.log
12
- 11 silly logfile done cleaning log files
13
- 12 info config set "strict-ssl" "false"
14
- 13 verbose cwd /builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist
15
- 14 verbose os Linux 5.14.0-503.40.1.el9_5.x86_64
16
- 15 verbose node v22.17.0
17
- 16 verbose npm v10.9.2
18
- 17 verbose exit 0
19
- 18 info ok
@@ -1,19 +0,0 @@
1
- 0 verbose cli /usr/local/bin/node /usr/local/bin/npm
2
- 1 info using npm@10.9.2
3
- 2 info using node@v22.17.0
4
- 3 silly config load:file:/usr/local/lib/node_modules/npm/npmrc
5
- 4 silly config load:file:/builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npmrc
6
- 5 silly config load:file:/root/.npmrc
7
- 6 silly config load:file:/usr/local/etc/npmrc
8
- 7 verbose title npm config set //registry.npmjs.org/:_authToken=npm_***
9
- 8 verbose argv "config" "set" "--" "//registry.npmjs.org/:_authToken=npm_***"
10
- 9 verbose logfile logs-max:10 dir:/builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npm/_logs/2026-01-19T16_54_30_467Z-
11
- 10 verbose logfile /builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npm/_logs/2026-01-19T16_54_30_467Z-debug-0.log
12
- 11 silly logfile done cleaning log files
13
- 12 info config set "//registry.npmjs.org/:_authToken" "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"
14
- 13 verbose cwd /builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist
15
- 14 verbose os Linux 5.14.0-503.40.1.el9_5.x86_64
16
- 15 verbose node v22.17.0
17
- 16 verbose npm v10.9.2
18
- 17 verbose exit 0
19
- 18 info ok
@@ -1,14 +0,0 @@
1
- 0 verbose cli /usr/local/bin/node /usr/local/bin/npm
2
- 1 info using npm@10.9.2
3
- 2 info using node@v22.17.0
4
- 3 silly config load:file:/usr/local/lib/node_modules/npm/npmrc
5
- 4 silly config load:file:/builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npmrc
6
- 5 silly config load:file:/root/.npmrc
7
- 6 silly config load:file:/usr/local/etc/npmrc
8
- 7 verbose title npm publish
9
- 8 verbose argv "publish" "--access" "public" "--tag" "latest"
10
- 9 verbose logfile logs-max:10 dir:/builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npm/_logs/2026-01-19T16_54_30_553Z-
11
- 10 verbose logfile /builds/usg-user-story-generator-frontend-backend/1882625/usg-ui/packages/chat/dist/.npm/_logs/2026-01-19T16_54_30_553Z-debug-0.log
12
- 11 silly logfile done cleaning log files
13
- 12 verbose publish [ '.' ]
14
- 13 silly packumentCache heap:4345298944 maxSize:1086324736 maxEntrySize:543162368