@admin-layout/tailwind-ui 12.2.4-alpha.6 → 12.2.4-alpha.60

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 (399) hide show
  1. package/lib/components/AIToolbar/components/AIToolBar.d.ts +22 -0
  2. package/lib/components/AIToolbar/components/AIToolBar.d.ts.map +1 -0
  3. package/lib/components/AIToolbar/components/AIToolBar.js +83 -0
  4. package/lib/components/AIToolbar/components/AIToolBar.js.map +1 -0
  5. package/lib/components/AIToolbar/components/AIToolbarPrimitives.d.ts +14 -0
  6. package/lib/components/AIToolbar/components/AIToolbarPrimitives.d.ts.map +1 -0
  7. package/lib/components/AIToolbar/components/AIToolbarPrimitives.js +60 -0
  8. package/lib/components/AIToolbar/components/AIToolbarPrimitives.js.map +1 -0
  9. package/lib/components/AIToolbar/components/CustomCursor.d.ts +2 -0
  10. package/lib/components/AIToolbar/components/CustomCursor.d.ts.map +1 -0
  11. package/lib/components/AIToolbar/components/CustomCursor.js +66 -0
  12. package/lib/components/AIToolbar/components/CustomCursor.js.map +1 -0
  13. package/lib/components/AIToolbar/components/DragButton.d.ts +9 -0
  14. package/lib/components/AIToolbar/components/DragButton.d.ts.map +1 -0
  15. package/lib/components/AIToolbar/components/DragButton.js +57 -0
  16. package/lib/components/AIToolbar/components/DragButton.js.map +1 -0
  17. package/lib/components/AIToolbar/components/Markdown/copy-button.d.ts +7 -0
  18. package/lib/components/AIToolbar/components/Markdown/copy-button.d.ts.map +1 -0
  19. package/lib/components/AIToolbar/components/Markdown/copy-button.js +30 -0
  20. package/lib/components/AIToolbar/components/Markdown/copy-button.js.map +1 -0
  21. package/lib/components/AIToolbar/components/Markdown/index.d.ts +7 -0
  22. package/lib/components/AIToolbar/components/Markdown/index.d.ts.map +1 -0
  23. package/lib/components/AIToolbar/components/Markdown/index.js +46 -0
  24. package/lib/components/AIToolbar/components/Markdown/index.js.map +1 -0
  25. package/lib/components/AIToolbar/components/completion/AssistantAvatar.d.ts +24 -0
  26. package/lib/components/AIToolbar/components/completion/AssistantAvatar.d.ts.map +1 -0
  27. package/lib/components/AIToolbar/components/completion/AssistantAvatar.js +48 -0
  28. package/lib/components/AIToolbar/components/completion/AssistantAvatar.js.map +1 -0
  29. package/lib/components/AIToolbar/components/completion/AssistantMessageActions.d.ts +28 -0
  30. package/lib/components/AIToolbar/components/completion/AssistantMessageActions.d.ts.map +1 -0
  31. package/lib/components/AIToolbar/components/completion/AssistantMessageActions.js +209 -0
  32. package/lib/components/AIToolbar/components/completion/AssistantMessageActions.js.map +1 -0
  33. package/lib/components/AIToolbar/components/completion/AssistantSenderBadge.d.ts +15 -0
  34. package/lib/components/AIToolbar/components/completion/AssistantSenderBadge.d.ts.map +1 -0
  35. package/lib/components/AIToolbar/components/completion/Audio.d.ts +3 -0
  36. package/lib/components/AIToolbar/components/completion/Audio.d.ts.map +1 -0
  37. package/lib/components/AIToolbar/components/completion/Audio.js +65 -0
  38. package/lib/components/AIToolbar/components/completion/Audio.js.map +1 -0
  39. package/lib/components/AIToolbar/components/completion/AutoSpeechVad.d.ts +11 -0
  40. package/lib/components/AIToolbar/components/completion/AutoSpeechVad.d.ts.map +1 -0
  41. package/lib/components/AIToolbar/components/completion/AutoSpeechVad.js +66 -0
  42. package/lib/components/AIToolbar/components/completion/AutoSpeechVad.js.map +1 -0
  43. package/lib/components/AIToolbar/components/completion/CharacterPicker.d.ts +3 -0
  44. package/lib/components/AIToolbar/components/completion/CharacterPicker.d.ts.map +1 -0
  45. package/lib/components/AIToolbar/components/completion/CharacterPicker.js +90 -0
  46. package/lib/components/AIToolbar/components/completion/CharacterPicker.js.map +1 -0
  47. package/lib/components/AIToolbar/components/completion/Files.d.ts +6 -0
  48. package/lib/components/AIToolbar/components/completion/Files.d.ts.map +1 -0
  49. package/lib/components/AIToolbar/components/completion/Files.js +134 -0
  50. package/lib/components/AIToolbar/components/completion/Files.js.map +1 -0
  51. package/lib/components/AIToolbar/components/completion/Input.d.ts +5 -0
  52. package/lib/components/AIToolbar/components/completion/Input.d.ts.map +1 -0
  53. package/lib/components/AIToolbar/components/completion/Input.js +283 -0
  54. package/lib/components/AIToolbar/components/completion/Input.js.map +1 -0
  55. package/lib/components/AIToolbar/components/completion/MessageHistory.d.ts +11 -0
  56. package/lib/components/AIToolbar/components/completion/MessageHistory.d.ts.map +1 -0
  57. package/lib/components/AIToolbar/components/completion/MessageHistory.js +131 -0
  58. package/lib/components/AIToolbar/components/completion/MessageHistory.js.map +1 -0
  59. package/lib/components/AIToolbar/components/completion/Screenshot.d.ts +6 -0
  60. package/lib/components/AIToolbar/components/completion/Screenshot.d.ts.map +1 -0
  61. package/lib/components/AIToolbar/components/completion/Screenshot.js +28 -0
  62. package/lib/components/AIToolbar/components/completion/Screenshot.js.map +1 -0
  63. package/lib/components/AIToolbar/components/completion/index.d.ts +11 -0
  64. package/lib/components/AIToolbar/components/completion/index.d.ts.map +1 -0
  65. package/lib/components/AIToolbar/components/completion/index.js +20 -0
  66. package/lib/components/AIToolbar/components/completion/index.js.map +1 -0
  67. package/lib/components/AIToolbar/components/index.d.ts +17 -0
  68. package/lib/components/AIToolbar/components/index.d.ts.map +1 -0
  69. package/lib/components/AIToolbar/components/speech/Header.d.ts +14 -0
  70. package/lib/components/AIToolbar/components/speech/Header.d.ts.map +1 -0
  71. package/lib/components/AIToolbar/components/speech/Header.js +82 -0
  72. package/lib/components/AIToolbar/components/speech/Header.js.map +1 -0
  73. package/lib/components/AIToolbar/components/speech/ModeSwitcher.d.ts +8 -0
  74. package/lib/components/AIToolbar/components/speech/ModeSwitcher.d.ts.map +1 -0
  75. package/lib/components/AIToolbar/components/speech/ModeSwitcher.js +44 -0
  76. package/lib/components/AIToolbar/components/speech/ModeSwitcher.js.map +1 -0
  77. package/lib/components/AIToolbar/components/speech/PermissionFlow.d.ts +13 -0
  78. package/lib/components/AIToolbar/components/speech/PermissionFlow.d.ts.map +1 -0
  79. package/lib/components/AIToolbar/components/speech/PermissionFlow.js +168 -0
  80. package/lib/components/AIToolbar/components/speech/PermissionFlow.js.map +1 -0
  81. package/lib/components/AIToolbar/components/speech/QuickActions.d.ts +13 -0
  82. package/lib/components/AIToolbar/components/speech/QuickActions.d.ts.map +1 -0
  83. package/lib/components/AIToolbar/components/speech/QuickActions.js +100 -0
  84. package/lib/components/AIToolbar/components/speech/QuickActions.js.map +1 -0
  85. package/lib/components/AIToolbar/components/speech/RecordingPanel.d.ts +14 -0
  86. package/lib/components/AIToolbar/components/speech/RecordingPanel.d.ts.map +1 -0
  87. package/lib/components/AIToolbar/components/speech/RecordingPanel.js +101 -0
  88. package/lib/components/AIToolbar/components/speech/RecordingPanel.js.map +1 -0
  89. package/lib/components/AIToolbar/components/speech/ResultsSection.d.ts +12 -0
  90. package/lib/components/AIToolbar/components/speech/ResultsSection.d.ts.map +1 -0
  91. package/lib/components/AIToolbar/components/speech/ResultsSection.js +142 -0
  92. package/lib/components/AIToolbar/components/speech/ResultsSection.js.map +1 -0
  93. package/lib/components/AIToolbar/components/speech/SettingsPanel.d.ts +14 -0
  94. package/lib/components/AIToolbar/components/speech/SettingsPanel.d.ts.map +1 -0
  95. package/lib/components/AIToolbar/components/speech/SettingsPanel.js +293 -0
  96. package/lib/components/AIToolbar/components/speech/SettingsPanel.js.map +1 -0
  97. package/lib/components/AIToolbar/components/speech/StatusIndicator.d.ts +10 -0
  98. package/lib/components/AIToolbar/components/speech/StatusIndicator.d.ts.map +1 -0
  99. package/lib/components/AIToolbar/components/speech/StatusIndicator.js +48 -0
  100. package/lib/components/AIToolbar/components/speech/StatusIndicator.js.map +1 -0
  101. package/lib/components/AIToolbar/components/speech/Warning.d.ts +6 -0
  102. package/lib/components/AIToolbar/components/speech/Warning.d.ts.map +1 -0
  103. package/lib/components/AIToolbar/components/speech/Warning.js +154 -0
  104. package/lib/components/AIToolbar/components/speech/Warning.js.map +1 -0
  105. package/lib/components/AIToolbar/components/speech/audio-visualizer.d.ts +7 -0
  106. package/lib/components/AIToolbar/components/speech/audio-visualizer.d.ts.map +1 -0
  107. package/lib/components/AIToolbar/components/speech/audio-visualizer.js +194 -0
  108. package/lib/components/AIToolbar/components/speech/audio-visualizer.js.map +1 -0
  109. package/lib/components/AIToolbar/components/speech/floatArrayToWav.d.ts +2 -0
  110. package/lib/components/AIToolbar/components/speech/floatArrayToWav.d.ts.map +1 -0
  111. package/lib/components/AIToolbar/components/speech/floatArrayToWav.js +32 -0
  112. package/lib/components/AIToolbar/components/speech/floatArrayToWav.js.map +1 -0
  113. package/lib/components/AIToolbar/components/speech/index.d.ts +4 -0
  114. package/lib/components/AIToolbar/components/speech/index.d.ts.map +1 -0
  115. package/lib/components/AIToolbar/components/speech/index.js +298 -0
  116. package/lib/components/AIToolbar/components/speech/index.js.map +1 -0
  117. package/lib/components/AIToolbar/components/speech/promptTemplates.d.ts +12 -0
  118. package/lib/components/AIToolbar/components/speech/promptTemplates.d.ts.map +1 -0
  119. package/lib/components/AIToolbar/components/speech/promptTemplates.js +114 -0
  120. package/lib/components/AIToolbar/components/speech/promptTemplates.js.map +1 -0
  121. package/lib/components/AIToolbar/components/types.d.ts +190 -0
  122. package/lib/components/AIToolbar/components/types.d.ts.map +1 -0
  123. package/lib/components/AIToolbar/hooks/useActiveCharacter.d.ts +52 -0
  124. package/lib/components/AIToolbar/hooks/useActiveCharacter.d.ts.map +1 -0
  125. package/lib/components/AIToolbar/hooks/useActiveCharacter.js +344 -0
  126. package/lib/components/AIToolbar/hooks/useActiveCharacter.js.map +1 -0
  127. package/lib/components/AIToolbar/hooks/useCharacterSprite.d.ts +14 -0
  128. package/lib/components/AIToolbar/hooks/useCharacterSprite.d.ts.map +1 -0
  129. package/lib/components/AIToolbar/hooks/useCharacterSprite.js +103 -0
  130. package/lib/components/AIToolbar/hooks/useCharacterSprite.js.map +1 -0
  131. package/lib/components/AIToolbar/hooks/useChatBackgroundImage.d.ts +10 -0
  132. package/lib/components/AIToolbar/hooks/useChatBackgroundImage.d.ts.map +1 -0
  133. package/lib/components/AIToolbar/hooks/useChatBackgroundImage.js +126 -0
  134. package/lib/components/AIToolbar/hooks/useChatBackgroundImage.js.map +1 -0
  135. package/lib/components/AIToolbar/index.d.ts +7 -0
  136. package/lib/components/AIToolbar/index.d.ts.map +1 -0
  137. package/lib/components/AIToolbar/utils/emotionClassifier.d.ts +19 -0
  138. package/lib/components/AIToolbar/utils/emotionClassifier.d.ts.map +1 -0
  139. package/lib/components/AIToolbar/utils/emotionClassifier.js +142 -0
  140. package/lib/components/AIToolbar/utils/emotionClassifier.js.map +1 -0
  141. package/lib/components/Button/Button.d.ts +1 -1
  142. package/lib/components/Button/Button.d.ts.map +1 -1
  143. package/lib/components/Button/Button.js +7 -6
  144. package/lib/components/Button/Button.js.map +1 -1
  145. package/lib/components/DatePicker/DatePicker.js +158 -140
  146. package/lib/components/DatePicker/DatePicker.js.map +1 -1
  147. package/lib/components/Dialog/Dialog.d.ts +20 -0
  148. package/lib/components/Dialog/Dialog.d.ts.map +1 -0
  149. package/lib/components/Dialog/Dialog.js +111 -0
  150. package/lib/components/Dialog/Dialog.js.map +1 -0
  151. package/lib/components/Dialog/index.d.ts +3 -0
  152. package/lib/components/Dialog/index.d.ts.map +1 -0
  153. package/lib/components/ErrorHandlers/ApplicationErrorHandler.d.ts +1 -2
  154. package/lib/components/ErrorHandlers/ApplicationErrorHandler.d.ts.map +1 -1
  155. package/lib/components/ErrorHandlers/ApplicationErrorHandler.js +2 -2
  156. package/lib/components/ErrorHandlers/ErrorBoundary.d.ts +1 -2
  157. package/lib/components/ErrorHandlers/ErrorBoundary.d.ts.map +1 -1
  158. package/lib/components/ErrorHandlers/ErrorBoundary.js +35 -28
  159. package/lib/components/ErrorHandlers/ErrorBoundary.js.map +1 -1
  160. package/lib/components/ErrorHandlers/LayoutErrorBoundary.d.ts +1 -2
  161. package/lib/components/ErrorHandlers/LayoutErrorBoundary.d.ts.map +1 -1
  162. package/lib/components/ErrorHandlers/LayoutErrorBoundary.js +20 -15
  163. package/lib/components/ErrorHandlers/LayoutErrorBoundary.js.map +1 -1
  164. package/lib/components/ErrorHandlers/RemixErrorBoundary.d.ts +4 -2
  165. package/lib/components/ErrorHandlers/RemixErrorBoundary.d.ts.map +1 -1
  166. package/lib/components/ErrorHandlers/RemixErrorBoundary.js +222 -100
  167. package/lib/components/ErrorHandlers/RemixErrorBoundary.js.map +1 -1
  168. package/lib/components/ErrorHandlers/SPAErrorBoundary.d.ts +4 -2
  169. package/lib/components/ErrorHandlers/SPAErrorBoundary.d.ts.map +1 -1
  170. package/lib/components/ErrorHandlers/SPAErrorBoundary.js +247 -82
  171. package/lib/components/ErrorHandlers/SPAErrorBoundary.js.map +1 -1
  172. package/lib/components/ErrorPages/403.d.ts +1 -2
  173. package/lib/components/ErrorPages/403.d.ts.map +1 -1
  174. package/lib/components/ErrorPages/403.js +26 -18
  175. package/lib/components/ErrorPages/403.js.map +1 -1
  176. package/lib/components/ErrorPages/404.d.ts +1 -2
  177. package/lib/components/ErrorPages/404.d.ts.map +1 -1
  178. package/lib/components/ErrorPages/404.js +26 -18
  179. package/lib/components/ErrorPages/404.js.map +1 -1
  180. package/lib/components/ErrorPages/500.d.ts +1 -2
  181. package/lib/components/ErrorPages/500.d.ts.map +1 -1
  182. package/lib/components/ErrorPages/500.js +26 -18
  183. package/lib/components/ErrorPages/500.js.map +1 -1
  184. package/lib/components/InputToolBar/InputToolBar.d.ts +8 -0
  185. package/lib/components/InputToolBar/InputToolBar.d.ts.map +1 -0
  186. package/lib/components/InputToolBar/InputToolBar.js +469 -0
  187. package/lib/components/InputToolBar/InputToolBar.js.map +1 -0
  188. package/lib/components/InputToolBar/defaults.d.ts +15 -0
  189. package/lib/components/InputToolBar/defaults.d.ts.map +1 -0
  190. package/lib/components/InputToolBar/defaults.js +59 -0
  191. package/lib/components/InputToolBar/defaults.js.map +1 -0
  192. package/lib/components/InputToolBar/index.d.ts +5 -0
  193. package/lib/components/InputToolBar/index.d.ts.map +1 -0
  194. package/lib/components/InputToolBar/types.d.ts +153 -0
  195. package/lib/components/InputToolBar/types.d.ts.map +1 -0
  196. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.d.ts +1 -2
  197. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.d.ts.map +1 -1
  198. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.js +24 -19
  199. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.js.map +1 -1
  200. package/lib/components/Markdown/MarkdownBreadcrumbs.d.ts +13 -0
  201. package/lib/components/Markdown/MarkdownBreadcrumbs.d.ts.map +1 -0
  202. package/lib/components/Markdown/MarkdownBreadcrumbs.js +34 -0
  203. package/lib/components/Markdown/MarkdownBreadcrumbs.js.map +1 -0
  204. package/lib/components/Markdown/MarkdownCopyButton.d.ts +10 -0
  205. package/lib/components/Markdown/MarkdownCopyButton.d.ts.map +1 -0
  206. package/lib/components/Markdown/MarkdownCopyButton.js +229 -0
  207. package/lib/components/Markdown/MarkdownCopyButton.js.map +1 -0
  208. package/lib/components/Markdown/MarkdownHeader.d.ts +13 -0
  209. package/lib/components/Markdown/MarkdownHeader.d.ts.map +1 -0
  210. package/lib/components/Markdown/MarkdownHeader.js +44 -0
  211. package/lib/components/Markdown/MarkdownHeader.js.map +1 -0
  212. package/lib/components/Markdown/MarkdownNavigation.d.ts +15 -0
  213. package/lib/components/Markdown/MarkdownNavigation.d.ts.map +1 -0
  214. package/lib/components/Markdown/MarkdownNavigation.js +38 -0
  215. package/lib/components/Markdown/MarkdownNavigation.js.map +1 -0
  216. package/lib/components/Markdown/MarkdownPage.d.ts +41 -0
  217. package/lib/components/Markdown/MarkdownPage.d.ts.map +1 -0
  218. package/lib/components/Markdown/MarkdownPage.js +238 -0
  219. package/lib/components/Markdown/MarkdownPage.js.map +1 -0
  220. package/lib/components/Markdown/MarkdownTableOfContents.d.ts +15 -0
  221. package/lib/components/Markdown/MarkdownTableOfContents.d.ts.map +1 -0
  222. package/lib/components/Markdown/MarkdownTableOfContents.js +57 -0
  223. package/lib/components/Markdown/MarkdownTableOfContents.js.map +1 -0
  224. package/lib/components/Markdown/index.d.ts +7 -0
  225. package/lib/components/Markdown/index.d.ts.map +1 -0
  226. package/lib/components/OTP/OTPInput.js +32 -30
  227. package/lib/components/OTP/OTPInput.js.map +1 -1
  228. package/lib/components/OTP/OTPVerification.js +75 -55
  229. package/lib/components/OTP/OTPVerification.js.map +1 -1
  230. package/lib/components/OTP/SingleInput.js +2 -2
  231. package/lib/components/OTP/SingleInput.js.map +1 -1
  232. package/lib/components/PageContainer/PageContainer.js +29 -22
  233. package/lib/components/PageContainer/PageContainer.js.map +1 -1
  234. package/lib/components/PageLoading/index.js +8 -7
  235. package/lib/components/PageLoading/index.js.map +1 -1
  236. package/lib/components/RJSFPreview/PreviewAsyncDropdown.d.ts +1 -2
  237. package/lib/components/RJSFPreview/PreviewAsyncDropdown.d.ts.map +1 -1
  238. package/lib/components/ReactTable/Table.d.ts +1 -2
  239. package/lib/components/ReactTable/Table.d.ts.map +1 -1
  240. package/lib/components/ReactTable/Table.js +92 -71
  241. package/lib/components/ReactTable/Table.js.map +1 -1
  242. package/lib/components/ReactTable/TableFilters.d.ts +2 -3
  243. package/lib/components/ReactTable/TableFilters.d.ts.map +1 -1
  244. package/lib/components/ReactTable/TableFilters.js +40 -34
  245. package/lib/components/ReactTable/TableFilters.js.map +1 -1
  246. package/lib/components/Search/SearchInput.d.ts +1 -2
  247. package/lib/components/Search/SearchInput.d.ts.map +1 -1
  248. package/lib/components/Search/SearchInput.js +14 -13
  249. package/lib/components/Search/SearchInput.js.map +1 -1
  250. package/lib/components/Select/Select.d.ts +6 -6
  251. package/lib/components/Select/Select.d.ts.map +1 -1
  252. package/lib/components/Select/Select.js +60 -45
  253. package/lib/components/Select/Select.js.map +1 -1
  254. package/lib/components/Spin/index.js +14 -11
  255. package/lib/components/Spin/index.js.map +1 -1
  256. package/lib/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  257. package/lib/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  258. package/lib/components/ThemeProvider/ThemeProvider.js +29 -17
  259. package/lib/components/ThemeProvider/ThemeProvider.js.map +1 -1
  260. package/lib/components/ThemeProvider/ThemeToggle.js +28 -25
  261. package/lib/components/ThemeProvider/ThemeToggle.js.map +1 -1
  262. package/lib/components/ThemeProvider/types.d.ts +3 -3
  263. package/lib/components/ThemeProvider/types.d.ts.map +1 -1
  264. package/lib/components/YantraIcon.d.ts +6 -0
  265. package/lib/components/YantraIcon.d.ts.map +1 -0
  266. package/lib/components/YantraIcon.js +32 -0
  267. package/lib/components/YantraIcon.js.map +1 -0
  268. package/lib/components/index.d.ts +6 -0
  269. package/lib/components/index.d.ts.map +1 -1
  270. package/lib/hooks/activeCharacterPreference.d.ts +24 -0
  271. package/lib/hooks/activeCharacterPreference.d.ts.map +1 -0
  272. package/lib/hooks/activeCharacterPreference.js +64 -0
  273. package/lib/hooks/activeCharacterPreference.js.map +1 -0
  274. package/lib/hooks/index.d.ts +1 -0
  275. package/lib/hooks/index.d.ts.map +1 -1
  276. package/lib/hooks/useToast.d.ts +1 -1
  277. package/lib/hooks/useToast.d.ts.map +1 -1
  278. package/lib/hooks/useToast.js +46 -37
  279. package/lib/hooks/useToast.js.map +1 -1
  280. package/lib/index.js +1 -1
  281. package/lib/shardui/accordion.js +20 -16
  282. package/lib/shardui/accordion.js.map +1 -1
  283. package/lib/shardui/alert-dialog.d.ts +2 -2
  284. package/lib/shardui/alert-dialog.js +15 -13
  285. package/lib/shardui/alert-dialog.js.map +1 -1
  286. package/lib/shardui/alert.js +4 -4
  287. package/lib/shardui/alert.js.map +1 -1
  288. package/lib/shardui/avatar.js +4 -4
  289. package/lib/shardui/avatar.js.map +1 -1
  290. package/lib/shardui/badge.d.ts +1 -1
  291. package/lib/shardui/badge.d.ts.map +1 -1
  292. package/lib/shardui/badge.js +2 -2
  293. package/lib/shardui/badge.js.map +1 -1
  294. package/lib/shardui/breadcrumb.d.ts +2 -2
  295. package/lib/shardui/breadcrumb.js +19 -16
  296. package/lib/shardui/breadcrumb.js.map +1 -1
  297. package/lib/shardui/button.js +2 -2
  298. package/lib/shardui/button.js.map +1 -1
  299. package/lib/shardui/calendar.d.ts +1 -1
  300. package/lib/shardui/calendar.d.ts.map +1 -1
  301. package/lib/shardui/calendar.js +4 -4
  302. package/lib/shardui/card.js +7 -7
  303. package/lib/shardui/card.js.map +1 -1
  304. package/lib/shardui/carousel.js +40 -33
  305. package/lib/shardui/carousel.js.map +1 -1
  306. package/lib/shardui/chart.d.ts +1 -1
  307. package/lib/shardui/chart.d.ts.map +1 -1
  308. package/lib/shardui/chart.js +81 -66
  309. package/lib/shardui/chart.js.map +1 -1
  310. package/lib/shardui/checkbox.js +10 -8
  311. package/lib/shardui/checkbox.js.map +1 -1
  312. package/lib/shardui/command.d.ts +2 -2
  313. package/lib/shardui/command.d.ts.map +1 -1
  314. package/lib/shardui/command.js +28 -24
  315. package/lib/shardui/command.js.map +1 -1
  316. package/lib/shardui/context-menu.d.ts +1 -1
  317. package/lib/shardui/context-menu.js +41 -30
  318. package/lib/shardui/context-menu.js.map +1 -1
  319. package/lib/shardui/dialog.d.ts +2 -2
  320. package/lib/shardui/dialog.js +22 -17
  321. package/lib/shardui/dialog.js.map +1 -1
  322. package/lib/shardui/drawer.d.ts +3 -3
  323. package/lib/shardui/drawer.js +17 -14
  324. package/lib/shardui/drawer.js.map +1 -1
  325. package/lib/shardui/dropdown-menu.d.ts +1 -1
  326. package/lib/shardui/dropdown-menu.js +42 -31
  327. package/lib/shardui/dropdown-menu.js.map +1 -1
  328. package/lib/shardui/form.d.ts +1 -1
  329. package/lib/shardui/form.d.ts.map +1 -1
  330. package/lib/shardui/form.js +22 -19
  331. package/lib/shardui/form.js.map +1 -1
  332. package/lib/shardui/hover-card.js +2 -2
  333. package/lib/shardui/hover-card.js.map +1 -1
  334. package/lib/shardui/input-otp.js +16 -13
  335. package/lib/shardui/input-otp.js.map +1 -1
  336. package/lib/shardui/input.js +2 -2
  337. package/lib/shardui/input.js.map +1 -1
  338. package/lib/shardui/label.js +2 -2
  339. package/lib/shardui/label.js.map +1 -1
  340. package/lib/shardui/menubar.d.ts +1 -1
  341. package/lib/shardui/menubar.js +46 -35
  342. package/lib/shardui/menubar.js.map +1 -1
  343. package/lib/shardui/navigation-menu.js +28 -24
  344. package/lib/shardui/navigation-menu.js.map +1 -1
  345. package/lib/shardui/pagination.d.ts +5 -5
  346. package/lib/shardui/pagination.js +30 -22
  347. package/lib/shardui/pagination.js.map +1 -1
  348. package/lib/shardui/popover.js +10 -8
  349. package/lib/shardui/popover.js.map +1 -1
  350. package/lib/shardui/progress.js +10 -9
  351. package/lib/shardui/progress.js.map +1 -1
  352. package/lib/shardui/radio-group.js +11 -9
  353. package/lib/shardui/radio-group.js.map +1 -1
  354. package/lib/shardui/resizable.d.ts +3 -3
  355. package/lib/shardui/resizable.d.ts.map +1 -1
  356. package/lib/shardui/resizable.js +11 -9
  357. package/lib/shardui/resizable.js.map +1 -1
  358. package/lib/shardui/scroll-area.js +14 -11
  359. package/lib/shardui/scroll-area.js.map +1 -1
  360. package/lib/shardui/select.js +49 -35
  361. package/lib/shardui/select.js.map +1 -1
  362. package/lib/shardui/separator.js +2 -2
  363. package/lib/shardui/separator.js.map +1 -1
  364. package/lib/shardui/sheet.d.ts +2 -2
  365. package/lib/shardui/sheet.js +24 -19
  366. package/lib/shardui/sheet.js.map +1 -1
  367. package/lib/shardui/sidebar.js +104 -88
  368. package/lib/shardui/sidebar.js.map +1 -1
  369. package/lib/shardui/skeleton.d.ts +1 -1
  370. package/lib/shardui/skeleton.d.ts.map +1 -1
  371. package/lib/shardui/skeleton.js +2 -2
  372. package/lib/shardui/skeleton.js.map +1 -1
  373. package/lib/shardui/slider.js +12 -10
  374. package/lib/shardui/slider.js.map +1 -1
  375. package/lib/shardui/sonner.d.ts +1 -1
  376. package/lib/shardui/sonner.d.ts.map +1 -1
  377. package/lib/shardui/sonner.js +2 -2
  378. package/lib/shardui/sonner.js.map +1 -1
  379. package/lib/shardui/switch.js +7 -6
  380. package/lib/shardui/switch.js.map +1 -1
  381. package/lib/shardui/table.js +16 -15
  382. package/lib/shardui/table.js.map +1 -1
  383. package/lib/shardui/tabs.js +4 -4
  384. package/lib/shardui/tabs.js.map +1 -1
  385. package/lib/shardui/textarea.js +2 -2
  386. package/lib/shardui/textarea.js.map +1 -1
  387. package/lib/shardui/toast.js +12 -11
  388. package/lib/shardui/toast.js.map +1 -1
  389. package/lib/shardui/toaster.d.ts +1 -2
  390. package/lib/shardui/toaster.d.ts.map +1 -1
  391. package/lib/shardui/toaster.js +21 -14
  392. package/lib/shardui/toaster.js.map +1 -1
  393. package/lib/shardui/toggle-group.js +15 -12
  394. package/lib/shardui/toggle-group.js.map +1 -1
  395. package/lib/shardui/toggle.js +2 -2
  396. package/lib/shardui/toggle.js.map +1 -1
  397. package/lib/shardui/tooltip.js +2 -2
  398. package/lib/shardui/tooltip.js.map +1 -1
  399. package/package.json +9 -3
@@ -0,0 +1,134 @@
1
+ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useRef}from'react';import'../../../../shardui/accordion.js';import'../../../../shardui/alert.js';import'../../../../shardui/alert-dialog.js';import'@radix-ui/react-aspect-ratio';import'../../../../shardui/avatar.js';import'../../../../shardui/badge.js';import'../../../../shardui/breadcrumb.js';import {Button}from'../../../../shardui/button.js';import'../../../../shardui/calendar.js';import'../../../../shardui/card.js';import'../../../../shardui/carousel.js';import'../../../../shardui/chart.js';import'../../../../shardui/checkbox.js';import'@radix-ui/react-collapsible';import'../../../../shardui/command.js';import'../../../../shardui/context-menu.js';import'../../../../shardui/dialog.js';import'../../../../shardui/drawer.js';import'../../../../shardui/dropdown-menu.js';import'../../../../shardui/form.js';import'../../../../shardui/hover-card.js';import'../../../../shardui/input.js';import'../../../../shardui/input-otp.js';import'../../../../shardui/label.js';import'../../../../shardui/menubar.js';import'../../../../shardui/navigation-menu.js';import'../../../../shardui/pagination.js';import {Popover,PopoverTrigger,PopoverContent}from'../../../../shardui/popover.js';import'../../../../shardui/progress.js';import'../../../../shardui/radio-group.js';import {PaperclipIcon,PlusIcon,XIcon,TrashIcon}from'lucide-react';import'react-resizable-panels';import'../../../../utils/isBrowser/index.js';import {cn}from'../../../../utils/util.js';import'fast-deep-equal/react.js';import {ScrollArea}from'../../../../shardui/scroll-area.js';import'../../../../shardui/select.js';import'../../../../shardui/separator.js';import'../../../../shardui/sheet.js';import'../../../../shardui/sidebar.js';import'../../../../shardui/slider.js';import'../../../ThemeProvider/ThemeProvider.js';import'sonner';import'../../../../shardui/switch.js';import'../../../../shardui/table.js';import'../../../../shardui/tabs.js';import'../../../../shardui/textarea.js';import'../../../../shardui/toast.js';import'../../../../shardui/toggle.js';import'../../../../shardui/toggle-group.js';import'../../../../shardui/tooltip.js';const DEFAULT_MAX_FILES = 10;
2
+ const Files = ({
3
+ attachedFiles,
4
+ handleFileSelect,
5
+ removeFile,
6
+ onRemoveAllFiles,
7
+ isLoading,
8
+ isFilesPopoverOpen,
9
+ setIsFilesPopoverOpen,
10
+ supportsImages,
11
+ maxFiles = DEFAULT_MAX_FILES
12
+ }) => {
13
+ const fileInputRef = useRef(null);
14
+ const handleAddMoreClick = () => {
15
+ fileInputRef.current?.click();
16
+ };
17
+ const canAddMore = attachedFiles.length < maxFiles;
18
+ return jsxs("div", {
19
+ className: "relative",
20
+ children: [jsxs(Popover, {
21
+ open: isFilesPopoverOpen,
22
+ onOpenChange: setIsFilesPopoverOpen,
23
+ children: [jsx(PopoverTrigger, {
24
+ asChild: true,
25
+ children: jsx(Button, {
26
+ size: "icon",
27
+ disabled: isLoading || supportsImages === false,
28
+ className: "cursor-pointer",
29
+ title: supportsImages !== false ? 'Attach images' : 'Image upload not supported by current AI provider',
30
+ children: jsx(PaperclipIcon, {
31
+ className: "h-4 w-4"
32
+ })
33
+ })
34
+ }), attachedFiles.length > 0 && jsx("div", {
35
+ className: "absolute -top-2 -right-2 bg-primary-foreground text-primary rounded-full h-5 w-5 flex border border-primary items-center justify-center text-xs font-medium",
36
+ children: attachedFiles.length
37
+ }), jsx(PopoverContent, {
38
+ align: "end",
39
+ side: "bottom",
40
+ className: cn('z-[200] max-h-[min(85vh,calc(100vh-2rem))] flex flex-col p-0 border shadow-lg overflow-hidden', attachedFiles.length > 0 ? 'w-[min(100vw,36rem)]' : 'w-80'),
41
+ sideOffset: 8,
42
+ children: attachedFiles.length === 0 ? jsxs("div", {
43
+ className: "p-4 space-y-3",
44
+ children: [jsx("p", {
45
+ className: "text-sm text-muted-foreground",
46
+ children: "No images attached yet. Choose files to add them to your message."
47
+ }), jsxs(Button, {
48
+ type: "button",
49
+ className: "w-full",
50
+ variant: "outline",
51
+ disabled: isLoading || supportsImages === false,
52
+ onClick: () => fileInputRef.current?.click(),
53
+ children: [jsx(PlusIcon, {
54
+ className: "h-4 w-4 mr-2"
55
+ }), "Choose images"]
56
+ })]
57
+ }) : jsxs(Fragment, {
58
+ children: [jsxs("div", {
59
+ className: "flex items-center justify-between px-4 py-2 border-b bg-muted/30 shrink-0",
60
+ children: [jsxs("h3", {
61
+ className: "font-semibold text-sm select-none",
62
+ children: ["Attached Images (", attachedFiles.length, "/", maxFiles, ")"]
63
+ }), jsx(Button, {
64
+ size: "icon",
65
+ variant: "ghost",
66
+ onClick: () => setIsFilesPopoverOpen(false),
67
+ className: "cursor-pointer",
68
+ title: "Close",
69
+ children: jsx(XIcon, {
70
+ className: "h-4 w-4"
71
+ })
72
+ })]
73
+ }), jsx(ScrollArea, {
74
+ className: "p-4 min-h-0 flex-1 max-h-[min(32rem,calc(85vh-10rem))]",
75
+ children: jsx("div", {
76
+ className: `gap-3 ${attachedFiles.length <= 2 ? 'flex flex-col' : 'grid grid-cols-2'}`,
77
+ children: attachedFiles.map(file => jsxs("div", {
78
+ className: "relative group border rounded-lg overflow-hidden bg-muted/20 min-h-[8rem]",
79
+ children: [jsx("img", {
80
+ src: `data:${file.type};base64,${file.base64}`,
81
+ alt: file.name,
82
+ className: "w-full object-cover max-h-64"
83
+ }), jsxs("div", {
84
+ className: "absolute bottom-0 left-0 right-0 bg-black/70 text-white p-2 text-xs",
85
+ children: [jsx("div", {
86
+ className: "truncate font-medium",
87
+ children: file.name
88
+ }), jsxs("div", {
89
+ className: "text-gray-300",
90
+ children: [(file.size / 1024 / 1024).toFixed(2), " MB"]
91
+ })]
92
+ }), jsx(Button, {
93
+ size: "icon",
94
+ variant: "default",
95
+ className: "absolute top-2 right-2 h-6 w-6 cursor-pointer",
96
+ onClick: () => removeFile(file.id),
97
+ title: "Remove image",
98
+ children: jsx(XIcon, {
99
+ className: "h-3 w-3"
100
+ })
101
+ })]
102
+ }, file.id))
103
+ })
104
+ }), jsxs("div", {
105
+ className: "shrink-0 border-t bg-background p-3 flex flex-row gap-2",
106
+ children: [jsxs(Button, {
107
+ onClick: handleAddMoreClick,
108
+ disabled: !canAddMore || isLoading,
109
+ className: "w-2/4",
110
+ variant: "outline",
111
+ children: [jsx(PlusIcon, {
112
+ className: "h-4 w-4 mr-2"
113
+ }), "Add More Images ", !canAddMore && `(${maxFiles} max)`]
114
+ }), jsxs(Button, {
115
+ className: "w-2/4",
116
+ variant: "destructive",
117
+ onClick: onRemoveAllFiles,
118
+ children: [jsx(TrashIcon, {
119
+ className: "h-4 w-4 mr-2"
120
+ }), "Remove All Images"]
121
+ })]
122
+ })]
123
+ })
124
+ })]
125
+ }), jsx("input", {
126
+ ref: fileInputRef,
127
+ type: "file",
128
+ multiple: true,
129
+ accept: "image/*",
130
+ onChange: handleFileSelect,
131
+ className: "hidden"
132
+ })]
133
+ });
134
+ };export{Files};//# sourceMappingURL=Files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Files.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import { UseCompletionReturn } from '../types';
2
+ export declare const Input: ({ isPopoverOpen, isLoading, reset, input, setInput, handleKeyPress, handlePaste, currentConversationId, conversationHistory, startNewConversation, messageHistoryOpen, setMessageHistoryOpen, error, response, cancel, scrollAreaRef, inputRef, isHidden, keepEngaged, setKeepEngaged, regenerateAssistantMessage, }: UseCompletionReturn & {
3
+ isHidden: boolean;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/completion/Input.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAQ/C,eAAO,MAAM,KAAK,GAAI,sTAsBnB,mBAAmB,GAAG;IACrB,QAAQ,EAAE,OAAO,CAAC;CACrB,4CA6TA,CAAC"}
@@ -0,0 +1,283 @@
1
+ import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useRef,useMemo,useLayoutEffect}from'react';import {AIToolbarInputSurface}from'../AIToolbarPrimitives.js';import {XIcon,Loader2}from'lucide-react';import'../../../../shardui/accordion.js';import'../../../../shardui/alert.js';import'../../../../shardui/alert-dialog.js';import'@radix-ui/react-aspect-ratio';import'../../../../shardui/avatar.js';import'../../../../shardui/badge.js';import'../../../../shardui/breadcrumb.js';import {Button}from'../../../../shardui/button.js';import'../../../../shardui/calendar.js';import'../../../../shardui/card.js';import'../../../../shardui/carousel.js';import'../../../../shardui/chart.js';import'../../../../shardui/checkbox.js';import'@radix-ui/react-collapsible';import'../../../../shardui/command.js';import'../../../../shardui/context-menu.js';import'../../../../shardui/dialog.js';import'../../../../shardui/drawer.js';import'../../../../shardui/dropdown-menu.js';import'../../../../shardui/form.js';import'../../../../shardui/hover-card.js';import {Input as Input$1}from'../../../../shardui/input.js';import'../../../../shardui/input-otp.js';import'../../../../shardui/label.js';import'../../../../shardui/menubar.js';import'../../../../shardui/navigation-menu.js';import'../../../../shardui/pagination.js';import {Popover,PopoverContent,PopoverTrigger}from'../../../../shardui/popover.js';import'../../../../shardui/progress.js';import'../../../../shardui/radio-group.js';import'react-resizable-panels';import'../../../../utils/isBrowser/index.js';import {cn}from'../../../../utils/util.js';import'fast-deep-equal/react.js';import'../../../../shardui/scroll-area.js';import'../../../../shardui/select.js';import'../../../../shardui/separator.js';import'../../../../shardui/sheet.js';import'../../../../shardui/sidebar.js';import'../../../../shardui/slider.js';import'../../../ThemeProvider/ThemeProvider.js';import'sonner';import {Switch}from'../../../../shardui/switch.js';import'../../../../shardui/table.js';import'../../../../shardui/tabs.js';import'../../../../shardui/textarea.js';import'../../../../shardui/toast.js';import'../../../../shardui/toggle.js';import'../../../../shardui/toggle-group.js';import'../../../../shardui/tooltip.js';import {Markdown}from'../Markdown/index.js';import {AssistantMessageActions}from'./AssistantMessageActions.js';import {CopyButton}from'../Markdown/copy-button.js';import {MessageHistory}from'./MessageHistory.js';import {useActiveCharacter}from'../../hooks/useActiveCharacter.js';import {useChatBackgroundImage}from'../../hooks/useChatBackgroundImage.js';import {AssistantAvatar}from'./AssistantAvatar.js';import {CharacterPicker}from'./CharacterPicker.js';const Input = ({
2
+ isPopoverOpen,
3
+ isLoading,
4
+ reset,
5
+ input,
6
+ setInput,
7
+ handleKeyPress,
8
+ handlePaste,
9
+ currentConversationId,
10
+ conversationHistory,
11
+ startNewConversation,
12
+ messageHistoryOpen,
13
+ setMessageHistoryOpen,
14
+ error,
15
+ response,
16
+ cancel,
17
+ scrollAreaRef,
18
+ inputRef,
19
+ isHidden,
20
+ keepEngaged,
21
+ setKeepEngaged,
22
+ regenerateAssistantMessage
23
+ }) => {
24
+ const conversationEndRef = useRef(null);
25
+ const character = useActiveCharacter();
26
+ const assistantName = character?.name ?? 'AI';
27
+ const chatBgImage = useChatBackgroundImage();
28
+ const sortedAsc = useMemo(() => [...conversationHistory].sort((a, b) => (a.timestamp ?? 0) - (b.timestamp ?? 0)), [conversationHistory]);
29
+ /** In-flight assistant bubble: hide when history already contains the same assistant text (avoids double render if `response` lingers). */
30
+ const streamingAssistantVisible = useMemo(() => {
31
+ if (isLoading) return true;
32
+ if (!response) return false;
33
+ const last = sortedAsc[sortedAsc.length - 1];
34
+ if (last?.role === 'assistant' && last.content === response) {
35
+ return false;
36
+ }
37
+ return true;
38
+ }, [isLoading, response, sortedAsc]);
39
+ /** Keep the latest assistant stream and new turns in view inside the popover scroll viewport. */
40
+ useLayoutEffect(() => {
41
+ if (!isPopoverOpen) return;
42
+ const anchor = conversationEndRef.current;
43
+ if (!anchor || !scrollAreaRef.current) return;
44
+ const scrollToEnd = () => {
45
+ anchor.scrollIntoView({
46
+ block: 'end',
47
+ behavior: 'auto',
48
+ inline: 'nearest'
49
+ });
50
+ };
51
+ const outer = requestAnimationFrame(() => {
52
+ requestAnimationFrame(scrollToEnd);
53
+ });
54
+ return () => cancelAnimationFrame(outer);
55
+ }, [isPopoverOpen, sortedAsc, response, isLoading, error, streamingAssistantVisible]);
56
+ const copyPayload = useMemo(() => {
57
+ const lines = sortedAsc.map(m => m.role === 'user' ? `You:\n${m.content}` : `${assistantName}:\n${m.content}`);
58
+ const last = sortedAsc[sortedAsc.length - 1];
59
+ if (response && !(last?.role === 'assistant' && last.content === response)) {
60
+ lines.push(`${assistantName}:\n${response}`);
61
+ }
62
+ return lines.join('\n\n');
63
+ }, [sortedAsc, response, assistantName]);
64
+ return jsx("div", {
65
+ className: "relative flex-1",
66
+ children: jsxs(Popover, {
67
+ open: isPopoverOpen,
68
+ onOpenChange: open => {
69
+ if (!open && !isLoading && !keepEngaged) {
70
+ reset();
71
+ }
72
+ },
73
+ children: [jsxs(PopoverContent, {
74
+ align: "center",
75
+ side: "top",
76
+ sideOffset: 8,
77
+ collisionPadding: {
78
+ top: 8,
79
+ bottom: 8,
80
+ left: 8,
81
+ right: 8
82
+ },
83
+ className: cn('relative z-[200] flex h-[min(90vh,calc(100dvh-1rem))] flex-col overflow-hidden border p-0 text-popover-foreground shadow-lg',
84
+ // Solid base when no wallpaper; translucent so the wallpaper bleeds through when one is selected.
85
+ chatBgImage ? 'bg-popover/70' : 'bg-popover', 'w-[calc(100vw-16px)] max-w-[calc(100vw-16px)] min-w-0 rounded-md'),
86
+ children: [chatBgImage ? jsxs(Fragment, {
87
+ children: [jsx("div", {
88
+ "aria-hidden": true,
89
+ className: "pointer-events-none absolute inset-0 bg-cover bg-center",
90
+ style: {
91
+ backgroundImage: `url(${chatBgImage})`
92
+ }
93
+ }), jsx("div", {
94
+ "aria-hidden": true,
95
+ className: "pointer-events-none absolute inset-0 bg-background/30 backdrop-blur-[2px]"
96
+ })]
97
+ }) : null, jsxs("div", {
98
+ className: "relative z-10 flex shrink-0 items-center justify-between border-b bg-muted/30 px-4 py-2",
99
+ children: [jsxs("div", {
100
+ className: "flex flex-row items-center gap-2",
101
+ children: [jsx("h3", {
102
+ className: "select-none text-xs font-semibold",
103
+ children: keepEngaged ? 'Conversation Mode' : 'AI Response'
104
+ }), jsx(CharacterPicker, {}), jsx("div", {
105
+ className: "text-[10px] text-muted-foreground/70",
106
+ children: "(Use arrow keys to scroll)"
107
+ })]
108
+ }), jsxs("div", {
109
+ className: "flex select-none items-center gap-2",
110
+ children: [jsxs("div", {
111
+ className: "mr-2 flex flex-row items-center gap-2",
112
+ children: [jsx("p", {
113
+ className: "text-[10px]",
114
+ children: `Toggle ${keepEngaged ? 'AI response' : 'conversation mode'}`
115
+ }), jsxs("span", {
116
+ className: "rounded border border-input/50 bg-muted/30 px-1 py-0 text-[10px] text-muted-foreground/60",
117
+ children: [navigator.platform.toLowerCase().includes('mac') ? '⌘' : 'Ctrl', " + K"]
118
+ }), jsx(Switch, {
119
+ checked: keepEngaged,
120
+ onCheckedChange: checked => {
121
+ setKeepEngaged(checked);
122
+ setTimeout(() => {
123
+ inputRef?.current?.focus();
124
+ }, 100);
125
+ }
126
+ })]
127
+ }), jsx(CopyButton, {
128
+ content: copyPayload
129
+ }), jsx(Button, {
130
+ size: "icon",
131
+ variant: "ghost",
132
+ onClick: () => {
133
+ if (isLoading) {
134
+ cancel();
135
+ } else if (keepEngaged) {
136
+ setKeepEngaged(false);
137
+ startNewConversation();
138
+ } else {
139
+ reset();
140
+ }
141
+ },
142
+ className: "cursor-pointer",
143
+ title: isLoading ? 'Cancel loading' : keepEngaged ? 'Close and start new conversation' : 'Clear conversation',
144
+ children: jsx(XIcon, {})
145
+ })]
146
+ })]
147
+ }), jsx("div", {
148
+ ref: scrollAreaRef,
149
+ className: cn('relative z-10 min-h-0 flex-1 basis-0 overflow-x-hidden overflow-y-scroll overscroll-contain', 'pr-1 [scrollbar-gutter:stable]'),
150
+ children: jsxs("div", {
151
+ className: "space-y-3 p-4 pb-8",
152
+ children: [error ? jsxs("div", {
153
+ className: "rounded border border-destructive/20 bg-destructive/10 p-3 text-sm text-destructive",
154
+ children: [jsx("strong", {
155
+ children: "Error:"
156
+ }), " ", error]
157
+ }) : null, sortedAsc.map((msg, idx) => jsx("div", {
158
+ className: cn('flex w-full gap-2', msg.role === 'user' ? 'justify-end' : 'justify-start'),
159
+ children: jsx("div", {
160
+ className: cn('rounded-xl px-3 py-2 text-sm shadow-sm', msg.role === 'user' ? 'max-w-[min(100%,40rem)] border border-border/60 bg-muted/70 text-foreground' : 'min-w-0 max-w-full flex-1 border border-border/60 bg-muted/70'),
161
+ children: msg.role === 'user' ? jsxs(Fragment, {
162
+ children: [jsxs("div", {
163
+ className: "mb-1.5 flex items-center gap-2",
164
+ children: [jsx("span", {
165
+ className: "text-[10px] font-semibold uppercase text-muted-foreground",
166
+ children: "You"
167
+ }), jsx("span", {
168
+ className: "text-[11px] text-muted-foreground",
169
+ children: new Date(msg.timestamp).toLocaleTimeString([], {
170
+ hour: '2-digit',
171
+ minute: '2-digit'
172
+ })
173
+ })]
174
+ }), jsx(Markdown, {
175
+ children: msg.content
176
+ })]
177
+ }) : jsxs("div", {
178
+ className: "flex w-full gap-3",
179
+ children: [jsx(AssistantAvatar, {
180
+ avatarSrc: character?.avatarSrc ?? null,
181
+ index: idx + 1,
182
+ characterFileName: character?.fileName ?? null,
183
+ text: msg.content
184
+ }), jsxs("div", {
185
+ className: "min-w-0 flex-1",
186
+ children: [jsxs("div", {
187
+ className: "mb-1 flex items-baseline gap-2",
188
+ children: [jsx("span", {
189
+ className: "text-sm font-semibold text-foreground",
190
+ children: assistantName
191
+ }), jsx("span", {
192
+ className: "text-[11px] text-muted-foreground",
193
+ children: new Date(msg.timestamp).toLocaleTimeString([], {
194
+ hour: '2-digit',
195
+ minute: '2-digit'
196
+ })
197
+ })]
198
+ }), jsx(Markdown, {
199
+ children: msg.content
200
+ }), jsx(AssistantMessageActions, {
201
+ messageId: msg.id,
202
+ content: msg.content,
203
+ onRegenerate: regenerateAssistantMessage ? id => void regenerateAssistantMessage(id) : undefined
204
+ })]
205
+ })]
206
+ })
207
+ })
208
+ }, msg.id)), streamingAssistantVisible ? jsx("div", {
209
+ className: "flex w-full justify-start",
210
+ children: jsx("div", {
211
+ className: "w-full min-w-0 max-w-full rounded-xl border border-border/60 bg-muted/70 px-3 py-2 text-sm shadow-sm",
212
+ children: jsxs("div", {
213
+ className: "flex w-full gap-3",
214
+ children: [jsx(AssistantAvatar, {
215
+ avatarSrc: character?.avatarSrc ?? null,
216
+ index: sortedAsc.length + 1,
217
+ characterFileName: character?.fileName ?? null,
218
+ text: response
219
+ }), jsxs("div", {
220
+ className: "min-w-0 flex-1",
221
+ children: [jsxs("div", {
222
+ className: "mb-1 flex items-baseline gap-2",
223
+ children: [jsx("span", {
224
+ className: "text-sm font-semibold text-foreground",
225
+ children: assistantName
226
+ }), isLoading && !response ? jsx(Loader2, {
227
+ className: "h-3.5 w-3.5 animate-spin text-muted-foreground"
228
+ }) : null]
229
+ }), response ? jsx(Markdown, {
230
+ children: response
231
+ }) : isLoading ? jsx("p", {
232
+ className: "text-sm text-muted-foreground",
233
+ children: "Generating response\u2026"
234
+ }) : null, response ? jsx(AssistantMessageActions, {
235
+ messageId: "streaming",
236
+ content: response,
237
+ visibility: {
238
+ regenerate: false
239
+ }
240
+ }) : null]
241
+ })]
242
+ })
243
+ })
244
+ }) : null, jsx("div", {
245
+ ref: conversationEndRef,
246
+ className: "h-0 w-full shrink-0",
247
+ "aria-hidden": true
248
+ })]
249
+ })
250
+ })]
251
+ }), jsx(PopoverTrigger, {
252
+ asChild: true,
253
+ children: jsxs(AIToolbarInputSurface, {
254
+ className: "relative select-none",
255
+ children: [jsx(Input$1, {
256
+ ref: inputRef,
257
+ placeholder: "Ask me anything...",
258
+ value: input,
259
+ onChange: e => setInput(e.target.value),
260
+ onKeyPress: handleKeyPress,
261
+ onPaste: handlePaste,
262
+ disabled: isLoading || isHidden,
263
+ className: cn('h-9 flex-1 border-0 bg-transparent shadow-none outline-none ring-0 ring-offset-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent', currentConversationId && conversationHistory.length > 0 ? 'pr-14' : isLoading ? 'pr-10' : isHidden ? 'pr-2' : 'pr-10')
264
+ }), currentConversationId && conversationHistory.length > 0 && !isLoading ? jsx("div", {
265
+ className: "absolute right-1 top-1/2 flex -translate-y-1/2 select-none items-center gap-1",
266
+ children: jsx(MessageHistory, {
267
+ conversationHistory: conversationHistory,
268
+ currentConversationId: currentConversationId,
269
+ onStartNewConversation: startNewConversation,
270
+ messageHistoryOpen: messageHistoryOpen,
271
+ setMessageHistoryOpen: setMessageHistoryOpen
272
+ })
273
+ }) : null, isLoading ? jsx("div", {
274
+ className: "absolute right-3 top-1/2 -translate-y-1/2 animate-pulse",
275
+ children: jsx(Loader2, {
276
+ className: "h-4 w-4 animate-spin text-muted-foreground"
277
+ })
278
+ }) : null]
279
+ })
280
+ })]
281
+ })
282
+ });
283
+ };export{Input};//# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,11 @@
1
+ import type { ChatMessage } from '../types';
2
+ interface MessageHistoryProps {
3
+ conversationHistory: ChatMessage[];
4
+ currentConversationId: string | null;
5
+ onStartNewConversation: () => void;
6
+ messageHistoryOpen: boolean;
7
+ setMessageHistoryOpen: (open: boolean) => void;
8
+ }
9
+ export declare const MessageHistory: ({ conversationHistory, onStartNewConversation, messageHistoryOpen, setMessageHistoryOpen, }: MessageHistoryProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=MessageHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageHistory.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/completion/MessageHistory.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C,UAAU,mBAAmB;IACzB,mBAAmB,EAAE,WAAW,EAAE,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,cAAc,GAAI,6FAK5B,mBAAmB,4CAyIrB,CAAC"}
@@ -0,0 +1,131 @@
1
+ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {MessageSquareText,ChevronUp,ChevronDown}from'lucide-react';import'../../../../shardui/accordion.js';import'../../../../shardui/alert.js';import'../../../../shardui/alert-dialog.js';import'@radix-ui/react-aspect-ratio';import'../../../../shardui/avatar.js';import'../../../../shardui/badge.js';import'../../../../shardui/breadcrumb.js';import {Button}from'../../../../shardui/button.js';import'../../../../shardui/calendar.js';import'../../../../shardui/card.js';import'../../../../shardui/carousel.js';import'../../../../shardui/chart.js';import'../../../../shardui/checkbox.js';import'@radix-ui/react-collapsible';import'../../../../shardui/command.js';import'../../../../shardui/context-menu.js';import'../../../../shardui/dialog.js';import'../../../../shardui/drawer.js';import'../../../../shardui/dropdown-menu.js';import'../../../../shardui/form.js';import'../../../../shardui/hover-card.js';import'../../../../shardui/input.js';import'../../../../shardui/input-otp.js';import'../../../../shardui/label.js';import'../../../../shardui/menubar.js';import'../../../../shardui/navigation-menu.js';import'../../../../shardui/pagination.js';import {Popover,PopoverTrigger,PopoverContent}from'../../../../shardui/popover.js';import'../../../../shardui/progress.js';import'../../../../shardui/radio-group.js';import'react-resizable-panels';import'../../../../utils/isBrowser/index.js';import'clsx';import'tailwind-merge';import'react';import'fast-deep-equal/react.js';import {ScrollArea}from'../../../../shardui/scroll-area.js';import'../../../../shardui/select.js';import'../../../../shardui/separator.js';import'../../../../shardui/sheet.js';import'../../../../shardui/sidebar.js';import'../../../../shardui/slider.js';import'../../../ThemeProvider/ThemeProvider.js';import'sonner';import'../../../../shardui/switch.js';import'../../../../shardui/table.js';import'../../../../shardui/tabs.js';import'../../../../shardui/textarea.js';import'../../../../shardui/toast.js';import'../../../../shardui/toggle.js';import'../../../../shardui/toggle-group.js';import'../../../../shardui/tooltip.js';import {Markdown}from'../Markdown/index.js';import {useActiveCharacter}from'../../hooks/useActiveCharacter.js';import {useChatBackgroundImage}from'../../hooks/useChatBackgroundImage.js';import {AssistantAvatar}from'./AssistantAvatar.js';const MessageHistory = ({
2
+ conversationHistory,
3
+ onStartNewConversation,
4
+ messageHistoryOpen,
5
+ setMessageHistoryOpen
6
+ }) => {
7
+ const character = useActiveCharacter();
8
+ const assistantName = character?.name ?? 'AI';
9
+ const chatBgImage = useChatBackgroundImage();
10
+ return jsxs(Popover, {
11
+ open: messageHistoryOpen,
12
+ onOpenChange: setMessageHistoryOpen,
13
+ children: [jsx(PopoverTrigger, {
14
+ asChild: true,
15
+ children: jsxs(Button, {
16
+ size: "icon",
17
+ variant: "outline",
18
+ "aria-label": "View Current Conversation",
19
+ className: "relative cursor-pointer w-12 h-7 px-2 bg-transparent flex gap-1 items-center justify-center",
20
+ children: [jsx("div", {
21
+ className: "flex items-center justify-center text-xs font-medium",
22
+ children: conversationHistory.length
23
+ }), jsx(MessageSquareText, {
24
+ className: "h-5 w-5"
25
+ })]
26
+ })
27
+ }), jsxs(PopoverContent, {
28
+ align: "end",
29
+ side: "bottom",
30
+ className: `relative z-[200] select-none w-screen max-h-[min(90vh,calc(100vh-1rem))] p-0 mt-3 border overflow-hidden border-input/50 ${chatBgImage ? 'bg-popover/70' : ''}`,
31
+ children: [chatBgImage ? jsxs(Fragment, {
32
+ children: [jsx("div", {
33
+ "aria-hidden": true,
34
+ className: "pointer-events-none absolute inset-0 bg-cover bg-center",
35
+ style: {
36
+ backgroundImage: `url(${chatBgImage})`
37
+ }
38
+ }), jsx("div", {
39
+ "aria-hidden": true,
40
+ className: "pointer-events-none absolute inset-0 bg-background/30 backdrop-blur-[2px]"
41
+ })]
42
+ }) : null, jsx("div", {
43
+ className: "relative z-10 border-b border-input/50 p-4",
44
+ children: jsxs("div", {
45
+ className: "flex items-center justify-between",
46
+ children: [jsxs("div", {
47
+ className: "flex items-center flex-col",
48
+ children: [jsx("h2", {
49
+ className: "text-lg font-bold bg-gradient-to-r from-primary to-primary/70 bg-clip-text text-transparent",
50
+ children: "Current Conversation"
51
+ }), jsxs("p", {
52
+ className: "text-xs text-muted-foreground",
53
+ children: [conversationHistory.length, " messages in this conversation"]
54
+ })]
55
+ }), jsxs("div", {
56
+ className: "flex items-center gap-2",
57
+ children: [jsx(Button, {
58
+ size: "sm",
59
+ onClick: () => {
60
+ onStartNewConversation();
61
+ setMessageHistoryOpen(false);
62
+ },
63
+ className: "text-xs",
64
+ children: "New Chat"
65
+ }), jsx(Button, {
66
+ size: "sm",
67
+ variant: "ghost",
68
+ onClick: () => setMessageHistoryOpen(false),
69
+ className: "text-xs",
70
+ children: messageHistoryOpen ? jsx(ChevronUp, {
71
+ className: "h-4 w-4"
72
+ }) : jsx(ChevronDown, {
73
+ className: "h-4 w-4"
74
+ })
75
+ })]
76
+ })]
77
+ })
78
+ }), jsx(ScrollArea, {
79
+ className: "relative z-10 h-[calc(100vh-10rem)]",
80
+ children: jsx("div", {
81
+ className: "p-4 space-y-4",
82
+ children: conversationHistory.sort((a, b) => b?.timestamp - a?.timestamp).map((message, descIdx, arr) => jsx("div", {
83
+ className: `p-3 rounded-lg ${message.role === 'user' ? 'bg-primary/10 border-l-4 border-primary' : 'bg-muted/50'}`,
84
+ children: message.role === 'user' ? jsxs(Fragment, {
85
+ children: [jsxs("div", {
86
+ className: "mb-2 flex items-center gap-2",
87
+ children: [jsx("span", {
88
+ className: "text-xs font-medium uppercase text-muted-foreground",
89
+ children: "You"
90
+ }), jsx("span", {
91
+ className: "text-xs text-muted-foreground",
92
+ children: new Date(message.timestamp).toLocaleTimeString([], {
93
+ hour: '2-digit',
94
+ minute: '2-digit'
95
+ })
96
+ })]
97
+ }), jsx(Markdown, {
98
+ children: message.content
99
+ })]
100
+ }) : jsxs("div", {
101
+ className: "flex w-full gap-3",
102
+ children: [jsx(AssistantAvatar, {
103
+ avatarSrc: character?.avatarSrc ?? null,
104
+ index: arr.length - descIdx,
105
+ characterFileName: character?.fileName ?? null,
106
+ text: message.content
107
+ }), jsxs("div", {
108
+ className: "min-w-0 flex-1",
109
+ children: [jsxs("div", {
110
+ className: "mb-1 flex items-baseline gap-2",
111
+ children: [jsx("span", {
112
+ className: "text-sm font-semibold text-foreground",
113
+ children: assistantName
114
+ }), jsx("span", {
115
+ className: "text-xs text-muted-foreground",
116
+ children: new Date(message.timestamp).toLocaleTimeString([], {
117
+ hour: '2-digit',
118
+ minute: '2-digit'
119
+ })
120
+ })]
121
+ }), jsx(Markdown, {
122
+ children: message.content
123
+ })]
124
+ })]
125
+ })
126
+ }, message.id))
127
+ })
128
+ })]
129
+ })]
130
+ });
131
+ };export{MessageHistory};//# sourceMappingURL=MessageHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageHistory.js","sources":["../../../../../src/components/AIToolbar/components/completion/MessageHistory.tsx"],"sourcesContent":[null],"names":[],"mappings":"i1EAcC,MAAA,cAAA,GAAA,CAAA;AAED,EAAA,mBAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ import { UseCompletionReturn } from '../types';
2
+ export declare const Screenshot: ({ screenshotConfiguration, attachedFiles, isLoading, captureScreenshot, isScreenshotLoading, supportsImages, maxFiles, }: UseCompletionReturn & {
3
+ supportsImages?: boolean;
4
+ maxFiles?: number;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=Screenshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Screenshot.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/completion/Screenshot.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI/C,eAAO,MAAM,UAAU,GAAI,0HAQxB,mBAAmB,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,4CA2BvE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import {jsx}from'react/jsx-runtime';import'../../../../shardui/accordion.js';import'../../../../shardui/alert.js';import'../../../../shardui/alert-dialog.js';import'@radix-ui/react-aspect-ratio';import'../../../../shardui/avatar.js';import'../../../../shardui/badge.js';import'../../../../shardui/breadcrumb.js';import {Button}from'../../../../shardui/button.js';import'../../../../shardui/calendar.js';import'../../../../shardui/card.js';import'../../../../shardui/carousel.js';import'../../../../shardui/chart.js';import'../../../../shardui/checkbox.js';import'@radix-ui/react-collapsible';import'../../../../shardui/command.js';import'../../../../shardui/context-menu.js';import'../../../../shardui/dialog.js';import'../../../../shardui/drawer.js';import'../../../../shardui/dropdown-menu.js';import'../../../../shardui/form.js';import'../../../../shardui/hover-card.js';import'../../../../shardui/input.js';import'../../../../shardui/input-otp.js';import'../../../../shardui/label.js';import'../../../../shardui/menubar.js';import'../../../../shardui/navigation-menu.js';import'../../../../shardui/pagination.js';import'../../../../shardui/popover.js';import'../../../../shardui/progress.js';import'../../../../shardui/radio-group.js';import {Loader2,LaptopMinimalIcon,MousePointer2Icon}from'lucide-react';import'react-resizable-panels';import'../../../../utils/isBrowser/index.js';import'clsx';import'tailwind-merge';import'react';import'fast-deep-equal/react.js';import'../../../../shardui/scroll-area.js';import'../../../../shardui/select.js';import'../../../../shardui/separator.js';import'../../../../shardui/sheet.js';import'../../../../shardui/sidebar.js';import'../../../../shardui/slider.js';import'../../../ThemeProvider/ThemeProvider.js';import'sonner';import'../../../../shardui/switch.js';import'../../../../shardui/table.js';import'../../../../shardui/tabs.js';import'../../../../shardui/textarea.js';import'../../../../shardui/toast.js';import'../../../../shardui/toggle.js';import'../../../../shardui/toggle-group.js';import'../../../../shardui/tooltip.js';const DEFAULT_MAX_FILES = 10;
2
+ const Screenshot = ({
3
+ screenshotConfiguration,
4
+ attachedFiles,
5
+ isLoading,
6
+ captureScreenshot,
7
+ isScreenshotLoading,
8
+ supportsImages,
9
+ maxFiles = DEFAULT_MAX_FILES
10
+ }) => {
11
+ const captureMode = screenshotConfiguration.enabled ? 'Screenshot' : 'Selection';
12
+ const processingMode = screenshotConfiguration.mode;
13
+ const isDisabled = attachedFiles.length >= maxFiles || isLoading || isScreenshotLoading || supportsImages === false;
14
+ return jsx(Button, {
15
+ size: "icon",
16
+ className: "cursor-pointer",
17
+ title: supportsImages === false ? 'Screenshot not supported by current AI provider' : `${captureMode} mode (${processingMode}) - ${attachedFiles.length}/${maxFiles} files`,
18
+ onClick: captureScreenshot,
19
+ disabled: isDisabled,
20
+ children: isScreenshotLoading ? jsx(Loader2, {
21
+ className: "h-4 w-4 animate-spin"
22
+ }) : screenshotConfiguration.enabled ? jsx(LaptopMinimalIcon, {
23
+ className: "h-4 w-4"
24
+ }) : jsx(MousePointer2Icon, {
25
+ className: "h-4 w-4"
26
+ })
27
+ });
28
+ };export{Screenshot};//# sourceMappingURL=Screenshot.js.map