@admin-layout/tailwind-ui 12.2.4-alpha.1 → 12.2.4-alpha.103

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 (445) 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 +65 -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 +20 -0
  179. package/lib/components/ErrorHandlers/SPAErrorBoundary.d.ts.map +1 -0
  180. package/lib/components/ErrorHandlers/SPAErrorBoundary.js +275 -0
  181. package/lib/components/ErrorHandlers/SPAErrorBoundary.js.map +1 -0
  182. package/lib/components/ErrorHandlers/index.d.ts +1 -0
  183. package/lib/components/ErrorHandlers/index.d.ts.map +1 -1
  184. package/lib/components/ErrorPages/403.d.ts +1 -2
  185. package/lib/components/ErrorPages/403.d.ts.map +1 -1
  186. package/lib/components/ErrorPages/403.js +27 -18
  187. package/lib/components/ErrorPages/403.js.map +1 -1
  188. package/lib/components/ErrorPages/404.d.ts +1 -2
  189. package/lib/components/ErrorPages/404.d.ts.map +1 -1
  190. package/lib/components/ErrorPages/404.js +27 -18
  191. package/lib/components/ErrorPages/404.js.map +1 -1
  192. package/lib/components/ErrorPages/500.d.ts +1 -2
  193. package/lib/components/ErrorPages/500.d.ts.map +1 -1
  194. package/lib/components/ErrorPages/500.js +27 -18
  195. package/lib/components/ErrorPages/500.js.map +1 -1
  196. package/lib/components/ErrorPages/useErrorAsset.d.ts +11 -0
  197. package/lib/components/ErrorPages/useErrorAsset.d.ts.map +1 -0
  198. package/lib/components/ErrorPages/useErrorAsset.js +24 -0
  199. package/lib/components/ErrorPages/useErrorAsset.js.map +1 -0
  200. package/lib/components/Inbox/Channels/ChannelBar.d.ts +33 -0
  201. package/lib/components/Inbox/Channels/ChannelBar.d.ts.map +1 -0
  202. package/lib/components/Inbox/Channels/ChannelBar.js +79 -0
  203. package/lib/components/Inbox/Channels/ChannelBar.js.map +1 -0
  204. package/lib/components/Inbox/Channels/ChannelConnectModal.d.ts +24 -0
  205. package/lib/components/Inbox/Channels/ChannelConnectModal.d.ts.map +1 -0
  206. package/lib/components/Inbox/Channels/ChannelConnectModal.js +177 -0
  207. package/lib/components/Inbox/Channels/ChannelConnectModal.js.map +1 -0
  208. package/lib/components/Inbox/Channels/channelsMeta.d.ts +16 -0
  209. package/lib/components/Inbox/Channels/channelsMeta.d.ts.map +1 -0
  210. package/lib/components/Inbox/Channels/channelsMeta.js +127 -0
  211. package/lib/components/Inbox/Channels/channelsMeta.js.map +1 -0
  212. package/lib/components/Inbox/Channels/index.d.ts +7 -0
  213. package/lib/components/Inbox/Channels/index.d.ts.map +1 -0
  214. package/lib/components/Inbox/index.d.ts +2 -0
  215. package/lib/components/Inbox/index.d.ts.map +1 -0
  216. package/lib/components/InputToolBar/InputToolBar.d.ts +8 -0
  217. package/lib/components/InputToolBar/InputToolBar.d.ts.map +1 -0
  218. package/lib/components/InputToolBar/InputToolBar.js +540 -0
  219. package/lib/components/InputToolBar/InputToolBar.js.map +1 -0
  220. package/lib/components/InputToolBar/defaults.d.ts +15 -0
  221. package/lib/components/InputToolBar/defaults.d.ts.map +1 -0
  222. package/lib/components/InputToolBar/defaults.js +60 -0
  223. package/lib/components/InputToolBar/defaults.js.map +1 -0
  224. package/lib/components/InputToolBar/index.d.ts +5 -0
  225. package/lib/components/InputToolBar/index.d.ts.map +1 -0
  226. package/lib/components/InputToolBar/types.d.ts +158 -0
  227. package/lib/components/InputToolBar/types.d.ts.map +1 -0
  228. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.d.ts +1 -2
  229. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.d.ts.map +1 -1
  230. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.js +30 -21
  231. package/lib/components/LanguageMenuDropdown/LanguageMenuDropdown.js.map +1 -1
  232. package/lib/components/Markdown/MarkdownBreadcrumbs.d.ts +13 -0
  233. package/lib/components/Markdown/MarkdownBreadcrumbs.d.ts.map +1 -0
  234. package/lib/components/Markdown/MarkdownBreadcrumbs.js +34 -0
  235. package/lib/components/Markdown/MarkdownBreadcrumbs.js.map +1 -0
  236. package/lib/components/Markdown/MarkdownCopyButton.d.ts +10 -0
  237. package/lib/components/Markdown/MarkdownCopyButton.d.ts.map +1 -0
  238. package/lib/components/Markdown/MarkdownCopyButton.js +229 -0
  239. package/lib/components/Markdown/MarkdownCopyButton.js.map +1 -0
  240. package/lib/components/Markdown/MarkdownHeader.d.ts +13 -0
  241. package/lib/components/Markdown/MarkdownHeader.d.ts.map +1 -0
  242. package/lib/components/Markdown/MarkdownHeader.js +44 -0
  243. package/lib/components/Markdown/MarkdownHeader.js.map +1 -0
  244. package/lib/components/Markdown/MarkdownNavigation.d.ts +15 -0
  245. package/lib/components/Markdown/MarkdownNavigation.d.ts.map +1 -0
  246. package/lib/components/Markdown/MarkdownNavigation.js +38 -0
  247. package/lib/components/Markdown/MarkdownNavigation.js.map +1 -0
  248. package/lib/components/Markdown/MarkdownPage.d.ts +41 -0
  249. package/lib/components/Markdown/MarkdownPage.d.ts.map +1 -0
  250. package/lib/components/Markdown/MarkdownPage.js +238 -0
  251. package/lib/components/Markdown/MarkdownPage.js.map +1 -0
  252. package/lib/components/Markdown/MarkdownTableOfContents.d.ts +15 -0
  253. package/lib/components/Markdown/MarkdownTableOfContents.d.ts.map +1 -0
  254. package/lib/components/Markdown/MarkdownTableOfContents.js +57 -0
  255. package/lib/components/Markdown/MarkdownTableOfContents.js.map +1 -0
  256. package/lib/components/Markdown/index.d.ts +7 -0
  257. package/lib/components/Markdown/index.d.ts.map +1 -0
  258. package/lib/components/OTP/OTPInput.js +32 -30
  259. package/lib/components/OTP/OTPInput.js.map +1 -1
  260. package/lib/components/OTP/OTPVerification.js +75 -55
  261. package/lib/components/OTP/OTPVerification.js.map +1 -1
  262. package/lib/components/OTP/SingleInput.d.ts +1 -1
  263. package/lib/components/OTP/SingleInput.js +2 -2
  264. package/lib/components/OTP/SingleInput.js.map +1 -1
  265. package/lib/components/PageContainer/PageContainer.js +29 -22
  266. package/lib/components/PageContainer/PageContainer.js.map +1 -1
  267. package/lib/components/PageLoading/index.js +8 -7
  268. package/lib/components/PageLoading/index.js.map +1 -1
  269. package/lib/components/RJSFPreview/PreviewAsyncDropdown.d.ts +1 -2
  270. package/lib/components/RJSFPreview/PreviewAsyncDropdown.d.ts.map +1 -1
  271. package/lib/components/ReactTable/Table.d.ts +1 -2
  272. package/lib/components/ReactTable/Table.d.ts.map +1 -1
  273. package/lib/components/ReactTable/Table.js +92 -71
  274. package/lib/components/ReactTable/Table.js.map +1 -1
  275. package/lib/components/ReactTable/TableFilters.d.ts +2 -3
  276. package/lib/components/ReactTable/TableFilters.d.ts.map +1 -1
  277. package/lib/components/ReactTable/TableFilters.js +40 -34
  278. package/lib/components/ReactTable/TableFilters.js.map +1 -1
  279. package/lib/components/Search/SearchInput.d.ts +1 -2
  280. package/lib/components/Search/SearchInput.d.ts.map +1 -1
  281. package/lib/components/Search/SearchInput.js +14 -13
  282. package/lib/components/Search/SearchInput.js.map +1 -1
  283. package/lib/components/Select/Select.d.ts +6 -6
  284. package/lib/components/Select/Select.d.ts.map +1 -1
  285. package/lib/components/Select/Select.js +60 -45
  286. package/lib/components/Select/Select.js.map +1 -1
  287. package/lib/components/Spin/index.js +14 -11
  288. package/lib/components/Spin/index.js.map +1 -1
  289. package/lib/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  290. package/lib/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  291. package/lib/components/ThemeProvider/ThemeProvider.js +29 -17
  292. package/lib/components/ThemeProvider/ThemeProvider.js.map +1 -1
  293. package/lib/components/ThemeProvider/ThemeToggle.js +28 -25
  294. package/lib/components/ThemeProvider/ThemeToggle.js.map +1 -1
  295. package/lib/components/ThemeProvider/types.d.ts +3 -3
  296. package/lib/components/ThemeProvider/types.d.ts.map +1 -1
  297. package/lib/components/YantraIcon.d.ts +6 -0
  298. package/lib/components/YantraIcon.d.ts.map +1 -0
  299. package/lib/components/YantraIcon.js +32 -0
  300. package/lib/components/YantraIcon.js.map +1 -0
  301. package/lib/components/index.d.ts +8 -0
  302. package/lib/components/index.d.ts.map +1 -1
  303. package/lib/hooks/activeCharacterPreference.d.ts +25 -0
  304. package/lib/hooks/activeCharacterPreference.d.ts.map +1 -0
  305. package/lib/hooks/activeCharacterPreference.js +71 -0
  306. package/lib/hooks/activeCharacterPreference.js.map +1 -0
  307. package/lib/hooks/characterOverrides.d.ts +29 -0
  308. package/lib/hooks/characterOverrides.d.ts.map +1 -0
  309. package/lib/hooks/characterOverrides.js +130 -0
  310. package/lib/hooks/characterOverrides.js.map +1 -0
  311. package/lib/hooks/characterSlotsPreference.d.ts +33 -0
  312. package/lib/hooks/characterSlotsPreference.d.ts.map +1 -0
  313. package/lib/hooks/characterSlotsPreference.js +141 -0
  314. package/lib/hooks/characterSlotsPreference.js.map +1 -0
  315. package/lib/hooks/index.d.ts +4 -0
  316. package/lib/hooks/index.d.ts.map +1 -1
  317. package/lib/hooks/useGlobalShortcutBridge.d.ts +21 -0
  318. package/lib/hooks/useGlobalShortcutBridge.d.ts.map +1 -0
  319. package/lib/hooks/useGlobalShortcutBridge.js +68 -0
  320. package/lib/hooks/useGlobalShortcutBridge.js.map +1 -0
  321. package/lib/hooks/useToast.d.ts +1 -1
  322. package/lib/hooks/useToast.d.ts.map +1 -1
  323. package/lib/hooks/useToast.js +46 -37
  324. package/lib/hooks/useToast.js.map +1 -1
  325. package/lib/index.js +1 -1
  326. package/lib/shardui/accordion.js +20 -16
  327. package/lib/shardui/accordion.js.map +1 -1
  328. package/lib/shardui/alert-dialog.d.ts +2 -2
  329. package/lib/shardui/alert-dialog.js +15 -13
  330. package/lib/shardui/alert-dialog.js.map +1 -1
  331. package/lib/shardui/alert.js +4 -4
  332. package/lib/shardui/alert.js.map +1 -1
  333. package/lib/shardui/avatar.js +4 -4
  334. package/lib/shardui/avatar.js.map +1 -1
  335. package/lib/shardui/badge.d.ts +1 -1
  336. package/lib/shardui/badge.d.ts.map +1 -1
  337. package/lib/shardui/badge.js +2 -2
  338. package/lib/shardui/badge.js.map +1 -1
  339. package/lib/shardui/breadcrumb.d.ts +2 -2
  340. package/lib/shardui/breadcrumb.js +19 -16
  341. package/lib/shardui/breadcrumb.js.map +1 -1
  342. package/lib/shardui/button.js +2 -2
  343. package/lib/shardui/button.js.map +1 -1
  344. package/lib/shardui/calendar.d.ts +1 -1
  345. package/lib/shardui/calendar.d.ts.map +1 -1
  346. package/lib/shardui/calendar.js +4 -4
  347. package/lib/shardui/card.js +7 -7
  348. package/lib/shardui/card.js.map +1 -1
  349. package/lib/shardui/carousel.js +40 -33
  350. package/lib/shardui/carousel.js.map +1 -1
  351. package/lib/shardui/chart.d.ts +1 -1
  352. package/lib/shardui/chart.d.ts.map +1 -1
  353. package/lib/shardui/chart.js +81 -66
  354. package/lib/shardui/chart.js.map +1 -1
  355. package/lib/shardui/checkbox.js +10 -8
  356. package/lib/shardui/checkbox.js.map +1 -1
  357. package/lib/shardui/command.d.ts +3 -3
  358. package/lib/shardui/command.d.ts.map +1 -1
  359. package/lib/shardui/command.js +28 -24
  360. package/lib/shardui/command.js.map +1 -1
  361. package/lib/shardui/context-menu.d.ts +1 -1
  362. package/lib/shardui/context-menu.js +41 -30
  363. package/lib/shardui/context-menu.js.map +1 -1
  364. package/lib/shardui/dialog.d.ts +2 -2
  365. package/lib/shardui/dialog.js +22 -17
  366. package/lib/shardui/dialog.js.map +1 -1
  367. package/lib/shardui/drawer.d.ts +3 -3
  368. package/lib/shardui/drawer.js +17 -14
  369. package/lib/shardui/drawer.js.map +1 -1
  370. package/lib/shardui/dropdown-menu.d.ts +1 -1
  371. package/lib/shardui/dropdown-menu.js +42 -31
  372. package/lib/shardui/dropdown-menu.js.map +1 -1
  373. package/lib/shardui/form.d.ts +1 -1
  374. package/lib/shardui/form.d.ts.map +1 -1
  375. package/lib/shardui/form.js +22 -19
  376. package/lib/shardui/form.js.map +1 -1
  377. package/lib/shardui/hover-card.js +2 -2
  378. package/lib/shardui/hover-card.js.map +1 -1
  379. package/lib/shardui/input-otp.d.ts +2 -2
  380. package/lib/shardui/input-otp.js +16 -13
  381. package/lib/shardui/input-otp.js.map +1 -1
  382. package/lib/shardui/input.js +2 -2
  383. package/lib/shardui/input.js.map +1 -1
  384. package/lib/shardui/label.js +2 -2
  385. package/lib/shardui/label.js.map +1 -1
  386. package/lib/shardui/menubar.d.ts +1 -1
  387. package/lib/shardui/menubar.js +46 -35
  388. package/lib/shardui/menubar.js.map +1 -1
  389. package/lib/shardui/navigation-menu.js +28 -24
  390. package/lib/shardui/navigation-menu.js.map +1 -1
  391. package/lib/shardui/pagination.d.ts +5 -5
  392. package/lib/shardui/pagination.js +30 -22
  393. package/lib/shardui/pagination.js.map +1 -1
  394. package/lib/shardui/popover.js +10 -8
  395. package/lib/shardui/popover.js.map +1 -1
  396. package/lib/shardui/progress.js +10 -9
  397. package/lib/shardui/progress.js.map +1 -1
  398. package/lib/shardui/radio-group.js +11 -9
  399. package/lib/shardui/radio-group.js.map +1 -1
  400. package/lib/shardui/resizable.d.ts +3 -3
  401. package/lib/shardui/resizable.d.ts.map +1 -1
  402. package/lib/shardui/resizable.js +11 -9
  403. package/lib/shardui/resizable.js.map +1 -1
  404. package/lib/shardui/scroll-area.js +14 -11
  405. package/lib/shardui/scroll-area.js.map +1 -1
  406. package/lib/shardui/select.js +49 -35
  407. package/lib/shardui/select.js.map +1 -1
  408. package/lib/shardui/separator.js +2 -2
  409. package/lib/shardui/separator.js.map +1 -1
  410. package/lib/shardui/sheet.d.ts +2 -2
  411. package/lib/shardui/sheet.js +24 -19
  412. package/lib/shardui/sheet.js.map +1 -1
  413. package/lib/shardui/sidebar.js +104 -88
  414. package/lib/shardui/sidebar.js.map +1 -1
  415. package/lib/shardui/skeleton.d.ts +1 -1
  416. package/lib/shardui/skeleton.d.ts.map +1 -1
  417. package/lib/shardui/skeleton.js +2 -2
  418. package/lib/shardui/skeleton.js.map +1 -1
  419. package/lib/shardui/slider.js +12 -10
  420. package/lib/shardui/slider.js.map +1 -1
  421. package/lib/shardui/sonner.d.ts +1 -1
  422. package/lib/shardui/sonner.d.ts.map +1 -1
  423. package/lib/shardui/sonner.js +2 -2
  424. package/lib/shardui/sonner.js.map +1 -1
  425. package/lib/shardui/switch.js +7 -6
  426. package/lib/shardui/switch.js.map +1 -1
  427. package/lib/shardui/table.js +16 -15
  428. package/lib/shardui/table.js.map +1 -1
  429. package/lib/shardui/tabs.js +4 -4
  430. package/lib/shardui/tabs.js.map +1 -1
  431. package/lib/shardui/textarea.js +2 -2
  432. package/lib/shardui/textarea.js.map +1 -1
  433. package/lib/shardui/toast.js +12 -11
  434. package/lib/shardui/toast.js.map +1 -1
  435. package/lib/shardui/toaster.d.ts +1 -2
  436. package/lib/shardui/toaster.d.ts.map +1 -1
  437. package/lib/shardui/toaster.js +21 -14
  438. package/lib/shardui/toaster.js.map +1 -1
  439. package/lib/shardui/toggle-group.js +15 -12
  440. package/lib/shardui/toggle-group.js.map +1 -1
  441. package/lib/shardui/toggle.js +2 -2
  442. package/lib/shardui/toggle.js.map +1 -1
  443. package/lib/shardui/tooltip.js +2 -2
  444. package/lib/shardui/tooltip.js.map +1 -1
  445. package/package.json +13 -6
@@ -0,0 +1,540 @@
1
+ import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {Lightbulb,Zap,Search,Mic,Paperclip,Image,Camera,WandSparkles,Settings,X,Layout,Check,Plus,ArrowUpRight,StopCircle}from'lucide-react';import React__default,{useState,useMemo}from'react';import'../../utils/isBrowser/index.js';import {cn}from'../../utils/util.js';import'fast-deep-equal/react.js';const iconSize = 'h-3.5 w-3.5';
2
+ const iconSizeRight = 'h-4 w-4';
3
+ const defaultLeftIconMap = {
4
+ search: jsx(Search, {
5
+ className: iconSize
6
+ }),
7
+ zap: jsx(Zap, {
8
+ className: iconSize
9
+ }),
10
+ lightbulb: jsx(Lightbulb, {
11
+ className: iconSize
12
+ }),
13
+ template: null // template is rendered as pill, not in icon group
14
+ };
15
+ const defaultRightIconMap = {
16
+ projectSettings: jsx(Settings, {
17
+ className: iconSizeRight
18
+ }),
19
+ tag: jsx(WandSparkles, {
20
+ className: iconSizeRight
21
+ }),
22
+ chip: jsxs("svg", {
23
+ className: iconSizeRight,
24
+ viewBox: "0 0 24 24",
25
+ fill: "none",
26
+ stroke: "currentColor",
27
+ strokeWidth: "2",
28
+ strokeLinecap: "round",
29
+ strokeLinejoin: "round",
30
+ "aria-hidden": true,
31
+ children: [jsx("rect", {
32
+ x: "4",
33
+ y: "4",
34
+ width: "16",
35
+ height: "16",
36
+ rx: "2",
37
+ ry: "2"
38
+ }), jsx("line", {
39
+ x1: "9",
40
+ y1: "9",
41
+ x2: "15",
42
+ y2: "9"
43
+ }), jsx("line", {
44
+ x1: "9",
45
+ y1: "15",
46
+ x2: "15",
47
+ y2: "15"
48
+ }), jsx("line", {
49
+ x1: "9",
50
+ y1: "9",
51
+ x2: "9",
52
+ y2: "15"
53
+ }), jsx("line", {
54
+ x1: "15",
55
+ y1: "9",
56
+ x2: "15",
57
+ y2: "15"
58
+ })]
59
+ }),
60
+ camera: jsx(Camera, {
61
+ className: iconSizeRight
62
+ }),
63
+ image: jsx(Image, {
64
+ className: iconSizeRight
65
+ }),
66
+ attach: jsx(Paperclip, {
67
+ className: iconSizeRight
68
+ }),
69
+ mic: jsx(Mic, {
70
+ className: iconSizeRight
71
+ })
72
+ };
73
+ /** Stop while loading, otherwise Send (content) or Mic. With `steerable` the Send/Mic button stays
74
+ * mounted to the left of Stop so another turn can be queued mid-response — Stop owns the rightmost
75
+ * slot whenever it is shown, since stopping is the primary action mid-response. */
76
+ function MicSendButton({
77
+ hasContent,
78
+ onSend,
79
+ onMic,
80
+ disabled,
81
+ isLoading,
82
+ onStop,
83
+ steerable,
84
+ className
85
+ }) {
86
+ const isStop = isLoading === true;
87
+ const shell = 'inline-flex h-7 w-7 items-center justify-center rounded-2xl transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none';
88
+ const filled = 'bg-primary text-primary-foreground hover:bg-primary/90 active:bg-primary border border-primary';
89
+ // Paired with Stop, Send/Mic steps back to a quiet variant so the two do not compete as primary.
90
+ const quiet = 'bg-secondary/70 text-foreground hover:bg-secondary active:bg-secondary border border-border';
91
+ const sendLabel = hasContent ? 'Send' : 'Start voice input';
92
+ return jsxs(Fragment, {
93
+ children: [(!isStop || steerable === true) && jsx("button", {
94
+ type: "button",
95
+ "aria-label": sendLabel,
96
+ title: sendLabel,
97
+ onClick: hasContent ? onSend : onMic,
98
+ disabled: disabled,
99
+ className: cn(shell, isStop ? quiet : filled, className),
100
+ children: hasContent ? jsx(ArrowUpRight, {
101
+ className: iconSizeRight
102
+ }) : jsx(Mic, {
103
+ className: iconSizeRight
104
+ })
105
+ }), isStop && jsx("button", {
106
+ type: "button",
107
+ "aria-label": "Stop",
108
+ title: "Stop",
109
+ onClick: onStop,
110
+ className: cn(shell, filled, className),
111
+ children: jsx(StopCircle, {
112
+ className: iconSizeRight
113
+ })
114
+ })]
115
+ });
116
+ }
117
+ function ToolbarIconButton({
118
+ item,
119
+ getDefaultIcon,
120
+ isLeftGroup,
121
+ classNames
122
+ }) {
123
+ if (item.enabled === false) return null;
124
+ const icon = item.customButton ?? item.icon ?? getDefaultIcon(item.id);
125
+ if (item.customButton) {
126
+ return jsx(Fragment, {
127
+ children: item.customButton
128
+ });
129
+ }
130
+ const isDisabled = item.disabled === true || item.loading === true;
131
+ const isActive = item.active === true;
132
+ const base = 'inline-flex h-7 w-7 items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:opacity-50 disabled:pointer-events-none';
133
+ const leftVariant = isActive ? cn('rounded-full border border-primary bg-primary text-primary-foreground hover:bg-primary/90', classNames?.leftButtonActive) : cn('rounded-full border border-border bg-muted/50 text-foreground hover:border-primary hover:bg-muted hover:text-primary', classNames?.leftButtonInactive);
134
+ const rightVariantDisabled = cn('rounded-2xl text-muted-foreground/50 cursor-not-allowed disabled:pointer-events-auto', classNames?.rightButtonDisabled);
135
+ const rightVariantActive = cn('rounded-2xl text-primary hover:bg-secondary border border-transparent', classNames?.rightButtonActive);
136
+ const rightVariantDefault = cn('rounded-2xl text-muted-foreground hover:bg-secondary/70 active:bg-secondary border border-transparent', classNames?.rightButton);
137
+ const rightVariant = isDisabled ? rightVariantDisabled : isActive ? rightVariantActive : rightVariantDefault;
138
+ return jsx("button", {
139
+ type: "button",
140
+ "aria-label": item.label,
141
+ title: item.label,
142
+ onClick: item.onClick,
143
+ disabled: isDisabled,
144
+ className: cn(base, isLeftGroup ? leftVariant : rightVariant),
145
+ children: item.loading ? jsx("div", {
146
+ className: "h-4 w-4 animate-spin rounded-full border-2 border-primary border-t-transparent",
147
+ "aria-hidden": true
148
+ }) : icon
149
+ });
150
+ }
151
+ function LeftSection({
152
+ leftItems,
153
+ templateButton,
154
+ leftCustomRender,
155
+ classNames
156
+ }) {
157
+ if (leftCustomRender != null) {
158
+ return jsx("div", {
159
+ className: cn('flex items-center gap-2', classNames?.leftGroup),
160
+ children: leftCustomRender
161
+ });
162
+ }
163
+ const left = leftItems ?? [];
164
+ const leftEnabled = left.filter(item => item.enabled !== false);
165
+ const hasTemplate = templateButton != null;
166
+ const hasLeft = leftEnabled.length > 0 || hasTemplate;
167
+ if (!hasLeft) return null;
168
+ return jsxs("div", {
169
+ className: cn('flex items-center gap-2', classNames?.leftGroup),
170
+ children: [leftEnabled.length > 0 && jsx("div", {
171
+ className: "flex items-center gap-1 rounded-full bg-secondary px-2 py-1",
172
+ children: leftEnabled.map((item, index) => jsxs(React__default.Fragment, {
173
+ children: [jsx(ToolbarIconButton, {
174
+ item: item,
175
+ getDefaultIcon: id => defaultLeftIconMap[id] ?? null,
176
+ isLeftGroup: true,
177
+ classNames: classNames
178
+ }), index < leftEnabled.length - 1 && jsx("span", {
179
+ "aria-hidden": "true",
180
+ className: "mx-1 h-5 w-px bg-border/70"
181
+ })]
182
+ }, item.id))
183
+ }), hasTemplate && jsx(TemplatePill, {
184
+ label: templateButton.label,
185
+ count: templateButton.count,
186
+ selectedLabel: templateButton.selectedLabel,
187
+ onClick: templateButton.onClick,
188
+ onClearTemplate: templateButton.onClearTemplate,
189
+ disabled: templateButton.disabled,
190
+ classNames: classNames
191
+ })]
192
+ });
193
+ }
194
+ function TemplatePill({
195
+ label,
196
+ count,
197
+ selectedLabel,
198
+ onClick,
199
+ onClearTemplate,
200
+ disabled,
201
+ classNames
202
+ }) {
203
+ if (selectedLabel) {
204
+ return jsxs("div", {
205
+ className: cn('flex items-center gap-1 px-2 py-1 rounded-full bg-primary/10 text-primary text-xs font-medium border border-primary/20', classNames?.templatePillSelected),
206
+ children: [jsx("span", {
207
+ className: "truncate max-w-[120px]",
208
+ title: selectedLabel,
209
+ children: selectedLabel
210
+ }), jsx("button", {
211
+ type: "button",
212
+ onClick: onClearTemplate,
213
+ className: "ml-1 hover:bg-primary/20 rounded-full p-0.5 transition-colors",
214
+ "aria-label": "Remove template",
215
+ disabled: disabled,
216
+ children: jsx(X, {
217
+ className: "h-3 w-3"
218
+ })
219
+ }), jsx("button", {
220
+ type: "button",
221
+ onClick: onClick,
222
+ className: "ml-1 hover:bg-primary/20 rounded-full p-0.5 transition-colors text-[10px]",
223
+ "aria-label": "Change template",
224
+ disabled: disabled,
225
+ children: "\u25BC"
226
+ })]
227
+ });
228
+ }
229
+ const text = count != null && count > 0 ? `${label} (${count})` : label;
230
+ return jsx("button", {
231
+ type: "button",
232
+ onClick: onClick,
233
+ disabled: disabled,
234
+ className: cn('flex items-center gap-1 rounded-full border border-border bg-muted/50 px-2 py-1 text-xs font-medium text-foreground transition-colors hover:border-primary hover:bg-primary/5', disabled && 'opacity-50 cursor-not-allowed' || '', classNames?.templatePill),
235
+ "aria-label": "Select template",
236
+ children: text
237
+ });
238
+ }
239
+ const getRightIcon = id => defaultRightIconMap[id] ?? null;
240
+ /** Below `lg`, the right action cluster collapses into this "+" button → popover. Send/mic stays inline. */
241
+ function RightOverflowMenu({
242
+ items,
243
+ classNames
244
+ }) {
245
+ const [open, setOpen] = useState(false);
246
+ return jsxs("div", {
247
+ className: "relative",
248
+ children: [jsx("button", {
249
+ type: "button",
250
+ "aria-label": "More actions",
251
+ "aria-haspopup": "menu",
252
+ "aria-expanded": open,
253
+ onClick: () => setOpen(o => !o),
254
+ className: "inline-flex h-7 w-7 items-center justify-center rounded-2xl border border-transparent text-muted-foreground transition-colors hover:bg-secondary/70 active:bg-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
255
+ children: jsx(Plus, {
256
+ className: cn('h-4 w-4 transition-transform duration-200', open && 'rotate-45')
257
+ })
258
+ }), open && jsxs(Fragment, {
259
+ children: [jsx("button", {
260
+ type: "button",
261
+ "aria-hidden": true,
262
+ tabIndex: -1,
263
+ className: "fixed inset-0 z-40 cursor-default",
264
+ onClick: () => setOpen(false)
265
+ }), jsx("div", {
266
+ role: "menu",
267
+ className: "absolute bottom-full right-0 z-50 mb-2 flex w-56 flex-col gap-0.5 rounded-2xl border border-border bg-card p-1.5 text-foreground shadow-lg",
268
+ children: items.map(item => jsxs("div", {
269
+ role: "menuitem",
270
+ // ponytail: row click forwards to the inner button so the whole row is a hit
271
+ // target — without nesting <button> in <button> (customButton items render their own).
272
+ onClick: e => {
273
+ if (e.target.closest('button')) return;
274
+ e.currentTarget.querySelector('button')?.click();
275
+ },
276
+ className: "flex cursor-pointer items-center gap-2.5 rounded-xl px-1.5 py-1 hover:bg-secondary/60",
277
+ children: [jsx(ToolbarIconButton, {
278
+ item: item,
279
+ getDefaultIcon: getRightIcon,
280
+ classNames: classNames
281
+ }), jsx("span", {
282
+ className: "truncate text-sm",
283
+ children: item.menuLabel ?? item.label
284
+ })]
285
+ }, item.id))
286
+ })]
287
+ })]
288
+ });
289
+ }
290
+ function RightSection({
291
+ rightItems,
292
+ rightCustomRender,
293
+ micSendButton,
294
+ classNames
295
+ }) {
296
+ if (rightCustomRender != null) {
297
+ return jsx("div", {
298
+ className: "flex items-center gap-1",
299
+ children: rightCustomRender
300
+ });
301
+ }
302
+ const right = rightItems ?? [];
303
+ const rightEnabled = right.filter(item => item.enabled !== false);
304
+ const filteredRight = micSendButton != null ? rightEnabled.filter(item => item.id !== 'mic') : rightEnabled;
305
+ const hasRight = filteredRight.length > 0 || micSendButton != null;
306
+ if (!hasRight) return null;
307
+ return jsxs("div", {
308
+ className: "flex items-center gap-1.5 md:gap-2 text-muted-foreground",
309
+ children: [filteredRight.length > 0 && jsxs(Fragment, {
310
+ children: [jsx("div", {
311
+ className: "hidden items-center gap-1.5 md:gap-2 lg:flex",
312
+ children: filteredRight.map(item => jsx(ToolbarIconButton, {
313
+ item: item,
314
+ getDefaultIcon: getRightIcon,
315
+ classNames: classNames
316
+ }, item.id))
317
+ }), jsx("div", {
318
+ className: "lg:hidden",
319
+ children: jsx(RightOverflowMenu, {
320
+ items: filteredRight,
321
+ classNames: classNames
322
+ })
323
+ })]
324
+ }), micSendButton != null && jsx(MicSendButton, {
325
+ ...micSendButton,
326
+ className: classNames?.micSendButton
327
+ })]
328
+ });
329
+ }
330
+ const defaultTextareaClassName = 'w-full outline-none border-none ring-0 focus:outline-none focus:ring-0 bg-transparent text-base text-foreground placeholder:text-muted-foreground disabled:opacity-50 resize-none overflow-y-auto max-h-[30vh] [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]';
331
+ function DefaultTemplateModal({
332
+ isOpen,
333
+ onClose,
334
+ templates,
335
+ selectedId,
336
+ onSelect,
337
+ suggestedId,
338
+ title = 'Choose Template',
339
+ modalClassName
340
+ }) {
341
+ const [searchQuery, setSearchQuery] = useState('');
342
+ const [categoryFilter, setCategoryFilter] = useState('All');
343
+ const categories = useMemo(() => {
344
+ const cats = new Set(templates.map(t => t.category || 'Other'));
345
+ return ['All', ...Array.from(cats).sort()];
346
+ }, [templates]);
347
+ const filteredTemplates = useMemo(() => {
348
+ return templates.filter(template => {
349
+ const searchLower = searchQuery.toLowerCase();
350
+ const matchesSearch = !searchQuery || template.label.toLowerCase().includes(searchLower) || (template.description || '').toLowerCase().includes(searchLower);
351
+ const matchesCategory = categoryFilter === 'All' || template.category === categoryFilter;
352
+ return matchesSearch && matchesCategory;
353
+ });
354
+ }, [templates, searchQuery, categoryFilter]);
355
+ if (!isOpen) return null;
356
+ function handleBackdropClick(e) {
357
+ if (e.target === e.currentTarget) onClose();
358
+ }
359
+ return jsx("div", {
360
+ className: "fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm p-4",
361
+ onClick: handleBackdropClick,
362
+ children: jsxs("div", {
363
+ className: cn('bg-card w-full max-w-[720px] max-h-[80vh] rounded-xl flex flex-col overflow-hidden border border-border shadow-xl', modalClassName),
364
+ children: [jsxs("div", {
365
+ className: "h-12 px-4 border-b border-border flex items-center justify-between shrink-0",
366
+ children: [jsx("h2", {
367
+ className: "text-sm font-semibold text-foreground",
368
+ children: title
369
+ }), jsx("button", {
370
+ type: "button",
371
+ onClick: onClose,
372
+ className: "p-1.5 rounded-lg hover:bg-accent text-muted-foreground transition-colors focus:outline-none focus:ring-2 focus:ring-ring",
373
+ "aria-label": "Close",
374
+ children: jsx(X, {
375
+ className: "h-4 w-4"
376
+ })
377
+ })]
378
+ }), jsxs("div", {
379
+ className: "p-4 border-b border-border space-y-3",
380
+ children: [jsxs("div", {
381
+ className: "relative",
382
+ children: [jsx(Search, {
383
+ className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"
384
+ }), jsx("input", {
385
+ type: "text",
386
+ placeholder: "Search templates...",
387
+ value: searchQuery,
388
+ onChange: e => setSearchQuery(e.target.value),
389
+ className: "w-full pl-9 pr-3 py-2 border border-border rounded-lg bg-muted text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring"
390
+ })]
391
+ }), jsx("div", {
392
+ className: "flex gap-1.5 flex-wrap",
393
+ children: categories.map(category => jsx("button", {
394
+ type: "button",
395
+ onClick: () => setCategoryFilter(category),
396
+ className: cn('px-2.5 py-1 rounded-md text-xs font-medium transition-colors border', categoryFilter === category ? 'bg-primary/10 text-primary border-primary/20' : 'bg-card text-muted-foreground border-border hover:bg-muted hover:text-foreground'),
397
+ children: category
398
+ }, category))
399
+ })]
400
+ }), jsxs("div", {
401
+ className: "flex-1 overflow-y-auto p-4 min-h-0",
402
+ children: [jsx("div", {
403
+ className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
404
+ children: filteredTemplates.map(template => {
405
+ const isSelected = selectedId === template.id;
406
+ const isSuggested = suggestedId === template.id;
407
+ return jsx("button", {
408
+ type: "button",
409
+ onClick: () => {
410
+ onSelect(template.id);
411
+ onClose();
412
+ },
413
+ className: cn('text-left p-3 rounded-lg border-2 transition-all', isSelected ? 'border-primary bg-primary/10 ring-2 ring-primary/20' : 'border-border hover:border-primary/50 hover:bg-muted/50', isSuggested && !isSelected && 'border-primary/30 bg-primary/5'),
414
+ children: jsxs("div", {
415
+ className: "flex items-start gap-2",
416
+ children: [jsx("div", {
417
+ className: cn('p-1.5 rounded-md flex-shrink-0', isSelected ? 'bg-primary' : isSuggested ? 'bg-primary/20' : 'bg-secondary'),
418
+ children: jsx(Layout, {
419
+ className: cn('h-3.5 w-3.5', isSelected ? 'text-primary-foreground' : isSuggested ? 'text-primary' : 'text-foreground')
420
+ })
421
+ }), jsxs("div", {
422
+ className: "min-w-0 flex-1",
423
+ children: [jsxs("div", {
424
+ className: "flex items-center gap-1.5",
425
+ children: [jsx("span", {
426
+ className: "font-medium text-sm text-foreground truncate",
427
+ children: template.label
428
+ }), isSelected && jsx(Check, {
429
+ className: "h-3.5 w-3.5 text-primary flex-shrink-0"
430
+ })]
431
+ }), template.description && jsx("p", {
432
+ className: "text-xs text-muted-foreground mt-0.5 line-clamp-2",
433
+ children: template.description
434
+ })]
435
+ })]
436
+ })
437
+ }, template.id);
438
+ })
439
+ }), filteredTemplates.length === 0 && jsxs("div", {
440
+ className: "flex flex-col items-center justify-center py-12 text-center",
441
+ children: [jsx(Search, {
442
+ className: "h-10 w-10 text-muted-foreground mb-3"
443
+ }), jsx("p", {
444
+ className: "text-sm font-medium text-foreground",
445
+ children: "No templates found"
446
+ }), jsx("p", {
447
+ className: "text-xs text-muted-foreground mt-1",
448
+ children: "Try adjusting search or filters"
449
+ })]
450
+ })]
451
+ })]
452
+ })
453
+ });
454
+ }
455
+ /**
456
+ * InputToolBar – UI only. Renders toolbar and optional built-in textarea from props.
457
+ * All data (leftItems, rightItems, templateButton, inputConfig, micSendButton) and behavior (onClick, onChange, etc.) come from props.
458
+ */
459
+ function InputToolBar({
460
+ className,
461
+ classNames,
462
+ inputConfig,
463
+ topContent,
464
+ leftItems: leftItemsProp,
465
+ rightItems: rightItemsProp,
466
+ templateButton,
467
+ templateModalConfig,
468
+ templateModalRender,
469
+ projectSettingsModalOpen,
470
+ onProjectSettingsModalClose,
471
+ projectSettingsModalRender,
472
+ leftCustomRender,
473
+ rightCustomRender,
474
+ micSendButton,
475
+ children,
476
+ onContainerClick
477
+ }) {
478
+ const leftItems = leftItemsProp ?? [];
479
+ const rightItems = rightItemsProp ?? [];
480
+ const hasInputContent = inputConfig != null || children != null;
481
+ const effectiveTopContent = inputConfig != null ? topContent : null;
482
+ const templateModal = templateModalConfig != null && templateModalConfig.isOpen ? templateModalRender != null ? templateModalRender(templateModalConfig) : React__default.createElement(DefaultTemplateModal, templateModalConfig) : null;
483
+ const projectSettingsModal = projectSettingsModalOpen === true && onProjectSettingsModalClose != null && projectSettingsModalRender != null ? projectSettingsModalRender({
484
+ onClose: onProjectSettingsModalClose
485
+ }) : null;
486
+ return jsxs(Fragment, {
487
+ children: [templateModal, projectSettingsModal, jsx("section", {
488
+ className: cn('w-full overflow-visible rounded-[24px] border border-border/70 bg-card shadow-md', hasInputContent && 'cursor-text', classNames?.container, className),
489
+ onClick: hasInputContent ? onContainerClick : undefined,
490
+ role: hasInputContent ? 'presentation' : undefined,
491
+ children: jsxs("div", {
492
+ className: cn('flex px-3 py-2', hasInputContent ? 'flex-col gap-2' : 'flex-wrap items-center gap-3'),
493
+ children: [hasInputContent && jsxs("div", {
494
+ className: "min-w-0 flex-1 flex flex-col gap-2",
495
+ children: [effectiveTopContent, inputConfig != null ? jsxs(Fragment, {
496
+ children: [jsx("label", {
497
+ htmlFor: inputConfig.id ?? 'input-toolbar-input',
498
+ className: "sr-only",
499
+ children: inputConfig.placeholder ?? 'Message'
500
+ }), jsx("textarea", {
501
+ ref: inputConfig.inputRef,
502
+ id: inputConfig.id ?? 'input-toolbar-input',
503
+ name: inputConfig.name ?? 'query',
504
+ value: inputConfig.value,
505
+ onChange: inputConfig.onChange,
506
+ onKeyDown: inputConfig.onKeyDown,
507
+ onPaste: inputConfig.onPaste,
508
+ placeholder: inputConfig.placeholder ?? 'Ask anything...',
509
+ disabled: inputConfig.disabled,
510
+ rows: 1,
511
+ className: defaultTextareaClassName
512
+ })]
513
+ }) : children]
514
+ }), jsxs("div", {
515
+ className: cn('flex flex-wrap items-center gap-2 md:gap-3', hasInputContent && 'pt-2'),
516
+ children: [jsx("div", {
517
+ className: cn('flex items-center gap-2', hasInputContent && 'mb-2'),
518
+ children: jsx(LeftSection, {
519
+ leftItems: leftItems,
520
+ templateButton: templateButton,
521
+ leftCustomRender: leftCustomRender,
522
+ classNames: classNames
523
+ })
524
+ }), !hasInputContent && jsx("div", {
525
+ className: "min-w-0 flex-1",
526
+ "aria-hidden": true
527
+ }), jsx("div", {
528
+ className: "flex flex-1 flex-wrap items-center justify-end gap-2",
529
+ children: jsx(RightSection, {
530
+ rightItems: rightItems,
531
+ rightCustomRender: rightCustomRender,
532
+ micSendButton: micSendButton,
533
+ classNames: classNames
534
+ })
535
+ })]
536
+ })]
537
+ })
538
+ })]
539
+ });
540
+ }export{InputToolBar};//# sourceMappingURL=InputToolBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputToolBar.js","sources":["../../../src/components/InputToolBar/InputToolBar.tsx"],"sourcesContent":[null],"names":[],"mappings":"gWAqjBG,MAAA,QAAA,GAAA,aAAA;AACH,MAAA,aAAA,GAAA;AA4GA,MAAA,qBAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,15 @@
1
+ import type { LeftToolbarItemId, RightToolbarItemId, ToolbarItemConfig } from './types';
2
+ export type LeftItemOverrides = Partial<Record<LeftToolbarItemId, Partial<Omit<ToolbarItemConfig<LeftToolbarItemId>, 'id'>>>>;
3
+ export type RightItemOverrides = Partial<Record<RightToolbarItemId, Partial<Omit<ToolbarItemConfig<RightToolbarItemId>, 'id'>>>>;
4
+ /**
5
+ * Build default left toolbar items (search, zap, lightbulb). Omit or set enabled: false to hide.
6
+ * Override label, enabled, active, onClick, icon, customButton per id.
7
+ */
8
+ export declare function getDefaultLeftItems(overrides?: LeftItemOverrides): ToolbarItemConfig<LeftToolbarItemId>[];
9
+ /**
10
+ * Build default right toolbar items (projectSettings, tag, chip, camera, image, attach, mic).
11
+ * projectSettings is disabled by default; pass projectSettings: { enabled: true, onClick } to show.
12
+ * Override label, enabled, disabled, loading, active, onClick, icon, customButton per id.
13
+ */
14
+ export declare function getDefaultRightItems(overrides?: RightItemOverrides): ToolbarItemConfig<RightToolbarItemId>[];
15
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/components/InputToolBar/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAsBxF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACnC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CACvF,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACpC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CACzF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAezG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAiB5G"}
@@ -0,0 +1,60 @@
1
+ const DEFAULT_LEFT_IDS = ['search', 'zap', 'lightbulb'];
2
+ const DEFAULT_RIGHT_IDS = ['projectSettings', 'tag', 'chip', 'camera', 'image', 'attach', 'mic'];
3
+ const DEFAULT_LEFT_LABELS = {
4
+ search: 'Chat mode',
5
+ zap: 'Deep Search',
6
+ lightbulb: 'Build mode',
7
+ template: 'Template'
8
+ };
9
+ const DEFAULT_RIGHT_LABELS = {
10
+ projectSettings: 'Project settings',
11
+ tag: 'Enhance your prompt with AI',
12
+ chip: 'Configure chat model',
13
+ camera: 'Capture image',
14
+ image: 'Insert image',
15
+ attach: 'Attach file',
16
+ mic: 'Mic / Send'
17
+ };
18
+ /**
19
+ * Build default left toolbar items (search, zap, lightbulb). Omit or set enabled: false to hide.
20
+ * Override label, enabled, active, onClick, icon, customButton per id.
21
+ */
22
+ function getDefaultLeftItems(overrides) {
23
+ return DEFAULT_LEFT_IDS.map(id => {
24
+ const o = overrides?.[id];
25
+ return {
26
+ id,
27
+ label: o?.label ?? DEFAULT_LEFT_LABELS[id],
28
+ enabled: o?.enabled ?? true,
29
+ disabled: o?.disabled,
30
+ loading: o?.loading,
31
+ active: o?.active,
32
+ onClick: o?.onClick,
33
+ icon: o?.icon,
34
+ customButton: o?.customButton
35
+ };
36
+ });
37
+ }
38
+ /**
39
+ * Build default right toolbar items (projectSettings, tag, chip, camera, image, attach, mic).
40
+ * projectSettings is disabled by default; pass projectSettings: { enabled: true, onClick } to show.
41
+ * Override label, enabled, disabled, loading, active, onClick, icon, customButton per id.
42
+ */
43
+ function getDefaultRightItems(overrides) {
44
+ return DEFAULT_RIGHT_IDS.map(id => {
45
+ const o = overrides?.[id];
46
+ const defaultEnabled = id === 'projectSettings' ? false : true;
47
+ return {
48
+ id,
49
+ label: o?.label ?? DEFAULT_RIGHT_LABELS[id],
50
+ menuLabel: o?.menuLabel,
51
+ enabled: o?.enabled ?? defaultEnabled,
52
+ disabled: o?.disabled,
53
+ loading: o?.loading,
54
+ active: o?.active,
55
+ onClick: o?.onClick,
56
+ icon: o?.icon,
57
+ customButton: o?.customButton
58
+ };
59
+ });
60
+ }export{getDefaultLeftItems,getDefaultRightItems};//# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sources":["../../../src/components/InputToolBar/defaults.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA,MAAA,gBAAc,GAAA,CAAA,QAAmB,EAAA,KAAA,EAAA,WAAoB,CAAA;AAsBrD,MAAM,sCACF,EAAM,KAAC,EAAA,MAAA,EAAA,QAAmB,EAAA,OAAY,EAAC,QAAA,EAAA,KAAA,CAAiB;AAE5D,MAAM;AAIN,EAAA,MAAA,EAAA,WAAA;;;AAGG,EAAA,QAAA,EAAA;AACH,CAAA;AAiBA,MAAA,oBAAA,GAAA;;;;AAIG,EAAA,MAAA,EAAA,eAAA;AACH,EAAA,KAAA,EAAA,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ export { InputToolBar } from './InputToolBar';
2
+ export { getDefaultLeftItems, getDefaultRightItems } from './defaults';
3
+ export type { InputConfig, InputToolBarClassNames, InputToolBarProps, LeftToolbarItemId, MicSendButtonConfig, ProjectSettingsModalRender, ProjectSettingsModalRenderProps, RightToolbarItemId, TemplateButtonConfig, TemplateModalConfig, TemplateModalItem, TemplateModalRender, ToolbarItemConfig, } from './types';
4
+ export type { LeftItemOverrides, RightItemOverrides } from './defaults';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/InputToolBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvE,YAAY,EACR,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,+BAA+B,EAC/B,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}