@admin-layout/tailwind-ui 12.2.4-alpha.7 → 12.2.4-alpha.79

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 (437) 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 +87 -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 +5 -0
  36. package/lib/components/AIToolbar/components/completion/Audio.d.ts.map +1 -0
  37. package/lib/components/AIToolbar/components/completion/Audio.js +67 -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 +5 -0
  44. package/lib/components/AIToolbar/components/completion/CharacterPicker.d.ts.map +1 -0
  45. package/lib/components/AIToolbar/components/completion/CharacterPicker.js +93 -0
  46. package/lib/components/AIToolbar/components/completion/CharacterPicker.js.map +1 -0
  47. package/lib/components/AIToolbar/components/completion/Files.d.ts +7 -0
  48. package/lib/components/AIToolbar/components/completion/Files.d.ts.map +1 -0
  49. package/lib/components/AIToolbar/components/completion/Files.js +166 -0
  50. package/lib/components/AIToolbar/components/completion/Files.js.map +1 -0
  51. package/lib/components/AIToolbar/components/completion/Input.d.ts +6 -0
  52. package/lib/components/AIToolbar/components/completion/Input.d.ts.map +1 -0
  53. package/lib/components/AIToolbar/components/completion/Input.js +287 -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 +7 -0
  60. package/lib/components/AIToolbar/components/completion/Screenshot.d.ts.map +1 -0
  61. package/lib/components/AIToolbar/components/completion/Screenshot.js +30 -0
  62. package/lib/components/AIToolbar/components/completion/Screenshot.js.map +1 -0
  63. package/lib/components/AIToolbar/components/completion/index.d.ts +13 -0
  64. package/lib/components/AIToolbar/components/completion/index.d.ts.map +1 -0
  65. package/lib/components/AIToolbar/components/completion/index.js +25 -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/MicrophoneDiagnostics.d.ts +2 -0
  74. package/lib/components/AIToolbar/components/speech/MicrophoneDiagnostics.d.ts.map +1 -0
  75. package/lib/components/AIToolbar/components/speech/MicrophoneDiagnostics.js +396 -0
  76. package/lib/components/AIToolbar/components/speech/MicrophoneDiagnostics.js.map +1 -0
  77. package/lib/components/AIToolbar/components/speech/ModeSwitcher.d.ts +8 -0
  78. package/lib/components/AIToolbar/components/speech/ModeSwitcher.d.ts.map +1 -0
  79. package/lib/components/AIToolbar/components/speech/ModeSwitcher.js +44 -0
  80. package/lib/components/AIToolbar/components/speech/ModeSwitcher.js.map +1 -0
  81. package/lib/components/AIToolbar/components/speech/PermissionFlow.d.ts +13 -0
  82. package/lib/components/AIToolbar/components/speech/PermissionFlow.d.ts.map +1 -0
  83. package/lib/components/AIToolbar/components/speech/PermissionFlow.js +168 -0
  84. package/lib/components/AIToolbar/components/speech/PermissionFlow.js.map +1 -0
  85. package/lib/components/AIToolbar/components/speech/QuickActions.d.ts +13 -0
  86. package/lib/components/AIToolbar/components/speech/QuickActions.d.ts.map +1 -0
  87. package/lib/components/AIToolbar/components/speech/QuickActions.js +100 -0
  88. package/lib/components/AIToolbar/components/speech/QuickActions.js.map +1 -0
  89. package/lib/components/AIToolbar/components/speech/RecordingPanel.d.ts +14 -0
  90. package/lib/components/AIToolbar/components/speech/RecordingPanel.d.ts.map +1 -0
  91. package/lib/components/AIToolbar/components/speech/RecordingPanel.js +101 -0
  92. package/lib/components/AIToolbar/components/speech/RecordingPanel.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 +226 -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 +276 -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 +194 -0
  122. package/lib/components/AIToolbar/components/types.d.ts.map +1 -0
  123. package/lib/components/AIToolbar/hooks/marketplaceCharactersRegistry.d.ts +13 -0
  124. package/lib/components/AIToolbar/hooks/marketplaceCharactersRegistry.d.ts.map +1 -0
  125. package/lib/components/AIToolbar/hooks/marketplaceCharactersRegistry.js +6 -0
  126. package/lib/components/AIToolbar/hooks/marketplaceCharactersRegistry.js.map +1 -0
  127. package/lib/components/AIToolbar/hooks/useActiveCharacter.d.ts +52 -0
  128. package/lib/components/AIToolbar/hooks/useActiveCharacter.d.ts.map +1 -0
  129. package/lib/components/AIToolbar/hooks/useActiveCharacter.js +360 -0
  130. package/lib/components/AIToolbar/hooks/useActiveCharacter.js.map +1 -0
  131. package/lib/components/AIToolbar/hooks/useCharacterSprite.d.ts +14 -0
  132. package/lib/components/AIToolbar/hooks/useCharacterSprite.d.ts.map +1 -0
  133. package/lib/components/AIToolbar/hooks/useCharacterSprite.js +103 -0
  134. package/lib/components/AIToolbar/hooks/useCharacterSprite.js.map +1 -0
  135. package/lib/components/AIToolbar/hooks/useChatBackgroundImage.d.ts +10 -0
  136. package/lib/components/AIToolbar/hooks/useChatBackgroundImage.d.ts.map +1 -0
  137. package/lib/components/AIToolbar/hooks/useChatBackgroundImage.js +126 -0
  138. package/lib/components/AIToolbar/hooks/useChatBackgroundImage.js.map +1 -0
  139. package/lib/components/AIToolbar/index.d.ts +8 -0
  140. package/lib/components/AIToolbar/index.d.ts.map +1 -0
  141. package/lib/components/AIToolbar/utils/emotionClassifier.d.ts +19 -0
  142. package/lib/components/AIToolbar/utils/emotionClassifier.d.ts.map +1 -0
  143. package/lib/components/AIToolbar/utils/emotionClassifier.js +142 -0
  144. package/lib/components/AIToolbar/utils/emotionClassifier.js.map +1 -0
  145. package/lib/components/Button/Button.d.ts +1 -1
  146. package/lib/components/Button/Button.d.ts.map +1 -1
  147. package/lib/components/Button/Button.js +7 -6
  148. package/lib/components/Button/Button.js.map +1 -1
  149. package/lib/components/CharacterSlotPicker/CharacterSlotPicker.d.ts +20 -0
  150. package/lib/components/CharacterSlotPicker/CharacterSlotPicker.d.ts.map +1 -0
  151. package/lib/components/CharacterSlotPicker/CharacterSlotPicker.js +249 -0
  152. package/lib/components/CharacterSlotPicker/CharacterSlotPicker.js.map +1 -0
  153. package/lib/components/CharacterSlotPicker/index.d.ts +3 -0
  154. package/lib/components/CharacterSlotPicker/index.d.ts.map +1 -0
  155. package/lib/components/DatePicker/DatePicker.js +158 -140
  156. package/lib/components/DatePicker/DatePicker.js.map +1 -1
  157. package/lib/components/Dialog/Dialog.d.ts +20 -0
  158. package/lib/components/Dialog/Dialog.d.ts.map +1 -0
  159. package/lib/components/Dialog/Dialog.js +111 -0
  160. package/lib/components/Dialog/Dialog.js.map +1 -0
  161. package/lib/components/Dialog/index.d.ts +3 -0
  162. package/lib/components/Dialog/index.d.ts.map +1 -0
  163. package/lib/components/ErrorHandlers/ApplicationErrorHandler.d.ts +1 -2
  164. package/lib/components/ErrorHandlers/ApplicationErrorHandler.d.ts.map +1 -1
  165. package/lib/components/ErrorHandlers/ApplicationErrorHandler.js +2 -2
  166. package/lib/components/ErrorHandlers/ErrorBoundary.d.ts +1 -2
  167. package/lib/components/ErrorHandlers/ErrorBoundary.d.ts.map +1 -1
  168. package/lib/components/ErrorHandlers/ErrorBoundary.js +35 -28
  169. package/lib/components/ErrorHandlers/ErrorBoundary.js.map +1 -1
  170. package/lib/components/ErrorHandlers/LayoutErrorBoundary.d.ts +1 -2
  171. package/lib/components/ErrorHandlers/LayoutErrorBoundary.d.ts.map +1 -1
  172. package/lib/components/ErrorHandlers/LayoutErrorBoundary.js +20 -15
  173. package/lib/components/ErrorHandlers/LayoutErrorBoundary.js.map +1 -1
  174. package/lib/components/ErrorHandlers/RemixErrorBoundary.d.ts +4 -2
  175. package/lib/components/ErrorHandlers/RemixErrorBoundary.d.ts.map +1 -1
  176. package/lib/components/ErrorHandlers/RemixErrorBoundary.js +222 -100
  177. package/lib/components/ErrorHandlers/RemixErrorBoundary.js.map +1 -1
  178. package/lib/components/ErrorHandlers/SPAErrorBoundary.d.ts +4 -2
  179. package/lib/components/ErrorHandlers/SPAErrorBoundary.d.ts.map +1 -1
  180. package/lib/components/ErrorHandlers/SPAErrorBoundary.js +247 -82
  181. package/lib/components/ErrorHandlers/SPAErrorBoundary.js.map +1 -1
  182. package/lib/components/ErrorPages/403.d.ts +1 -2
  183. package/lib/components/ErrorPages/403.d.ts.map +1 -1
  184. package/lib/components/ErrorPages/403.js +26 -18
  185. package/lib/components/ErrorPages/403.js.map +1 -1
  186. package/lib/components/ErrorPages/404.d.ts +1 -2
  187. package/lib/components/ErrorPages/404.d.ts.map +1 -1
  188. package/lib/components/ErrorPages/404.js +26 -18
  189. package/lib/components/ErrorPages/404.js.map +1 -1
  190. package/lib/components/ErrorPages/500.d.ts +1 -2
  191. package/lib/components/ErrorPages/500.d.ts.map +1 -1
  192. package/lib/components/ErrorPages/500.js +26 -18
  193. package/lib/components/ErrorPages/500.js.map +1 -1
  194. package/lib/components/Inbox/Channels/ChannelBar.d.ts +33 -0
  195. package/lib/components/Inbox/Channels/ChannelBar.d.ts.map +1 -0
  196. package/lib/components/Inbox/Channels/ChannelBar.js +79 -0
  197. package/lib/components/Inbox/Channels/ChannelBar.js.map +1 -0
  198. package/lib/components/Inbox/Channels/ChannelConnectModal.d.ts +24 -0
  199. package/lib/components/Inbox/Channels/ChannelConnectModal.d.ts.map +1 -0
  200. package/lib/components/Inbox/Channels/ChannelConnectModal.js +177 -0
  201. package/lib/components/Inbox/Channels/ChannelConnectModal.js.map +1 -0
  202. package/lib/components/Inbox/Channels/channelsMeta.d.ts +16 -0
  203. package/lib/components/Inbox/Channels/channelsMeta.d.ts.map +1 -0
  204. package/lib/components/Inbox/Channels/channelsMeta.js +127 -0
  205. package/lib/components/Inbox/Channels/channelsMeta.js.map +1 -0
  206. package/lib/components/Inbox/Channels/index.d.ts +7 -0
  207. package/lib/components/Inbox/Channels/index.d.ts.map +1 -0
  208. package/lib/components/Inbox/index.d.ts +2 -0
  209. package/lib/components/Inbox/index.d.ts.map +1 -0
  210. package/lib/components/InputToolBar/InputToolBar.d.ts +8 -0
  211. package/lib/components/InputToolBar/InputToolBar.d.ts.map +1 -0
  212. package/lib/components/InputToolBar/InputToolBar.js +531 -0
  213. package/lib/components/InputToolBar/InputToolBar.js.map +1 -0
  214. package/lib/components/InputToolBar/defaults.d.ts +15 -0
  215. package/lib/components/InputToolBar/defaults.d.ts.map +1 -0
  216. package/lib/components/InputToolBar/defaults.js +60 -0
  217. package/lib/components/InputToolBar/defaults.js.map +1 -0
  218. package/lib/components/InputToolBar/index.d.ts +5 -0
  219. package/lib/components/InputToolBar/index.d.ts.map +1 -0
  220. package/lib/components/InputToolBar/types.d.ts +156 -0
  221. package/lib/components/InputToolBar/types.d.ts.map +1 -0
  222. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.d.ts +1 -2
  223. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.d.ts.map +1 -1
  224. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.js +24 -19
  225. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.js.map +1 -1
  226. package/lib/components/Markdown/MarkdownBreadcrumbs.d.ts +13 -0
  227. package/lib/components/Markdown/MarkdownBreadcrumbs.d.ts.map +1 -0
  228. package/lib/components/Markdown/MarkdownBreadcrumbs.js +34 -0
  229. package/lib/components/Markdown/MarkdownBreadcrumbs.js.map +1 -0
  230. package/lib/components/Markdown/MarkdownCopyButton.d.ts +10 -0
  231. package/lib/components/Markdown/MarkdownCopyButton.d.ts.map +1 -0
  232. package/lib/components/Markdown/MarkdownCopyButton.js +229 -0
  233. package/lib/components/Markdown/MarkdownCopyButton.js.map +1 -0
  234. package/lib/components/Markdown/MarkdownHeader.d.ts +13 -0
  235. package/lib/components/Markdown/MarkdownHeader.d.ts.map +1 -0
  236. package/lib/components/Markdown/MarkdownHeader.js +44 -0
  237. package/lib/components/Markdown/MarkdownHeader.js.map +1 -0
  238. package/lib/components/Markdown/MarkdownNavigation.d.ts +15 -0
  239. package/lib/components/Markdown/MarkdownNavigation.d.ts.map +1 -0
  240. package/lib/components/Markdown/MarkdownNavigation.js +38 -0
  241. package/lib/components/Markdown/MarkdownNavigation.js.map +1 -0
  242. package/lib/components/Markdown/MarkdownPage.d.ts +41 -0
  243. package/lib/components/Markdown/MarkdownPage.d.ts.map +1 -0
  244. package/lib/components/Markdown/MarkdownPage.js +238 -0
  245. package/lib/components/Markdown/MarkdownPage.js.map +1 -0
  246. package/lib/components/Markdown/MarkdownTableOfContents.d.ts +15 -0
  247. package/lib/components/Markdown/MarkdownTableOfContents.d.ts.map +1 -0
  248. package/lib/components/Markdown/MarkdownTableOfContents.js +57 -0
  249. package/lib/components/Markdown/MarkdownTableOfContents.js.map +1 -0
  250. package/lib/components/Markdown/index.d.ts +7 -0
  251. package/lib/components/Markdown/index.d.ts.map +1 -0
  252. package/lib/components/OTP/OTPInput.js +32 -30
  253. package/lib/components/OTP/OTPInput.js.map +1 -1
  254. package/lib/components/OTP/OTPVerification.js +75 -55
  255. package/lib/components/OTP/OTPVerification.js.map +1 -1
  256. package/lib/components/OTP/SingleInput.js +2 -2
  257. package/lib/components/OTP/SingleInput.js.map +1 -1
  258. package/lib/components/PageContainer/PageContainer.js +29 -22
  259. package/lib/components/PageContainer/PageContainer.js.map +1 -1
  260. package/lib/components/PageLoading/index.js +8 -7
  261. package/lib/components/PageLoading/index.js.map +1 -1
  262. package/lib/components/RJSFPreview/PreviewAsyncDropdown.d.ts +1 -2
  263. package/lib/components/RJSFPreview/PreviewAsyncDropdown.d.ts.map +1 -1
  264. package/lib/components/ReactTable/Table.d.ts +1 -2
  265. package/lib/components/ReactTable/Table.d.ts.map +1 -1
  266. package/lib/components/ReactTable/Table.js +92 -71
  267. package/lib/components/ReactTable/Table.js.map +1 -1
  268. package/lib/components/ReactTable/TableFilters.d.ts +2 -3
  269. package/lib/components/ReactTable/TableFilters.d.ts.map +1 -1
  270. package/lib/components/ReactTable/TableFilters.js +40 -34
  271. package/lib/components/ReactTable/TableFilters.js.map +1 -1
  272. package/lib/components/Search/SearchInput.d.ts +1 -2
  273. package/lib/components/Search/SearchInput.d.ts.map +1 -1
  274. package/lib/components/Search/SearchInput.js +14 -13
  275. package/lib/components/Search/SearchInput.js.map +1 -1
  276. package/lib/components/Select/Select.d.ts +6 -6
  277. package/lib/components/Select/Select.d.ts.map +1 -1
  278. package/lib/components/Select/Select.js +60 -45
  279. package/lib/components/Select/Select.js.map +1 -1
  280. package/lib/components/Spin/index.js +14 -11
  281. package/lib/components/Spin/index.js.map +1 -1
  282. package/lib/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  283. package/lib/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  284. package/lib/components/ThemeProvider/ThemeProvider.js +29 -17
  285. package/lib/components/ThemeProvider/ThemeProvider.js.map +1 -1
  286. package/lib/components/ThemeProvider/ThemeToggle.js +28 -25
  287. package/lib/components/ThemeProvider/ThemeToggle.js.map +1 -1
  288. package/lib/components/ThemeProvider/types.d.ts +3 -3
  289. package/lib/components/ThemeProvider/types.d.ts.map +1 -1
  290. package/lib/components/YantraIcon.d.ts +6 -0
  291. package/lib/components/YantraIcon.d.ts.map +1 -0
  292. package/lib/components/YantraIcon.js +32 -0
  293. package/lib/components/YantraIcon.js.map +1 -0
  294. package/lib/components/index.d.ts +8 -0
  295. package/lib/components/index.d.ts.map +1 -1
  296. package/lib/hooks/activeCharacterPreference.d.ts +25 -0
  297. package/lib/hooks/activeCharacterPreference.d.ts.map +1 -0
  298. package/lib/hooks/activeCharacterPreference.js +71 -0
  299. package/lib/hooks/activeCharacterPreference.js.map +1 -0
  300. package/lib/hooks/characterOverrides.d.ts +29 -0
  301. package/lib/hooks/characterOverrides.d.ts.map +1 -0
  302. package/lib/hooks/characterOverrides.js +130 -0
  303. package/lib/hooks/characterOverrides.js.map +1 -0
  304. package/lib/hooks/characterSlotsPreference.d.ts +33 -0
  305. package/lib/hooks/characterSlotsPreference.d.ts.map +1 -0
  306. package/lib/hooks/characterSlotsPreference.js +141 -0
  307. package/lib/hooks/characterSlotsPreference.js.map +1 -0
  308. package/lib/hooks/index.d.ts +4 -0
  309. package/lib/hooks/index.d.ts.map +1 -1
  310. package/lib/hooks/useGlobalShortcutBridge.d.ts +21 -0
  311. package/lib/hooks/useGlobalShortcutBridge.d.ts.map +1 -0
  312. package/lib/hooks/useGlobalShortcutBridge.js +68 -0
  313. package/lib/hooks/useGlobalShortcutBridge.js.map +1 -0
  314. package/lib/hooks/useToast.d.ts +1 -1
  315. package/lib/hooks/useToast.d.ts.map +1 -1
  316. package/lib/hooks/useToast.js +46 -37
  317. package/lib/hooks/useToast.js.map +1 -1
  318. package/lib/index.js +1 -1
  319. package/lib/shardui/accordion.js +20 -16
  320. package/lib/shardui/accordion.js.map +1 -1
  321. package/lib/shardui/alert-dialog.d.ts +2 -2
  322. package/lib/shardui/alert-dialog.js +15 -13
  323. package/lib/shardui/alert-dialog.js.map +1 -1
  324. package/lib/shardui/alert.js +4 -4
  325. package/lib/shardui/alert.js.map +1 -1
  326. package/lib/shardui/avatar.js +4 -4
  327. package/lib/shardui/avatar.js.map +1 -1
  328. package/lib/shardui/badge.d.ts +1 -1
  329. package/lib/shardui/badge.d.ts.map +1 -1
  330. package/lib/shardui/badge.js +2 -2
  331. package/lib/shardui/badge.js.map +1 -1
  332. package/lib/shardui/breadcrumb.d.ts +2 -2
  333. package/lib/shardui/breadcrumb.js +19 -16
  334. package/lib/shardui/breadcrumb.js.map +1 -1
  335. package/lib/shardui/button.js +2 -2
  336. package/lib/shardui/button.js.map +1 -1
  337. package/lib/shardui/calendar.d.ts +1 -1
  338. package/lib/shardui/calendar.d.ts.map +1 -1
  339. package/lib/shardui/calendar.js +4 -4
  340. package/lib/shardui/card.js +7 -7
  341. package/lib/shardui/card.js.map +1 -1
  342. package/lib/shardui/carousel.js +40 -33
  343. package/lib/shardui/carousel.js.map +1 -1
  344. package/lib/shardui/chart.d.ts +1 -1
  345. package/lib/shardui/chart.d.ts.map +1 -1
  346. package/lib/shardui/chart.js +81 -66
  347. package/lib/shardui/chart.js.map +1 -1
  348. package/lib/shardui/checkbox.js +10 -8
  349. package/lib/shardui/checkbox.js.map +1 -1
  350. package/lib/shardui/command.d.ts +3 -3
  351. package/lib/shardui/command.d.ts.map +1 -1
  352. package/lib/shardui/command.js +28 -24
  353. package/lib/shardui/command.js.map +1 -1
  354. package/lib/shardui/context-menu.d.ts +1 -1
  355. package/lib/shardui/context-menu.js +41 -30
  356. package/lib/shardui/context-menu.js.map +1 -1
  357. package/lib/shardui/dialog.d.ts +2 -2
  358. package/lib/shardui/dialog.js +22 -17
  359. package/lib/shardui/dialog.js.map +1 -1
  360. package/lib/shardui/drawer.d.ts +3 -3
  361. package/lib/shardui/drawer.js +17 -14
  362. package/lib/shardui/drawer.js.map +1 -1
  363. package/lib/shardui/dropdown-menu.d.ts +1 -1
  364. package/lib/shardui/dropdown-menu.js +42 -31
  365. package/lib/shardui/dropdown-menu.js.map +1 -1
  366. package/lib/shardui/form.d.ts +1 -1
  367. package/lib/shardui/form.d.ts.map +1 -1
  368. package/lib/shardui/form.js +22 -19
  369. package/lib/shardui/form.js.map +1 -1
  370. package/lib/shardui/hover-card.js +2 -2
  371. package/lib/shardui/hover-card.js.map +1 -1
  372. package/lib/shardui/input-otp.js +16 -13
  373. package/lib/shardui/input-otp.js.map +1 -1
  374. package/lib/shardui/input.js +2 -2
  375. package/lib/shardui/input.js.map +1 -1
  376. package/lib/shardui/label.js +2 -2
  377. package/lib/shardui/label.js.map +1 -1
  378. package/lib/shardui/menubar.d.ts +1 -1
  379. package/lib/shardui/menubar.js +46 -35
  380. package/lib/shardui/menubar.js.map +1 -1
  381. package/lib/shardui/navigation-menu.js +28 -24
  382. package/lib/shardui/navigation-menu.js.map +1 -1
  383. package/lib/shardui/pagination.d.ts +5 -5
  384. package/lib/shardui/pagination.js +30 -22
  385. package/lib/shardui/pagination.js.map +1 -1
  386. package/lib/shardui/popover.js +10 -8
  387. package/lib/shardui/popover.js.map +1 -1
  388. package/lib/shardui/progress.js +10 -9
  389. package/lib/shardui/progress.js.map +1 -1
  390. package/lib/shardui/radio-group.js +11 -9
  391. package/lib/shardui/radio-group.js.map +1 -1
  392. package/lib/shardui/resizable.d.ts +3 -3
  393. package/lib/shardui/resizable.d.ts.map +1 -1
  394. package/lib/shardui/resizable.js +11 -9
  395. package/lib/shardui/resizable.js.map +1 -1
  396. package/lib/shardui/scroll-area.js +14 -11
  397. package/lib/shardui/scroll-area.js.map +1 -1
  398. package/lib/shardui/select.js +49 -35
  399. package/lib/shardui/select.js.map +1 -1
  400. package/lib/shardui/separator.js +2 -2
  401. package/lib/shardui/separator.js.map +1 -1
  402. package/lib/shardui/sheet.d.ts +2 -2
  403. package/lib/shardui/sheet.js +24 -19
  404. package/lib/shardui/sheet.js.map +1 -1
  405. package/lib/shardui/sidebar.js +104 -88
  406. package/lib/shardui/sidebar.js.map +1 -1
  407. package/lib/shardui/skeleton.d.ts +1 -1
  408. package/lib/shardui/skeleton.d.ts.map +1 -1
  409. package/lib/shardui/skeleton.js +2 -2
  410. package/lib/shardui/skeleton.js.map +1 -1
  411. package/lib/shardui/slider.js +12 -10
  412. package/lib/shardui/slider.js.map +1 -1
  413. package/lib/shardui/sonner.d.ts +1 -1
  414. package/lib/shardui/sonner.d.ts.map +1 -1
  415. package/lib/shardui/sonner.js +2 -2
  416. package/lib/shardui/sonner.js.map +1 -1
  417. package/lib/shardui/switch.js +7 -6
  418. package/lib/shardui/switch.js.map +1 -1
  419. package/lib/shardui/table.js +16 -15
  420. package/lib/shardui/table.js.map +1 -1
  421. package/lib/shardui/tabs.js +4 -4
  422. package/lib/shardui/tabs.js.map +1 -1
  423. package/lib/shardui/textarea.js +2 -2
  424. package/lib/shardui/textarea.js.map +1 -1
  425. package/lib/shardui/toast.js +12 -11
  426. package/lib/shardui/toast.js.map +1 -1
  427. package/lib/shardui/toaster.d.ts +1 -2
  428. package/lib/shardui/toaster.d.ts.map +1 -1
  429. package/lib/shardui/toaster.js +21 -14
  430. package/lib/shardui/toaster.js.map +1 -1
  431. package/lib/shardui/toggle-group.js +15 -12
  432. package/lib/shardui/toggle-group.js.map +1 -1
  433. package/lib/shardui/toggle.js +2 -2
  434. package/lib/shardui/toggle.js.map +1 -1
  435. package/lib/shardui/tooltip.js +2 -2
  436. package/lib/shardui/tooltip.js.map +1 -1
  437. package/package.json +10 -4
@@ -0,0 +1,30 @@
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
+ toolbarShowElementTitles
11
+ }) => {
12
+ const captureMode = screenshotConfiguration.enabled ? 'Screenshot' : 'Selection';
13
+ const processingMode = screenshotConfiguration.mode;
14
+ const isDisabled = attachedFiles.length >= maxFiles || isLoading || isScreenshotLoading || supportsImages === false;
15
+ const showTitles = toolbarShowElementTitles !== false;
16
+ return jsx(Button, {
17
+ size: "icon",
18
+ className: "cursor-pointer",
19
+ title: showTitles ? supportsImages === false ? 'Screenshot not supported by current AI provider' : `${captureMode} mode (${processingMode}) - ${attachedFiles.length}/${maxFiles} files` : undefined,
20
+ onClick: captureScreenshot,
21
+ disabled: isDisabled,
22
+ children: isScreenshotLoading ? jsx(Loader2, {
23
+ className: "h-4 w-4 animate-spin"
24
+ }) : screenshotConfiguration.enabled ? jsx(LaptopMinimalIcon, {
25
+ className: "h-4 w-4"
26
+ }) : jsx(MousePointer2Icon, {
27
+ className: "h-4 w-4"
28
+ })
29
+ });
30
+ };export{Screenshot};//# sourceMappingURL=Screenshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Screenshot.js","sources":["../../../../../src/components/AIToolbar/components/completion/Screenshot.tsx"],"sourcesContent":[null],"names":[],"mappings":"miEAeqD,iBAAkB,GAAA,EAAA;AAAC,MAAA,UAAA,GAAA,CAAA;AAAoC,EAAA,uBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,13 @@
1
+ import type { UseCompletionReturn } from '../types';
2
+ export { AssistantMessageActions, type AssistantMessageActionsProps, type AssistantMessageVote, } from './AssistantMessageActions';
3
+ export type CompletionProps = {
4
+ /** Wired from the host completion hook. */
5
+ completion: UseCompletionReturn;
6
+ isHidden: boolean;
7
+ /** When true, paperclip + screenshot attach UI are enabled (from host; default true in {@link AIToolBar}). */
8
+ supportsImages?: boolean;
9
+ /** When false, native `title=` tooltips on toolbar controls are omitted (desktop setting). Default: show. */
10
+ showElementTitles?: boolean;
11
+ };
12
+ export declare const Completion: ({ completion, isHidden, supportsImages, showElementTitles }: CompletionProps) => import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/completion/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAMpD,OAAO,EACH,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,eAAe,GAAG;IAC1B,2CAA2C;IAC3C,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,8GAA8G;IAC9G,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6GAA6G;IAC7G,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,6DAAoE,eAAe,4CAS7G,CAAC"}
@@ -0,0 +1,25 @@
1
+ import {jsxs,Fragment,jsx}from'react/jsx-runtime';import {Screenshot}from'./Screenshot.js';import {Files}from'./Files.js';import {Audio}from'./Audio.js';import {Input}from'./Input.js';import'react';import'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'../../../../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'react-resizable-panels';import'../../../../utils/isBrowser/index.js';import'clsx';import'tailwind-merge';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 Completion = ({
2
+ completion,
3
+ isHidden,
4
+ supportsImages = true,
5
+ showElementTitles
6
+ }) => {
7
+ return jsxs(Fragment, {
8
+ children: [jsx(Audio, {
9
+ ...completion,
10
+ toolbarShowElementTitles: showElementTitles
11
+ }), jsx(Input, {
12
+ ...completion,
13
+ isHidden: isHidden,
14
+ toolbarShowElementTitles: showElementTitles
15
+ }), jsx(Screenshot, {
16
+ ...completion,
17
+ supportsImages: supportsImages,
18
+ toolbarShowElementTitles: showElementTitles
19
+ }), jsx(Files, {
20
+ ...completion,
21
+ supportsImages: supportsImages,
22
+ toolbarShowElementTitles: showElementTitles
23
+ })]
24
+ });
25
+ };export{Completion};//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/AIToolbar/components/completion/index.tsx"],"sourcesContent":[null],"names":[],"mappings":"knEAgBI,MAAA,UAAA,GAAA,CAAA;YACA;UACA;gBACA,GAAA,IAAkB;EACpB;AAEF,CAAA,KAAA;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,17 @@
1
+ export * from './completion';
2
+ export * from './speech';
3
+ export * from './speech/audio-visualizer';
4
+ export * from './speech/StatusIndicator';
5
+ export { AIToolBar, DragButton, type DragButtonProps } from './AIToolBar';
6
+ export { CustomCursor } from './CustomCursor';
7
+ export { Completion } from './completion';
8
+ export { SystemAudio } from './speech';
9
+ export { AudioVisualizer } from './speech/audio-visualizer';
10
+ export { StatusIndicator } from './speech/StatusIndicator';
11
+ export { MessageHistory } from './completion/MessageHistory';
12
+ export { Screenshot } from './completion/Screenshot';
13
+ export { Header } from './speech/Header';
14
+ export { ModeSwitcher } from './speech/ModeSwitcher';
15
+ export { PermissionFlow } from './speech/PermissionFlow';
16
+ export type { PermissionFlowProps } from './speech/PermissionFlow';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/AIToolbar/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,14 @@
1
+ type Props = {
2
+ setupRequired: boolean;
3
+ setIsPopoverOpen: React.Dispatch<React.SetStateAction<boolean>>;
4
+ resizeWindow: (expanded: boolean) => Promise<void>;
5
+ capturing: boolean;
6
+ isVadMode: boolean;
7
+ isRecording: boolean;
8
+ isProcessing: boolean;
9
+ isAIProcessing: boolean;
10
+ error?: string;
11
+ };
12
+ export declare const Header: ({ setupRequired, capturing, isVadMode, isRecording, isProcessing, isAIProcessing, error, }: Props) => import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=Header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/speech/Header.tsx"],"names":[],"mappings":"AAKA,KAAK,KAAK,GAAG;IACT,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAwDF,eAAO,MAAM,MAAM,GAAI,4FAQpB,KAAK,4CA0BP,CAAC"}
@@ -0,0 +1,82 @@
1
+ import {jsx,jsxs}from'react/jsx-runtime';import {AlertCircleIcon,LoaderIcon,MicIcon,AudioWaveformIcon}from'lucide-react';import'../../../../utils/isBrowser/index.js';import {cn}from'../../../../utils/util.js';import'react';import'fast-deep-equal/react.js';const getStatus = (capturing, isVadMode, isRecording, isProcessing, isAIProcessing, error) => {
2
+ if (error) return 'error';
3
+ if (isAIProcessing) return 'ai-processing';
4
+ if (isProcessing) return 'processing';
5
+ if (isRecording) return 'recording';
6
+ if (capturing && isVadMode) return 'listening';
7
+ return 'ready';
8
+ };
9
+ const STATUS_CONFIG = {
10
+ ready: {
11
+ label: 'Ready',
12
+ color: 'text-muted-foreground',
13
+ bgColor: 'bg-muted'
14
+ },
15
+ listening: {
16
+ label: 'Listening',
17
+ color: 'text-teal-600',
18
+ bgColor: 'bg-teal-100',
19
+ icon: jsx(AudioWaveformIcon, {
20
+ className: "w-3 h-3"
21
+ })
22
+ },
23
+ recording: {
24
+ label: 'Recording',
25
+ color: 'text-red-600',
26
+ bgColor: 'bg-red-100',
27
+ icon: jsx(MicIcon, {
28
+ className: "w-3 h-3"
29
+ })
30
+ },
31
+ processing: {
32
+ label: 'Transcribing',
33
+ color: 'text-orange-600',
34
+ bgColor: 'bg-orange-100',
35
+ icon: jsx(LoaderIcon, {
36
+ className: "w-3 h-3 animate-spin"
37
+ })
38
+ },
39
+ 'ai-processing': {
40
+ label: 'AI Responding',
41
+ color: 'text-purple-600',
42
+ bgColor: 'bg-purple-100',
43
+ icon: jsx(LoaderIcon, {
44
+ className: "w-3 h-3 animate-spin"
45
+ })
46
+ },
47
+ error: {
48
+ label: 'Error',
49
+ color: 'text-red-600',
50
+ bgColor: 'bg-red-100',
51
+ icon: jsx(AlertCircleIcon, {
52
+ className: "w-3 h-3"
53
+ })
54
+ }
55
+ };
56
+ const Header = ({
57
+ setupRequired,
58
+ capturing,
59
+ isVadMode,
60
+ isRecording,
61
+ isProcessing,
62
+ isAIProcessing,
63
+ error
64
+ }) => {
65
+ const status = getStatus(capturing, isVadMode, isRecording, isProcessing, isAIProcessing, error);
66
+ const statusConfig = STATUS_CONFIG[status];
67
+ return jsxs("div", {
68
+ children: [jsx("h2", {
69
+ className: "font-semibold text-sm",
70
+ children: setupRequired ? 'Setup Required' : 'Speech Assistant'
71
+ }), !setupRequired && jsxs("div", {
72
+ className: "flex items-center gap-1.5 mt-1",
73
+ children: [jsxs("span", {
74
+ className: cn('inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-medium', statusConfig.bgColor, statusConfig.color),
75
+ children: [statusConfig.icon, statusConfig.label]
76
+ }), jsxs("span", {
77
+ className: "text-[10px] text-muted-foreground",
78
+ children: [isVadMode ? 'Auto-detect' : 'Manual', " mode"]
79
+ })]
80
+ })]
81
+ });
82
+ };export{Header};//# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sources":["../../../../../src/components/AIToolbar/components/speech/Header.tsx"],"sourcesContent":[null],"names":[],"mappings":"sQAQI,SAAA,GAAc,CAAC,SAAQ,EAAE,WAAY,WAAQ,EAAK,YAAC,EAAA,cAAA,EAAA,KAAA,KAAA;MACnD,KAAA,EAAS,cAAU;MACnB,gBAAkB,OAAC,eAAA;MACnB,qBAAqB,YAAA;MACrB,WAAY,SAAU,WAAA;MACtB,SAAA,IAAc,SAAU,EAAA,OAAA,WAAA;SACnB,OAAG;CACX;AAwDD,MAAA,gBAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function MicrophoneDiagnostics(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=MicrophoneDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MicrophoneDiagnostics.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/speech/MicrophoneDiagnostics.tsx"],"names":[],"mappings":"AA+LA,wBAAgB,qBAAqB,4CAmPpC"}
@@ -0,0 +1,396 @@
1
+ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useState,useRef,useCallback,useEffect}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 {Label}from'../../../../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 {MicIcon,RefreshCwIcon,LoaderIcon,SettingsIcon,RotateCcwIcon,CheckCircle2Icon,CircleAlertIcon,HelpCircleIcon}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'../../../../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';// constants
2
+ const TEST_DURATION_MS = 3000;
3
+ const STATUS_POLL_MS = 2000;
4
+ const TCC_RESET_HINT = 'tccutil reset Microphone com.cdebase.yantra';
5
+ const STATUS_COPY = {
6
+ authorized: {
7
+ label: 'Authorized',
8
+ tone: 'ok'
9
+ },
10
+ not_determined: {
11
+ label: 'Not requested yet',
12
+ tone: 'warn'
13
+ },
14
+ denied: {
15
+ label: 'Denied',
16
+ tone: 'err'
17
+ },
18
+ restricted: {
19
+ label: 'Restricted (MDM)',
20
+ tone: 'err'
21
+ },
22
+ unsupported: {
23
+ label: 'Not gated on this OS',
24
+ tone: 'muted'
25
+ }
26
+ };
27
+ // helper functions
28
+ function isTauriInvokeAvailable() {
29
+ return typeof window !== 'undefined' && Boolean(window.__TAURI_INTERNALS__?.invoke);
30
+ }
31
+ async function invokeTauri(command, args) {
32
+ const {
33
+ invoke
34
+ } = await import('@tauri-apps/api/core');
35
+ return invoke(command, args);
36
+ }
37
+ function computeLevels(samples) {
38
+ if (samples.length === 0) return {
39
+ peak: 0,
40
+ rms: 0
41
+ };
42
+ let peak = 0;
43
+ let sumSquares = 0;
44
+ for (let i = 0; i < samples.length; i += 1) {
45
+ const value = Math.abs(samples[i]);
46
+ if (value > peak) peak = value;
47
+ sumSquares += samples[i] * samples[i];
48
+ }
49
+ return {
50
+ peak,
51
+ rms: Math.sqrt(sumSquares / samples.length)
52
+ };
53
+ }
54
+ function delay(ms) {
55
+ return new Promise(resolve => setTimeout(resolve, ms));
56
+ }
57
+ async function copyToClipboard(text) {
58
+ try {
59
+ if (typeof navigator !== 'undefined' && navigator.clipboard?.writeText) {
60
+ await navigator.clipboard.writeText(text);
61
+ return true;
62
+ }
63
+ } catch {
64
+ /* fall through */
65
+ }
66
+ return false;
67
+ }
68
+ // sub components
69
+ function StatusBadge({
70
+ status
71
+ }) {
72
+ if (!status) {
73
+ return jsxs("span", {
74
+ className: "inline-flex items-center gap-1.5 text-[11px] text-muted-foreground",
75
+ children: [jsx(LoaderIcon, {
76
+ className: "w-3 h-3 animate-spin"
77
+ }), "Checking\u2026"]
78
+ });
79
+ }
80
+ const copy = STATUS_COPY[status];
81
+ const toneClass = copy.tone === 'ok' ? 'text-emerald-600 bg-emerald-500/10 border-emerald-500/30' : copy.tone === 'warn' ? 'text-amber-600 bg-amber-500/10 border-amber-500/30' : copy.tone === 'err' ? 'text-red-600 bg-red-500/10 border-red-500/30' : 'text-muted-foreground bg-muted border-border';
82
+ return jsxs("span", {
83
+ className: cn('inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 text-[11px] font-medium', toneClass),
84
+ children: [copy.tone === 'ok' ? jsx(CheckCircle2Icon, {
85
+ className: "w-3 h-3"
86
+ }) : copy.tone === 'err' ? jsx(CircleAlertIcon, {
87
+ className: "w-3 h-3"
88
+ }) : jsx(HelpCircleIcon, {
89
+ className: "w-3 h-3"
90
+ }), copy.label]
91
+ });
92
+ }
93
+ function LevelBar({
94
+ value
95
+ }) {
96
+ const pct = Math.min(100, Math.max(0, Math.round(value * 100)));
97
+ return jsx("div", {
98
+ className: "h-1.5 w-full rounded-full bg-muted overflow-hidden",
99
+ children: jsx("div", {
100
+ className: cn('h-full transition-all', pct < 5 ? 'bg-muted-foreground/40' : pct < 25 ? 'bg-emerald-500' : 'bg-emerald-400'),
101
+ style: {
102
+ width: `${pct}%`
103
+ }
104
+ })
105
+ });
106
+ }
107
+ function TestResultView({
108
+ result
109
+ }) {
110
+ if (result.kind === 'idle') return null;
111
+ if (result.kind === 'running') {
112
+ return jsxs("div", {
113
+ className: "flex items-center gap-2 rounded-md border border-border/60 bg-muted/40 p-2 text-[11px]",
114
+ children: [jsx(LoaderIcon, {
115
+ className: "w-3.5 h-3.5 animate-spin text-muted-foreground"
116
+ }), jsxs("span", {
117
+ children: ["Recording ", Math.round(TEST_DURATION_MS / 1000), "s\u2026"]
118
+ })]
119
+ });
120
+ }
121
+ if (result.kind === 'error') {
122
+ return jsxs("div", {
123
+ className: "rounded-md border border-red-500/30 bg-red-500/10 p-2 text-[11px] text-red-600",
124
+ children: [jsx("strong", {
125
+ children: "Test failed."
126
+ }), " ", result.message]
127
+ });
128
+ }
129
+ if (result.kind === 'silent') {
130
+ return jsxs("div", {
131
+ className: "rounded-md border border-amber-500/30 bg-amber-500/10 p-2 text-[11px] text-amber-700",
132
+ children: [jsx("strong", {
133
+ children: "No audio detected."
134
+ }), " Captured ", result.samples, " samples but the signal was silent. The OS may have authorized us at the TCC layer but cpal/CoreAudio is still serving an empty stream \u2014 try Restart App, or reset TCC and re-grant."]
135
+ });
136
+ }
137
+ return jsxs("div", {
138
+ className: "space-y-1.5 rounded-md border border-emerald-500/30 bg-emerald-500/10 p-2 text-[11px] text-emerald-700",
139
+ children: [jsxs("div", {
140
+ className: "flex items-center justify-between font-medium",
141
+ children: [jsxs("span", {
142
+ className: "inline-flex items-center gap-1.5",
143
+ children: [jsx(CheckCircle2Icon, {
144
+ className: "w-3.5 h-3.5"
145
+ }), "Signal detected"]
146
+ }), jsxs("span", {
147
+ className: "font-mono text-[10px] text-emerald-700/80",
148
+ children: ["peak ", result.peak.toFixed(3), " \u00B7 rms ", result.rms.toFixed(3)]
149
+ })]
150
+ }), jsx(LevelBar, {
151
+ value: result.peak
152
+ }), jsxs("div", {
153
+ className: "text-[10px] text-emerald-700/80",
154
+ children: ["Captured ", result.samples, " samples over ", result.durationMs, "ms"]
155
+ })]
156
+ });
157
+ }
158
+ // main component
159
+ function MicrophoneDiagnostics() {
160
+ const [permission, setPermission] = useState(null);
161
+ const [devices, setDevices] = useState([]);
162
+ const [devicesLoading, setDevicesLoading] = useState(false);
163
+ const [testResult, setTestResult] = useState({
164
+ kind: 'idle'
165
+ });
166
+ const [tccCopied, setTccCopied] = useState(false);
167
+ const tauriAvailable = isTauriInvokeAvailable();
168
+ const inFlightRef = useRef(false);
169
+ const refreshPermission = useCallback(async () => {
170
+ if (!tauriAvailable) {
171
+ setPermission('unsupported');
172
+ return;
173
+ }
174
+ try {
175
+ const status = await invokeTauri('check_microphone_permission');
176
+ setPermission(status);
177
+ } catch {
178
+ setPermission('unsupported');
179
+ }
180
+ }, [tauriAvailable]);
181
+ const refreshDevices = useCallback(async () => {
182
+ if (!tauriAvailable) return;
183
+ setDevicesLoading(true);
184
+ try {
185
+ const list = await invokeTauri('list_audio_input_devices');
186
+ setDevices(list ?? []);
187
+ } catch {
188
+ setDevices([]);
189
+ } finally {
190
+ setDevicesLoading(false);
191
+ }
192
+ }, [tauriAvailable]);
193
+ useEffect(() => {
194
+ void refreshPermission();
195
+ void refreshDevices();
196
+ if (!tauriAvailable) return;
197
+ const interval = setInterval(() => {
198
+ void refreshPermission();
199
+ }, STATUS_POLL_MS);
200
+ return () => clearInterval(interval);
201
+ }, [refreshPermission, refreshDevices, tauriAvailable]);
202
+ const handleRunTest = useCallback(async () => {
203
+ if (inFlightRef.current || !tauriAvailable) return;
204
+ inFlightRef.current = true;
205
+ setTestResult({
206
+ kind: 'running'
207
+ });
208
+ try {
209
+ try {
210
+ await invokeTauri('clear_audio_buffer_cmd');
211
+ } catch {
212
+ /* non-fatal */
213
+ }
214
+ await invokeTauri('start_system_audio_capture');
215
+ await delay(TEST_DURATION_MS);
216
+ const captured = await invokeTauri('get_captured_audio');
217
+ try {
218
+ await invokeTauri('stop_system_audio_capture');
219
+ } catch {
220
+ /* non-fatal */
221
+ }
222
+ const {
223
+ peak,
224
+ rms
225
+ } = computeLevels(captured.samples ?? []);
226
+ const sampleCount = captured.samples?.length ?? 0;
227
+ if (sampleCount === 0 || peak < 1e-4) {
228
+ setTestResult({
229
+ kind: 'silent',
230
+ samples: sampleCount,
231
+ durationMs: captured.duration_ms
232
+ });
233
+ } else {
234
+ setTestResult({
235
+ kind: 'ok',
236
+ peak,
237
+ rms,
238
+ samples: sampleCount,
239
+ durationMs: captured.duration_ms
240
+ });
241
+ }
242
+ } catch (e) {
243
+ setTestResult({
244
+ kind: 'error',
245
+ message: e instanceof Error ? e.message : String(e)
246
+ });
247
+ try {
248
+ await invokeTauri('stop_system_audio_capture');
249
+ } catch {
250
+ /* swallow */
251
+ }
252
+ } finally {
253
+ inFlightRef.current = false;
254
+ void refreshPermission();
255
+ }
256
+ }, [refreshPermission, tauriAvailable]);
257
+ const handleOpenSettings = useCallback(async () => {
258
+ if (!tauriAvailable) return;
259
+ try {
260
+ await invokeTauri('open_microphone_settings');
261
+ } catch {
262
+ /* noop */
263
+ }
264
+ }, [tauriAvailable]);
265
+ const handleRestart = useCallback(async () => {
266
+ if (!tauriAvailable) return;
267
+ try {
268
+ await invokeTauri('restart_app');
269
+ } catch {
270
+ /* process is exec'ing — nothing to do */
271
+ }
272
+ }, [tauriAvailable]);
273
+ const handleCopyTcc = useCallback(async () => {
274
+ const ok = await copyToClipboard(TCC_RESET_HINT);
275
+ if (ok) {
276
+ setTccCopied(true);
277
+ setTimeout(() => setTccCopied(false), 2000);
278
+ }
279
+ }, []);
280
+ const defaultDevice = devices.find(device => device.is_default) ?? devices[0];
281
+ const isAuthorized = permission === 'authorized' || permission === 'unsupported';
282
+ const testDisabled = !tauriAvailable || !isAuthorized || testResult.kind === 'running';
283
+ return jsxs("div", {
284
+ className: "space-y-3 pt-3 border-t border-border/50",
285
+ children: [jsxs("div", {
286
+ className: "flex items-center justify-between gap-2",
287
+ children: [jsx("h4", {
288
+ className: "text-xs font-semibold text-muted-foreground uppercase tracking-wide",
289
+ children: "Microphone Diagnostics"
290
+ }), jsx(StatusBadge, {
291
+ status: permission
292
+ })]
293
+ }), jsx("div", {
294
+ className: "rounded-md border border-border/60 bg-muted/30 p-2",
295
+ children: jsxs("div", {
296
+ className: "flex items-center justify-between gap-2",
297
+ children: [jsxs("div", {
298
+ className: "flex min-w-0 items-center gap-2",
299
+ children: [jsx(MicIcon, {
300
+ className: "w-3.5 h-3.5 shrink-0 text-muted-foreground"
301
+ }), jsxs("div", {
302
+ className: "min-w-0",
303
+ children: [jsx("div", {
304
+ className: "truncate text-xs font-medium",
305
+ children: devicesLoading ? 'Loading devices…' : defaultDevice ? defaultDevice.name : 'No input device found'
306
+ }), jsx("div", {
307
+ className: "text-[10px] text-muted-foreground",
308
+ children: devices.length > 1 ? `${devices.length} input devices · system default highlighted` : 'System default input'
309
+ })]
310
+ })]
311
+ }), jsx(Button, {
312
+ size: "icon",
313
+ variant: "ghost",
314
+ className: "h-7 w-7 shrink-0",
315
+ onClick: () => {
316
+ void refreshDevices();
317
+ void refreshPermission();
318
+ },
319
+ title: "Refresh",
320
+ disabled: !tauriAvailable,
321
+ children: jsx(RefreshCwIcon, {
322
+ className: cn('w-3.5 h-3.5', devicesLoading && 'animate-spin')
323
+ })
324
+ })]
325
+ })
326
+ }), jsxs("div", {
327
+ className: "space-y-2",
328
+ children: [jsx(Label, {
329
+ className: "text-xs font-medium",
330
+ children: "Live Mic Test"
331
+ }), jsx(Button, {
332
+ size: "sm",
333
+ variant: testResult.kind === 'ok' ? 'outline' : 'default',
334
+ onClick: () => void handleRunTest(),
335
+ disabled: testDisabled,
336
+ className: "w-full text-xs",
337
+ children: testResult.kind === 'running' ? jsxs(Fragment, {
338
+ children: [jsx(LoaderIcon, {
339
+ className: "w-3 h-3 mr-1.5 animate-spin"
340
+ }), "Listening\u2026"]
341
+ }) : jsxs(Fragment, {
342
+ children: [jsx(MicIcon, {
343
+ className: "w-3 h-3 mr-1.5"
344
+ }), testResult.kind === 'ok' || testResult.kind === 'silent' || testResult.kind === 'error' ? 'Run mic test again' : `Run mic test (${Math.round(TEST_DURATION_MS / 1000)}s)`]
345
+ })
346
+ }), jsx(TestResultView, {
347
+ result: testResult
348
+ }), !isAuthorized && permission && jsx("p", {
349
+ className: "text-[10px] text-muted-foreground",
350
+ children: "Grant microphone access below before running the test."
351
+ })]
352
+ }), jsxs("div", {
353
+ className: "grid grid-cols-2 gap-2",
354
+ children: [jsxs(Button, {
355
+ size: "sm",
356
+ variant: "outline",
357
+ onClick: () => void handleOpenSettings(),
358
+ disabled: !tauriAvailable,
359
+ className: "text-xs",
360
+ children: [jsx(SettingsIcon, {
361
+ className: "w-3 h-3 mr-1.5"
362
+ }), "Open System Settings"]
363
+ }), jsxs(Button, {
364
+ size: "sm",
365
+ variant: "outline",
366
+ onClick: () => void handleRestart(),
367
+ disabled: !tauriAvailable,
368
+ className: "text-xs",
369
+ children: [jsx(RotateCcwIcon, {
370
+ className: "w-3 h-3 mr-1.5"
371
+ }), "Restart App"]
372
+ })]
373
+ }), jsxs("div", {
374
+ className: "rounded-md border border-border/60 bg-muted/30 p-2 space-y-1.5",
375
+ children: [jsx("div", {
376
+ className: "text-[11px] font-medium",
377
+ children: "Still no signal after granting?"
378
+ }), jsx("p", {
379
+ className: "text-[10px] text-muted-foreground leading-relaxed",
380
+ children: "Dev builds and signed installs have separate TCC entries. Reset the entry for this bundle in a terminal, then restart the app to re-prompt:"
381
+ }), jsxs("div", {
382
+ className: "flex items-center gap-1.5",
383
+ children: [jsx("code", {
384
+ className: "flex-1 truncate rounded bg-background border border-border px-1.5 py-1 text-[10px] font-mono",
385
+ children: TCC_RESET_HINT
386
+ }), jsx(Button, {
387
+ size: "sm",
388
+ variant: "ghost",
389
+ className: "h-7 px-2 text-[10px]",
390
+ onClick: () => void handleCopyTcc(),
391
+ children: tccCopied ? 'Copied' : 'Copy'
392
+ })]
393
+ })]
394
+ })]
395
+ });
396
+ }export{MicrophoneDiagnostics};//# sourceMappingURL=MicrophoneDiagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MicrophoneDiagnostics.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ interface ModeSwitcherProps {
2
+ isVadMode: boolean;
3
+ onModeChange: (vadEnabled: boolean) => void;
4
+ disabled?: boolean;
5
+ }
6
+ export declare const ModeSwitcher: ({ isVadMode, onModeChange, disabled }: ModeSwitcherProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=ModeSwitcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModeSwitcher.d.ts","sourceRoot":"","sources":["../../../../../src/components/AIToolbar/components/speech/ModeSwitcher.tsx"],"names":[],"mappings":"AAGA,UAAU,iBAAiB;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,GAAI,uCAA+C,iBAAiB,4CA4C5F,CAAC"}