@stack-spot/ai-chat-widget 1.7.2 → 1.8.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 (402) hide show
  1. package/package.json +1 -1
  2. package/src/app-metadata.json +2 -2
  3. package/src/views/MessageInput/chat-entry-history.ts +97 -0
  4. package/src/views/MessageInput/index.tsx +7 -1
  5. package/dist/AbortedError.d.ts +0 -5
  6. package/dist/AbortedError.d.ts.map +0 -1
  7. package/dist/AbortedError.js +0 -7
  8. package/dist/AbortedError.js.map +0 -1
  9. package/dist/StackspotAIWidget.d.ts +0 -23
  10. package/dist/StackspotAIWidget.d.ts.map +0 -1
  11. package/dist/StackspotAIWidget.js +0 -35
  12. package/dist/StackspotAIWidget.js.map +0 -1
  13. package/dist/app-metadata.json +0 -151
  14. package/dist/chat-interceptors/CustomInputs.d.ts +0 -22
  15. package/dist/chat-interceptors/CustomInputs.d.ts.map +0 -1
  16. package/dist/chat-interceptors/CustomInputs.js +0 -71
  17. package/dist/chat-interceptors/CustomInputs.js.map +0 -1
  18. package/dist/chat-interceptors/quick-command-questions.d.ts +0 -14
  19. package/dist/chat-interceptors/quick-command-questions.d.ts.map +0 -1
  20. package/dist/chat-interceptors/quick-command-questions.js +0 -28
  21. package/dist/chat-interceptors/quick-command-questions.js.map +0 -1
  22. package/dist/chat-interceptors/quick-commands.d.ts +0 -17
  23. package/dist/chat-interceptors/quick-commands.d.ts.map +0 -1
  24. package/dist/chat-interceptors/quick-commands.js +0 -292
  25. package/dist/chat-interceptors/quick-commands.js.map +0 -1
  26. package/dist/chat-interceptors/send-message.d.ts +0 -14
  27. package/dist/chat-interceptors/send-message.d.ts.map +0 -1
  28. package/dist/chat-interceptors/send-message.js +0 -96
  29. package/dist/chat-interceptors/send-message.js.map +0 -1
  30. package/dist/components/Accordion.d.ts +0 -20
  31. package/dist/components/Accordion.d.ts.map +0 -1
  32. package/dist/components/Accordion.js +0 -49
  33. package/dist/components/Accordion.js.map +0 -1
  34. package/dist/components/AdaptiveTextArea.d.ts +0 -22
  35. package/dist/components/AdaptiveTextArea.d.ts.map +0 -1
  36. package/dist/components/AdaptiveTextArea.js +0 -39
  37. package/dist/components/AdaptiveTextArea.js.map +0 -1
  38. package/dist/components/AutoFocus.d.ts +0 -23
  39. package/dist/components/AutoFocus.d.ts.map +0 -1
  40. package/dist/components/AutoFocus.js +0 -23
  41. package/dist/components/AutoFocus.js.map +0 -1
  42. package/dist/components/Code.d.ts +0 -19
  43. package/dist/components/Code.d.ts.map +0 -1
  44. package/dist/components/Code.js +0 -118
  45. package/dist/components/Code.js.map +0 -1
  46. package/dist/components/Fading.d.ts +0 -32
  47. package/dist/components/Fading.d.ts.map +0 -1
  48. package/dist/components/Fading.js +0 -33
  49. package/dist/components/Fading.js.map +0 -1
  50. package/dist/components/FadingOverflow.d.ts +0 -37
  51. package/dist/components/FadingOverflow.d.ts.map +0 -1
  52. package/dist/components/FadingOverflow.js +0 -225
  53. package/dist/components/FadingOverflow.js.map +0 -1
  54. package/dist/components/FallbackBoundary/ErrorBoundary.d.ts +0 -33
  55. package/dist/components/FallbackBoundary/ErrorBoundary.d.ts.map +0 -1
  56. package/dist/components/FallbackBoundary/ErrorBoundary.js +0 -52
  57. package/dist/components/FallbackBoundary/ErrorBoundary.js.map +0 -1
  58. package/dist/components/FallbackBoundary/Loading.d.ts +0 -2
  59. package/dist/components/FallbackBoundary/Loading.d.ts.map +0 -1
  60. package/dist/components/FallbackBoundary/Loading.js +0 -12
  61. package/dist/components/FallbackBoundary/Loading.js.map +0 -1
  62. package/dist/components/FallbackBoundary/index.d.ts +0 -17
  63. package/dist/components/FallbackBoundary/index.d.ts.map +0 -1
  64. package/dist/components/FallbackBoundary/index.js +0 -9
  65. package/dist/components/FallbackBoundary/index.js.map +0 -1
  66. package/dist/components/HistoryList.d.ts +0 -25
  67. package/dist/components/HistoryList.d.ts.map +0 -1
  68. package/dist/components/HistoryList.js +0 -74
  69. package/dist/components/HistoryList.js.map +0 -1
  70. package/dist/components/IconInput.d.ts +0 -10
  71. package/dist/components/IconInput.d.ts.map +0 -1
  72. package/dist/components/IconInput.js +0 -61
  73. package/dist/components/IconInput.js.map +0 -1
  74. package/dist/components/Markdown.d.ts +0 -9
  75. package/dist/components/Markdown.d.ts.map +0 -1
  76. package/dist/components/Markdown.js +0 -17
  77. package/dist/components/Markdown.js.map +0 -1
  78. package/dist/components/OverlayMenu.d.ts +0 -21
  79. package/dist/components/OverlayMenu.d.ts.map +0 -1
  80. package/dist/components/OverlayMenu.js +0 -79
  81. package/dist/components/OverlayMenu.js.map +0 -1
  82. package/dist/components/ProgressBar.d.ts +0 -33
  83. package/dist/components/ProgressBar.d.ts.map +0 -1
  84. package/dist/components/ProgressBar.js +0 -131
  85. package/dist/components/ProgressBar.js.map +0 -1
  86. package/dist/components/QuickStartButton.d.ts +0 -13
  87. package/dist/components/QuickStartButton.d.ts.map +0 -1
  88. package/dist/components/QuickStartButton.js +0 -47
  89. package/dist/components/QuickStartButton.js.map +0 -1
  90. package/dist/components/RightPanelForm.d.ts +0 -8
  91. package/dist/components/RightPanelForm.d.ts.map +0 -1
  92. package/dist/components/RightPanelForm.js +0 -50
  93. package/dist/components/RightPanelForm.js.map +0 -1
  94. package/dist/components/RightPanelTabs.d.ts +0 -13
  95. package/dist/components/RightPanelTabs.d.ts.map +0 -1
  96. package/dist/components/RightPanelTabs.js +0 -24
  97. package/dist/components/RightPanelTabs.js.map +0 -1
  98. package/dist/components/Selector/index.d.ts +0 -24
  99. package/dist/components/Selector/index.d.ts.map +0 -1
  100. package/dist/components/Selector/index.js +0 -134
  101. package/dist/components/Selector/index.js.map +0 -1
  102. package/dist/components/Selector/styled.d.ts +0 -2
  103. package/dist/components/Selector/styled.d.ts.map +0 -1
  104. package/dist/components/Selector/styled.js +0 -153
  105. package/dist/components/Selector/styled.js.map +0 -1
  106. package/dist/components/TabManager.d.ts +0 -40
  107. package/dist/components/TabManager.d.ts.map +0 -1
  108. package/dist/components/TabManager.js +0 -166
  109. package/dist/components/TabManager.js.map +0 -1
  110. package/dist/components/Tooltip/Tooltip.d.ts +0 -37
  111. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  112. package/dist/components/Tooltip/Tooltip.js +0 -30
  113. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  114. package/dist/components/Tooltip/TooltipAPI.d.ts +0 -29
  115. package/dist/components/Tooltip/TooltipAPI.d.ts.map +0 -1
  116. package/dist/components/Tooltip/TooltipAPI.js +0 -107
  117. package/dist/components/Tooltip/TooltipAPI.js.map +0 -1
  118. package/dist/components/Tooltip/context.d.ts +0 -5
  119. package/dist/components/Tooltip/context.d.ts.map +0 -1
  120. package/dist/components/Tooltip/context.js +0 -18
  121. package/dist/components/Tooltip/context.js.map +0 -1
  122. package/dist/components/Tooltip/index.d.ts +0 -3
  123. package/dist/components/Tooltip/index.d.ts.map +0 -1
  124. package/dist/components/Tooltip/index.js +0 -3
  125. package/dist/components/Tooltip/index.js.map +0 -1
  126. package/dist/components/Tooltip/style.d.ts +0 -4
  127. package/dist/components/Tooltip/style.d.ts.map +0 -1
  128. package/dist/components/Tooltip/style.js +0 -22
  129. package/dist/components/Tooltip/style.js.map +0 -1
  130. package/dist/components/Tooltip/types.d.ts +0 -27
  131. package/dist/components/Tooltip/types.d.ts.map +0 -1
  132. package/dist/components/Tooltip/types.js +0 -2
  133. package/dist/components/Tooltip/types.js.map +0 -1
  134. package/dist/components/form/DescribedCheckboxGroup.d.ts +0 -7
  135. package/dist/components/form/DescribedCheckboxGroup.d.ts.map +0 -1
  136. package/dist/components/form/DescribedCheckboxGroup.js +0 -27
  137. package/dist/components/form/DescribedCheckboxGroup.js.map +0 -1
  138. package/dist/components/form/DescribedRadioGroup.d.ts +0 -7
  139. package/dist/components/form/DescribedRadioGroup.d.ts.map +0 -1
  140. package/dist/components/form/DescribedRadioGroup.js +0 -22
  141. package/dist/components/form/DescribedRadioGroup.js.map +0 -1
  142. package/dist/components/form/styled.d.ts +0 -2
  143. package/dist/components/form/styled.d.ts.map +0 -1
  144. package/dist/components/form/styled.js +0 -42
  145. package/dist/components/form/styled.js.map +0 -1
  146. package/dist/components/form/types.d.ts +0 -53
  147. package/dist/components/form/types.d.ts.map +0 -1
  148. package/dist/components/form/types.js +0 -2
  149. package/dist/components/form/types.js.map +0 -1
  150. package/dist/context/AIWidgetProvider.d.ts +0 -23
  151. package/dist/context/AIWidgetProvider.d.ts.map +0 -1
  152. package/dist/context/AIWidgetProvider.js +0 -23
  153. package/dist/context/AIWidgetProvider.js.map +0 -1
  154. package/dist/context/hooks.d.ts +0 -69
  155. package/dist/context/hooks.d.ts.map +0 -1
  156. package/dist/context/hooks.js +0 -121
  157. package/dist/context/hooks.js.map +0 -1
  158. package/dist/features.d.ts +0 -40
  159. package/dist/features.d.ts.map +0 -1
  160. package/dist/features.js +0 -18
  161. package/dist/features.js.map +0 -1
  162. package/dist/index.d.ts +0 -14
  163. package/dist/index.d.ts.map +0 -1
  164. package/dist/index.js +0 -12
  165. package/dist/index.js.map +0 -1
  166. package/dist/layout.css +0 -137
  167. package/dist/regex.d.ts +0 -3
  168. package/dist/regex.d.ts.map +0 -1
  169. package/dist/regex.js +0 -3
  170. package/dist/regex.js.map +0 -1
  171. package/dist/right-panel/DefaultPanel.d.ts +0 -12
  172. package/dist/right-panel/DefaultPanel.d.ts.map +0 -1
  173. package/dist/right-panel/DefaultPanel.js +0 -50
  174. package/dist/right-panel/DefaultPanel.js.map +0 -1
  175. package/dist/right-panel/RightPanel.d.ts +0 -5
  176. package/dist/right-panel/RightPanel.d.ts.map +0 -1
  177. package/dist/right-panel/RightPanel.js +0 -9
  178. package/dist/right-panel/RightPanel.js.map +0 -1
  179. package/dist/right-panel/RightPanelProvider.d.ts +0 -28
  180. package/dist/right-panel/RightPanelProvider.d.ts.map +0 -1
  181. package/dist/right-panel/RightPanelProvider.js +0 -10
  182. package/dist/right-panel/RightPanelProvider.js.map +0 -1
  183. package/dist/right-panel/constants.d.ts +0 -2
  184. package/dist/right-panel/constants.d.ts.map +0 -1
  185. package/dist/right-panel/constants.js +0 -2
  186. package/dist/right-panel/constants.js.map +0 -1
  187. package/dist/right-panel/hooks.d.ts +0 -19
  188. package/dist/right-panel/hooks.d.ts.map +0 -1
  189. package/dist/right-panel/hooks.js +0 -46
  190. package/dist/right-panel/hooks.js.map +0 -1
  191. package/dist/state/ChatEntry.d.ts +0 -112
  192. package/dist/state/ChatEntry.d.ts.map +0 -1
  193. package/dist/state/ChatEntry.js +0 -59
  194. package/dist/state/ChatEntry.js.map +0 -1
  195. package/dist/state/ChatState.d.ts +0 -154
  196. package/dist/state/ChatState.d.ts.map +0 -1
  197. package/dist/state/ChatState.js +0 -108
  198. package/dist/state/ChatState.js.map +0 -1
  199. package/dist/state/ChatTabsController.d.ts +0 -66
  200. package/dist/state/ChatTabsController.d.ts.map +0 -1
  201. package/dist/state/ChatTabsController.js +0 -116
  202. package/dist/state/ChatTabsController.js.map +0 -1
  203. package/dist/state/ObservableState.d.ts +0 -24
  204. package/dist/state/ObservableState.d.ts.map +0 -1
  205. package/dist/state/ObservableState.js +0 -39
  206. package/dist/state/ObservableState.js.map +0 -1
  207. package/dist/state/WidgetState.d.ts +0 -80
  208. package/dist/state/WidgetState.d.ts.map +0 -1
  209. package/dist/state/WidgetState.js +0 -68
  210. package/dist/state/WidgetState.js.map +0 -1
  211. package/dist/state/types.d.ts +0 -8
  212. package/dist/state/types.d.ts.map +0 -1
  213. package/dist/state/types.js +0 -2
  214. package/dist/state/types.js.map +0 -1
  215. package/dist/types.d.ts +0 -27
  216. package/dist/types.d.ts.map +0 -1
  217. package/dist/types.js +0 -2
  218. package/dist/types.js.map +0 -1
  219. package/dist/utils/chat.d.ts +0 -12
  220. package/dist/utils/chat.d.ts.map +0 -1
  221. package/dist/utils/chat.js +0 -26
  222. package/dist/utils/chat.js.map +0 -1
  223. package/dist/utils/date.d.ts +0 -32
  224. package/dist/utils/date.d.ts.map +0 -1
  225. package/dist/utils/date.js +0 -66
  226. package/dist/utils/date.js.map +0 -1
  227. package/dist/utils/download.d.ts +0 -7
  228. package/dist/utils/download.d.ts.map +0 -1
  229. package/dist/utils/download.js +0 -15
  230. package/dist/utils/download.js.map +0 -1
  231. package/dist/utils/knowledge-source.d.ts +0 -19
  232. package/dist/utils/knowledge-source.d.ts.map +0 -1
  233. package/dist/utils/knowledge-source.js +0 -60
  234. package/dist/utils/knowledge-source.js.map +0 -1
  235. package/dist/utils/programming-languages.d.ts +0 -7
  236. package/dist/utils/programming-languages.d.ts.map +0 -1
  237. package/dist/utils/programming-languages.js +0 -464
  238. package/dist/utils/programming-languages.js.map +0 -1
  239. package/dist/utils/string.d.ts +0 -7
  240. package/dist/utils/string.d.ts.map +0 -1
  241. package/dist/utils/string.js +0 -11
  242. package/dist/utils/string.js.map +0 -1
  243. package/dist/utils/url.d.ts +0 -2
  244. package/dist/utils/url.d.ts.map +0 -1
  245. package/dist/utils/url.js +0 -8
  246. package/dist/utils/url.js.map +0 -1
  247. package/dist/views/Agents/AgentDescription.d.ts +0 -9
  248. package/dist/views/Agents/AgentDescription.d.ts.map +0 -1
  249. package/dist/views/Agents/AgentDescription.js +0 -21
  250. package/dist/views/Agents/AgentDescription.js.map +0 -1
  251. package/dist/views/Agents/AgentsPanel.d.ts +0 -5
  252. package/dist/views/Agents/AgentsPanel.d.ts.map +0 -1
  253. package/dist/views/Agents/AgentsPanel.js +0 -19
  254. package/dist/views/Agents/AgentsPanel.js.map +0 -1
  255. package/dist/views/Agents/AgentsTab.d.ts +0 -5
  256. package/dist/views/Agents/AgentsTab.d.ts.map +0 -1
  257. package/dist/views/Agents/AgentsTab.js +0 -43
  258. package/dist/views/Agents/AgentsTab.js.map +0 -1
  259. package/dist/views/Agents/dictionary.d.ts +0 -2
  260. package/dist/views/Agents/dictionary.d.ts.map +0 -1
  261. package/dist/views/Agents/dictionary.js +0 -35
  262. package/dist/views/Agents/dictionary.js.map +0 -1
  263. package/dist/views/Agents/index.d.ts +0 -5
  264. package/dist/views/Agents/index.d.ts.map +0 -1
  265. package/dist/views/Agents/index.js +0 -21
  266. package/dist/views/Agents/index.js.map +0 -1
  267. package/dist/views/Agents/styled.d.ts +0 -3
  268. package/dist/views/Agents/styled.d.ts.map +0 -1
  269. package/dist/views/Agents/styled.js +0 -58
  270. package/dist/views/Agents/styled.js.map +0 -1
  271. package/dist/views/Chat/AgentInfo.d.ts +0 -10
  272. package/dist/views/Chat/AgentInfo.d.ts.map +0 -1
  273. package/dist/views/Chat/AgentInfo.js +0 -10
  274. package/dist/views/Chat/AgentInfo.js.map +0 -1
  275. package/dist/views/Chat/ChatMessage.d.ts +0 -22
  276. package/dist/views/Chat/ChatMessage.d.ts.map +0 -1
  277. package/dist/views/Chat/ChatMessage.js +0 -82
  278. package/dist/views/Chat/ChatMessage.js.map +0 -1
  279. package/dist/views/Chat/ChatMessages.d.ts +0 -10
  280. package/dist/views/Chat/ChatMessages.d.ts.map +0 -1
  281. package/dist/views/Chat/ChatMessages.js +0 -15
  282. package/dist/views/Chat/ChatMessages.js.map +0 -1
  283. package/dist/views/Chat/chat-scroll.d.ts +0 -7
  284. package/dist/views/Chat/chat-scroll.d.ts.map +0 -1
  285. package/dist/views/Chat/chat-scroll.js +0 -17
  286. package/dist/views/Chat/chat-scroll.js.map +0 -1
  287. package/dist/views/Chat/events.d.ts +0 -22
  288. package/dist/views/Chat/events.d.ts.map +0 -1
  289. package/dist/views/Chat/events.js +0 -66
  290. package/dist/views/Chat/events.js.map +0 -1
  291. package/dist/views/Chat/index.d.ts +0 -12
  292. package/dist/views/Chat/index.d.ts.map +0 -1
  293. package/dist/views/Chat/index.js +0 -11
  294. package/dist/views/Chat/index.js.map +0 -1
  295. package/dist/views/Chat/styled.d.ts +0 -2
  296. package/dist/views/Chat/styled.d.ts.map +0 -1
  297. package/dist/views/Chat/styled.js +0 -186
  298. package/dist/views/Chat/styled.js.map +0 -1
  299. package/dist/views/ChatHistory/ChatHistoryPanel.d.ts +0 -5
  300. package/dist/views/ChatHistory/ChatHistoryPanel.d.ts.map +0 -1
  301. package/dist/views/ChatHistory/ChatHistoryPanel.js +0 -14
  302. package/dist/views/ChatHistory/ChatHistoryPanel.js.map +0 -1
  303. package/dist/views/ChatHistory/HistoryItem.d.ts +0 -8
  304. package/dist/views/ChatHistory/HistoryItem.d.ts.map +0 -1
  305. package/dist/views/ChatHistory/HistoryItem.js +0 -130
  306. package/dist/views/ChatHistory/HistoryItem.js.map +0 -1
  307. package/dist/views/ChatHistory/dictionary.d.ts +0 -2
  308. package/dist/views/ChatHistory/dictionary.d.ts.map +0 -1
  309. package/dist/views/ChatHistory/dictionary.js +0 -19
  310. package/dist/views/ChatHistory/dictionary.js.map +0 -1
  311. package/dist/views/ChatHistory/index.d.ts +0 -5
  312. package/dist/views/ChatHistory/index.d.ts.map +0 -1
  313. package/dist/views/ChatHistory/index.js +0 -26
  314. package/dist/views/ChatHistory/index.js.map +0 -1
  315. package/dist/views/ChatHistory/styled.d.ts +0 -2
  316. package/dist/views/ChatHistory/styled.d.ts.map +0 -1
  317. package/dist/views/ChatHistory/styled.js +0 -60
  318. package/dist/views/ChatHistory/styled.js.map +0 -1
  319. package/dist/views/ChatHistory/utils.d.ts +0 -20
  320. package/dist/views/ChatHistory/utils.d.ts.map +0 -1
  321. package/dist/views/ChatHistory/utils.js +0 -53
  322. package/dist/views/ChatHistory/utils.js.map +0 -1
  323. package/dist/views/ChatTabSelection.d.ts +0 -5
  324. package/dist/views/ChatTabSelection.d.ts.map +0 -1
  325. package/dist/views/ChatTabSelection.js +0 -48
  326. package/dist/views/ChatTabSelection.js.map +0 -1
  327. package/dist/views/Editor.d.ts +0 -5
  328. package/dist/views/Editor.d.ts.map +0 -1
  329. package/dist/views/Editor.js +0 -96
  330. package/dist/views/Editor.js.map +0 -1
  331. package/dist/views/Home/BuiltInAgent.d.ts +0 -6
  332. package/dist/views/Home/BuiltInAgent.d.ts.map +0 -1
  333. package/dist/views/Home/BuiltInAgent.js +0 -39
  334. package/dist/views/Home/BuiltInAgent.js.map +0 -1
  335. package/dist/views/Home/CustomAgent.d.ts +0 -5
  336. package/dist/views/Home/CustomAgent.d.ts.map +0 -1
  337. package/dist/views/Home/CustomAgent.js +0 -24
  338. package/dist/views/Home/CustomAgent.js.map +0 -1
  339. package/dist/views/Home/index.d.ts +0 -8
  340. package/dist/views/Home/index.d.ts.map +0 -1
  341. package/dist/views/Home/index.js +0 -15
  342. package/dist/views/Home/index.js.map +0 -1
  343. package/dist/views/Home/styled.d.ts +0 -2
  344. package/dist/views/Home/styled.d.ts.map +0 -1
  345. package/dist/views/Home/styled.js +0 -59
  346. package/dist/views/Home/styled.js.map +0 -1
  347. package/dist/views/Home/types.d.ts +0 -7
  348. package/dist/views/Home/types.d.ts.map +0 -1
  349. package/dist/views/Home/types.js +0 -2
  350. package/dist/views/Home/types.js.map +0 -1
  351. package/dist/views/KSDocument.d.ts +0 -5
  352. package/dist/views/KSDocument.d.ts.map +0 -1
  353. package/dist/views/KSDocument.js +0 -43
  354. package/dist/views/KSDocument.js.map +0 -1
  355. package/dist/views/KnowledgeSources.d.ts +0 -2
  356. package/dist/views/KnowledgeSources.d.ts.map +0 -1
  357. package/dist/views/KnowledgeSources.js +0 -96
  358. package/dist/views/KnowledgeSources.js.map +0 -1
  359. package/dist/views/MessageInput/AgentSelector.d.ts +0 -4
  360. package/dist/views/MessageInput/AgentSelector.d.ts.map +0 -1
  361. package/dist/views/MessageInput/AgentSelector.js +0 -58
  362. package/dist/views/MessageInput/AgentSelector.js.map +0 -1
  363. package/dist/views/MessageInput/ButtonAgent.d.ts +0 -2
  364. package/dist/views/MessageInput/ButtonAgent.d.ts.map +0 -1
  365. package/dist/views/MessageInput/ButtonAgent.js +0 -17
  366. package/dist/views/MessageInput/ButtonAgent.js.map +0 -1
  367. package/dist/views/MessageInput/ButtonGroup.d.ts +0 -29
  368. package/dist/views/MessageInput/ButtonGroup.d.ts.map +0 -1
  369. package/dist/views/MessageInput/ButtonGroup.js +0 -34
  370. package/dist/views/MessageInput/ButtonGroup.js.map +0 -1
  371. package/dist/views/MessageInput/InfoBar.d.ts +0 -9
  372. package/dist/views/MessageInput/InfoBar.d.ts.map +0 -1
  373. package/dist/views/MessageInput/InfoBar.js +0 -52
  374. package/dist/views/MessageInput/InfoBar.js.map +0 -1
  375. package/dist/views/MessageInput/QuickCommandSelector.d.ts +0 -4
  376. package/dist/views/MessageInput/QuickCommandSelector.d.ts.map +0 -1
  377. package/dist/views/MessageInput/QuickCommandSelector.js +0 -34
  378. package/dist/views/MessageInput/QuickCommandSelector.js.map +0 -1
  379. package/dist/views/MessageInput/dictionary.d.ts +0 -2
  380. package/dist/views/MessageInput/dictionary.d.ts.map +0 -1
  381. package/dist/views/MessageInput/dictionary.js +0 -43
  382. package/dist/views/MessageInput/dictionary.js.map +0 -1
  383. package/dist/views/MessageInput/index.d.ts +0 -7
  384. package/dist/views/MessageInput/index.d.ts.map +0 -1
  385. package/dist/views/MessageInput/index.js +0 -59
  386. package/dist/views/MessageInput/index.js.map +0 -1
  387. package/dist/views/MessageInput/styled.d.ts +0 -4
  388. package/dist/views/MessageInput/styled.d.ts.map +0 -1
  389. package/dist/views/MessageInput/styled.js +0 -257
  390. package/dist/views/MessageInput/styled.js.map +0 -1
  391. package/dist/views/MinimizedHeader.d.ts +0 -7
  392. package/dist/views/MinimizedHeader.d.ts.map +0 -1
  393. package/dist/views/MinimizedHeader.js +0 -79
  394. package/dist/views/MinimizedHeader.js.map +0 -1
  395. package/dist/views/Stacks.d.ts +0 -5
  396. package/dist/views/Stacks.d.ts.map +0 -1
  397. package/dist/views/Stacks.js +0 -80
  398. package/dist/views/Stacks.js.map +0 -1
  399. package/dist/views/Workspaces.d.ts +0 -5
  400. package/dist/views/Workspaces.d.ts.map +0 -1
  401. package/dist/views/Workspaces.js +0 -66
  402. package/dist/views/Workspaces.js.map +0 -1
@@ -1,292 +0,0 @@
1
- import { aiClient, CancelledError, StackspotAPIError } from '@stack-spot/portal-network';
2
- import { interpolate, translate } from '@stack-spot/portal-translate';
3
- import { ulid } from 'ulid';
4
- import { AbortedError } from '../AbortedError.js';
5
- import { quickCommandRegex } from '../regex.js';
6
- import { ChatEntry } from '../state/ChatEntry.js';
7
- import { buildConversationContext } from '../utils/chat.js';
8
- import { getSizeOfString } from '../utils/string.js';
9
- import { CustomInputs } from './CustomInputs.js';
10
- /**
11
- * While the quick command is running, if it takes more than `progressMessageDelayMS` a progress message is shown.
12
- * This progress message is shown immediately if one of the steps is of type "LLM".
13
- */
14
- const progressMessageDelayMS = 1000;
15
- /**
16
- * This creates a chat interceptor for interpreting and running quick commands. We need a function to create the interceptor because, for
17
- * quick commands, we need access to the full widget state and the editor, which are not provided to a chat interceptor.
18
- *
19
- * The quick command interceptor intercepts all user messages (trimmed) that matches the quick command regex. It fetches the quick command
20
- * from the backend, runs all of its steps and outputs the final response (in the chat or in the editor).
21
- *
22
- * @param widget the full widget state.
23
- * @param getEditor a function that returns the editor instance (monaco).
24
- * @returns the quick commands chat interceptor.
25
- */
26
- export function createQuickCommandInterceptor(widget, getEditor) {
27
- /**
28
- * This creates a CustomInputs instance in the current chat, which activates the `quickCommandQuestionsInterceptor`. In summary, this asks
29
- * the first question, wait for all answers to be given and fills the result map in the context passed as parameter.
30
- */
31
- async function computeCustomInputs(ctx) {
32
- const { chat, qc: { custom_inputs: inputs, name, slug } } = ctx;
33
- if (!inputs?.length)
34
- return;
35
- chat.set('isLoading', false);
36
- const t = translate(dictionary);
37
- const customInputs = new CustomInputs(inputs, chat.get('agent'));
38
- CustomInputs.setCustomInputsForChat(customInputs, chat);
39
- chat.pushMessage(new ChatEntry({
40
- agentType: 'bot',
41
- type: 'text',
42
- content: interpolate(t.startQuestioning, name || slug),
43
- }));
44
- chat.pushMessage(customInputs.ask());
45
- const inputsValues = await customInputs.getValue();
46
- chat.set('isLoading', true);
47
- CustomInputs.deleteCustomInputsFromChat(chat);
48
- ctx.resultMap = { ...ctx.resultMap, ...inputsValues };
49
- }
50
- /**
51
- * Runs a fetch step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
52
- */
53
- async function runFetchStep(ctx, stepIndex) {
54
- const { qc: { slug, steps }, code, context, resultMap, executionId, signal } = ctx;
55
- const step = steps[stepIndex];
56
- const { headers, data, method, url } = await aiClient.fetchStepOfQuickCommand.mutate({
57
- slug,
58
- stepSlug: step.slug,
59
- quickCommandsExecutionRequest: { input_data: code, context, slugs_executions: resultMap, qc_execution_id: executionId },
60
- }, signal);
61
- const body = ['get', 'head'].includes(method.toLowerCase()) ? undefined : data;
62
- const response = await fetch(url, { headers: headers || undefined, body, method, signal });
63
- if (!response.ok)
64
- throw new Error(`Failed to execute step "${step.slug}" of quick command "${slug}". Status ${response.status}.`);
65
- resultMap[step.slug] = {
66
- status: response.status,
67
- data: await response.text(),
68
- headers: Object.fromEntries(response.headers.entries()),
69
- };
70
- }
71
- /**
72
- * Runs an LLM step of a quick command and puts the result in the `resultMap` of the context passed as parameter.
73
- */
74
- async function runLLMStep({ qc: { slug, steps }, code, context, executionId, resultMap, signal }, stepIndex) {
75
- const step = steps[stepIndex];
76
- resultMap[step.slug] = await aiClient.llmStepOfQuickCommand.mutate({
77
- slug,
78
- stepSlug: step.slug,
79
- quickCommandsExecutionRequest: { input_data: code, context, qc_execution_id: executionId, slugs_executions: resultMap },
80
- }, signal);
81
- }
82
- function updateProgressMessageForStep(message, qc, stepIndex) {
83
- const t = translate(dictionary);
84
- message.setValue({
85
- ...message.getValue(),
86
- content: interpolate(t.progress, qc.name || qc.slug, stepIndex + 1, qc.steps?.[stepIndex]?.slug, qc.steps?.length),
87
- });
88
- }
89
- function createProgressMessage(agent) {
90
- return new ChatEntry({
91
- agentType: 'bot',
92
- content: '',
93
- type: 'text',
94
- agent,
95
- });
96
- }
97
- function showProgressMessage(ctx) {
98
- const showImmediately = ctx.qc.steps?.some(s => s.type === 'LLM');
99
- const message = createProgressMessage(ctx.chat.get('agent'));
100
- const controller = {
101
- update: (index) => updateProgressMessageForStep(message, ctx.qc, index),
102
- remove: () => clearTimeout(timeout),
103
- };
104
- const timeout = window.setTimeout(() => {
105
- const chat = ctx.chat;
106
- chat.pushMessage(message);
107
- controller.remove = () => chat.popMessage();
108
- }, showImmediately ? 0 : progressMessageDelayMS);
109
- return controller;
110
- }
111
- async function runSteps(ctx) {
112
- const { qc } = ctx;
113
- const progress = showProgressMessage(ctx);
114
- try {
115
- for (let i = 0; i < (qc.steps?.length ?? 0); i++) {
116
- progress.update(i);
117
- await (qc.steps?.[i].type === 'FETCH' ? runFetchStep(ctx, i) : runLLMStep(ctx, i));
118
- }
119
- }
120
- finally {
121
- progress.remove();
122
- }
123
- }
124
- async function formatResult({ qc, code, executionId, context, resultMap, signal }) {
125
- const formatted = await aiClient.formatResultOfQuickCommand.mutate({
126
- slug: qc.slug,
127
- quickCommandsExecutionRequest: {
128
- input_data: code,
129
- context,
130
- qc_execution_id: executionId,
131
- slugs_executions: resultMap,
132
- },
133
- }, signal);
134
- return formatted.result;
135
- }
136
- // opens a new chat tab if the quick command doesn't preserve the conversation and the current conversation isn't clean.
137
- function manageConversationContext(ctx) {
138
- if (!ctx.qc.preserve_conversation && ctx.chat.getMessages().length > 1) {
139
- if (ctx.qc.return_type === 'CHAT') {
140
- ctx.chat.set('isLoading', false);
141
- ctx.chat = ctx.chat.transferToNewChat(ctx.qc.name || ctx.qc.slug);
142
- ctx.chat.set('isLoading', true);
143
- widget.chatTabs.add(ctx.chat);
144
- widget.chatTabs.select(ctx.chat.id);
145
- ctx.context.conversation_id = ctx.chat.id;
146
- }
147
- else {
148
- // if we're running a command in teh editor, we don't need to open a new tab, we just need to run it in a new conversation context.
149
- ctx.context.conversation_id = ulid();
150
- }
151
- }
152
- }
153
- async function runQuickCommand(ctx) {
154
- const { qc: { slug }, code } = ctx;
155
- const t = translate(dictionary);
156
- ctx.signal.addEventListener('abort', () => aiClient.quickCommand.cancel({ slug }));
157
- await aiClient.quickCommand.invalidate({ slug });
158
- try {
159
- ctx.qc = await aiClient.quickCommand.query({ slug });
160
- }
161
- catch (error) {
162
- throw error instanceof StackspotAPIError && error.status === 404 ? new Error(t.notFound) : error;
163
- }
164
- if (ctx.qc.use_selected_code && !code) {
165
- throw new Error(t.requiresSelection);
166
- }
167
- manageConversationContext(ctx);
168
- await computeCustomInputs(ctx);
169
- await runSteps(ctx);
170
- return formatResult(ctx);
171
- }
172
- /**
173
- * This registers a quick command event in the backend (analytics).
174
- */
175
- async function registerAnalyticsEvent({ qc, executionId, code = '', context }, status, start) {
176
- const now = new Date().getTime();
177
- try {
178
- await aiClient.createEvent.mutate({
179
- body: [{
180
- type: 'custom_quick_command_execution',
181
- quick_command_event: {
182
- type: qc.type || '',
183
- duration_execution: now - start,
184
- status_execution: status,
185
- slug: qc.slug,
186
- qc_execution_id: executionId,
187
- id: qc.id,
188
- },
189
- code,
190
- context,
191
- knowledge_sources: [],
192
- size: getSizeOfString(code),
193
- generated_at: now,
194
- }],
195
- });
196
- }
197
- catch (error) {
198
- // eslint-disable-next-line no-console
199
- console.warn('Failed to register event: quick command.');
200
- }
201
- }
202
- /**
203
- * Writes the result in the chat or in the editor.
204
- */
205
- function outputResult({ qc, chat, code }, result) {
206
- if (qc.return_type === 'CHAT') {
207
- chat.pushMessage(new ChatEntry({
208
- agentType: 'bot',
209
- content: result,
210
- agent: chat.get('agent'),
211
- type: 'md',
212
- updated: new Date().toISOString(),
213
- }));
214
- }
215
- else {
216
- const editor = getEditor()?.getEditors()[0];
217
- let finalCode = result;
218
- if (qc.return_type === 'BEFORE_CODE')
219
- finalCode = `${result}\n${code}`;
220
- else if (qc.return_type === 'AFTER_CODE')
221
- finalCode = `${code}\n${result}`;
222
- finalCode = finalCode.replace(/(\$[{a-z]|\})/g, '\\$1');
223
- editor?.trigger('keyboard', 'type', { text: finalCode });
224
- }
225
- }
226
- /**
227
- * The chat interceptor itself.
228
- * @param entry the chat entry.
229
- * @param chat the chat state.
230
- * @param signal a signal that can be canceled by the user.
231
- * @returns false if, and only if, this entry (trimmed) matches the quick command regex. Undefined otherwise.
232
- */
233
- async function quickCommandInterceptor(entry, chat, signal) {
234
- const { agentType, content } = entry.getValue();
235
- if (!chat.get('features')?.quickCommands || agentType !== 'user' || !quickCommandRegex.test(content.trim()))
236
- return;
237
- const t = translate(dictionary);
238
- const slug = content.trim().substring(1);
239
- const ctx = {
240
- qc: { slug },
241
- chat,
242
- code: chat.get('codeSelection'),
243
- context: buildConversationContext(chat) ?? {},
244
- executionId: ulid(),
245
- resultMap: {},
246
- signal,
247
- };
248
- chat.set('isLoading', true);
249
- const start = new Date().getTime();
250
- try {
251
- const result = await runQuickCommand(ctx);
252
- outputResult(ctx, result);
253
- registerAnalyticsEvent(ctx, '200', start);
254
- }
255
- catch (error) {
256
- let message = error.message || `${error}`;
257
- if (error instanceof AbortedError || error instanceof CancelledError)
258
- message = t.aborted;
259
- else if (error instanceof StackspotAPIError)
260
- message = error.translate();
261
- ctx.chat.pushMessage(new ChatEntry({
262
- agentType: 'bot',
263
- content: '',
264
- error: message,
265
- agent: chat.get('agent'),
266
- type: 'text',
267
- }));
268
- registerAnalyticsEvent(ctx, message, start);
269
- }
270
- ctx.chat.set('isLoading', false);
271
- // prevents the next interceptors from running
272
- return false;
273
- }
274
- return quickCommandInterceptor;
275
- }
276
- const dictionary = {
277
- en: {
278
- requiresSelection: 'This quick command requires some code to be selected in the editor. To open the editor click the icon "{/}" in the field below.',
279
- startQuestioning: 'To execute the Quick Command "$0", I\'ll need you to provide some information. Some may be mandatory, and others optional. Let\'s get started.',
280
- progress: 'Running quick command "$0". Step $1 ($2) of $3.',
281
- aborted: 'The quick command execution aborted by the user.',
282
- notFound: 'There\'s no quick command with the provided name. If you don\'t wish to run a command, prefix the first "/" with a "\\".',
283
- },
284
- pt: {
285
- requiresSelection: 'Este quick command precisa que algum código esteja selecionado no editor. Para abrir o editor clique no ícone "{/}" no campo abaixo.',
286
- startQuestioning: 'Para executar o Quick Command "$0", vou precisar que você providencie algumas explicações. Algumas são obrigatórias e outras opcionais. Vamos começar.',
287
- progress: 'Executando quick command "$0". Passo $1 ($2) de $3.',
288
- aborted: 'A execução do quick command foi abortada pelo usuário.',
289
- notFound: 'Não existe quick command com o nome providenciado. Se você não quiser rodar um comando, prefixe o primeiro "/" com um "\\".',
290
- },
291
- };
292
- //# sourceMappingURL=quick-commands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quick-commands.js","sourceRoot":"","sources":["../../src/chat-interceptors/quick-commands.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { ChatEntry } from '../state/ChatEntry.js';
2
- import { ChatState } from '../state/ChatState.js';
3
- /**
4
- * The chat interceptor that sends the message to the AI agent, interprets the response and adds it to the chat.
5
- *
6
- * The message added to the chat is streamed, i.e. it changes over time, until it's completed.
7
- *
8
- * @param entry the chat entry.
9
- * @param chat the chat state.
10
- * @param signal a signal that can be canceled by the user.
11
- * @returns undefined
12
- */
13
- export declare function sendMessageInterceptor(entry: ChatEntry, chat: ChatState, signal: AbortSignal): Promise<void>;
14
- //# sourceMappingURL=send-message.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/chat-interceptors/send-message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkC,MAAM,oBAAoB,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AA8B9C;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,iBAyDlG"}
@@ -1,96 +0,0 @@
1
- import { aiClient, StackspotAPIError, StreamCanceledError } from '@stack-spot/portal-network';
2
- import { ChatEntry } from '../state/ChatEntry.js';
3
- import { buildConversationContext } from '../utils/chat.js';
4
- import { genericSourcesToKnowledgeSources } from '../utils/knowledge-source.js';
5
- /**
6
- * Transforms a chat response from the backend into a chat entry that can be added to the chat.
7
- * @param response the original response.
8
- * @param knowledgeSources the knowledge sources already in format used by the chat.
9
- * @param agent the current chat agent.
10
- * @param includeDate whether or not to include the date in the chat entry.
11
- * @returns the TextChatEntry to build a ChatEntry.
12
- */
13
- function createEntryValueFromChatResponse(response, knowledgeSources, agent, includeDate = false) {
14
- return {
15
- agentType: 'bot',
16
- type: 'md',
17
- content: response.answer ?? '',
18
- messageId: response.message_id ?? undefined,
19
- knowledgeSources,
20
- agent: agent,
21
- updated: includeDate ? new Date().toISOString() : undefined,
22
- };
23
- }
24
- /**
25
- * The chat interceptor that sends the message to the AI agent, interprets the response and adds it to the chat.
26
- *
27
- * The message added to the chat is streamed, i.e. it changes over time, until it's completed.
28
- *
29
- * @param entry the chat entry.
30
- * @param chat the chat state.
31
- * @param signal a signal that can be canceled by the user.
32
- * @returns undefined
33
- */
34
- export async function sendMessageInterceptor(entry, chat, signal) {
35
- const { agentType, content } = entry.getValue();
36
- if (agentType !== 'user')
37
- return;
38
- const context = buildConversationContext(chat);
39
- chat.set('isLoading', true);
40
- const untitled = chat.untitled;
41
- const isFirstMessage = chat.getMessages().length === 1;
42
- if (untitled) {
43
- chat.set('label', content);
44
- chat.untitled = false;
45
- }
46
- const stream = aiClient.sendChatMessage({ context, user_prompt: content.replace(/^\s*\\(\\|\/)/, '$1') });
47
- signal.addEventListener('abort', () => stream.cancel());
48
- const botEntry = ChatEntry.createStreamedBotEntry();
49
- chat.pushMessage(botEntry);
50
- let knowledgeSources;
51
- stream.onChange(value => {
52
- if (value.sources?.length !== knowledgeSources?.length) {
53
- knowledgeSources = genericSourcesToKnowledgeSources(value.sources);
54
- }
55
- botEntry.setValue(createEntryValueFromChatResponse(value, knowledgeSources, chat.get('agent')));
56
- });
57
- let finalValue;
58
- try {
59
- finalValue = await stream.getValue();
60
- }
61
- catch (error) {
62
- if (error instanceof StreamCanceledError) {
63
- finalValue = stream.getPartialValue();
64
- }
65
- else {
66
- botEntry.setValue({
67
- ...botEntry.getValue(),
68
- error: error instanceof StackspotAPIError ? error.translate() : (error.message ?? `${error}`),
69
- });
70
- }
71
- }
72
- if (finalValue?.answer) {
73
- botEntry.setValue(createEntryValueFromChatResponse(finalValue, knowledgeSources, chat.get('agent'), true));
74
- aiClient.chat.invalidate({ conversationId: chat.id });
75
- if (isFirstMessage) {
76
- // if the chat has a title and this was its first message, we need to rename it according to the title, otherwise, the backend will
77
- // keep the name generated by default.
78
- if (!untitled) {
79
- try {
80
- await aiClient.renameChat.mutate({
81
- conversationId: chat.id,
82
- conversationUpdateTitleRequest: { title: chat.get('label') },
83
- });
84
- }
85
- catch (error) {
86
- // eslint-disable-next-line no-console
87
- console.warn('Failed to rename chat:', chat.get('label'), error);
88
- }
89
- }
90
- // this makes sure to update the chat history
91
- aiClient.chats.invalidate();
92
- }
93
- }
94
- chat.set('isLoading', false);
95
- }
96
- //# sourceMappingURL=send-message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/chat-interceptors/send-message.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { WithStyle } from '@stack-spot/portal-theme';
2
- import React from 'react';
3
- import { WithChildren } from '../types.js';
4
- interface Props extends WithStyle, Required<WithChildren> {
5
- /**
6
- * The header of the accordion (always rendered). The body (hidden part) must be passed as the children.
7
- */
8
- header: React.ReactNode;
9
- /**
10
- * Whether or not to start expanded.
11
- * @default false
12
- */
13
- startExpanded?: boolean;
14
- }
15
- /**
16
- * A component that can have it's content shown or hidden (animated).
17
- */
18
- export declare const Accordion: ({ children, header, className, startExpanded, style }: Props) => import("react/jsx-runtime").JSX.Element;
19
- export {};
20
- //# sourceMappingURL=Accordion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../src/components/Accordion.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,UAAU,KAAM,SAAQ,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC;IACvD;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAqCD;;GAEG;AACH,eAAO,MAAM,SAAS,0DAA2D,KAAK,4CAarF,CAAA"}
@@ -1,49 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /* Copiar do EDP ou usar o AnimatedHeight da lib de components */
3
- import { ChevronDown } from '@citric/icons';
4
- import { IconButton } from '@citric/ui';
5
- import { AnimatedHeight } from '@stack-spot/portal-components/AnimatedHeight';
6
- import { useState } from 'react';
7
- import { styled } from 'styled-components';
8
- const StyledAccordion = styled.div `
9
- > header {
10
- display: flex;
11
- flex-direction: row;
12
- justify-content: space-between;
13
- align-items: center;
14
- padding: 10px;
15
-
16
- > button {
17
- transition: transform 0.3s ease-out;
18
- background: transparent;
19
- border: none;
20
- padding: 0;
21
-
22
- &:hover {
23
- background: transparent;
24
- }
25
-
26
- svg {
27
- width: 16px;
28
- height: 16px;
29
- margin: 4px;
30
- }
31
- }
32
-
33
- &.expanded > button {
34
- transform: rotate(180deg);
35
- }
36
- }
37
-
38
- > .accordion-content {
39
- padding: 10px;
40
- }
41
- `;
42
- /**
43
- * A component that can have it's content shown or hidden (animated).
44
- */
45
- export const Accordion = ({ children, header, className, startExpanded, style }) => {
46
- const [expanded, setExpanded] = useState(startExpanded);
47
- return (_jsx(AnimatedHeight, { style: style, className: className, children: _jsxs(StyledAccordion, { children: [_jsxs("header", { className: expanded ? 'expanded' : '', children: [header, _jsx(IconButton, { onClick: () => setExpanded(v => !v), children: _jsx(ChevronDown, {}) })] }), expanded ? _jsx("div", { className: "accordion-content", children: children }) : null] }) }));
48
- };
49
- //# sourceMappingURL=Accordion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../src/components/Accordion.tsx"],"names":[],"mappings":";AAAA,iEAAiE;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAE7E,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAe1C,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCjC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAS,EAAE,EAAE;IACxF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;IACvD,OAAO,CACL,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,YAChD,MAAC,eAAe,eACd,kBAAQ,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAC1C,MAAM,EACP,KAAC,UAAU,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAE,KAAC,WAAW,KAAG,GAAa,IACtE,EACR,QAAQ,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAO,CAAC,CAAC,CAAC,IAAI,IACtD,GACH,CAClB,CAAA;AACH,CAAC,CAAA"}
@@ -1,22 +0,0 @@
1
- import { Textarea } from '@citric/core';
2
- import { PropsOf } from '../types.js';
3
- interface Props extends PropsOf<typeof Textarea> {
4
- /**
5
- * A function to run whenever the height of the text area increases.
6
- */
7
- onIncreaseSize?: () => void;
8
- /**
9
- * A function to run whenever the text area value becomes empty.
10
- */
11
- onResetSize?: () => void;
12
- /**
13
- * The maximum height this textarea can get to.
14
- */
15
- maxHeight?: number;
16
- }
17
- /**
18
- * The adaptive textarea grows in height whenever needed until the maximum height is reached.
19
- */
20
- export declare const AdaptiveTextArea: import("react").ForwardRefExoticComponent<Omit<Props, "ref"> & import("react").RefAttributes<HTMLTextAreaElement>>;
21
- export {};
22
- //# sourceMappingURL=AdaptiveTextArea.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdaptiveTextArea.d.ts","sourceRoot":"","sources":["../../src/components/AdaptiveTextArea.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,UAAU,KAAM,SAAQ,OAAO,CAAC,OAAO,QAAQ,CAAC;IAC9C;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,oHAkC3B,CAAA"}
@@ -1,39 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /* eslint-disable react/display-name */
3
- import { Textarea } from '@citric/core';
4
- import { forwardRef, useEffect, useRef } from 'react';
5
- /**
6
- * The adaptive textarea grows in height whenever needed until the maximum height is reached.
7
- */
8
- export const AdaptiveTextArea = forwardRef(({ value, onIncreaseSize, onResetSize, maxHeight, style, ...props }, externalRef) => {
9
- const localRef = useRef(null);
10
- const ref = externalRef ?? localRef;
11
- const handleIncreaseSize = (newHeight) => {
12
- onIncreaseSize?.();
13
- if (maxHeight && newHeight > maxHeight && ref.current) {
14
- ref.current.style.overflowY = 'auto';
15
- }
16
- };
17
- useEffect(() => {
18
- if (!ref.current)
19
- return;
20
- const height = ref.current.clientHeight;
21
- const scroll = ref.current.scrollHeight;
22
- if (!maxHeight || height < maxHeight) {
23
- ref.current.style.overflowY = 'hidden';
24
- if (height < scroll) {
25
- ref.current.style.height = `${scroll}px`;
26
- handleIncreaseSize(scroll);
27
- }
28
- }
29
- else if (maxHeight) {
30
- ref.current.style.overflowY = 'auto';
31
- }
32
- if (!value) {
33
- ref.current.style.height = '';
34
- onResetSize?.();
35
- }
36
- }, [value, maxHeight]);
37
- return _jsx(Textarea, { ...props, ref: ref, value: value, style: { ...style, maxHeight } });
38
- });
39
- //# sourceMappingURL=AdaptiveTextArea.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdaptiveTextArea.js","sourceRoot":"","sources":["../../src/components/AdaptiveTextArea.tsx"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAkBrD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAA6B,CACrE,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAClE,WAAW,EACX,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;IAClD,MAAM,GAAG,GAAG,WAAmD,IAAI,QAAQ,CAAA;IAE3E,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC/C,cAAc,EAAE,EAAE,CAAA;QAClB,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACtD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAA;QACtC,CAAC;IACH,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAM;QACxB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAA;QACvC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;YACrC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAA;YACtC,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;gBACpB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAA;gBACxC,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAA;QACtC,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAA;YAC7B,WAAW,EAAE,EAAE,CAAA;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;IAEtB,OAAO,KAAC,QAAQ,OAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAI,CAAA;AACxF,CAAC,CAAC,CAAA"}
@@ -1,23 +0,0 @@
1
- import { TagPriorityElement } from '@stack-spot/portal-components';
2
- interface Props extends React.HTMLAttributes<HTMLDivElement> {
3
- /**
4
- * A delay in ms to focus the first focusable element.
5
- */
6
- delay?: number;
7
- /**
8
- * Instead of focusing the first element overall, focus the first according to this list of priorities.
9
- *
10
- * 'other' means elements that are normally not focusable, but have positive tabIndex values.
11
- */
12
- priority?: TagPriorityElement[];
13
- /**
14
- * Ignores any element that matches this query selector.
15
- */
16
- ignore?: string;
17
- }
18
- /**
19
- * Focus the first focusable child as soon as the component mounts.
20
- */
21
- export declare const AutoFocus: import("react").ForwardRefExoticComponent<Props & import("react").RefAttributes<HTMLDivElement>>;
22
- export {};
23
- //# sourceMappingURL=AutoFocus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoFocus.d.ts","sourceRoot":"","sources":["../../src/components/AutoFocus.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmB,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAInF,UAAU,KAAM,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC1D;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD;;GAEG;AACH,eAAO,MAAM,SAAS,kGASpB,CAAA"}
@@ -1,23 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /* eslint-disable react/display-name */
3
- import { focusFirstChild } from '@stack-spot/portal-components';
4
- import { forwardRef, useEffect, useRef } from 'react';
5
- import { styled } from 'styled-components';
6
- const FlexibleDiv = styled.div `
7
- overflow: hidden;
8
- flex: 1;
9
- display: flex;
10
- flex-direction: column;
11
- `;
12
- /**
13
- * Focus the first focusable child as soon as the component mounts.
14
- */
15
- export const AutoFocus = forwardRef(({ children, delay = 0, priority, ignore, ...props }, externalRef) => {
16
- const localRef = useRef(null);
17
- const ref = externalRef ?? localRef;
18
- useEffect(() => {
19
- setTimeout(() => focusFirstChild(ref.current, { priority, ignore }), delay);
20
- }, []);
21
- return _jsx(FlexibleDiv, { ref: ref, ...props, children: children });
22
- });
23
- //# sourceMappingURL=AutoFocus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoFocus.js","sourceRoot":"","sources":["../../src/components/AutoFocus.tsx"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAsB,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAE,UAAU,EAAa,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAmB1C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAK7B,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAwB,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE;IAC9H,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,WAAwC,IAAI,QAAQ,CAAA;IAEhE,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7E,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,KAAC,WAAW,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,YAAG,QAAQ,GAAe,CAAA;AACnE,CAAC,CAAC,CAAA"}