* feat: new payment
* update
* update
* update
* update
* feat: enhance plan feature formatting and update localization strings
* update
* update
* update
* update
* refactor: remove NeedActivationToast and related activation modal logic
* update
* feat(settings): guard paid settings
Centralized paid-level metadata in @follow/shared and exposed the SettingNamespace union.
Updated the builder helpers and every settings tab to pull paid badges from that shared map.
Hardened the atoms helper to block writes and surface default values when a user lacks the required role.
Added the necessary workspace dependencies for the atoms package.
* fix: types
* feat(rate-limit-notice): update error messaging and add upgrade prompt
* feat(settings): integrate review checks into settings components
* update
* fix(plan): correct priority calculation in setting page data
* feat(ai-summary): add upgrade suggestion for AI summary when plan is insufficient
* feat(settings): enhance PaidBadge component to conditionally render based on MAS review status
---------
Co-authored-by: DIYgod <i@diygod.me>
- Added functionality to scroll to the top of the EntryContent when the animation starts, utilizing the springScrollTo utility.
- Removed unused zenMode method from the RenderGlobalContext interface to clean up the code.
These changes enhance the user experience by ensuring the content is visible upon entry and streamline the codebase by removing unnecessary methods.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a custom hook `useUnSavedBlocker` to prompt users about unsaved changes when navigating away from the action settings.
- Updated the `SettingModalLayout` component to use a new shadow class for better visual consistency.
- Enhanced localization by adding a new translation key for unsaved changes in the English locale.
- Refactored shadow styles in Tailwind CSS to utilize CSS variables for improved maintainability.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a comprehensive glassmorphic design system to enhance visual hierarchy in UI elements such as modals, toasts, and floating panels.
- Added detailed design principles, color usage guidelines, and component structure examples to AGENTS.md.
- Updated AISmartSidebar component to utilize layered glass effects and smooth animations.
- Enhanced CSS styles for glassmorphic elements, ensuring performance optimizations and accessibility considerations.
These changes aim to elevate the user experience through refined aesthetics and improved interaction dynamics.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the ACCENT_COLOR_MAP definition to use a type-safe approach with `satisfies`.
- Updated the fallback color in `getAccentColorValue` function from `blue` to `orange` for consistency in accent color handling.
Signed-off-by: Innei <tukon479@gmail.com>
- Bump version of `@follow-app/client-sdk` to 0.3.69 in `pnpm-lock.yaml` and `pnpm-workspace.yaml`.
- Update `@folo-services/ai-tools` version to 0.2.44 in `apps/desktop/layer/renderer/package.json`.
- Modify Vite configuration to exclude `@follow-app/client-sdk` from optimization.
- Refactor translation hooks to use `enabled` instead of `setting` for clarity.
- Introduce a new utility function `readNdjsonStream` for handling NDJSON streams in the store module.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the ChatShortcutsRow component to include logic for displaying shortcuts based on the AI page context.
- Added a new target option for shortcuts to be displayed specifically on the AI page.
- Modified the ShortcutModalContent to allow users to select the AI page as a target for shortcuts.
- Updated localization files to include new translations for the AI page shortcut target.
Signed-off-by: Innei <tukon479@gmail.com>
- Modified the isEmpty method in both ChatInput and LexicalRichEditor components to check if the editor's content is empty by verifying if the trimmed text content is an empty string.
- Added an accessories prop to LexicalRichEditor for improved flexibility in rendering additional UI elements.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a CustomColorPicker component to allow users to select custom hex colors for the accent color.
- Updated the AccentColorSelector to integrate the new color picker with a popover for better user experience.
- Enhanced the getAccentColorValue function to handle custom colors and return appropriate values for light and dark themes.
- Adjusted styles and icons for improved visual consistency.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated Shortcut components to include icon rendering and a command prefix for better user experience.
- Modified shortcut trigger patterns to use '/' instead of '#' for consistency across the application.
- Added new icon selection feature in ShortcutModalContent for improved customization.
- Updated localization files to include new icon-related strings.
Signed-off-by: Innei <tukon479@gmail.com>
Added AutoLinkPlugin and TabIndentationPlugin to the LexicalRichEditor for improved user experience. Introduced ExitCodeBoundaryPlugin to manage caret behavior when exiting code contexts and TripleBacktickTogglePlugin for toggling code blocks. Updated node imports and types to support these new features, enhancing the editor's capabilities.
Signed-off-by: Innei <tukon479@gmail.com>
Updated the ChatInput and LexicalRichEditor components to streamline the logic for determining if the editor is empty. The isEmpty state now directly utilizes the $getRoot().isEmpty() method, enhancing code clarity and maintainability. Removed unnecessary text content checks in favor of a more efficient approach.
Signed-off-by: Innei <tukon479@gmail.com>
Updated the ChatInput and EditableMessage components to set a fixed height for the LexicalRichEditor, improving the layout consistency. Additionally, refactored the AITaskModal to manage prompt state outside of react-hook-form, allowing for better control over the prompt length and submission handling.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced `[text-autospace:auto]` with `autospace-normal` class in ListItem, EntryTitle, and ArticleLayout components to standardize text spacing.
- Added a new utility class `autospace-normal` in tailwind.css to ensure consistent text rendering across the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the import path for the AIShortcutButton component to the new location.
- Introduced a more flexible gradient handling function that adapts based on the dark/light mode.
- Removed the old AIShortcutButton component file as it is no longer needed.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the prompt input field with additional padding for better usability.
- Added size prop to the Switch component, allowing for small and medium sizes.
- Adjusted styles for the Switch component to accommodate the new size options, ensuring consistent appearance across different sizes.
Signed-off-by: Innei <tukon479@gmail.com>