feat(library): rebuild the browse header as a title row and one command bar

Library, smart scope, collection, authors and series pages share a new
BrowseHeader: the place and its actions on one row, then search, sort,
filters and facets in one bar that folds groups instead of wrapping.
Format chips count from the new POST /libraries/:id/books/facets, built
on the listing's own query; scopes and collections gain filter and sort.
This commit is contained in:
neon
2026-10-16 06:08:13 +00:00
parent 3a0c61ffbc
commit fdbdc8c990
57 changed files with 3998 additions and 1902 deletions
+18
View File
@@ -569,6 +569,24 @@ export const E2E_SUITES = Object.freeze({
...SHARED_DB_AND_HELPER_PATHS,
],
},
"browse-facets-invariant": {
id: "browse-facets-invariant",
name: "Browse Facets Invariant",
timeout: 45,
lane: "full",
description: "Asserts library browse facet counts match the listing totals for the same filter, search, and format",
vitestTarget: "test/browse-facets-invariant.e2e-spec.ts",
junitOutput: `${TEST_RESULTS_DIR}/browse-facets-invariant-e2e-junit.xml`,
prepareDedicatedDatabase: true,
useDedicatedDatabase: true,
changedPaths: [
"server/src/modules/book/**",
"server/src/modules/library/**",
"server/test/browse-facets-invariant.e2e-spec.ts",
...SHARED_TYPES_PATHS,
...SHARED_DB_AND_HELPER_PATHS,
],
},
"server-connection-identity": {
id: "server-connection-identity",
name: "Server Connection Identity",