* fix: adds correct fallback for dates to avoid console error * fix: resolves a TODO by using UmbStringState over rxjs Subject * Refactor log viewer search to use UmbStringState and improve architecture - Replace RxJS Subject with UmbStringState to follow Umbraco patterns - Move debounced search observation to messages list component - Only triggers when component is mounted (logs are visible) - Prevents unnecessary API calls on other views - Simplify search input to just update context state - Add semantic form structure with role="search" for accessibility - Add visually-hidden submit button for keyboard navigation - Allow re-running same query via form submission (bypasses debounce) - Follow same architecture pattern as date range selector This resolves the TODO to not use RxJS directly and significantly improves separation of concerns where the data consumer (messages list) owns the fetching logic. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Add visible refresh button to log viewer search input - Add refresh button with icon-refresh next to save and clear buttons - Allows users to re-run search with same query (bypasses debounce) - Remove form structure that couldn't work due to Shadow DOM boundaries - Simplify parent component by removing form submission logic - Keep role="search" for accessibility The refresh button provides a more discoverable UI than the hidden submit button approach and avoids Shadow DOM event bubbling issues. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix debouncing by adding local state in search input - Add local UmbStringState to debounce user input (250ms) - Only update context filterExpression after debounce - Remove debouncing from messages list (now handled at input level) - Saved searches and refresh button still bypass debounce for immediate feedback This restores the expected debouncing behavior while maintaining the clean architecture where the messages list triggers searches based on context changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: cleans up in docs * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Umbraco CMS
Umbraco is a free and open source .NET content management system. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.
Learn more at umbraco.com
Looking to install Umbraco?
You can get started using the following commands on Windows, Linux and MacOS (after installing the .NET Runtime and SDK):
dotnet new install Umbraco.Templates
dotnet new umbraco --name MyProject
cd MyProject
dotnet run
Documentation
Our comprehensive documentation takes you from the fundamentals on how to start with Umbraco to deploying it to production.
Some important documentation links to get you started:
- Installing Umbraco CMS
- Getting to know Umbraco
- Tutorials for creating a basic website and customizing the editing experience
Backoffice Preview
Want to see the latest backoffice UI in action? Check out our live preview:
This preview is automatically deployed from the main branch and showcases the latest backoffice features and improvements. It runs from mock data and persistent edits are not supported.
Get help
If you need a bit of feedback while building your Umbraco projects, we are chatty on Discord. Our Discord server serves as a social space for all Umbracians. If you have any questions or need some help with a problem, head over to our dedicated forum where the Umbraco Community will be happy to help.
Looking to contribute back to Umbraco?
You came to the right place! Our GitHub repository is available for all kinds of contributions:
Umbraco is contribution-focused and community-driven. If you want to contribute back to the Umbraco source code, please check out our guide to contributing.
