@vezham/react 26.0.0-alpha.5 → 26.0.0-alpha.6

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 (436) hide show
  1. package/README.md +2 -0
  2. package/dist/index.css +1 -0
  3. package/dist/index.d.ts +6 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +5 -0
  6. package/dist/lib/components/actions-header/index.d.ts +26 -0
  7. package/dist/lib/components/actions-header/index.d.ts.map +1 -0
  8. package/dist/lib/components/actions-header/index.js +126 -0
  9. package/dist/lib/components/app-icon/index.d.ts +499 -0
  10. package/dist/lib/components/app-icon/index.d.ts.map +1 -0
  11. package/dist/lib/components/app-icon/index.js +513 -0
  12. package/dist/lib/components/app-menu/index.d.ts +22 -0
  13. package/dist/lib/components/app-menu/index.d.ts.map +1 -0
  14. package/dist/lib/components/app-menu/index.js +17 -0
  15. package/dist/lib/components/command/command-dialog.d.ts +10 -0
  16. package/dist/lib/components/command/command-dialog.d.ts.map +1 -0
  17. package/dist/lib/components/command/command-dialog.js +129 -0
  18. package/dist/lib/components/command/command-provider.d.ts +8 -0
  19. package/dist/lib/components/command/command-provider.d.ts.map +1 -0
  20. package/dist/lib/components/command/command-provider.js +44 -0
  21. package/dist/lib/components/command/index.d.ts +3 -0
  22. package/dist/lib/components/command/index.d.ts.map +1 -0
  23. package/dist/lib/components/command/index.js +3 -0
  24. package/dist/lib/components/menu/drawer.d.ts +4 -0
  25. package/dist/lib/components/menu/drawer.d.ts.map +1 -0
  26. package/dist/lib/components/menu/drawer.js +56 -0
  27. package/dist/lib/components/menu/index.d.ts +5 -0
  28. package/dist/lib/components/menu/index.d.ts.map +1 -0
  29. package/dist/lib/components/menu/index.js +138 -0
  30. package/dist/lib/components/menu/sheet.d.ts +15 -0
  31. package/dist/lib/components/menu/sheet.d.ts.map +1 -0
  32. package/dist/lib/components/menu/sheet.js +40 -0
  33. package/dist/lib/components/menu/types.d.ts +30 -0
  34. package/dist/lib/components/menu/types.d.ts.map +1 -0
  35. package/dist/lib/components/menu/types.js +7 -0
  36. package/dist/lib/components/menu/variant.d.ts +27 -0
  37. package/dist/lib/components/menu/variant.d.ts.map +1 -0
  38. package/dist/lib/components/menu/variant.js +28 -0
  39. package/dist/lib/components/mobile-controls/index.d.ts +11 -0
  40. package/dist/lib/components/mobile-controls/index.d.ts.map +1 -0
  41. package/dist/lib/components/mobile-controls/index.js +21 -0
  42. package/dist/lib/components/pagination/index.d.ts +10 -0
  43. package/dist/lib/components/pagination/index.d.ts.map +1 -0
  44. package/dist/lib/components/pagination/index.js +25 -0
  45. package/dist/lib/components/panel/footer/ai/chat-header.d.ts +9 -0
  46. package/dist/lib/components/panel/footer/ai/chat-header.d.ts.map +1 -0
  47. package/dist/lib/components/panel/footer/ai/chat-header.js +63 -0
  48. package/dist/lib/components/panel/footer/ai/composer.d.ts +7 -0
  49. package/dist/lib/components/panel/footer/ai/composer.d.ts.map +1 -0
  50. package/dist/lib/components/panel/footer/ai/composer.js +77 -0
  51. package/dist/lib/components/panel/footer/ai/content.d.ts +13 -0
  52. package/dist/lib/components/panel/footer/ai/content.d.ts.map +1 -0
  53. package/dist/lib/components/panel/footer/ai/content.js +148 -0
  54. package/dist/lib/components/panel/footer/ai/conversation.d.ts +47 -0
  55. package/dist/lib/components/panel/footer/ai/conversation.d.ts.map +1 -0
  56. package/dist/lib/components/panel/footer/ai/conversation.js +222 -0
  57. package/dist/lib/components/panel/footer/ai/index.d.ts +3 -0
  58. package/dist/lib/components/panel/footer/ai/index.d.ts.map +1 -0
  59. package/dist/lib/components/panel/footer/ai/index.js +41 -0
  60. package/dist/lib/components/panel/footer/ai/message-actions.d.ts +8 -0
  61. package/dist/lib/components/panel/footer/ai/message-actions.d.ts.map +1 -0
  62. package/dist/lib/components/panel/footer/ai/message-actions.js +63 -0
  63. package/dist/lib/components/panel/footer/ai/mock-result.d.ts +6 -0
  64. package/dist/lib/components/panel/footer/ai/mock-result.d.ts.map +1 -0
  65. package/dist/lib/components/panel/footer/ai/mock-result.js +121 -0
  66. package/dist/lib/components/panel/footer/ai/model-logo.d.ts +5 -0
  67. package/dist/lib/components/panel/footer/ai/model-logo.d.ts.map +1 -0
  68. package/dist/lib/components/panel/footer/ai/model-logo.js +13 -0
  69. package/dist/lib/components/panel/footer/ai/model-logos.d.ts +2 -0
  70. package/dist/lib/components/panel/footer/ai/model-logos.d.ts.map +1 -0
  71. package/dist/lib/components/panel/footer/ai/model-logos.js +10 -0
  72. package/dist/lib/components/panel/footer/ai/model-picker.d.ts +8 -0
  73. package/dist/lib/components/panel/footer/ai/model-picker.d.ts.map +1 -0
  74. package/dist/lib/components/panel/footer/ai/model-picker.js +166 -0
  75. package/dist/lib/components/panel/footer/ai/models.d.ts +9 -0
  76. package/dist/lib/components/panel/footer/ai/models.d.ts.map +1 -0
  77. package/dist/lib/components/panel/footer/ai/models.js +72 -0
  78. package/dist/lib/components/panel/footer/ai/permission-picker.d.ts +5 -0
  79. package/dist/lib/components/panel/footer/ai/permission-picker.d.ts.map +1 -0
  80. package/dist/lib/components/panel/footer/ai/permission-picker.js +63 -0
  81. package/dist/lib/components/panel/footer/ai/use-chat-scroll.d.ts +9 -0
  82. package/dist/lib/components/panel/footer/ai/use-chat-scroll.d.ts.map +1 -0
  83. package/dist/lib/components/panel/footer/ai/use-chat-scroll.js +57 -0
  84. package/dist/lib/components/panel/footer/control-center/appearance.d.ts +16 -0
  85. package/dist/lib/components/panel/footer/control-center/appearance.d.ts.map +1 -0
  86. package/dist/lib/components/panel/footer/control-center/appearance.js +100 -0
  87. package/dist/lib/components/panel/footer/control-center/configured.d.ts +13 -0
  88. package/dist/lib/components/panel/footer/control-center/configured.d.ts.map +1 -0
  89. package/dist/lib/components/panel/footer/control-center/configured.js +157 -0
  90. package/dist/lib/components/panel/footer/control-center/control-center.d.ts +8 -0
  91. package/dist/lib/components/panel/footer/control-center/control-center.d.ts.map +1 -0
  92. package/dist/lib/components/panel/footer/control-center/control-center.js +180 -0
  93. package/dist/lib/components/panel/footer/control-center/default.d.ts +3 -0
  94. package/dist/lib/components/panel/footer/control-center/default.d.ts.map +1 -0
  95. package/dist/lib/components/panel/footer/control-center/default.js +37 -0
  96. package/dist/lib/components/panel/footer/control-center/direction.d.ts +9 -0
  97. package/dist/lib/components/panel/footer/control-center/direction.d.ts.map +1 -0
  98. package/dist/lib/components/panel/footer/control-center/direction.js +40 -0
  99. package/dist/lib/components/panel/footer/control-center/document.d.ts +5 -0
  100. package/dist/lib/components/panel/footer/control-center/document.d.ts.map +1 -0
  101. package/dist/lib/components/panel/footer/control-center/document.js +19 -0
  102. package/dist/lib/components/panel/footer/control-center/editor.d.ts +25 -0
  103. package/dist/lib/components/panel/footer/control-center/editor.d.ts.map +1 -0
  104. package/dist/lib/components/panel/footer/control-center/editor.js +72 -0
  105. package/dist/lib/components/panel/footer/control-center/footer-context.d.ts +6 -0
  106. package/dist/lib/components/panel/footer/control-center/footer-context.d.ts.map +1 -0
  107. package/dist/lib/components/panel/footer/control-center/footer-context.js +5 -0
  108. package/dist/lib/components/panel/footer/control-center/index.d.ts +15 -0
  109. package/dist/lib/components/panel/footer/control-center/index.d.ts.map +1 -0
  110. package/dist/lib/components/panel/footer/control-center/index.js +11 -0
  111. package/dist/lib/components/panel/footer/control-center/language.d.ts +19 -0
  112. package/dist/lib/components/panel/footer/control-center/language.d.ts.map +1 -0
  113. package/dist/lib/components/panel/footer/control-center/language.js +44 -0
  114. package/dist/lib/components/panel/footer/control-center/options.d.ts +7 -0
  115. package/dist/lib/components/panel/footer/control-center/options.d.ts.map +1 -0
  116. package/dist/lib/components/panel/footer/control-center/options.js +27 -0
  117. package/dist/lib/components/panel/footer/control-center/preview.d.ts +34 -0
  118. package/dist/lib/components/panel/footer/control-center/preview.d.ts.map +1 -0
  119. package/dist/lib/components/panel/footer/control-center/preview.js +366 -0
  120. package/dist/lib/components/panel/footer/control-center/theme.d.ts +6 -0
  121. package/dist/lib/components/panel/footer/control-center/theme.d.ts.map +1 -0
  122. package/dist/lib/components/panel/footer/control-center/theme.js +150 -0
  123. package/dist/lib/components/panel/footer/control-center/tile.d.ts +10 -0
  124. package/dist/lib/components/panel/footer/control-center/tile.d.ts.map +1 -0
  125. package/dist/lib/components/panel/footer/control-center/tile.js +34 -0
  126. package/dist/lib/components/panel/footer/control-center/types.d.ts +94 -0
  127. package/dist/lib/components/panel/footer/control-center/types.d.ts.map +1 -0
  128. package/dist/lib/components/panel/footer/control-center/variant.d.ts +268 -0
  129. package/dist/lib/components/panel/footer/control-center/variant.d.ts.map +1 -0
  130. package/dist/lib/components/panel/footer/control-center/variant.js +89 -0
  131. package/dist/lib/components/panel/footer/data.d.ts +38 -0
  132. package/dist/lib/components/panel/footer/data.d.ts.map +1 -0
  133. package/dist/lib/components/panel/footer/data.js +90 -0
  134. package/dist/lib/components/panel/footer/drawer-accessors.d.ts +46 -0
  135. package/dist/lib/components/panel/footer/drawer-accessors.d.ts.map +1 -0
  136. package/dist/lib/components/panel/footer/drawer-accessors.js +21 -0
  137. package/dist/lib/components/panel/footer/drawer-frame.d.ts +12 -0
  138. package/dist/lib/components/panel/footer/drawer-frame.d.ts.map +1 -0
  139. package/dist/lib/components/panel/footer/drawer-frame.js +19 -0
  140. package/dist/lib/components/panel/footer/index.d.ts +4 -0
  141. package/dist/lib/components/panel/footer/index.d.ts.map +1 -0
  142. package/dist/lib/components/panel/footer/index.js +147 -0
  143. package/dist/lib/components/panel/footer/notification-center/index.d.ts +4 -0
  144. package/dist/lib/components/panel/footer/notification-center/index.d.ts.map +1 -0
  145. package/dist/lib/components/panel/footer/notification-center/index.js +98 -0
  146. package/dist/lib/components/panel/footer/notification-center/types.d.ts +525 -0
  147. package/dist/lib/components/panel/footer/notification-center/types.d.ts.map +1 -0
  148. package/dist/lib/components/panel/footer/notification-center/types.js +62 -0
  149. package/dist/lib/components/panel/footer/notification-center/variant.d.ts +322 -0
  150. package/dist/lib/components/panel/footer/notification-center/variant.d.ts.map +1 -0
  151. package/dist/lib/components/panel/footer/notification-center/variant.js +119 -0
  152. package/dist/lib/components/panel/footer/notification-center/widget-tiles.d.ts +49 -0
  153. package/dist/lib/components/panel/footer/notification-center/widget-tiles.d.ts.map +1 -0
  154. package/dist/lib/components/panel/footer/notification-center/widget-tiles.js +182 -0
  155. package/dist/lib/components/panel/footer/preferences/data.d.ts +14 -0
  156. package/dist/lib/components/panel/footer/preferences/data.d.ts.map +1 -0
  157. package/dist/lib/components/panel/footer/preferences/data.js +304 -0
  158. package/dist/lib/components/panel/footer/preferences/modal.d.ts +8 -0
  159. package/dist/lib/components/panel/footer/preferences/modal.d.ts.map +1 -0
  160. package/dist/lib/components/panel/footer/preferences/modal.js +75 -0
  161. package/dist/lib/components/panel/footer/preferences/sidebar.d.ts +9 -0
  162. package/dist/lib/components/panel/footer/preferences/sidebar.d.ts.map +1 -0
  163. package/dist/lib/components/panel/footer/preferences/sidebar.js +105 -0
  164. package/dist/lib/components/panel/footer/preferences/user-settings/account/index.d.ts +3 -0
  165. package/dist/lib/components/panel/footer/preferences/user-settings/account/index.d.ts.map +1 -0
  166. package/dist/lib/components/panel/footer/preferences/user-settings/account/index.js +16 -0
  167. package/dist/lib/components/panel/footer/preferences/user-settings/content-social/index.d.ts +3 -0
  168. package/dist/lib/components/panel/footer/preferences/user-settings/content-social/index.d.ts.map +1 -0
  169. package/dist/lib/components/panel/footer/preferences/user-settings/content-social/index.js +16 -0
  170. package/dist/lib/components/panel/footer/preferences/user-settings/data-privacy/index.d.ts +3 -0
  171. package/dist/lib/components/panel/footer/preferences/user-settings/data-privacy/index.d.ts.map +1 -0
  172. package/dist/lib/components/panel/footer/preferences/user-settings/data-privacy/index.js +101 -0
  173. package/dist/lib/components/panel/footer/preferences/user-settings/family-center/index.d.ts +3 -0
  174. package/dist/lib/components/panel/footer/preferences/user-settings/family-center/index.d.ts.map +1 -0
  175. package/dist/lib/components/panel/footer/preferences/user-settings/family-center/index.js +24 -0
  176. package/dist/lib/components/panel/footer/preferences/user-settings/profiles/index.d.ts +3 -0
  177. package/dist/lib/components/panel/footer/preferences/user-settings/profiles/index.d.ts.map +1 -0
  178. package/dist/lib/components/panel/footer/preferences/user-settings/profiles/index.js +103 -0
  179. package/dist/lib/components/panel/footer/tabs.d.ts +12 -0
  180. package/dist/lib/components/panel/footer/tabs.d.ts.map +1 -0
  181. package/dist/lib/components/panel/footer/tabs.js +23 -0
  182. package/dist/lib/components/panel/footer/types.d.ts +39 -0
  183. package/dist/lib/components/panel/footer/types.d.ts.map +1 -0
  184. package/dist/lib/components/panel/footer/user-menu.d.ts +10 -0
  185. package/dist/lib/components/panel/footer/user-menu.d.ts.map +1 -0
  186. package/dist/lib/components/panel/footer/user-menu.js +290 -0
  187. package/dist/lib/components/panel/header/application-menu-sheet.d.ts +21 -0
  188. package/dist/lib/components/panel/header/application-menu-sheet.d.ts.map +1 -0
  189. package/dist/lib/components/panel/header/application-menu-sheet.js +227 -0
  190. package/dist/lib/components/panel/header/bookmarks/bookmark-file-tree/index.d.ts +5 -0
  191. package/dist/lib/components/panel/header/bookmarks/bookmark-file-tree/index.d.ts.map +1 -0
  192. package/dist/lib/components/panel/header/bookmarks/bookmark-file-tree/index.js +225 -0
  193. package/dist/lib/components/panel/header/bookmarks/bookmark-file-tree/types.d.ts +13 -0
  194. package/dist/lib/components/panel/header/bookmarks/bookmark-file-tree/types.d.ts.map +1 -0
  195. package/dist/lib/components/panel/header/bookmarks/bookmark-file-tree/variants.d.ts +28 -0
  196. package/dist/lib/components/panel/header/bookmarks/bookmark-file-tree/variants.d.ts.map +1 -0
  197. package/dist/lib/components/panel/header/bookmarks/bookmark-file-tree/variants.js +249 -0
  198. package/dist/lib/components/panel/header/bookmarks/context-menu/index.d.ts +5 -0
  199. package/dist/lib/components/panel/header/bookmarks/context-menu/index.d.ts.map +1 -0
  200. package/dist/lib/components/panel/header/bookmarks/context-menu/index.js +147 -0
  201. package/dist/lib/components/panel/header/bookmarks/context-menu/types.d.ts +25 -0
  202. package/dist/lib/components/panel/header/bookmarks/context-menu/types.d.ts.map +1 -0
  203. package/dist/lib/components/panel/header/bookmarks/data.d.ts +2 -0
  204. package/dist/lib/components/panel/header/bookmarks/data.d.ts.map +1 -0
  205. package/dist/lib/components/panel/header/bookmarks/empty-state.d.ts +8 -0
  206. package/dist/lib/components/panel/header/bookmarks/empty-state.d.ts.map +1 -0
  207. package/dist/lib/components/panel/header/bookmarks/empty-state.js +15 -0
  208. package/dist/lib/components/panel/header/bookmarks/favorites/data.d.ts +2 -0
  209. package/dist/lib/components/panel/header/bookmarks/favorites/data.d.ts.map +1 -0
  210. package/dist/lib/components/panel/header/bookmarks/favorites/grid-list.d.ts +4 -0
  211. package/dist/lib/components/panel/header/bookmarks/favorites/grid-list.d.ts.map +1 -0
  212. package/dist/lib/components/panel/header/bookmarks/favorites/grid-list.js +65 -0
  213. package/dist/lib/components/panel/header/bookmarks/favorites/index.d.ts +5 -0
  214. package/dist/lib/components/panel/header/bookmarks/favorites/index.d.ts.map +1 -0
  215. package/dist/lib/components/panel/header/bookmarks/favorites/index.js +76 -0
  216. package/dist/lib/components/panel/header/bookmarks/favorites/types.d.ts +12 -0
  217. package/dist/lib/components/panel/header/bookmarks/favorites/types.d.ts.map +1 -0
  218. package/dist/lib/components/panel/header/bookmarks/favorites/variant.d.ts +211 -0
  219. package/dist/lib/components/panel/header/bookmarks/favorites/variant.d.ts.map +1 -0
  220. package/dist/lib/components/panel/header/bookmarks/favorites/variant.js +77 -0
  221. package/dist/lib/components/panel/header/bookmarks/folder-modal/index.d.ts +7 -0
  222. package/dist/lib/components/panel/header/bookmarks/folder-modal/index.d.ts.map +1 -0
  223. package/dist/lib/components/panel/header/bookmarks/folder-modal/index.js +221 -0
  224. package/dist/lib/components/panel/header/bookmarks/folder-modal/types.d.ts +25 -0
  225. package/dist/lib/components/panel/header/bookmarks/folder-modal/types.d.ts.map +1 -0
  226. package/dist/lib/components/panel/header/bookmarks/folder-modal/variants.d.ts +14 -0
  227. package/dist/lib/components/panel/header/bookmarks/folder-modal/variants.d.ts.map +1 -0
  228. package/dist/lib/components/panel/header/bookmarks/folder-modal/variants.js +95 -0
  229. package/dist/lib/components/panel/header/bookmarks/index.d.ts +5 -0
  230. package/dist/lib/components/panel/header/bookmarks/index.d.ts.map +1 -0
  231. package/dist/lib/components/panel/header/bookmarks/index.js +247 -0
  232. package/dist/lib/components/panel/header/bookmarks/membership.d.ts +14 -0
  233. package/dist/lib/components/panel/header/bookmarks/membership.d.ts.map +1 -0
  234. package/dist/lib/components/panel/header/bookmarks/membership.js +13 -0
  235. package/dist/lib/components/panel/header/bookmarks/quick-access/index.d.ts +4 -0
  236. package/dist/lib/components/panel/header/bookmarks/quick-access/index.d.ts.map +1 -0
  237. package/dist/lib/components/panel/header/bookmarks/quick-access/index.js +224 -0
  238. package/dist/lib/components/panel/header/bookmarks/quick-access/types.d.ts +38 -0
  239. package/dist/lib/components/panel/header/bookmarks/quick-access/types.d.ts.map +1 -0
  240. package/dist/lib/components/panel/header/bookmarks/shortcut-context-menu.d.ts +11 -0
  241. package/dist/lib/components/panel/header/bookmarks/shortcut-context-menu.d.ts.map +1 -0
  242. package/dist/lib/components/panel/header/bookmarks/shortcut-context-menu.js +39 -0
  243. package/dist/lib/components/panel/header/bookmarks/tree-data.d.ts +4 -0
  244. package/dist/lib/components/panel/header/bookmarks/tree-data.d.ts.map +1 -0
  245. package/dist/lib/components/panel/header/bookmarks/tree-data.js +97 -0
  246. package/dist/lib/components/panel/header/bookmarks/types.d.ts +648 -0
  247. package/dist/lib/components/panel/header/bookmarks/types.d.ts.map +1 -0
  248. package/dist/lib/components/panel/header/bookmarks/types.js +198 -0
  249. package/dist/lib/components/panel/header/bookmarks/variant.d.ts +334 -0
  250. package/dist/lib/components/panel/header/bookmarks/variant.d.ts.map +1 -0
  251. package/dist/lib/components/panel/header/bookmarks/variant.js +121 -0
  252. package/dist/lib/components/panel/header/index.d.ts +4 -0
  253. package/dist/lib/components/panel/header/index.d.ts.map +1 -0
  254. package/dist/lib/components/panel/header/index.js +366 -0
  255. package/dist/lib/components/panel/header/storage/archive/index.d.ts +4 -0
  256. package/dist/lib/components/panel/header/storage/archive/index.d.ts.map +1 -0
  257. package/dist/lib/components/panel/header/storage/archive/index.js +138 -0
  258. package/dist/lib/components/panel/header/storage/archive/types.d.ts +27 -0
  259. package/dist/lib/components/panel/header/storage/archive/types.d.ts.map +1 -0
  260. package/dist/lib/components/panel/header/storage/archive/variants.d.ts +6 -0
  261. package/dist/lib/components/panel/header/storage/archive/variants.d.ts.map +1 -0
  262. package/dist/lib/components/panel/header/storage/archive/variants.js +8 -0
  263. package/dist/lib/components/panel/header/storage/data.d.ts +2 -0
  264. package/dist/lib/components/panel/header/storage/data.d.ts.map +1 -0
  265. package/dist/lib/components/panel/header/storage/history-actions.d.ts +16 -0
  266. package/dist/lib/components/panel/header/storage/history-actions.d.ts.map +1 -0
  267. package/dist/lib/components/panel/header/storage/history-actions.js +18 -0
  268. package/dist/lib/components/panel/header/storage/history-date-group.d.ts +9 -0
  269. package/dist/lib/components/panel/header/storage/history-date-group.d.ts.map +1 -0
  270. package/dist/lib/components/panel/header/storage/history-date-group.js +19 -0
  271. package/dist/lib/components/panel/header/storage/history-item-content.d.ts +11 -0
  272. package/dist/lib/components/panel/header/storage/history-item-content.d.ts.map +1 -0
  273. package/dist/lib/components/panel/header/storage/history-item-content.js +17 -0
  274. package/dist/lib/components/panel/header/storage/history-shell.d.ts +8 -0
  275. package/dist/lib/components/panel/header/storage/history-shell.d.ts.map +1 -0
  276. package/dist/lib/components/panel/header/storage/history-shell.js +19 -0
  277. package/dist/lib/components/panel/header/storage/history-utils.d.ts +7 -0
  278. package/dist/lib/components/panel/header/storage/history-utils.d.ts.map +1 -0
  279. package/dist/lib/components/panel/header/storage/history-utils.js +25 -0
  280. package/dist/lib/components/panel/header/storage/index.d.ts +5 -0
  281. package/dist/lib/components/panel/header/storage/index.d.ts.map +1 -0
  282. package/dist/lib/components/panel/header/storage/index.js +120 -0
  283. package/dist/lib/components/panel/header/storage/trash/index.d.ts +4 -0
  284. package/dist/lib/components/panel/header/storage/trash/index.d.ts.map +1 -0
  285. package/dist/lib/components/panel/header/storage/trash/index.js +126 -0
  286. package/dist/lib/components/panel/header/storage/trash/types.d.ts +27 -0
  287. package/dist/lib/components/panel/header/storage/trash/types.d.ts.map +1 -0
  288. package/dist/lib/components/panel/header/storage/trash/variants.d.ts +6 -0
  289. package/dist/lib/components/panel/header/storage/trash/variants.d.ts.map +1 -0
  290. package/dist/lib/components/panel/header/storage/trash/variants.js +12 -0
  291. package/dist/lib/components/panel/header/storage/types.d.ts +482 -0
  292. package/dist/lib/components/panel/header/storage/types.d.ts.map +1 -0
  293. package/dist/lib/components/panel/header/storage/types.js +155 -0
  294. package/dist/lib/components/panel/header/storage/variant.d.ts +289 -0
  295. package/dist/lib/components/panel/header/storage/variant.d.ts.map +1 -0
  296. package/dist/lib/components/panel/header/storage/variant.js +106 -0
  297. package/dist/lib/components/panel/header/types.d.ts +26 -0
  298. package/dist/lib/components/panel/header/types.d.ts.map +1 -0
  299. package/dist/lib/components/panel/info-panel/container.d.ts +9 -0
  300. package/dist/lib/components/panel/info-panel/container.d.ts.map +1 -0
  301. package/dist/lib/components/panel/info-panel/container.js +90 -0
  302. package/dist/lib/components/panel/info-panel/container.module.css +48 -0
  303. package/dist/lib/components/panel/info-panel/container.module.js +8 -0
  304. package/dist/lib/components/panel/info-panel/index.d.ts +4 -0
  305. package/dist/lib/components/panel/info-panel/index.d.ts.map +1 -0
  306. package/dist/lib/components/panel/info-panel/provider.d.ts +7 -0
  307. package/dist/lib/components/panel/info-panel/provider.d.ts.map +1 -0
  308. package/dist/lib/components/panel/info-panel/provider.js +104 -0
  309. package/dist/lib/components/panel/info-panel/sheet.d.ts +9 -0
  310. package/dist/lib/components/panel/info-panel/sheet.d.ts.map +1 -0
  311. package/dist/lib/components/panel/info-panel/sheet.js +70 -0
  312. package/dist/lib/components/panel/info-panel/styles.d.ts +6 -0
  313. package/dist/lib/components/panel/info-panel/styles.d.ts.map +1 -0
  314. package/dist/lib/components/panel/info-panel/styles.js +8 -0
  315. package/dist/lib/components/panel/info-panel/types.d.ts +21 -0
  316. package/dist/lib/components/panel/info-panel/types.d.ts.map +1 -0
  317. package/dist/lib/components/panel/menu/index.d.ts +4 -0
  318. package/dist/lib/components/panel/menu/index.d.ts.map +1 -0
  319. package/dist/lib/components/panel/menu/index.js +156 -0
  320. package/dist/lib/components/panel/menu/types.d.ts +522 -0
  321. package/dist/lib/components/panel/menu/types.d.ts.map +1 -0
  322. package/dist/lib/components/panel/menu/types.js +71 -0
  323. package/dist/lib/components/panel/menu/variant.d.ts +259 -0
  324. package/dist/lib/components/panel/menu/variant.d.ts.map +1 -0
  325. package/dist/lib/components/panel/menu/variant.js +131 -0
  326. package/dist/lib/components/panel/responsive.d.ts +3 -0
  327. package/dist/lib/components/panel/responsive.d.ts.map +1 -0
  328. package/dist/lib/components/panel/responsive.js +5 -0
  329. package/dist/lib/components/responsive-toolbar-action/index.d.ts +11 -0
  330. package/dist/lib/components/responsive-toolbar-action/index.d.ts.map +1 -0
  331. package/dist/lib/components/responsive-toolbar-action/index.js +21 -0
  332. package/dist/lib/components/shortcut-key/index.d.ts +18 -0
  333. package/dist/lib/components/shortcut-key/index.d.ts.map +1 -0
  334. package/dist/lib/components/shortcut-key/index.js +44 -0
  335. package/dist/lib/components/toolbar-actions/index.d.ts +31 -0
  336. package/dist/lib/components/toolbar-actions/index.d.ts.map +1 -0
  337. package/dist/lib/components/toolbar-actions/index.js +75 -0
  338. package/dist/lib/components/workspace-navigation/index.d.ts +24 -0
  339. package/dist/lib/components/workspace-navigation/index.d.ts.map +1 -0
  340. package/dist/lib/components/workspace-navigation/index.js +74 -0
  341. package/dist/lib/layouts/app/frame.d.ts +8 -0
  342. package/dist/lib/layouts/app/frame.d.ts.map +1 -0
  343. package/dist/lib/layouts/app/frame.js +20 -0
  344. package/dist/lib/layouts/app/index.d.ts +27 -0
  345. package/dist/lib/layouts/app/index.d.ts.map +1 -0
  346. package/dist/lib/layouts/app/index.js +89 -0
  347. package/dist/lib/layouts/menu-layout/home-navigation-bubble.d.ts +7 -0
  348. package/dist/lib/layouts/menu-layout/home-navigation-bubble.d.ts.map +1 -0
  349. package/dist/lib/layouts/menu-layout/home-navigation-bubble.js +22 -0
  350. package/dist/lib/layouts/menu-layout/index-md.d.ts +4 -0
  351. package/dist/lib/layouts/menu-layout/index-md.d.ts.map +1 -0
  352. package/dist/lib/layouts/menu-layout/index-md.js +142 -0
  353. package/dist/lib/layouts/menu-layout/index-sm.d.ts +5 -0
  354. package/dist/lib/layouts/menu-layout/index-sm.d.ts.map +1 -0
  355. package/dist/lib/layouts/menu-layout/index-sm.js +124 -0
  356. package/dist/lib/layouts/menu-layout/index.d.ts +8 -0
  357. package/dist/lib/layouts/menu-layout/index.d.ts.map +1 -0
  358. package/dist/lib/layouts/menu-layout/index.js +17 -0
  359. package/dist/lib/layouts/section/index.d.ts +29 -0
  360. package/dist/lib/layouts/section/index.d.ts.map +1 -0
  361. package/dist/lib/layouts/section/index.js +285 -0
  362. package/dist/lib/layouts/section/preferences.d.ts +10 -0
  363. package/dist/lib/layouts/section/preferences.d.ts.map +1 -0
  364. package/dist/lib/layouts/section/preferences.js +41 -0
  365. package/dist/lib/layouts/section/sidebar-state.d.ts +7 -0
  366. package/dist/lib/layouts/section/sidebar-state.d.ts.map +1 -0
  367. package/dist/lib/layouts/section/sidebar-state.js +35 -0
  368. package/dist/lib/layouts/section/sidebar.d.ts +11 -0
  369. package/dist/lib/layouts/section/sidebar.d.ts.map +1 -0
  370. package/dist/lib/layouts/section/sidebar.js +84 -0
  371. package/dist/lib/layouts/section/sort-menu.d.ts +27 -0
  372. package/dist/lib/layouts/section/sort-menu.d.ts.map +1 -0
  373. package/dist/lib/layouts/section/sort-menu.js +72 -0
  374. package/dist/lib/layouts/section/toolbar-content.d.ts +11 -0
  375. package/dist/lib/layouts/section/toolbar-content.d.ts.map +1 -0
  376. package/dist/lib/layouts/section/toolbar-content.js +31 -0
  377. package/dist/lib/layouts/section/toolbar-more-sheet.d.ts +38 -0
  378. package/dist/lib/layouts/section/toolbar-more-sheet.d.ts.map +1 -0
  379. package/dist/lib/layouts/section/toolbar-more-sheet.js +288 -0
  380. package/dist/lib/layouts/section/toolbar.d.ts +60 -0
  381. package/dist/lib/layouts/section/toolbar.d.ts.map +1 -0
  382. package/dist/lib/layouts/section/toolbar.js +518 -0
  383. package/dist/lib/layouts/settings/index.d.ts +5 -0
  384. package/dist/lib/layouts/settings/index.d.ts.map +1 -0
  385. package/dist/lib/layouts/settings/index.js +9 -0
  386. package/dist/lib/navigation-toolbar.d.ts +32 -0
  387. package/dist/lib/navigation-toolbar.d.ts.map +1 -0
  388. package/dist/lib/navigation-toolbar.js +29 -0
  389. package/dist/lib/navigation.d.ts +21 -0
  390. package/dist/lib/navigation.d.ts.map +1 -0
  391. package/dist/lib/navigation.js +39 -0
  392. package/dist/lib/pages/settings/index.d.ts +17 -0
  393. package/dist/lib/pages/settings/index.d.ts.map +1 -0
  394. package/dist/lib/pages/settings/index.js +276 -0
  395. package/dist/lib/pages/settings/navigation.d.ts +4 -0
  396. package/dist/lib/pages/settings/navigation.d.ts.map +1 -0
  397. package/dist/lib/pages/settings/navigation.js +6 -0
  398. package/dist/lib/pages/settings/settings-content.d.ts +5 -0
  399. package/dist/lib/pages/settings/settings-content.d.ts.map +1 -0
  400. package/dist/lib/pages/settings/settings-content.js +213 -0
  401. package/dist/lib/pages/settings/tile-gallery.d.ts +19 -0
  402. package/dist/lib/pages/settings/tile-gallery.d.ts.map +1 -0
  403. package/dist/lib/pages/settings/tile-gallery.js +411 -0
  404. package/dist/lib/store/useBookmarks/action.d.ts +6 -0
  405. package/dist/lib/store/useBookmarks/action.d.ts.map +1 -0
  406. package/dist/lib/store/useBookmarks/action.js +7 -0
  407. package/dist/lib/store/useBookmarks/data.d.ts +4 -0
  408. package/dist/lib/store/useBookmarks/data.d.ts.map +1 -0
  409. package/dist/lib/store/useBookmarks/data.js +231 -0
  410. package/dist/lib/store/useBookmarks/index.d.ts +12 -0
  411. package/dist/lib/store/useBookmarks/index.d.ts.map +1 -0
  412. package/dist/lib/store/useBookmarks/index.js +29 -0
  413. package/dist/lib/store/useBookmarks/types.d.ts +30 -0
  414. package/dist/lib/store/useBookmarks/types.d.ts.map +1 -0
  415. package/dist/lib/store/useStorage/action.d.ts +6 -0
  416. package/dist/lib/store/useStorage/action.d.ts.map +1 -0
  417. package/dist/lib/store/useStorage/action.js +7 -0
  418. package/dist/lib/store/useStorage/data.d.ts +3 -0
  419. package/dist/lib/store/useStorage/data.d.ts.map +1 -0
  420. package/dist/lib/store/useStorage/data.js +219 -0
  421. package/dist/lib/store/useStorage/index.d.ts +7 -0
  422. package/dist/lib/store/useStorage/index.d.ts.map +1 -0
  423. package/dist/lib/store/useStorage/index.js +13 -0
  424. package/dist/lib/store/useStorage/types.d.ts +20 -0
  425. package/dist/lib/store/useStorage/types.d.ts.map +1 -0
  426. package/dist/lib/store/users/useUserStore.d.ts +22 -0
  427. package/dist/lib/store/users/useUserStore.d.ts.map +1 -0
  428. package/dist/lib/store/users/useUserStore.js +46 -0
  429. package/dist/lib/utils/date.d.ts +2 -0
  430. package/dist/lib/utils/date.d.ts.map +1 -0
  431. package/dist/lib/utils/date.js +8 -0
  432. package/dist/lib/utils/url.d.ts +4 -0
  433. package/dist/lib/utils/url.d.ts.map +1 -0
  434. package/dist/lib/utils/url.js +19 -0
  435. package/dist/react.css +49 -0
  436. package/package.json +90 -2
@@ -0,0 +1,77 @@
1
+ import { FastModeToggle, ModelPicker } from "./model-picker.js";
2
+ import { PermissionPicker } from "./permission-picker.js";
3
+ import { useRef } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { AddCircle, Microphone } from "@vezham/icons-react";
6
+ import { ChatAttachment, PromptInput } from "@vezham/react-pro-v3";
7
+ //#region src/lib/components/panel/footer/ai/composer.tsx
8
+ var Composer = ({ conversation: c }) => {
9
+ const fileInput = useRef(null);
10
+ return /* @__PURE__ */ jsxs(PromptInput, {
11
+ value: c.value,
12
+ onValueChange: c.setValue,
13
+ onSubmit: () => c.submit(),
14
+ status: c.phase === "ready" ? "ready" : c.phase === "streaming" ? "streaming" : "submitted",
15
+ onStop: c.stop,
16
+ children: [
17
+ /* @__PURE__ */ jsx("input", {
18
+ ref: fileInput,
19
+ type: "file",
20
+ multiple: true,
21
+ className: "hidden",
22
+ "aria-label": "Attach files",
23
+ accept: "image/*,.pdf,.txt,.md,.csv,.json",
24
+ onChange: (event) => {
25
+ c.addFiles(Array.from(event.target.files ?? []));
26
+ event.target.value = "";
27
+ }
28
+ }),
29
+ /* @__PURE__ */ jsxs(PromptInput.Shell, { children: [
30
+ c.attachments.length > 0 && /* @__PURE__ */ jsx(PromptInput.Attachments, {
31
+ className: "flex max-h-28 flex-wrap gap-2 overflow-y-auto",
32
+ children: c.attachments.map((file) => /* @__PURE__ */ jsxs(ChatAttachment, {
33
+ name: file.name,
34
+ mimeType: file.mimeType,
35
+ size: file.size,
36
+ children: [/* @__PURE__ */ jsx(ChatAttachment.Preview, {}), /* @__PURE__ */ jsx(ChatAttachment.Remove, {
37
+ "aria-label": `Remove ${file.name}`,
38
+ onPress: () => c.removeAttachment(file.id)
39
+ })]
40
+ }, file.id))
41
+ }),
42
+ /* @__PURE__ */ jsx(PromptInput.Content, { children: /* @__PURE__ */ jsx(PromptInput.TextArea, {
43
+ "aria-label": "Ask Tamizhi",
44
+ placeholder: "Ask Tamizhi…"
45
+ }) }),
46
+ /* @__PURE__ */ jsxs(PromptInput.Toolbar, { children: [/* @__PURE__ */ jsxs(PromptInput.ToolbarStart, { children: [/* @__PURE__ */ jsx(PromptInput.Action, {
47
+ "aria-label": "Attach files",
48
+ tooltip: "Attach files",
49
+ onPress: () => fileInput.current?.click(),
50
+ isDisabled: c.phase !== "ready",
51
+ children: /* @__PURE__ */ jsx(AddCircle, {
52
+ size: 18,
53
+ "aria-hidden": "true"
54
+ })
55
+ }), /* @__PURE__ */ jsx(PromptInput.Action, {
56
+ "aria-label": "Try voice preview",
57
+ tooltip: "Dictate · simulated",
58
+ isDisabled: c.phase !== "ready",
59
+ onPress: c.listen,
60
+ children: /* @__PURE__ */ jsx(Microphone, {
61
+ size: 18,
62
+ "aria-hidden": "true"
63
+ })
64
+ })] }), /* @__PURE__ */ jsxs(PromptInput.ToolbarEnd, { children: [/* @__PURE__ */ jsx(ModelPicker, { conversation: c }), /* @__PURE__ */ jsx(PromptInput.Send, {
65
+ "aria-label": c.phase === "ready" ? "Send message" : "Stop answering",
66
+ isDisabled: c.phase === "ready" && !c.value.trim() && !c.attachments.length
67
+ })] })] })
68
+ ] }),
69
+ /* @__PURE__ */ jsxs("div", {
70
+ className: "mt-2 flex flex-wrap gap-1",
71
+ children: [/* @__PURE__ */ jsx(FastModeToggle, { conversation: c }), /* @__PURE__ */ jsx(PermissionPicker, { conversation: c })]
72
+ })
73
+ ]
74
+ });
75
+ };
76
+ //#endregion
77
+ export { Composer };
@@ -0,0 +1,13 @@
1
+ import type { Conversation } from './conversation';
2
+ type Props = {
3
+ conversation: Conversation;
4
+ compact?: boolean;
5
+ panel?: boolean;
6
+ expanded?: boolean;
7
+ onExpand?: () => void;
8
+ greeting?: string;
9
+ suggestions?: readonly string[];
10
+ };
11
+ export declare const AIContent: ({ conversation: c, compact, panel, expanded, onExpand, greeting, suggestions }: Props) => import("react").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/components/panel/footer/ai/content.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD,KAAK,KAAK,GAAG;IACX,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAChC,CAAA;AACD,eAAO,MAAM,SAAS,GAAI,gFAavB,KAAK,gCA6JP,CAAA"}
@@ -0,0 +1,148 @@
1
+ import { ChatHeader } from "./chat-header.js";
2
+ import { Composer } from "./composer.js";
3
+ import { MessageActions } from "./message-actions.js";
4
+ import { MockResult } from "./mock-result.js";
5
+ import { useChatScroll } from "./use-chat-scroll.js";
6
+ import { Button } from "@vezham/react-v3";
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ import { AltArrowDown, VezhamTamizhi } from "@vezham/icons-react";
9
+ import { ChainOfThought, ChatAttachment, ChatConversation, ChatLoader, ChatMessage, PromptSuggestion, TextShimmer } from "@vezham/react-pro-v3";
10
+ //#region src/lib/components/panel/footer/ai/content.tsx
11
+ var AIContent = ({ conversation: c, compact = false, panel = false, expanded, onExpand, greeting = "How can Tamizhi help?", suggestions = [
12
+ "Plan my day",
13
+ "Explore my workspace",
14
+ "Show a workspace summary",
15
+ "Set my preferences"
16
+ ] }) => {
17
+ const { viewportRef, contentRef, showJump, onScroll, scrollToBottom } = useChatScroll(c);
18
+ return /* @__PURE__ */ jsxs("div", {
19
+ className: `flex min-h-0 flex-col gap-3 ${compact ? "max-h-[calc(100dvh-10rem)] overflow-hidden" : panel ? "h-full overflow-hidden" : "h-[min(65dvh,32rem)]"}`,
20
+ children: [
21
+ /* @__PURE__ */ jsx(ChatHeader, {
22
+ conversation: c,
23
+ expanded,
24
+ onExpand
25
+ }),
26
+ /* @__PURE__ */ jsx("p", {
27
+ className: "text-muted shrink-0 px-1 text-xs",
28
+ children: "Preview · Replies, files, voice and permissions are simulated."
29
+ }),
30
+ /* @__PURE__ */ jsxs("div", {
31
+ className: `relative min-h-0 flex-1 ${compact ? "max-h-[35dvh]" : ""}`,
32
+ children: [/* @__PURE__ */ jsx(ChatConversation, {
33
+ ref: viewportRef,
34
+ "aria-label": "Conversation with Tamizhi",
35
+ initial: "instant",
36
+ resize: "instant",
37
+ onScroll,
38
+ className: "h-full min-h-0",
39
+ children: /* @__PURE__ */ jsxs(ChatConversation.Content, {
40
+ ref: contentRef,
41
+ className: "min-w-0 shrink-0 grow flex-col justify-end gap-4 px-1 py-2 text-sm [&>*]:shrink-0",
42
+ children: [
43
+ c.messages.length === 0 && /* @__PURE__ */ jsxs("div", {
44
+ className: "py-4",
45
+ children: [/* @__PURE__ */ jsx("h2", {
46
+ className: "font-semibold",
47
+ children: greeting
48
+ }), /* @__PURE__ */ jsx("p", {
49
+ className: "text-muted mt-2",
50
+ children: "Find your way around, plan your day, or explore a sample result."
51
+ })]
52
+ }),
53
+ c.messages.length === 0 && /* @__PURE__ */ jsx(PromptSuggestion, { children: /* @__PURE__ */ jsx(PromptSuggestion.Items, {
54
+ className: "flex flex-col gap-2",
55
+ children: (compact ? suggestions.slice(0, 2) : suggestions).map((prompt) => /* @__PURE__ */ jsx(PromptSuggestion.Item, {
56
+ isDisabled: c.phase !== "ready",
57
+ onPress: () => c.submit(prompt),
58
+ className: "text-xs",
59
+ children: prompt
60
+ }, prompt))
61
+ }) }),
62
+ (compact ? c.messages.slice(-2) : c.messages).map((message) => message.role === "user" ? /* @__PURE__ */ jsxs(ChatMessage.User, { children: [/* @__PURE__ */ jsx(ChatMessage.Bubble, { children: /* @__PURE__ */ jsx(ChatMessage.Content, {
63
+ className: "wrap-anywhere",
64
+ children: message.text
65
+ }) }), message.attachments?.map((file) => /* @__PURE__ */ jsx(ChatAttachment, {
66
+ name: file.name,
67
+ mimeType: file.mimeType,
68
+ size: file.size,
69
+ children: /* @__PURE__ */ jsx(ChatAttachment.Preview, {})
70
+ }, file.id))] }, message.id) : /* @__PURE__ */ jsx(ChatMessage.Assistant, { children: /* @__PURE__ */ jsxs(ChatMessage.Body, {
71
+ className: "min-w-0",
72
+ children: [/* @__PURE__ */ jsx(ChatMessage.Content, {
73
+ className: `wrap-anywhere ${compact ? "line-clamp-3" : ""}`,
74
+ children: message.text
75
+ }), c.phase === "ready" && /* @__PURE__ */ jsxs(Fragment, { children: [!compact && /* @__PURE__ */ jsx(MockResult, { prompt: c.messages.slice(0, c.messages.indexOf(message)).reverse().find((item) => item.role === "user")?.text ?? "" }), /* @__PURE__ */ jsx(MessageActions, {
76
+ message,
77
+ conversation: c
78
+ })] })]
79
+ }) }, message.id)),
80
+ c.phase !== "ready" && /* @__PURE__ */ jsxs("div", {
81
+ role: "status",
82
+ children: [/* @__PURE__ */ jsxs("div", {
83
+ className: "flex items-center gap-3 py-2",
84
+ children: [/* @__PURE__ */ jsx(ChatLoader.Pulse, { "aria-hidden": "true" }), /* @__PURE__ */ jsx(TextShimmer, { children: c.phase === "listening" ? "Listening to a sample prompt…" : c.phase === "streaming" ? "Writing response…" : "Working on your request…" })]
85
+ }), /* @__PURE__ */ jsxs(ChainOfThought, {
86
+ isStreaming: true,
87
+ children: [/* @__PURE__ */ jsx(ChainOfThought.Trigger, { children: "Preview progress" }), /* @__PURE__ */ jsx(ChainOfThought.Content, { children: /* @__PURE__ */ jsxs(ChainOfThought.Steps, { children: [/* @__PURE__ */ jsx(ChainOfThought.Step, {
88
+ label: "Read the prompt",
89
+ children: "Using this mock conversation and attached file names."
90
+ }), /* @__PURE__ */ jsxs(ChainOfThought.Step, {
91
+ label: "Prepare a sample result",
92
+ children: [
93
+ "Generating a simulated response with the ",
94
+ c.model,
95
+ " ",
96
+ "preset."
97
+ ]
98
+ })] }) })]
99
+ })]
100
+ })
101
+ ]
102
+ })
103
+ }, c.activeId), showJump && /* @__PURE__ */ jsx("div", {
104
+ className: "pointer-events-none absolute inset-x-0 bottom-4 flex justify-center",
105
+ children: /* @__PURE__ */ jsx(Button, {
106
+ "aria-label": "Latest messages",
107
+ isIconOnly: true,
108
+ size: "sm",
109
+ variant: "secondary",
110
+ className: "pointer-events-auto shadow-sm",
111
+ onPress: scrollToBottom,
112
+ children: /* @__PURE__ */ jsx(AltArrowDown, {
113
+ size: 18,
114
+ "aria-hidden": "true"
115
+ })
116
+ })
117
+ })]
118
+ }),
119
+ /* @__PURE__ */ jsxs("footer", {
120
+ "aria-label": "Chat composer",
121
+ className: "flex shrink-0 flex-col gap-3",
122
+ children: [/* @__PURE__ */ jsx(Composer, { conversation: c }), /* @__PURE__ */ jsxs("div", {
123
+ className: "text-muted flex flex-col items-center gap-1 text-center text-xs",
124
+ children: [/* @__PURE__ */ jsx("p", { children: "AI may make mistakes. Verify all outputs." }), /* @__PURE__ */ jsxs("a", {
125
+ href: "https://vezham.com/tamizhi",
126
+ target: "_blank",
127
+ rel: "noopener noreferrer",
128
+ className: "hover:text-foreground inline-flex items-center gap-1",
129
+ children: [
130
+ "Powered by ",
131
+ /* @__PURE__ */ jsx(VezhamTamizhi, {
132
+ size: 16,
133
+ "aria-hidden": "true"
134
+ }),
135
+ " ",
136
+ /* @__PURE__ */ jsx("span", {
137
+ className: "font-medium",
138
+ children: "Tamizhi"
139
+ })
140
+ ]
141
+ })]
142
+ })]
143
+ })
144
+ ]
145
+ });
146
+ };
147
+ //#endregion
148
+ export { AIContent };
@@ -0,0 +1,47 @@
1
+ type Attachment = {
2
+ id: number;
3
+ name: string;
4
+ mimeType: string;
5
+ size: number;
6
+ };
7
+ type Message = {
8
+ id: number;
9
+ role: 'user' | 'assistant';
10
+ text: string;
11
+ attachments?: Attachment[];
12
+ rating?: 'up' | 'down';
13
+ };
14
+ type Phase = 'ready' | 'listening' | 'thinking' | 'streaming';
15
+ export declare const useMockConversation: () => {
16
+ attachments: Attachment[];
17
+ addFiles: (files: File[]) => void;
18
+ removeAttachment: (id: number) => void;
19
+ model: string;
20
+ setModel: import("react").Dispatch<import("react").SetStateAction<string>>;
21
+ fastMode: boolean;
22
+ setFastMode: import("react").Dispatch<import("react").SetStateAction<boolean>>;
23
+ permissions: string;
24
+ setPermissions: import("react").Dispatch<import("react").SetStateAction<string>>;
25
+ regenerate: (id: number) => void;
26
+ branchChat: (id: number) => void;
27
+ rate: (id: number, rating: "up" | "down") => void;
28
+ messages: Message[];
29
+ value: string;
30
+ setValue: import("react").Dispatch<import("react").SetStateAction<string>>;
31
+ phase: Phase;
32
+ submit: (prompt?: string) => void;
33
+ listen: () => void;
34
+ stop: () => void;
35
+ newChat: () => void;
36
+ openChat: (id: string) => void;
37
+ activeId: string;
38
+ title: string;
39
+ threads: {
40
+ id: string;
41
+ title: string;
42
+ preview: string;
43
+ }[];
44
+ };
45
+ export type Conversation = ReturnType<typeof useMockConversation>;
46
+ export {};
47
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/components/panel/footer/ai/conversation.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AACD,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CACvB,CAAA;AAED,KAAK,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAA;AAqB7D,eAAO,MAAM,mBAAmB;;sBAiML,IAAI,EAAE;2BAaN,MAAM;;;;;;;qBAjCP,MAAM;qBAnBN,MAAM;eA4BZ,MAAM,UAAU,IAAI,GAAG,MAAM;;;;;;;;;mBApCzB,MAAM;;;;;;;;CAwF7B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
@@ -0,0 +1,222 @@
1
+ import { useCallback, useEffect, useRef, useState } from "react";
2
+ //#region src/lib/components/panel/footer/ai/conversation.ts
3
+ var initialMessages = [{
4
+ id: 0,
5
+ role: "user",
6
+ text: "What can you help me with?"
7
+ }, {
8
+ id: 1,
9
+ role: "assistant",
10
+ text: "Hi, I’m Tamizhi. I can help you find your way around your workspace, plan your day, or turn notes into a summary. What would you like to do?"
11
+ }];
12
+ var replyTo = (prompt) => {
13
+ if (/day|plan|schedule/i.test(prompt)) return "Start with your most important task, leave time for meetings, and finish with a short review. Share your priorities and we can build a simple plan together.";
14
+ if (/workspace|find|search/i.test(prompt)) return "Try Search to find a page, Bookmarks for saved destinations, or Storage for your files. In this preview I can explain these controls; I haven’t opened or changed anything.";
15
+ if (/summary|summarize|notes/i.test(prompt)) return "Paste your notes here and I’ll show a sample summary organized into key points, decisions, and next steps. This preview uses simulated replies.";
16
+ return "Let’s break that into a clear next step. You can ask me to plan your day, explore your workspace, or summarize notes. This is a sample reply for the assistant preview.";
17
+ };
18
+ var useMockConversation = () => {
19
+ const [threads, setThreads] = useState([
20
+ {
21
+ id: "welcome",
22
+ title: "New chat",
23
+ messages: []
24
+ },
25
+ {
26
+ id: "intro",
27
+ title: "Getting started",
28
+ messages: initialMessages
29
+ },
30
+ {
31
+ id: "planning",
32
+ title: "Planning my day",
33
+ messages: [{
34
+ id: 10,
35
+ role: "user",
36
+ text: "Help me plan my day"
37
+ }, {
38
+ id: 11,
39
+ role: "assistant",
40
+ text: replyTo("Plan my day")
41
+ }]
42
+ },
43
+ {
44
+ id: "workspace",
45
+ title: "Exploring my workspace",
46
+ messages: [{
47
+ id: 20,
48
+ role: "user",
49
+ text: "Where can I find my files?"
50
+ }, {
51
+ id: 21,
52
+ role: "assistant",
53
+ text: replyTo("Explore workspace")
54
+ }]
55
+ }
56
+ ]);
57
+ const [activeId, setActiveId] = useState("welcome");
58
+ const activeThread = threads.find((thread) => thread.id === activeId);
59
+ const messages = activeThread?.messages ?? [];
60
+ const setMessages = (update) => {
61
+ setThreads((current) => current.map((thread) => thread.id === activeId ? {
62
+ ...thread,
63
+ messages: update(thread.messages)
64
+ } : thread));
65
+ };
66
+ const [value, setValue] = useState("");
67
+ const [attachments, setAttachments] = useState([]);
68
+ const [model, setModel] = useState("Auto");
69
+ const [fastMode, setFastMode] = useState(false);
70
+ const [permissions, setPermissions] = useState("Ask for approval");
71
+ const [phase, setPhase] = useState("ready");
72
+ const timer = useRef(null);
73
+ const nextId = useRef(22);
74
+ const nextThreadId = useRef(1);
75
+ const stop = useCallback(() => {
76
+ if (timer.current !== null) clearTimeout(timer.current);
77
+ timer.current = null;
78
+ setPhase("ready");
79
+ }, []);
80
+ useEffect(() => () => {
81
+ if (timer.current !== null) clearTimeout(timer.current);
82
+ }, []);
83
+ const respond = (prompt, regenerateId) => {
84
+ const responseIndex = messages.findIndex((message) => message.id === regenerateId);
85
+ const userMessage = {
86
+ id: nextId.current++,
87
+ role: "user",
88
+ text: prompt,
89
+ attachments
90
+ };
91
+ setThreads((current) => current.map((thread) => thread.id === activeId ? {
92
+ ...thread,
93
+ title: thread.messages.length === 0 ? prompt.slice(0, 48) : thread.title,
94
+ messages: regenerateId === void 0 ? [...thread.messages, userMessage] : thread.messages.filter((message) => message.id !== regenerateId)
95
+ } : thread));
96
+ setValue("");
97
+ setAttachments([]);
98
+ setPhase("thinking");
99
+ timer.current = setTimeout(() => {
100
+ const id = nextId.current++;
101
+ const fullText = replyTo(prompt);
102
+ let length = 0;
103
+ setMessages((current) => {
104
+ const updated = [...current];
105
+ updated.splice(responseIndex < 0 ? updated.length : responseIndex, 0, {
106
+ id,
107
+ role: "assistant",
108
+ text: ""
109
+ });
110
+ return updated;
111
+ });
112
+ setPhase("streaming");
113
+ const stream = () => {
114
+ length = Math.min(length + 28, fullText.length);
115
+ setMessages((current) => current.map((message) => message.id === id ? {
116
+ ...message,
117
+ text: fullText.slice(0, length)
118
+ } : message));
119
+ if (length < fullText.length) timer.current = setTimeout(stream, 50);
120
+ else {
121
+ timer.current = null;
122
+ setPhase("ready");
123
+ }
124
+ };
125
+ stream();
126
+ }, 900);
127
+ };
128
+ const submit = (prompt = value) => {
129
+ if (phase !== "ready" || !prompt.trim() && attachments.length === 0) return;
130
+ respond(prompt.trim() || "Summarize the attached files");
131
+ };
132
+ const listen = () => {
133
+ if (phase !== "ready") return;
134
+ setPhase("listening");
135
+ timer.current = setTimeout(() => respond("Help me plan my day"), 1400);
136
+ };
137
+ const newChat = () => {
138
+ stop();
139
+ const thread = {
140
+ id: `chat-${nextThreadId.current++}`,
141
+ title: "New chat",
142
+ messages: []
143
+ };
144
+ setThreads((current) => [thread, ...current]);
145
+ setActiveId(thread.id);
146
+ setValue("");
147
+ setAttachments([]);
148
+ };
149
+ const openChat = (id) => {
150
+ if (!threads.some((thread) => thread.id === id)) return;
151
+ stop();
152
+ setActiveId(id);
153
+ setValue("");
154
+ setAttachments([]);
155
+ };
156
+ const branchChat = (id) => {
157
+ const index = messages.findIndex((message) => message.id === id);
158
+ if (phase !== "ready" || index < 0) return;
159
+ stop();
160
+ const thread = {
161
+ id: `chat-${nextThreadId.current++}`,
162
+ title: `${activeThread?.title ?? "Chat"} · Branch`,
163
+ messages: messages.slice(0, index + 1).map((message) => ({
164
+ ...message,
165
+ id: nextId.current++,
166
+ attachments: message.attachments?.map((file) => ({ ...file }))
167
+ }))
168
+ };
169
+ setThreads((current) => [thread, ...current]);
170
+ setActiveId(thread.id);
171
+ setValue("");
172
+ setAttachments([]);
173
+ };
174
+ const regenerate = (id) => {
175
+ if (phase !== "ready") return;
176
+ const index = messages.findIndex((message) => message.id === id);
177
+ const prompt = messages.slice(0, index).reverse().find((message) => message.role === "user")?.text;
178
+ if (prompt) respond(prompt, id);
179
+ };
180
+ const rate = (id, rating) => setMessages((current) => current.map((message) => message.id === id ? {
181
+ ...message,
182
+ rating: message.rating === rating ? void 0 : rating
183
+ } : message));
184
+ const addFiles = (files) => setAttachments((current) => [...current, ...files.map((file) => ({
185
+ id: nextId.current++,
186
+ name: file.name,
187
+ mimeType: file.type,
188
+ size: file.size
189
+ }))]);
190
+ return {
191
+ attachments,
192
+ addFiles,
193
+ removeAttachment: (id) => setAttachments((current) => current.filter((file) => file.id !== id)),
194
+ model,
195
+ setModel,
196
+ fastMode,
197
+ setFastMode,
198
+ permissions,
199
+ setPermissions,
200
+ regenerate,
201
+ branchChat,
202
+ rate,
203
+ messages,
204
+ value,
205
+ setValue,
206
+ phase,
207
+ submit,
208
+ listen,
209
+ stop,
210
+ newChat,
211
+ openChat,
212
+ activeId,
213
+ title: activeThread?.title ?? "New chat",
214
+ threads: threads.map((thread) => ({
215
+ id: thread.id,
216
+ title: thread.title,
217
+ preview: thread.messages.at(-1)?.text ?? "Start a conversation"
218
+ }))
219
+ };
220
+ };
221
+ //#endregion
222
+ export { useMockConversation };
@@ -0,0 +1,3 @@
1
+ import type { InfoPanelDefinition } from '../../info-panel';
2
+ export declare const aiPanel: InfoPanelDefinition;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/components/panel/footer/ai/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AA8B3D,eAAO,MAAM,OAAO,EAAE,mBAQrB,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { InfoPanelSheet } from "../../info-panel/sheet.js";
2
+ import { AIContent } from "./content.js";
3
+ import { useMockConversation } from "./conversation.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { VezhamTamizhi } from "@vezham/icons-react";
6
+ //#region src/lib/components/panel/footer/ai/index.tsx
7
+ var AISheet = ({ isOpen, onClose }) => isOpen ? /* @__PURE__ */ jsx(AISession, { onClose }) : null;
8
+ var AISession = ({ onClose }) => {
9
+ const conversation = useMockConversation();
10
+ return /* @__PURE__ */ jsx(InfoPanelSheet, {
11
+ onClose,
12
+ panel: {
13
+ title: aiPanel.title,
14
+ titleIcon: aiPanel.titleIcon,
15
+ scrollable: false,
16
+ content: /* @__PURE__ */ jsx(AIContent, {
17
+ conversation,
18
+ panel: true
19
+ })
20
+ }
21
+ });
22
+ };
23
+ var AIPanelContent = () => {
24
+ return /* @__PURE__ */ jsx(AIContent, {
25
+ conversation: useMockConversation(),
26
+ panel: true
27
+ });
28
+ };
29
+ var aiPanel = {
30
+ title: "Tamizhi AI",
31
+ titleIcon: /* @__PURE__ */ jsx(VezhamTamizhi, {
32
+ size: 20,
33
+ "aria-hidden": "true",
34
+ className: "shrink-0"
35
+ }),
36
+ scrollable: false,
37
+ content: /* @__PURE__ */ jsx(AIPanelContent, {}),
38
+ renderCompact: (props) => /* @__PURE__ */ jsx(AISheet, { ...props })
39
+ };
40
+ //#endregion
41
+ export { aiPanel };
@@ -0,0 +1,8 @@
1
+ import type { Conversation } from './conversation';
2
+ type Props = {
3
+ message: Conversation['messages'][number];
4
+ conversation: Conversation;
5
+ };
6
+ export declare const MessageActions: ({ message, conversation }: Props) => import("react").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=message-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-actions.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/components/panel/footer/ai/message-actions.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;IACzC,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AACD,eAAO,MAAM,cAAc,GAAI,2BAA2B,KAAK,gCAuD9D,CAAA"}
@@ -0,0 +1,63 @@
1
+ import { useState } from "react";
2
+ import { Button } from "@vezham/react-v3";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ import { BranchingPathsUp } from "@vezham/icons-react";
5
+ import { ChatMessageActions } from "@vezham/react-pro-v3";
6
+ import { writeClipboardText } from "@vezham/docs-react/utils/clipboard";
7
+ //#region src/lib/components/panel/footer/ai/message-actions.tsx
8
+ var MessageActions = ({ message, conversation }) => {
9
+ const [copied, setCopied] = useState(false);
10
+ const [error, setError] = useState(false);
11
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(ChatMessageActions, { children: [
12
+ /* @__PURE__ */ jsx(ChatMessageActions.Copy, {
13
+ "aria-label": "Copy response",
14
+ tooltip: "Copy",
15
+ isCopied: copied,
16
+ onPress: async () => {
17
+ try {
18
+ await writeClipboardText(message.text);
19
+ setCopied(true);
20
+ setError(false);
21
+ } catch {
22
+ setError(true);
23
+ }
24
+ }
25
+ }),
26
+ /* @__PURE__ */ jsx(ChatMessageActions.ThumbsUp, {
27
+ "aria-label": "Good response",
28
+ tooltip: "Good response",
29
+ "aria-pressed": message.rating === "up",
30
+ onPress: () => conversation.rate(message.id, "up")
31
+ }),
32
+ /* @__PURE__ */ jsx(ChatMessageActions.ThumbsDown, {
33
+ "aria-label": "Bad response",
34
+ tooltip: "Bad response",
35
+ "aria-pressed": message.rating === "down",
36
+ onPress: () => conversation.rate(message.id, "down")
37
+ }),
38
+ /* @__PURE__ */ jsx(ChatMessageActions.Regenerate, {
39
+ "aria-label": "Regenerate response",
40
+ tooltip: "Regenerate",
41
+ isDisabled: conversation.phase !== "ready",
42
+ onPress: () => conversation.regenerate(message.id)
43
+ }),
44
+ /* @__PURE__ */ jsx(Button, {
45
+ "aria-label": "Branch chat",
46
+ isIconOnly: true,
47
+ size: "sm",
48
+ variant: "ghost",
49
+ isDisabled: conversation.phase !== "ready",
50
+ onPress: () => conversation.branchChat(message.id),
51
+ children: /* @__PURE__ */ jsx(BranchingPathsUp, {
52
+ size: 18,
53
+ "aria-hidden": "true"
54
+ })
55
+ })
56
+ ] }), error && /* @__PURE__ */ jsx("p", {
57
+ role: "status",
58
+ className: "text-muted text-xs",
59
+ children: "Copy is unavailable in this browser."
60
+ })] });
61
+ };
62
+ //#endregion
63
+ export { MessageActions };
@@ -0,0 +1,6 @@
1
+ type Props = {
2
+ prompt: string;
3
+ };
4
+ export declare const MockResult: ({ prompt }: Props) => import("react").JSX.Element | null;
5
+ export {};
6
+ //# sourceMappingURL=mock-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-result.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/components/panel/footer/ai/mock-result.tsx"],"names":[],"mappings":"AAyBA,KAAK,KAAK,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAC/B,eAAO,MAAM,UAAU,GAAI,YAAY,KAAK,uCA8F3C,CAAA"}