486 lines
18 KiB
JSON
486 lines
18 KiB
JSON
{
|
|
"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."]
|
|
}
|
|
]
|
|
}
|