{"tenant":"pointsav","theme":"pointsav-brand","count":37,"components":[{"name":"badge","display_name":"Badge","description":"A small, inline status indicator. Carries a short label and a tone.","category":"components","registry_path":"/r/badge.json","usage_path":"/components/badge/usage/","variants":["neutral","primary","positive","caution","critical"]},{"name":"brand-family-swatch","display_name":"Brand-Family Swatch","description":"Taxonomic swatch rendering a brand-family identifier as a coloured dot + label chip. Visual primitive for the Department / Hardware / Warehouse Club retail taxonomy. Taxonomy-agnostic: customers can extend via runtime taxonomy file (leapfrog invention #5). Reference implementation: gis.woodfinegroup.com (v0.1.94).","category":"map","registry_path":"/r/brand-family-swatch.json","usage_path":"/components/brand-family-swatch/usage/","variants":["inline-chip","map-marker","cluster-centroid-ring","filter-row","drawer-header-badge"]},{"name":"breadcrumb","display_name":"Breadcrumb","description":"Hierarchy trail to the current page. Useful when nested deeper than two levels.","category":"components","registry_path":"/r/breadcrumb.json","usage_path":"/components/breadcrumb/usage/","variants":[]},{"name":"button","display_name":"Button","description":"A trigger that initiates an action. Five variants — primary, secondary, ghost, critical, link — each with its own emphasis and use context.","category":"components","registry_path":"/r/button.json","usage_path":"/components/button/usage/","variants":["primary","secondary","ghost","critical"]},{"name":"checkbox","display_name":"Checkbox","description":"Boolean choice. Use when each option is independent of the others.","category":"components","registry_path":"/r/checkbox.json","usage_path":"/components/checkbox/usage/","variants":[]},{"name":"chip-row","display_name":"Chip Row","description":"Inline horizontal chip group with semantic variants. Each chip carries a small monospace label prefix + value, rendered as an inline-flex element with constrained height and consistent border-radius.","category":"components","registry_path":"/r/chip-row.json","usage_path":"/components/chip-row/usage/","variants":["default","primary","accent","neutral","warning","success"]},{"name":"citation-authority-ribbon","display_name":"Citation Authority Ribbon","description":"Source-type differentiation badges on references section entries. Six fixed source classes — academic (A, blue) / regulator (R, green) / industry (I, warm-gray) / direct-source (D, teal) / news (N, cool-gray) / web-informal (W, outline). data-source-authority attribute is the canonical machine-readable surface. JSON-LD @type refinement on citation entries. Addresses Wikipedia's flat numeric references list weakness.","category":"wiki","registry_path":"/r/citation-authority-ribbon.json","usage_path":"/components/citation-authority-ribbon/usage/","variants":[]},{"name":"code-block-with-copy","display_name":"Code Block with Copy","description":"Pre-formatted code block with an inset copy-to-clipboard button that fades in on hover. Uses navigator.clipboard.writeText with a textarea fallback. 'Copied' indicator shows for 1.4 s then reverts.","category":"components","registry_path":"/r/code-block-with-copy.json","usage_path":"/components/code-block-with-copy/usage/","variants":[]},{"name":"country-filter-chips","display_name":"Country Filter Chips","description":"Horizontal radiogroup of country chips that filter map data and flyTo the selected country's bounds. Default state is ALL (no filter, world view). Single exclusive selection; future multi-select variant planned. Reference implementation: gis.woodfinegroup.com (v0.1.94).","category":"map","registry_path":"/r/country-filter-chips.json","usage_path":"/components/country-filter-chips/usage/","variants":["default","multi-select"]},{"name":"edit-on-github-link","display_name":"Edit on GitHub Link","description":"Footer link to the source markdown of the current page on GitHub. Surfaces the substrate's open-source posture and invites contribution. Typically rendered as a small secondary link with a pencil icon or 'Edit this page' label.","category":"components","registry_path":"/r/edit-on-github-link.json","usage_path":"/components/edit-on-github-link/usage/","variants":[]},{"name":"empty-state-card","display_name":"Empty State Card","description":"Dashed-border card for surfaces with no data yet. Title in display-serif; body in body-sans; optional inline links separated by whitespace (not bullets). Used for index pages with no entries, dashboard panels awaiting data, and search results with no matches.","category":"components","registry_path":"/r/empty-state-card.json","usage_path":"/components/empty-state-card/usage/","variants":[]},{"name":"freshness-ribbon","display_name":"Freshness Ribbon","description":"Per-section last-content-review date badge on each section heading (right end, after [edit] pencil). Three-stop colour scale: fresh (green, ≤90 days) / stale (amber, 91–365 days) / archived (gray, >365 days). Data source: git-blame at section level (excluding whitespace-only commits) or frontmatter content_reviewed_on override. dateModified per-section WebPageElement JSON-LD emission.","category":"wiki","registry_path":"/r/freshness-ribbon.json","usage_path":"/components/freshness-ribbon/usage/","variants":[]},{"name":"home-grid","display_name":"Home Grid","description":"9-card responsive category browse grid for the documentation wiki home page. Always renders all 9 ratified categories regardless of article count — including empty categories with '0 articles — in preparation' placeholder. 3-col → 2-col (960px) → 1-col (640px). Carbon Tile pattern extended with a top-3 child list + 'More →' link per card.","category":"wiki","registry_path":"/r/home-grid.json","usage_path":"/components/home-grid/usage/","variants":["populated","empty"]},{"name":"input-text","display_name":"Text input","description":"Single-line text entry with label, helper text, and error state.","category":"components","registry_path":"/r/input-text.json","usage_path":"/components/input-text/usage/","variants":[]},{"name":"link","display_name":"Link","description":"A navigation primitive — moves the user to a destination without state change.","category":"components","registry_path":"/r/link.json","usage_path":"/components/link/usage/","variants":[]},{"name":"machine-surface-footer","display_name":"Machine Surface Footer","description":"Three-column footer for PointSav machine surfaces (design.pointsav.com, showcase instances, etc.). Columns: brand identity (left), machine surface links (/tokens.json, /components, /research, /healthz), substrate provenance (Doctrine claims, standards floor). Small monospace section headings (11 px caps); body at 14 px; canonical-URL base bar at 12 px muted monospace.","category":"components","registry_path":"/r/machine-surface-footer.json","usage_path":"/components/machine-surface-footer/usage/","variants":[]},{"name":"map-side-drawer","display_name":"Map Side Drawer","description":"Persistent right-side info drawer for map feature detail. Slides in on feature click; stays visible while map remains interactive. Replaces popup-on-marker pattern with a complementary panel. Reference implementation: gis.woodfinegroup.com (v0.1.94).","category":"map","registry_path":"/r/map-side-drawer.json","usage_path":"/components/map-side-drawer/usage/","variants":["default","comparison"]},{"name":"map-stats-panel","display_name":"Map Stats Panel","description":"Floating data-display panel showing aggregate statistics for the current filtered map view. Always visible; updates reactively when filters (country chips, family checkboxes) change. Positioned top-right to avoid collision with map zoom controls. Reference implementation: gis.woodfinegroup.com (v0.1.94).","category":"map","registry_path":"/r/map-stats-panel.json","usage_path":"/components/map-stats-panel/usage/","variants":["default","compact","wide","with-sparkline"]},{"name":"navigation-bar","display_name":"Navigation bar","description":"Page-level navigation header. Logo, primary nav, optional actions, optional account menu.","category":"components","registry_path":"/r/navigation-bar.json","usage_path":"/components/navigation-bar/usage/","variants":[]},{"name":"notification","display_name":"Notification","description":"Inline messaging — informational, positive, caution, critical. Toast variant subsequent milestone.","category":"components","registry_path":"/r/notification.json","usage_path":"/components/notification/usage/","variants":["info","positive","caution","critical"]},{"name":"preview-frame","display_name":"Preview Frame","description":"Bordered surface for previewing component recipes. Carries a data-theme attribute (light/dark) on the container. Toolbar with two toggle buttons in the top-right; JS flips data-theme and updates aria-pressed on each toggle.","category":"components","registry_path":"/r/preview-frame.json","usage_path":"/components/preview-frame/usage/","variants":[]},{"name":"research-trail-footer","display_name":"Research Trail Footer","description":"Collapsible bottom-of-article epistemic-frontier disclosure. Three fixed subsections: Research done / Suggested research / Open questions. Collapsed by default; summary line shows counts ('N done · N suggested · N open question(s)'). Native <details>/<summary> — no JS needed. Emits JSON-LD potentialAction nodes (SearchAction + Question). Doctrine claim #39 at article scale.","category":"wiki","registry_path":"/r/research-trail-footer.json","usage_path":"/components/research-trail-footer/usage/","variants":["collapsed","expanded","suppressed"]},{"name":"select","display_name":"Select","description":"Single-choice picker from a known list. Native <select> element for keyboard + screen-reader behaviour out of the box.","category":"components","registry_path":"/r/select.json","usage_path":"/components/select/usage/","variants":[]},{"name":"sidebar-accordion","display_name":"Sidebar Accordion","description":"Collapsible categorised left-rail navigation. Sections labelled with small monospace caps; items as horizontally-padded links with an active state (2 px left border in brand accent + soft accent-tint background).","category":"components","registry_path":"/r/sidebar-accordion.json","usage_path":"/components/sidebar-accordion/usage/","variants":["default"]},{"name":"surface","display_name":"Surface","description":"A container that groups related content. Three elevation levels — subtle, base, elevated — communicate visual hierarchy without coupling to specific use cases.","category":"components","registry_path":"/r/surface.json","usage_path":"/components/surface/usage/","variants":["subtle","base","elevated"]},{"name":"switch","display_name":"Switch","description":"On/off toggle for settings that take effect immediately. Use when the action is reversible and binary.","category":"components","registry_path":"/r/switch.json","usage_path":"/components/switch/usage/","variants":[]},{"name":"tab","display_name":"Tab","description":"URL-reflected page-section navigation. Each tab is a separate route; state lives in the URL, not in client memory.","category":"components","registry_path":"/r/tab.json","usage_path":"/components/tab/usage/","variants":[]},{"name":"tab-bar-disclosure","display_name":"Tab Bar (Disclosure)","description":"Tabs implemented as <details> elements, progressively enhanced by JS to behave as a tabset (opening one closes others; deep-link via #fragment). Zero-JS baseline: all panels accessible via expand/collapse. Distinct from ps-tab (URL-reflected routing pattern) — use this when content is in-page and JS may be unavailable.","category":"components","registry_path":"/r/tab-bar-disclosure.json","usage_path":"/components/tab-bar-disclosure/usage/","variants":[]},{"name":"wiki-article-footer","display_name":"Wiki Article Footer","description":"Bottom-of-article surface: category tags, references/citations section, and an edit-on-github link. Separates editorial metadata from article body.","category":"wiki","registry_path":"/r/wiki-article-footer.json","usage_path":"/components/wiki-article-footer/usage/","variants":["standard","no-references"]},{"name":"wiki-article-header","display_name":"Wiki Article Header","description":"Top-of-article surface: slug breadcrumb, H1 title (from frontmatter), quality badge, and byline (last edited + editor + history link). Maps Wikipedia article-header muscle-memory using IBM Plex Sans at 2.25rem h1.","category":"wiki","registry_path":"/r/wiki-article-header.json","usage_path":"/components/wiki-article-header/usage/","variants":["standard","with-lead-image","with-infobox","ungraded"]},{"name":"wiki-badge-tag","display_name":"Wiki Badge / Tag","description":"Dual-purpose chip: (1) article quality grade (Featured/Good/A/B/C/Stub), (2) category tag links. Inline, pill-shaped. Used by wiki-article-header (quality badge) and wiki-article-footer (category tags).","category":"wiki","registry_path":"/r/wiki-badge-tag.json","usage_path":"/components/wiki-badge-tag/usage/","variants":["quality-grade","category-tag"]},{"name":"wiki-dark-mode-toggle","display_name":"Wiki Dark Mode Toggle","description":"Button that toggles data-theme='dark' on the <html> element and persists the choice in localStorage. Initialises from localStorage on load, then falls back to prefers-color-scheme.","category":"wiki","registry_path":"/r/wiki-dark-mode-toggle.json","usage_path":"/components/wiki-dark-mode-toggle/usage/","variants":["icon-only","icon-and-label"]},{"name":"wiki-drawer-mobile-nav","display_name":"Wiki Drawer (Mobile Navigation)","description":"Slide-in overlay navigation for compact (≤799px) viewports. Hamburger trigger opens a full-height left drawer containing the wiki site nav. Uses HTML inert attribute to lock the background DOM.","category":"wiki","registry_path":"/r/wiki-drawer-mobile-nav.json","usage_path":"/components/wiki-drawer-mobile-nav/usage/","variants":["closed","open"]},{"name":"wiki-modal-dialog","display_name":"Wiki Modal Dialog","description":"Native <dialog> element modal with showModal() focus trap. Used for image lightbox, search overlay, and confirmation prompts. Dismisses on Escape or backdrop click.","category":"wiki","registry_path":"/r/wiki-modal-dialog.json","usage_path":"/components/wiki-modal-dialog/usage/","variants":["default","image-lightbox","search-overlay"]},{"name":"wiki-pagination","display_name":"Wiki Pagination (Prev/Next)","description":"Prev/Next article navigation within a wiki category. Three-column grid: prev article (left), category link (centre), next article (right). NOT numbered-page pagination. Keyboard navigable via native <a> elements.","category":"wiki","registry_path":"/r/wiki-pagination.json","usage_path":"/components/wiki-pagination/usage/","variants":["full","first-article","last-article","only-article"]},{"name":"wiki-search-results","display_name":"Wiki Search Results","description":"Ordered list of search hits: article title link + plain-text excerpt (~180 chars). Zero-results state with a prompt to try different terms. Backed by the Tantivy JSON-RPC endpoint at /mcp (see research note).","category":"wiki","registry_path":"/r/wiki-search-results.json","usage_path":"/components/wiki-search-results/usage/","variants":["with-results","zero-results"]},{"name":"wiki-toc-sidebar","display_name":"Wiki Table of Contents Sidebar","description":"Sticky right-rail sidebar listing article headings (H2/H3). Active section highlighted via IntersectionObserver. Collapses to an inline toggle on compact viewports.","category":"wiki","registry_path":"/r/wiki-toc-sidebar.json","usage_path":"/components/wiki-toc-sidebar/usage/","variants":["desktop","mobile"]}]}