The unified preset library views for a host-built AudioModuleFacePresetLibrary (factory, every sampler bank, user and community presets). usePresetLibrary is the one headless controller: search, a groups-column scope (All, Favorites, User, host groups), AND tag filters and favorites, with filtering, tag counts and previous/next over the CURRENT filtered list taken from the audio-contracts helpers; it persists nothing but an optional per-viewer scope. PresetLibrarySelector drives the compact PresetSelector from the library with a modified marker, Save and Browse (offered past 30 entries or when the host asks). PresetBrowser is an overlay sheet INSIDE the face (nearest [data-preset-overlay-container] or [data-module-face-surface]): groups column with counts, a windowed Name / group / secondary / tags list with favorite hearts, the reused TagBrowser as the tags column, and a Save / Delete / previous / next / close toolbar; arrows move, Enter selects and closes, Space selects, F favorites, / searches, Escape clears then closes; below 640 px the side columns become drawers with removable filter chips. PresetLibraryNavigator is the library as a sidebar beside the face that grows with its width: drilled down (a groups view as a list with thumbnails or picture cards from group.artwork, then the open group's presets) while narrow, groups beside presets once wide (half and half, with a draggable divider), and the tags as a third column when wider still and the face allows it; a whole-library search over names and tag labels (a magnifier button until opened, / to focus), a header slot for the face's own selector and an Expand/Collapse button; opening a group lands on its first preset (or keeps the active one). PresetSaveDialog names the sound, picks up to 8 vocabulary tags, offers Overwrite for the viewer's own preset, and shows the host's pending/error/success answer inline. Every action is a request the host fulfils.
pnpm dlx shadcn@latest add "https://pluginui.com/r/core-preset-browser.json"