* update package locks to avoid conflict
* Refactor AI Generation with AI SDK v5 (#210)
* refactor(wip): Whole Chat implementation
* fix: Deps
* chore: Update types and create tool to handle theme generation
* chore: Add hook and component to handle feedback text
* chore: Check for themeStyles in asssiatant metadata
* feat: Improve messages styles and feedback
* chore: Update react-hook-form deps
* chore: Improve Messages display
* chore: Show a banner when theme is generating
* chore: Optimize the Messages syncing
* feat: Add debug button to MessageActions in dev mode
* chore: messages
* chore: Improve System prompt + tools + utils
* fix: correctly display User messages with only images
* feat: Handle errors in UI and adapt to AI sdk
* feat: Use tool output instead of custom data parts
* chore: System prompt and schema context
* chore: Gemini 2.5 pro as the default model
* refactor: Change name to Chat Context and apply generated theme automatically
* chore: Update ai packages to latest version
* feat: Stop ongoing request before starting a new chat
* feat: Refactor logic for Scroll start/end sentinels
* feat: Improve UI streaming with AI Elements and Stream Text utils
* chore: Generate theme types and logic
* feat: Allow customize the speed of streaming text
* refactor: Theme generation utils
* fix: Avoid duplicated Mention references
* styles: Improve Chat error banner
* feat: Enhance Prompt core implementation
* feat: Implement enhance prompt in components
* chore: Add TODOS comments
* chore: Remove Openai provider
* chore: Update AI adk packages
* fix: Free request constant
---------
Co-authored-by: Sahaj Jain <82111591+jnsahaj@users.noreply.github.com>
* update lockfile
* fix import
* fix types
* chore: Trigger theme generation before transitioning to editor page
* refactor: Move AI sdk specific code into Lib and update imports
* chore: Provide model ID to record usage util
* refactor: Multi model provider convention
* fix types
* refactor: Use Zustand persist middleware versioning
* feat: Improve prompts and context
* feat: Optimize streaming JSONContent into text area
* chore: Improve Theme Generation prompt
* feat: Improve prompt
* feat: Add subscription checks for enhancing prompt and Posthog tracking
---------
Co-authored-by: Luis Llanes <137589205+llanesluis@users.noreply.github.com>
Co-authored-by: Luis Llanes <luisllaboj@gmail.com>
* chore: allow overriding ControlSection classNames
* feat: Support Google Fonts API and load fonts dynamically
* feat: Enforce System Prompt to use Google Fonts API if needed
* styles: Improve GoogleFontPicker styles
* feat: Pull Fonts from fileSystem instead of hitting the Google Fonts API every time
* feat: Improve System Prompt to reference Google Fonts
* refactor: Use Next.js Cache instead of manually fetching and reading from the filesystem
* feat: Only enable Font picker fetch when it's open
* chore: Remove JSON for Google Fonts catalogue
* feat: Scroll to selected font if it's already fetched and add clean search button
* chore: update imports
* fix: dashboard preview
---------
Co-authored-by: Luis Llanes <luisllaboj@gmail.com>
* fix: border radius and overflow in ImagePreview component
* fix: Proper support for SVGs and UI feedback when errors occur
* SVG files are treated and displayed as Images in the UI
* SVG files are processed as Markup Text to send to the API
* Remove support for GIFs
* chore: improve system prompt to handle SVGs properly
* styles: Add border radius to uploaded image preview when loading
* 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>
* feat: Support Tailwind CSS Color Palette in UI Color Pickers
* adding a hex function
* fixes position of color picker
* improve code and adding tailwindcss classes on typing
* refactor: simplify ColorPicker and adding Color Popover component
* remove state and ref
---------
Co-authored-by: Sahaj Jain <82111591+jnsahaj@users.noreply.github.com>
* refactor: Rename and break components into smaller components
* refactor: move ai utils to own folder and update imports
* feat: improve the AI context for theme generation
* fix: line breaks on CustomTextArea when shift + enter and when pasting a multiline prompt
* feat: improve 'create' example prompts for more consistent results
* Enhanced Editor (#100)
* refactor: editor page to improve responsiveness
* feat: add editor tab persistance to url
* chore: clean up classNames
* feat: enhance theme color-preview to make it responsive
* feat: add ai chat tab working with local state
* successful responses return a theme color-preview
* error responses return a generic message
* fix: invalid tabs fallback to default tab "colors"
* fix: remove messages scroll animation on tabs change and remove duplicate preview
* fix: minor fixes in classNames
* feat: Chat starts with a default message
* refactor: Enhance editor controls and toolbar buttons to disable when generating theme
- Updated button components to be extendible.
- Refactored buttons to utilize TooltipWrapper for consistent tooltip behavior.
* fix: sync controls tabs by 'value' instead of 'defaultValue'
* fix: load messages from local storage, otherwise set a default initial message
* fix: editor mention list positions correctly and add a tab handler for selecting mention
* fix: build errors due to unused imports
* chore: improve defaults and styles for ai chat interface and editor
* refactor: move AIChat state management to a zustand store
* feat: preserve control tab between edit mode and traditional editor mode
* feat: reset ai chat on editor reset button click
* feat: load chat messages dynamically to avoid layout shifts due to local storage
* fix: Use const id for default ai message to avoid re-render
* fix: Use searchParams for callback url as well after auth
* refactor: Remove unused getEditorConfig code
* feat: Only have 1 handler per postlogin action type
This was causing issues in AI Chat form. AI_GENERATE_FROM_CHAT action
was being scheduled twice because of re-render (caused by lazy-loaded
component)
* fix: Add user message for post login action
* refactor: Only use JSONContent in application state (derive textContent from it)
* feat: Auto-attach current theme to prompt after 1st user message
* feat: clean up AI interface and add community themes section
* feat: AI entrypoint redirect to main Editor and trigger theme generation
* chore: improve styles on ai page
* refactor: clean up AI components components from AI page and Editor page
* refactor: share repeated theme generation logic
* fix: chat messages inconsistent padding and pill buttons disabled state
* fix: build error
* feat: remove AI Generation Dialog and related logic
* feat: show agent response about the theme
* refactor: simplify theme generation logic and improve error handling
* refactor: transition from JSONContent to AIPromptData for theme generation
* feat: add retry functionality for user messages in AI chat interface
* refactor: remove unused loading fallback component and integrate loading indicator in chat messages
* change position of retry button
* feat: Improve system prompt
* refactor: replace createCurrentThemePrompt with attachCurrentThemeMention for improved prompt handling
* feat: add a placeholder for new chat and fix chat area styles
* chore: hide Community themes from AI page
* fix: build errors
* fix: ai theme generation only happens when there is content to be sent as the prompt
* feat: show AI tab in production
* fix: Early return after showing error message in ai chat
* feat: Attach last generated message instead of current theme for chat
* Use @ mentions in example prompts
* Enhance mention rendering in AI prompts and update mention styles in CSS
* skip posthog on dev
* Enhanced Editor (#100)
* refactor: editor page to improve responsiveness
* feat: add editor tab persistance to url
* chore: clean up classNames
* feat: enhance theme color-preview to make it responsive
* feat: add ai chat tab working with local state
* successful responses return a theme color-preview
* error responses return a generic message
* fix: invalid tabs fallback to default tab "colors"
* fix: remove messages scroll animation on tabs change and remove duplicate preview
* fix: minor fixes in classNames
* feat: Chat starts with a default message
* refactor: Enhance editor controls and toolbar buttons to disable when generating theme
- Updated button components to be extendible.
- Refactored buttons to utilize TooltipWrapper for consistent tooltip behavior.
* fix: sync controls tabs by 'value' instead of 'defaultValue'
* fix: load messages from local storage, otherwise set a default initial message
* fix: editor mention list positions correctly and add a tab handler for selecting mention
* fix: build errors due to unused imports
* chore: improve defaults and styles for ai chat interface and editor
* refactor: move AIChat state management to a zustand store
* feat: preserve control tab between edit mode and traditional editor mode
* feat: reset ai chat on editor reset button click
* feat: load chat messages dynamically to avoid layout shifts due to local storage
* fix: Use const id for default ai message to avoid re-render
* fix: Use searchParams for callback url as well after auth
* refactor: Remove unused getEditorConfig code
* feat: Only have 1 handler per postlogin action type
This was causing issues in AI Chat form. AI_GENERATE_FROM_CHAT action
was being scheduled twice because of re-render (caused by lazy-loaded
component)
* fix: Add user message for post login action
* refactor: Only use JSONContent in application state (derive textContent from it)
* feat: Auto-attach current theme to prompt after 1st user message
* feat: clean up AI interface and add community themes section
* feat: AI entrypoint redirect to main Editor and trigger theme generation
* chore: improve styles on ai page
* refactor: clean up AI components components from AI page and Editor page
* refactor: share repeated theme generation logic
* fix: chat messages inconsistent padding and pill buttons disabled state
* fix: build error
* feat: remove AI Generation Dialog and related logic
* feat: show agent response about the theme
* refactor: simplify theme generation logic and improve error handling
* refactor: transition from JSONContent to AIPromptData for theme generation
* feat: add retry functionality for user messages in AI chat interface
* refactor: remove unused loading fallback component and integrate loading indicator in chat messages
* change position of retry button
* feat: Improve system prompt
* refactor: replace createCurrentThemePrompt with attachCurrentThemeMention for improved prompt handling
* feat: add a placeholder for new chat and fix chat area styles
* chore: hide Community themes from AI page
* fix: build errors
* fix: ai theme generation only happens when there is content to be sent as the prompt
* feat: show AI tab in production
* fix: Early return after showing error message in ai chat
* feat: Attach last generated message instead of current theme for chat
* Use @ mentions in example prompts
* Enhance mention rendering in AI prompts and update mention styles in CSS
* fix: missing fade effect on chat messages scroll area and overflow in placeholder buttons
* feat: add user name from session to the chat placeholder component
* feat: Improve system prompt context
* chore: remove unnecessary context from example prompts
* feat: Enhance mention list with auto-scroll functionality and update prompt structures in no-messages placeholder
* feat: Add character limit for AI prompt input and integrate character count extension
* fix: Simplify prompt data handling in AI chat component and adjust textarea behavior during AI generation
* fix: Update theme state handling to include current mode in editor store
* chore: improve styles for consistency
* feat: add fun prompts to chat placeholder
* feat: add typography demo to preview panel
* feat: add responsive cards demo based on shadcn showcase
* fix: typography demo scroll area
* fix: build errors due to components refactor
* fix: wrap typography demo in ExamplesPreviewContainer
* feat: change default theme to match shadcn/ui default
* chore: move some theme previews into a dropdown to keep ui clean
---------
Co-authored-by: Luis Llanes <137589205+llanesluis@users.noreply.github.com>
Co-authored-by: Luis Llanes <luisllaboj@gmail.com>
* feat: add formatCompactNumber utility for compact number formatting
* Feature/save (#41)
* setup drizzle with better-auth
* switch to turso
* chore: better auth migrations
* feat: add basic signin signup auth
* update form uis
* remove emailAndPassword
* loading state for auth btns
* add theme routes and save function
* migrate to actions
* feat: Add dashboard page to view saved themes
* hook up delete theme functionality
* minor improvements
* feat(auth): add AuthDialogWrapper and integrate with existing components
* setup post login action to open save modal after login
* refactor action bar
* refactor
* add ability to open theme by id
* Use URL param for themeId
* feat(editor): improve theme loading and add theme editing actions component
* feat(theme): implement theme editing functionality with routing updates
* refactor: move to try-catch
* remove unused files for auth and theme routes
* fix build errors
* modify copies
* add theme limit
* fix: Recursive setstate
* fix: Save theme loading state
* feat: Implement theme checkpoint for better reset during editing
* reset theme after save/reset
* feat: Add privacy-policy page
* speed up nav using prefetch and loading with better loader
* refactor
* update dashbaord UI
* add quick apply to theme card
* switch to neon
* minor ui updates