- 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>
* feat: add image-only view setting and related UI updates
- Introduced a new setting for image-only view mode.
- Updated components to conditionally render based on the new setting.
- Added translations for the new feature in multiple languages.
* fix: changelog
- Renamed CSS class from `h-entry-header` to `h-top-header` for clarity and consistency.
- Introduced `h-top-header-with-border-b` for enhanced layout in `EntryListHeader`.
- Updated `RelativeTime` component to accept a `postfix` prop, allowing for more flexible date formatting.
- Adjusted instances of `RelativeTime` to utilize the new `postfix` prop for improved display.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated message sending logic to utilize a static editor instance for improved performance.
- Simplified the onSend function signature in WelcomeScreen and DefaultWelcomeContent components.
- Enhanced message part handling in the chat state and persistence services.
- Removed unused useSaveMessages hook to clean up the codebase.
Signed-off-by: Innei <tukon479@gmail.com>
- Added useElementWidth hook to observe and track the width of a referenced element using ResizeObserver.
- Updated ChatInterface and WelcomeScreen components to utilize the new hook for responsive layout adjustments.
- Enhanced AIDisplayEntriesPart and AIDisplayFeedsPart components with improved styling for better alignment and spacing.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced EntryPreviewCard and FeedPreviewCard components for enhanced hover previews.
- Implemented prefetching of entry details and feed information on hover.
- Updated AnimatedMarkdown to utilize the new hover preview components for better user interaction.
Signed-off-by: Innei <tukon479@gmail.com>
- Integrated `AnimatePresence` and `m` from `motion/react` into the `AIChainOfThought` component to improve the display of reasoning titles with smooth transitions.
- Updated the `ToolInvocationComponent` to accept a `variant` prop, allowing for tighter spacing when necessary.
- Refined the `ShinyText` component's styles for better visual effects and consistency across components.
These changes aim to enhance the user experience by providing smoother animations and improved layout flexibility in the AI chat interface.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the `ShinyText` component to support children and customizable shimmer width, improving flexibility in usage.
- Refactored styles for the `ShinyText` component to enhance the shine animation effect.
- Integrated the `ShinyText` component into the `AIChainOfThought` and `WelcomeScreen` components, ensuring consistent visual styling across the AI chat interface.
These changes aim to improve the visual appeal and maintainability of the components within the AI chat module.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new `CustomRangePicker` component within the `ContextMenuContent` to allow users to select custom date ranges.
- Enhanced the `DateTimePicker` to support range selection mode, enabling users to pick start and end dates.
- Integrated relative date options into the context menu, improving the flexibility of date mentions in the AI chat interface.
- Updated localization to ensure new date range options are translatable.
These changes aim to enhance user experience by providing more options for date selection in the AI chat context menu.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced manual checks for editable elements in global shortcuts with a utility function `detectIsEditableElement` for cleaner code and better maintainability.
- Updated `AIChatRoot` to use `LexicalRichEditorRef` for the input reference, enhancing type safety and consistency in the chat input handling.
- Integrated `AIPanelRefsContext` in `ChatInput` and `ChatInterfaceContent` to streamline access to the input reference across components.
- Removed the deprecated `animatedPlugin` file to clean up unused code.
These changes aim to enhance the overall structure and functionality of the AI chat interface, improving user experience and code maintainability.
Signed-off-by: Innei <tukon479@gmail.com>
- Integrated `ShinyText` into `AIChainOfThought` for improved visual feedback during reasoning.
- Updated `AIMessageParts` to conditionally render reasoning parts only if text is present, enhancing logic clarity.
- Introduced `useDeferredValue` for low-priority rendering of display parts, optimizing performance.
These changes aim to improve the user experience by providing clearer visual cues and more efficient rendering in the AI chat interface.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new `AIInnerReasoningPart` component to encapsulate the rendering logic for individual reasoning parts, enhancing modularity.
- Updated `AIChainOfThought` to utilize the new component and manage collapse state more effectively using a ref.
- Simplified the extraction of headings from reasoning text, improving readability and maintainability of the code.
These changes aim to enhance the user experience by providing clearer feedback during AI reasoning processes and improving the overall structure of the components.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced AGENTS.md to provide detailed, agent-focused guidance for working within the monorepo.
- Consolidated existing CLAUDE.md content and added new sections on project overview, setup commands, quality gates, code style, architecture, UI design tokens, and testing strategies.
- Established clear guidelines for component placement, reusable UI components, and agent workflows to enhance development consistency across applications.
This addition aims to streamline onboarding and improve collaboration among team members by providing a centralized resource for best practices and project structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Added Sentry for error reporting in the mobile application.
- Updated the app configuration to initialize Sentry with the necessary DSN and settings.
- Replaced Firebase Crashlytics with Sentry for error capturing in the ErrorBoundary component.
- Updated various workflows to include Sentry authentication token.
- Adjusted dependencies to use React Native version 0.79.6 and updated related packages.
This integration enhances the application's ability to track and manage errors effectively.
Signed-off-by: Innei <tukon479@gmail.com>