{ "schemaVersion": 1, "surfaces": [ { "id": "ui.surface.shell", "kind": "surface", "label": "Authenticated shell", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "SidebarProvider", "notes": ["Root authenticated shell surface for app, admin and docs layouts."] }, { "id": "ui.surface.shell.inset", "kind": "surface", "label": "Authenticated shell inset", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "SidebarInset", "notes": ["Inset area that contains the shell header and main content."] }, { "id": "ui.surface.app.sidebar", "kind": "surface", "label": "Tenant app sidebar", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/app-sidebar.tsx", "apps/web/app/application/sidebar/AppSidebar.tsx"], "renderer": "ShadcnAppSidebar", "notes": ["Use for prompts that target the tenant sidebar container."] }, { "id": "ui.surface.admin.sidebar", "kind": "surface", "label": "Admin sidebar", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/app-sidebar.tsx", "apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "ShadcnAppSidebar", "notes": ["Use for prompts that target the admin sidebar container."] }, { "id": "ui.surface.docs.sidebar", "kind": "surface", "label": "Docs sidebar", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/app-sidebar.tsx", "apps/web/app/application/sidebar/DocsSidebar.ts"], "renderer": "ShadcnAppSidebar", "notes": ["Use for prompts that target documentation navigation."] }, { "id": "ui.surface.shell.header", "kind": "surface", "label": "Shell header", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx"], "renderer": "ShadcnSidebarLayout", "notes": ["Top authenticated shell bar containing sidebar trigger, breadcrumb and right actions."] }, { "id": "ui.surface.shell.breadcrumb", "kind": "surface", "label": "Shell breadcrumb area", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx"], "renderer": "ShadcnSidebarLayout", "notes": ["Left header area after the sidebar trigger."] }, { "id": "ui.surface.shell.breadcrumb.current", "kind": "surface", "label": "Current breadcrumb page", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx"], "renderer": "BreadcrumbPage", "notes": ["Current page title inside the shell breadcrumb."] }, { "id": "ui.surface.shell.main", "kind": "surface", "label": "Shell main content", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx"], "renderer": "main", "notes": ["Authenticated page content host."] }, { "id": "ui.surface.shell.navActions", "kind": "surface", "label": "Header right action area", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx", "apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "NavActions", "notes": ["Right side of header with search, notifications, AI, profile/more actions."] }, { "id": "ui.surface.shell.aiAssistant.dialog", "kind": "surface", "label": "AI assistant dialog", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "DialogContent", "notes": ["Dialog surface for AI assistant chat."] }, { "id": "ui.surface.shell.feedback.dialog", "kind": "surface", "label": "Feedback dialog", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx", "apps/web/app/components/ui/modals/Modal.tsx"], "renderer": "Modal", "notes": ["Dialog surface for tenant feedback."] }, { "id": "ui.surface.commandPalette.portal", "kind": "surface", "label": "Command palette portal", "sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPalette.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "KBarPortal", "notes": ["Portal host for global command palette overlays."] }, { "id": "ui.surface.commandPalette.search", "kind": "surface", "label": "Command palette search", "sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPalette.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "KBarSearch", "notes": ["Search input inside the global command palette."] }, { "id": "ui.surface.commandPalette.results", "kind": "surface", "label": "Command palette results", "sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPalette.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "KBarResults", "notes": ["Scrollable result list inside the global command palette."] }, { "id": "ui.surface.commandPalette.row", "kind": "surface", "label": "Command palette row", "sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPalette.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "CommandPaletteResult", "notes": ["Individual selectable command palette result row."] }, { "id": "ui.action.shell.sidebarTrigger", "kind": "action", "label": "Sidebar trigger", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx", "apps/web/app/components/ui/sidebar.tsx"], "renderer": "SidebarTrigger", "notes": ["Collapses or opens the shell sidebar."] }, { "id": "ui.action.shell.search", "kind": "action", "label": "Header search", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx", "apps/web/app/components/layouts/buttons/SearchButton.tsx"], "renderer": "NavActions/SearchButton", "notes": ["Opens command palette/search."] }, { "id": "ui.action.shell.aiAssistant", "kind": "action", "label": "AI assistant button", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "NavActions", "notes": ["Opens AI assistant dialog when available."] }, { "id": "ui.action.shell.aiAssistant.expand", "kind": "action", "label": "AI assistant expand", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "NavActions", "notes": ["Expands dialog chat into full chat route."] }, { "id": "ui.action.shell.aiAssistant.close", "kind": "action", "label": "AI assistant close", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "NavActions", "notes": ["Closes AI assistant dialog."] }, { "id": "ui.action.shell.notifications", "kind": "action", "label": "Notifications", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "NavActions", "notes": ["Novu-backed notifications trigger."] }, { "id": "ui.action.shell.onboarding", "kind": "action", "label": "Onboarding", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "OnboardingButton", "notes": ["Opens onboarding flow when enabled."] }, { "id": "ui.action.shell.feedback", "kind": "action", "label": "Feedback", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "AddFeedbackButton", "notes": ["Opens tenant feedback dialog."] }, { "id": "ui.action.shell.chatSupport", "kind": "action", "label": "Chat support", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "NavActions", "notes": ["Opens external support chat when configured."] }, { "id": "ui.action.shell.more", "kind": "action", "label": "More actions", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx", "apps/web/app/components/layouts/sidebars/shadcn/nav-quick-links.tsx"], "renderer": "PopoverTrigger/SidebarMenuButton", "notes": ["Header or quick-link overflow actions."] }, { "id": "ui.action.shell.profile", "kind": "action", "label": "Profile", "sourceFiles": ["apps/web/app/components/layouts/buttons/ProfileButton.tsx", "apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "ProfileButton/NavActions", "notes": ["User profile or profile menu action."] }, { "id": "ui.action.shell.subscription", "kind": "action", "label": "Subscription", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "NavActions", "notes": ["Subscription CTA or menu action."] }, { "id": "ui.action.shell.signOut", "kind": "action", "label": "Sign out", "sourceFiles": ["apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx"], "renderer": "NavActions", "notes": ["Sign-out action in overflow menu."] }, { "id": "ui.nav.app.dashboard", "kind": "nav", "label": "Tenant dashboard nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx"], "renderer": "AppSidebar/NavMain", "notes": ["Tenant dashboard sidebar item."] }, { "id": "ui.nav.app.notifications", "kind": "nav", "label": "Tenant notifications nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "AppSidebar/NavMain", "notes": ["Tenant notification center sidebar item."] }, { "id": "ui.nav.app.crm", "kind": "nav", "label": "Tenant CRM nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "AppSidebar/NavMain", "notes": ["Tenant CRM sidebar item."] }, { "id": "ui.nav.app.emailMarketing", "kind": "nav", "label": "Tenant email marketing nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "AppSidebar/NavMain", "notes": ["Tenant email marketing sidebar item."] }, { "id": "ui.nav.app.api", "kind": "nav", "label": "Tenant API nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "AppSidebar/NavMain", "notes": ["Tenant API keys sidebar item."] }, { "id": "ui.nav.app.workflowEngine", "kind": "nav", "label": "Tenant workflow engine nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "AppSidebar/NavMain", "notes": ["Tenant workflow engine sidebar item."] }, { "id": "ui.nav.app.credits", "kind": "nav", "label": "Tenant credits nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"], "renderer": "AppSidebar/NavMain", "notes": ["Tenant credits sidebar item."] }, { "id": "ui.nav.app.settings", "kind": "nav", "label": "Tenant settings nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx"], "renderer": "AppSidebar/NavSecondary", "notes": ["Tenant settings sidebar item."] }, { "id": "ui.nav.app.switchToAdmin", "kind": "nav", "label": "Switch to admin nav", "sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx"], "renderer": "AppSidebar/NavSecondary", "notes": ["Tenant sidebar admin switch item."] }, { "id": "ui.nav.admin.dashboard", "kind": "nav", "label": "Admin dashboard nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin dashboard sidebar item."] }, { "id": "ui.nav.admin.accounts", "kind": "nav", "label": "Admin accounts nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin accounts and users sidebar item."] }, { "id": "ui.nav.admin.analytics", "kind": "nav", "label": "Admin analytics nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin analytics sidebar item."] }, { "id": "ui.nav.admin.entities", "kind": "nav", "label": "Admin entities nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin entities sidebar item."] }, { "id": "ui.nav.admin.workflows", "kind": "nav", "label": "Admin workflows nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Disabled plugin-candidate workflow sidebar item."] }, { "id": "ui.nav.admin.api", "kind": "nav", "label": "Admin API nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin API keys sidebar item."] }, { "id": "ui.nav.admin.events", "kind": "nav", "label": "Admin events nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin events sidebar item."] }, { "id": "ui.nav.admin.auditTrails", "kind": "nav", "label": "Admin audit trails nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin audit trail sidebar item."] }, { "id": "ui.nav.admin.notifications", "kind": "nav", "label": "Admin notifications nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin notifications sidebar item."] }, { "id": "ui.nav.admin.featureFlags", "kind": "nav", "label": "Admin feature flags nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin feature flags sidebar item."] }, { "id": "ui.nav.admin.navigation", "kind": "nav", "label": "Admin navigation nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin navigation/sidebar configuration item."] }, { "id": "ui.nav.admin.portals", "kind": "nav", "label": "Admin portals nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Disabled plugin-candidate portals sidebar item."] }, { "id": "ui.nav.admin.prompts", "kind": "nav", "label": "Admin prompts nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Disabled plugin-candidate prompts sidebar item."] }, { "id": "ui.nav.admin.emailMarketing", "kind": "nav", "label": "Admin email marketing nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Disabled plugin-candidate email marketing sidebar item."] }, { "id": "ui.nav.admin.marketing", "kind": "nav", "label": "Admin marketing nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Disabled plugin-candidate marketing sidebar item."] }, { "id": "ui.nav.admin.knowledgeBase", "kind": "nav", "label": "Admin knowledge base nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Disabled plugin-candidate knowledge base sidebar item."] }, { "id": "ui.nav.admin.helpDesk", "kind": "nav", "label": "Admin help desk nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Disabled plugin-candidate help desk sidebar item."] }, { "id": "ui.nav.admin.onboarding", "kind": "nav", "label": "Admin onboarding nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin onboarding sidebar item."] }, { "id": "ui.nav.admin.metrics", "kind": "nav", "label": "Admin metrics nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin metrics sidebar item."] }, { "id": "ui.nav.admin.settings", "kind": "nav", "label": "Admin settings nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin settings sidebar item."] }, { "id": "ui.nav.admin.switchToApp", "kind": "nav", "label": "Switch to app nav", "sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"], "renderer": "AdminSidebar/NavMain", "notes": ["Admin sidebar app switch item."] }, { "id": "ui.nav.docs.introduction", "kind": "nav", "label": "Docs introduction nav", "sourceFiles": ["apps/web/app/application/sidebar/DocsSidebar.ts"], "renderer": "DocsSidebar/NavMain", "notes": ["Docs introduction navigation item."] } ] }