@elizaos/app-core 2.0.0-alpha.37

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 (1082) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/LICENSE +21 -0
  3. package/dist/App.d.ts +5 -0
  4. package/dist/App.d.ts.map +1 -0
  5. package/dist/App.js +198 -0
  6. package/dist/actions/character.d.ts +27 -0
  7. package/dist/actions/character.d.ts.map +1 -0
  8. package/dist/actions/character.js +97 -0
  9. package/dist/actions/chat-helpers.d.ts +47 -0
  10. package/dist/actions/chat-helpers.d.ts.map +1 -0
  11. package/dist/actions/chat-helpers.js +79 -0
  12. package/dist/actions/cloud.d.ts +17 -0
  13. package/dist/actions/cloud.d.ts.map +1 -0
  14. package/dist/actions/cloud.js +43 -0
  15. package/dist/actions/index.d.ts +12 -0
  16. package/dist/actions/index.d.ts.map +1 -0
  17. package/dist/actions/index.js +11 -0
  18. package/dist/actions/lifecycle.d.ts +43 -0
  19. package/dist/actions/lifecycle.d.ts.map +1 -0
  20. package/dist/actions/lifecycle.js +118 -0
  21. package/dist/actions/onboarding.d.ts +12 -0
  22. package/dist/actions/onboarding.d.ts.map +1 -0
  23. package/dist/actions/onboarding.js +28 -0
  24. package/dist/actions/triggers.d.ts +23 -0
  25. package/dist/actions/triggers.d.ts.map +1 -0
  26. package/dist/actions/triggers.js +148 -0
  27. package/dist/api/client.d.ts +2823 -0
  28. package/dist/api/client.d.ts.map +1 -0
  29. package/dist/api/client.js +2392 -0
  30. package/dist/api/index.d.ts +2 -0
  31. package/dist/api/index.d.ts.map +1 -0
  32. package/dist/api/index.js +1 -0
  33. package/dist/autonomy/index.d.ts +48 -0
  34. package/dist/autonomy/index.d.ts.map +1 -0
  35. package/dist/autonomy/index.js +330 -0
  36. package/dist/bridge/capacitor-bridge.d.ts +153 -0
  37. package/dist/bridge/capacitor-bridge.d.ts.map +1 -0
  38. package/dist/bridge/capacitor-bridge.js +193 -0
  39. package/dist/bridge/electrobun-rpc.d.ts +19 -0
  40. package/dist/bridge/electrobun-rpc.d.ts.map +1 -0
  41. package/dist/bridge/electrobun-rpc.js +27 -0
  42. package/dist/bridge/electrobun-runtime.d.ts +3 -0
  43. package/dist/bridge/electrobun-runtime.d.ts.map +1 -0
  44. package/dist/bridge/electrobun-runtime.js +17 -0
  45. package/dist/bridge/index.d.ts +6 -0
  46. package/dist/bridge/index.d.ts.map +1 -0
  47. package/dist/bridge/index.js +5 -0
  48. package/dist/bridge/native-plugins.d.ts +82 -0
  49. package/dist/bridge/native-plugins.d.ts.map +1 -0
  50. package/dist/bridge/native-plugins.js +39 -0
  51. package/dist/bridge/plugin-bridge.d.ts +116 -0
  52. package/dist/bridge/plugin-bridge.d.ts.map +1 -0
  53. package/dist/bridge/plugin-bridge.js +203 -0
  54. package/dist/bridge/storage-bridge.d.ts +39 -0
  55. package/dist/bridge/storage-bridge.d.ts.map +1 -0
  56. package/dist/bridge/storage-bridge.js +135 -0
  57. package/dist/chat/index.d.ts +57 -0
  58. package/dist/chat/index.d.ts.map +1 -0
  59. package/dist/chat/index.js +161 -0
  60. package/dist/coding/index.d.ts +25 -0
  61. package/dist/coding/index.d.ts.map +1 -0
  62. package/dist/coding/index.js +25 -0
  63. package/dist/components/AdvancedPageView.d.ts +17 -0
  64. package/dist/components/AdvancedPageView.d.ts.map +1 -0
  65. package/dist/components/AdvancedPageView.js +137 -0
  66. package/dist/components/AgentActivityBox.d.ts +7 -0
  67. package/dist/components/AgentActivityBox.d.ts.map +1 -0
  68. package/dist/components/AgentActivityBox.js +25 -0
  69. package/dist/components/ApiKeyConfig.d.ts +26 -0
  70. package/dist/components/ApiKeyConfig.d.ts.map +1 -0
  71. package/dist/components/ApiKeyConfig.js +121 -0
  72. package/dist/components/AppsPageView.d.ts +7 -0
  73. package/dist/components/AppsPageView.d.ts.map +1 -0
  74. package/dist/components/AppsPageView.js +31 -0
  75. package/dist/components/AppsView.d.ts +8 -0
  76. package/dist/components/AppsView.d.ts.map +1 -0
  77. package/dist/components/AppsView.js +149 -0
  78. package/dist/components/AvatarLoader.d.ts +9 -0
  79. package/dist/components/AvatarLoader.d.ts.map +1 -0
  80. package/dist/components/AvatarLoader.js +45 -0
  81. package/dist/components/AvatarSelector.d.ts +23 -0
  82. package/dist/components/AvatarSelector.d.ts.map +1 -0
  83. package/dist/components/AvatarSelector.js +105 -0
  84. package/dist/components/BscTradePanel.d.ts +22 -0
  85. package/dist/components/BscTradePanel.d.ts.map +1 -0
  86. package/dist/components/BscTradePanel.js +221 -0
  87. package/dist/components/BugReportModal.d.ts +2 -0
  88. package/dist/components/BugReportModal.d.ts.map +1 -0
  89. package/dist/components/BugReportModal.js +218 -0
  90. package/dist/components/CharacterView.d.ts +8 -0
  91. package/dist/components/CharacterView.d.ts.map +1 -0
  92. package/dist/components/CharacterView.js +703 -0
  93. package/dist/components/ChatAvatar.d.ts +8 -0
  94. package/dist/components/ChatAvatar.d.ts.map +1 -0
  95. package/dist/components/ChatAvatar.js +89 -0
  96. package/dist/components/ChatComposer.d.ts +37 -0
  97. package/dist/components/ChatComposer.d.ts.map +1 -0
  98. package/dist/components/ChatComposer.js +136 -0
  99. package/dist/components/ChatMessage.d.ts +24 -0
  100. package/dist/components/ChatMessage.d.ts.map +1 -0
  101. package/dist/components/ChatMessage.js +167 -0
  102. package/dist/components/ChatModalView.d.ts +10 -0
  103. package/dist/components/ChatModalView.d.ts.map +1 -0
  104. package/dist/components/ChatModalView.js +57 -0
  105. package/dist/components/ChatView.d.ts +14 -0
  106. package/dist/components/ChatView.d.ts.map +1 -0
  107. package/dist/components/ChatView.js +511 -0
  108. package/dist/components/CloudSourceControls.d.ts +13 -0
  109. package/dist/components/CloudSourceControls.d.ts.map +1 -0
  110. package/dist/components/CloudSourceControls.js +14 -0
  111. package/dist/components/CodingAgentSettingsSection.d.ts +2 -0
  112. package/dist/components/CodingAgentSettingsSection.d.ts.map +1 -0
  113. package/dist/components/CodingAgentSettingsSection.js +268 -0
  114. package/dist/components/CommandPalette.d.ts +2 -0
  115. package/dist/components/CommandPalette.d.ts.map +1 -0
  116. package/dist/components/CommandPalette.js +181 -0
  117. package/dist/components/CompanionSceneHost.d.ts +15 -0
  118. package/dist/components/CompanionSceneHost.d.ts.map +1 -0
  119. package/dist/components/CompanionSceneHost.js +343 -0
  120. package/dist/components/CompanionShell.d.ts +17 -0
  121. package/dist/components/CompanionShell.d.ts.map +1 -0
  122. package/dist/components/CompanionShell.js +15 -0
  123. package/dist/components/CompanionView.d.ts +2 -0
  124. package/dist/components/CompanionView.d.ts.map +1 -0
  125. package/dist/components/CompanionView.js +22 -0
  126. package/dist/components/ConfigPageView.d.ts +11 -0
  127. package/dist/components/ConfigPageView.d.ts.map +1 -0
  128. package/dist/components/ConfigPageView.js +275 -0
  129. package/dist/components/ConfigSaveFooter.d.ts +8 -0
  130. package/dist/components/ConfigSaveFooter.d.ts.map +1 -0
  131. package/dist/components/ConfigSaveFooter.js +10 -0
  132. package/dist/components/ConfirmModal.d.ts +61 -0
  133. package/dist/components/ConfirmModal.d.ts.map +1 -0
  134. package/dist/components/ConfirmModal.js +164 -0
  135. package/dist/components/ConnectionFailedBanner.d.ts +6 -0
  136. package/dist/components/ConnectionFailedBanner.d.ts.map +1 -0
  137. package/dist/components/ConnectionFailedBanner.js +22 -0
  138. package/dist/components/ConnectorsPageView.d.ts +7 -0
  139. package/dist/components/ConnectorsPageView.d.ts.map +1 -0
  140. package/dist/components/ConnectorsPageView.js +8 -0
  141. package/dist/components/ConversationsSidebar.d.ts +9 -0
  142. package/dist/components/ConversationsSidebar.d.ts.map +1 -0
  143. package/dist/components/ConversationsSidebar.js +116 -0
  144. package/dist/components/CustomActionEditor.d.ts +10 -0
  145. package/dist/components/CustomActionEditor.d.ts.map +1 -0
  146. package/dist/components/CustomActionEditor.js +578 -0
  147. package/dist/components/CustomActionsPanel.d.ts +9 -0
  148. package/dist/components/CustomActionsPanel.d.ts.map +1 -0
  149. package/dist/components/CustomActionsPanel.js +107 -0
  150. package/dist/components/CustomActionsView.d.ts +2 -0
  151. package/dist/components/CustomActionsView.d.ts.map +1 -0
  152. package/dist/components/CustomActionsView.js +134 -0
  153. package/dist/components/DatabasePageView.d.ts +5 -0
  154. package/dist/components/DatabasePageView.d.ts.map +1 -0
  155. package/dist/components/DatabasePageView.js +28 -0
  156. package/dist/components/DatabaseView.d.ts +9 -0
  157. package/dist/components/DatabaseView.d.ts.map +1 -0
  158. package/dist/components/DatabaseView.js +311 -0
  159. package/dist/components/ElizaCloudDashboard.d.ts +2 -0
  160. package/dist/components/ElizaCloudDashboard.d.ts.map +1 -0
  161. package/dist/components/ElizaCloudDashboard.js +657 -0
  162. package/dist/components/EmotePicker.d.ts +2 -0
  163. package/dist/components/EmotePicker.d.ts.map +1 -0
  164. package/dist/components/EmotePicker.js +343 -0
  165. package/dist/components/ErrorBoundary.d.ts +22 -0
  166. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  167. package/dist/components/ErrorBoundary.js +31 -0
  168. package/dist/components/FineTuningView.d.ts +2 -0
  169. package/dist/components/FineTuningView.d.ts.map +1 -0
  170. package/dist/components/FineTuningView.js +433 -0
  171. package/dist/components/GameView.d.ts +11 -0
  172. package/dist/components/GameView.d.ts.map +1 -0
  173. package/dist/components/GameView.js +295 -0
  174. package/dist/components/GameViewOverlay.d.ts +8 -0
  175. package/dist/components/GameViewOverlay.d.ts.map +1 -0
  176. package/dist/components/GameViewOverlay.js +70 -0
  177. package/dist/components/GlobalEmoteOverlay.d.ts +2 -0
  178. package/dist/components/GlobalEmoteOverlay.d.ts.map +1 -0
  179. package/dist/components/GlobalEmoteOverlay.js +112 -0
  180. package/dist/components/Header.d.ts +8 -0
  181. package/dist/components/Header.d.ts.map +1 -0
  182. package/dist/components/Header.js +121 -0
  183. package/dist/components/HeartbeatsView.d.ts +2 -0
  184. package/dist/components/HeartbeatsView.d.ts.map +1 -0
  185. package/dist/components/HeartbeatsView.js +378 -0
  186. package/dist/components/InventoryView.d.ts +10 -0
  187. package/dist/components/InventoryView.d.ts.map +1 -0
  188. package/dist/components/InventoryView.js +162 -0
  189. package/dist/components/KnowledgeView.d.ts +20 -0
  190. package/dist/components/KnowledgeView.d.ts.map +1 -0
  191. package/dist/components/KnowledgeView.js +480 -0
  192. package/dist/components/LanguageDropdown.d.ts +30 -0
  193. package/dist/components/LanguageDropdown.d.ts.map +1 -0
  194. package/dist/components/LanguageDropdown.js +98 -0
  195. package/dist/components/LifoMonitorPanel.d.ts +21 -0
  196. package/dist/components/LifoMonitorPanel.d.ts.map +1 -0
  197. package/dist/components/LifoMonitorPanel.js +24 -0
  198. package/dist/components/LifoSandboxView.d.ts +5 -0
  199. package/dist/components/LifoSandboxView.d.ts.map +1 -0
  200. package/dist/components/LifoSandboxView.js +333 -0
  201. package/dist/components/LoadingScreen.d.ts +13 -0
  202. package/dist/components/LoadingScreen.d.ts.map +1 -0
  203. package/dist/components/LoadingScreen.js +39 -0
  204. package/dist/components/LogsPageView.d.ts +2 -0
  205. package/dist/components/LogsPageView.d.ts.map +1 -0
  206. package/dist/components/LogsPageView.js +7 -0
  207. package/dist/components/LogsView.d.ts +5 -0
  208. package/dist/components/LogsView.d.ts.map +1 -0
  209. package/dist/components/LogsView.js +71 -0
  210. package/dist/components/MediaGalleryView.d.ts +9 -0
  211. package/dist/components/MediaGalleryView.d.ts.map +1 -0
  212. package/dist/components/MediaGalleryView.js +236 -0
  213. package/dist/components/MediaSettingsSection.d.ts +11 -0
  214. package/dist/components/MediaSettingsSection.d.ts.map +1 -0
  215. package/dist/components/MediaSettingsSection.js +329 -0
  216. package/dist/components/MessageContent.d.ts +51 -0
  217. package/dist/components/MessageContent.d.ts.map +1 -0
  218. package/dist/components/MessageContent.js +553 -0
  219. package/dist/components/OnboardingWizard.d.ts +2 -0
  220. package/dist/components/OnboardingWizard.d.ts.map +1 -0
  221. package/dist/components/OnboardingWizard.js +59 -0
  222. package/dist/components/PairingView.d.ts +5 -0
  223. package/dist/components/PairingView.d.ts.map +1 -0
  224. package/dist/components/PairingView.js +28 -0
  225. package/dist/components/PermissionsSection.d.ts +20 -0
  226. package/dist/components/PermissionsSection.d.ts.map +1 -0
  227. package/dist/components/PermissionsSection.js +368 -0
  228. package/dist/components/PluginsPageView.d.ts +5 -0
  229. package/dist/components/PluginsPageView.d.ts.map +1 -0
  230. package/dist/components/PluginsPageView.js +8 -0
  231. package/dist/components/PluginsView.d.ts +21 -0
  232. package/dist/components/PluginsView.d.ts.map +1 -0
  233. package/dist/components/PluginsView.js +1531 -0
  234. package/dist/components/ProviderSwitcher.d.ts +42 -0
  235. package/dist/components/ProviderSwitcher.d.ts.map +1 -0
  236. package/dist/components/ProviderSwitcher.js +480 -0
  237. package/dist/components/RestartBanner.d.ts +2 -0
  238. package/dist/components/RestartBanner.d.ts.map +1 -0
  239. package/dist/components/RestartBanner.js +36 -0
  240. package/dist/components/RuntimeView.d.ts +10 -0
  241. package/dist/components/RuntimeView.d.ts.map +1 -0
  242. package/dist/components/RuntimeView.js +165 -0
  243. package/dist/components/SaveCommandModal.d.ts +12 -0
  244. package/dist/components/SaveCommandModal.d.ts.map +1 -0
  245. package/dist/components/SaveCommandModal.js +84 -0
  246. package/dist/components/SecretsView.d.ts +9 -0
  247. package/dist/components/SecretsView.d.ts.map +1 -0
  248. package/dist/components/SecretsView.js +249 -0
  249. package/dist/components/SettingsView.d.ts +9 -0
  250. package/dist/components/SettingsView.d.ts.map +1 -0
  251. package/dist/components/SettingsView.js +230 -0
  252. package/dist/components/ShellOverlays.d.ts +8 -0
  253. package/dist/components/ShellOverlays.d.ts.map +1 -0
  254. package/dist/components/ShellOverlays.js +10 -0
  255. package/dist/components/ShortcutsOverlay.d.ts +2 -0
  256. package/dist/components/ShortcutsOverlay.d.ts.map +1 -0
  257. package/dist/components/ShortcutsOverlay.js +79 -0
  258. package/dist/components/SkillsView.d.ts +11 -0
  259. package/dist/components/SkillsView.d.ts.map +1 -0
  260. package/dist/components/SkillsView.js +358 -0
  261. package/dist/components/StartupFailureView.d.ts +8 -0
  262. package/dist/components/StartupFailureView.d.ts.map +1 -0
  263. package/dist/components/StartupFailureView.js +15 -0
  264. package/dist/components/StreamView.d.ts +16 -0
  265. package/dist/components/StreamView.d.ts.map +1 -0
  266. package/dist/components/StreamView.js +300 -0
  267. package/dist/components/StripeEmbeddedCheckout.d.ts +24 -0
  268. package/dist/components/StripeEmbeddedCheckout.d.ts.map +1 -0
  269. package/dist/components/StripeEmbeddedCheckout.js +101 -0
  270. package/dist/components/SubscriptionStatus.d.ts +22 -0
  271. package/dist/components/SubscriptionStatus.d.ts.map +1 -0
  272. package/dist/components/SubscriptionStatus.js +301 -0
  273. package/dist/components/SystemWarningBanner.d.ts +6 -0
  274. package/dist/components/SystemWarningBanner.d.ts.map +1 -0
  275. package/dist/components/SystemWarningBanner.js +46 -0
  276. package/dist/components/ThemeToggle.d.ts +21 -0
  277. package/dist/components/ThemeToggle.d.ts.map +1 -0
  278. package/dist/components/ThemeToggle.js +24 -0
  279. package/dist/components/TrajectoriesView.d.ts +12 -0
  280. package/dist/components/TrajectoriesView.d.ts.map +1 -0
  281. package/dist/components/TrajectoriesView.js +183 -0
  282. package/dist/components/TrajectoryDetailView.d.ts +13 -0
  283. package/dist/components/TrajectoryDetailView.d.ts.map +1 -0
  284. package/dist/components/TrajectoryDetailView.js +112 -0
  285. package/dist/components/TriggersView.d.ts +2 -0
  286. package/dist/components/TriggersView.d.ts.map +1 -0
  287. package/dist/components/TriggersView.js +1 -0
  288. package/dist/components/VectorBrowserView.d.ts +10 -0
  289. package/dist/components/VectorBrowserView.d.ts.map +1 -0
  290. package/dist/components/VectorBrowserView.js +997 -0
  291. package/dist/components/VoiceConfigView.d.ts +11 -0
  292. package/dist/components/VoiceConfigView.d.ts.map +1 -0
  293. package/dist/components/VoiceConfigView.js +329 -0
  294. package/dist/components/VrmStage.d.ts +21 -0
  295. package/dist/components/VrmStage.d.ts.map +1 -0
  296. package/dist/components/VrmStage.js +252 -0
  297. package/dist/components/WhatsAppQrOverlay.d.ts +8 -0
  298. package/dist/components/WhatsAppQrOverlay.d.ts.map +1 -0
  299. package/dist/components/WhatsAppQrOverlay.js +63 -0
  300. package/dist/components/apps/AppDetailPane.d.ts +15 -0
  301. package/dist/components/apps/AppDetailPane.d.ts.map +1 -0
  302. package/dist/components/apps/AppDetailPane.js +13 -0
  303. package/dist/components/apps/AppsCatalogGrid.d.ts +20 -0
  304. package/dist/components/apps/AppsCatalogGrid.d.ts.map +1 -0
  305. package/dist/components/apps/AppsCatalogGrid.js +18 -0
  306. package/dist/components/apps/extensions/HyperscapeAppDetailPanel.d.ts +3 -0
  307. package/dist/components/apps/extensions/HyperscapeAppDetailPanel.d.ts.map +1 -0
  308. package/dist/components/apps/extensions/HyperscapeAppDetailPanel.js +253 -0
  309. package/dist/components/apps/extensions/registry.d.ts +4 -0
  310. package/dist/components/apps/extensions/registry.d.ts.map +1 -0
  311. package/dist/components/apps/extensions/registry.js +10 -0
  312. package/dist/components/apps/extensions/types.d.ts +7 -0
  313. package/dist/components/apps/extensions/types.d.ts.map +1 -0
  314. package/dist/components/apps/extensions/types.js +1 -0
  315. package/dist/components/apps/helpers.d.ts +7 -0
  316. package/dist/components/apps/helpers.d.ts.map +1 -0
  317. package/dist/components/apps/helpers.js +46 -0
  318. package/dist/components/avatar/VrmAnimationLoader.d.ts +30 -0
  319. package/dist/components/avatar/VrmAnimationLoader.d.ts.map +1 -0
  320. package/dist/components/avatar/VrmAnimationLoader.js +99 -0
  321. package/dist/components/avatar/VrmBlinkController.d.ts +37 -0
  322. package/dist/components/avatar/VrmBlinkController.d.ts.map +1 -0
  323. package/dist/components/avatar/VrmBlinkController.js +98 -0
  324. package/dist/components/avatar/VrmCameraManager.d.ts +57 -0
  325. package/dist/components/avatar/VrmCameraManager.d.ts.map +1 -0
  326. package/dist/components/avatar/VrmCameraManager.js +277 -0
  327. package/dist/components/avatar/VrmEngine.d.ts +229 -0
  328. package/dist/components/avatar/VrmEngine.d.ts.map +1 -0
  329. package/dist/components/avatar/VrmEngine.js +1950 -0
  330. package/dist/components/avatar/VrmFootShadow.d.ts +18 -0
  331. package/dist/components/avatar/VrmFootShadow.d.ts.map +1 -0
  332. package/dist/components/avatar/VrmFootShadow.js +83 -0
  333. package/dist/components/avatar/VrmViewer.d.ts +45 -0
  334. package/dist/components/avatar/VrmViewer.d.ts.map +1 -0
  335. package/dist/components/avatar/VrmViewer.js +341 -0
  336. package/dist/components/avatar/mixamoVRMRigMap.d.ts +3 -0
  337. package/dist/components/avatar/mixamoVRMRigMap.d.ts.map +1 -0
  338. package/dist/components/avatar/mixamoVRMRigMap.js +56 -0
  339. package/dist/components/avatar/retargetMixamoFbxToVrm.d.ts +9 -0
  340. package/dist/components/avatar/retargetMixamoFbxToVrm.d.ts.map +1 -0
  341. package/dist/components/avatar/retargetMixamoFbxToVrm.js +88 -0
  342. package/dist/components/avatar/retargetMixamoGltfToVrm.d.ts +11 -0
  343. package/dist/components/avatar/retargetMixamoGltfToVrm.d.ts.map +1 -0
  344. package/dist/components/avatar/retargetMixamoGltfToVrm.js +80 -0
  345. package/dist/components/chainConfig.d.ts +84 -0
  346. package/dist/components/chainConfig.d.ts.map +1 -0
  347. package/dist/components/chainConfig.js +268 -0
  348. package/dist/components/companion/CompanionHeader.d.ts +15 -0
  349. package/dist/components/companion/CompanionHeader.d.ts.map +1 -0
  350. package/dist/components/companion/CompanionHeader.js +7 -0
  351. package/dist/components/companion/CompanionSceneHost.d.ts +2 -0
  352. package/dist/components/companion/CompanionSceneHost.d.ts.map +1 -0
  353. package/dist/components/companion/CompanionSceneHost.js +1 -0
  354. package/dist/components/companion/VrmStage.d.ts +3 -0
  355. package/dist/components/companion/VrmStage.d.ts.map +1 -0
  356. package/dist/components/companion/VrmStage.js +1 -0
  357. package/dist/components/companion/walletUtils.d.ts +95 -0
  358. package/dist/components/companion/walletUtils.d.ts.map +1 -0
  359. package/dist/components/companion/walletUtils.js +167 -0
  360. package/dist/components/companion-shell-styles.d.ts +38 -0
  361. package/dist/components/companion-shell-styles.d.ts.map +1 -0
  362. package/dist/components/companion-shell-styles.js +248 -0
  363. package/dist/components/confirm-delete-control.d.ts +16 -0
  364. package/dist/components/confirm-delete-control.d.ts.map +1 -0
  365. package/dist/components/confirm-delete-control.js +12 -0
  366. package/dist/components/conversations/ConversationListItem.d.ts +31 -0
  367. package/dist/components/conversations/ConversationListItem.d.ts.map +1 -0
  368. package/dist/components/conversations/ConversationListItem.js +52 -0
  369. package/dist/components/conversations/conversation-utils.d.ts +9 -0
  370. package/dist/components/conversations/conversation-utils.d.ts.map +1 -0
  371. package/dist/components/conversations/conversation-utils.js +138 -0
  372. package/dist/components/format.d.ts +54 -0
  373. package/dist/components/format.d.ts.map +1 -0
  374. package/dist/components/format.js +82 -0
  375. package/dist/components/index.d.ts +93 -0
  376. package/dist/components/index.d.ts.map +1 -0
  377. package/dist/components/index.js +92 -0
  378. package/dist/components/inventory/CopyableAddress.d.ts +8 -0
  379. package/dist/components/inventory/CopyableAddress.d.ts.map +1 -0
  380. package/dist/components/inventory/CopyableAddress.js +18 -0
  381. package/dist/components/inventory/InventoryToolbar.d.ts +25 -0
  382. package/dist/components/inventory/InventoryToolbar.d.ts.map +1 -0
  383. package/dist/components/inventory/InventoryToolbar.js +28 -0
  384. package/dist/components/inventory/NftGrid.d.ts +13 -0
  385. package/dist/components/inventory/NftGrid.d.ts.map +1 -0
  386. package/dist/components/inventory/NftGrid.js +29 -0
  387. package/dist/components/inventory/TokenLogo.d.ts +12 -0
  388. package/dist/components/inventory/TokenLogo.d.ts.map +1 -0
  389. package/dist/components/inventory/TokenLogo.js +33 -0
  390. package/dist/components/inventory/TokensTable.d.ts +24 -0
  391. package/dist/components/inventory/TokensTable.d.ts.map +1 -0
  392. package/dist/components/inventory/TokensTable.js +26 -0
  393. package/dist/components/inventory/constants.d.ts +52 -0
  394. package/dist/components/inventory/constants.d.ts.map +1 -0
  395. package/dist/components/inventory/constants.js +121 -0
  396. package/dist/components/inventory/index.d.ts +9 -0
  397. package/dist/components/inventory/index.d.ts.map +1 -0
  398. package/dist/components/inventory/index.js +8 -0
  399. package/dist/components/inventory/media-url.d.ts +6 -0
  400. package/dist/components/inventory/media-url.d.ts.map +1 -0
  401. package/dist/components/inventory/media-url.js +28 -0
  402. package/dist/components/inventory/useInventoryData.d.ts +53 -0
  403. package/dist/components/inventory/useInventoryData.d.ts.map +1 -0
  404. package/dist/components/inventory/useInventoryData.js +332 -0
  405. package/dist/components/knowledge-upload-image.d.ts +27 -0
  406. package/dist/components/knowledge-upload-image.d.ts.map +1 -0
  407. package/dist/components/knowledge-upload-image.js +146 -0
  408. package/dist/components/labels.d.ts +6 -0
  409. package/dist/components/labels.d.ts.map +1 -0
  410. package/dist/components/labels.js +40 -0
  411. package/dist/components/onboarding/ActivateStep.d.ts +2 -0
  412. package/dist/components/onboarding/ActivateStep.d.ts.map +1 -0
  413. package/dist/components/onboarding/ActivateStep.js +6 -0
  414. package/dist/components/onboarding/ConnectionStep.d.ts +2 -0
  415. package/dist/components/onboarding/ConnectionStep.d.ts.map +1 -0
  416. package/dist/components/onboarding/ConnectionStep.js +552 -0
  417. package/dist/components/onboarding/OnboardingPanel.d.ts +9 -0
  418. package/dist/components/onboarding/OnboardingPanel.d.ts.map +1 -0
  419. package/dist/components/onboarding/OnboardingPanel.js +24 -0
  420. package/dist/components/onboarding/OnboardingStepNav.d.ts +2 -0
  421. package/dist/components/onboarding/OnboardingStepNav.d.ts.map +1 -0
  422. package/dist/components/onboarding/OnboardingStepNav.js +14 -0
  423. package/dist/components/onboarding/PermissionsStep.d.ts +2 -0
  424. package/dist/components/onboarding/PermissionsStep.d.ts.map +1 -0
  425. package/dist/components/onboarding/PermissionsStep.js +7 -0
  426. package/dist/components/onboarding/RpcStep.d.ts +2 -0
  427. package/dist/components/onboarding/RpcStep.d.ts.map +1 -0
  428. package/dist/components/onboarding/RpcStep.js +125 -0
  429. package/dist/components/onboarding/WakeUpStep.d.ts +2 -0
  430. package/dist/components/onboarding/WakeUpStep.d.ts.map +1 -0
  431. package/dist/components/onboarding/WakeUpStep.js +82 -0
  432. package/dist/components/permissions/PermissionIcon.d.ts +4 -0
  433. package/dist/components/permissions/PermissionIcon.d.ts.map +1 -0
  434. package/dist/components/permissions/PermissionIcon.js +12 -0
  435. package/dist/components/permissions/StreamingPermissions.d.ts +20 -0
  436. package/dist/components/permissions/StreamingPermissions.d.ts.map +1 -0
  437. package/dist/components/permissions/StreamingPermissions.js +173 -0
  438. package/dist/components/plugins/showcase-data.d.ts +7 -0
  439. package/dist/components/plugins/showcase-data.d.ts.map +1 -0
  440. package/dist/components/plugins/showcase-data.js +464 -0
  441. package/dist/components/shared/ShellHeaderControls.d.ts +27 -0
  442. package/dist/components/shared/ShellHeaderControls.d.ts.map +1 -0
  443. package/dist/components/shared/ShellHeaderControls.js +60 -0
  444. package/dist/components/skeletons.d.ts +17 -0
  445. package/dist/components/skeletons.d.ts.map +1 -0
  446. package/dist/components/skeletons.js +22 -0
  447. package/dist/components/stream/ActivityFeed.d.ts +5 -0
  448. package/dist/components/stream/ActivityFeed.d.ts.map +1 -0
  449. package/dist/components/stream/ActivityFeed.js +57 -0
  450. package/dist/components/stream/AvatarPip.d.ts +5 -0
  451. package/dist/components/stream/AvatarPip.d.ts.map +1 -0
  452. package/dist/components/stream/AvatarPip.js +6 -0
  453. package/dist/components/stream/ChatContent.d.ts +6 -0
  454. package/dist/components/stream/ChatContent.d.ts.map +1 -0
  455. package/dist/components/stream/ChatContent.js +69 -0
  456. package/dist/components/stream/ChatTicker.d.ts +5 -0
  457. package/dist/components/stream/ChatTicker.d.ts.map +1 -0
  458. package/dist/components/stream/ChatTicker.js +34 -0
  459. package/dist/components/stream/IdleContent.d.ts +5 -0
  460. package/dist/components/stream/IdleContent.d.ts.map +1 -0
  461. package/dist/components/stream/IdleContent.js +17 -0
  462. package/dist/components/stream/StatusBar.d.ts +36 -0
  463. package/dist/components/stream/StatusBar.d.ts.map +1 -0
  464. package/dist/components/stream/StatusBar.js +140 -0
  465. package/dist/components/stream/StreamSettings.d.ts +33 -0
  466. package/dist/components/stream/StreamSettings.d.ts.map +1 -0
  467. package/dist/components/stream/StreamSettings.js +99 -0
  468. package/dist/components/stream/StreamTerminal.d.ts +2 -0
  469. package/dist/components/stream/StreamTerminal.d.ts.map +1 -0
  470. package/dist/components/stream/StreamTerminal.js +52 -0
  471. package/dist/components/stream/StreamVoiceConfig.d.ts +10 -0
  472. package/dist/components/stream/StreamVoiceConfig.d.ts.map +1 -0
  473. package/dist/components/stream/StreamVoiceConfig.js +88 -0
  474. package/dist/components/stream/helpers.d.ts +32 -0
  475. package/dist/components/stream/helpers.d.ts.map +1 -0
  476. package/dist/components/stream/helpers.js +110 -0
  477. package/dist/components/stream/overlays/OverlayLayer.d.ts +20 -0
  478. package/dist/components/stream/overlays/OverlayLayer.d.ts.map +1 -0
  479. package/dist/components/stream/overlays/OverlayLayer.js +24 -0
  480. package/dist/components/stream/overlays/built-in/ActionTickerWidget.d.ts +8 -0
  481. package/dist/components/stream/overlays/built-in/ActionTickerWidget.d.ts.map +1 -0
  482. package/dist/components/stream/overlays/built-in/ActionTickerWidget.js +44 -0
  483. package/dist/components/stream/overlays/built-in/AlertPopupWidget.d.ts +7 -0
  484. package/dist/components/stream/overlays/built-in/AlertPopupWidget.d.ts.map +1 -0
  485. package/dist/components/stream/overlays/built-in/AlertPopupWidget.js +62 -0
  486. package/dist/components/stream/overlays/built-in/BrandingWidget.d.ts +7 -0
  487. package/dist/components/stream/overlays/built-in/BrandingWidget.d.ts.map +1 -0
  488. package/dist/components/stream/overlays/built-in/BrandingWidget.js +36 -0
  489. package/dist/components/stream/overlays/built-in/CustomHtmlWidget.d.ts +26 -0
  490. package/dist/components/stream/overlays/built-in/CustomHtmlWidget.d.ts.map +1 -0
  491. package/dist/components/stream/overlays/built-in/CustomHtmlWidget.js +78 -0
  492. package/dist/components/stream/overlays/built-in/PeonGlassWidget.d.ts +11 -0
  493. package/dist/components/stream/overlays/built-in/PeonGlassWidget.d.ts.map +1 -0
  494. package/dist/components/stream/overlays/built-in/PeonGlassWidget.js +188 -0
  495. package/dist/components/stream/overlays/built-in/PeonHudWidget.d.ts +10 -0
  496. package/dist/components/stream/overlays/built-in/PeonHudWidget.d.ts.map +1 -0
  497. package/dist/components/stream/overlays/built-in/PeonHudWidget.js +168 -0
  498. package/dist/components/stream/overlays/built-in/PeonSakuraWidget.d.ts +11 -0
  499. package/dist/components/stream/overlays/built-in/PeonSakuraWidget.d.ts.map +1 -0
  500. package/dist/components/stream/overlays/built-in/PeonSakuraWidget.js +213 -0
  501. package/dist/components/stream/overlays/built-in/ThoughtBubbleWidget.d.ts +8 -0
  502. package/dist/components/stream/overlays/built-in/ThoughtBubbleWidget.d.ts.map +1 -0
  503. package/dist/components/stream/overlays/built-in/ThoughtBubbleWidget.js +59 -0
  504. package/dist/components/stream/overlays/built-in/ViewerCountWidget.d.ts +7 -0
  505. package/dist/components/stream/overlays/built-in/ViewerCountWidget.d.ts.map +1 -0
  506. package/dist/components/stream/overlays/built-in/ViewerCountWidget.js +34 -0
  507. package/dist/components/stream/overlays/built-in/index.d.ts +13 -0
  508. package/dist/components/stream/overlays/built-in/index.d.ts.map +1 -0
  509. package/dist/components/stream/overlays/built-in/index.js +12 -0
  510. package/dist/components/stream/overlays/registry.d.ts +11 -0
  511. package/dist/components/stream/overlays/registry.d.ts.map +1 -0
  512. package/dist/components/stream/overlays/registry.js +16 -0
  513. package/dist/components/stream/overlays/types.d.ts +67 -0
  514. package/dist/components/stream/overlays/types.d.ts.map +1 -0
  515. package/dist/components/stream/overlays/types.js +7 -0
  516. package/dist/components/stream/overlays/useOverlayLayout.d.ts +27 -0
  517. package/dist/components/stream/overlays/useOverlayLayout.d.ts.map +1 -0
  518. package/dist/components/stream/overlays/useOverlayLayout.js +162 -0
  519. package/dist/components/trajectory-format.d.ts +6 -0
  520. package/dist/components/trajectory-format.d.ts.map +1 -0
  521. package/dist/components/trajectory-format.js +43 -0
  522. package/dist/components/ui-badges.d.ts +23 -0
  523. package/dist/components/ui-badges.d.ts.map +1 -0
  524. package/dist/components/ui-badges.js +38 -0
  525. package/dist/components/ui-switch.d.ts +14 -0
  526. package/dist/components/ui-switch.d.ts.map +1 -0
  527. package/dist/components/ui-switch.js +15 -0
  528. package/dist/components/vector-browser-three.d.ts +4 -0
  529. package/dist/components/vector-browser-three.d.ts.map +1 -0
  530. package/dist/components/vector-browser-three.js +19 -0
  531. package/dist/config/config-catalog.d.ts +376 -0
  532. package/dist/config/config-catalog.d.ts.map +1 -0
  533. package/dist/config/config-catalog.js +724 -0
  534. package/dist/config/config-field.d.ts +68 -0
  535. package/dist/config/config-field.d.ts.map +1 -0
  536. package/dist/config/config-field.js +821 -0
  537. package/dist/config/config-renderer.d.ts +176 -0
  538. package/dist/config/config-renderer.d.ts.map +1 -0
  539. package/dist/config/config-renderer.js +403 -0
  540. package/dist/config/index.d.ts +5 -0
  541. package/dist/config/index.d.ts.map +1 -0
  542. package/dist/config/index.js +4 -0
  543. package/dist/config/ui-renderer.d.ts +26 -0
  544. package/dist/config/ui-renderer.d.ts.map +1 -0
  545. package/dist/config/ui-renderer.js +815 -0
  546. package/dist/config/ui-spec.d.ts +164 -0
  547. package/dist/config/ui-spec.d.ts.map +1 -0
  548. package/dist/config/ui-spec.js +13 -0
  549. package/dist/events/index.d.ts +42 -0
  550. package/dist/events/index.d.ts.map +1 -0
  551. package/dist/events/index.js +41 -0
  552. package/dist/hooks/index.d.ts +14 -0
  553. package/dist/hooks/index.d.ts.map +1 -0
  554. package/dist/hooks/index.js +13 -0
  555. package/dist/hooks/useBugReport.d.ts +14 -0
  556. package/dist/hooks/useBugReport.d.ts.map +1 -0
  557. package/dist/hooks/useBugReport.js +18 -0
  558. package/dist/hooks/useCanvasWindow.d.ts +38 -0
  559. package/dist/hooks/useCanvasWindow.d.ts.map +1 -0
  560. package/dist/hooks/useCanvasWindow.js +273 -0
  561. package/dist/hooks/useChatAvatarVoice.d.ts +10 -0
  562. package/dist/hooks/useChatAvatarVoice.d.ts.map +1 -0
  563. package/dist/hooks/useChatAvatarVoice.js +71 -0
  564. package/dist/hooks/useContextMenu.d.ts +17 -0
  565. package/dist/hooks/useContextMenu.d.ts.map +1 -0
  566. package/dist/hooks/useContextMenu.js +100 -0
  567. package/dist/hooks/useKeyboardShortcuts.d.ts +17 -0
  568. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  569. package/dist/hooks/useKeyboardShortcuts.js +67 -0
  570. package/dist/hooks/useLifoSync.d.ts +18 -0
  571. package/dist/hooks/useLifoSync.d.ts.map +1 -0
  572. package/dist/hooks/useLifoSync.js +113 -0
  573. package/dist/hooks/useMemoryMonitor.d.ts +87 -0
  574. package/dist/hooks/useMemoryMonitor.d.ts.map +1 -0
  575. package/dist/hooks/useMemoryMonitor.js +210 -0
  576. package/dist/hooks/useRenderGuard.d.ts +17 -0
  577. package/dist/hooks/useRenderGuard.d.ts.map +1 -0
  578. package/dist/hooks/useRenderGuard.js +36 -0
  579. package/dist/hooks/useRetakeCapture.d.ts +12 -0
  580. package/dist/hooks/useRetakeCapture.d.ts.map +1 -0
  581. package/dist/hooks/useRetakeCapture.js +59 -0
  582. package/dist/hooks/useStreamPopoutNavigation.d.ts +3 -0
  583. package/dist/hooks/useStreamPopoutNavigation.d.ts.map +1 -0
  584. package/dist/hooks/useStreamPopoutNavigation.js +17 -0
  585. package/dist/hooks/useTimeout.d.ts +11 -0
  586. package/dist/hooks/useTimeout.d.ts.map +1 -0
  587. package/dist/hooks/useTimeout.js +32 -0
  588. package/dist/hooks/useVoiceChat.d.ts +129 -0
  589. package/dist/hooks/useVoiceChat.d.ts.map +1 -0
  590. package/dist/hooks/useVoiceChat.js +1071 -0
  591. package/dist/hooks/useWhatsAppPairing.d.ts +11 -0
  592. package/dist/hooks/useWhatsAppPairing.d.ts.map +1 -0
  593. package/dist/hooks/useWhatsAppPairing.js +95 -0
  594. package/dist/i18n/index.d.ts +7 -0
  595. package/dist/i18n/index.d.ts.map +1 -0
  596. package/dist/i18n/index.js +53 -0
  597. package/dist/i18n/locales/en.json +1196 -0
  598. package/dist/i18n/locales/es.json +1196 -0
  599. package/dist/i18n/locales/ko.json +1196 -0
  600. package/dist/i18n/locales/pt.json +1196 -0
  601. package/dist/i18n/locales/zh-CN.json +1196 -0
  602. package/dist/i18n/messages.d.ts +6 -0
  603. package/dist/i18n/messages.d.ts.map +1 -0
  604. package/dist/i18n/messages.js +14 -0
  605. package/dist/index.d.ts +5 -0
  606. package/dist/index.d.ts.map +1 -0
  607. package/dist/index.js +6 -0
  608. package/dist/navigation/index.d.ts +27 -0
  609. package/dist/navigation/index.d.ts.map +1 -0
  610. package/dist/navigation/index.js +230 -0
  611. package/dist/package.json +161 -0
  612. package/dist/platform/browser-launch.d.ts +2 -0
  613. package/dist/platform/browser-launch.d.ts.map +1 -0
  614. package/dist/platform/browser-launch.js +109 -0
  615. package/dist/platform/index.d.ts +64 -0
  616. package/dist/platform/index.d.ts.map +1 -0
  617. package/dist/platform/index.js +155 -0
  618. package/dist/platform/init.d.ts +40 -0
  619. package/dist/platform/init.d.ts.map +1 -0
  620. package/dist/platform/init.js +158 -0
  621. package/dist/providers/index.d.ts +13 -0
  622. package/dist/providers/index.d.ts.map +1 -0
  623. package/dist/providers/index.js +72 -0
  624. package/dist/state/AppContext.d.ts +11 -0
  625. package/dist/state/AppContext.d.ts.map +1 -0
  626. package/dist/state/AppContext.js +4496 -0
  627. package/dist/state/index.d.ts +7 -0
  628. package/dist/state/index.d.ts.map +1 -0
  629. package/dist/state/index.js +6 -0
  630. package/dist/state/internal.d.ts +6 -0
  631. package/dist/state/internal.d.ts.map +1 -0
  632. package/dist/state/internal.js +5 -0
  633. package/dist/state/parsers.d.ts +26 -0
  634. package/dist/state/parsers.d.ts.map +1 -0
  635. package/dist/state/parsers.js +255 -0
  636. package/dist/state/persistence.d.ts +36 -0
  637. package/dist/state/persistence.d.ts.map +1 -0
  638. package/dist/state/persistence.js +254 -0
  639. package/dist/state/types.d.ts +402 -0
  640. package/dist/state/types.d.ts.map +1 -0
  641. package/dist/state/types.js +70 -0
  642. package/dist/state/ui-preferences.d.ts +3 -0
  643. package/dist/state/ui-preferences.d.ts.map +1 -0
  644. package/dist/state/ui-preferences.js +1 -0
  645. package/dist/state/useApp.d.ts +4 -0
  646. package/dist/state/useApp.d.ts.map +1 -0
  647. package/dist/state/useApp.js +22 -0
  648. package/dist/state/vrm.d.ts +19 -0
  649. package/dist/state/vrm.d.ts.map +1 -0
  650. package/dist/state/vrm.js +65 -0
  651. package/dist/stories/AppMockProvider.d.ts +15 -0
  652. package/dist/stories/AppMockProvider.d.ts.map +1 -0
  653. package/dist/stories/AppMockProvider.js +14 -0
  654. package/dist/styles/anime.css +6324 -0
  655. package/dist/styles/base.css +196 -0
  656. package/dist/styles/onboarding-game.css +716 -0
  657. package/dist/styles/styles.css +2085 -0
  658. package/dist/styles/xterm.css +241 -0
  659. package/dist/types/index.d.ts +657 -0
  660. package/dist/types/index.d.ts.map +1 -0
  661. package/dist/types/index.js +1 -0
  662. package/dist/utils/asset-url.d.ts +26 -0
  663. package/dist/utils/asset-url.d.ts.map +1 -0
  664. package/dist/utils/asset-url.js +99 -0
  665. package/dist/utils/assistant-text.d.ts +2 -0
  666. package/dist/utils/assistant-text.d.ts.map +1 -0
  667. package/dist/utils/assistant-text.js +161 -0
  668. package/dist/utils/clipboard.d.ts +2 -0
  669. package/dist/utils/clipboard.d.ts.map +1 -0
  670. package/dist/utils/clipboard.js +38 -0
  671. package/dist/utils/desktop-dialogs.d.ts +19 -0
  672. package/dist/utils/desktop-dialogs.d.ts.map +1 -0
  673. package/dist/utils/desktop-dialogs.js +50 -0
  674. package/dist/utils/index.d.ts +7 -0
  675. package/dist/utils/index.d.ts.map +1 -0
  676. package/dist/utils/index.js +6 -0
  677. package/dist/utils/number-parsing.d.ts +44 -0
  678. package/dist/utils/number-parsing.d.ts.map +1 -0
  679. package/dist/utils/number-parsing.js +56 -0
  680. package/dist/utils/openExternalUrl.d.ts +2 -0
  681. package/dist/utils/openExternalUrl.d.ts.map +1 -0
  682. package/dist/utils/openExternalUrl.js +17 -0
  683. package/dist/utils/spoken-text.d.ts +2 -0
  684. package/dist/utils/spoken-text.d.ts.map +1 -0
  685. package/dist/utils/spoken-text.js +56 -0
  686. package/dist/utils/streaming-text.d.ts +3 -0
  687. package/dist/utils/streaming-text.d.ts.map +1 -0
  688. package/dist/utils/streaming-text.js +87 -0
  689. package/dist/voice/index.d.ts +2 -0
  690. package/dist/voice/index.d.ts.map +1 -0
  691. package/dist/voice/index.js +1 -0
  692. package/dist/voice/types.d.ts +25 -0
  693. package/dist/voice/types.d.ts.map +1 -0
  694. package/dist/voice/types.js +166 -0
  695. package/package.json +86 -0
  696. package/src/App.tsx +469 -0
  697. package/src/actions/character.ts +113 -0
  698. package/src/actions/chat-helpers.ts +100 -0
  699. package/src/actions/cloud.ts +59 -0
  700. package/src/actions/index.ts +12 -0
  701. package/src/actions/lifecycle.ts +175 -0
  702. package/src/actions/onboarding.ts +46 -0
  703. package/src/actions/triggers.ts +190 -0
  704. package/src/ambient.d.ts +16 -0
  705. package/src/api/client.ts +5616 -0
  706. package/src/api/index.ts +1 -0
  707. package/src/autonomy/index.ts +477 -0
  708. package/src/bridge/capacitor-bridge.ts +295 -0
  709. package/src/bridge/electrobun-rpc.ts +58 -0
  710. package/src/bridge/electrobun-runtime.ts +28 -0
  711. package/src/bridge/index.ts +5 -0
  712. package/src/bridge/native-plugins.ts +134 -0
  713. package/src/bridge/plugin-bridge.ts +352 -0
  714. package/src/bridge/storage-bridge.ts +162 -0
  715. package/src/chat/index.ts +251 -0
  716. package/src/coding/index.ts +43 -0
  717. package/src/components/AdvancedPageView.tsx +362 -0
  718. package/src/components/AgentActivityBox.tsx +49 -0
  719. package/src/components/ApiKeyConfig.tsx +224 -0
  720. package/src/components/AppsPageView.tsx +52 -0
  721. package/src/components/AppsView.tsx +293 -0
  722. package/src/components/AvatarLoader.tsx +86 -0
  723. package/src/components/AvatarSelector.tsx +223 -0
  724. package/src/components/BscTradePanel.tsx +549 -0
  725. package/src/components/BugReportModal.tsx +499 -0
  726. package/src/components/CharacterView.tsx +1623 -0
  727. package/src/components/ChatAvatar.test.ts +96 -0
  728. package/src/components/ChatAvatar.tsx +147 -0
  729. package/src/components/ChatComposer.tsx +330 -0
  730. package/src/components/ChatMessage.tsx +448 -0
  731. package/src/components/ChatModalView.test.tsx +118 -0
  732. package/src/components/ChatModalView.tsx +125 -0
  733. package/src/components/ChatView.tsx +999 -0
  734. package/src/components/CloudSourceControls.tsx +80 -0
  735. package/src/components/CodingAgentSettingsSection.tsx +536 -0
  736. package/src/components/CommandPalette.tsx +284 -0
  737. package/src/components/CompanionSceneHost.tsx +498 -0
  738. package/src/components/CompanionShell.tsx +31 -0
  739. package/src/components/CompanionView.tsx +109 -0
  740. package/src/components/ConfigPageView.tsx +722 -0
  741. package/src/components/ConfigSaveFooter.tsx +41 -0
  742. package/src/components/ConfirmModal.tsx +379 -0
  743. package/src/components/ConnectionFailedBanner.tsx +91 -0
  744. package/src/components/ConnectorsPageView.tsx +13 -0
  745. package/src/components/ConversationsSidebar.tsx +279 -0
  746. package/src/components/CustomActionEditor.tsx +1125 -0
  747. package/src/components/CustomActionsPanel.tsx +288 -0
  748. package/src/components/CustomActionsView.tsx +322 -0
  749. package/src/components/DatabasePageView.tsx +55 -0
  750. package/src/components/DatabaseView.tsx +814 -0
  751. package/src/components/ElizaCloudDashboard.tsx +1696 -0
  752. package/src/components/EmotePicker.tsx +529 -0
  753. package/src/components/ErrorBoundary.tsx +76 -0
  754. package/src/components/FineTuningView.tsx +1080 -0
  755. package/src/components/GameView.tsx +551 -0
  756. package/src/components/GameViewOverlay.tsx +133 -0
  757. package/src/components/GlobalEmoteOverlay.tsx +152 -0
  758. package/src/components/Header.test.tsx +413 -0
  759. package/src/components/Header.tsx +400 -0
  760. package/src/components/HeartbeatsView.tsx +1002 -0
  761. package/src/components/InventoryView.tsx +372 -0
  762. package/src/components/KnowledgeView.tsx +1128 -0
  763. package/src/components/LanguageDropdown.tsx +187 -0
  764. package/src/components/LifoMonitorPanel.tsx +196 -0
  765. package/src/components/LifoSandboxView.tsx +499 -0
  766. package/src/components/LoadingScreen.tsx +77 -0
  767. package/src/components/LogsPageView.tsx +17 -0
  768. package/src/components/LogsView.tsx +239 -0
  769. package/src/components/MediaGalleryView.tsx +432 -0
  770. package/src/components/MediaSettingsSection.tsx +893 -0
  771. package/src/components/MessageContent.tsx +815 -0
  772. package/src/components/OnboardingWizard.test.tsx +107 -0
  773. package/src/components/OnboardingWizard.tsx +186 -0
  774. package/src/components/PairingView.tsx +110 -0
  775. package/src/components/PermissionsSection.tsx +818 -0
  776. package/src/components/PluginsPageView.tsx +9 -0
  777. package/src/components/PluginsView.tsx +3152 -0
  778. package/src/components/ProviderSwitcher.tsx +874 -0
  779. package/src/components/RestartBanner.tsx +76 -0
  780. package/src/components/RuntimeView.tsx +460 -0
  781. package/src/components/SaveCommandModal.tsx +211 -0
  782. package/src/components/SecretsView.tsx +569 -0
  783. package/src/components/SettingsView.tsx +825 -0
  784. package/src/components/ShellOverlays.tsx +41 -0
  785. package/src/components/ShortcutsOverlay.tsx +155 -0
  786. package/src/components/SkillsView.tsx +1435 -0
  787. package/src/components/StartupFailureView.tsx +63 -0
  788. package/src/components/StreamView.tsx +483 -0
  789. package/src/components/StripeEmbeddedCheckout.tsx +155 -0
  790. package/src/components/SubscriptionStatus.tsx +634 -0
  791. package/src/components/SystemWarningBanner.tsx +71 -0
  792. package/src/components/ThemeToggle.tsx +100 -0
  793. package/src/components/TrajectoriesView.tsx +526 -0
  794. package/src/components/TrajectoryDetailView.tsx +426 -0
  795. package/src/components/TriggersView.tsx +1 -0
  796. package/src/components/VectorBrowserView.tsx +1633 -0
  797. package/src/components/VoiceConfigView.tsx +674 -0
  798. package/src/components/VrmStage.test.ts +219 -0
  799. package/src/components/VrmStage.tsx +432 -0
  800. package/src/components/WhatsAppQrOverlay.tsx +230 -0
  801. package/src/components/__tests__/chainConfig.test.ts +220 -0
  802. package/src/components/apps/AppDetailPane.tsx +242 -0
  803. package/src/components/apps/AppsCatalogGrid.tsx +137 -0
  804. package/src/components/apps/extensions/HyperscapeAppDetailPanel.tsx +577 -0
  805. package/src/components/apps/extensions/registry.ts +16 -0
  806. package/src/components/apps/extensions/types.ts +9 -0
  807. package/src/components/apps/helpers.ts +44 -0
  808. package/src/components/avatar/VrmAnimationLoader.test.ts +164 -0
  809. package/src/components/avatar/VrmAnimationLoader.ts +151 -0
  810. package/src/components/avatar/VrmBlinkController.ts +118 -0
  811. package/src/components/avatar/VrmCameraManager.ts +407 -0
  812. package/src/components/avatar/VrmEngine.ts +2678 -0
  813. package/src/components/avatar/VrmFootShadow.ts +96 -0
  814. package/src/components/avatar/VrmViewer.tsx +421 -0
  815. package/src/components/avatar/__tests__/VrmCameraManager.test.ts +168 -0
  816. package/src/components/avatar/__tests__/VrmEngine.test.ts +1574 -0
  817. package/src/components/avatar/mixamoVRMRigMap.ts +62 -0
  818. package/src/components/avatar/retargetMixamoFbxToVrm.ts +144 -0
  819. package/src/components/avatar/retargetMixamoGltfToVrm.ts +119 -0
  820. package/src/components/chainConfig.ts +380 -0
  821. package/src/components/companion/CompanionHeader.tsx +47 -0
  822. package/src/components/companion/CompanionSceneHost.tsx +5 -0
  823. package/src/components/companion/VrmStage.tsx +2 -0
  824. package/src/components/companion/__tests__/walletUtils.test.ts +742 -0
  825. package/src/components/companion/walletUtils.ts +290 -0
  826. package/src/components/companion-shell-styles.test.ts +146 -0
  827. package/src/components/companion-shell-styles.ts +270 -0
  828. package/src/components/confirm-delete-control.tsx +69 -0
  829. package/src/components/conversations/ConversationListItem.tsx +185 -0
  830. package/src/components/conversations/conversation-utils.ts +151 -0
  831. package/src/components/format.ts +131 -0
  832. package/src/components/index.ts +92 -0
  833. package/src/components/inventory/CopyableAddress.tsx +41 -0
  834. package/src/components/inventory/InventoryToolbar.tsx +142 -0
  835. package/src/components/inventory/NftGrid.tsx +99 -0
  836. package/src/components/inventory/TokenLogo.tsx +71 -0
  837. package/src/components/inventory/TokensTable.tsx +216 -0
  838. package/src/components/inventory/constants.ts +170 -0
  839. package/src/components/inventory/index.ts +29 -0
  840. package/src/components/inventory/media-url.test.ts +38 -0
  841. package/src/components/inventory/media-url.ts +36 -0
  842. package/src/components/inventory/useInventoryData.ts +460 -0
  843. package/src/components/knowledge-upload-image.ts +215 -0
  844. package/src/components/labels.ts +46 -0
  845. package/src/components/onboarding/ActivateStep.tsx +30 -0
  846. package/src/components/onboarding/ConnectionStep.tsx +1530 -0
  847. package/src/components/onboarding/OnboardingPanel.tsx +39 -0
  848. package/src/components/onboarding/OnboardingStepNav.tsx +31 -0
  849. package/src/components/onboarding/PermissionsStep.tsx +20 -0
  850. package/src/components/onboarding/RpcStep.tsx +402 -0
  851. package/src/components/onboarding/WakeUpStep.tsx +184 -0
  852. package/src/components/permissions/PermissionIcon.tsx +25 -0
  853. package/src/components/permissions/StreamingPermissions.tsx +376 -0
  854. package/src/components/plugins/showcase-data.ts +481 -0
  855. package/src/components/shared/ShellHeaderControls.tsx +193 -0
  856. package/src/components/skeletons.tsx +88 -0
  857. package/src/components/stream/ActivityFeed.tsx +113 -0
  858. package/src/components/stream/AvatarPip.tsx +10 -0
  859. package/src/components/stream/ChatContent.tsx +126 -0
  860. package/src/components/stream/ChatTicker.tsx +55 -0
  861. package/src/components/stream/IdleContent.tsx +73 -0
  862. package/src/components/stream/StatusBar.tsx +469 -0
  863. package/src/components/stream/StreamSettings.tsx +506 -0
  864. package/src/components/stream/StreamTerminal.tsx +94 -0
  865. package/src/components/stream/StreamVoiceConfig.tsx +160 -0
  866. package/src/components/stream/helpers.ts +134 -0
  867. package/src/components/stream/overlays/OverlayLayer.tsx +75 -0
  868. package/src/components/stream/overlays/built-in/ActionTickerWidget.tsx +64 -0
  869. package/src/components/stream/overlays/built-in/AlertPopupWidget.tsx +87 -0
  870. package/src/components/stream/overlays/built-in/BrandingWidget.tsx +51 -0
  871. package/src/components/stream/overlays/built-in/CustomHtmlWidget.tsx +105 -0
  872. package/src/components/stream/overlays/built-in/PeonGlassWidget.tsx +265 -0
  873. package/src/components/stream/overlays/built-in/PeonHudWidget.tsx +247 -0
  874. package/src/components/stream/overlays/built-in/PeonSakuraWidget.tsx +278 -0
  875. package/src/components/stream/overlays/built-in/ThoughtBubbleWidget.tsx +77 -0
  876. package/src/components/stream/overlays/built-in/ViewerCountWidget.tsx +46 -0
  877. package/src/components/stream/overlays/built-in/index.ts +13 -0
  878. package/src/components/stream/overlays/registry.ts +22 -0
  879. package/src/components/stream/overlays/types.ts +90 -0
  880. package/src/components/stream/overlays/useOverlayLayout.ts +218 -0
  881. package/src/components/trajectory-format.ts +50 -0
  882. package/src/components/ui-badges.tsx +109 -0
  883. package/src/components/ui-switch.tsx +57 -0
  884. package/src/components/vector-browser-three.ts +27 -0
  885. package/src/config/config-catalog.ts +1092 -0
  886. package/src/config/config-field.tsx +1900 -0
  887. package/src/config/config-renderer.tsx +730 -0
  888. package/src/config/index.ts +11 -0
  889. package/src/config/ui-renderer.tsx +1751 -0
  890. package/src/config/ui-spec.ts +256 -0
  891. package/src/events/index.ts +89 -0
  892. package/src/hooks/index.ts +13 -0
  893. package/src/hooks/useBugReport.tsx +43 -0
  894. package/src/hooks/useCanvasWindow.ts +372 -0
  895. package/src/hooks/useChatAvatarVoice.ts +111 -0
  896. package/src/hooks/useContextMenu.ts +127 -0
  897. package/src/hooks/useKeyboardShortcuts.ts +86 -0
  898. package/src/hooks/useLifoSync.ts +143 -0
  899. package/src/hooks/useMemoryMonitor.ts +335 -0
  900. package/src/hooks/useRenderGuard.ts +43 -0
  901. package/src/hooks/useRetakeCapture.ts +67 -0
  902. package/src/hooks/useStreamPopoutNavigation.ts +27 -0
  903. package/src/hooks/useTimeout.ts +37 -0
  904. package/src/hooks/useVoiceChat.ts +1443 -0
  905. package/src/hooks/useWhatsAppPairing.ts +123 -0
  906. package/src/i18n/index.ts +76 -0
  907. package/src/i18n/locales/en.json +1196 -0
  908. package/src/i18n/locales/es.json +1196 -0
  909. package/src/i18n/locales/ko.json +1196 -0
  910. package/src/i18n/locales/pt.json +1196 -0
  911. package/src/i18n/locales/zh-CN.json +1196 -0
  912. package/src/i18n/messages.ts +21 -0
  913. package/src/index.ts +6 -0
  914. package/src/navigation/index.ts +282 -0
  915. package/src/navigation.test.ts +189 -0
  916. package/src/platform/browser-launch.test.ts +94 -0
  917. package/src/platform/browser-launch.ts +149 -0
  918. package/src/platform/index.ts +261 -0
  919. package/src/platform/init.ts +236 -0
  920. package/src/providers/index.ts +82 -0
  921. package/src/state/AppContext.tsx +5737 -0
  922. package/src/state/index.ts +6 -0
  923. package/src/state/internal.ts +77 -0
  924. package/src/state/parsers.test.ts +124 -0
  925. package/src/state/parsers.ts +309 -0
  926. package/src/state/persistence.ts +278 -0
  927. package/src/state/types.ts +694 -0
  928. package/src/state/ui-preferences.ts +3 -0
  929. package/src/state/useApp.ts +23 -0
  930. package/src/state/vrm.ts +76 -0
  931. package/src/stories/AppMockProvider.tsx +32 -0
  932. package/src/stories/ChatEmptyState.stories.tsx +27 -0
  933. package/src/stories/ChatMessage.stories.tsx +115 -0
  934. package/src/stories/CompanionHeader.stories.tsx +74 -0
  935. package/src/stories/CompanionView.stories.tsx +33 -0
  936. package/src/stories/ConversationListItem.stories.tsx +102 -0
  937. package/src/stories/TypingIndicator.stories.tsx +28 -0
  938. package/src/styles/anime.css +6324 -0
  939. package/src/styles/base.css +196 -0
  940. package/src/styles/onboarding-game.css +716 -0
  941. package/src/styles/styles.css +2085 -0
  942. package/src/styles/xterm.css +241 -0
  943. package/src/types/index.ts +715 -0
  944. package/src/types/react-test-renderer.d.ts +45 -0
  945. package/src/utils/asset-url.ts +110 -0
  946. package/src/utils/assistant-text.ts +172 -0
  947. package/src/utils/clipboard.ts +41 -0
  948. package/src/utils/desktop-dialogs.ts +80 -0
  949. package/src/utils/index.ts +6 -0
  950. package/src/utils/number-parsing.ts +125 -0
  951. package/src/utils/openExternalUrl.ts +20 -0
  952. package/src/utils/spoken-text.ts +65 -0
  953. package/src/utils/streaming-text.ts +120 -0
  954. package/src/voice/index.ts +1 -0
  955. package/src/voice/types.ts +197 -0
  956. package/test/app/AppContext.pty-sessions.test.tsx +143 -0
  957. package/test/app/MessageContent.test.tsx +326 -0
  958. package/test/app/PermissionsOnboarding.test.tsx +216 -0
  959. package/test/app/PermissionsSection.test.tsx +186 -0
  960. package/test/app/advanced-trajectory-fine-tuning.e2e.test.ts +397 -0
  961. package/test/app/agent-activity-box.test.tsx +132 -0
  962. package/test/app/agent-transfer-lock.test.ts +274 -0
  963. package/test/app/api-client-electron-fallback.test.ts +139 -0
  964. package/test/app/api-client-timeout.test.ts +75 -0
  965. package/test/app/api-client-ws.test.ts +98 -0
  966. package/test/app/api-client.ws-max-reconnect.test.ts +139 -0
  967. package/test/app/api-client.ws-reconnect.test.ts +157 -0
  968. package/test/app/app-context-autonomy-events.test.ts +478 -0
  969. package/test/app/apps-page-view.test.ts +114 -0
  970. package/test/app/apps-view.test.ts +769 -0
  971. package/test/app/autonomous-workflows.e2e.test.ts +765 -0
  972. package/test/app/autonomy-events.test.ts +150 -0
  973. package/test/app/avatar-selector.test.tsx +52 -0
  974. package/test/app/bsc-trade-panel.test.tsx +134 -0
  975. package/test/app/bug-report-modal.test.tsx +353 -0
  976. package/test/app/character-customization.e2e.test.ts +1168 -0
  977. package/test/app/chat-advanced-features.e2e.test.ts +706 -0
  978. package/test/app/chat-composer.test.tsx +181 -0
  979. package/test/app/chat-language-header.test.ts +64 -0
  980. package/test/app/chat-message.test.tsx +222 -0
  981. package/test/app/chat-modal-view.test.tsx +191 -0
  982. package/test/app/chat-routine-filter.test.ts +96 -0
  983. package/test/app/chat-send-lock.test.ts +1302 -0
  984. package/test/app/chat-stream-api-client.test.tsx +390 -0
  985. package/test/app/chat-view-game-modal.test.tsx +661 -0
  986. package/test/app/chat-view.test.tsx +877 -0
  987. package/test/app/cloud-api.e2e.test.ts +258 -0
  988. package/test/app/cloud-login-flow.e2e.test.ts +494 -0
  989. package/test/app/cloud-login-lock.test.ts +411 -0
  990. package/test/app/command-palette.test.tsx +184 -0
  991. package/test/app/command-registry.test.ts +75 -0
  992. package/test/app/companion-greeting-wave.test.tsx +443 -0
  993. package/test/app/companion-stale-conversation.test.tsx +424 -0
  994. package/test/app/companion-view.test.tsx +686 -0
  995. package/test/app/confirm-delete-control.test.ts +79 -0
  996. package/test/app/confirm-modal.test.tsx +219 -0
  997. package/test/app/connectors-ui.e2e.test.ts +508 -0
  998. package/test/app/conversations-sidebar-game-modal.test.tsx +260 -0
  999. package/test/app/conversations-sidebar.test.tsx +160 -0
  1000. package/test/app/custom-actions-smoke.test.ts +387 -0
  1001. package/test/app/custom-avatar-api-client.test.ts +207 -0
  1002. package/test/app/desktop-utils.test.ts +145 -0
  1003. package/test/app/electrobun-rpc-bridge.test.ts +83 -0
  1004. package/test/app/events.test.ts +88 -0
  1005. package/test/app/export-import-flows.e2e.test.ts +700 -0
  1006. package/test/app/fine-tuning-view.test.ts +471 -0
  1007. package/test/app/game-view-auth-session.test.tsx +186 -0
  1008. package/test/app/game-view.test.ts +444 -0
  1009. package/test/app/global-emote-overlay.test.tsx +106 -0
  1010. package/test/app/header-status.test.tsx +149 -0
  1011. package/test/app/i18n.test.ts +152 -0
  1012. package/test/app/inventory-bsc-view.test.ts +908 -0
  1013. package/test/app/knowledge-ui.e2e.test.ts +762 -0
  1014. package/test/app/knowledge-upload-helpers.test.ts +124 -0
  1015. package/test/app/lifecycle-lock.test.ts +267 -0
  1016. package/test/app/lifo-popout-utils.test.ts +208 -0
  1017. package/test/app/lifo-safe-endpoint.test.ts +34 -0
  1018. package/test/app/loading-screen.test.tsx +45 -0
  1019. package/test/app/memory-monitor.test.ts +332 -0
  1020. package/test/app/navigation.test.tsx +29 -0
  1021. package/test/app/onboarding-finish-lock.test.ts +500 -0
  1022. package/test/app/onboarding-language.test.tsx +161 -0
  1023. package/test/app/onboarding-steps.test.tsx +371 -0
  1024. package/test/app/open-external-url.test.ts +65 -0
  1025. package/test/app/pages-navigation-smoke.e2e.test.ts +633 -0
  1026. package/test/app/pairing-lock.test.ts +260 -0
  1027. package/test/app/pairing-view.test.tsx +74 -0
  1028. package/test/app/permissions-section.test.ts +432 -0
  1029. package/test/app/plugin-bridge.test.ts +109 -0
  1030. package/test/app/plugins-ui.e2e.test.ts +605 -0
  1031. package/test/app/plugins-view-game-modal.test.tsx +650 -0
  1032. package/test/app/plugins-view-toggle-restart.test.ts +129 -0
  1033. package/test/app/provider-dropdown-default.test.tsx +164 -0
  1034. package/test/app/restart-banner.test.tsx +197 -0
  1035. package/test/app/retake-capture.test.ts +84 -0
  1036. package/test/app/sandbox-api-client.test.ts +108 -0
  1037. package/test/app/save-command-modal.test.tsx +109 -0
  1038. package/test/app/secrets-view.test.tsx +92 -0
  1039. package/test/app/settings-control-styles.test.tsx +142 -0
  1040. package/test/app/settings-reset.e2e.test.ts +728 -0
  1041. package/test/app/settings-sections.e2e.test.ts +614 -0
  1042. package/test/app/shared-format.test.ts +44 -0
  1043. package/test/app/shared-switch.test.ts +69 -0
  1044. package/test/app/shell-mode-switching.e2e.test.ts +829 -0
  1045. package/test/app/shell-mode-tab-memory.test.tsx +283 -0
  1046. package/test/app/shell-overlays.test.tsx +50 -0
  1047. package/test/app/shortcuts-overlay.test.tsx +111 -0
  1048. package/test/app/sse-interruption.test.ts +122 -0
  1049. package/test/app/startup-asset-missing.e2e.test.ts +126 -0
  1050. package/test/app/startup-backend-missing.e2e.test.ts +118 -0
  1051. package/test/app/startup-chat.e2e.test.ts +305 -0
  1052. package/test/app/startup-conversation-restore.test.tsx +344 -0
  1053. package/test/app/startup-failure-view.test.tsx +103 -0
  1054. package/test/app/startup-onboarding.e2e.test.ts +612 -0
  1055. package/test/app/startup-timeout.test.tsx +80 -0
  1056. package/test/app/startup-token-401.e2e.test.ts +103 -0
  1057. package/test/app/stream-helpers.test.ts +46 -0
  1058. package/test/app/stream-popout-navigation.test.tsx +41 -0
  1059. package/test/app/stream-status-bar.test.tsx +89 -0
  1060. package/test/app/theme-toggle.test.tsx +33 -0
  1061. package/test/app/training-api-client.test.ts +128 -0
  1062. package/test/app/trajectories-view.test.tsx +220 -0
  1063. package/test/app/triggers-api-client.test.ts +77 -0
  1064. package/test/app/triggers-navigation.test.ts +118 -0
  1065. package/test/app/triggers-view.e2e.test.ts +674 -0
  1066. package/test/app/update-channel-lock.test.ts +259 -0
  1067. package/test/app/vector-browser.async-cleanup.test.tsx +367 -0
  1068. package/test/app/vector-browser.e2e.test.ts +653 -0
  1069. package/test/app/vrm-stage.test.tsx +351 -0
  1070. package/test/app/vrm-viewer.test.tsx +298 -0
  1071. package/test/app/wallet-api-save-lock.test.ts +277 -0
  1072. package/test/app/wallet-hooks.test.ts +405 -0
  1073. package/test/app/wallet-ui-flows.e2e.test.ts +556 -0
  1074. package/test/avatar/asset-url.test.ts +90 -0
  1075. package/test/avatar/avatar-selector.test.ts +173 -0
  1076. package/test/avatar/mixamo-vrm-rig-map.test.ts +111 -0
  1077. package/test/avatar/voice-chat-streaming-text.test.ts +96 -0
  1078. package/test/avatar/voice-chat.test.ts +391 -0
  1079. package/test/ui/command-palette-commands.test.ts +57 -0
  1080. package/test/ui/ui-renderer.test.ts +39 -0
  1081. package/tsconfig.build.json +19 -0
  1082. package/tsconfig.json +21 -0
@@ -0,0 +1,2085 @@
1
+ @import "tailwindcss";
2
+ @import "./base.css";
3
+ @import "./anime.css";
4
+ @import "./onboarding-game.css";
5
+
6
+ /*
7
+ * Map the existing theme CSS custom properties to Tailwind theme tokens.
8
+ * Using @theme inline so Tailwind inlines var() references rather than
9
+ * generating duplicate CSS variables. This lets the [data-theme="..."]
10
+ * selectors in base.css drive all visual changes at runtime.
11
+ */
12
+ @theme inline {
13
+ /* Colors — surfaces */
14
+ --color-bg: var(--bg);
15
+ --color-bg-accent: var(--bg-accent);
16
+ --color-bg-elevated: var(--bg-elevated);
17
+ --color-bg-hover: var(--bg-hover);
18
+ --color-bg-muted: var(--bg-muted);
19
+ --color-card: var(--card);
20
+ --color-card-fg: var(--card-foreground);
21
+ --color-surface: var(--surface);
22
+
23
+ /* Colors — text */
24
+ --color-txt: var(--text);
25
+ --color-txt-strong: var(--text-strong);
26
+ --color-txt-chat: var(--chat-text);
27
+ --color-muted: var(--muted);
28
+ --color-muted-strong: var(--muted-strong);
29
+
30
+ /* Colors — border */
31
+ --color-border: var(--border);
32
+ --color-border-strong: var(--border-strong);
33
+ --color-border-hover: var(--border-hover);
34
+ --color-input: var(--input);
35
+ --color-ring: var(--ring);
36
+
37
+ /* Colors — accent */
38
+ --color-accent: var(--accent);
39
+ --color-accent-hover: var(--accent-hover);
40
+ --color-accent-muted: var(--accent-muted);
41
+ --color-accent-subtle: var(--accent-subtle);
42
+ --color-accent-fg: var(--accent-foreground);
43
+ --color-primary: var(--primary);
44
+ --color-primary-fg: var(--primary-foreground);
45
+
46
+ /* Colors — status */
47
+ --color-ok: var(--ok);
48
+ --color-ok-muted: var(--ok-muted);
49
+ --color-ok-subtle: var(--ok-subtle);
50
+ --color-warn: var(--warn);
51
+ --color-warn-muted: var(--warn-muted);
52
+ --color-warn-subtle: var(--warn-subtle);
53
+ --color-danger: var(--danger);
54
+ --color-destructive: var(--destructive);
55
+ --color-destructive-fg: var(--destructive-foreground);
56
+ --color-destructive-subtle: var(--destructive-subtle);
57
+ --color-muted-strong: var(--muted-strong);
58
+
59
+ /* Colors — header */
60
+ --color-header-bg: var(--header-bar-bg);
61
+ --color-header-fg: var(--header-bar-fg);
62
+
63
+ /* Colors — chain icons */
64
+ --color-chain-eth: #627eea;
65
+ --color-chain-base: #0052ff;
66
+ --color-chain-arb: #28a0f0;
67
+ --color-chain-op: #ff0420;
68
+ --color-chain-pol: #8247e5;
69
+ --color-chain-sol: #9945ff;
70
+ --color-chain-bsc: #f0b90b;
71
+
72
+ /* Fonts */
73
+ --font-body: var(--font-body);
74
+ --font-mono: var(--mono);
75
+ --font-display: var(--font-display);
76
+ --font-chat: var(--font-chat);
77
+
78
+ /* Shadows */
79
+ --shadow-sm: var(--shadow-sm);
80
+ --shadow-md: var(--shadow-md);
81
+ --shadow-lg: var(--shadow-lg);
82
+
83
+ /* Radius */
84
+ --radius-sm: var(--radius-sm);
85
+ --radius-md: var(--radius-md);
86
+ --radius-lg: var(--radius-lg);
87
+ --radius-xl: var(--radius-xl);
88
+ }
89
+
90
+ /* ── Global resets ──────────────────────────────────────────────────── */
91
+
92
+ #root {
93
+ display: flex;
94
+ flex-direction: column;
95
+ height: 100vh;
96
+ height: 100dvh;
97
+ overflow: hidden;
98
+ font-family: var(--font-body);
99
+ color: var(--text);
100
+ background: var(--bg);
101
+ }
102
+
103
+ /* ── Typing indicator animation ─────────────────────────────────────── */
104
+
105
+ @keyframes typing-bounce {
106
+ 0%,
107
+ 60%,
108
+ 100% {
109
+ opacity: 0.3;
110
+ transform: translateY(0);
111
+ }
112
+
113
+ 30% {
114
+ opacity: 1;
115
+ transform: translateY(-4px);
116
+ }
117
+ }
118
+
119
+ @keyframes spin {
120
+ to {
121
+ transform: rotate(360deg);
122
+ }
123
+ }
124
+
125
+ @keyframes pc-slide-in {
126
+ from {
127
+ opacity: 0;
128
+ transform: translateY(-4px);
129
+ }
130
+
131
+ to {
132
+ opacity: 1;
133
+ transform: translateY(0);
134
+ }
135
+ }
136
+
137
+ /* ── Onboarding speech bubble arrow ─────────────────────────────────── */
138
+
139
+ .onboarding-speech::after {
140
+ content: "";
141
+ position: absolute;
142
+ top: -8px;
143
+ left: 50%;
144
+ transform: translateX(-50%) rotate(45deg);
145
+ width: 14px;
146
+ height: 14px;
147
+ background: var(--card);
148
+ border-left: 1px solid var(--border);
149
+ border-top: 1px solid var(--border);
150
+ }
151
+
152
+ /* ── Wallet tooltip hover bridge ────────────────────────────────────── */
153
+
154
+ .wallet-wrapper::after {
155
+ content: "";
156
+ display: none;
157
+ position: absolute;
158
+ top: 100%;
159
+ left: 0;
160
+ right: 0;
161
+ height: 8px;
162
+ }
163
+
164
+ .wallet-wrapper:hover::after {
165
+ display: block;
166
+ }
167
+
168
+ .wallet-wrapper:hover .wallet-tooltip {
169
+ display: block;
170
+ }
171
+
172
+ .wallet-wrapper:focus-within::after {
173
+ display: block;
174
+ }
175
+
176
+ .wallet-wrapper:focus-within .wallet-tooltip {
177
+ display: block;
178
+ }
179
+
180
+ /* ── Button base classes ───────────────────────────────────────────── */
181
+
182
+ .btn {
183
+ display: inline-flex;
184
+ align-items: center;
185
+ justify-content: center;
186
+ padding: 6px 16px;
187
+ border: 1px solid var(--accent);
188
+ background: var(--accent);
189
+ color: var(--accent-foreground);
190
+ cursor: pointer;
191
+ font-size: 13px;
192
+ font-family: inherit;
193
+ text-decoration: none;
194
+ white-space: nowrap;
195
+ border-radius: var(--radius-lg);
196
+ transition: opacity var(--duration-fast, 100ms);
197
+ }
198
+
199
+ .btn:hover {
200
+ opacity: 0.85;
201
+ }
202
+
203
+ .btn:disabled {
204
+ opacity: 0.5;
205
+ cursor: not-allowed;
206
+ }
207
+
208
+ /* ── Settings page controls ─────────────────────────────────────────── */
209
+
210
+ .settings-scroll-region {
211
+ scrollbar-gutter: stable;
212
+ scroll-padding-top: 7rem;
213
+ }
214
+
215
+ .settings-page-content
216
+ :is(button.inline-flex, a.inline-flex, .btn):not(
217
+ .settings-compact-button
218
+ ):not(.settings-icon-button) {
219
+ min-height: 2.625rem;
220
+ padding-inline: 1rem;
221
+ border-radius: calc(var(--radius-lg) + 2px);
222
+ }
223
+
224
+ .settings-button {
225
+ min-height: 2.625rem;
226
+ padding-inline: 1rem;
227
+ border-radius: calc(var(--radius-lg) + 2px);
228
+ }
229
+
230
+ .settings-card-button {
231
+ min-height: 5.5rem;
232
+ padding: 1.25rem;
233
+ border-radius: calc(var(--radius-xl) + 2px);
234
+ }
235
+
236
+ .settings-compact-button {
237
+ min-height: auto;
238
+ padding-inline: 0;
239
+ }
240
+
241
+ .settings-icon-button {
242
+ padding-inline: 0;
243
+ }
244
+
245
+ /* ── Loading screen ───────────────────────────────────────────────── */
246
+
247
+ /* ── NieR: Automata–style loading screen ─────────────────────────── */
248
+
249
+ .loading-screen {
250
+ display: flex;
251
+ align-items: center;
252
+ justify-content: center;
253
+ height: 100vh;
254
+ height: 100dvh;
255
+ background: #0c0e14;
256
+ position: relative;
257
+ overflow: hidden;
258
+ }
259
+
260
+ /* Centered content wrapper */
261
+ .loading-screen__center {
262
+ display: flex;
263
+ flex-direction: column;
264
+ align-items: flex-start;
265
+ gap: 14px;
266
+ width: 420px;
267
+ max-width: 90vw;
268
+ }
269
+
270
+ /* LOADING title */
271
+ .loading-screen__title {
272
+ font-family: var(--mono, monospace);
273
+ font-size: 13px;
274
+ font-weight: 400;
275
+ letter-spacing: 0.35em;
276
+ text-transform: uppercase;
277
+ color: rgba(255, 255, 255, 0.7);
278
+ user-select: none;
279
+ }
280
+
281
+ .loading-screen__dots::after {
282
+ content: "";
283
+ animation: loading-dots 1.5s steps(4) infinite;
284
+ }
285
+
286
+ @keyframes loading-dots {
287
+ 0% {
288
+ content: "";
289
+ }
290
+ 25% {
291
+ content: ".";
292
+ }
293
+ 50% {
294
+ content: "..";
295
+ }
296
+ 75% {
297
+ content: "...";
298
+ }
299
+ }
300
+
301
+ /* Progress bar row: bar + percentage */
302
+ .loading-screen__bar-row {
303
+ display: flex;
304
+ align-items: center;
305
+ gap: 16px;
306
+ width: 100%;
307
+ }
308
+
309
+ .loading-screen__progress-track {
310
+ flex: 1;
311
+ height: 4px;
312
+ background: rgba(255, 255, 255, 0.1);
313
+ overflow: hidden;
314
+ position: relative;
315
+ }
316
+
317
+ .loading-screen__progress-fill {
318
+ height: 100%;
319
+ background: rgba(255, 255, 255, 0.85);
320
+ transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
321
+ position: relative;
322
+ box-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
323
+ }
324
+
325
+ /* Percentage label */
326
+ .loading-screen__percent {
327
+ font-family: var(--mono, monospace);
328
+ font-size: 13px;
329
+ font-weight: 400;
330
+ letter-spacing: 0.15em;
331
+ color: rgba(255, 255, 255, 0.6);
332
+ min-width: 48px;
333
+ text-align: right;
334
+ user-select: none;
335
+ }
336
+
337
+ /* Phase sub-label */
338
+ .loading-screen__phase {
339
+ font-family: var(--mono, monospace);
340
+ font-size: 11px;
341
+ font-weight: 400;
342
+ letter-spacing: 0.12em;
343
+ text-transform: uppercase;
344
+ color: rgba(255, 255, 255, 0.35);
345
+ user-select: none;
346
+ }
347
+
348
+ /* Avatar loader indeterminate bar */
349
+ @keyframes avatar-loader-progress {
350
+ 0% {
351
+ width: 20%;
352
+ opacity: 0.6;
353
+ }
354
+ 50% {
355
+ width: 70%;
356
+ opacity: 1;
357
+ }
358
+ 100% {
359
+ width: 20%;
360
+ opacity: 0.6;
361
+ }
362
+ }
363
+
364
+ /* ── Animation utilities ────────────────────────────────────────────── */
365
+
366
+ .animate-in {
367
+ animation: fade-in 200ms ease-out;
368
+ }
369
+
370
+ @keyframes fade-in {
371
+ from {
372
+ opacity: 0;
373
+ }
374
+
375
+ to {
376
+ opacity: 1;
377
+ }
378
+ }
379
+
380
+ .slide-in-from-right {
381
+ animation: slide-in-right 200ms ease-out;
382
+ }
383
+
384
+ @keyframes slide-in-right {
385
+ from {
386
+ transform: translateX(100%);
387
+ opacity: 0;
388
+ }
389
+
390
+ to {
391
+ transform: translateX(0);
392
+ opacity: 1;
393
+ }
394
+ }
395
+
396
+ /* ── Enhanced transitions ──────────────────────────────────────────── */
397
+
398
+ .transition-all {
399
+ transition-property: all;
400
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
401
+ }
402
+
403
+ .hover\:shadow-sm:hover {
404
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
405
+ }
406
+
407
+ .hover\:scale-105:hover {
408
+ transform: scale(1.05);
409
+ }
410
+
411
+ .active\:scale-95:active {
412
+ transform: scale(0.95);
413
+ }
414
+
415
+ .hover\:translate-x-1:hover {
416
+ transform: translateX(4px);
417
+ }
418
+
419
+ /* Utility: hide scrollbar */
420
+ .scrollbar-hide {
421
+ -ms-overflow-style: none;
422
+ scrollbar-width: none;
423
+ }
424
+
425
+ .scrollbar-hide::-webkit-scrollbar {
426
+ display: none;
427
+ }
428
+
429
+ .chat-native-scrollbar {
430
+ scrollbar-width: thin;
431
+ scrollbar-color: rgba(240, 178, 50, 0.55) transparent;
432
+ }
433
+
434
+ .chat-native-scrollbar::-webkit-scrollbar {
435
+ width: 10px;
436
+ }
437
+
438
+ .chat-native-scrollbar::-webkit-scrollbar-track {
439
+ background: transparent;
440
+ }
441
+
442
+ .chat-native-scrollbar::-webkit-scrollbar-thumb {
443
+ background: linear-gradient(
444
+ 180deg,
445
+ rgba(255, 225, 150, 0.9) 0%,
446
+ rgba(240, 178, 50, 0.72) 55%,
447
+ rgba(201, 128, 24, 0.78) 100%
448
+ );
449
+ border-radius: 9999px;
450
+ border: 2px solid transparent;
451
+ background-clip: padding-box;
452
+ }
453
+
454
+ .chat-native-scrollbar::-webkit-scrollbar-thumb:hover {
455
+ background: linear-gradient(
456
+ 180deg,
457
+ rgba(255, 232, 170, 0.95) 0%,
458
+ rgba(240, 178, 50, 0.82) 55%,
459
+ rgba(201, 128, 24, 0.88) 100%
460
+ );
461
+ }
462
+
463
+ /* Focus trap for modals */
464
+ .focus-trap {
465
+ outline: none;
466
+ }
467
+
468
+ .focus-trap:focus {
469
+ outline: 2px solid var(--accent);
470
+ outline-offset: 2px;
471
+ }
472
+
473
+ /* Touch-friendly utilities - min 44px for accessibility */
474
+ .touch-min-h {
475
+ min-height: 44px;
476
+ }
477
+
478
+ .touch-min-w {
479
+ min-width: 44px;
480
+ }
481
+
482
+ /* Keyboard shortcuts styling */
483
+ kbd {
484
+ font-family: var(--mono);
485
+ }
486
+
487
+ /* Enhanced animations and transitions */
488
+ @keyframes slide-up {
489
+ from {
490
+ opacity: 0;
491
+ transform: translateY(10px);
492
+ }
493
+
494
+ to {
495
+ opacity: 1;
496
+ transform: translateY(0);
497
+ }
498
+ }
499
+
500
+ @keyframes slide-down {
501
+ from {
502
+ opacity: 0;
503
+ transform: translateY(-10px);
504
+ }
505
+
506
+ to {
507
+ opacity: 1;
508
+ transform: translateY(0);
509
+ }
510
+ }
511
+
512
+ @keyframes scale-in {
513
+ from {
514
+ opacity: 0;
515
+ transform: scale(0.95);
516
+ }
517
+
518
+ to {
519
+ opacity: 1;
520
+ transform: scale(1);
521
+ }
522
+ }
523
+
524
+ @keyframes shake {
525
+ 0%,
526
+ 100% {
527
+ transform: translateX(0);
528
+ }
529
+
530
+ 10%,
531
+ 30%,
532
+ 50%,
533
+ 70%,
534
+ 90% {
535
+ transform: translateX(-2px);
536
+ }
537
+
538
+ 20%,
539
+ 40%,
540
+ 60%,
541
+ 80% {
542
+ transform: translateX(2px);
543
+ }
544
+ }
545
+
546
+ @keyframes glow {
547
+ 0%,
548
+ 100% {
549
+ box-shadow:
550
+ 0 0 5px var(--accent),
551
+ 0 0 10px var(--accent);
552
+ }
553
+
554
+ 50% {
555
+ box-shadow:
556
+ 0 0 20px var(--accent),
557
+ 0 0 30px var(--accent);
558
+ }
559
+ }
560
+
561
+ .animate-slide-up {
562
+ animation: slide-up 0.3s ease-out;
563
+ }
564
+
565
+ .animate-slide-down {
566
+ animation: slide-down 0.3s ease-out;
567
+ }
568
+
569
+ .animate-scale-in {
570
+ animation: scale-in 0.2s ease-out;
571
+ }
572
+
573
+ .animate-shake {
574
+ animation: shake 0.5s ease-in-out;
575
+ }
576
+
577
+ .animate-glow {
578
+ animation: glow 2s ease-in-out infinite;
579
+ }
580
+
581
+ /* Smooth transitions */
582
+ .transition-smooth {
583
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
584
+ }
585
+
586
+ .transition-bounce {
587
+ transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
588
+ }
589
+
590
+ /* Focus ring improvements */
591
+ .focus-ring:focus {
592
+ outline: none;
593
+ box-shadow: 0 0 0 3px var(--accent);
594
+ }
595
+
596
+ .focus-ring:focus-visible {
597
+ outline: none;
598
+ box-shadow: 0 0 0 3px var(--accent);
599
+ }
600
+
601
+ /* Hover lift effect */
602
+ .hover-lift {
603
+ transition:
604
+ transform 0.2s ease,
605
+ box-shadow 0.2s ease;
606
+ }
607
+
608
+ .hover-lift:hover {
609
+ transform: translateY(-2px);
610
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
611
+ }
612
+
613
+ /* Press effect */
614
+ .press:active {
615
+ transform: scale(0.98);
616
+ }
617
+
618
+ /* Dark mode contrast improvements */
619
+ [data-theme="dark"] .text-muted {
620
+ color: hsl(240 5% 64.9%);
621
+ }
622
+
623
+ [data-theme="dark"] .text-muted-strong {
624
+ color: hsl(240 4% 74%);
625
+ }
626
+
627
+ [data-theme="dark"] .bg-bg-accent {
628
+ background-color: hsl(240 5.9% 14%);
629
+ }
630
+
631
+ [data-theme="dark"] .bg-bg-elevated {
632
+ background-color: hsl(240 4.8% 10%);
633
+ }
634
+
635
+ /* Focus visible improvements for dark mode */
636
+ [data-theme="dark"] :focus-visible {
637
+ outline: 2px solid hsl(217 91% 60%);
638
+ outline-offset: 2px;
639
+ }
640
+
641
+ /* Advanced subtab buttons stay clickable without Chrome tap/focus flash or text selection */
642
+ .advanced-subtab-btn,
643
+ .advanced-subtab-btn * {
644
+ -moz-user-select: none;
645
+ -ms-user-select: none;
646
+ -webkit-tap-highlight-color: transparent;
647
+ -webkit-user-select: none;
648
+ user-select: none;
649
+ }
650
+
651
+ .advanced-subtab-btn {
652
+ -webkit-touch-callout: none;
653
+ }
654
+
655
+ .advanced-subtab-btn:focus,
656
+ .advanced-subtab-btn:focus-visible,
657
+ [data-theme="dark"] .advanced-subtab-btn:focus-visible {
658
+ outline: none;
659
+ outline-offset: 0;
660
+ }
661
+
662
+ /* Reduced motion - !important is intentional for accessibility override */
663
+ @media (prefers-reduced-motion: reduce) {
664
+ *,
665
+ *::before,
666
+ *::after {
667
+ /* biome-ignore lint/complexity/noImportantStyles: Accessibility requires forcing reduced motion */
668
+ animation-duration: 0.01ms !important;
669
+ /* biome-ignore lint/complexity/noImportantStyles: Accessibility requires forcing reduced motion */
670
+ animation-iteration-count: 1 !important;
671
+ /* biome-ignore lint/complexity/noImportantStyles: Accessibility requires forcing reduced motion */
672
+ transition-duration: 0.01ms !important;
673
+ /* biome-ignore lint/complexity/noImportantStyles: Accessibility requires forcing reduced motion */
674
+ scroll-behavior: auto !important;
675
+ }
676
+ }
677
+
678
+ /* ── Wallets BSC-first view ───────────────────────────────────────── */
679
+
680
+ .wallets-bsc {
681
+ --wb-card-highlight: linear-gradient(
682
+ 135deg,
683
+ rgba(240, 185, 11, 0.12),
684
+ rgba(240, 185, 11, 0.02)
685
+ );
686
+ }
687
+
688
+ .wallets-bsc__setup code {
689
+ display: inline-block;
690
+ padding: 0 4px;
691
+ border: 1px solid var(--border);
692
+ border-radius: var(--radius-md);
693
+ background: var(--bg-muted);
694
+ }
695
+
696
+ .wallets-bsc__main-card {
697
+ background: var(--wb-card-highlight), var(--card);
698
+ }
699
+
700
+ .wallets-bsc__status-grid {
701
+ display: grid;
702
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
703
+ gap: 8px;
704
+ }
705
+
706
+ .wallets-bsc__status-badge {
707
+ border: 1px solid var(--border);
708
+ border-radius: var(--radius-lg);
709
+ padding: 10px;
710
+ background: var(--bg);
711
+ }
712
+
713
+ .wallets-bsc__status-badge.is-ready {
714
+ border-color: color-mix(in srgb, var(--ok) 45%, var(--border) 55%);
715
+ background: color-mix(in srgb, var(--ok) 10%, var(--bg) 90%);
716
+ }
717
+
718
+ .wallets-bsc__status-badge.is-not-ready {
719
+ border-color: color-mix(in srgb, var(--warn) 40%, var(--border) 60%);
720
+ background: color-mix(in srgb, var(--warn) 10%, var(--bg) 90%);
721
+ }
722
+
723
+ .wallets-bsc__status-title {
724
+ font-size: 11px;
725
+ font-weight: 700;
726
+ text-transform: uppercase;
727
+ letter-spacing: 0.04em;
728
+ color: var(--text-strong);
729
+ }
730
+
731
+ .wallets-bsc__status-value {
732
+ margin-top: 3px;
733
+ font-size: 16px;
734
+ font-weight: 700;
735
+ }
736
+
737
+ .wallets-bsc__status-detail {
738
+ margin-top: 2px;
739
+ font-size: 11px;
740
+ color: var(--muted);
741
+ line-height: 1.3;
742
+ }
743
+
744
+ .wallets-bsc__stats-row {
745
+ display: grid;
746
+ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
747
+ gap: 8px;
748
+ }
749
+
750
+ .wallets-bsc__stat-card {
751
+ border: 1px solid var(--border);
752
+ border-radius: var(--radius-lg);
753
+ background: var(--bg);
754
+ padding: 10px;
755
+ }
756
+
757
+ .wallets-bsc__stat-label {
758
+ font-size: 10px;
759
+ font-weight: 700;
760
+ text-transform: uppercase;
761
+ letter-spacing: 0.05em;
762
+ color: var(--muted);
763
+ }
764
+
765
+ .wallets-bsc__stat-value {
766
+ margin-top: 4px;
767
+ font-size: 20px;
768
+ line-height: 1.1;
769
+ font-weight: 700;
770
+ font-family: var(--mono);
771
+ }
772
+
773
+ .wallets-bsc__collapse {
774
+ border-radius: var(--radius-xl);
775
+ overflow: hidden;
776
+ }
777
+
778
+ .wallets-bsc__quick-trade {
779
+ border: 1px solid var(--border);
780
+ border-radius: var(--radius-lg);
781
+ background: var(--bg);
782
+ padding: 12px;
783
+ }
784
+
785
+ .wallets-bsc__quick-head {
786
+ display: flex;
787
+ align-items: baseline;
788
+ justify-content: space-between;
789
+ gap: 8px;
790
+ flex-wrap: wrap;
791
+ }
792
+
793
+ .wallets-bsc__quick-title {
794
+ font-size: 13px;
795
+ font-weight: 700;
796
+ letter-spacing: 0.03em;
797
+ text-transform: uppercase;
798
+ }
799
+
800
+ .wallets-bsc__quick-note {
801
+ font-size: 11px;
802
+ color: var(--muted);
803
+ }
804
+
805
+ .wallets-bsc__quick-row {
806
+ margin-top: 10px;
807
+ display: grid;
808
+ gap: 8px;
809
+ }
810
+
811
+ .wallets-bsc__quick-input {
812
+ width: 100%;
813
+ border: 1px solid var(--border);
814
+ border-radius: var(--radius-md);
815
+ background: var(--bg);
816
+ color: var(--text);
817
+ padding: 9px 10px;
818
+ font-size: 13px;
819
+ }
820
+
821
+ .wallets-bsc__quick-input:focus {
822
+ outline: none;
823
+ border-color: var(--text);
824
+ }
825
+
826
+ .wallets-bsc__quick-presets {
827
+ display: flex;
828
+ flex-wrap: wrap;
829
+ gap: 6px;
830
+ }
831
+
832
+ .wallets-bsc__preset-btn {
833
+ border: 1px solid var(--border);
834
+ border-radius: 999px;
835
+ background: var(--bg);
836
+ color: var(--text);
837
+ padding: 4px 10px;
838
+ font-size: 11px;
839
+ font-family: var(--mono);
840
+ cursor: pointer;
841
+ }
842
+
843
+ .wallets-bsc__preset-btn.is-active {
844
+ border-color: color-mix(in srgb, #f0b90b 70%, var(--border) 30%);
845
+ background: color-mix(in srgb, #f0b90b 16%, var(--bg) 84%);
846
+ }
847
+
848
+ .wallets-bsc__quick-actions {
849
+ display: inline-flex;
850
+ gap: 8px;
851
+ }
852
+
853
+ .wallets-bsc__quick-btn {
854
+ border: 1px solid var(--border);
855
+ border-radius: var(--radius-md);
856
+ background: var(--bg);
857
+ color: var(--text);
858
+ padding: 7px 14px;
859
+ font-size: 12px;
860
+ font-weight: 700;
861
+ letter-spacing: 0.03em;
862
+ cursor: pointer;
863
+ }
864
+
865
+ .wallets-bsc__quick-btn.is-buy {
866
+ border-color: color-mix(in srgb, var(--ok) 55%, var(--border) 45%);
867
+ background: color-mix(in srgb, var(--ok) 12%, var(--bg) 88%);
868
+ }
869
+
870
+ .wallets-bsc__quick-btn.is-sell {
871
+ border-color: color-mix(in srgb, var(--warn) 55%, var(--border) 45%);
872
+ background: color-mix(in srgb, var(--warn) 12%, var(--bg) 88%);
873
+ }
874
+
875
+ /* ── Wallet Terminal redesign (wt__) ──────────────────────────────── */
876
+
877
+ .wt__portfolio {
878
+ border: 1px solid var(--border);
879
+ background:
880
+ linear-gradient(135deg, rgba(240, 185, 11, 0.1), rgba(240, 185, 11, 0.02)),
881
+ var(--card);
882
+ padding: 14px 16px 12px;
883
+ }
884
+
885
+ .wt__portfolio-label {
886
+ font-size: 10px;
887
+ font-weight: 700;
888
+ text-transform: uppercase;
889
+ letter-spacing: 0.08em;
890
+ color: var(--muted);
891
+ margin-bottom: 4px;
892
+ }
893
+
894
+ .wt__portfolio-value {
895
+ font-size: 30px;
896
+ line-height: 1;
897
+ font-weight: 700;
898
+ font-family: var(--mono);
899
+ }
900
+
901
+ .wt__status-row {
902
+ display: flex;
903
+ align-items: center;
904
+ gap: 14px;
905
+ flex-wrap: wrap;
906
+ }
907
+
908
+ .wt__status-dot {
909
+ display: inline-flex;
910
+ align-items: center;
911
+ gap: 5px;
912
+ font-size: 11px;
913
+ color: var(--muted);
914
+ cursor: default;
915
+ }
916
+
917
+ .wt__status-dot.is-ready {
918
+ color: var(--text);
919
+ }
920
+
921
+ .wt__status-indicator {
922
+ width: 7px;
923
+ height: 7px;
924
+ border-radius: 50%;
925
+ background: color-mix(in srgb, var(--warn) 80%, var(--border) 20%);
926
+ flex-shrink: 0;
927
+ }
928
+
929
+ .wt__status-dot.is-ready .wt__status-indicator {
930
+ background: var(--ok);
931
+ }
932
+
933
+ .wt__quick {
934
+ border: 1px solid var(--border);
935
+ background: var(--card);
936
+ padding: 10px 12px;
937
+ }
938
+
939
+ .wt__quick-row {
940
+ display: flex;
941
+ align-items: center;
942
+ gap: 8px;
943
+ flex-wrap: wrap;
944
+ }
945
+
946
+ .wt__quick-input {
947
+ flex: 1;
948
+ min-width: 180px;
949
+ border: 1px solid var(--border);
950
+ background: var(--bg);
951
+ color: var(--text);
952
+ padding: 6px 10px;
953
+ font-size: 12px;
954
+ font-family: var(--mono);
955
+ outline: none;
956
+ transition: border-color 0.15s;
957
+ }
958
+
959
+ .wt__quick-input:focus {
960
+ border-color: var(--text);
961
+ }
962
+
963
+ .wt__presets {
964
+ display: flex;
965
+ align-items: center;
966
+ gap: 4px;
967
+ flex-wrap: wrap;
968
+ }
969
+
970
+ .wt__preset {
971
+ border: 1px solid var(--border);
972
+ border-radius: 999px;
973
+ background: var(--bg);
974
+ color: var(--text);
975
+ padding: 3px 9px;
976
+ font-size: 11px;
977
+ font-family: var(--mono);
978
+ cursor: pointer;
979
+ transition: all 0.15s;
980
+ }
981
+
982
+ .wt__preset.is-active {
983
+ border-color: var(--text);
984
+ background: color-mix(in srgb, #f0b90b 14%, var(--bg) 86%);
985
+ color: var(--text);
986
+ }
987
+
988
+ .wt__quick-actions {
989
+ display: flex;
990
+ gap: 6px;
991
+ }
992
+
993
+ .wt__btn {
994
+ border: 1px solid var(--border);
995
+ background: var(--bg);
996
+ color: var(--text);
997
+ padding: 6px 16px;
998
+ font-size: 12px;
999
+ font-weight: 700;
1000
+ letter-spacing: 0.06em;
1001
+ font-family: var(--mono);
1002
+ cursor: pointer;
1003
+ transition: all 0.15s;
1004
+ }
1005
+
1006
+ .wt__btn.is-buy {
1007
+ border-color: color-mix(in srgb, var(--ok) 60%, var(--border) 40%);
1008
+ color: var(--ok);
1009
+ }
1010
+
1011
+ .wt__btn.is-buy:hover {
1012
+ background: color-mix(in srgb, var(--ok) 14%, var(--bg) 86%);
1013
+ }
1014
+
1015
+ .wt__btn.is-track {
1016
+ border-color: color-mix(in srgb, var(--accent) 60%, var(--border) 40%);
1017
+ color: var(--text);
1018
+ }
1019
+
1020
+ .wt__btn.is-track:hover {
1021
+ background: color-mix(in srgb, var(--accent) 12%, var(--bg) 88%);
1022
+ }
1023
+
1024
+ .wt__btn.is-sell {
1025
+ border-color: color-mix(in srgb, var(--warn) 60%, var(--border) 40%);
1026
+ color: var(--warn);
1027
+ }
1028
+
1029
+ .wt__btn.is-sell:hover {
1030
+ background: color-mix(in srgb, var(--warn) 14%, var(--bg) 86%);
1031
+ }
1032
+
1033
+ .wt__btn:disabled {
1034
+ opacity: 0.55;
1035
+ cursor: not-allowed;
1036
+ }
1037
+
1038
+ .wt__toolbar {
1039
+ display: flex;
1040
+ align-items: center;
1041
+ gap: 4px;
1042
+ padding: 5px 0;
1043
+ border-bottom: 1px solid var(--border);
1044
+ flex-wrap: wrap;
1045
+ }
1046
+
1047
+ .wt__tab {
1048
+ border: none;
1049
+ background: transparent;
1050
+ color: var(--muted);
1051
+ padding: 3px 8px;
1052
+ font-size: 12px;
1053
+ font-weight: 700;
1054
+ font-family: var(--mono);
1055
+ letter-spacing: 0.02em;
1056
+ cursor: pointer;
1057
+ transition: color 0.15s;
1058
+ }
1059
+
1060
+ .wt__tab.is-active {
1061
+ color: var(--text);
1062
+ }
1063
+
1064
+ .wt__sep {
1065
+ display: inline-block;
1066
+ width: 1px;
1067
+ height: 14px;
1068
+ background: var(--border);
1069
+ margin: 0 4px;
1070
+ align-self: center;
1071
+ }
1072
+
1073
+ .wt__chip {
1074
+ border: 1px solid var(--border);
1075
+ background: var(--bg);
1076
+ color: var(--muted);
1077
+ padding: 2px 7px;
1078
+ font-size: 10px;
1079
+ font-family: var(--mono);
1080
+ cursor: pointer;
1081
+ border-radius: 3px;
1082
+ transition: all 0.15s;
1083
+ }
1084
+
1085
+ .wt__chip.is-active {
1086
+ border-color: var(--text);
1087
+ color: var(--text);
1088
+ }
1089
+
1090
+ .wt__refresh {
1091
+ border: 1px solid var(--border);
1092
+ background: var(--bg);
1093
+ color: var(--muted);
1094
+ padding: 2px 8px;
1095
+ font-size: 13px;
1096
+ cursor: pointer;
1097
+ border-radius: 3px;
1098
+ transition: all 0.15s;
1099
+ font-family: var(--mono);
1100
+ }
1101
+
1102
+ .wt__refresh:hover {
1103
+ border-color: var(--text);
1104
+ color: var(--text);
1105
+ }
1106
+
1107
+ .wt__row-btn {
1108
+ border: 1px solid var(--border);
1109
+ background: transparent;
1110
+ color: var(--muted);
1111
+ padding: 2px 7px;
1112
+ font-size: 10px;
1113
+ font-weight: 700;
1114
+ font-family: var(--mono);
1115
+ cursor: pointer;
1116
+ border-radius: 2px;
1117
+ transition: all 0.15s;
1118
+ }
1119
+
1120
+ .wt__row-btn.is-preflight:hover {
1121
+ border-color: var(--text);
1122
+ color: var(--text);
1123
+ }
1124
+
1125
+ .wt__row-btn.is-quote:hover {
1126
+ border-color: var(--ok);
1127
+ color: var(--ok);
1128
+ }
1129
+
1130
+ .wt__row-btn.is-remove:hover {
1131
+ border-color: var(--warn);
1132
+ color: var(--warn);
1133
+ }
1134
+
1135
+ .wt__row-btn:disabled {
1136
+ opacity: 0.5;
1137
+ cursor: not-allowed;
1138
+ }
1139
+
1140
+ .wt__quote {
1141
+ border: 1px solid var(--border);
1142
+ background: var(--card);
1143
+ padding: 10px 12px;
1144
+ }
1145
+
1146
+ .wt__quote-head {
1147
+ display: flex;
1148
+ align-items: center;
1149
+ justify-content: space-between;
1150
+ gap: 8px;
1151
+ flex-wrap: wrap;
1152
+ }
1153
+
1154
+ .wt__quote-title {
1155
+ font-size: 11px;
1156
+ letter-spacing: 0.06em;
1157
+ text-transform: uppercase;
1158
+ color: var(--muted);
1159
+ font-weight: 700;
1160
+ }
1161
+
1162
+ .wt__quote-route {
1163
+ font-family: var(--mono);
1164
+ font-size: 10px;
1165
+ color: var(--muted);
1166
+ }
1167
+
1168
+ .wt__quote-grid {
1169
+ margin-top: 8px;
1170
+ display: grid;
1171
+ gap: 8px;
1172
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
1173
+ }
1174
+
1175
+ .wt__quote-k {
1176
+ font-size: 10px;
1177
+ text-transform: uppercase;
1178
+ color: var(--muted);
1179
+ letter-spacing: 0.04em;
1180
+ }
1181
+
1182
+ .wt__quote-v {
1183
+ margin-top: 2px;
1184
+ font-family: var(--mono);
1185
+ font-size: 13px;
1186
+ color: var(--text);
1187
+ }
1188
+
1189
+ .wt__quote-actions {
1190
+ margin-top: 10px;
1191
+ display: flex;
1192
+ align-items: center;
1193
+ gap: 10px;
1194
+ flex-wrap: wrap;
1195
+ }
1196
+
1197
+ .wt__quote-link {
1198
+ font-size: 11px;
1199
+ font-family: var(--mono);
1200
+ color: var(--text);
1201
+ text-decoration: none;
1202
+ border-bottom: 1px dashed color-mix(in srgb, var(--accent) 70%, transparent);
1203
+ }
1204
+
1205
+ .wt__quote-link:hover {
1206
+ color: var(--text);
1207
+ border-bottom-color: color-mix(in srgb, var(--text) 70%, transparent);
1208
+ }
1209
+
1210
+ .wt__quote-usersign {
1211
+ margin-top: 10px;
1212
+ border: 1px dashed color-mix(in srgb, var(--border) 80%, transparent);
1213
+ background: color-mix(in srgb, var(--bg) 92%, transparent);
1214
+ padding: 8px;
1215
+ }
1216
+
1217
+ .wt__preflight {
1218
+ margin-top: 10px;
1219
+ border: 1px solid color-mix(in srgb, var(--border) 86%, transparent);
1220
+ background: color-mix(in srgb, var(--bg) 92%, transparent);
1221
+ padding: 8px;
1222
+ }
1223
+
1224
+ .wt__preflight-checks {
1225
+ margin-top: 6px;
1226
+ display: flex;
1227
+ align-items: center;
1228
+ gap: 6px;
1229
+ flex-wrap: wrap;
1230
+ }
1231
+
1232
+ .wt__preflight-chip {
1233
+ display: inline-flex;
1234
+ align-items: center;
1235
+ border: 1px solid var(--border);
1236
+ border-radius: 999px;
1237
+ padding: 1px 7px;
1238
+ font-size: 10px;
1239
+ font-family: var(--mono);
1240
+ letter-spacing: 0.03em;
1241
+ }
1242
+
1243
+ .wt__preflight-chip.is-pass {
1244
+ border-color: color-mix(in srgb, var(--ok) 60%, var(--border) 40%);
1245
+ color: var(--ok);
1246
+ }
1247
+
1248
+ .wt__preflight-chip.is-fail {
1249
+ border-color: color-mix(in srgb, var(--warn) 60%, var(--border) 40%);
1250
+ color: var(--warn);
1251
+ }
1252
+
1253
+ .wt__preflight-reasons {
1254
+ margin-top: 6px;
1255
+ font-size: 11px;
1256
+ color: var(--muted);
1257
+ line-height: 1.45;
1258
+ }
1259
+
1260
+ .wt__tx-status-row {
1261
+ margin-top: 8px;
1262
+ display: flex;
1263
+ align-items: center;
1264
+ flex-wrap: wrap;
1265
+ gap: 8px;
1266
+ }
1267
+
1268
+ .wt__tx-pill {
1269
+ display: inline-flex;
1270
+ align-items: center;
1271
+ border: 1px solid var(--border);
1272
+ border-radius: 999px;
1273
+ padding: 2px 8px;
1274
+ font-size: 10px;
1275
+ font-family: var(--mono);
1276
+ font-weight: 700;
1277
+ letter-spacing: 0.04em;
1278
+ text-transform: uppercase;
1279
+ color: var(--muted);
1280
+ }
1281
+
1282
+ .wt__tx-pill.is-pending {
1283
+ border-color: color-mix(in srgb, var(--warn) 50%, var(--border) 50%);
1284
+ color: var(--warn);
1285
+ }
1286
+
1287
+ .wt__tx-pill.is-success {
1288
+ border-color: color-mix(in srgb, var(--ok) 55%, var(--border) 45%);
1289
+ color: var(--ok);
1290
+ }
1291
+
1292
+ .wt__tx-pill.is-reverted,
1293
+ .wt__tx-pill.is-not_found {
1294
+ border-color: color-mix(in srgb, var(--danger) 55%, var(--border) 45%);
1295
+ color: var(--danger);
1296
+ }
1297
+
1298
+ .wt__tx-meta {
1299
+ font-size: 10px;
1300
+ color: var(--muted);
1301
+ font-family: var(--mono);
1302
+ }
1303
+
1304
+ .wt__usersign-steps {
1305
+ margin-top: 6px;
1306
+ display: flex;
1307
+ flex-wrap: wrap;
1308
+ gap: 8px;
1309
+ align-items: center;
1310
+ }
1311
+
1312
+ .wt__usersign-step {
1313
+ font-size: 11px;
1314
+ color: var(--muted);
1315
+ font-family: var(--mono);
1316
+ }
1317
+
1318
+ /* ── Network badge ───────────────────────────────────────────────── */
1319
+
1320
+ .wt__network-badge {
1321
+ display: inline-flex;
1322
+ align-items: center;
1323
+ gap: 4px;
1324
+ padding: 1px 6px;
1325
+ font-size: 9px;
1326
+ font-family: var(--mono);
1327
+ font-weight: 700;
1328
+ letter-spacing: 0.06em;
1329
+ text-transform: uppercase;
1330
+ border: 1px solid color-mix(in srgb, #f0b90b 50%, var(--border) 50%);
1331
+ color: var(--text);
1332
+ border-radius: 3px;
1333
+ background: color-mix(in srgb, #f0b90b 8%, transparent 92%);
1334
+ }
1335
+
1336
+ .wt__network-badge::before {
1337
+ content: "";
1338
+ display: inline-block;
1339
+ width: 5px;
1340
+ height: 5px;
1341
+ border-radius: 50%;
1342
+ background: #f0b90b;
1343
+ flex-shrink: 0;
1344
+ }
1345
+
1346
+ /* ── Receive button ──────────────────────────────────────────────── */
1347
+
1348
+ .wt__receive-btn {
1349
+ display: inline-flex;
1350
+ align-items: center;
1351
+ gap: 5px;
1352
+ border: 1px solid var(--border);
1353
+ background: var(--bg);
1354
+ color: var(--muted);
1355
+ padding: 4px 12px;
1356
+ font-size: 11px;
1357
+ font-family: var(--mono);
1358
+ font-weight: 600;
1359
+ cursor: pointer;
1360
+ border-radius: 3px;
1361
+ transition: all 0.15s;
1362
+ letter-spacing: 0.03em;
1363
+ }
1364
+
1365
+ .wt__receive-btn:hover {
1366
+ border-color: color-mix(in srgb, #f0b90b 60%, var(--border) 40%);
1367
+ color: var(--text);
1368
+ background: color-mix(in srgb, #f0b90b 6%, var(--bg) 94%);
1369
+ }
1370
+
1371
+ /* ── Token logo (image + letter fallback) ────────────────────────── */
1372
+
1373
+ .wt__token-logo {
1374
+ width: 32px;
1375
+ height: 32px;
1376
+ border-radius: 50%;
1377
+ display: inline-flex;
1378
+ align-items: center;
1379
+ justify-content: center;
1380
+ flex-shrink: 0;
1381
+ object-fit: cover;
1382
+ font-weight: 700;
1383
+ font-family: var(--mono);
1384
+ color: white;
1385
+ }
1386
+
1387
+ .wt__token-logo.is-letter {
1388
+ /* background comes from chain class */
1389
+ background: var(--bg-muted);
1390
+ }
1391
+
1392
+ /* ── Native token row special styling ────────────────────────────── */
1393
+
1394
+ .wt__row--native {
1395
+ background: color-mix(in srgb, #f0b90b 4%, transparent 96%);
1396
+ }
1397
+
1398
+ .wt__row--native.wt__row--native:hover {
1399
+ background: color-mix(in srgb, #f0b90b 8%, var(--bg) 92%);
1400
+ }
1401
+
1402
+ /* ── Native badge label ──────────────────────────────────────────── */
1403
+
1404
+ .wt__native-badge {
1405
+ display: inline-flex;
1406
+ align-items: center;
1407
+ padding: 0px 5px;
1408
+ font-size: 9px;
1409
+ font-family: var(--mono);
1410
+ font-weight: 600;
1411
+ letter-spacing: 0.05em;
1412
+ text-transform: uppercase;
1413
+ border: 1px solid color-mix(in srgb, #f0b90b 40%, var(--border) 60%);
1414
+ color: color-mix(in srgb, #f0b90b 80%, var(--muted) 20%);
1415
+ border-radius: 3px;
1416
+ }
1417
+
1418
+ /* ── BNB sub-label in portfolio ──────────────────────────────────── */
1419
+
1420
+ .wt__bnb-sub {
1421
+ font-size: 11px;
1422
+ font-family: var(--mono);
1423
+ color: var(--muted);
1424
+ margin-top: 3px;
1425
+ }
1426
+
1427
+ /* ── Inline BSC error ────────────────────────────────────────────── */
1428
+
1429
+ .wt__error-inline {
1430
+ display: flex;
1431
+ align-items: center;
1432
+ gap: 8px;
1433
+ padding: 5px 8px;
1434
+ background: color-mix(in srgb, var(--danger, #e74c3c) 8%, var(--bg) 92%);
1435
+ border: 1px solid
1436
+ color-mix(in srgb, var(--danger, #e74c3c) 30%, var(--border) 70%);
1437
+ border-radius: 3px;
1438
+ }
1439
+
1440
+ .wt__error-inline-text {
1441
+ flex: 1;
1442
+ font-size: 11px;
1443
+ font-family: var(--mono);
1444
+ color: var(--danger, #e74c3c);
1445
+ word-break: break-all;
1446
+ }
1447
+
1448
+ .wt__error-retry {
1449
+ border: 1px solid
1450
+ color-mix(in srgb, var(--danger, #e74c3c) 40%, var(--border) 60%);
1451
+ background: transparent;
1452
+ color: var(--danger, #e74c3c);
1453
+ padding: 2px 8px;
1454
+ font-size: 10px;
1455
+ font-family: var(--mono);
1456
+ cursor: pointer;
1457
+ white-space: nowrap;
1458
+ transition: all 0.15s;
1459
+ }
1460
+
1461
+ .wt__error-retry:hover {
1462
+ background: color-mix(in srgb, var(--danger, #e74c3c) 12%, var(--bg) 88%);
1463
+ }
1464
+
1465
+ /* ── Contract input with validation border ───────────────────────── */
1466
+
1467
+ .wt__quick-input.is-valid {
1468
+ border-color: color-mix(in srgb, var(--ok) 70%, var(--border) 30%);
1469
+ }
1470
+
1471
+ .wt__quick-input.is-invalid {
1472
+ border-color: color-mix(in srgb, var(--warn) 70%, var(--border) 30%);
1473
+ }
1474
+
1475
+ /* ── Input wrapper + recents dropdown ────────────────────────────── */
1476
+
1477
+ .wt__input-wrap {
1478
+ flex: 1;
1479
+ min-width: 180px;
1480
+ position: relative;
1481
+ display: flex;
1482
+ align-items: center;
1483
+ }
1484
+
1485
+ .wt__input-wrap .wt__quick-input {
1486
+ flex: 1;
1487
+ min-width: 0;
1488
+ padding-right: 28px;
1489
+ }
1490
+
1491
+ .wt__recents-toggle {
1492
+ position: absolute;
1493
+ right: 6px;
1494
+ top: 50%;
1495
+ transform: translateY(-50%);
1496
+ border: none;
1497
+ background: transparent;
1498
+ color: var(--muted);
1499
+ font-size: 11px;
1500
+ cursor: pointer;
1501
+ padding: 2px 4px;
1502
+ line-height: 1;
1503
+ transition: color 0.15s;
1504
+ }
1505
+
1506
+ .wt__recents-toggle:hover {
1507
+ color: var(--text);
1508
+ }
1509
+
1510
+ .wt__recents {
1511
+ position: absolute;
1512
+ top: calc(100% + 2px);
1513
+ left: 0;
1514
+ right: 0;
1515
+ z-index: 40;
1516
+ border: 1px solid var(--border);
1517
+ background: var(--card);
1518
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
1519
+ }
1520
+
1521
+ .wt__recents-item {
1522
+ display: block;
1523
+ width: 100%;
1524
+ padding: 6px 10px;
1525
+ text-align: left;
1526
+ border: none;
1527
+ background: transparent;
1528
+ cursor: pointer;
1529
+ transition: background 0.1s;
1530
+ }
1531
+
1532
+ .wt__recents-item:hover {
1533
+ background: var(--bg-hover, var(--bg));
1534
+ }
1535
+
1536
+ .wt__recents-addr {
1537
+ font-size: 11px;
1538
+ font-family: var(--mono);
1539
+ color: var(--muted);
1540
+ }
1541
+
1542
+ .wt__recents-item:hover .wt__recents-addr {
1543
+ color: var(--text);
1544
+ }
1545
+
1546
+ /* ── Slippage selector ───────────────────────────────────────────── */
1547
+
1548
+ .wt__slip {
1549
+ display: flex;
1550
+ align-items: center;
1551
+ gap: 5px;
1552
+ margin-top: 7px;
1553
+ flex-wrap: wrap;
1554
+ }
1555
+
1556
+ .wt__slip-label {
1557
+ font-size: 10px;
1558
+ color: var(--muted);
1559
+ font-family: var(--mono);
1560
+ }
1561
+
1562
+ .wt__slip-btn {
1563
+ border: 1px solid var(--border);
1564
+ background: var(--bg);
1565
+ color: var(--muted);
1566
+ padding: 2px 7px;
1567
+ font-size: 10px;
1568
+ font-family: var(--mono);
1569
+ cursor: pointer;
1570
+ border-radius: 3px;
1571
+ transition: all 0.15s;
1572
+ }
1573
+
1574
+ .wt__slip-btn.is-active {
1575
+ border-color: var(--text);
1576
+ color: var(--text);
1577
+ }
1578
+
1579
+ .wt__slip-btn:hover:not(.is-active) {
1580
+ border-color: var(--muted);
1581
+ color: var(--text);
1582
+ }
1583
+
1584
+ .wt__slip-input {
1585
+ border: 1px solid var(--border);
1586
+ background: var(--bg);
1587
+ color: var(--text);
1588
+ padding: 2px 6px;
1589
+ font-size: 10px;
1590
+ font-family: var(--mono);
1591
+ width: 68px;
1592
+ border-radius: 3px;
1593
+ outline: none;
1594
+ transition: border-color 0.15s;
1595
+ }
1596
+
1597
+ .wt__slip-input::placeholder {
1598
+ color: var(--muted);
1599
+ }
1600
+
1601
+ .wt__slip-input:focus {
1602
+ border-color: var(--text);
1603
+ }
1604
+
1605
+ .wt__slip-input.is-active {
1606
+ border-color: var(--text);
1607
+ color: var(--text);
1608
+ }
1609
+
1610
+ .companion-game__roster-list::before {
1611
+ content: "";
1612
+ position: absolute;
1613
+ left: 6px;
1614
+ top: 6px;
1615
+ bottom: 6px;
1616
+ width: 1px;
1617
+ background: rgba(102, 111, 137, 0.42);
1618
+ }
1619
+
1620
+ .companion-game__roster-item {
1621
+ position: relative;
1622
+ width: 100%;
1623
+ border-radius: 16px;
1624
+ border: 1px solid rgba(193, 198, 217, 0.78);
1625
+ background: rgba(248, 249, 253, 0.9);
1626
+ padding: 7px 8px;
1627
+ display: grid;
1628
+ grid-template-columns: 56px minmax(0, 1fr);
1629
+ gap: 10px;
1630
+ align-items: center;
1631
+ text-align: left;
1632
+ transition:
1633
+ border-color 140ms ease,
1634
+ transform 140ms ease,
1635
+ background-color 140ms ease;
1636
+ }
1637
+
1638
+ .companion-game__roster-item:hover {
1639
+ border-color: rgba(158, 178, 67, 0.9);
1640
+ transform: translateY(-1px);
1641
+ }
1642
+
1643
+ .companion-game__roster-item.is-active {
1644
+ border-color: rgba(158, 178, 67, 0.9);
1645
+ background: rgba(255, 251, 235, 0.95);
1646
+ }
1647
+
1648
+ .companion-game__roster-node {
1649
+ position: absolute;
1650
+ left: -15px;
1651
+ top: 50%;
1652
+ width: 8px;
1653
+ height: 8px;
1654
+ border-radius: 999px;
1655
+ transform: translateY(-50%);
1656
+ background: #1e212f;
1657
+ box-shadow: 0 0 0 2px rgba(240, 243, 252, 0.9);
1658
+ }
1659
+
1660
+ .companion-game__roster-item.is-active .companion-game__roster-node {
1661
+ background: #9eb243;
1662
+ }
1663
+
1664
+ .companion-game__roster-thumb {
1665
+ width: 56px;
1666
+ height: 56px;
1667
+ border-radius: 8px;
1668
+ border: 1px solid rgba(186, 191, 211, 0.86);
1669
+ background: rgba(238, 242, 252, 0.86);
1670
+ overflow: hidden;
1671
+ display: inline-flex;
1672
+ align-items: center;
1673
+ justify-content: center;
1674
+ }
1675
+
1676
+ .companion-game__roster-thumb img {
1677
+ width: 100%;
1678
+ height: 100%;
1679
+ object-fit: cover;
1680
+ object-position: center 24%;
1681
+ }
1682
+
1683
+ .companion-game__roster-meta {
1684
+ display: grid;
1685
+ gap: 2px;
1686
+ min-width: 0;
1687
+ }
1688
+
1689
+ .companion-game__roster-title {
1690
+ font-size: 12px;
1691
+ font-weight: 700;
1692
+ color: #1f2434;
1693
+ letter-spacing: 0.02em;
1694
+ text-transform: uppercase;
1695
+ white-space: nowrap;
1696
+ overflow: hidden;
1697
+ text-overflow: ellipsis;
1698
+ }
1699
+
1700
+ .companion-game__roster-subtitle {
1701
+ font-size: 11px;
1702
+ color: #666d84;
1703
+ white-space: nowrap;
1704
+ overflow: hidden;
1705
+ text-overflow: ellipsis;
1706
+ }
1707
+
1708
+ .companion-game__roster-item.is-active .companion-game__roster-subtitle {
1709
+ color: #6b7730;
1710
+ }
1711
+
1712
+ .companion-game__mini-progress {
1713
+ display: grid;
1714
+ gap: 4px;
1715
+ }
1716
+
1717
+ .companion-game__mini-progress-label {
1718
+ display: flex;
1719
+ justify-content: space-between;
1720
+ font-size: 12px;
1721
+ color: #4f5467;
1722
+ font-weight: 600;
1723
+ }
1724
+
1725
+ .companion-game__mini-progress-track {
1726
+ height: 8px;
1727
+ border-radius: 999px;
1728
+ background: rgba(167, 174, 193, 0.33);
1729
+ overflow: hidden;
1730
+ }
1731
+
1732
+ .companion-game__mini-progress-fill {
1733
+ height: 100%;
1734
+ border-radius: 999px;
1735
+ background: linear-gradient(90deg, #10131b 0%, #566188 100%);
1736
+ }
1737
+
1738
+ .companion-game__status-chip {
1739
+ margin-top: 3px;
1740
+ border-radius: 999px;
1741
+ font-size: 11px;
1742
+ font-weight: 700;
1743
+ text-transform: uppercase;
1744
+ letter-spacing: 0.07em;
1745
+ padding: 8px 12px;
1746
+ width: fit-content;
1747
+ }
1748
+
1749
+ .companion-game__status-chip.is-good {
1750
+ color: #1f6a3b;
1751
+ background: rgba(63, 154, 97, 0.14);
1752
+ border: 1px solid rgba(63, 154, 97, 0.52);
1753
+ }
1754
+
1755
+ .companion-game__status-chip.is-danger {
1756
+ color: #8f3f47;
1757
+ background: rgba(211, 95, 106, 0.12);
1758
+ border: 1px solid rgba(211, 95, 106, 0.5);
1759
+ }
1760
+
1761
+ .companion-game__status-notes {
1762
+ border-radius: 12px;
1763
+ background: rgba(255, 255, 255, 0.7);
1764
+ border: 1px solid rgba(188, 194, 212, 0.75);
1765
+ padding: 10px 12px;
1766
+ font-size: 12px;
1767
+ color: #54596b;
1768
+ }
1769
+
1770
+ .companion-game__status-notes--danger {
1771
+ border-color: rgba(211, 95, 106, 0.4);
1772
+ color: #8f3f47;
1773
+ }
1774
+
1775
+ .companion-game__panel-metrics {
1776
+ display: grid;
1777
+ gap: 4px;
1778
+ font-size: 12px;
1779
+ color: #5d6276;
1780
+ }
1781
+
1782
+ .companion-game__panel-btn {
1783
+ margin-top: auto;
1784
+ border-radius: 999px;
1785
+ border: 1px solid var(--cg-action-border);
1786
+ background: var(--cg-action);
1787
+ min-height: 40px;
1788
+ font-size: 12px;
1789
+ font-weight: 700;
1790
+ }
1791
+
1792
+ .companion-game__kpi-grid {
1793
+ display: grid;
1794
+ gap: 12px;
1795
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1796
+ }
1797
+
1798
+ .companion-game__kpi-card {
1799
+ border-radius: 24px;
1800
+ border: 1px solid var(--cg-border);
1801
+ background: var(--cg-card);
1802
+ box-shadow: var(--cg-soft-shadow);
1803
+ padding: 16px 18px;
1804
+ min-height: 120px;
1805
+ display: flex;
1806
+ flex-direction: column;
1807
+ justify-content: space-between;
1808
+ animation: companion-reveal 300ms ease;
1809
+ }
1810
+
1811
+ @keyframes kpi-flash {
1812
+ 0% {
1813
+ background: var(--cg-accent);
1814
+ }
1815
+
1816
+ 100% {
1817
+ background: var(--cg-card);
1818
+ }
1819
+ }
1820
+
1821
+ .companion-game__kpi-card.is-changed {
1822
+ animation: kpi-flash 1.2s ease-out;
1823
+ }
1824
+
1825
+ .companion-game__kpi-label {
1826
+ font-size: 15px;
1827
+ color: #505467;
1828
+ font-weight: 600;
1829
+ }
1830
+
1831
+ .companion-game__kpi-value {
1832
+ font-size: 2.3rem;
1833
+ font-weight: 800;
1834
+ line-height: 1;
1835
+ }
1836
+
1837
+ .companion-game__kpi-note {
1838
+ font-size: 12px;
1839
+ color: #666b7f;
1840
+ }
1841
+
1842
+ .companion-game__footer-meta {
1843
+ display: flex;
1844
+ flex-wrap: wrap;
1845
+ gap: 10px 16px;
1846
+ font-size: 12px;
1847
+ color: #70758a;
1848
+ }
1849
+
1850
+ .companion-game__footer-meta span {
1851
+ border-radius: 999px;
1852
+ border: 1px solid rgba(183, 188, 206, 0.72);
1853
+ background: rgba(250, 251, 255, 0.72);
1854
+ padding: 5px 10px;
1855
+ }
1856
+
1857
+ .companion-game__drawer-overlay {
1858
+ position: absolute;
1859
+ inset: 0;
1860
+ background: rgba(26, 29, 42, 0.34);
1861
+ opacity: 0;
1862
+ visibility: hidden;
1863
+ transition: opacity 180ms ease;
1864
+ z-index: 10;
1865
+ }
1866
+
1867
+ .companion-game__drawer-overlay.is-open {
1868
+ opacity: 1;
1869
+ visibility: visible;
1870
+ }
1871
+
1872
+ .companion-game__drawer {
1873
+ position: absolute;
1874
+ top: 0;
1875
+ right: 0;
1876
+ height: 100%;
1877
+ width: min(460px, 88vw);
1878
+ border-left: 1px solid rgba(179, 186, 204, 0.82);
1879
+ background: rgba(250, 251, 255, 0.98);
1880
+ box-shadow: -14px 0 34px rgba(25, 30, 45, 0.2);
1881
+ z-index: 20;
1882
+ transform: translateX(104%);
1883
+ transition: transform 220ms ease;
1884
+ display: flex;
1885
+ flex-direction: column;
1886
+ overflow: hidden;
1887
+ }
1888
+
1889
+ .companion-game__drawer.is-open {
1890
+ transform: translateX(0);
1891
+ }
1892
+
1893
+ .companion-game__drawer-header {
1894
+ display: flex;
1895
+ align-items: flex-start;
1896
+ justify-content: space-between;
1897
+ gap: 12px;
1898
+ border-bottom: 1px solid rgba(188, 194, 212, 0.78);
1899
+ padding: 18px;
1900
+ }
1901
+
1902
+ .companion-game__drawer-header h3 {
1903
+ margin: 0;
1904
+ font-size: 1.1rem;
1905
+ font-weight: 800;
1906
+ }
1907
+
1908
+ .companion-game__drawer-header p {
1909
+ margin: 4px 0 0;
1910
+ font-size: 12px;
1911
+ color: #60657a;
1912
+ }
1913
+
1914
+ .companion-game__drawer-close {
1915
+ min-height: 34px;
1916
+ border-radius: 999px;
1917
+ border: 1px solid rgba(190, 195, 211, 0.85);
1918
+ padding: 0 12px;
1919
+ background: #ffffff;
1920
+ font-size: 12px;
1921
+ font-weight: 700;
1922
+ }
1923
+
1924
+ .companion-game__drawer-section {
1925
+ padding: 16px 18px;
1926
+ border-bottom: 1px solid rgba(196, 201, 218, 0.7);
1927
+ display: grid;
1928
+ gap: 10px;
1929
+ }
1930
+
1931
+ .companion-game__drawer-title {
1932
+ font-size: 12px;
1933
+ text-transform: uppercase;
1934
+ letter-spacing: 0.07em;
1935
+ color: #50566c;
1936
+ font-weight: 800;
1937
+ }
1938
+
1939
+ .companion-game__helper {
1940
+ font-size: 12px;
1941
+ color: #64697d;
1942
+ }
1943
+
1944
+ .companion-game__checkbox {
1945
+ display: inline-flex;
1946
+ align-items: center;
1947
+ gap: 8px;
1948
+ font-size: 13px;
1949
+ }
1950
+
1951
+ .companion-game__drawer-grid {
1952
+ display: grid;
1953
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1954
+ gap: 8px;
1955
+ }
1956
+
1957
+ .companion-game__field {
1958
+ display: grid;
1959
+ gap: 5px;
1960
+ font-size: 12px;
1961
+ color: #59607a;
1962
+ }
1963
+
1964
+ .companion-game__field select {
1965
+ border: 1px solid rgba(183, 189, 208, 0.95);
1966
+ border-radius: 10px;
1967
+ background: #ffffff;
1968
+ min-height: 34px;
1969
+ padding: 0 10px;
1970
+ color: #1f2434;
1971
+ }
1972
+
1973
+ .companion-game__drawer-actions {
1974
+ display: flex;
1975
+ flex-wrap: wrap;
1976
+ gap: 8px;
1977
+ }
1978
+
1979
+ .companion-game__drawer-btn {
1980
+ min-height: 36px;
1981
+ border-radius: 999px;
1982
+ border: 1px solid rgba(182, 188, 206, 0.9);
1983
+ background: #ffffff;
1984
+ padding: 0 12px;
1985
+ font-size: 12px;
1986
+ font-weight: 700;
1987
+ }
1988
+
1989
+ .companion-game__drawer-btn--primary {
1990
+ border-color: #9fb243;
1991
+ background: #c7da63;
1992
+ }
1993
+
1994
+ .companion-game__drawer-btn:disabled {
1995
+ opacity: 0.5;
1996
+ cursor: not-allowed;
1997
+ }
1998
+
1999
+ .companion-game__activity-list {
2000
+ max-height: 280px;
2001
+ overflow-y: auto;
2002
+ border: 1px solid rgba(185, 191, 210, 0.82);
2003
+ border-radius: 12px;
2004
+ background: rgba(255, 255, 255, 0.86);
2005
+ }
2006
+
2007
+ .companion-game__activity-item {
2008
+ padding: 10px;
2009
+ border-bottom: 1px solid rgba(198, 203, 220, 0.72);
2010
+ font-size: 12px;
2011
+ color: #2f3446;
2012
+ }
2013
+
2014
+ .companion-game__activity-item:last-child {
2015
+ border-bottom: 0;
2016
+ }
2017
+
2018
+ .companion-game__activity-meta {
2019
+ font-size: 11px;
2020
+ color: #6a6f84;
2021
+ margin-bottom: 3px;
2022
+ }
2023
+
2024
+ @media (max-width: 1279px) {
2025
+ .companion-game__kpi-grid {
2026
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2027
+ }
2028
+ }
2029
+
2030
+ @media (max-width: 1023px) {
2031
+ .companion-game {
2032
+ border-radius: 26px;
2033
+ padding: 16px;
2034
+ }
2035
+
2036
+ .companion-game__left-rail {
2037
+ order: 2;
2038
+ display: flex;
2039
+ flex-direction: row;
2040
+ align-items: stretch;
2041
+ gap: 10px;
2042
+ }
2043
+
2044
+ .companion-game__rail-actions {
2045
+ flex: 1;
2046
+ }
2047
+
2048
+ .companion-game__stage {
2049
+ order: 1;
2050
+ }
2051
+
2052
+ .companion-game__roster {
2053
+ order: 3;
2054
+ }
2055
+ }
2056
+
2057
+ @media (max-width: 767px) {
2058
+ .companion-game__logo-mark {
2059
+ display: none;
2060
+ }
2061
+
2062
+ .companion-game__left-rail {
2063
+ display: flex;
2064
+ flex-direction: column;
2065
+ }
2066
+
2067
+ .companion-game__vrm-shell {
2068
+ min-height: 460px;
2069
+ height: 66vh;
2070
+ }
2071
+
2072
+ .companion-game__kpi-grid {
2073
+ grid-template-columns: 1fr;
2074
+ }
2075
+
2076
+ .companion-game__drawer {
2077
+ width: 100%;
2078
+ border-left: 0;
2079
+ }
2080
+
2081
+ .companion-game__drawer-grid {
2082
+ grid-template-columns: 1fr;
2083
+ }
2084
+
2085
+ }