{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "iqline-design-system", "homepage": "https://iqlds.vercel.app", "description": "IQLine Design System layout components for new projects with Vite + React + shadcn", "items": [ { "name": "accordion", "type": "registry:ui", "title": "Accordion", "description": "A vertically stacked set of interactive headings that each reveal a section of content", "files": [ { "path": "src/components/ui/accordion.tsx", "type": "registry:ui" } ] }, { "name": "alert-dialog", "type": "registry:ui", "title": "Alert Dialog", "description": "A modal dialog that interrupts the user with important content and expects a response", "files": [ { "path": "src/components/ui/alert-dialog.tsx", "type": "registry:ui" } ] }, { "name": "alert", "type": "registry:ui", "title": "Alert", "description": "Displays a callout for user attention", "files": [ { "path": "src/components/ui/alert.tsx", "type": "registry:ui" } ] }, { "name": "aspect-ratio", "type": "registry:ui", "title": "Aspect Ratio", "description": "Displays content within a desired ratio", "files": [ { "path": "src/components/ui/aspect-ratio.tsx", "type": "registry:ui" } ] }, { "name": "avatar", "type": "registry:ui", "title": "Avatar", "description": "An image element with a fallback for representing the user", "files": [ { "path": "src/components/ui/avatar.tsx", "type": "registry:ui" } ] }, { "name": "badge", "type": "registry:ui", "title": "Badge", "description": "Displays a badge or a component that looks like a badge", "files": [ { "path": "src/components/ui/badge.tsx", "type": "registry:ui" } ] }, { "name": "breadcrumb", "type": "registry:ui", "title": "Breadcrumb", "description": "Displays the path to the current resource using a hierarchy of links", "files": [ { "path": "src/components/ui/breadcrumb.tsx", "type": "registry:ui" } ] }, { "name": "button-group", "type": "registry:ui", "title": "Button Group", "description": "Groups buttons together", "files": [ { "path": "src/components/ui/button-group.tsx", "type": "registry:ui" } ] }, { "name": "button", "type": "registry:ui", "title": "Button", "description": "Displays a button or a component that looks like a button", "files": [ { "path": "src/components/ui/button.tsx", "type": "registry:ui" } ] }, { "name": "calendar", "type": "registry:ui", "title": "Calendar", "description": "A date field component that allows users to enter and edit date", "files": [ { "path": "src/components/ui/calendar.tsx", "type": "registry:ui" } ] }, { "name": "card", "type": "registry:ui", "title": "Card", "description": "Displays a card with header, content, and footer", "files": [ { "path": "src/components/ui/card.tsx", "type": "registry:ui" } ] }, { "name": "carousel", "type": "registry:ui", "title": "Carousel", "description": "A carousel with motion and swipe built using Embla", "files": [ { "path": "src/components/ui/carousel.tsx", "type": "registry:ui" } ] }, { "name": "chart", "type": "registry:ui", "title": "Chart", "description": "Recharts wrapper for building charts", "files": [ { "path": "src/components/ui/chart.tsx", "type": "registry:ui" } ] }, { "name": "checkbox", "type": "registry:ui", "title": "Checkbox", "description": "A control that allows the user to toggle between checked and not checked", "files": [ { "path": "src/components/ui/checkbox.tsx", "type": "registry:ui" } ] }, { "name": "collapsible", "type": "registry:ui", "title": "Collapsible", "description": "An interactive component which expands/collapses a panel", "files": [ { "path": "src/components/ui/collapsible.tsx", "type": "registry:ui" } ] }, { "name": "combobox", "type": "registry:ui", "title": "Combobox", "description": "Autocomplete input and command palette with a list of suggestions", "files": [ { "path": "src/components/ui/combobox.tsx", "type": "registry:ui" } ] }, { "name": "command", "type": "registry:ui", "title": "Command", "description": "Fast, composable, unstyled command menu for React", "files": [ { "path": "src/components/ui/command.tsx", "type": "registry:ui" } ] }, { "name": "context-menu", "type": "registry:ui", "title": "Context Menu", "description": "Displays a menu to the user — such as a set of actions or functions — triggered by a button", "files": [ { "path": "src/components/ui/context-menu.tsx", "type": "registry:ui" } ] }, { "name": "dialog", "type": "registry:ui", "title": "Dialog", "description": "A window overlaid on either the primary window or another dialog window", "files": [ { "path": "src/components/ui/dialog.tsx", "type": "registry:ui" } ] }, { "name": "drawer", "type": "registry:ui", "title": "Drawer", "description": "A drawer component for mobile", "files": [ { "path": "src/components/ui/drawer.tsx", "type": "registry:ui" } ] }, { "name": "dropdown-menu", "type": "registry:ui", "title": "Dropdown Menu", "description": "Displays a menu to the user — such as a set of actions or functions — triggered by a button", "files": [ { "path": "src/components/ui/dropdown-menu.tsx", "type": "registry:ui" } ] }, { "name": "empty", "type": "registry:ui", "title": "Empty", "description": "An empty state component", "files": [ { "path": "src/components/ui/empty.tsx", "type": "registry:ui" } ] }, { "name": "field", "type": "registry:ui", "title": "Field", "description": "A form field component", "files": [ { "path": "src/components/ui/field.tsx", "type": "registry:ui" } ] }, { "name": "hover-card", "type": "registry:ui", "title": "Hover Card", "description": "For sighted users to preview content available behind a link", "files": [ { "path": "src/components/ui/hover-card.tsx", "type": "registry:ui" } ] }, { "name": "input-group", "type": "registry:ui", "title": "Input Group", "description": "Groups inputs together", "files": [ { "path": "src/components/ui/input-group.tsx", "type": "registry:ui" } ] }, { "name": "input-otp", "type": "registry:ui", "title": "Input OTP", "description": "Accessible one-time password component with copy paste functionality", "files": [ { "path": "src/components/ui/input-otp.tsx", "type": "registry:ui" } ] }, { "name": "input", "type": "registry:ui", "title": "Input", "description": "Displays a form input field or a component that looks like an input field", "files": [ { "path": "src/components/ui/input.tsx", "type": "registry:ui" } ] }, { "name": "item", "type": "registry:ui", "title": "Item", "description": "A generic item component", "files": [ { "path": "src/components/ui/item.tsx", "type": "registry:ui" } ] }, { "name": "kbd", "type": "registry:ui", "title": "Kbd", "description": "Displays keyboard keys or a combination of keys", "files": [ { "path": "src/components/ui/kbd.tsx", "type": "registry:ui" } ] }, { "name": "label", "type": "registry:ui", "title": "Label", "description": "Renders an accessible label associated with controls", "files": [ { "path": "src/components/ui/label.tsx", "type": "registry:ui" } ] }, { "name": "menubar", "type": "registry:ui", "title": "Menubar", "description": "A visually persistent menu common in desktop applications", "files": [ { "path": "src/components/ui/menubar.tsx", "type": "registry:ui" } ] }, { "name": "native-select", "type": "registry:ui", "title": "Native Select", "description": "Displays a native HTML select component", "files": [ { "path": "src/components/ui/native-select.tsx", "type": "registry:ui" } ] }, { "name": "navigation-menu", "type": "registry:ui", "title": "Navigation Menu", "description": "A collection of links for navigating websites", "files": [ { "path": "src/components/ui/navigation-menu.tsx", "type": "registry:ui" } ] }, { "name": "pagination", "type": "registry:ui", "title": "Pagination", "description": "Pagination with page navigation", "files": [ { "path": "src/components/ui/pagination.tsx", "type": "registry:ui" } ] }, { "name": "popover", "type": "registry:ui", "title": "Popover", "description": "Displays rich content in a portal, triggered by a button", "files": [ { "path": "src/components/ui/popover.tsx", "type": "registry:ui" } ] }, { "name": "progress", "type": "registry:ui", "title": "Progress", "description": "Displays an indicator showing the completion progress of a task", "files": [ { "path": "src/components/ui/progress.tsx", "type": "registry:ui" } ] }, { "name": "radio-group", "type": "registry:ui", "title": "Radio Group", "description": "A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time", "files": [ { "path": "src/components/ui/radio-group.tsx", "type": "registry:ui" } ] }, { "name": "resizable", "type": "registry:ui", "title": "Resizable", "description": "Accessible resizable panel groups and layouts with keyboard support", "files": [ { "path": "src/components/ui/resizable.tsx", "type": "registry:ui" } ] }, { "name": "scroll-area", "type": "registry:ui", "title": "Scroll Area", "description": "Augments native scroll functionality for custom, cross-browser styling", "files": [ { "path": "src/components/ui/scroll-area.tsx", "type": "registry:ui" } ] }, { "name": "select", "type": "registry:ui", "title": "Select", "description": "Displays a list of options for the user to pick from—triggered by a button", "files": [ { "path": "src/components/ui/select.tsx", "type": "registry:ui" } ] }, { "name": "separator", "type": "registry:ui", "title": "Separator", "description": "Visually or semantically separates content", "files": [ { "path": "src/components/ui/separator.tsx", "type": "registry:ui" } ] }, { "name": "sheet", "type": "registry:ui", "title": "Sheet", "description": "Extends the Dialog component to display content that complements the main content of the screen", "files": [ { "path": "src/components/ui/sheet.tsx", "type": "registry:ui" } ] }, { "name": "sidebar", "type": "registry:ui", "title": "Sidebar", "description": "A sidebar component with collapsible support", "files": [ { "path": "src/components/ui/sidebar.tsx", "type": "registry:ui" } ] }, { "name": "skeleton", "type": "registry:ui", "title": "Skeleton", "description": "Use to show a placeholder while content is loading", "files": [ { "path": "src/components/ui/skeleton.tsx", "type": "registry:ui" } ] }, { "name": "slider", "type": "registry:ui", "title": "Slider", "description": "An input where the user selects a value from within a given range", "files": [ { "path": "src/components/ui/slider.tsx", "type": "registry:ui" } ] }, { "name": "sonner", "type": "registry:ui", "title": "Sonner", "description": "An opinionated toast component for React", "files": [ { "path": "src/components/ui/sonner.tsx", "type": "registry:ui" } ] }, { "name": "spinner", "type": "registry:ui", "title": "Spinner", "description": "A loading spinner component", "files": [ { "path": "src/components/ui/spinner.tsx", "type": "registry:ui" } ] }, { "name": "switch", "type": "registry:ui", "title": "Switch", "description": "A control that allows the user to toggle between checked and not checked", "files": [ { "path": "src/components/ui/switch.tsx", "type": "registry:ui" } ] }, { "name": "table", "type": "registry:ui", "title": "Table", "description": "Powerful table and datagrid built with TanStack Table", "files": [ { "path": "src/components/ui/table.tsx", "type": "registry:ui" } ] }, { "name": "tabs", "type": "registry:ui", "title": "Tabs", "description": "A set of layered sections of content—known as tab panels—that are displayed one at a time", "files": [ { "path": "src/components/ui/tabs.tsx", "type": "registry:ui" } ] }, { "name": "textarea", "type": "registry:ui", "title": "Textarea", "description": "Displays a form textarea or a component that looks like a textarea", "files": [ { "path": "src/components/ui/textarea.tsx", "type": "registry:ui" } ] }, { "name": "toggle-group", "type": "registry:ui", "title": "Toggle Group", "description": "A set of two-state buttons that can be toggled on or off", "files": [ { "path": "src/components/ui/toggle-group.tsx", "type": "registry:ui" } ] }, { "name": "toggle", "type": "registry:ui", "title": "Toggle", "description": "A two-state button that can be either on or off", "files": [ { "path": "src/components/ui/toggle.tsx", "type": "registry:ui" } ] }, { "name": "tooltip", "type": "registry:ui", "title": "Tooltip", "description": "A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it", "files": [ { "path": "src/components/ui/tooltip.tsx", "type": "registry:ui" } ] }, { "name": "global-header", "type": "registry:block", "title": "Global Header", "description": "Application-wide header with breadcrumbs, user menu, and notifications", "files": [ { "path": "src/components/blocks/global-header.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/breadcrumb", "@/components/ui/dropdown-menu", "@/components/ui/button", "@/components/ui/avatar", "@/components/ui/separator", "@/lib/navigation" ] }, { "name": "global-sidebar", "type": "registry:block", "title": "Global Sidebar", "description": "Application-wide left navigation sidebar with collapsible support", "files": [ { "path": "src/components/blocks/global-sidebar.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/sidebar", "@/components/ui/avatar", "@/lib/sidebar-config" ] }, { "name": "global-footer", "type": "registry:block", "title": "Global Footer", "description": "Optional application-wide footer component", "files": [ { "path": "src/components/blocks/global-footer.tsx", "type": "registry:block" } ] }, { "name": "page-header", "type": "registry:block", "title": "Page Header", "description": "Page-level header with title, leading elements, and actions. Features sticky positioning and scroll detection.", "files": [ { "path": "src/components/blocks/page-header.tsx", "type": "registry:block" } ], "dependencies": [ "@/lib/utils" ] }, { "name": "page-tabs", "type": "registry:block", "title": "Page Tabs", "description": "Tabs component for page-level navigation with controlled state support", "files": [ { "path": "src/components/blocks/page-tabs.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/tabs" ] }, { "name": "back-button", "type": "registry:block", "title": "Back Button", "description": "Navigation back button supporting href, onClick, or browser history", "files": [ { "path": "src/components/blocks/back-button.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/button", "react-router-dom" ] }, { "name": "login-form", "type": "registry:block", "title": "Login Form", "description": "Reusable login form component with email/password fields, forgot password link, and signup link", "files": [ { "path": "src/components/blocks/login-form.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/card", "@/components/ui/button", "@/components/ui/input", "@/components/ui/label", "@/components/ui/separator", "react-router-dom" ] }, { "name": "password-reset-form", "type": "registry:block", "title": "Password Reset Form", "description": "Reusable password reset form component with email input and back to login link", "files": [ { "path": "src/components/blocks/password-reset-form.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/card", "@/components/ui/button", "@/components/ui/input", "@/components/ui/label", "react-router-dom" ] }, { "name": "data-table", "type": "registry:block", "title": "Data Table", "description": "Comprehensive data table component with search, filters, pagination, column visibility, and row selection", "files": [ { "path": "src/components/blocks/data-table.tsx", "type": "registry:block" } ], "dependencies": [ "@tanstack/react-table", "@/components/ui/table", "@/components/ui/button", "@/components/ui/input", "@/components/ui/select", "@/components/ui/dropdown-menu" ] }, { "name": "metric-card", "type": "registry:block", "title": "Metric Card", "description": "Reusable metric card component for displaying key performance indicators with trend indicators and optional descriptions", "files": [ { "path": "src/components/blocks/metric-card.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/card", "@/components/ui/badge" ] }, { "name": "tray-card", "type": "registry:block", "title": "Tray Card", "description": "Card component for displaying a tray grid with wells; supports well status (empty, unassigned, request-sent, etc.) and selection", "files": [ { "path": "src/components/tray-card.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/card", "@/components/ui/badge" ] }, { "name": "app-shell", "type": "registry:block", "title": "App Shell", "description": "Main application shell with sidebar, header, footer, and outlet for routes", "files": [ { "path": "src/components/layouts/app-shell.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/blocks/global-header", "@/components/blocks/global-sidebar", "@/components/blocks/global-footer", "@/components/ui/sidebar", "react-router-dom" ] }, { "name": "page-shell", "type": "registry:block", "title": "Page Shell", "description": "Base page container providing consistent spacing and vertical flow", "files": [ { "path": "src/components/layouts/page-shell.tsx", "type": "registry:block" } ] }, { "name": "two-column-layout", "type": "registry:block", "title": "Two Column Layout", "description": "Unified two-column layout supporting resizable or fixed widths, with optional headers, footers, and scrollable sections. Supports all two-column layout patterns including split panes, content with properties panels, and sidebar layouts.", "files": [ { "path": "src/components/layouts/two-column-layout.tsx", "type": "registry:block" } ], "dependencies": [ "react-resizable-panels", "@/components/ui/resizable", "@/components/ui/scroll-area", "@/components/ui/separator" ] }, { "name": "three-column-layout", "type": "registry:block", "title": "Three Column Layout", "description": "Resizable three-column layout with left sidebar, main content area, and right properties panel. Supports dynamic resizing with configurable default and minimum widths.", "files": [ { "path": "src/components/layouts/three-column-layout.tsx", "type": "registry:block" } ], "dependencies": [ "react-resizable-panels", "@/components/ui/resizable", "@/components/ui/scroll-area" ] }, { "name": "page-header-with-tabs", "type": "registry:block", "title": "Page Header With Tabs", "description": "Composition pattern combining page header and tabs", "files": [ { "path": "src/components/patterns/page-header-with-tabs.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/blocks/page-header", "@/components/blocks/page-tabs" ] }, { "name": "page-header-with-back", "type": "registry:block", "title": "Page Header With Back", "description": "Composition pattern combining page header with back button", "files": [ { "path": "src/components/patterns/page-header-with-back.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/blocks/page-header", "@/components/blocks/back-button" ] }, { "name": "not-found-page", "type": "registry:block", "title": "Not Found Page", "description": "Reusable 404 error page template with customizable navigation options and SVG illustration", "files": [ { "path": "src/pages/templates/NotFoundPage.tsx", "type": "registry:block" } ], "dependencies": [ "@/components/ui/button", "react-router-dom" ] }, { "name": "theme-radix-nova", "type": "registry:theme", "title": "Radix Nova Theme", "description": "Radix Nova style theme with neutral base color. Features modern OKLCH color space for better color consistency and accessibility.", "files": [ { "path": "src/styles/radix-nova.css", "type": "registry:theme" } ], "cssVariables": true, "baseColor": "neutral" } ] }