feat(filters): per-row AND/OR (Excel-style chips) + browse-on-click value menus (user report)

- Per-rule connectives: the chip before each rule flips that rule
  between AND and OR — OR-joined neighbors merge into an invisible
  OR-block, AND pulls them back out. The tree stays the single source
  of truth (implicit blocks are a client marker the server ignores),
  so deep links, saved filters, and the composed engine are untouched.
  Group-mode pills are gone; explicit groups remain as pure structure
  (+ group). Compile limit, same as Excel: flat chips express
  AND-of-OR-groups; a top-level OR of AND-blocks still needs nesting.
- Browse-on-click: clicking an empty value box now fetches the field's
  top values UNDER the other rules (blank typed = browse, not a
  similarity filter) — 'assign an author, click Publisher, see their
  publishers' without typing. Server: the composed suggestion engine
  trims the typed query; client: the >=2-char guard no longer blocks
  the empty query, browse limit 15 vs 8 while typing.
- Tests: the browse case pinned (blank sentinel + rules → the field's
  values under those rules, zero-match values absent).
This commit is contained in:
John O'Keefe committed 2026-10-20 15:25:57 -04:00
1 parent 6f98ca4c22
commit c747f0a76c
7 files changed
+138 -36

No files matched your search

+5
View File
@@ -2080,3 +2080,8 @@
color: var(--accent);
border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
}
.fb-chip-static {
border-style: solid;
opacity: 0.7;
cursor: default;
}