{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "faktion", "homepage": "https://registry.faktion.com", "items": [ { "name": "combobox", "type": "registry:component", "title": "Combobox", "description": "A combobox component", "dependencies": [ "cmdk", "lucide-react" ], "registryDependencies": [ "command", "popover", "button" ], "files": [ { "path": "registry/components/combobox.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "multi-combobox", "type": "registry:component", "title": "Multi Combobox", "description": "A multi combobox component", "dependencies": [ "cmdk", "lucide-react" ], "registryDependencies": [ "badge", "command", "popover", "button" ], "files": [ { "path": "registry/components/multi-combobox.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "fab", "type": "registry:component", "title": "Floating Action Button", "description": "A floating action button component", "dependencies": [ "class-variance-authority" ], "registryDependencies": [], "files": [ { "path": "registry/components/fab.tsx", "type": "registry:component" } ] }, { "name": "notification", "type": "registry:component", "title": "Notification", "description": "A notification component", "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "@faktion/use-composition" ], "files": [ { "path": "registry/components/notification.tsx", "type": "registry:component" } ] }, { "name": "toggle", "type": "registry:component", "title": "Toggle", "description": "A toggle component", "dependencies": [], "registryDependencies": [ "@faktion/use-composition" ], "files": [ { "path": "registry/components/toggle.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "color-picker", "type": "registry:component", "title": "Color Picker", "description": "A color picker component", "dependencies": [ "color", "lucide-react", "radix-ui" ], "registryDependencies": [ "button", "input", "select" ], "files": [ { "path": "registry/components/color-picker.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "dropzone", "type": "registry:component", "title": "Dropzone", "description": "A dropzone component", "dependencies": [ "react-dropzone", "lucide-react" ], "registryDependencies": [ "button" ], "files": [ { "path": "registry/components/dropzone.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "radio-group", "type": "registry:component", "title": "Radio Group", "description": "A radio group component", "dependencies": [ "lucide-react", "@radix-ui/react-radio-group", "class-variance-authority" ], "registryDependencies": [], "files": [ { "path": "registry/components/radio-group.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "checkbox-group", "type": "registry:component", "title": "Checkbox Group", "description": "A checkbox group component", "dependencies": [ "@radix-ui/react-checkbox", "class-variance-authority" ], "registryDependencies": [ "checkbox" ], "files": [ { "path": "registry/components/checkbox-group.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "country-combobox", "type": "registry:component", "title": "Country Combobox", "description": "A country combobox component", "dependencies": [ "@reacture-io/iso-locale", "react-country-flag" ], "registryDependencies": [ "@faktion/combobox" ], "files": [ { "path": "registry/components/country-combobox.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "language-combobox", "type": "registry:component", "title": "Language Combobox", "description": "A language combobox component", "dependencies": [ "@reacture-io/iso-locale", "iso-639-1" ], "registryDependencies": [ "@faktion/combobox" ], "files": [ { "path": "registry/components/language-combobox.tsx", "type": "registry:component" } ], "categories": [ "forms" ] }, { "name": "actions", "type": "registry:component", "title": "Actions", "description": "A actions component", "dependencies": [], "registryDependencies": [ "button", "tooltip" ], "files": [ { "path": "registry/components/actions.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "artifact", "type": "registry:component", "title": "Artifact", "description": "A artifact component", "dependencies": [ "lucide-react" ], "registryDependencies": [ "button", "tooltip" ], "files": [ { "path": "registry/components/artifact.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "branch", "type": "registry:component", "title": "Branch", "description": "A branch component", "dependencies": [ "ai", "lucide-react" ], "registryDependencies": [ "button" ], "files": [ { "path": "registry/components/branch.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "chain-of-thought", "type": "registry:component", "title": "Chain of Thought", "description": "A chain of thought component", "dependencies": [ "@radix-ui/react-use-controllable-state", "lucide-react" ], "registryDependencies": [ "badge", "collapsible" ], "files": [ { "path": "registry/components/chain-of-thought.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "code-block", "type": "registry:component", "title": "Code Block", "description": "A code block component", "dependencies": [ "react-syntax-highlighter", "lucide-react" ], "registryDependencies": [ "button" ], "files": [ { "path": "registry/components/code-block.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "conversation", "type": "registry:component", "title": "Conversation", "description": "A conversation component", "dependencies": [ "use-stick-to-bottom", "lucide-react" ], "registryDependencies": [ "button" ], "files": [ { "path": "registry/components/conversation.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "image", "type": "registry:component", "title": "Image", "description": "A image component", "dependencies": [ "ai" ], "registryDependencies": [], "files": [ { "path": "registry/components/image.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "inline-citation", "type": "registry:component", "title": "Inline Citation", "description": "A inline citation component", "dependencies": [ "lucide-react" ], "registryDependencies": [ "badge", "carousel", "hover-card" ], "files": [ { "path": "registry/components/inline-citation.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "loader", "type": "registry:component", "title": "Loader", "description": "A loader component", "dependencies": [], "registryDependencies": [], "files": [ { "path": "registry/components/loader.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "message", "type": "registry:component", "title": "Message", "description": "A message component", "dependencies": [ "ai" ], "registryDependencies": [ "avatar" ], "files": [ { "path": "registry/components/message.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "prompt-input", "type": "registry:component", "title": "Prompt Input", "description": "A prompt input component", "dependencies": [ "ai", "lucide-react" ], "registryDependencies": [ "button", "select", "textarea" ], "files": [ { "path": "registry/components/prompt-input.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "rating", "type": "registry:component", "title": "Rating", "description": "A rating component", "dependencies": [ "@radix-ui/react-use-controllable-state", "lucide-react" ], "registryDependencies": [], "files": [ { "path": "registry/components/rating.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "reasoning", "type": "registry:component", "title": "Reasoning", "description": "A reasoning component", "dependencies": [ "@radix-ui/react-use-controllable-state", "lucide-react" ], "registryDependencies": [ "collapsible", "@faktion/response" ], "files": [ { "path": "registry/components/reasoning.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "response", "type": "registry:component", "title": "Response", "description": "A response component", "dependencies": [ "streamdown" ], "registryDependencies": [], "files": [ { "path": "registry/components/response.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "sources", "type": "registry:component", "title": "Sources", "description": "A source component", "dependencies": [ "lucide-react" ], "registryDependencies": [ "collapsible" ], "files": [ { "path": "registry/components/sources.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "suggestion", "type": "registry:component", "title": "Suggestion", "description": "A suggestion component", "dependencies": [ "lucide-react" ], "registryDependencies": [ "button", "scroll-area" ], "files": [ { "path": "registry/components/suggestion.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "status", "type": "registry:component", "title": "Status", "description": "A status component", "dependencies": [ "class-variance-authority" ], "registryDependencies": [], "files": [ { "path": "registry/components/status.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "task", "type": "registry:component", "title": "Task", "description": "A task component", "dependencies": [ "lucide-react" ], "registryDependencies": [ "collapsible" ], "files": [ { "path": "registry/components/task.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "tool", "type": "registry:component", "title": "Tool", "description": "A tool component", "dependencies": [ "ai", "lucide-react" ], "registryDependencies": [ "collapsible", "badge" ], "files": [ { "path": "registry/components/tool.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "web-preview", "type": "registry:component", "title": "Web Preview", "description": "A web preview component", "dependencies": [ "lucide-react" ], "registryDependencies": [ "collapsible", "button", "input", "tooltip" ], "files": [ { "path": "registry/components/web-preview.tsx", "type": "registry:component" } ], "categories": [ "chat" ] }, { "name": "column-header", "type": "registry:component", "title": "Column Header", "description": "A column header component", "dependencies": [ "@tanstack/react-table", "lucide-react" ], "registryDependencies": [ "button", "dropdown-menu" ], "files": [ { "path": "registry/components/table/column-header.tsx", "type": "registry:component" } ], "categories": [ "table" ] }, { "name": "selectable-row", "type": "registry:component", "title": "Selectable Row", "description": "A selectable row component", "dependencies": [ "@tanstack/react-table" ], "registryDependencies": [ "checkbox", "@faktion/radio-group" ], "files": [ { "path": "registry/components/table/selectable-row.tsx", "type": "registry:component" } ], "categories": [ "table" ] }, { "name": "selectable-header", "type": "registry:component", "title": "Selectable Header", "description": "A selectable header component", "dependencies": [ "@tanstack/react-table" ], "registryDependencies": [ "checkbox" ], "files": [ { "path": "registry/components/table/selectable-header.tsx", "type": "registry:component" } ], "categories": [ "table" ] }, { "name": "pagination", "type": "registry:component", "title": "Pagination", "description": "A pagination component", "dependencies": [ "@tanstack/react-table" ], "registryDependencies": [ "button", "select" ], "files": [ { "path": "registry/components/table/pagination.tsx", "type": "registry:component" } ], "categories": [ "table" ] }, { "name": "data-table", "type": "registry:component", "title": "Data Table", "description": "A data table component", "dependencies": [ "@tanstack/react-table" ], "registryDependencies": [ "table", "@faktion/pagination", "@faktion/column-header", "@faktion/selectable-row", "@faktion/selectable-header" ], "files": [ { "path": "registry/components/table/data-table.tsx", "type": "registry:component" } ], "categories": [ "table" ] }, { "name": "use-composition", "type": "registry:hook", "title": "Use Composition", "description": "A hook to extract children of a specific type from a composition", "dependencies": [ "react" ], "registryDependencies": [], "files": [ { "path": "registry/hooks/use-composition.tsx", "type": "registry:hook" } ], "categories": [ "hooks" ] }, { "name": "use-file-download", "type": "registry:hook", "title": "Use File Download", "description": "A hook to download a binary date", "dependencies": [ "axios", "@tanstack/react-query" ], "registryDependencies": [], "files": [ { "path": "registry/hooks/use-file-download.tsx", "type": "registry:hook" } ], "categories": [ "hooks" ] }, { "name": "use-download", "type": "registry:hook", "title": "Use Download", "description": "A hook to download from a url", "dependencies": [], "registryDependencies": [], "files": [ { "path": "registry/hooks/use-download.tsx", "type": "registry:hook" } ], "categories": [ "hooks" ] }, { "name": "use-virtualize", "type": "registry:hook", "title": "Use Virtualize", "description": "A hook to virtualize a list of items", "dependencies": [ "@tanstack/react-query", "@tanstack/react-virtual" ], "registryDependencies": [], "files": [ { "path": "registry/hooks/use-virtualize.tsx", "type": "registry:hook" } ], "categories": [ "hooks" ] }, { "name": "microsoft-sso", "type": "registry:file", "title": "Microsoft SSO", "description": "A Microsoft SSO recipe", "dependencies": [ "@nestjs/common", "@nestjs/passport", "@nestjs/axios", "passport-oauth2" ], "registryDependencies": [], "files": [ { "path": "registry/recipes/server/microsoft-sso/microsoft.strategy.ts", "type": "registry:file", "target": "src/modules/auth/microsoft.strategy.ts" }, { "path": "registry/recipes/server/microsoft-sso/microsoft.guard.ts", "type": "registry:file", "target": "src/modules/auth/microsoft.guard.ts" }, { "path": "registry/recipes/server/microsoft-sso/microsoft.dto.ts", "type": "registry:file", "target": "src/modules/auth/models/microsoft.dto.ts" }, { "path": "registry/recipes/server/microsoft-sso/MICROSOFT-SSO.MD", "type": "registry:file", "target": "docs/MICROSOFT-SSO.MD" } ], "categories": [ "recipes" ] }, { "name": "prompt-handler", "type": "registry:file", "title": "Prompt Handler", "description": "A prompt handler package", "dependencies": [], "registryDependencies": [], "files": [ { "path": "registry/recipes/packages/py-prompthandler/package.json", "type": "registry:file", "target": "packages/py-prompthandler/package.json" }, { "path": "registry/recipes/packages/py-prompthandler/pyproject.toml", "type": "registry:file", "target": "packages/py-prompthandler/pyproject.toml" }, { "path": "registry/recipes/packages/py-prompthandler/PROMPT-HANDLER.MD", "type": "registry:file", "target": "docs/PROMPT-HANDLER.MD" }, { "path": "registry/recipes/packages/py-prompthandler/src/faktion/prompthandler/__init__.py", "type": "registry:file", "target": "packages/py-prompthandler/src/faktion/prompthandler/__init__.py" }, { "path": "registry/recipes/packages/py-prompthandler/src/faktion/prompthandler/base.py", "type": "registry:file", "target": "packages/py-prompthandler/src/faktion/prompthandler/base.py" }, { "path": "registry/recipes/packages/py-prompthandler/src/faktion/prompthandler/in_memory.py", "type": "registry:file", "target": "packages/py-prompthandler/src/faktion/prompthandler/in_memory.py" }, { "path": "registry/recipes/packages/py-prompthandler/tests/conftest.py", "type": "registry:file", "target": "packages/py-prompthandler/tests/conftest.py" }, { "path": "registry/recipes/packages/py-prompthandler/tests/test_in_memory.py", "type": "registry:file", "target": "packages/py-prompthandler/tests/test_in_memory.py" } ], "categories": [ "recipes" ] } ] }