mirror of
https://github.com/jnsahaj/tweakcn.git
synced 2026-09-01 15:37:45 +08:00
4c41596712
* feat: Add polar for tweakcn-plus checkout * migrate to polar nextjs for more control * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add checkout link support * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * feat: Add customer portal * feat: add chat input draft persistence (not images) * styles: improve styles for ai generation and alert banner defaults * feat: Send whole chat context to AI * fix: silly typo lol * feat: support images persistence and sync * feat: edit message (text, mentions and images) * fix: add eslint-disable for exhaustive-deps warnings * chore: fix build error & improve text and styles in suggested prompts * refactor: handle session and subscription checks and handle post login actions * migrate to turbopack * refactor: use reducer builder pattern to sync ai-draft-store with image-uploader * fix: ai-usage computation: account for abort * feat: Theme limit handling for pro tier * refactor: remove duplicate code from ai-chat-form and chat-input * feat: Add faq to pricing page * fix: /dashboard navigations -> /settings * feat: update ui for success page * feat: Migrate ai chat and draft message store to idb-keyval * feat: move subscription details in-house * generate migration * fix: build err * styles: improve Message UI * fix: allow scroll in GoPro dialog chat preview * feat: improve AI usage feedback when theme generation when success or failure * feat: Message UI enhancement when assistant message is error feedback * feat: add latest features in /ai page and refactor Core Theme Generation logic hooks * styles: improve styles and layout for consistency * styles: improve styles in settings pages for consistency * cancelled theme doesn't cost requests * update next to latest (for turbopack compat) * fail build if polar webhook secret is not set * update polar sdk and nextjs plugin * feat: Create customer before creating checkout for them * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * feat: Add customer portal * feat: add chat input draft persistence (not images) * styles: improve styles for ai generation and alert banner defaults * feat: Send whole chat context to AI * fix: silly typo lol * feat: support images persistence and sync * feat: edit message (text, mentions and images) * fix: add eslint-disable for exhaustive-deps warnings * chore: fix build error & improve text and styles in suggested prompts * refactor: handle session and subscription checks and handle post login actions * migrate to turbopack * refactor: use reducer builder pattern to sync ai-draft-store with image-uploader * fix: ai-usage computation: account for abort * feat: Theme limit handling for pro tier * refactor: remove duplicate code from ai-chat-form and chat-input * feat: Add faq to pricing page * fix: /dashboard navigations -> /settings * feat: update ui for success page * feat: Migrate ai chat and draft message store to idb-keyval * feat: move subscription details in-house * generate migration * fix: build err * styles: improve Message UI * fix: allow scroll in GoPro dialog chat preview * feat: improve AI usage feedback when theme generation when success or failure * feat: Message UI enhancement when assistant message is error feedback * feat: add latest features in /ai page and refactor Core Theme Generation logic hooks * styles: improve styles and layout for consistency * styles: improve styles in settings pages for consistency * cancelled theme doesn't cost requests * update next to latest (for turbopack compat) * fail build if polar webhook secret is not set * update polar sdk and nextjs plugin * feat: Create customer before creating checkout for them --------- Co-authored-by: Luis Llanes <luisllaboj@gmail.com>
130 lines
4.1 KiB
JSON
130 lines
4.1 KiB
JSON
{
|
|
"name": "tweakcn-next",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev --turbopack",
|
|
"build": "npm run generate-theme-registry && next build --turbopack",
|
|
"start": "next start",
|
|
"lint": "next lint",
|
|
"generate-theme-registry": "tsx scripts/generate-theme-registry.ts && tsx scripts/generate-registry.ts",
|
|
"prepare": "husky"
|
|
},
|
|
"dependencies": {
|
|
"@ai-sdk/google": "^1.2.14",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@google/generative-ai": "^0.24.1",
|
|
"@hookform/resolvers": "^5.0.1",
|
|
"@lexical/react": "^0.31.0",
|
|
"@neondatabase/serverless": "^1.0.0",
|
|
"@polar-sh/checkout": "^0.1.11",
|
|
"@polar-sh/nextjs": "^0.4.3",
|
|
"@polar-sh/sdk": "^0.34.5",
|
|
"@radix-ui/react-accordion": "^1.2.7",
|
|
"@radix-ui/react-alert-dialog": "^1.1.10",
|
|
"@radix-ui/react-aspect-ratio": "^1.1.4",
|
|
"@radix-ui/react-avatar": "^1.1.6",
|
|
"@radix-ui/react-checkbox": "^1.2.2",
|
|
"@radix-ui/react-collapsible": "^1.1.7",
|
|
"@radix-ui/react-context-menu": "^2.2.10",
|
|
"@radix-ui/react-dialog": "^1.1.10",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.10",
|
|
"@radix-ui/react-hover-card": "^1.1.10",
|
|
"@radix-ui/react-label": "^2.1.4",
|
|
"@radix-ui/react-menubar": "^1.1.10",
|
|
"@radix-ui/react-navigation-menu": "^1.2.9",
|
|
"@radix-ui/react-popover": "^1.1.10",
|
|
"@radix-ui/react-progress": "^1.1.4",
|
|
"@radix-ui/react-radio-group": "^1.3.2",
|
|
"@radix-ui/react-scroll-area": "^1.2.5",
|
|
"@radix-ui/react-select": "^2.2.2",
|
|
"@radix-ui/react-separator": "^1.1.4",
|
|
"@radix-ui/react-slider": "^1.3.2",
|
|
"@radix-ui/react-slot": "^1.2.0",
|
|
"@radix-ui/react-switch": "^1.2.2",
|
|
"@radix-ui/react-tabs": "^1.1.7",
|
|
"@radix-ui/react-toast": "^1.2.10",
|
|
"@radix-ui/react-toggle": "^1.1.6",
|
|
"@radix-ui/react-toggle-group": "^1.1.6",
|
|
"@radix-ui/react-tooltip": "^1.2.3",
|
|
"@tanstack/react-query": "^5.81.2",
|
|
"@tanstack/react-query-devtools": "^5.81.2",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@tiptap/extension-character-count": "^2.12.0",
|
|
"@tiptap/extension-mention": "^2.11.9",
|
|
"@tiptap/extension-placeholder": "^2.11.9",
|
|
"@tiptap/react": "^2.11.9",
|
|
"@tiptap/starter-kit": "^2.11.9",
|
|
"@tiptap/suggestion": "^2.11.9",
|
|
"@upstash/ratelimit": "^2.0.5",
|
|
"@vercel/kv": "^3.0.0",
|
|
"@vercel/og": "^0.6.8",
|
|
"ai": "^4.3.13",
|
|
"better-auth": "^1.2.7",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"cuid": "^3.0.0",
|
|
"culori": "^4.0.1",
|
|
"date-fns": "^4.1.0",
|
|
"dotenv": "^16.5.0",
|
|
"drizzle-orm": "^0.42.0",
|
|
"embla-carousel-react": "^8.6.0",
|
|
"idb-keyval": "^6.2.2",
|
|
"input-otp": "^1.4.2",
|
|
"isbot": "^5.1.26",
|
|
"lexical": "^0.31.0",
|
|
"lucide-react": "^0.488.0",
|
|
"motion": "^12.7.3",
|
|
"next": "15.4.1",
|
|
"next-themes": "^0.4.6",
|
|
"nuqs": "^2.4.3",
|
|
"openai": "^4.96.2",
|
|
"posthog-js": "^1.236.1",
|
|
"react": "^19.0.0",
|
|
"react-day-picker": "^9.6.7",
|
|
"react-dom": "^19.0.0",
|
|
"react-dropzone": "^14.3.8",
|
|
"react-hook-form": "^7.55.0",
|
|
"react-resizable-panels": "^2.1.7",
|
|
"recharts": "^2.15.2",
|
|
"screenfull": "^6.0.2",
|
|
"server-only": "^0.0.1",
|
|
"shadcn": "^2.5.0",
|
|
"sonner": "^2.0.3",
|
|
"swr": "^2.3.3",
|
|
"tailwind-merge": "^3.2.0",
|
|
"tippy.js": "^6.3.7",
|
|
"use-scramble": "^2.2.15",
|
|
"vaul": "^1.1.2",
|
|
"zod": "^3.24.2",
|
|
"zustand": "^5.0.3"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3",
|
|
"@ngard/tiny-isequal": "^1.1.0",
|
|
"@svgr/webpack": "^8.1.0",
|
|
"@tailwindcss/postcss": "^4",
|
|
"@types/culori": "^2.1.1",
|
|
"@types/next": "^9.0.0",
|
|
"@types/node": "^20",
|
|
"@types/pg": "^8.11.13",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"drizzle-kit": "^0.31.0",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "15.3.0",
|
|
"husky": "^9.1.7",
|
|
"prettier": "^3.5.3",
|
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
"raw-loader": "^4.0.2",
|
|
"tailwindcss": "^4",
|
|
"tsx": "^4.19.3",
|
|
"tw-animate-css": "^1.2.5",
|
|
"typescript": "^5"
|
|
}
|
|
}
|