@elizaos/ui 2.0.3-beta.6 → 2.0.3-beta.7

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 (231) hide show
  1. package/App.d.ts.map +1 -1
  2. package/App.js +30 -4
  3. package/api/app-shell-capabilities.d.ts +9 -0
  4. package/api/app-shell-capabilities.d.ts.map +1 -0
  5. package/api/app-shell-capabilities.js +39 -0
  6. package/api/auth-client.d.ts.map +1 -1
  7. package/api/auth-client.js +4 -1
  8. package/api/client-agent.d.ts.map +1 -1
  9. package/api/client-agent.js +35 -24
  10. package/api/client-base.d.ts +36 -0
  11. package/api/client-base.d.ts.map +1 -1
  12. package/api/client-base.js +79 -0
  13. package/api/client-chat.d.ts.map +1 -1
  14. package/api/client-chat.js +14 -5
  15. package/api/client-cloud.d.ts +49 -0
  16. package/api/client-cloud.d.ts.map +1 -1
  17. package/api/client-cloud.js +73 -6
  18. package/api/client-local-inference.d.ts.map +1 -1
  19. package/api/client-local-inference.js +5 -1
  20. package/api/desktop-external-api-base.d.ts +4 -0
  21. package/api/desktop-external-api-base.d.ts.map +1 -0
  22. package/api/desktop-external-api-base.js +43 -0
  23. package/api/desktop-http-transport.d.ts.map +1 -1
  24. package/api/desktop-http-transport.js +2 -28
  25. package/api/i18n-locale-client.d.ts.map +1 -1
  26. package/api/i18n-locale-client.js +12 -0
  27. package/cloud/billing/components/billing-tab.d.ts.map +1 -1
  28. package/cloud/billing/components/billing-tab.js +11 -14
  29. package/cloud/connectors/discord-gateway-connection.d.ts.map +1 -1
  30. package/cloud/connectors/discord-gateway-connection.js +39 -5
  31. package/cloud/connectors/index.d.ts +9 -0
  32. package/cloud/connectors/index.d.ts.map +1 -1
  33. package/cloud/connectors/index.js +14 -1
  34. package/cloud/handoff/run-cloud-agent-handoff.d.ts +10 -1
  35. package/cloud/handoff/run-cloud-agent-handoff.d.ts.map +1 -1
  36. package/cloud/handoff/run-cloud-agent-handoff.js +43 -7
  37. package/cloud/handoff/silent-repoint.d.ts +33 -0
  38. package/cloud/handoff/silent-repoint.d.ts.map +1 -0
  39. package/cloud/handoff/silent-repoint.js +55 -0
  40. package/cloud/instances/AgentDetailPage.d.ts.map +1 -1
  41. package/cloud/instances/AgentDetailPage.js +2 -2
  42. package/cloud/instances/components/agent-actions.d.ts.map +1 -1
  43. package/cloud/instances/components/agent-actions.js +1 -4
  44. package/cloud/instances/components/eliza-agents-table.d.ts.map +1 -1
  45. package/cloud/instances/components/eliza-agents-table.js +1 -10
  46. package/cloud/instances/index.d.ts +2 -5
  47. package/cloud/instances/index.d.ts.map +1 -1
  48. package/cloud/instances/index.js +2 -12
  49. package/cloud/organization/invite-member-dialog.d.ts.map +1 -1
  50. package/cloud/organization/invite-member-dialog.js +2 -5
  51. package/cloud/organization/members-tab.d.ts.map +1 -1
  52. package/cloud/organization/members-tab.js +4 -7
  53. package/cloud/public-pages/pages/app-auth/app-authorize-page.d.ts +9 -0
  54. package/cloud/public-pages/pages/app-auth/app-authorize-page.d.ts.map +1 -1
  55. package/cloud/public-pages/pages/app-auth/app-authorize-page.js +11 -1
  56. package/cloud/register-all.d.ts +0 -1
  57. package/cloud/register-all.d.ts.map +1 -1
  58. package/cloud/register-all.js +3 -7
  59. package/cloud/settings/index.d.ts +5 -6
  60. package/cloud/settings/index.d.ts.map +1 -1
  61. package/cloud/settings/index.js +5 -6
  62. package/cloud/settings/register-cloud-settings.d.ts +2 -2
  63. package/cloud/settings/register-cloud-settings.d.ts.map +1 -1
  64. package/cloud/settings/register-cloud-settings.js +127 -121
  65. package/cloud/shell/CloudRouterShell.d.ts.map +1 -1
  66. package/cloud/shell/CloudRouterShell.js +5 -0
  67. package/cloud-ui/components/drawer.d.ts.map +1 -1
  68. package/cloud-ui/components/drawer.js +1 -1
  69. package/cloud-ui/index.d.ts +0 -1
  70. package/cloud-ui/index.d.ts.map +1 -1
  71. package/cloud-ui/index.js +0 -1
  72. package/components/apps/app-identity.helpers.d.ts.map +1 -1
  73. package/components/apps/app-identity.helpers.js +8 -0
  74. package/components/chat/widgets/inbox-unread.d.ts.map +1 -1
  75. package/components/chat/widgets/inbox-unread.js +8 -1
  76. package/components/chat/widgets/needs-attention.d.ts.map +1 -1
  77. package/components/chat/widgets/needs-attention.js +18 -2
  78. package/components/chat/widgets/relationships-attention.d.ts.map +1 -1
  79. package/components/chat/widgets/relationships-attention.js +5 -0
  80. package/components/composites/chat/chat-composer.js +15 -15
  81. package/components/config-ui/ui-renderer.d.ts.map +1 -1
  82. package/components/config-ui/ui-renderer.js +1 -1
  83. package/components/local-inference/useHomeModelStatus.d.ts.map +1 -1
  84. package/components/local-inference/useHomeModelStatus.js +31 -1
  85. package/components/pages/SettingsView.d.ts.map +1 -1
  86. package/components/pages/SettingsView.js +1 -4
  87. package/components/pages/Springboard.d.ts.map +1 -1
  88. package/components/pages/Springboard.js +17 -1
  89. package/components/pages/SpringboardSurface.d.ts.map +1 -1
  90. package/components/pages/SpringboardSurface.js +14 -3
  91. package/components/settings/CloudAgentsSection.d.ts.map +1 -1
  92. package/components/settings/CloudAgentsSection.js +6 -8
  93. package/components/settings/CloudOverviewSection.d.ts +2 -0
  94. package/components/settings/CloudOverviewSection.d.ts.map +1 -0
  95. package/components/settings/CloudOverviewSection.js +81 -0
  96. package/components/settings/ConnectorsSection.d.ts +19 -0
  97. package/components/settings/ConnectorsSection.d.ts.map +1 -1
  98. package/components/settings/ConnectorsSection.js +72 -27
  99. package/components/settings/settings-sections.d.ts.map +1 -1
  100. package/components/settings/settings-sections.js +26 -4
  101. package/components/shell/ComputerUseApprovalOverlay.d.ts.map +1 -1
  102. package/components/shell/ComputerUseApprovalOverlay.js +12 -2
  103. package/components/shell/ContinuousChatOverlay.d.ts.map +1 -1
  104. package/components/shell/ContinuousChatOverlay.js +41 -8
  105. package/components/shell/ShellHeaderControls.d.ts.map +1 -1
  106. package/components/shell/ShellHeaderControls.js +1 -1
  107. package/components/shell/StartupFailureView.d.ts.map +1 -1
  108. package/components/shell/StartupFailureView.js +4 -2
  109. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.d.ts +2 -0
  110. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.d.ts.map +1 -1
  111. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.js +8 -0
  112. package/components/views/ViewTileImage.d.ts +4 -4
  113. package/components/views/ViewTileImage.d.ts.map +1 -1
  114. package/components/views/ViewTileImage.js +26 -9
  115. package/config/boot-config-store.d.ts +10 -0
  116. package/config/boot-config-store.d.ts.map +1 -1
  117. package/first-run/CompactOnboarding.d.ts.map +1 -1
  118. package/first-run/CompactOnboarding.js +4 -2
  119. package/first-run/use-first-run-controller.d.ts +1 -0
  120. package/first-run/use-first-run-controller.d.ts.map +1 -1
  121. package/first-run/use-first-run-controller.js +133 -56
  122. package/hooks/useAvailableViews.d.ts +11 -2
  123. package/hooks/useAvailableViews.d.ts.map +1 -1
  124. package/hooks/useAvailableViews.js +49 -7
  125. package/hooks/useHorizontalPager.d.ts.map +1 -1
  126. package/hooks/useHorizontalPager.js +11 -4
  127. package/hooks/useViewCatalog.d.ts.map +1 -1
  128. package/hooks/useViewCatalog.js +5 -2
  129. package/hooks/view-catalog.d.ts +2 -0
  130. package/hooks/view-catalog.d.ts.map +1 -1
  131. package/hooks/view-catalog.js +1 -0
  132. package/index.d.ts +0 -1
  133. package/index.d.ts.map +1 -1
  134. package/index.js +0 -1
  135. package/layouts/content-layout/content-layout.d.ts.map +1 -1
  136. package/layouts/content-layout/content-layout.js +2 -1
  137. package/package.json +10 -10
  138. package/platform/browser-launch.d.ts.map +1 -1
  139. package/platform/browser-launch.js +2 -0
  140. package/state/AppContext.js +6 -4
  141. package/state/startup-coordinator.d.ts +2 -0
  142. package/state/startup-coordinator.d.ts.map +1 -1
  143. package/state/startup-coordinator.js +8 -0
  144. package/state/startup-first-run-options.d.ts +4 -0
  145. package/state/startup-first-run-options.d.ts.map +1 -0
  146. package/state/startup-first-run-options.js +18 -0
  147. package/state/startup-phase-hydrate.d.ts.map +1 -1
  148. package/state/startup-phase-hydrate.js +25 -14
  149. package/state/startup-phase-poll.d.ts.map +1 -1
  150. package/state/startup-phase-poll.js +60 -0
  151. package/state/startup-phase-restore.d.ts.map +1 -1
  152. package/state/startup-phase-restore.js +6 -19
  153. package/state/types.d.ts +0 -17
  154. package/state/types.d.ts.map +1 -1
  155. package/state/types.js +0 -13
  156. package/state/use-startup-shell-controller.d.ts.map +1 -1
  157. package/state/use-startup-shell-controller.js +3 -2
  158. package/state/useAppShellState.d.ts +5 -1
  159. package/state/useAppShellState.d.ts.map +1 -1
  160. package/state/useAppShellState.js +11 -3
  161. package/state/useChatCallbacks.d.ts +1 -0
  162. package/state/useChatCallbacks.d.ts.map +1 -1
  163. package/state/useChatCallbacks.js +53 -8
  164. package/state/useChatLifecycle.d.ts +1 -0
  165. package/state/useChatLifecycle.d.ts.map +1 -1
  166. package/state/useChatLifecycle.js +2 -2
  167. package/state/useChatSend.d.ts.map +1 -1
  168. package/state/useChatSend.js +72 -8
  169. package/state/useCloudState.d.ts.map +1 -1
  170. package/state/useCloudState.js +29 -1
  171. package/state/useDataLoaders.d.ts.map +1 -1
  172. package/state/useDataLoaders.js +9 -0
  173. package/state/useFirstRunCallbacks.d.ts.map +1 -1
  174. package/state/useFirstRunCallbacks.js +5 -0
  175. package/state/useLifecycleState.d.ts +0 -7
  176. package/state/useLifecycleState.d.ts.map +1 -1
  177. package/state/useLifecycleState.js +0 -24
  178. package/state/usePluginsSkillsState.d.ts +2 -2
  179. package/state/useWalletState.d.ts +3 -1
  180. package/state/useWalletState.d.ts.map +1 -1
  181. package/state/useWalletState.js +4 -2
  182. package/storybook/mock-providers.d.ts.map +1 -1
  183. package/storybook/mock-providers.js +2 -0
  184. package/styles/electrobun-mac-window-drag.css +7 -0
  185. package/widgets/WidgetHost.d.ts.map +1 -1
  186. package/widgets/WidgetHost.js +21 -3
  187. package/cloud/documents/DocumentsRoute.d.ts +0 -21
  188. package/cloud/documents/DocumentsRoute.d.ts.map +0 -1
  189. package/cloud/documents/DocumentsRoute.js +0 -45
  190. package/cloud/documents/DocumentsSection.d.ts +0 -15
  191. package/cloud/documents/DocumentsSection.d.ts.map +0 -1
  192. package/cloud/documents/DocumentsSection.js +0 -18
  193. package/cloud/documents/components/document-list.d.ts +0 -19
  194. package/cloud/documents/components/document-list.d.ts.map +0 -1
  195. package/cloud/documents/components/document-list.js +0 -75
  196. package/cloud/documents/components/document-query.d.ts +0 -15
  197. package/cloud/documents/components/document-query.d.ts.map +0 -1
  198. package/cloud/documents/components/document-query.js +0 -92
  199. package/cloud/documents/components/document-upload.d.ts +0 -16
  200. package/cloud/documents/components/document-upload.d.ts.map +0 -1
  201. package/cloud/documents/components/document-upload.js +0 -180
  202. package/cloud/documents/components/documents-page-client.d.ts +0 -20
  203. package/cloud/documents/components/documents-page-client.d.ts.map +0 -1
  204. package/cloud/documents/components/documents-page-client.js +0 -80
  205. package/cloud/documents/index.d.ts +0 -37
  206. package/cloud/documents/index.d.ts.map +0 -1
  207. package/cloud/documents/index.js +0 -45
  208. package/cloud/documents/lib/agents.d.ts +0 -23
  209. package/cloud/documents/lib/agents.d.ts.map +0 -1
  210. package/cloud/documents/lib/agents.js +0 -26
  211. package/cloud/documents/lib/documents.d.ts +0 -54
  212. package/cloud/documents/lib/documents.d.ts.map +0 -1
  213. package/cloud/documents/lib/documents.js +0 -118
  214. package/cloud/instances/AgentChatPage.d.ts +0 -13
  215. package/cloud/instances/AgentChatPage.d.ts.map +0 -1
  216. package/cloud/instances/AgentChatPage.js +0 -217
  217. package/cloud-ui/components/image-gen/empty-state.d.ts +0 -3
  218. package/cloud-ui/components/image-gen/empty-state.d.ts.map +0 -1
  219. package/cloud-ui/components/image-gen/empty-state.js +0 -12
  220. package/cloud-ui/components/image-gen/enhanced-loading.d.ts +0 -14
  221. package/cloud-ui/components/image-gen/enhanced-loading.d.ts.map +0 -1
  222. package/cloud-ui/components/image-gen/enhanced-loading.js +0 -23
  223. package/cloud-ui/components/image-gen/index.d.ts +0 -5
  224. package/cloud-ui/components/image-gen/index.d.ts.map +0 -1
  225. package/cloud-ui/components/image-gen/index.js +0 -4
  226. package/cloud-ui/components/image-gen/loading-state.d.ts +0 -2
  227. package/cloud-ui/components/image-gen/loading-state.d.ts.map +0 -1
  228. package/cloud-ui/components/image-gen/loading-state.js +0 -11
  229. package/cloud-ui/components/image-gen/prompt-input.d.ts +0 -32
  230. package/cloud-ui/components/image-gen/prompt-input.d.ts.map +0 -1
  231. package/cloud-ui/components/image-gen/prompt-input.js +0 -24
@@ -1,45 +0,0 @@
1
- /**
2
- * Documents (Knowledge) cloud domain — barrel + route/section registration.
3
- *
4
- * Lifted from `@elizaos/cloud-frontend/src/dashboard/documents/*` and its data
5
- * hook (`src/lib/data/agents.ts`). Documents is a per-character knowledge
6
- * surface (list / upload-file / upload-text / delete / semantic-query against
7
- * `/api/v1/documents`, characterId-scoped); the canonical home is an
8
- * agent-scoped view (PLAN §"`dashboard/documents` → AGENT-VIEW (Knowledge)").
9
- *
10
- * - {@link DocumentsSection} is the zero-prop component Wave 3 hands to
11
- * `registerSettingsSection({ id: "documents", Component: DocumentsSection })`
12
- * or mounts as a standalone view.
13
- * - {@link documentsCloudRoute} is registered **at import time** at
14
- * `dashboard/documents`. Unlike `dashboard/api-keys`, this path has no
15
- * `CloudRouterShell` redirect to shadow, so eager registration is safe and
16
- * keeps the standalone deep link live. {@link registerDocumentsCloudRoute}
17
- * is also exported for re-registration at a custom path if needed.
18
- */
19
- import { lazy } from "react";
20
- import { registerCloudRoute, } from "../shell/cloud-route-registry.js";
21
- export { DocumentsPageClient } from "./components/documents-page-client.js";
22
- export { DocumentsSurface, default as DocumentsRoute } from "./DocumentsRoute.js";
23
- export { DocumentsSection } from "./DocumentsSection.js";
24
- export { useMyAgents } from "./lib/agents.js";
25
- export { useDeleteDocument, useDocuments, useQueryDocuments, useUploadFiles, useUploadText, } from "./lib/documents.js";
26
- /** Stable view/section id + URL path slug for the Documents surface. */
27
- export const DOCUMENTS_SECTION_ID = "documents";
28
- export const DOCUMENTS_ROUTE_PATH = "dashboard/documents";
29
- /** Lazy route element for the standalone Documents surface (code-split). */
30
- const DocumentsRouteLazy = lazy(() => import("./DocumentsRoute.js"));
31
- /** Cloud-route definition for the standalone Documents (Knowledge) surface. */
32
- export const documentsCloudRoute = {
33
- path: DOCUMENTS_ROUTE_PATH,
34
- element: DocumentsRouteLazy,
35
- group: "dashboard",
36
- };
37
- /**
38
- * Register (or re-register) the standalone Documents route. Exported for an
39
- * explicit custom-path mount; the default registration below runs at import
40
- * time since `dashboard/documents` has no shell redirect to collide with.
41
- */
42
- export function registerDocumentsCloudRoute(override) {
43
- registerCloudRoute({ ...documentsCloudRoute, ...override });
44
- }
45
- registerDocumentsCloudRoute();
@@ -1,23 +0,0 @@
1
- /**
2
- * Documents-domain data hook: the caller's characters (= the per-character
3
- * scope selector for knowledge/documents).
4
- *
5
- * Ported from `@elizaos/cloud-frontend/src/lib/data/agents.ts`, rewired to the
6
- * shared cloud `api<T>` client. Only the fields the documents view consumes are
7
- * narrowed off the projection (`GET /api/my-agents/characters`).
8
- */
9
- /**
10
- * A character row from `GET /api/my-agents/characters`. Fields mirror the
11
- * server projection in `packages/cloud-api/my-agents/characters/route.ts`.
12
- */
13
- export interface MyAgentCharacter {
14
- id: string;
15
- name: string;
16
- bio: string | string[] | null;
17
- }
18
- /**
19
- * `GET /api/my-agents/characters` — the caller's characters, used as the
20
- * per-character scope selector for documents/knowledge.
21
- */
22
- export declare function useMyAgents(): import("@tanstack/react-query").UseQueryResult<NoInfer<MyAgentCharacter[]>, Error>;
23
- //# sourceMappingURL=agents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../../../../../src/cloud/documents/lib/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/B;AAgBD;;;GAGG;AACH,wBAAgB,WAAW,uFAU1B"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Documents-domain data hook: the caller's characters (= the per-character
3
- * scope selector for knowledge/documents).
4
- *
5
- * Ported from `@elizaos/cloud-frontend/src/lib/data/agents.ts`, rewired to the
6
- * shared cloud `api<T>` client. Only the fields the documents view consumes are
7
- * narrowed off the projection (`GET /api/my-agents/characters`).
8
- */
9
- import { useQuery } from "@tanstack/react-query";
10
- import { api } from "../../lib/api-client.js";
11
- import { authenticatedQueryKey, useAuthenticatedQueryGate, } from "../../lib/auth-query.js";
12
- /**
13
- * `GET /api/my-agents/characters` — the caller's characters, used as the
14
- * per-character scope selector for documents/knowledge.
15
- */
16
- export function useMyAgents() {
17
- const gate = useAuthenticatedQueryGate();
18
- return useQuery({
19
- queryKey: authenticatedQueryKey(["my-agents", "characters"], gate),
20
- queryFn: async () => {
21
- const data = await api("/api/my-agents/characters");
22
- return data.data.characters;
23
- },
24
- enabled: gate.enabled,
25
- });
26
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * Documents-domain data layer: per-character knowledge CRUD + query against
3
- * `/api/v1/documents`.
4
- *
5
- * Replaces the raw `fetch()` + manual loading/error state the cloud-frontend
6
- * page client carried with the shared typed `api`/`apiFetch` client and
7
- * react-query. The list query is keyed by `characterId` so switching the scope
8
- * selector refetches; mutations invalidate the list so the UI never has to
9
- * `window.location.reload()`.
10
- *
11
- * Service-unavailable (503) is a first-class, non-throwing result so the page
12
- * can render the "Knowledge service is not available" surface instead of an
13
- * error boundary.
14
- */
15
- import type { CloudDocument, QueryResult } from "@elizaos/cloud-shared/lib/types/documents";
16
- export type { CloudDocument, QueryResult };
17
- interface DocumentMutationResponse {
18
- message?: string;
19
- }
20
- /** Discriminated result so 503 (service down) is not an error path. */
21
- export type DocumentsListState = {
22
- status: "ok";
23
- documents: CloudDocument[];
24
- } | {
25
- status: "service-unavailable";
26
- message: string;
27
- };
28
- /**
29
- * List documents for the selected character. Disabled until a character is
30
- * selected (the scope selector). 503 resolves to a `service-unavailable`
31
- * state rather than throwing.
32
- */
33
- export declare function useDocuments(characterId: string | null): import("@tanstack/react-query").UseQueryResult<NoInfer<DocumentsListState>, Error>;
34
- export declare function useDeleteDocument(characterId: string | null): import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
35
- export interface UploadFilesInput {
36
- files: File[];
37
- /** Pre-resolved MIME types, aligned with `files` by index. */
38
- mimeTypes: string[];
39
- characterId: string | null;
40
- }
41
- export declare function useUploadFiles(characterId: string | null): import("@tanstack/react-query").UseMutationResult<DocumentMutationResponse, Error, UploadFilesInput, unknown>;
42
- export interface UploadTextInput {
43
- content: string;
44
- filename: string;
45
- characterId: string | null;
46
- }
47
- export declare function useUploadText(characterId: string | null): import("@tanstack/react-query").UseMutationResult<DocumentMutationResponse, Error, UploadTextInput, unknown>;
48
- export interface QueryDocumentsInput {
49
- query: string;
50
- limit: number;
51
- characterId: string | null;
52
- }
53
- export declare function useQueryDocuments(): import("@tanstack/react-query").UseMutationResult<QueryResult[], Error, QueryDocumentsInput, unknown>;
54
- //# sourceMappingURL=documents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../../../../../src/cloud/documents/lib/documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACZ,MAAM,2CAA2C,CAAC;AAInD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAU3C,UAAU,wBAAwB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,aAAa,EAAE,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBvD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,sFAMtD;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,mFAkB3D;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,8DAA8D;IAC9D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,iHA2BxD;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,gHAuBvD;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,0GAUhC"}
@@ -1,118 +0,0 @@
1
- /**
2
- * Documents-domain data layer: per-character knowledge CRUD + query against
3
- * `/api/v1/documents`.
4
- *
5
- * Replaces the raw `fetch()` + manual loading/error state the cloud-frontend
6
- * page client carried with the shared typed `api`/`apiFetch` client and
7
- * react-query. The list query is keyed by `characterId` so switching the scope
8
- * selector refetches; mutations invalidate the list so the UI never has to
9
- * `window.location.reload()`.
10
- *
11
- * Service-unavailable (503) is a first-class, non-throwing result so the page
12
- * can render the "Knowledge service is not available" surface instead of an
13
- * error boundary.
14
- */
15
- import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
16
- import { ApiError, api, apiFetch } from "../../lib/api-client.js";
17
- const DOCUMENTS_BASE = "/api/v1/documents";
18
- function documentsListKey(characterId) {
19
- return ["cloud", "documents", characterId];
20
- }
21
- async function fetchDocuments(characterId) {
22
- const query = characterId
23
- ? `?characterId=${encodeURIComponent(characterId)}`
24
- : "";
25
- try {
26
- const data = await api(`${DOCUMENTS_BASE}${query}`);
27
- return { status: "ok", documents: data.documents ?? [] };
28
- }
29
- catch (error) {
30
- if (error instanceof ApiError && error.status === 503) {
31
- return { status: "service-unavailable", message: error.message };
32
- }
33
- throw error;
34
- }
35
- }
36
- /**
37
- * List documents for the selected character. Disabled until a character is
38
- * selected (the scope selector). 503 resolves to a `service-unavailable`
39
- * state rather than throwing.
40
- */
41
- export function useDocuments(characterId) {
42
- return useQuery({
43
- queryKey: documentsListKey(characterId),
44
- queryFn: () => fetchDocuments(characterId),
45
- enabled: characterId !== null,
46
- });
47
- }
48
- export function useDeleteDocument(characterId) {
49
- const queryClient = useQueryClient();
50
- return useMutation({
51
- mutationFn: async (documentId) => {
52
- const query = characterId
53
- ? `?characterId=${encodeURIComponent(characterId)}`
54
- : "";
55
- await apiFetch(`${DOCUMENTS_BASE}/${encodeURIComponent(documentId)}${query}`, { method: "DELETE" });
56
- },
57
- onSuccess: () => {
58
- void queryClient.invalidateQueries({
59
- queryKey: documentsListKey(characterId),
60
- });
61
- },
62
- });
63
- }
64
- export function useUploadFiles(characterId) {
65
- const queryClient = useQueryClient();
66
- return useMutation({
67
- mutationFn: async ({ files, mimeTypes, characterId: cid, }) => {
68
- const formData = new FormData();
69
- if (cid)
70
- formData.append("characterId", cid);
71
- files.forEach((file, index) => {
72
- const blob = new Blob([file], {
73
- type: mimeTypes[index] ?? file.type ?? "application/octet-stream",
74
- });
75
- formData.append("files", blob, file.name);
76
- });
77
- return api(`${DOCUMENTS_BASE}/upload-file`, {
78
- method: "POST",
79
- body: formData,
80
- });
81
- },
82
- onSuccess: () => {
83
- void queryClient.invalidateQueries({
84
- queryKey: documentsListKey(characterId),
85
- });
86
- },
87
- });
88
- }
89
- export function useUploadText(characterId) {
90
- const queryClient = useQueryClient();
91
- return useMutation({
92
- mutationFn: async ({ content, filename, characterId: cid, }) => api(DOCUMENTS_BASE, {
93
- method: "POST",
94
- json: {
95
- content,
96
- contentType: "text/plain",
97
- filename,
98
- characterId: cid || undefined,
99
- },
100
- }),
101
- onSuccess: () => {
102
- void queryClient.invalidateQueries({
103
- queryKey: documentsListKey(characterId),
104
- });
105
- },
106
- });
107
- }
108
- export function useQueryDocuments() {
109
- return useMutation({
110
- mutationFn: async ({ query, limit, characterId }) => {
111
- const data = await api(`${DOCUMENTS_BASE}/query`, {
112
- method: "POST",
113
- json: { query, limit, characterId: characterId || undefined },
114
- });
115
- return data.results ?? [];
116
- },
117
- });
118
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * In-dashboard quick chat (`/dashboard/agents/:id/chat`).
3
- *
4
- * Ported from
5
- * `@elizaos/cloud-frontend/src/dashboard/agents/[id]/chat/Page.tsx`. This is the
6
- * lightweight JSON-RPC bridge chat kept as a convenience for a quick exchange
7
- * from the management surface; for dedicated agents it offers "Open web UI"
8
- * (the real full Eliza experience via the pairing flow). The richer connect →
9
- * chat flow against the active cloud server lives in the app's main chat
10
- * surface.
11
- */
12
- export default function AgentChatPage(): import("react/jsx-runtime").JSX.Element;
13
- //# sourceMappingURL=AgentChatPage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentChatPage.d.ts","sourceRoot":"","sources":["../../../../../../src/cloud/instances/AgentChatPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmZH,MAAM,CAAC,OAAO,UAAU,aAAa,4CA0CpC"}
@@ -1,217 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { BrandButton, DashboardErrorState, DashboardLoadingState, } from "@elizaos/ui/cloud-ui";
3
- import { ArrowLeft, ExternalLink, Loader2, MessageCircle, RefreshCw, Send, } from "lucide-react";
4
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
5
- import { Link, Navigate, useParams } from "react-router-dom";
6
- import { toast } from "sonner";
7
- import { ApiError, api } from "../lib/api-client.js";
8
- import { useDocumentTitle } from "../lib/use-document-title.js";
9
- import { useAgent } from "./lib/data/eliza-agents.js";
10
- import { useT } from "./lib/i18n.js";
11
- import { openWebUIWithPairing } from "./lib/open-web-ui.js";
12
- import { useRequireAuth } from "./lib/use-session-auth.js";
13
- function getErrorMessage(error) {
14
- if (error instanceof ApiError)
15
- return error.message;
16
- return error.message;
17
- }
18
- function displayName(agent) {
19
- const name = agent.agentName;
20
- if (name && name.trim().length > 0)
21
- return name;
22
- return agent.id.slice(0, 8);
23
- }
24
- function bridgeReplyText(result) {
25
- if (!result)
26
- return null;
27
- if (typeof result.text === "string" && result.text.trim().length > 0) {
28
- return result.text;
29
- }
30
- if (typeof result.response === "string" &&
31
- result.response.trim().length > 0) {
32
- return result.response;
33
- }
34
- if (typeof result.message === "string" && result.message.trim().length > 0) {
35
- return result.message;
36
- }
37
- return null;
38
- }
39
- function AgentBridgeChat({ agent }) {
40
- const t = useT();
41
- const name = useMemo(() => displayName(agent), [agent]);
42
- const [messages, setMessages] = useState([]);
43
- const [inputText, setInputText] = useState("");
44
- const [isSending, setIsSending] = useState(false);
45
- const [bridgeState, setBridgeState] = useState("idle");
46
- const [bridgeError, setBridgeError] = useState(null);
47
- const [chatAvailable, setChatAvailable] = useState(true);
48
- const messagesEndRef = useRef(null);
49
- const isRunning = agent.status === "running";
50
- const hasStandaloneWebUi = agent.executionTier !== "shared" && Boolean(agent.webUiUrl);
51
- const canUseBridgeChat = isRunning && chatAvailable;
52
- useEffect(() => {
53
- if (messages.length === 0 && !isSending)
54
- return;
55
- messagesEndRef.current?.scrollIntoView({
56
- behavior: "smooth",
57
- block: "end",
58
- });
59
- }, [isSending, messages.length]);
60
- const postBridge = useCallback((method, params) => api(`/api/v1/eliza/agents/${agent.id}/bridge`, {
61
- method: "POST",
62
- json: {
63
- jsonrpc: "2.0",
64
- id: `${method}-${Date.now()}`,
65
- method,
66
- params,
67
- },
68
- }), [agent.id]);
69
- const checkBridge = useCallback(async () => {
70
- if (!isRunning)
71
- return;
72
- setBridgeState("checking");
73
- setBridgeError(null);
74
- try {
75
- const response = await postBridge("status.get", {});
76
- if (response.error)
77
- throw new Error(response.error.message);
78
- setChatAvailable(response.result?.chat !== false);
79
- setBridgeState("ready");
80
- }
81
- catch (error) {
82
- const message = getErrorMessage(error instanceof Error ? error : new Error(String(error)));
83
- setChatAvailable(true);
84
- setBridgeState("error");
85
- setBridgeError(message);
86
- }
87
- }, [isRunning, postBridge]);
88
- useEffect(() => {
89
- void checkBridge();
90
- }, [checkBridge]);
91
- const sendMessage = useCallback(async () => {
92
- const text = inputText.trim();
93
- if (!text || isSending || !canUseBridgeChat)
94
- return;
95
- const requestId = Date.now();
96
- const userMessage = {
97
- id: `user-${requestId}`,
98
- role: "user",
99
- text,
100
- };
101
- setMessages((current) => [...current, userMessage]);
102
- setInputText("");
103
- setIsSending(true);
104
- setBridgeError(null);
105
- try {
106
- const response = await postBridge("message.send", {
107
- text,
108
- userId: "dashboard",
109
- roomId: `dashboard-${agent.id}`,
110
- });
111
- if (response.error)
112
- throw new Error(response.error.message);
113
- const reply = bridgeReplyText(response.result);
114
- if (!reply)
115
- throw new Error("Agent returned an empty response");
116
- setMessages((current) => [
117
- ...current,
118
- {
119
- id: `agent-${Date.now()}`,
120
- role: "agent",
121
- text: reply,
122
- },
123
- ]);
124
- setBridgeState("ready");
125
- }
126
- catch (error) {
127
- const message = getErrorMessage(error instanceof Error ? error : new Error(String(error)));
128
- setBridgeState("error");
129
- setBridgeError(message);
130
- setMessages((current) => [
131
- ...current,
132
- {
133
- id: `system-${Date.now()}`,
134
- role: "system",
135
- text: message,
136
- },
137
- ]);
138
- toast.error(message);
139
- }
140
- finally {
141
- setIsSending(false);
142
- }
143
- }, [agent.id, canUseBridgeChat, inputText, isSending, postBridge]);
144
- return (_jsxs("div", { className: "max-w-4xl mx-auto space-y-6", children: [_jsxs(Link, { to: `/dashboard/agents/${agent.id}`, className: "group inline-flex items-center gap-2 text-sm text-white/50 hover:text-white transition-colors", children: [_jsx("div", { className: "flex items-center justify-center w-7 h-7 bg-black/40 group-hover:bg-white/10 transition-colors", children: _jsx(ArrowLeft, { className: "h-3.5 w-3.5" }) }), _jsx("span", { children: t("cloud.agents.chat.backToAgent", {
145
- defaultValue: "Back to agent",
146
- }) })] }), _jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-3", children: [_jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center border border-[#FF5800]/25 bg-[#FF5800]/10", children: _jsx(MessageCircle, { className: "h-5 w-5 text-[#FF5800]" }) }), _jsxs("div", { className: "min-w-0", children: [_jsx("h1", { className: "truncate text-xl font-semibold text-white", style: { fontFamily: "var(--font-roboto-mono)" }, children: t("cloud.agents.chat.titleWithName", {
147
- defaultValue: "Chat — {{name}}",
148
- name,
149
- }) }), _jsx("p", { className: "truncate font-mono text-xs text-white/40", children: agent.id })] })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(BrandButton, { variant: "outline", size: "sm", onClick: checkBridge, disabled: !isRunning || bridgeState === "checking", children: [bridgeState === "checking" ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(RefreshCw, { className: "h-3.5 w-3.5" })), t("cloud.agents.chat.refresh", { defaultValue: "Refresh" })] }), hasStandaloneWebUi && isRunning && (_jsxs(BrandButton, { variant: "primary", size: "sm", onClick: () => openWebUIWithPairing(agent.id), children: [_jsx(ExternalLink, { className: "h-3.5 w-3.5" }), t("cloud.agents.chat.openWebUi", {
150
- defaultValue: "Open web UI",
151
- })] }))] })] }), _jsx("div", { className: "border border-white/10 bg-black", children: _jsxs("div", { className: "flex min-h-[420px] flex-col", children: [!isRunning && (_jsxs("div", { className: "border-b border-yellow-500/20 bg-yellow-500/5 px-4 py-3 text-sm text-yellow-200/80", children: [t("cloud.agents.chat.agentIsStatus", {
152
- defaultValue: "This agent is",
153
- }), " ", _jsx("span", { className: "font-mono", children: agent.status }), ".", " ", t("cloud.agents.chat.startBeforeChat", {
154
- defaultValue: "Start the agent before chatting.",
155
- })] })), bridgeError && isRunning && (_jsx("div", { className: "border-b border-red-500/20 bg-red-500/5 px-4 py-3 text-sm text-red-200/80", children: bridgeError })), chatAvailable === false && isRunning && (_jsx("div", { className: "border-b border-white/10 bg-white/[0.03] px-4 py-3 text-sm text-white/60", children: t("cloud.agents.chat.webOnly", {
156
- defaultValue: "This custom app is online. Chat is handled by its Web UI.",
157
- }) })), _jsxs("div", { className: "flex-1 space-y-3 overflow-y-auto p-4", children: [messages.length === 0 ? (_jsx("div", { className: "flex h-full min-h-[280px] items-center justify-center text-center text-sm text-white/35", children: chatAvailable === false && isRunning
158
- ? t("cloud.agents.chat.emptyWebOnly", {
159
- defaultValue: "Open the Web UI to interact with this app.",
160
- })
161
- : isRunning
162
- ? t("cloud.agents.chat.emptyReady", {
163
- defaultValue: "Send a message to start this session.",
164
- })
165
- : t("cloud.agents.chat.emptyStopped", {
166
- defaultValue: "Agent chat is unavailable while stopped.",
167
- }) })) : (messages.map((message) => (_jsx("div", { className: `flex ${message.role === "user" ? "justify-end" : "justify-start"}`, children: _jsx("div", { className: `max-w-[85%] whitespace-pre-wrap border px-3 py-2 text-sm leading-6 ${message.role === "user"
168
- ? "border-[#FF5800]/35 bg-[#FF5800]/10 text-white"
169
- : message.role === "agent"
170
- ? "border-white/10 bg-white/[0.04] text-white/90"
171
- : "border-red-500/20 bg-red-500/5 text-red-200/80"}`, children: message.text }) }, message.id)))), isSending && (_jsx("div", { className: "flex justify-start", children: _jsxs("div", { className: "inline-flex items-center gap-2 border border-white/10 bg-white/[0.04] px-3 py-2 text-sm text-white/55", children: [_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }), t("cloud.agents.chat.waiting", {
172
- defaultValue: "Waiting for reply",
173
- })] }) })), _jsx("div", { ref: messagesEndRef })] }), _jsx("form", { className: "border-t border-white/10 p-3", onSubmit: (event) => {
174
- event.preventDefault();
175
- void sendMessage();
176
- }, children: _jsxs("div", { className: "flex gap-2", children: [_jsx("textarea", { value: inputText, onChange: (event) => setInputText(event.target.value), disabled: !canUseBridgeChat || isSending, rows: 2, placeholder: chatAvailable === false
177
- ? t("cloud.agents.chat.webOnlyPlaceholder", {
178
- defaultValue: "Open the Web UI to interact",
179
- })
180
- : t("cloud.agents.chat.placeholder", {
181
- defaultValue: "Message this agent",
182
- }), className: "min-h-12 flex-1 resize-none border border-white/10 bg-black px-3 py-2 text-sm leading-6 text-white outline-none transition-colors placeholder:text-white/25 disabled:cursor-not-allowed disabled:text-white/30" }), _jsxs(BrandButton, { type: "submit", variant: "primary", size: "sm", disabled: !canUseBridgeChat ||
183
- isSending ||
184
- inputText.trim().length === 0, className: "h-auto self-stretch px-3", children: [isSending ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin" })) : (_jsx(Send, { className: "h-4 w-4" })), _jsx("span", { className: "sr-only", children: t("cloud.agents.chat.send", { defaultValue: "Send" }) })] })] }) })] }) })] }));
185
- }
186
- export default function AgentChatPage() {
187
- const t = useT();
188
- const session = useRequireAuth();
189
- const { id } = useParams();
190
- const enabled = session.ready && session.authenticated;
191
- const query = useAgent(enabled ? id : undefined);
192
- const titleId = id ? id.slice(0, 8) : "";
193
- useDocumentTitle(t("cloud.agents.chat.metaTitleLoading", {
194
- defaultValue: "Chat {{id}} — Agent",
195
- id: titleId,
196
- }));
197
- if (!session.ready || (enabled && query.isLoading)) {
198
- return (_jsx(DashboardLoadingState, { label: t("cloud.agents.chat.loading", {
199
- defaultValue: "Loading agent",
200
- }) }));
201
- }
202
- if (query.error instanceof ApiError && query.error.status === 404) {
203
- return _jsx(Navigate, { to: "/dashboard/agents", replace: true });
204
- }
205
- if (query.error) {
206
- const msg = query.error instanceof Error
207
- ? query.error.message
208
- : t("cloud.agents.chat.errorFailedLoad", {
209
- defaultValue: "Failed to load agent",
210
- });
211
- return _jsx(DashboardErrorState, { message: msg });
212
- }
213
- const agent = query.data;
214
- if (!agent)
215
- return _jsx(Navigate, { to: "/dashboard/agents", replace: true });
216
- return _jsx(AgentBridgeChat, { agent: agent });
217
- }
@@ -1,3 +0,0 @@
1
- export declare function ImageEmptyState(): import("react/jsx-runtime").JSX.Element;
2
- export { ImageEmptyState as EmptyState };
3
- //# sourceMappingURL=empty-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/cloud-ui/components/image-gen/empty-state.tsx"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,4CAQ9B;AAGD,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Empty state for image generator using the shared EmptyState component.
3
- */
4
- "use client";
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- import { Image as ImageIcon } from "lucide-react";
7
- import { EmptyState } from "../../../components/ui/empty-state.js";
8
- export function ImageEmptyState() {
9
- return (_jsx(EmptyState, { variant: "dashed", icon: _jsx(ImageIcon, { className: "h-6 w-6 text-[#FF5800]" }), title: "Enter a prompt to generate" }));
10
- }
11
- // Backward-compatible export
12
- export { ImageEmptyState as EmptyState };
@@ -1,14 +0,0 @@
1
- /**
2
- * Enhanced loading component with animated background and random loading messages.
3
- * Displays progress bar and animated spinner for image generation.
4
- *
5
- * @param props.message - Optional custom loading message
6
- * @param props.progress - Optional progress percentage (0-100)
7
- */
8
- interface EnhancedLoadingProps {
9
- message?: string;
10
- progress?: number;
11
- }
12
- export declare function EnhancedLoading({ message, progress }: EnhancedLoadingProps): import("react/jsx-runtime").JSX.Element;
13
- export {};
14
- //# sourceMappingURL=enhanced-loading.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanced-loading.d.ts","sourceRoot":"","sources":["../../../../../../../src/cloud-ui/components/image-gen/enhanced-loading.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAgD1E"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Enhanced loading component with animated background and random loading messages.
3
- * Displays progress bar and animated spinner for image generation.
4
- *
5
- * @param props.message - Optional custom loading message
6
- * @param props.progress - Optional progress percentage (0-100)
7
- */
8
- "use client";
9
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- import { Loader2, Sparkles } from "lucide-react";
11
- import { useState } from "react";
12
- const LOADING_MESSAGES = [
13
- "Painting pixels with AI magic...",
14
- "Mixing colors and dreams...",
15
- "Bringing your vision to life...",
16
- "Consulting with digital artists...",
17
- "Adding the finishing touches...",
18
- ];
19
- export function EnhancedLoading({ message, progress }) {
20
- const [randomMessage] = useState(() => LOADING_MESSAGES[Math.floor(Math.random() * LOADING_MESSAGES.length)]);
21
- const displayMessage = message || randomMessage;
22
- return (_jsxs("div", { className: "relative w-full h-[500px] rounded-none border border-white/10 bg-black/40 overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-[#FF5800]/5" }), _jsxs("div", { className: "relative z-10 flex flex-col items-center justify-center h-full px-6 space-y-3", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "absolute inset-0 animate-ping opacity-75", children: _jsx("div", { className: "w-12 h-12 rounded-full bg-[#FF5800]/20" }) }), _jsx("div", { className: "relative flex items-center justify-center w-12 h-12 rounded-full bg-black/60 border border-[#FF5800]/40", children: _jsx(Loader2, { className: "w-6 h-6 text-[#FF5800] animate-spin" }) })] }), _jsxs("div", { className: "text-center space-y-2", children: [_jsx("p", { className: "text-sm font-semibold text-white", children: displayMessage }), progress !== undefined && (_jsx("div", { className: "w-48 h-1.5 rounded-full bg-white/10 overflow-hidden", children: _jsx("div", { className: "h-full bg-[#FF5800] transition-all duration-500", style: { width: `${progress}%` } }) })), _jsx("p", { className: "text-xs text-white/60", children: "This may take 10-30 seconds" })] }), _jsxs("div", { className: "flex items-center gap-1.5 text-xs text-white/50", children: [_jsx(Sparkles, { className: "h-3 w-3 text-[#FF5800]" }), _jsx("span", { children: "AI Model Active" })] })] })] }));
23
- }
@@ -1,5 +0,0 @@
1
- export { ImageEmptyState } from "./empty-state.js";
2
- export { EnhancedLoading } from "./enhanced-loading.js";
3
- export { LoadingState as ImageLoadingState } from "./loading-state.js";
4
- export { type AspectRatio, ImagePromptInput, type StylePreset, } from "./prompt-input.js";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/cloud-ui/components/image-gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EACL,KAAK,WAAW,EAChB,gBAAgB,EAChB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC"}
@@ -1,4 +0,0 @@
1
- export { ImageEmptyState } from "./empty-state.js";
2
- export { EnhancedLoading } from "./enhanced-loading.js";
3
- export { LoadingState as ImageLoadingState } from "./loading-state.js";
4
- export { ImagePromptInput, } from "./prompt-input.js";
@@ -1,2 +0,0 @@
1
- export declare function LoadingState(): import("react/jsx-runtime").JSX.Element;
2
- //# sourceMappingURL=loading-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loading-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/cloud-ui/components/image-gen/loading-state.tsx"],"names":[],"mappings":"AASA,wBAAgB,YAAY,4CAoB3B"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Loading state component for image generation displaying skeleton placeholders.
3
- * Shows animated loading spinner and placeholder elements.
4
- */
5
- "use client";
6
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- import { Skeleton } from "../../../components/ui/skeleton.js";
8
- import { Spinner } from "../../../components/ui/spinner.js";
9
- export function LoadingState() {
10
- return (_jsxs("div", { className: "space-y-6 animate-in fade-in duration-500", children: [_jsx("div", { className: "rounded-none border border-white/10 bg-black/40 overflow-hidden max-h-[500px]", children: _jsx(Skeleton, { className: "w-full aspect-square" }) }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Skeleton, { className: "h-12 rounded-none" }), _jsx(Skeleton, { className: "h-12 rounded-none" })] }), _jsxs("div", { className: "flex items-center justify-center gap-2 py-3", children: [_jsx(Spinner, { size: 16, className: "text-[#FF5800]" }), _jsx("p", { className: "text-sm font-medium text-white/60", children: "Creating your image..." })] })] }));
11
- }