diff --git a/apps/apollo-vertex/app/_meta.ts b/apps/apollo-vertex/app/_meta.ts index 152665709..66f65eda7 100644 --- a/apps/apollo-vertex/app/_meta.ts +++ b/apps/apollo-vertex/app/_meta.ts @@ -9,6 +9,9 @@ export default { "data-querying": "Data Querying", localization: "Localization", mcp: "MCP Server", + "guided-buying": { + display: "hidden", + }, auth_callback: { display: "hidden", }, diff --git a/apps/apollo-vertex/app/experiment/_meta.ts b/apps/apollo-vertex/app/experiment/_meta.ts new file mode 100644 index 000000000..13149c808 --- /dev/null +++ b/apps/apollo-vertex/app/experiment/_meta.ts @@ -0,0 +1,4 @@ +export default { + index: { display: "hidden" }, + "guided-buying": "Guided Buying", +}; diff --git a/apps/apollo-vertex/app/experiment/guided-buying/page.mdx b/apps/apollo-vertex/app/experiment/guided-buying/page.mdx new file mode 100644 index 000000000..27a1d3e2b --- /dev/null +++ b/apps/apollo-vertex/app/experiment/guided-buying/page.mdx @@ -0,0 +1,18 @@ +# Guided Buying + +An experimental prototype exploring a guided buying experience built on the +Apollo Vertex shell. The prototype opens in its own full-screen window with a +minimal shell and the following sections: **Dashboard**, **Buy**, **Catalog**, +and **Workbench**. + + + Open the prototype ↗ + + +The prototype launches in a new tab so it can take over the full viewport +without the documentation chrome. diff --git a/apps/apollo-vertex/app/guided-buying/page.tsx b/apps/apollo-vertex/app/guided-buying/page.tsx new file mode 100644 index 000000000..57f5ff2ba --- /dev/null +++ b/apps/apollo-vertex/app/guided-buying/page.tsx @@ -0,0 +1,37 @@ +"use client"; + +import { useEffect } from "react"; +import { createRoot } from "react-dom/client"; +import { ThemeProvider } from "@/registry/shell/shell-theme-provider"; +import { GuidedBuyingShell } from "@/templates/guided-buying/GuidedBuyingShell"; + +export default function GuidedBuyingPage() { + // The shell is a full-screen client app. Rendering it through Next's tree + // puts it inside Nextra's docs layout, whose interrupted hydration leaves the + // subtree stuck `display:none`. So we mount it in a *separate* React root + // attached to — built by a fresh client render (no hydration), fully + // outside Nextra's tree and Suspense, so nothing can hide it. It carries its + // own ThemeProvider (normally supplied by the app's root ThemeWrapper). + useEffect(() => { + const container = document.createElement("div"); + document.body.append(container); + const root = createRoot(container); + root.render( + +
+ +
+
, + ); + return () => { + root.unmount(); + container.remove(); + }; + }, []); + + return ( +
+ Loading prototype… +
+ ); +} diff --git a/apps/apollo-vertex/locales/en.json b/apps/apollo-vertex/locales/en.json index fc8a0541a..1a934f736 100644 --- a/apps/apollo-vertex/locales/en.json +++ b/apps/apollo-vertex/locales/en.json @@ -16,8 +16,10 @@ "autopilot_empty_description": "Ask me anything about your automation data.", "bad_response": "Bad response", "business_user": "Business user", + "buy": "Buy", "cancel": "Cancel", "card_component": "Card Component", + "catalog": "Catalog", "changes_apply_instantly": "Changes apply instantly", "chart_render_failed_title": "Couldn't render this chart", "chat_messages": "Chat messages", @@ -108,6 +110,7 @@ "projects": "Projects", "remove_file": "Remove {{name}}", "remove_quoted_text": "Remove quoted text", + "requests": "Requests", "reset_to_default": "Reset to Default", "retry": "Retry", "romanian": "Romanian", @@ -139,6 +142,7 @@ "start_conversation_with": "Start a conversation with {{name}}", "stop": "Stop", "success": "Success", + "switch_user": "Switch user", "system": "System", "table_no_valid_fields": "None of the requested fields exist on {{entity}}: {{fields}}.", "team": "Team", @@ -166,6 +170,7 @@ "view_customer": "View customer", "view_payment_details": "View payment details", "warning": "Warning", + "workbench": "Workbench", "wrong_dimension_type_in_entity": "Field \"{{field}}\" on {{entity}} is {{actual}}; this chart needs a {{expected}} field.", "wrong_dimension_type_in_joined": "Field \"{{field}}\" is {{actual}}; this chart needs a {{expected}} field.", "wrong_metric_type_in_entity": "Field \"{{field}}\" on {{entity}} is {{actual}}; {{aggregation}} requires a numeric field.", diff --git a/apps/apollo-vertex/next-env.d.ts b/apps/apollo-vertex/next-env.d.ts index 9edff1c7c..c4b7818fb 100644 --- a/apps/apollo-vertex/next-env.d.ts +++ b/apps/apollo-vertex/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/types/routes.d.ts"; +import "./.next/dev/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/apps/apollo-vertex/registry/ai-chat/components/ai-chat-message-actions.tsx b/apps/apollo-vertex/registry/ai-chat/components/ai-chat-message-actions.tsx index b5b1ccf5a..f74e48ac9 100644 --- a/apps/apollo-vertex/registry/ai-chat/components/ai-chat-message-actions.tsx +++ b/apps/apollo-vertex/registry/ai-chat/components/ai-chat-message-actions.tsx @@ -115,9 +115,9 @@ export function AiChatMessageActions({
{content.trim() && } diff --git a/apps/apollo-vertex/registry/ai-chat/components/ai-chat.tsx b/apps/apollo-vertex/registry/ai-chat/components/ai-chat.tsx index 412f8812e..157b8340b 100644 --- a/apps/apollo-vertex/registry/ai-chat/components/ai-chat.tsx +++ b/apps/apollo-vertex/registry/ai-chat/components/ai-chat.tsx @@ -248,7 +248,7 @@ export function AiChat< {messages.length === 0 ? (
-
+
{emptyState ?? defaultEmptyState}
@@ -262,14 +262,6 @@ export function AiChat<
) : (
-