new file: src/config.js
new file: src/content.js
new file: src/file-upload.js
new file: src/models.js
new file: src/page-reader.js
new file: src/storage.js
new file: src/tts.js
new file: src/ui.js
modified: uncloseai.js
new file: uncloseai.js.orig
Exposed , , , , , , , , , and functions to the global object. This resolves issues when these functions are called directly from HTML attributes, particularly in .
This commit introduces a function to generate unique localStorage keys based on the current page's URL. This key is now used for storing and retrieving conversation history, ensuring that each page maintains its own isolated chat thread. The Hermes introduction already uses a content-based hash for per-page caching, and this change aligns the conversation history with that behavior. Additionally, clearing the conversation history now only affects the current page and correctly repopulates the Hermes introduction for that page.
- Add .uncloseai class support with data-features configuration
- Create shared utility functions for buttons, chat messages, TTS controls, voice selects, and modal headers
- Refactor class-based feature creators to use shared utilities
- Add comprehensive documentation for class-based integration in index.html
- Add live examples of class-based usage in demo.html
- Maintain backward compatibility with existing floating button and API functions
- Fixed TTS modal z-index detection after dialog conversion (hermes-modal vs hermes-modal-backdrop)
- Added 60% scale transform to modal when custom styling disabled for better fit
- Reduced chat area minimum heights (300px->200px, 250px->150px) for more compact layout
- Modal now appears properly sized for PureCSS framework integration
- Changed Hermes modal from div+backdrop to proper dialog element like TTS modal
- Removed inline CSS when custom styling disabled, using semantic classes instead
- Added uncloseai-controls and uncloseai-button-group classes for framework styling
- Modal now properly inherits CSS framework styling without hardcoded backgrounds
- Cleaner separation between custom styling and framework integration
- Increased floating button width from 80px to 120px for better proportions
- Added proper minimum heights to chat areas for PureCSS sites
- Removed hardcoded white background from modal to respect dark theme
- Improved spacing and padding for framework consistency
Applied conditional styling to Hermes modal header, container, title, close button, and send button. Modal now properly inherits framework styling when UNCLOSEAI_CUSTOM_STYLING is false, removing gradients and custom fonts for clean PicoCSS integration.
- Added USE_CUSTOM_STYLING configuration flag to uncloseai.js
- TTS modal now uses clean HTML elements when custom styling disabled
- Updated index.html and demo.html to disable custom styling
- This repo will now use clean PicoCSS styling instead of custom gradients
- Other sites can still enable custom styling by setting window.UNCLOSEAI_CUSTOM_STYLING = true
- Consolidated duplicate TTS modals into single function with smart z-index
- Updated floating button to be theme-aware (black/white based on dark mode)
- Added toggle functionality to floating button (click to open/close modal)
- Fixed voice controls layout with proper line breaks
- Redesigned TTS modal with consistent styling matching site theme
Added always-on floating 'uncloseai.' button in bottom right corner that provides quick access to all AI skills: Chat, Read Page, TTS Anything, Upload File, and Refresh Models. Button uses ChunkFive font and gradient styling with smooth animations.