…port
Browser (data-browser-panes.js): panes are now offered containers as well as
single resources. render() may be async and may return null to decline, in
which case the browser falls through to the folder table / JSON (no regression
for ordinary folders). h gains isContainer, path, children, and an async
fetchResource(url) helper so a pane can render a collection.
Collection pane (examples/panes/bookmark-collection.js): canHandles the
/public/bookmark/ container and renders its bookmark:Bookmark members as a
searchable feed — compact cards (favicon, title, host, summary snippet, tags),
a live search box (inline oninput, no script tag), card body -> the bookmark's
.jsonld detail page, corner arrow -> the original link. Returns null when the
folder holds no bookmarks.
No version bump: the browser change lands on gh-pages but won't reach the cdn
until a future publish; pods can use it via a --mashlib-module override.
Refs #73
Closes #73. Follow-up to #69/#71/#72.
Browser (data-browser-panes.js)
Panes are now offered containers as well as single resources:
Resource panes (keyed on @type) don't match containers; a container pane that doesn't recognise a folder returns null. Net: no regression for existing folders.
Collection pane (examples/panes/bookmark-collection.js)
canHandles the conventional /public/bookmark/ container and renders its bookmark:Bookmark members as a searchable feed:
No version bump
Deliberately not bumping. data-browser-panes.js lands on gh-pages but won't reach the cdn until a future publish; running pods can pick it up via a --mashlib-module override until then.
Testing
Verified against a live pod with three enriched bookmarks: collection renders all members + count, search filters correctly, declines empty/other folders, card→detail and corner→original links resolve. node --check passes.