a gallery is a carousel

It always rendered as one — data-carousel, a snap track, two arrows, driven by
carousel.client.js. The entity was the last thing still calling it something
else, and that collided with the site's own Gallery section: two nav rows
reading Gallery and Galleries, meaning a list of objects and a list of
photograph sets.

GalleriesPanel, GalleryPicker and GalleryItems become Carousels*, the endpoint
becomes /fofos-admin/carousels, the block kind becomes carousel and
subject-gallery becomes subject-carousel. The publish allowlist follows the
renamed tables.

What did NOT move: GALLERY_CONFIG at /fofos-admin/gallery, subjects.ts's
base '/gallery', and home_gallery_media. Those are the Gallery section and the
legacy rows, and both are correct.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-04 18:01:15 +01:00
co-authored by Claude Opus 5
parent 5e5c06e76e
commit 15042ccc76
19 changed files with 148 additions and 148 deletions
+2 -2
View File
@@ -18,7 +18,7 @@ import { DEFAULT_SECTION, isSectionKey, type SectionKey } from './sections';
* ── Why the pathname and not `useParams` ──
*
* Which parameters exist depends on which route matched: `/fofos-admin/layout/header` has a `band` and
* `/fofos-admin/galleries` has nothing. A panel would then have to know its own route to read its own
* `/fofos-admin/carousels` has nothing. A panel would then have to know its own route to read its own
* position, and every panel is rendered on all of them.
*
* Two segments after the mount, always in the same places. One reader, every route.
@@ -58,7 +58,7 @@ export const useNav = (): {
* A link to a section, or to something inside one.
*
* The query string is dropped, and that is the point rather than an omission. `?device=tablet` is how
* you are looking at the Layout preview; carrying it into Galleries would be state from one screen
* you are looking at the Layout preview; carrying it into Carousels would be state from one screen
* deciding something on another. A panel that wants a parameter to survive says so at its own link.
*/
export const href = (