Skip to content

feat(ui): redesign filter popovers for compact, consistent styling#2261

Merged
ejsmith merged 14 commits into
mainfrom
predefined-saved-views
May 27, 2026
Merged

feat(ui): redesign filter popovers for compact, consistent styling#2261
ejsmith merged 14 commits into
mainfrom
predefined-saved-views

Conversation

@ejsmith

@ejsmith ejsmith commented May 27, 2026

Copy link
Copy Markdown
Member

What changed

Merges the filter popover redesign from PR #2260 (which was accidentally targeted at predefined-saved-views instead of main).

  • Filter action buttons → replaced bulky text buttons with icon buttons + tooltips
  • Date range picker → rewritten from 420px tabbed interface to compact flat list
  • Text/keyword/number filter inputs → added proper padding
  • Keyword filter → added spellcheck="false"
  • Filter builder footer → icon button treatment
  • Immediate apply → multi-select/dropdown/boolean filters apply instantly on click
  • Sidebar org switcher → tightened spacing

Why

PR #2260 targeted predefined-saved-views as the base branch instead of main.

ejsmith added 14 commits May 24, 2026 00:48
…anagement

- Fix scrollbar shift when detail panel opens by moving scroll ownership
  from html to the content area div (html overflow:hidden + scrollbar-gutter-stable)
- Add Page Up/Down keyboard navigation to command palette
- Fix command palette item sticking by wrapping results in {#key} block
- Style detail sheet headers (text-2xl, semibold, tracking-tight)
- Extract column management into dedicated two-panel dialog
- Add green gradient accent to stack card
- Simplify navbar padding and gap classes
- Left-align faceted filter action buttons and remove redundant Close button
- Remove dynamic 'Details' children from sidebar navigation routes
- Clean up dead column drag/toggle code from saved-view-picker
# Conflicts:
#	src/Exceptionless.Web/ClientApp/src/lib/features/saved-views/components/saved-view-picker.svelte
Multi-select, drop-down, and boolean filters now apply instantly when
a value is selected instead of waiting for the popover to close.
Escape still reverts to the previous state. Text-based filters (keyword,
string, number) remain apply-on-close since typing requires completion.
The builder's filterChanged was clearing lastOpenFilterId which forced
the popover closed whenever a filter value changed. Since filters now
apply immediately, the popover should stay open.
…2260)

* feat: apply filters immediately and keep popover open during selection

- Change faceted-filter-builder to use \.pre with facet reuse,
  preserving open state across reactive filter updates
- Replace page.url.searchParams checks with direct queryParams reads
  to eliminate double data-fetch caused by 200ms URL debounce
- Prevent onFocusOutside from closing filter popovers
- Add isNew pattern in onFilterChanged to avoid reassigning filters
  for existing (mutated-in-place) filter updates
- Remove dead filterCacheVersion and unused applyAndClose functions

* feat(ui): redesign filter popovers for compact, consistent styling

- Replace text action buttons with icon buttons + tooltips
- Redesign date range picker from tabbed 420px to compact flat list
- Add padding around text/keyword/number filter inputs
- Add spellcheck=false to keyword filter input
- Update filter builder footer to use icon buttons
- Clean up unused quickRanges prop from date picker

* style: tighten sidebar org switcher spacing
@ejsmith ejsmith merged commit 4c22417 into main May 27, 2026
5 checks passed
@ejsmith ejsmith deleted the predefined-saved-views branch May 27, 2026 19:07
@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Web 73% 62% 3920
Exceptionless.AppHost 18% 9% 82
Exceptionless.Insulation 25% 23% 203
Exceptionless.Core 69% 63% 7777
Summary 68% (13475 / 19788) 61% (7086 / 11526) 11982

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant