@solidxai/core-ui 0.1.5-beta.9 → 0.1.7-beta.0

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 (300) hide show
  1. package/dist/components/auth/AuthTabs.d.ts +14 -0
  2. package/dist/components/auth/AuthTabs.d.ts.map +1 -0
  3. package/dist/components/auth/AuthTabs.js +19 -0
  4. package/dist/components/auth/AuthTabs.js.map +1 -0
  5. package/dist/components/auth/AuthTabs.tsx +38 -0
  6. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  7. package/dist/components/auth/GoogleAuthChecking.js +10 -10
  8. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  9. package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
  10. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  11. package/dist/components/auth/SolidChangeForcePassword.js +9 -10
  12. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  13. package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
  14. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  15. package/dist/components/auth/SolidForgotPassword.js +8 -8
  16. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  17. package/dist/components/auth/SolidForgotPassword.tsx +6 -8
  18. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  19. package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
  20. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  21. package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
  22. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  23. package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
  24. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  25. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
  26. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  27. package/dist/components/auth/SolidLogin.js +12 -12
  28. package/dist/components/auth/SolidLogin.js.map +1 -1
  29. package/dist/components/auth/SolidLogin.tsx +11 -16
  30. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  31. package/dist/components/auth/SolidRegister.js +19 -19
  32. package/dist/components/auth/SolidRegister.js.map +1 -1
  33. package/dist/components/auth/SolidRegister.tsx +18 -23
  34. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  35. package/dist/components/auth/SolidResetPassword.js +15 -15
  36. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  37. package/dist/components/auth/SolidResetPassword.tsx +7 -8
  38. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  39. package/dist/components/common/GeneralSettings.js +87 -120
  40. package/dist/components/common/GeneralSettings.js.map +1 -1
  41. package/dist/components/common/GeneralSettings.tsx +12 -42
  42. package/dist/components/common/GlobalToast.d.ts +2 -0
  43. package/dist/components/common/GlobalToast.d.ts.map +1 -0
  44. package/dist/components/common/GlobalToast.js +25 -0
  45. package/dist/components/common/GlobalToast.js.map +1 -0
  46. package/dist/components/common/GlobalToast.tsx +25 -0
  47. package/dist/components/common/SolidErrorStatePage.d.ts +12 -0
  48. package/dist/components/common/SolidErrorStatePage.d.ts.map +1 -0
  49. package/dist/components/common/SolidErrorStatePage.js +16 -0
  50. package/dist/components/common/SolidErrorStatePage.js.map +1 -0
  51. package/dist/components/common/SolidErrorStatePage.tsx +55 -0
  52. package/dist/components/common/SolidExport.d.ts.map +1 -1
  53. package/dist/components/common/SolidExport.js +19 -31
  54. package/dist/components/common/SolidExport.js.map +1 -1
  55. package/dist/components/common/SolidExport.tsx +7 -19
  56. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  57. package/dist/components/common/SolidFormStepper.js +41 -41
  58. package/dist/components/common/SolidFormStepper.js.map +1 -1
  59. package/dist/components/common/SolidFormStepper.tsx +5 -6
  60. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  61. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
  62. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  63. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
  64. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  65. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
  66. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  67. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
  68. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
  69. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
  70. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
  71. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
  72. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  73. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
  74. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  75. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
  76. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  77. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
  78. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  79. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
  80. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  81. package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
  82. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  83. package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
  84. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  85. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
  86. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  87. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
  88. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
  89. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
  90. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
  91. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
  92. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
  93. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
  94. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
  95. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
  96. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
  97. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
  98. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
  99. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
  100. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  101. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
  102. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  103. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
  104. package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
  105. package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
  106. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  107. package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
  108. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  109. package/dist/components/core/form/SolidFormView.js +12 -21
  110. package/dist/components/core/form/SolidFormView.js.map +1 -1
  111. package/dist/components/core/form/SolidFormView.tsx +11 -33
  112. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  113. package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -15
  114. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  115. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +14 -2
  116. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  117. package/dist/components/core/form/fields/SolidTimeField.js +4 -2
  118. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  119. package/dist/components/core/form/fields/SolidTimeField.tsx +5 -5
  120. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  121. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
  122. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  123. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
  124. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  125. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
  126. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  127. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
  128. package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
  129. package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
  130. package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
  131. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
  132. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  133. package/dist/components/core/kanban/SolidKanbanView.js +5 -7
  134. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  135. package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
  136. package/dist/components/core/list/PLAN.md +92 -0
  137. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  138. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
  139. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  140. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
  141. package/dist/components/core/list/SolidDataTable.d.ts +58 -0
  142. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -0
  143. package/dist/components/core/list/SolidDataTable.js +141 -0
  144. package/dist/components/core/list/SolidDataTable.js.map +1 -0
  145. package/dist/components/core/list/SolidDataTable.tsx +314 -0
  146. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  147. package/dist/components/core/list/SolidListView.js +20 -67
  148. package/dist/components/core/list/SolidListView.js.map +1 -1
  149. package/dist/components/core/list/SolidListView.tsx +9 -76
  150. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  151. package/dist/components/core/model/CreateModel.js +15 -25
  152. package/dist/components/core/model/CreateModel.js.map +1 -1
  153. package/dist/components/core/model/CreateModel.tsx +12 -32
  154. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  155. package/dist/components/core/model/FieldMetaData.js +6 -17
  156. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  157. package/dist/components/core/model/FieldMetaData.tsx +5 -26
  158. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  159. package/dist/components/core/model/ModelMetaData.js +48 -55
  160. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  161. package/dist/components/core/model/ModelMetaData.tsx +4 -22
  162. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  163. package/dist/components/core/module/CreateModule.js +42 -44
  164. package/dist/components/core/module/CreateModule.js.map +1 -1
  165. package/dist/components/core/module/CreateModule.tsx +13 -27
  166. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  167. package/dist/components/core/module/ModuleListViewData.js +11 -7
  168. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  169. package/dist/components/core/module/ModuleListViewData.tsx +10 -8
  170. package/dist/components/core/solid-ai/SolidAiChat.d.ts +3 -0
  171. package/dist/components/core/solid-ai/SolidAiChat.d.ts.map +1 -0
  172. package/dist/components/core/solid-ai/SolidAiChat.js +1043 -0
  173. package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -0
  174. package/dist/components/core/solid-ai/SolidAiChat.module.css +1339 -0
  175. package/dist/components/core/solid-ai/SolidAiChat.tsx +1237 -0
  176. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  177. package/dist/components/core/tree/SolidTreeView.js +32 -69
  178. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  179. package/dist/components/core/tree/SolidTreeView.tsx +8 -47
  180. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  181. package/dist/components/core/users/CreateUser.js +24 -37
  182. package/dist/components/core/users/CreateUser.js.map +1 -1
  183. package/dist/components/core/users/CreateUser.tsx +8 -46
  184. package/dist/components/core/users/UserListView.d.ts.map +1 -1
  185. package/dist/components/core/users/UserListView.js +9 -16
  186. package/dist/components/core/users/UserListView.js.map +1 -1
  187. package/dist/components/core/users/UserListView.tsx +5 -21
  188. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  189. package/dist/components/layout/AdminLayout.js +4 -2
  190. package/dist/components/layout/AdminLayout.js.map +1 -1
  191. package/dist/components/layout/AdminLayout.tsx +4 -2
  192. package/dist/components/layout/AdminTopHeader.d.ts +2 -0
  193. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -0
  194. package/dist/components/layout/AdminTopHeader.js +80 -0
  195. package/dist/components/layout/AdminTopHeader.js.map +1 -0
  196. package/dist/components/layout/AdminTopHeader.tsx +165 -0
  197. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  198. package/dist/components/layout/AppSidebar.js +1 -2
  199. package/dist/components/layout/AppSidebar.js.map +1 -1
  200. package/dist/components/layout/AppSidebar.tsx +0 -2
  201. package/dist/components/layout/Layout.d.ts.map +1 -1
  202. package/dist/components/layout/Layout.js +2 -1
  203. package/dist/components/layout/Layout.js.map +1 -1
  204. package/dist/components/layout/Layout.tsx +2 -0
  205. package/dist/components/layout/SolidAiStudioLayout.d.ts +10 -0
  206. package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -0
  207. package/dist/components/layout/SolidAiStudioLayout.js +159 -0
  208. package/dist/components/layout/SolidAiStudioLayout.js.map +1 -0
  209. package/dist/components/layout/SolidAiStudioLayout.tsx +333 -0
  210. package/dist/components/layout/navbar-one.d.ts.map +1 -1
  211. package/dist/components/layout/navbar-one.js +1 -2
  212. package/dist/components/layout/navbar-one.js.map +1 -1
  213. package/dist/components/layout/navbar-one.tsx +0 -2
  214. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  215. package/dist/components/layout/navbar-two-menu.js +50 -24
  216. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  217. package/dist/components/layout/navbar-two-menu.tsx +48 -30
  218. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +24 -0
  219. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -0
  220. package/dist/components/shad-cn-ui/SolidAutocomplete.js +224 -0
  221. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -0
  222. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +339 -0
  223. package/dist/components/shad-cn-ui/SolidButton.d.ts +14 -0
  224. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -0
  225. package/dist/components/shad-cn-ui/SolidButton.js +36 -0
  226. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -0
  227. package/dist/components/shad-cn-ui/SolidButton.tsx +54 -0
  228. package/dist/components/shad-cn-ui/SolidInput.d.ts +5 -0
  229. package/dist/components/shad-cn-ui/SolidInput.d.ts.map +1 -0
  230. package/dist/components/shad-cn-ui/SolidInput.js +35 -0
  231. package/dist/components/shad-cn-ui/SolidInput.js.map +1 -0
  232. package/dist/components/shad-cn-ui/SolidInput.tsx +12 -0
  233. package/dist/components/shad-cn-ui/SolidNumberInput.d.ts +10 -0
  234. package/dist/components/shad-cn-ui/SolidNumberInput.d.ts.map +1 -0
  235. package/dist/components/shad-cn-ui/SolidNumberInput.js +33 -0
  236. package/dist/components/shad-cn-ui/SolidNumberInput.js.map +1 -0
  237. package/dist/components/shad-cn-ui/SolidNumberInput.tsx +24 -0
  238. package/dist/components/shad-cn-ui/SolidSelect.d.ts +16 -0
  239. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -0
  240. package/dist/components/shad-cn-ui/SolidSelect.js +26 -0
  241. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -0
  242. package/dist/components/shad-cn-ui/SolidSelect.tsx +65 -0
  243. package/dist/components/shad-cn-ui/SolidTabs.d.ts +18 -0
  244. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -0
  245. package/dist/components/shad-cn-ui/SolidTabs.js +22 -0
  246. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -0
  247. package/dist/components/shad-cn-ui/SolidTabs.tsx +73 -0
  248. package/dist/components/shad-cn-ui/index.d.ts +7 -0
  249. package/dist/components/shad-cn-ui/index.d.ts.map +1 -0
  250. package/dist/components/shad-cn-ui/index.js +7 -0
  251. package/dist/components/shad-cn-ui/index.js.map +1 -0
  252. package/dist/components/shad-cn-ui/index.ts +6 -0
  253. package/dist/helpers/studioSandbox.d.ts +31 -0
  254. package/dist/helpers/studioSandbox.d.ts.map +1 -0
  255. package/dist/helpers/studioSandbox.js +104 -0
  256. package/dist/helpers/studioSandbox.js.map +1 -0
  257. package/dist/helpers/studioSandbox.ts +117 -0
  258. package/dist/index.d.ts +4 -0
  259. package/dist/index.d.ts.map +1 -1
  260. package/dist/index.js +3 -0
  261. package/dist/index.js.map +1 -1
  262. package/dist/index.ts +4 -0
  263. package/dist/redux/features/solidStudioSlice.d.ts +9 -0
  264. package/dist/redux/features/solidStudioSlice.d.ts.map +1 -0
  265. package/dist/redux/features/solidStudioSlice.js +72 -0
  266. package/dist/redux/features/solidStudioSlice.js.map +1 -0
  267. package/dist/redux/features/solidStudioSlice.ts +78 -0
  268. package/dist/redux/features/toastSlice.d.ts +15 -0
  269. package/dist/redux/features/toastSlice.d.ts.map +1 -0
  270. package/dist/redux/features/toastSlice.js +20 -0
  271. package/dist/redux/features/toastSlice.js.map +1 -0
  272. package/dist/redux/features/toastSlice.ts +35 -0
  273. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  274. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  275. package/dist/redux/store/defaultStoreConfig.js +2 -1
  276. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  277. package/dist/redux/store/defaultStoreConfig.ts +2 -0
  278. package/dist/resources/images/errors/error-astronaut-404.png +0 -0
  279. package/dist/resources/shadcn-base.css +4171 -0
  280. package/dist/routes/SolidLayoutRegistry.d.ts +51 -0
  281. package/dist/routes/SolidLayoutRegistry.d.ts.map +1 -0
  282. package/dist/routes/SolidLayoutRegistry.js +108 -0
  283. package/dist/routes/SolidLayoutRegistry.js.map +1 -0
  284. package/dist/routes/SolidLayoutRegistry.tsx +157 -0
  285. package/dist/routes/guards/AdminGuard.d.ts +2 -0
  286. package/dist/routes/guards/AdminGuard.d.ts.map +1 -0
  287. package/dist/routes/guards/AdminGuard.js +16 -0
  288. package/dist/routes/guards/AdminGuard.js.map +1 -0
  289. package/dist/routes/guards/AdminGuard.tsx +17 -0
  290. package/dist/routes/pages/studio/StudioHomePage.d.ts +2 -0
  291. package/dist/routes/pages/studio/StudioHomePage.d.ts.map +1 -0
  292. package/dist/routes/pages/studio/StudioHomePage.js +22 -0
  293. package/dist/routes/pages/studio/StudioHomePage.js.map +1 -0
  294. package/dist/routes/pages/studio/StudioHomePage.tsx +106 -0
  295. package/dist/routes/pages/studio/StudioLandingPage.d.ts +2 -0
  296. package/dist/routes/pages/studio/StudioLandingPage.d.ts.map +1 -0
  297. package/dist/routes/pages/studio/StudioLandingPage.js +78 -0
  298. package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -0
  299. package/dist/routes/pages/studio/StudioLandingPage.tsx +320 -0
  300. package/package.json +1 -1
@@ -0,0 +1,1339 @@
1
+ /* ─────────────────────────────────────────────────────────────────────────────
2
+ SolidAiChat — uses the application's CSS custom-property theme so it
3
+ automatically adapts when the root class switches between light and dark.
4
+ Variables sourced from shadcn-base.css and PrimeReact theme files.
5
+ ───────────────────────────────────────────────────────────────────────────── */
6
+
7
+ /* ── Container ── */
8
+ .Container {
9
+ display: flex;
10
+ flex-direction: column;
11
+ height: 100%;
12
+ min-height: 480px;
13
+ background: var(--background);
14
+ color: var(--foreground);
15
+ font-family: inherit;
16
+ font-size: 14px;
17
+ position: relative;
18
+ overflow: hidden;
19
+ }
20
+
21
+ /* ── Header ── */
22
+ .Header {
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: space-between;
26
+ padding: 8px 12px;
27
+ border-bottom: 1px solid var(--border);
28
+ background: var(--card);
29
+ z-index: 10;
30
+ gap: 10px;
31
+ flex-shrink: 0;
32
+ }
33
+
34
+ .NewChatHeaderBtn {
35
+ display: inline-flex;
36
+ align-items: center;
37
+ gap: 5px;
38
+ font-size: 12px;
39
+ font-family: inherit;
40
+ font-weight: 500;
41
+ color: var(--muted-foreground);
42
+ background: transparent;
43
+ border: 1px solid var(--border);
44
+ border-radius: 7px;
45
+ padding: 0 10px;
46
+ height: 28px;
47
+ cursor: pointer;
48
+ white-space: nowrap;
49
+ flex-shrink: 0;
50
+ transition: background 0.12s, color 0.12s, border-color 0.12s;
51
+ }
52
+
53
+ .NewChatHeaderBtn:hover {
54
+ background: var(--accent);
55
+ color: var(--accent-foreground);
56
+ border-color: var(--solid-border-strong, var(--border));
57
+ }
58
+
59
+ .HeaderSpacer {
60
+ flex: 1;
61
+ }
62
+
63
+ .LogoBadge {
64
+ width: 26px;
65
+ height: 26px;
66
+ border-radius: 7px;
67
+ background: linear-gradient(135deg, var(--primary), #8b5cf6);
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ color: var(--primary-foreground);
72
+ flex-shrink: 0;
73
+ }
74
+
75
+ .HeaderTitle {
76
+ font-size: 13px;
77
+ font-weight: 700;
78
+ letter-spacing: 0.01em;
79
+ color: var(--foreground);
80
+ }
81
+
82
+ .StatusDot {
83
+ width: 6px;
84
+ height: 6px;
85
+ border-radius: 50%;
86
+ flex-shrink: 0;
87
+ }
88
+
89
+ .StatusOnline {
90
+ background: #22c55e;
91
+ box-shadow: 0 0 5px #22c55e66;
92
+ }
93
+
94
+ .StatusOffline {
95
+ background: #ef4444;
96
+ }
97
+
98
+ .StatusLabel {
99
+ display: flex;
100
+ align-items: center;
101
+ gap: 4px;
102
+ font-size: 11px;
103
+ color: var(--muted-foreground);
104
+ }
105
+
106
+ /* ── Hamburger button ── */
107
+ .HamburgerBtn {
108
+ display: flex;
109
+ align-items: center;
110
+ justify-content: center;
111
+ width: 28px;
112
+ height: 28px;
113
+ border-radius: 7px;
114
+ background: transparent;
115
+ border: 1px solid var(--border);
116
+ color: var(--muted-foreground);
117
+ cursor: pointer;
118
+ transition: background 0.15s, color 0.15s, border-color 0.15s;
119
+ flex-shrink: 0;
120
+ }
121
+
122
+ .HamburgerBtn:hover {
123
+ background: var(--accent);
124
+ color: var(--accent-foreground);
125
+ border-color: var(--solid-border-strong, var(--border));
126
+ }
127
+
128
+ /* ── Sessions menu anchor ── */
129
+ .SessionMenuAnchor {
130
+ position: relative;
131
+ }
132
+
133
+ /* ── Sessions dropdown ── */
134
+ .SessionMenu {
135
+ position: absolute;
136
+ top: calc(100% + 6px);
137
+ right: 0;
138
+ width: 280px;
139
+ background: var(--card);
140
+ border: 1px solid var(--border);
141
+ border-radius: 10px;
142
+ box-shadow: var(--shadow-soft, 0 12px 32px rgba(0, 0, 0, 0.2));
143
+ z-index: 200;
144
+ overflow: hidden;
145
+ animation: menuFadeIn 0.13s ease;
146
+ }
147
+
148
+ @keyframes menuFadeIn {
149
+ from {
150
+ opacity: 0;
151
+ transform: translateY(-4px);
152
+ }
153
+
154
+ to {
155
+ opacity: 1;
156
+ transform: translateY(0);
157
+ }
158
+ }
159
+
160
+ .SessionMenuNewChat {
161
+ display: flex;
162
+ align-items: center;
163
+ gap: 7px;
164
+ width: 100%;
165
+ padding: 10px 13px;
166
+ font-size: 13px;
167
+ font-weight: 600;
168
+ color: var(--primary);
169
+ background: none;
170
+ border: none;
171
+ border-bottom: 1px solid var(--border);
172
+ cursor: pointer;
173
+ text-align: left;
174
+ transition: background 0.12s;
175
+ }
176
+
177
+ .SessionMenuNewChat:hover {
178
+ background: var(--accent);
179
+ }
180
+
181
+ .SessionMenuSectionLabel {
182
+ padding: 8px 13px 5px;
183
+ font-size: 10px;
184
+ font-weight: 600;
185
+ color: var(--muted);
186
+ text-transform: uppercase;
187
+ letter-spacing: 0.07em;
188
+ }
189
+
190
+ .SessionList {
191
+ max-height: 296px;
192
+ overflow-y: auto;
193
+ scrollbar-width: thin;
194
+ scrollbar-color: var(--border) transparent;
195
+ }
196
+
197
+ .SessionList::-webkit-scrollbar {
198
+ width: 4px;
199
+ }
200
+
201
+ .SessionList::-webkit-scrollbar-thumb {
202
+ background: var(--border);
203
+ border-radius: 4px;
204
+ }
205
+
206
+ .SessionItem {
207
+ display: flex;
208
+ align-items: center;
209
+ gap: 8px;
210
+ width: 100%;
211
+ padding: 2px 4px;
212
+ background: none;
213
+ border: none;
214
+ border-top: 1px solid var(--border);
215
+ transition: background 0.12s;
216
+ }
217
+
218
+ .SessionItem:first-child {
219
+ border-top: none;
220
+ }
221
+
222
+ .SessionItemActive {
223
+ background: var(--accent) !important;
224
+ }
225
+
226
+ .SessionItemMain {
227
+ flex: 1;
228
+ display: flex;
229
+ flex-direction: column;
230
+ gap: 2px;
231
+ padding: 7px 9px;
232
+ cursor: pointer;
233
+ min-width: 0;
234
+ border-radius: 6px;
235
+ transition: background 0.1s;
236
+ }
237
+
238
+ .SessionItemMain:hover {
239
+ background: var(--accent);
240
+ }
241
+
242
+ .SessionItemPreview {
243
+ font-size: 12px;
244
+ color: var(--foreground);
245
+ white-space: nowrap;
246
+ overflow: hidden;
247
+ text-overflow: ellipsis;
248
+ max-width: 100%;
249
+ }
250
+
251
+ .SessionItemMeta {
252
+ font-size: 10px;
253
+ color: var(--muted);
254
+ }
255
+
256
+ .SessionDeleteBtn {
257
+ display: flex;
258
+ align-items: center;
259
+ justify-content: center;
260
+ width: 26px;
261
+ height: 26px;
262
+ border-radius: 6px;
263
+ background: transparent;
264
+ border: none;
265
+ color: var(--muted);
266
+ cursor: pointer;
267
+ transition: background 0.12s, color 0.12s;
268
+ flex-shrink: 0;
269
+ margin-right: 4px;
270
+ }
271
+
272
+ .SessionDeleteBtn:hover:not(:disabled) {
273
+ background: rgba(239, 68, 68, 0.1);
274
+ color: #ef4444;
275
+ }
276
+
277
+ .SessionDeleteBtn:disabled {
278
+ opacity: 0.5;
279
+ cursor: not-allowed;
280
+ }
281
+
282
+ .SessionMenuEmpty {
283
+ padding: 20px 13px;
284
+ text-align: center;
285
+ font-size: 12px;
286
+ color: var(--muted);
287
+ }
288
+
289
+ .SessionMenuLoading {
290
+ padding: 16px 13px;
291
+ display: flex;
292
+ align-items: center;
293
+ justify-content: center;
294
+ gap: 6px;
295
+ font-size: 12px;
296
+ color: var(--muted-foreground);
297
+ }
298
+
299
+ /* ── Reconnecting banner ── */
300
+ .ReconnectBanner {
301
+ display: flex;
302
+ align-items: center;
303
+ justify-content: center;
304
+ gap: 6px;
305
+ padding: 5px 14px;
306
+ font-size: 11px;
307
+ color: #ef4444;
308
+ background: rgba(239, 68, 68, 0.07);
309
+ border-bottom: 1px solid rgba(239, 68, 68, 0.18);
310
+ flex-shrink: 0;
311
+ }
312
+
313
+ /* ── Message list ── */
314
+ .MessageList {
315
+ flex: 1;
316
+ min-height: 0;
317
+ overflow-y: auto;
318
+ padding: 20px 18px;
319
+ display: flex;
320
+ flex-direction: column;
321
+ gap: 18px;
322
+ scrollbar-width: thin;
323
+ scrollbar-color: var(--border) transparent;
324
+ }
325
+
326
+ .MessageList::-webkit-scrollbar {
327
+ width: 4px;
328
+ }
329
+
330
+ .MessageList::-webkit-scrollbar-thumb {
331
+ background: var(--border);
332
+ border-radius: 4px;
333
+ }
334
+
335
+ /* ── Empty state ── */
336
+ .EmptyState {
337
+ flex: 1;
338
+ display: flex;
339
+ flex-direction: column;
340
+ align-items: center;
341
+ justify-content: center;
342
+ gap: 10px;
343
+ padding: 40px 20px;
344
+ text-align: center;
345
+ }
346
+
347
+ .EmptyIcon {
348
+ width: 52px;
349
+ height: 52px;
350
+ border-radius: 14px;
351
+ background: var(--accent);
352
+ border: 1px solid var(--border);
353
+ display: flex;
354
+ align-items: center;
355
+ justify-content: center;
356
+ color: var(--primary);
357
+ margin-bottom: 4px;
358
+ opacity: 0.8;
359
+ }
360
+
361
+ .EmptyTitle {
362
+ font-size: 15px;
363
+ font-weight: 600;
364
+ color: var(--foreground);
365
+ opacity: 0.7;
366
+ }
367
+
368
+ .EmptySubtitle {
369
+ font-size: 12px;
370
+ color: var(--muted-foreground);
371
+ opacity: 0.7;
372
+ }
373
+
374
+ /* ── AI turn group (avatar once + all events/responses) ── */
375
+ .AiTurnGroup {
376
+ display: flex;
377
+ align-items: flex-start;
378
+ gap: 9px;
379
+ max-width: 800px;
380
+ width: 100%;
381
+ }
382
+
383
+ .AiTurnContent {
384
+ display: flex;
385
+ flex-direction: column;
386
+ gap: 5px;
387
+ flex: 1;
388
+ min-width: 0;
389
+ }
390
+
391
+ /* ── Message rows ── */
392
+ .Row {
393
+ display: flex;
394
+ align-items: flex-start;
395
+ gap: 9px;
396
+ max-width: 800px;
397
+ width: 100%;
398
+ }
399
+
400
+ .RowUser {
401
+ flex-direction: row-reverse;
402
+ align-self: flex-end;
403
+ margin-left: auto;
404
+ }
405
+
406
+ .RowAssistant {
407
+ flex-direction: row;
408
+ align-self: flex-start;
409
+ }
410
+
411
+ /* ── Avatar ── */
412
+ .Avatar {
413
+ width: 26px;
414
+ height: 26px;
415
+ border-radius: 7px;
416
+ background: var(--accent);
417
+ border: 1px solid var(--border);
418
+ display: flex;
419
+ align-items: center;
420
+ justify-content: center;
421
+ color: var(--primary);
422
+ flex-shrink: 0;
423
+ margin-top: 2px;
424
+ }
425
+
426
+ .AvatarUser {
427
+ background: var(--accent);
428
+ color: var(--accent-foreground);
429
+ }
430
+
431
+ /* ── Bubble group ── */
432
+ .BubbleGroup {
433
+ display: flex;
434
+ flex-direction: column;
435
+ gap: 3px;
436
+ min-width: 0;
437
+ max-width: calc(100% - 70px);
438
+ }
439
+
440
+ .Bubble {
441
+ border-radius: 14px;
442
+ padding: 9px 13px;
443
+ line-height: 1.65;
444
+ word-break: break-word;
445
+ position: relative;
446
+ }
447
+
448
+ .BubbleUser {
449
+ background: var(--accent);
450
+ border: 1px solid var(--solid-border-strong, var(--border));
451
+ border-bottom-right-radius: 4px;
452
+ color: var(--accent-foreground);
453
+ }
454
+
455
+ .BubbleAssistant {
456
+ background: var(--card);
457
+ border: 1px solid var(--border);
458
+ color: var(--foreground);
459
+ }
460
+
461
+ .UserText {
462
+ font-size: 14px;
463
+ margin: 0;
464
+ white-space: pre-wrap;
465
+ }
466
+
467
+ /* ── Bubble meta ── */
468
+ .BubbleMeta {
469
+ display: flex;
470
+ align-items: center;
471
+ gap: 5px;
472
+ opacity: 0;
473
+ transition: opacity 0.15s;
474
+ height: 18px;
475
+ }
476
+
477
+ .Row:hover .BubbleMeta,
478
+ .AiTurnGroup:hover .BubbleMeta {
479
+ opacity: 1;
480
+ }
481
+
482
+ .BubbleMetaUser {
483
+ flex-direction: row-reverse;
484
+ }
485
+
486
+ .BubbleMetaAssistant {
487
+ flex-direction: row;
488
+ }
489
+
490
+ .Timestamp {
491
+ font-size: 10px;
492
+ color: var(--muted);
493
+ }
494
+
495
+ /* ── Copy button ── */
496
+ .CopyBtn {
497
+ display: flex;
498
+ align-items: center;
499
+ justify-content: center;
500
+ background: var(--accent);
501
+ border: 1px solid var(--border);
502
+ border-radius: 5px;
503
+ color: var(--muted-foreground);
504
+ width: 20px;
505
+ height: 20px;
506
+ cursor: pointer;
507
+ transition: background 0.15s, color 0.15s, border-color 0.15s;
508
+ }
509
+
510
+ .CopyBtn:hover {
511
+ background: var(--primary);
512
+ color: var(--primary-foreground);
513
+ border-color: var(--primary);
514
+ }
515
+
516
+ /* ── Typing dots (kept for reference, no longer used in JSX) ── */
517
+ .TypingBubble {
518
+ display: flex;
519
+ align-items: center;
520
+ gap: 5px;
521
+ padding: 11px 14px;
522
+ }
523
+
524
+ /* ── Agent status bubble ── */
525
+ .StatusBubble {
526
+ display: flex;
527
+ align-items: center;
528
+ gap: 7px;
529
+ padding: 7px 12px;
530
+ color: var(--primary);
531
+ }
532
+
533
+ .StatusText {
534
+ display: flex;
535
+ align-items: center;
536
+ gap: 5px;
537
+ font-size: 12px;
538
+ color: var(--muted-foreground);
539
+ font-style: italic;
540
+ }
541
+
542
+ .StatusStep {
543
+ color: var(--foreground);
544
+ font-style: normal;
545
+ font-weight: 500;
546
+ }
547
+
548
+ .StatusSep {
549
+ color: var(--muted);
550
+ font-style: normal;
551
+ }
552
+
553
+ /* ── Load older messages ── */
554
+ .LoadOlderWrap {
555
+ display: flex;
556
+ justify-content: center;
557
+ padding-bottom: 6px;
558
+ }
559
+
560
+ .LoadOlderBtn {
561
+ display: flex;
562
+ align-items: center;
563
+ gap: 5px;
564
+ font-size: 12px;
565
+ color: var(--muted-foreground);
566
+ background: var(--card);
567
+ border: 1px solid var(--border);
568
+ border-radius: 20px;
569
+ padding: 4px 13px;
570
+ cursor: pointer;
571
+ transition: background 0.15s, color 0.15s, border-color 0.15s;
572
+ }
573
+
574
+ .LoadOlderBtn:hover:not(:disabled) {
575
+ background: var(--accent);
576
+ color: var(--primary);
577
+ border-color: var(--primary);
578
+ }
579
+
580
+ .LoadOlderBtn:disabled {
581
+ opacity: 0.6;
582
+ cursor: default;
583
+ }
584
+
585
+ /* ── History loading spinner ── */
586
+ .HistoryLoading {
587
+ flex: 1;
588
+ display: flex;
589
+ flex-direction: column;
590
+ align-items: center;
591
+ justify-content: center;
592
+ gap: 10px;
593
+ color: var(--muted-foreground);
594
+ font-size: 13px;
595
+ opacity: 0.7;
596
+ }
597
+
598
+ /* ── Tool activity indicator ── */
599
+ .ToolBubble {
600
+ display: flex;
601
+ align-items: center;
602
+ gap: 7px;
603
+ padding: 8px 13px;
604
+ color: var(--primary);
605
+ }
606
+
607
+ .ToolLabel {
608
+ font-size: 12px;
609
+ color: var(--muted-foreground);
610
+ }
611
+
612
+ .Dot {
613
+ width: 5px;
614
+ height: 5px;
615
+ background: var(--primary);
616
+ border-radius: 50%;
617
+ animation: bounce 1.2s infinite;
618
+ }
619
+
620
+ .Dot:nth-child(2) {
621
+ animation-delay: 0.2s;
622
+ }
623
+
624
+ .Dot:nth-child(3) {
625
+ animation-delay: 0.4s;
626
+ }
627
+
628
+ @keyframes bounce {
629
+
630
+ 0%,
631
+ 60%,
632
+ 100% {
633
+ transform: translateY(0);
634
+ opacity: 0.55;
635
+ }
636
+
637
+ 30% {
638
+ transform: translateY(-5px);
639
+ opacity: 1;
640
+ }
641
+ }
642
+
643
+ /* ── Markdown ── */
644
+ .MarkdownRoot {
645
+ font-size: inherit;
646
+ font-family: inherit;
647
+ line-height: 1.65;
648
+ color: inherit;
649
+ }
650
+
651
+ .MarkdownRoot > *:first-child {
652
+ margin-top: 0 !important;
653
+ }
654
+
655
+ .MarkdownRoot > *:last-child {
656
+ margin-bottom: 0 !important;
657
+ }
658
+
659
+ .MarkdownRoot p {
660
+ margin: 0 0 8px;
661
+ }
662
+
663
+ .MarkdownRoot p:last-child {
664
+ margin-bottom: 0;
665
+ }
666
+
667
+ .MarkdownRoot h1,
668
+ .MarkdownRoot h2,
669
+ .MarkdownRoot h3 {
670
+ font-weight: 600;
671
+ margin: 16px 0 4px;
672
+ color: inherit;
673
+ line-height: 1.3;
674
+ }
675
+
676
+ .MarkdownRoot h1 {
677
+ font-size: 1.15em;
678
+ }
679
+
680
+ .MarkdownRoot h2 {
681
+ font-size: 1.05em;
682
+ }
683
+
684
+ .MarkdownRoot h3 {
685
+ font-size: 1em;
686
+ opacity: 0.85;
687
+ }
688
+
689
+ .MarkdownRoot ul,
690
+ .MarkdownRoot ol {
691
+ padding-left: 18px;
692
+ margin: 5px 0;
693
+ }
694
+
695
+ .MarkdownRoot li {
696
+ margin: 3px 0;
697
+ line-height: 1.55;
698
+ }
699
+
700
+ .MarkdownRoot li > p {
701
+ margin: 0;
702
+ }
703
+
704
+ .MarkdownRoot blockquote {
705
+ border-left: 2px solid var(--border);
706
+ padding: 4px 11px;
707
+ margin: 8px 0;
708
+ color: var(--muted-foreground);
709
+ font-style: italic;
710
+ }
711
+
712
+ .MarkdownRoot a,
713
+ .MarkdownLink {
714
+ color: var(--primary);
715
+ text-decoration: underline;
716
+ text-underline-offset: 2px;
717
+ cursor: pointer;
718
+ transition: opacity 0.15s;
719
+ }
720
+
721
+ .MarkdownRoot a:hover,
722
+ .MarkdownLink:hover {
723
+ opacity: 0.72;
724
+ }
725
+
726
+ .MarkdownRoot hr {
727
+ border: none;
728
+ border-top: 1px solid var(--border);
729
+ margin: 12px 0;
730
+ }
731
+
732
+ /* ── Markdown table ── */
733
+ .MarkdownTableWrapper {
734
+ overflow-x: auto;
735
+ margin: 8px 0;
736
+ border-radius: 7px;
737
+ border: 1px solid var(--border);
738
+ }
739
+
740
+ .MarkdownRoot table {
741
+ width: 100%;
742
+ border-collapse: collapse;
743
+ font-size: 13px;
744
+ margin: 0;
745
+ }
746
+
747
+ .MarkdownRoot th,
748
+ .MarkdownRoot td {
749
+ border-bottom: 1px solid var(--border);
750
+ border-right: 1px solid var(--border);
751
+ padding: 6px 12px;
752
+ text-align: left;
753
+ vertical-align: top;
754
+ }
755
+
756
+ .MarkdownRoot th:last-child,
757
+ .MarkdownRoot td:last-child {
758
+ border-right: none;
759
+ }
760
+
761
+ .MarkdownRoot tr:last-child td {
762
+ border-bottom: none;
763
+ }
764
+
765
+ .MarkdownRoot th {
766
+ background: var(--accent);
767
+ font-weight: 600;
768
+ font-size: 12px;
769
+ color: var(--muted-foreground);
770
+ text-transform: uppercase;
771
+ letter-spacing: 0.03em;
772
+ }
773
+
774
+ .MarkdownRoot td code {
775
+ font-size: 12px;
776
+ }
777
+
778
+ /* ── Inline code ── */
779
+ .InlineCode {
780
+ background: var(--accent);
781
+ border: 1px solid var(--border);
782
+ padding: 1px 5px;
783
+ border-radius: 4px;
784
+ font-size: 12.5px;
785
+ font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
786
+ color: var(--primary);
787
+ }
788
+
789
+ /* ── Code block ── */
790
+ .CodeBlockWrapper {
791
+ margin: 8px 0;
792
+ border-radius: 8px;
793
+ border: 1px solid var(--border);
794
+ overflow: hidden;
795
+ }
796
+
797
+ .CodeBlockHeader {
798
+ display: flex;
799
+ align-items: center;
800
+ justify-content: space-between;
801
+ background: var(--background);
802
+ padding: 5px 11px;
803
+ border-bottom: 1px solid var(--border);
804
+ }
805
+
806
+ .CodeLang {
807
+ font-size: 10px;
808
+ font-weight: 600;
809
+ color: var(--muted-foreground);
810
+ text-transform: uppercase;
811
+ letter-spacing: 0.06em;
812
+ }
813
+
814
+ .CodeCopyBtn {
815
+ display: flex;
816
+ align-items: center;
817
+ gap: 4px;
818
+ font-size: 11px;
819
+ color: var(--muted-foreground);
820
+ background: none;
821
+ border: none;
822
+ cursor: pointer;
823
+ padding: 2px 6px;
824
+ border-radius: 4px;
825
+ transition: background 0.15s, color 0.15s;
826
+ }
827
+
828
+ .CodeCopyBtn:hover {
829
+ background: var(--accent);
830
+ color: var(--primary);
831
+ }
832
+
833
+ .CodePre {
834
+ margin: 0;
835
+ padding: 13px;
836
+ background: var(--background);
837
+ overflow-x: auto;
838
+ font-size: 12.5px;
839
+ font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
840
+ line-height: 1.6;
841
+ color: var(--foreground);
842
+ scrollbar-width: thin;
843
+ scrollbar-color: var(--border) transparent;
844
+ }
845
+
846
+ /* ── Input area ── */
847
+ .InputArea {
848
+ padding: 10px 14px 14px;
849
+ border-top: 1px solid var(--border);
850
+ background: var(--card);
851
+ flex-shrink: 0;
852
+ }
853
+
854
+ .InputBox {
855
+ position: relative;
856
+ display: flex;
857
+ align-items: flex-end;
858
+ background: var(--background);
859
+ border: 1px solid var(--border);
860
+ border-radius: 12px;
861
+ overflow: hidden;
862
+ transition: border-color 0.2s, box-shadow 0.2s;
863
+ }
864
+
865
+ .InputBox:focus-within {
866
+ border-color: var(--primary);
867
+ box-shadow: 0 0 0 3px var(--ring, rgba(37, 99, 235, 0.18));
868
+ }
869
+
870
+ .InputBoxDisabled {
871
+ opacity: 0.45;
872
+ pointer-events: none;
873
+ }
874
+
875
+ .Textarea {
876
+ flex: 1;
877
+ background: transparent;
878
+ border: none;
879
+ color: var(--foreground);
880
+ padding: 10px 12px 10px;
881
+ resize: none;
882
+ font-size: 14px;
883
+ line-height: 1.6;
884
+ min-height: 44px;
885
+ max-height: 480px;
886
+ font-family: inherit;
887
+ box-sizing: border-box;
888
+ overflow-y: auto;
889
+ scrollbar-width: thin;
890
+ scrollbar-color: var(--border) transparent;
891
+ }
892
+
893
+ .Textarea::placeholder {
894
+ color: var(--muted);
895
+ }
896
+
897
+ .Textarea:focus {
898
+ outline: none;
899
+ }
900
+
901
+ /* ── Send button (inside InputBox) ── */
902
+ .SendBtn {
903
+ width: 28px;
904
+ height: 28px;
905
+ border-radius: 8px;
906
+ border: none;
907
+ background: transparent;
908
+ color: var(--muted);
909
+ display: flex;
910
+ align-items: center;
911
+ justify-content: center;
912
+ cursor: not-allowed;
913
+ transition: background 0.15s, color 0.15s, transform 0.1s;
914
+ flex-shrink: 0;
915
+ margin: 0 6px 7px 0;
916
+ }
917
+
918
+ .SendBtnActive {
919
+ background: var(--primary);
920
+ color: var(--primary-foreground);
921
+ cursor: pointer;
922
+ border-radius: 8px;
923
+ }
924
+
925
+ .SendBtnActive:hover {
926
+ opacity: 0.88;
927
+ }
928
+
929
+ .SendBtnActive:active {
930
+ transform: scale(0.92);
931
+ }
932
+
933
+ /* ── Tool call cards ── */
934
+ .ToolCard {
935
+ border-radius: 6px;
936
+ border: 1px solid var(--border);
937
+ overflow: hidden;
938
+ width: 100%;
939
+ max-width: 100%;
940
+ transition: border-color 0.15s, background 0.15s, opacity 0.15s;
941
+ font-size: 11px;
942
+ }
943
+
944
+ .ToolCardRunning {
945
+ border-color: rgba(59, 130, 246, 0.25);
946
+ background: rgba(59, 130, 246, 0.02);
947
+ }
948
+
949
+ .ToolCardDone {
950
+ border-color: var(--border);
951
+ background: transparent;
952
+ opacity: 0.7;
953
+ }
954
+
955
+ .ToolCardDone:hover {
956
+ opacity: 0.9;
957
+ }
958
+
959
+ .ToolCardWarning {
960
+ border-color: rgba(245, 158, 11, 0.5);
961
+ background: rgba(245, 158, 11, 0.04);
962
+ }
963
+
964
+ .ToolCardError {
965
+ border-color: rgba(239, 68, 68, 0.5);
966
+ background: rgba(239, 68, 68, 0.04);
967
+ }
968
+
969
+ .ToolCardHeader {
970
+ display: flex;
971
+ align-items: center;
972
+ gap: 6px;
973
+ padding: 6px 10px;
974
+ font-size: 12px;
975
+ flex-wrap: nowrap;
976
+ min-width: 0;
977
+ }
978
+
979
+ .ToolCardStatusIcon {
980
+ font-size: 10px;
981
+ color: rgb(59, 130, 246);
982
+ flex-shrink: 0;
983
+ }
984
+
985
+ .ToolCardStatusDone {
986
+ color: rgb(34, 197, 94);
987
+ opacity: 0.7;
988
+ }
989
+
990
+ .ToolCardStatusWarning {
991
+ color: rgb(245, 158, 11);
992
+ }
993
+
994
+ .ToolCardStatusError {
995
+ color: rgb(239, 68, 68);
996
+ }
997
+
998
+ .ToolCardToolIcon {
999
+ font-size: 10px;
1000
+ color: var(--muted);
1001
+ flex-shrink: 0;
1002
+ }
1003
+
1004
+ .ToolCardName {
1005
+ font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
1006
+ font-size: 10.5px;
1007
+ font-weight: 500;
1008
+ color: var(--muted-foreground);
1009
+ white-space: nowrap;
1010
+ flex-shrink: 0;
1011
+ }
1012
+
1013
+ .ToolCardDesc {
1014
+ font-size: 10.5px;
1015
+ color: var(--muted);
1016
+ overflow: hidden;
1017
+ text-overflow: ellipsis;
1018
+ white-space: nowrap;
1019
+ min-width: 0;
1020
+ flex: 1;
1021
+ max-width: 260px;
1022
+ }
1023
+
1024
+ .ToolCardBadge {
1025
+ font-size: 9px;
1026
+ color: var(--muted);
1027
+ border: 1px solid var(--border);
1028
+ border-radius: 3px;
1029
+ padding: 0 4px;
1030
+ line-height: 15px;
1031
+ white-space: nowrap;
1032
+ flex-shrink: 0;
1033
+ margin-left: auto;
1034
+ opacity: 0.7;
1035
+ }
1036
+
1037
+ .ToolCardDuration {
1038
+ font-size: 9px;
1039
+ font-variant-numeric: tabular-nums;
1040
+ color: var(--muted);
1041
+ white-space: nowrap;
1042
+ flex-shrink: 0;
1043
+ }
1044
+
1045
+ .ToolCardProgress {
1046
+ border-top: 1px solid var(--border);
1047
+ padding: 3px 8px 4px;
1048
+ display: flex;
1049
+ flex-direction: column;
1050
+ gap: 2px;
1051
+ background: rgba(0, 0, 0, 0.015);
1052
+ }
1053
+
1054
+ .ToolProgressItem {
1055
+ display: flex;
1056
+ align-items: center;
1057
+ gap: 4px;
1058
+ font-size: 10px;
1059
+ color: var(--muted);
1060
+ }
1061
+
1062
+ .ToolProgressLabel {
1063
+ flex: 1;
1064
+ min-width: 0;
1065
+ }
1066
+
1067
+ .ToolProgressDuration {
1068
+ font-size: 9px;
1069
+ font-variant-numeric: tabular-nums;
1070
+ color: var(--muted);
1071
+ opacity: 0.6;
1072
+ white-space: nowrap;
1073
+ margin-left: auto;
1074
+ }
1075
+
1076
+ .ToolProgressRunning {
1077
+ color: rgba(59, 130, 246, 0.8);
1078
+ font-weight: 500;
1079
+ }
1080
+
1081
+ .ToolProgressDone {
1082
+ color: var(--muted);
1083
+ opacity: 0.65;
1084
+ }
1085
+
1086
+ /* ── Tool output preview ── */
1087
+ .ToolCardOutput {
1088
+ border-top: 1px solid var(--border);
1089
+ padding: 6px 10px;
1090
+ background: rgba(0, 0, 0, 0.015);
1091
+ display: flex;
1092
+ flex-direction: column;
1093
+ gap: 4px;
1094
+ }
1095
+
1096
+ .ToolOutputHeader {
1097
+ display: flex;
1098
+ align-items: center;
1099
+ justify-content: space-between;
1100
+ font-size: 10px;
1101
+ font-weight: 600;
1102
+ color: var(--muted-foreground);
1103
+ text-transform: uppercase;
1104
+ letter-spacing: 0.02em;
1105
+ }
1106
+
1107
+ .ToolOutputText {
1108
+ font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
1109
+ font-size: 11px;
1110
+ line-height: 1.5;
1111
+ color: var(--foreground);
1112
+ white-space: pre-wrap;
1113
+ word-break: break-all;
1114
+ max-height: 300px;
1115
+ overflow-y: auto;
1116
+ scrollbar-width: thin;
1117
+ margin: 0;
1118
+ }
1119
+
1120
+ .ToolOutputWarning {
1121
+ color: rgb(180, 83, 9);
1122
+ }
1123
+
1124
+ .ToolOutputError {
1125
+ color: rgb(185, 28, 28);
1126
+ }
1127
+
1128
+ /* ── Persistent event / step rows ── */
1129
+ .EventRow {
1130
+ display: flex;
1131
+ align-items: center;
1132
+ gap: 7px;
1133
+ padding: 5px 10px;
1134
+ border-radius: 8px;
1135
+ font-size: 12px;
1136
+ font-family: inherit;
1137
+ line-height: 1.4;
1138
+ width: fit-content;
1139
+ max-width: 100%;
1140
+ transition: background 0.15s, color 0.15s;
1141
+ }
1142
+
1143
+ .EventRowActive {
1144
+ background: var(--accent);
1145
+ border: 1px solid var(--border);
1146
+ color: var(--muted-foreground);
1147
+ }
1148
+
1149
+ .EventRowActive i {
1150
+ color: var(--primary);
1151
+ }
1152
+
1153
+ .EventRowDone {
1154
+ background: transparent;
1155
+ border: 1px solid transparent;
1156
+ color: var(--muted);
1157
+ opacity: 0.45;
1158
+ }
1159
+
1160
+ .EventRowDone i {
1161
+ color: var(--muted-foreground);
1162
+ opacity: 0.6;
1163
+ }
1164
+
1165
+ /* ── Thinking indicator bubble ── */
1166
+ .ThinkingBubble {
1167
+ display: flex;
1168
+ align-items: center;
1169
+ gap: 8px;
1170
+ padding: 10px 14px;
1171
+ border-radius: 14px;
1172
+ border-bottom-left-radius: 4px;
1173
+ background: var(--card);
1174
+ border: 1px solid var(--border);
1175
+ width: fit-content;
1176
+ }
1177
+
1178
+ .ThinkingDots {
1179
+ display: flex;
1180
+ gap: 4px;
1181
+ align-items: center;
1182
+ }
1183
+
1184
+ .ThinkingDot {
1185
+ width: 6px;
1186
+ height: 6px;
1187
+ border-radius: 50%;
1188
+ background: var(--primary);
1189
+ animation: bounce 1.2s infinite;
1190
+ }
1191
+
1192
+ .ThinkingDot:nth-child(2) { animation-delay: 0.15s; }
1193
+ .ThinkingDot:nth-child(3) { animation-delay: 0.3s; }
1194
+
1195
+ .ThinkingLabel {
1196
+ font-size: 12px;
1197
+ color: var(--muted-foreground);
1198
+ }
1199
+
1200
+ /* ── Streaming cursor ── */
1201
+ .StreamingCursor {
1202
+ display: inline-block;
1203
+ width: 2px;
1204
+ height: 14px;
1205
+ background: var(--foreground);
1206
+ opacity: 0.6;
1207
+ margin-left: 2px;
1208
+ vertical-align: text-bottom;
1209
+ animation: cursorBlink 0.9s step-start infinite;
1210
+ }
1211
+
1212
+ @keyframes cursorBlink {
1213
+ 0%, 100% { opacity: 0.6; }
1214
+ 50% { opacity: 0; }
1215
+ }
1216
+
1217
+ /* ── Step divider ── */
1218
+ .StepDividerRow {
1219
+ display: flex;
1220
+ align-items: center;
1221
+ gap: 10px;
1222
+ padding: 6px 0 2px;
1223
+ width: 100%;
1224
+ }
1225
+
1226
+ .StepDividerLine {
1227
+ flex: 1;
1228
+ height: 1px;
1229
+ background: var(--border);
1230
+ }
1231
+
1232
+ .StepDividerLabel {
1233
+ font-size: 10px;
1234
+ font-weight: 600;
1235
+ color: var(--muted-foreground);
1236
+ text-transform: uppercase;
1237
+ letter-spacing: 0.07em;
1238
+ white-space: nowrap;
1239
+ opacity: 0.6;
1240
+ }
1241
+
1242
+ /* ── Error bubble ── */
1243
+ .ErrorBubble {
1244
+ display: flex;
1245
+ gap: 9px;
1246
+ align-items: flex-start;
1247
+ }
1248
+
1249
+ .ErrorIcon {
1250
+ display: flex;
1251
+ align-items: center;
1252
+ justify-content: center;
1253
+ width: 26px;
1254
+ height: 26px;
1255
+ border-radius: 7px;
1256
+ background: rgba(239, 68, 68, 0.1);
1257
+ color: #ef4444;
1258
+ flex-shrink: 0;
1259
+ margin-top: 2px;
1260
+ }
1261
+
1262
+ .ErrorContent {
1263
+ border-radius: 14px;
1264
+ border-bottom-left-radius: 4px;
1265
+ border: 1px solid rgba(239, 68, 68, 0.3);
1266
+ background: rgba(239, 68, 68, 0.05);
1267
+ padding: 9px 13px;
1268
+ max-width: 85%;
1269
+ }
1270
+
1271
+ .ErrorTitle {
1272
+ font-size: 11px;
1273
+ font-weight: 600;
1274
+ color: #ef4444;
1275
+ margin: 0 0 3px;
1276
+ }
1277
+
1278
+ .ErrorText {
1279
+ font-size: 13px;
1280
+ color: rgb(185, 28, 28);
1281
+ margin: 0;
1282
+ line-height: 1.5;
1283
+ }
1284
+
1285
+ /* ── Status dot extra states ── */
1286
+ .StatusRunning {
1287
+ background: #3b82f6;
1288
+ box-shadow: 0 0 5px #3b82f666;
1289
+ animation: statusPulse 1.5s ease-in-out infinite;
1290
+ }
1291
+
1292
+ .StatusConnecting {
1293
+ background: #eab308;
1294
+ box-shadow: 0 0 5px #eab30866;
1295
+ animation: statusPulse 1.5s ease-in-out infinite;
1296
+ }
1297
+
1298
+ @keyframes statusPulse {
1299
+ 0%, 100% { opacity: 1; }
1300
+ 50% { opacity: 0.5; }
1301
+ }
1302
+
1303
+ /* ── Tool card collapsible header button ── */
1304
+ .ToolCardHeaderBtn {
1305
+ display: flex;
1306
+ align-items: center;
1307
+ gap: 5px;
1308
+ width: 100%;
1309
+ padding: 4px 8px;
1310
+ font-size: 11px;
1311
+ flex-wrap: nowrap;
1312
+ min-width: 0;
1313
+ background: none;
1314
+ border: none;
1315
+ cursor: pointer;
1316
+ text-align: left;
1317
+ font-family: inherit;
1318
+ color: inherit;
1319
+ }
1320
+
1321
+ .ToolCardHeaderBtn:not([data-expandable="true"]) {
1322
+ cursor: default;
1323
+ }
1324
+
1325
+ .ToolCardChevron {
1326
+ font-size: 10px;
1327
+ color: var(--muted-foreground);
1328
+ transition: transform 0.2s;
1329
+ flex-shrink: 0;
1330
+ margin-left: 2px;
1331
+ }
1332
+
1333
+ .ToolCardChevronOpen {
1334
+ transform: rotate(90deg);
1335
+ }
1336
+
1337
+ .ToolCardExpandable {
1338
+ border-top: 1px solid var(--border);
1339
+ }