{
"$schema": "https://ui.shadcn.com/schema/registry.json",
"name": "Now.ts UI",
"homepage": "https://ui.nowts.app",
"items": [
{
"name": "better-auth-otp",
"type": "registry:block",
"title": "Better Auth OTP",
"description": "A component for signing in with email OTP.",
"registryDependencies": [
"button",
"input",
"label",
"textarea",
"card",
"input-otp",
"sonner"
],
"dependencies": ["motion", "react-use-measure", "@hookform/resolvers"],
"files": [
{
"path": "registry/nowts/blocks/better-auth-otp/components/better-auth-otp.tsx",
"type": "registry:component"
},
{
"path": "registry/nowts/blocks/better-auth-otp/hooks/use-countdown.ts",
"type": "registry:hook"
}
]
},
{
"name": "better-auth-signin",
"type": "registry:block",
"title": "Better Auth Sign In Page",
"description": "A complete and customizable sign-in page with email/password, OTP, and OAuth provider support using Better Auth.",
"registryDependencies": [
"button",
"input",
"label",
"card",
"avatar",
"sonner",
"https://ui.nowts.app/r/better-auth-otp.json"
],
"dependencies": [],
"docs": "This component provides a complete sign-in experience with support for multiple authentication methods. Customize the appearance and behavior through props.",
"files": [
{
"path": "registry/nowts/blocks/better-auth-signin/sign-in-page.tsx",
"type": "registry:component"
},
{
"path": "registry/nowts/blocks/better-auth-signin/sign-in-auth-methods.tsx",
"type": "registry:component"
},
{
"path": "registry/nowts/blocks/better-auth-signin/sign-in-password-form.tsx",
"type": "registry:component"
},
{
"path": "registry/nowts/blocks/better-auth-signin/sign-in-provider-button.tsx",
"type": "registry:component"
},
{
"path": "registry/nowts/blocks/better-auth-signin/divider.tsx",
"type": "registry:component"
}
]
},
{
"name": "server-toast",
"type": "registry:block",
"title": "Server Toast",
"description": "A library for server-side toast notifications.",
"registryDependencies": ["sonner"],
"dependencies": [],
"docs": "Important : Add inside app/layout.tsx to render the toast notifications.",
"files": [
{
"path": "registry/nowts/blocks/server-toast/server-toast.type.ts",
"type": "registry:lib",
"target": "lib/server-toast/server-toast.type.ts"
},
{
"path": "registry/nowts/blocks/server-toast/server-toast.ts",
"type": "registry:lib",
"target": "lib/server-toast/server-toast.ts"
},
{
"path": "registry/nowts/blocks/server-toast/server-toast.server.tsx",
"type": "registry:lib",
"target": "lib/server-toast/server-toast.server.tsx"
},
{
"path": "registry/nowts/blocks/server-toast/server-toast.client.tsx",
"type": "registry:lib",
"target": "lib/server-toast/server-toast.client.tsx"
}
]
},
{
"name": "dialog-manager",
"type": "registry:block",
"title": "Dialog Manager",
"description": "A powerful dialog manager for handling confirm, input, and custom dialogs with global state management.",
"registryDependencies": [
"alert-dialog",
"button",
"input",
"label",
"sonner"
],
"dependencies": ["zustand"],
"docs": "Important: Add inside app/layout.tsx to render the dialogs.",
"files": [
{
"path": "registry/nowts/blocks/dialog-manager/dialog-types.ts",
"type": "registry:lib",
"target": "lib/dialog-manager/dialog-types.ts"
},
{
"path": "registry/nowts/blocks/dialog-manager/dialog-factory.ts",
"type": "registry:lib",
"target": "lib/dialog-manager/dialog-factory.ts"
},
{
"path": "registry/nowts/blocks/dialog-manager/dialog-store.ts",
"type": "registry:lib",
"target": "lib/dialog-manager/dialog-store.ts"
},
{
"path": "registry/nowts/blocks/dialog-manager/dialog-manager.ts",
"type": "registry:lib",
"target": "lib/dialog-manager/dialog-manager.ts"
},
{
"path": "registry/nowts/blocks/dialog-manager/dialog-component.tsx",
"type": "registry:lib",
"target": "lib/dialog-manager/dialog-component.tsx"
},
{
"path": "registry/nowts/blocks/dialog-manager/dialog-manager-renderer.tsx",
"type": "registry:lib",
"target": "lib/dialog-manager/dialog-manager-renderer.tsx"
}
]
},
{
"name": "use-is-client",
"type": "registry:hook",
"title": "useIsClient",
"description": "A React hook to check if the component is rendered on the client side, useful for SSR/hydration scenarios.",
"registryDependencies": [],
"dependencies": [],
"files": [
{
"path": "registry/nowts/hooks/use-is-client.ts",
"type": "registry:hook"
}
]
},
{
"name": "use-warn-if-unsaved-changes",
"type": "registry:hook",
"title": "Use Warn If Unsaved Changes",
"description": "A React hook that warns users before leaving the page when there are unsaved changes.",
"registryDependencies": [],
"dependencies": [],
"files": [
{
"path": "registry/nowts/hooks/use-warn-if-unsaved-changes.ts",
"type": "registry:hook"
}
]
},
{
"name": "use-debounce-fn",
"type": "registry:hook",
"title": "Use Debounce Function",
"description": "A React hook that debounces function calls to improve performance and prevent excessive API calls.",
"registryDependencies": [],
"dependencies": [],
"files": [
{
"path": "registry/nowts/hooks/use-debounce-fn.ts",
"type": "registry:hook"
}
]
},
{
"name": "form-management",
"type": "registry:block",
"title": "Form Management",
"description": "A comprehensive form management system with auto-save, unsaved changes warning, and sticky action bar for enhanced UX.",
"registryDependencies": [
"button",
"tooltip",
"https://ui.nowts.app/r/submit-button.json",
"https://ui.nowts.app/r/extended-form.json",
"https://ui.nowts.app/r/use-debounce-fn.json",
"https://ui.nowts.app/r/use-warn-if-unsaved-changes.json",
"https://ui.nowts.app/r/use-is-client.json"
],
"dependencies": ["motion", "react-hotkeys-hook", "lucide-react"],
"docs": "Important: This component requires react-hook-form and uses other internal hooks. Make sure to install use-debounce-fn, use-warn-if-unsaved-changes, use-is-client, and submit-button components.",
"files": [
{
"path": "registry/nowts/blocks/form-management/form-management.tsx",
"type": "registry:lib",
"target": "lib/form-management/form-management.tsx"
},
{
"path": "registry/nowts/blocks/form-management/form-management-sticky-bar.tsx",
"type": "registry:lib",
"target": "lib/form-management/form-management-sticky-bar.tsx"
}
]
},
{
"name": "submit-button",
"type": "registry:component",
"title": "Submit Button",
"description": "Enhanced submit button with loading state that automatically detects form submission state using React's useFormStatus hook.",
"registryDependencies": ["button", "https://ui.nowts.app/r/spinner.json"],
"dependencies": ["motion", "lucide-react"],
"files": [
{
"path": "registry/nowts/components/submit-button.tsx",
"type": "registry:component"
}
]
},
{
"name": "spinner",
"type": "registry:component",
"title": "Spinner",
"description": "A simple loading spinner component using Lucide's Loader2 icon with spin animation.",
"registryDependencies": [],
"dependencies": ["lucide-react"],
"files": [
{
"path": "registry/nowts/components/spinner.tsx",
"type": "registry:component"
}
]
},
{
"name": "next-top-loader",
"type": "registry:component",
"title": "Next Top Loader",
"description": "A Next.js compatible top loading bar component with automatic navigation detection and customizable progress indicators.",
"registryDependencies": [],
"dependencies": ["zustand"],
"docs": "Important: Add to your app/layout.tsx file to enable the top loading bar across your application.",
"files": [
{
"path": "registry/nowts/components/next-top-loader.tsx",
"type": "registry:component"
}
]
},
{
"name": "extended-form",
"type": "registry:component",
"title": "Extended Form",
"description": "Enhanced form component with Zod schema validation and TypeScript support using react-hook-form.",
"registryDependencies": ["form"],
"dependencies": ["react-hook-form", "@hookform/resolvers", "zod"],
"files": [
{
"path": "registry/nowts/components/extended-form.tsx",
"type": "registry:component"
}
]
},
{
"name": "use-copy-to-clipboard",
"type": "registry:hook",
"title": "Use Copy to Clipboard",
"description": "A React hook for copying text to the clipboard with fallback support and feedback state management.",
"registryDependencies": [],
"dependencies": [],
"files": [
{
"path": "registry/nowts/hooks/use-copy-to-clipboard.ts",
"type": "registry:hook"
}
]
},
{
"name": "better-auth-signup",
"type": "registry:block",
"title": "Better Auth Sign Up",
"description": "A complete sign-up form component with email and password authentication using Better Auth.",
"registryDependencies": [
"button",
"input",
"label",
"card",
"sonner",
"https://ui.nowts.app/r/extended-form.json"
],
"dependencies": ["zod", "react-hook-form", "@hookform/resolvers"],
"files": [
{
"path": "registry/nowts/blocks/better-auth-signup/better-auth-signup.tsx",
"type": "registry:component"
}
]
}
]
}