841 lines
33 KiB
JSON
841 lines
33 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/CommandPaletteDialog.tsx",
|
|
"apps/web/app/components/ui/command.tsx",
|
|
"apps/web/app/application/ui/uiRegistry.ts"
|
|
],
|
|
"renderer": "CommandDialog",
|
|
"notes": ["Portal host for the global Spotlight search and command palette overlay."]
|
|
},
|
|
{
|
|
"id": "ui.surface.commandPalette.search",
|
|
"kind": "surface",
|
|
"label": "Command palette search",
|
|
"sourceFiles": [
|
|
"apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx",
|
|
"apps/web/app/components/ui/command.tsx",
|
|
"apps/web/app/application/ui/uiRegistry.ts"
|
|
],
|
|
"renderer": "CommandInput",
|
|
"notes": ["Search input inside the global Spotlight overlay."]
|
|
},
|
|
{
|
|
"id": "ui.surface.commandPalette.filters",
|
|
"kind": "surface",
|
|
"label": "Spotlight entity filters",
|
|
"sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "CommandPaletteDialog",
|
|
"notes": ["Horizontally scrollable entity-type filters for tenant search."]
|
|
},
|
|
{
|
|
"id": "ui.surface.commandPalette.results",
|
|
"kind": "surface",
|
|
"label": "Command palette results",
|
|
"sourceFiles": [
|
|
"apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx",
|
|
"apps/web/app/components/ui/command.tsx",
|
|
"apps/web/app/application/ui/uiRegistry.ts"
|
|
],
|
|
"renderer": "CommandList",
|
|
"notes": ["Scrollable grouped result list inside the global Spotlight overlay."]
|
|
},
|
|
{
|
|
"id": "ui.surface.commandPalette.queryHint",
|
|
"kind": "surface",
|
|
"label": "Spotlight query hint",
|
|
"sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "SearchStatus",
|
|
"notes": ["Explains the minimum query length before tenant search starts."]
|
|
},
|
|
{
|
|
"id": "ui.surface.commandPalette.searchStatus",
|
|
"kind": "surface",
|
|
"label": "Spotlight search status",
|
|
"sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "SearchStatus",
|
|
"notes": ["Loading, empty, and error feedback for tenant search."]
|
|
},
|
|
{
|
|
"id": "ui.surface.commandPalette.recentStatus",
|
|
"kind": "surface",
|
|
"label": "Spotlight recent-search status",
|
|
"sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "SearchStatus",
|
|
"notes": ["Empty-state feedback for the private recent-search list."]
|
|
},
|
|
{
|
|
"id": "ui.surface.commandPalette.permissionHint",
|
|
"kind": "surface",
|
|
"label": "Spotlight permission hint",
|
|
"sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "SearchStatus",
|
|
"notes": ["Names entity groups hidden by the current tenant permissions."]
|
|
},
|
|
{
|
|
"id": "ui.surface.commandPalette.footer",
|
|
"kind": "surface",
|
|
"label": "Spotlight keyboard footer",
|
|
"sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "CommandPaletteDialog",
|
|
"notes": ["Shows keyboard hints for navigation and opening results."]
|
|
},
|
|
{
|
|
"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/app/SubframeAppShell.tsx",
|
|
"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.searchMobile",
|
|
"kind": "action",
|
|
"label": "Mobile header search",
|
|
"sourceFiles": ["apps/web/app/components/app/SubframeAppShell.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "IconButton",
|
|
"notes": ["Opens the viewport-filling Spotlight overlay on mobile."]
|
|
},
|
|
{
|
|
"id": "ui.action.commandPalette.loadMore",
|
|
"kind": "action",
|
|
"label": "Spotlight load more",
|
|
"sourceFiles": ["apps/web/app/components/ui/commandPalettes/CommandPaletteDialog.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "Button",
|
|
"notes": ["Expands the tenant search result limit from 20 to 50."]
|
|
},
|
|
{
|
|
"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.automation",
|
|
"kind": "nav",
|
|
"label": "Tenant automation",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "SidebarItem",
|
|
"notes": ["R-P12a typed automation engine entry."]
|
|
},
|
|
{
|
|
"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.billing",
|
|
"kind": "nav",
|
|
"label": "Tenant billing nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant billing sidebar item."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.leads",
|
|
"kind": "nav",
|
|
"label": "Tenant lead inbox nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant lead inbox sidebar item."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.projects",
|
|
"kind": "nav",
|
|
"label": "Tenant projects nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant projects and pipelines sidebar item."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.plantafel",
|
|
"kind": "nav",
|
|
"label": "Tenant schedule board nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant project schedule board 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.emails",
|
|
"kind": "nav",
|
|
"label": "Tenant email inbox nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant mailbox-sync inbox sidebar item (VA-P23)."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.telephony",
|
|
"kind": "nav",
|
|
"label": "Tenant telephony nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant Aircall telephony sidebar item (AK-P15a)."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.chat",
|
|
"kind": "nav",
|
|
"label": "Tenant team chat nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant internal team chat sidebar item (AK-P15b)."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.hr",
|
|
"kind": "nav",
|
|
"label": "Tenant HR hub nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant HR hub sidebar item (AK-P17a/b), feature-gated via hr + hr.read_own."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.passwordSafe",
|
|
"kind": "nav",
|
|
"label": "Tenant organization password safe nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant password-safe sidebar item in the organization section, permission-gated via hr.passwordsafe.read."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.calendar",
|
|
"kind": "nav",
|
|
"label": "Tenant calendar nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant calendar sidebar item (AK-P16a)."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.bookings",
|
|
"kind": "nav",
|
|
"label": "Tenant bookings nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant bookings sidebar item (AK-P16b)."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.availability",
|
|
"kind": "nav",
|
|
"label": "Tenant availability nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Provider availability editor sidebar item (AK-P16b)."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.forms",
|
|
"kind": "nav",
|
|
"label": "Tenant forms nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AppSidebar.tsx", "apps/web/app/application/ui/uiRegistry.ts"],
|
|
"renderer": "AppSidebar/NavMain",
|
|
"notes": ["Tenant forms and form-builder sidebar item (AK-P16c)."]
|
|
},
|
|
{
|
|
"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.settings.account",
|
|
"kind": "nav",
|
|
"label": "Settings account hub nav",
|
|
"sourceFiles": ["apps/web/app/routes/app.$tenant/settings.tsx"],
|
|
"renderer": "SidebarIconsLayout",
|
|
"notes": ["Tenant settings inner rail: account hub."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.settings.team",
|
|
"kind": "nav",
|
|
"label": "Settings team hub nav",
|
|
"sourceFiles": ["apps/web/app/routes/app.$tenant/settings.tsx"],
|
|
"renderer": "SidebarIconsLayout",
|
|
"notes": ["Tenant settings inner rail: team hub."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.settings.billing",
|
|
"kind": "nav",
|
|
"label": "Settings billing hub nav",
|
|
"sourceFiles": ["apps/web/app/routes/app.$tenant/settings.tsx"],
|
|
"renderer": "SidebarIconsLayout",
|
|
"notes": ["Tenant settings inner rail: billing hub."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.settings.workspace",
|
|
"kind": "nav",
|
|
"label": "Settings workspace hub nav",
|
|
"sourceFiles": ["apps/web/app/routes/app.$tenant/settings.tsx"],
|
|
"renderer": "SidebarIconsLayout",
|
|
"notes": ["Tenant settings inner rail: workspace hub."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.settings.customerPortal",
|
|
"kind": "nav",
|
|
"label": "Settings customer portal hub nav",
|
|
"sourceFiles": ["apps/web/app/routes/app.$tenant/settings.tsx"],
|
|
"renderer": "SidebarIconsLayout",
|
|
"notes": ["Tenant settings inner rail: customer portal hub."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.settings.integrations",
|
|
"kind": "nav",
|
|
"label": "Settings integrations hub nav",
|
|
"sourceFiles": ["apps/web/app/routes/app.$tenant/settings.tsx"],
|
|
"renderer": "SidebarIconsLayout",
|
|
"notes": ["Tenant settings inner rail: integrations hub."]
|
|
},
|
|
{
|
|
"id": "ui.nav.app.settings.compliance",
|
|
"kind": "nav",
|
|
"label": "Settings compliance hub nav",
|
|
"sourceFiles": ["apps/web/app/routes/app.$tenant/settings.tsx"],
|
|
"renderer": "SidebarIconsLayout",
|
|
"notes": ["Tenant settings inner rail: compliance hub."]
|
|
},
|
|
{
|
|
"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.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.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.audit.viewer",
|
|
"kind": "nav",
|
|
"label": "Admin audit viewer nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Admin audit viewer child item under Audit & Events."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.audit.trails",
|
|
"kind": "nav",
|
|
"label": "Admin audit trails nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Admin audit trail child item under Audit & Events."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.audit.events",
|
|
"kind": "nav",
|
|
"label": "Admin events nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Admin events child item under Audit & Events."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.audit",
|
|
"kind": "nav",
|
|
"label": "Admin Audit & Events nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Admin Audit & Events sidebar item (AK-P3)."]
|
|
},
|
|
{
|
|
"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.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.platformLeads",
|
|
"kind": "nav",
|
|
"label": "Admin platform leads nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated operator inbox for native platform leads."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales",
|
|
"kind": "nav",
|
|
"label": "Admin sales workspace nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated daily platform sales workspace."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.salesCommunication",
|
|
"kind": "nav",
|
|
"label": "Admin sales communication section",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated email, telephony, and booking workspace group."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.salesConfiguration",
|
|
"kind": "nav",
|
|
"label": "Admin sales configuration section",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated sales process and integration settings group."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.contacts",
|
|
"kind": "nav",
|
|
"label": "Admin sales contacts and companies nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated tenant-less contact and company workspace."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.companies",
|
|
"kind": "nav",
|
|
"label": "Admin sales companies nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated tenant-less company workspace."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.deals",
|
|
"kind": "nav",
|
|
"label": "Admin sales deals nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated tenant-less deal pipeline."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.today",
|
|
"kind": "nav",
|
|
"label": "Admin sales today nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated personal task queue for platform sales operators."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.email",
|
|
"kind": "nav",
|
|
"label": "Admin sales email nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated tenant-less sales email workspace and account settings."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.calls",
|
|
"kind": "nav",
|
|
"label": "Admin sales calls nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated tenant-less sales telephony workspace and controlled dialer."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.bookings",
|
|
"kind": "nav",
|
|
"label": "Admin sales bookings nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated tenant-less booking workspace."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.telephonySettings",
|
|
"kind": "nav",
|
|
"label": "Admin sales telephony settings nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated Aircall connection and telephony policy settings."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.leadSettings",
|
|
"kind": "nav",
|
|
"label": "Admin sales lead rules nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated tenant-less lead assignment and scoring settings."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.pipelineSettings",
|
|
"kind": "nav",
|
|
"label": "Admin sales pipeline settings nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated tenant-less pipeline and stage configuration."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.fieldsTags",
|
|
"kind": "nav",
|
|
"label": "Admin sales fields and tags nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated contact field and tag administration."]
|
|
},
|
|
{
|
|
"id": "ui.nav.admin.sales.importExport",
|
|
"kind": "nav",
|
|
"label": "Admin sales import and export nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["Permission-gated contact import and export workspace."]
|
|
},
|
|
{
|
|
"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 support inbox nav",
|
|
"sourceFiles": ["apps/web/app/application/sidebar/AdminSidebar.tsx"],
|
|
"renderer": "AdminSidebar/NavMain",
|
|
"notes": ["AK-P19 support inbox under /support (moved out of the disabled help-desk plugin tree)."]
|
|
},
|
|
{
|
|
"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."]
|
|
}
|
|
]
|
|
}
|