508 lines
15 KiB
JSON
508 lines
15 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"notes": [
|
|
"Read-only inventory for the first UI registry phase.",
|
|
"Statuses describe current ownership, not desired end state.",
|
|
"Headless UI entries are legacy candidates; Radix/shadcn remains the core default for now."
|
|
],
|
|
"components": [
|
|
{
|
|
"stableName": "ui.surface.app.sidebar",
|
|
"path": "apps/web/app/components/layouts/sidebars/shadcn/app-sidebar.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "core"
|
|
},
|
|
{
|
|
"stableName": "AppSidebar",
|
|
"path": "apps/web/app/application/sidebar/AppSidebar.tsx",
|
|
"category": "navigation",
|
|
"library": "application-registry",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "ui.surface.admin.sidebar",
|
|
"path": "apps/web/app/components/layouts/sidebars/shadcn/app-sidebar.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "core"
|
|
},
|
|
{
|
|
"stableName": "AdminSidebar",
|
|
"path": "apps/web/app/application/sidebar/AdminSidebar.tsx",
|
|
"category": "navigation",
|
|
"library": "application-registry",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "ui.surface.docs.sidebar",
|
|
"path": "apps/web/app/components/layouts/sidebars/shadcn/app-sidebar.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "core"
|
|
},
|
|
{
|
|
"stableName": "DocsSidebar",
|
|
"path": "apps/web/app/application/sidebar/DocsSidebar.ts",
|
|
"category": "navigation",
|
|
"library": "application-registry",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "ShadcnSidebarLayout",
|
|
"path": "apps/web/app/components/layouts/sidebars/shadcn/ShadcnSidebarLayout.tsx",
|
|
"category": "layout",
|
|
"library": "shadcn/radix",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "UiRegistry",
|
|
"path": "apps/web/app/application/ui/uiRegistry.ts",
|
|
"category": "layout",
|
|
"library": "agent-registry",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "NavMain",
|
|
"path": "apps/web/app/components/layouts/sidebars/shadcn/nav-main.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "NavSecondary",
|
|
"path": "apps/web/app/components/layouts/sidebars/shadcn/nav-secondary.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "NavQuickLinks",
|
|
"path": "apps/web/app/components/layouts/sidebars/shadcn/nav-quick-links.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "NavActions",
|
|
"path": "apps/web/app/components/layouts/sidebars/shadcn/nav-actions.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix/lucide/novu/custom",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "SidebarPrimitives",
|
|
"path": "apps/web/app/components/ui/sidebar.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "Button",
|
|
"path": "apps/web/app/components/ui/button.tsx",
|
|
"category": "buttons",
|
|
"library": "shadcn/radix",
|
|
"status": "available"
|
|
},
|
|
{
|
|
"stableName": "Dialog",
|
|
"path": "apps/web/app/components/ui/dialog.tsx",
|
|
"category": "dialogs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Modal",
|
|
"path": "apps/web/app/components/ui/modals/Modal.tsx",
|
|
"category": "dialogs",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "ProfileButton",
|
|
"path": "apps/web/app/components/layouts/buttons/ProfileButton.tsx",
|
|
"category": "buttons",
|
|
"library": "headlessui/custom",
|
|
"status": "legacy"
|
|
},
|
|
{
|
|
"stableName": "SearchButton",
|
|
"path": "apps/web/app/components/layouts/buttons/SearchButton.tsx",
|
|
"category": "buttons",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Accordion",
|
|
"path": "apps/web/app/components/ui/accordion.tsx",
|
|
"category": "dialogs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "AlertDialog",
|
|
"path": "apps/web/app/components/ui/alert-dialog.tsx",
|
|
"category": "dialogs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Alert",
|
|
"path": "apps/web/app/components/ui/alert.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "AspectRatio",
|
|
"path": "apps/web/app/components/ui/aspect-ratio.tsx",
|
|
"category": "layout",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Avatar",
|
|
"path": "apps/web/app/components/ui/avatar.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Badge",
|
|
"path": "apps/web/app/components/ui/badge.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Breadcrumb",
|
|
"path": "apps/web/app/components/ui/breadcrumb.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Input",
|
|
"path": "apps/web/app/components/ui/input.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "ButtonConfirm",
|
|
"path": "apps/web/app/components/ui/button-confirm.tsx",
|
|
"category": "buttons",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "ButtonGroup",
|
|
"path": "apps/web/app/components/ui/button-group.tsx",
|
|
"category": "buttons",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Calendar",
|
|
"path": "apps/web/app/components/ui/calendar.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Card",
|
|
"path": "apps/web/app/components/ui/card.tsx",
|
|
"category": "layout",
|
|
"library": "shadcn/custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Carousel",
|
|
"path": "apps/web/app/components/ui/carousel.tsx",
|
|
"category": "layout",
|
|
"library": "shadcn/embla",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Chart",
|
|
"path": "apps/web/app/components/ui/chart.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/recharts",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Checkbox",
|
|
"path": "apps/web/app/components/ui/checkbox.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Choicebox",
|
|
"path": "apps/web/app/components/ui/choicebox.tsx",
|
|
"category": "inputs",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Collapsible",
|
|
"path": "apps/web/app/components/ui/collapsible.tsx",
|
|
"category": "layout",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Command",
|
|
"path": "apps/web/app/components/ui/command.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/cmdk",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "ContextMenu",
|
|
"path": "apps/web/app/components/ui/context-menu.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Drawer",
|
|
"path": "apps/web/app/components/ui/drawer.tsx",
|
|
"category": "dialogs",
|
|
"library": "shadcn/vaul",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "DropdownMenu",
|
|
"path": "apps/web/app/components/ui/dropdown-menu.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Empty",
|
|
"path": "apps/web/app/components/ui/empty.tsx",
|
|
"category": "feedback",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Form",
|
|
"path": "apps/web/app/components/ui/form.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix/react-hook-form",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "HoverCard",
|
|
"path": "apps/web/app/components/ui/hover-card.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "InputGroup",
|
|
"path": "apps/web/app/components/ui/input-group.tsx",
|
|
"category": "inputs",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "InputOtp",
|
|
"path": "apps/web/app/components/ui/input-otp.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/input-otp",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Label",
|
|
"path": "apps/web/app/components/ui/label.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "MultiSelect",
|
|
"path": "apps/web/app/components/ui/multi-select.tsx",
|
|
"category": "inputs",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Pagination",
|
|
"path": "apps/web/app/components/ui/pagination.tsx",
|
|
"category": "navigation",
|
|
"library": "shadcn/custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Popover",
|
|
"path": "apps/web/app/components/ui/popover.tsx",
|
|
"category": "dialogs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Progress",
|
|
"path": "apps/web/app/components/ui/progress.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "RadioGroup",
|
|
"path": "apps/web/app/components/ui/radio-group.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Resizable",
|
|
"path": "apps/web/app/components/ui/resizable.tsx",
|
|
"category": "layout",
|
|
"library": "shadcn/react-resizable-panels",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "ScrollArea",
|
|
"path": "apps/web/app/components/ui/scroll-area.tsx",
|
|
"category": "layout",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Select",
|
|
"path": "apps/web/app/components/ui/select.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Separator",
|
|
"path": "apps/web/app/components/ui/separator.tsx",
|
|
"category": "layout",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Sheet",
|
|
"path": "apps/web/app/components/ui/sheet.tsx",
|
|
"category": "dialogs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Skeleton",
|
|
"path": "apps/web/app/components/ui/skeleton.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Slider",
|
|
"path": "apps/web/app/components/ui/slider.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Sonner",
|
|
"path": "apps/web/app/components/ui/sonner.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/sonner",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "SplitButton",
|
|
"path": "apps/web/app/components/ui/split-button.tsx",
|
|
"category": "buttons",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Stepper",
|
|
"path": "apps/web/app/components/ui/stepper.tsx",
|
|
"category": "inputs",
|
|
"library": "custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Switch",
|
|
"path": "apps/web/app/components/ui/switch.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Table",
|
|
"path": "apps/web/app/components/ui/table.tsx",
|
|
"category": "tables",
|
|
"library": "shadcn/custom",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Tabs",
|
|
"path": "apps/web/app/components/ui/tabs.tsx",
|
|
"category": "tables",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Textarea",
|
|
"path": "apps/web/app/components/ui/textarea.tsx",
|
|
"category": "inputs",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "ToastPrimitive",
|
|
"path": "apps/web/app/components/ui/toast.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/radix",
|
|
"status": "legacy"
|
|
},
|
|
{
|
|
"stableName": "Toaster",
|
|
"path": "apps/web/app/components/ui/toaster.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/radix",
|
|
"status": "legacy"
|
|
},
|
|
{
|
|
"stableName": "ToggleGroup",
|
|
"path": "apps/web/app/components/ui/toggle-group.tsx",
|
|
"category": "buttons",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Toggle",
|
|
"path": "apps/web/app/components/ui/toggle.tsx",
|
|
"category": "buttons",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Tooltip",
|
|
"path": "apps/web/app/components/ui/tooltip.tsx",
|
|
"category": "feedback",
|
|
"library": "shadcn/radix",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Toast",
|
|
"path": "apps/web/app/root.tsx",
|
|
"category": "feedback",
|
|
"library": "sonner",
|
|
"status": "candidate-for-adapter"
|
|
},
|
|
{
|
|
"stableName": "Lucide icons",
|
|
"path": "apps/web/app/components/layouts/icons",
|
|
"category": "feedback",
|
|
"library": "lucide/custom",
|
|
"status": "plugin"
|
|
}
|
|
]
|
|
}
|