{
  "name": "Barua UI",
  "description": "An interface design system with Apple's design language, rebuilt natively for the web. Plain HTML and CSS, no build step.",
  "docs": "https://ui.barua.tz",
  "repository": "https://github.com/nassdaq/barua-ui",
  "mcp": {
    "url": "https://mcp.barua.tz/mcp",
    "transport": "streamable-http",
    "docs": "https://ui.barua.tz/docs/infrastructure.html#mcp"
  },
  "stylesheet": "https://ui.barua.tz/css/barua.css",
  "script": "https://ui.barua.tz/js/barua.js",
  "conventions": {
    "classes": ".b-block__element--modifier",
    "states": ".is-* alongside the matching ARIA attribute",
    "tokens": "--b-* custom properties; never raw hex or rgb in product code",
    "hooks": "data-b-* attributes, progressive enhancement only",
    "icons": "inline 20x20 SVG, 1.5px stroke, currentColor, from the icon library"
  },
  "rules": [
    "Compose from documented components. If a pattern is not in the docs, use a documented alternative or promote a new component into the docs first \u2014 never invent markup or CSS in product code.",
    "Copy the anatomy from the docs demo: same wrapper elements, same slots, same class combinations. A component's parts (__header, __body, __footer) only exist inside their block.",
    "Never hardcode colour, spacing, radius or shadow. Use --b-* tokens. A raw hex in product code is a bug.",
    "Inline styles are only for documented knobs (--v, --b-progress, --b-thumb-size, --b-heatmap-cols, --b-circular-size) and artwork backgrounds.",
    "Icons come from the icon library (docs/icons.html): inline 20x20 SVG, 1.5px stroke, currentColor, sized with .b-icon/--sm/--lg. Never emoji, never letters as icons. A directional mark inside a sentence is text, not an icon: the arrow in a .b-stat__delta stays. The rule governs icon slots, where a glyph stands on its own.",
    "Never use a native <select> or native date/time inputs in product surfaces: their popups cannot be styled. Use the menu select and the calendar-in-dropdown patterns.",
    "On desktop a surface does not page-scroll. Use .b-stage for screens that must fit, and .b-scroll-area for the panes that may grow.",
    "A scroll pane's children must never be forced to the pane's height (no h-full inside a scroll area) or scrolling silently dies.",
    "Hover, selection and active are different states and must look different: hover is a quiet fill, selection is accent-soft, focus is the focus ring.",
    "Dashboards: name the one question the screen answers before laying anything out. Pick an archetype \u2014 overview, monitoring, analytics, work queue, record, console \u2014 because variety comes from choosing a different one, not from decorating the same one.",
    "A dashboard has five layers read top to bottom, each answering the same question at a different depth \u2014 what, then why, then what now: 1 context (title, period, filters), 2 verdict (three or four figures), 3 evidence (one dominant chart plus a companion, e.g. spans 8 and 4), 4 detail (lists and tables), 5 tail (links out). Four or five layers is a page; six is two pages pretending to be one. A figure led 40 of 51 surveyed pages and figure-then-list was the commonest adjacency.",
    "Dashboard rhythm: consecutive layers must not share a column split. Quarters, then eight-and-four, then halves. A page where every band is the same shape reads as a spreadsheet with rounded corners whatever is in it.",
    "A row of dashboard cards should not stretch to match its tallest: grid stretches by default and a short card grows dead space at its foot. Use align-items: start and let heights differ, or give the short card more to say.",
    "Dashboard spacing groups the layers: .b-gap-6 between bands and .b-gap-3 or .b-gap-4 within one. That difference does the grouping, so a well-spaced dashboard needs almost no rules or boxes.",
    "The first screen of a dashboard owes the reader context and verdict plus the top of the evidence. If the figures need scrolling to reach, something above them \u2014 a hero, a greeting, a banner \u2014 is taking space it has not earned.",
    "Dashboard composition: widths are full, half, third or quarter and a row totals twelve. Three or four figures on the top row, never five. One dominant element per screen, or the page reads as a spreadsheet with rounded corners.",
    "Charts: time is a line or an area, comparison across categories is a bar \u2014 those three are 84% of charts in a 457-page survey of admin templates. Pie and donut were 3%; use them only for two to four parts of a genuine whole. A number that matters more than its trend is a .b-stat, not a chart.",
    "Every chart carries role=\"img\" and an aria-label stating the takeaway rather than the chart type: \"peaking Thursday at 4,120\", not \"bar chart of sends\". Only 2% of surveyed dashboard pages labelled a chart at all. Give charts a ceiling with --b-chart-h or a tall series drags the card with it.",
    "Every dashboard widget has four states: loading, empty, error and loaded. Three pages out of 457 surveyed had a \"no data\" message. Use .b-skeleton while fetching and .b-empty with an action when there is nothing.",
    "A table on a dashboard shows five to ten rows and links to the full list \u2014 it is a sample, not the archive. Columns of figures take .b-tabular-nums, and a delta states direction and period: \"up 8.2% this week\", never a bare arrow.",
    "Surfaces never stack materials. A panel inside glass is a fill, not a second material \u2014 nesting one blur inside another makes the GPU blur an already-blurred backdrop, which is the main way this system gets slow.",
    "Materials turn opaque under prefers-reduced-transparency and where backdrop-filter is unsupported, so never use translucency alone to carry meaning.",
    "Over an unknown background use .b-card--neutral, whose material is derived from the backdrop rather than from the theme.",
    "Light and dark come from light-dark() and data-theme. Never write a second dark stylesheet; never branch on theme in product code.",
    "Every interactive element states its accessible name, keyboard behaviour and state through ARIA; .is-* classes are for looks, ARIA is for meaning.",
    "Vary composition deliberately: the same three cards in a row is not a design. Choose a layout archetype that fits the content, then vary density, span rhythm and material within the system."
  ],
  "classCount": 907,
  "classes": [
    "b-absolute",
    "b-accordion",
    "b-accordion--plain",
    "b-account",
    "b-account-switcher",
    "b-account__check",
    "b-account__email",
    "b-account__meta",
    "b-account__name",
    "b-action-sheet",
    "b-action-sheet__cancel",
    "b-action-sheet__group",
    "b-action-sheet__title",
    "b-alert",
    "b-alert--danger",
    "b-alert--neutral",
    "b-alert--success",
    "b-alert--warning",
    "b-alert-dialog",
    "b-alert-dialog__actions",
    "b-alert-dialog__actions--row",
    "b-alert-dialog__desc",
    "b-alert-dialog__title",
    "b-alert__close",
    "b-alert__content",
    "b-alert__desc",
    "b-alert__icon",
    "b-alert__title",
    "b-announce",
    "b-announce__go",
    "b-app-grid",
    "b-app-tile",
    "b-app-tile__hint",
    "b-app-tile__icon",
    "b-app-tile__label",
    "b-area-fill",
    "b-area-svg",
    "b-async-img",
    "b-audio",
    "b-audio--glass",
    "b-audio__art",
    "b-audio__artist",
    "b-audio__controls",
    "b-audio__meta",
    "b-audio__title",
    "b-auth",
    "b-auth-card",
    "b-auth-card__footer",
    "b-auth-card__logo",
    "b-auth-card__subtitle",
    "b-auth-card__title",
    "b-avatar",
    "b-avatar--lg",
    "b-avatar--more",
    "b-avatar--online",
    "b-avatar--sm",
    "b-avatar--square",
    "b-avatar--xl",
    "b-avatar--xs",
    "b-avatar-group",
    "b-axis",
    "b-axis--y",
    "b-back-btn",
    "b-backplate",
    "b-badge",
    "b-badge--accent",
    "b-badge--count",
    "b-badge--danger",
    "b-badge--dot",
    "b-badge--glass",
    "b-badge--solid",
    "b-badge--success",
    "b-badge--warning",
    "b-banner",
    "b-banner--neutral",
    "b-banner__close",
    "b-bars",
    "b-bars__label",
    "b-bars__row",
    "b-bars__track",
    "b-bars__value",
    "b-bento",
    "b-bento__body",
    "b-bento__tile",
    "b-bento__tile--wide",
    "b-bento__title",
    "b-billboard",
    "b-billboard__actions",
    "b-billboard__art",
    "b-billboard__body",
    "b-billboard__lede",
    "b-billboard__scrim",
    "b-billboard__title",
    "b-block",
    "b-body",
    "b-bottom-sheet",
    "b-bottom-sheet--large",
    "b-bottom-sheet--medium",
    "b-bottom-sheet__body",
    "b-bottom-sheet__grabber",
    "b-bottomnav",
    "b-bottomnav__item",
    "b-breadcrumbs",
    "b-btn",
    "b-btn--block",
    "b-btn--danger",
    "b-btn--danger-tinted",
    "b-btn--ghost",
    "b-btn--glass",
    "b-btn--glass-clear",
    "b-btn--glass-prominent",
    "b-btn--lg",
    "b-btn--liquid",
    "b-btn--outline",
    "b-btn--pill",
    "b-btn--primary",
    "b-btn--provider",
    "b-btn--sm",
    "b-btn--success",
    "b-btn--tinted",
    "b-btn--xl",
    "b-btn--xs",
    "b-btn-group",
    "b-btn-group--attached",
    "b-bulk-actions",
    "b-bulk-actions__bar",
    "b-bulk-actions__count",
    "b-calendar",
    "b-calendar__day",
    "b-calendar__grid",
    "b-calendar__header",
    "b-calendar__month",
    "b-calendar__weekday",
    "b-callout",
    "b-calview",
    "b-calview__cell",
    "b-calview__date",
    "b-calview__head",
    "b-caption",
    "b-caption2",
    "b-card",
    "b-card--accent",
    "b-card--compact",
    "b-card--elevated",
    "b-card--fill",
    "b-card--flat",
    "b-card--flush",
    "b-card--glass",
    "b-card--glass-clear",
    "b-card--glass-prominent",
    "b-card--icon",
    "b-card--interactive",
    "b-card--media-overlay",
    "b-card--neutral",
    "b-card--thick",
    "b-card-grid",
    "b-card-rail",
    "b-card__art",
    "b-card__body",
    "b-card__eyebrow",
    "b-card__footer",
    "b-card__header",
    "b-card__media",
    "b-card__overlay",
    "b-card__subtitle",
    "b-card__title",
    "b-carousel",
    "b-carousel--posters",
    "b-carousel__dots",
    "b-carousel__nav",
    "b-carousel__nav--next",
    "b-carousel__nav--prev",
    "b-carousel__slide",
    "b-carousel__track",
    "b-cc",
    "b-cc__art",
    "b-cc__icon",
    "b-cc__label",
    "b-cc__meta",
    "b-cc__pill",
    "b-cc__range",
    "b-cc__range-icon",
    "b-cc__range-icon--end",
    "b-cc__range-icon--start",
    "b-cc__status",
    "b-cc__tile",
    "b-cc__tile--2x1",
    "b-cc__tile--2x2",
    "b-cc__tile--4x1",
    "b-cc__tile--plain",
    "b-cc__tile--round",
    "b-cc__transport",
    "b-chapter",
    "b-chapter--dark",
    "b-chapter--start",
    "b-chapter--tight",
    "b-chapter--tint",
    "b-chapter__actions",
    "b-chapter__eyebrow",
    "b-chapter__lede",
    "b-chapter__media",
    "b-chapter__title",
    "b-chart",
    "b-chart-tip",
    "b-chart__canvas",
    "b-chart__title",
    "b-checkbox",
    "b-chip",
    "b-chip__remove",
    "b-circular",
    "b-circular-wrap",
    "b-circular__label",
    "b-cmdk",
    "b-cmdk__footer",
    "b-cmdk__group-label",
    "b-cmdk__input",
    "b-cmdk__item",
    "b-cmdk__list",
    "b-code",
    "b-code__copy",
    "b-code__header",
    "b-col-span-2",
    "b-col-span-3",
    "b-col-span-4",
    "b-col-span-6",
    "b-col-span-full",
    "b-color-picker",
    "b-columns",
    "b-columns--rounded",
    "b-columns__bar",
    "b-combobox",
    "b-combobox__empty",
    "b-combobox__list",
    "b-combobox__option",
    "b-command-center",
    "b-container",
    "b-container--fluid",
    "b-container--md",
    "b-container--sm",
    "b-container--xl",
    "b-cq",
    "b-cq-hide-lg",
    "b-cq-hide-md",
    "b-cq-hide-sm",
    "b-cq-show-lg",
    "b-cq-show-md",
    "b-cq-show-sm",
    "b-dashboard",
    "b-datagrid",
    "b-datepicker",
    "b-disclosure",
    "b-disclosure--plain",
    "b-disclosure__body",
    "b-divider",
    "b-divider--inset",
    "b-divider--label",
    "b-divider--vertical",
    "b-dl",
    "b-dl--stacked",
    "b-dock",
    "b-dock__item",
    "b-dock__tray",
    "b-donut",
    "b-donut__center",
    "b-dot",
    "b-dot-marker",
    "b-drag-ghost",
    "b-drag-handle",
    "b-drawer",
    "b-drawer--end",
    "b-drawer__body",
    "b-drawer__header",
    "b-drop-indicator",
    "b-dropdown",
    "b-dropdown--end",
    "b-dropzone",
    "b-elevated",
    "b-elevation-0",
    "b-elevation-1",
    "b-elevation-2",
    "b-elevation-3",
    "b-elevation-4",
    "b-elevation-5",
    "b-emoji-picker",
    "b-emoji-picker__grid",
    "b-empty",
    "b-empty__desc",
    "b-empty__icon",
    "b-empty__title",
    "b-error",
    "b-event",
    "b-event--green",
    "b-event--orange",
    "b-event--purple",
    "b-fab",
    "b-fab--extended",
    "b-feature-row",
    "b-feature-row--flip",
    "b-feature-row--top",
    "b-feature-row__body",
    "b-feature-row__title",
    "b-feature-row__title--lg",
    "b-feed",
    "b-feed__bubble",
    "b-feed__bubble--glass",
    "b-feed__item",
    "b-feed__meta",
    "b-field",
    "b-fieldset",
    "b-figure",
    "b-figure--bleed",
    "b-figure--fade",
    "b-figure__caption",
    "b-figure__frame",
    "b-file-browser",
    "b-file-browser__main",
    "b-file-browser__side",
    "b-file-grid",
    "b-file-tile",
    "b-file-tile__icon",
    "b-file-tile__name",
    "b-filter-bar",
    "b-filter-chip",
    "b-filter-chip__value",
    "b-fit-text",
    "b-flex",
    "b-flex--between",
    "b-flex--center",
    "b-flex--wrap",
    "b-flex-1",
    "b-focus-ring",
    "b-footnote",
    "b-footnotes",
    "b-form",
    "b-form-actions",
    "b-form-row",
    "b-form-section",
    "b-form-section__desc",
    "b-form-section__header",
    "b-form-section__title",
    "b-fullscreen",
    "b-fullscreen__bar",
    "b-fullscreen__body",
    "b-gallery",
    "b-gantt",
    "b-gantt__bar",
    "b-gantt__label",
    "b-gantt__row",
    "b-gap-0",
    "b-gap-1",
    "b-gap-2",
    "b-gap-3",
    "b-gap-4",
    "b-gap-6",
    "b-gap-8",
    "b-gauge",
    "b-gauge-linear",
    "b-gauge-linear__labels",
    "b-gauge-linear__marker",
    "b-gauge-linear__track",
    "b-gauge-linear__track--plain",
    "b-gauge__label",
    "b-gauge__value",
    "b-glass-container",
    "b-glass-container--col",
    "b-glass-interactive",
    "b-glass-morph",
    "b-glass-morph-enter",
    "b-glass-morph-exit",
    "b-grid",
    "b-grid--2",
    "b-grid--3",
    "b-grid--4",
    "b-grid--6",
    "b-grid--auto",
    "b-gridlines",
    "b-groupbox",
    "b-groupbox__label",
    "b-grow",
    "b-grow-0",
    "b-h-full",
    "b-has-tiles",
    "b-has-wallpaper",
    "b-headline",
    "b-heatmap",
    "b-help",
    "b-hero",
    "b-hero__media",
    "b-hero__title",
    "b-hidden",
    "b-hide-desktop",
    "b-hide-mobile",
    "b-highlight",
    "b-hover-card",
    "b-hover-card-host",
    "b-hstack",
    "b-icon",
    "b-icon--bounce",
    "b-icon--breathe",
    "b-icon--lg",
    "b-icon--pulse",
    "b-icon--replace",
    "b-icon--rotate",
    "b-icon--scale",
    "b-icon--sm",
    "b-icon--wiggle",
    "b-icon--xl",
    "b-icon--xs",
    "b-icon-btn",
    "b-icon-tile",
    "b-icon-tile--gray",
    "b-icon-tile--green",
    "b-icon-tile--indigo",
    "b-icon-tile--orange",
    "b-icon-tile--purple",
    "b-icon-tile--red",
    "b-icon-tile--sm",
    "b-icon-tile--solid",
    "b-icon-tile--teal",
    "b-image-viewer",
    "b-image-viewer__bar",
    "b-img",
    "b-img--framed",
    "b-inline-block",
    "b-inline-flex",
    "b-input",
    "b-input--filled",
    "b-input--lg",
    "b-input--sm",
    "b-input-affix",
    "b-input-affix--end",
    "b-input-affix--start",
    "b-input-group",
    "b-inspector",
    "b-inspector__header",
    "b-inspector__section",
    "b-justify-around",
    "b-justify-between",
    "b-justify-center",
    "b-justify-end",
    "b-justify-start",
    "b-kanban",
    "b-kanban-col",
    "b-kanban-col__count",
    "b-kanban-col__header",
    "b-kanban-col__list",
    "b-kbd",
    "b-label",
    "b-label--required",
    "b-labeled",
    "b-labeled__label",
    "b-labeled__value",
    "b-landing",
    "b-large-title",
    "b-legend",
    "b-legend__swatch",
    "b-lens",
    "b-lightbox",
    "b-lightbox__actions",
    "b-lightbox__caption",
    "b-lightbox__empty",
    "b-lightbox__frame",
    "b-line-clamp-2",
    "b-line-clamp-3",
    "b-line-svg",
    "b-link",
    "b-link--danger",
    "b-link--muted",
    "b-link-group",
    "b-link-group--divided",
    "b-liquid-bar",
    "b-liquid-bar--accent",
    "b-liquid-capsule",
    "b-liquid-toggle",
    "b-list",
    "b-list--inset-divider",
    "b-list--plain",
    "b-list-item",
    "b-list-item--interactive",
    "b-list-item--top",
    "b-list-item__chevron",
    "b-list-item__content",
    "b-list-item__leading",
    "b-list-item__subtitle",
    "b-list-item__title",
    "b-list-item__trailing",
    "b-list-pane",
    "b-list__footer",
    "b-list__header",
    "b-log",
    "b-log--audit",
    "b-log__action",
    "b-log__actor",
    "b-log__entry",
    "b-log__ip",
    "b-log__time",
    "b-logo-wall",
    "b-logo-wall--cards",
    "b-logo-wall__logo",
    "b-mark",
    "b-marketing-nav",
    "b-marketing-nav--lg",
    "b-marketing-nav__brand",
    "b-marketing-nav__links",
    "b-marquee",
    "b-marquee__group",
    "b-marquee__track",
    "b-masonry",
    "b-master-detail",
    "b-master-detail__detail",
    "b-master-detail__list",
    "b-material-accent",
    "b-material-chrome",
    "b-material-clear",
    "b-material-clear--dimmed",
    "b-material-prominent",
    "b-material-regular",
    "b-material-thick",
    "b-material-thin",
    "b-material-ultrathin",
    "b-media-controls",
    "b-media-controls__time",
    "b-media-placeholder",
    "b-mention",
    "b-mention-list",
    "b-mention-list__handle",
    "b-mention-list__item",
    "b-mention-list__name",
    "b-menu",
    "b-menu--anchored",
    "b-menu__item",
    "b-menu__item--danger",
    "b-menu__label",
    "b-menu__separator",
    "b-menu__shortcut",
    "b-menu__sub",
    "b-menubar",
    "b-menubar__item",
    "b-min-h-0",
    "b-min-w-0",
    "b-mobile-header",
    "b-mobile-header__action--end",
    "b-mobile-header__action--start",
    "b-mobile-header__bar",
    "b-mobile-header__large-title",
    "b-mobile-header__title",
    "b-mobile-menu",
    "b-mobile-toolbar",
    "b-modal",
    "b-modal--glass",
    "b-modal--lg",
    "b-modal--sm",
    "b-modal--xl",
    "b-modal__body",
    "b-modal__close",
    "b-modal__footer",
    "b-modal__header",
    "b-modal__title",
    "b-mono",
    "b-multiselect",
    "b-notification",
    "b-notification__app",
    "b-notification__body",
    "b-notification__desc",
    "b-notification__time",
    "b-notification__title",
    "b-onboarding",
    "b-onboarding-feature",
    "b-onboarding-feature__desc",
    "b-onboarding-feature__title",
    "b-onboarding__hero",
    "b-optional",
    "b-ornament",
    "b-ornament--bottom",
    "b-ornament--end",
    "b-ornament--start",
    "b-ornament--top",
    "b-ornament-host",
    "b-otp",
    "b-overflow-auto",
    "b-overflow-hidden",
    "b-overflow-x-auto",
    "b-overline",
    "b-pagination",
    "b-pagination__ellipsis",
    "b-pagination__item",
    "b-panel",
    "b-panel--plain",
    "b-passkey",
    "b-passkey__desc",
    "b-passkey__icon",
    "b-passkey__title",
    "b-pie",
    "b-pill-nav",
    "b-popover",
    "b-popover--anchored",
    "b-popover--arrow-bottom",
    "b-popover--arrow-end",
    "b-popover--arrow-start",
    "b-popover--arrow-top",
    "b-popover--card",
    "b-popover-anchor",
    "b-popover__body",
    "b-popover__footer",
    "b-popover__header",
    "b-popover__title",
    "b-poster",
    "b-poster--wide",
    "b-poster-grid",
    "b-poster__badge",
    "b-poster__facts",
    "b-poster__frame",
    "b-poster__initial",
    "b-poster__meta",
    "b-poster__title",
    "b-profile-trigger",
    "b-progress",
    "b-progress--danger",
    "b-progress--indeterminate",
    "b-progress--lg",
    "b-progress--sm",
    "b-progress--success",
    "b-progress--warning",
    "b-progress-chart",
    "b-progress-chart__head",
    "b-progress-chart__row",
    "b-progress__fill",
    "b-promo-band",
    "b-promo-band__body",
    "b-promo-band__title",
    "b-props",
    "b-props__key",
    "b-props__row",
    "b-ptr",
    "b-ptr__arrow",
    "b-quote",
    "b-quote-card",
    "b-quote-card__head",
    "b-quote-card__name",
    "b-quote-card__quote",
    "b-quote-card__role",
    "b-quote-card__stat",
    "b-quote-card__stat-label",
    "b-radar-svg",
    "b-radio",
    "b-radius-full",
    "b-radius-lg",
    "b-radius-md",
    "b-radius-xl",
    "b-rail",
    "b-rail--glass",
    "b-rail-card__body",
    "b-rail-card__text",
    "b-rail-card__title",
    "b-rail__item",
    "b-range",
    "b-range__fill",
    "b-rating",
    "b-rating__stars",
    "b-redacted",
    "b-refract",
    "b-relative",
    "b-resizable",
    "b-resizable--vertical",
    "b-resize-handle",
    "b-resource-card",
    "b-resource-card__body",
    "b-resource-card__excerpt",
    "b-resource-card__poster",
    "b-resource-card__title",
    "b-resource-card__type",
    "b-result",
    "b-result--confirm",
    "b-result--error",
    "b-result--success",
    "b-result--warning",
    "b-result__actions",
    "b-result__desc",
    "b-result__icon",
    "b-result__title",
    "b-reveal",
    "b-reveal--end",
    "b-reveal--fade",
    "b-reveal--scale",
    "b-reveal--start",
    "b-row-actions",
    "b-rule",
    "b-rule--accent",
    "b-rule__label",
    "b-safe-area",
    "b-safe-bottom",
    "b-scatter-svg",
    "b-scrim",
    "b-scroll-area",
    "b-scroll-area--fade",
    "b-scroll-area--x",
    "b-scroll-area--y",
    "b-scroll-condense",
    "b-scroll-edge",
    "b-scroll-progress",
    "b-search",
    "b-search-result",
    "b-search-result__path",
    "b-search-result__snippet",
    "b-search-result__title",
    "b-search-results",
    "b-section",
    "b-section--tight",
    "b-segmented",
    "b-segmented--block",
    "b-segmented--glass",
    "b-segmented__item",
    "b-select",
    "b-selectable",
    "b-selection-count",
    "b-selection-rect",
    "b-series",
    "b-share",
    "b-sheet",
    "b-sheet__body",
    "b-sheet__header",
    "b-showcase",
    "b-showcase__shot",
    "b-shrink-0",
    "b-sidebar",
    "b-sidebar--glass",
    "b-sidebar--surface",
    "b-sidebar__group",
    "b-sidebar__heading",
    "b-sidebar__item",
    "b-site-footer",
    "b-site-footer__group",
    "b-site-footer__groups",
    "b-site-footer__heading",
    "b-site-footer__legal",
    "b-skeleton",
    "b-skeleton--card",
    "b-skeleton--circle",
    "b-skeleton--text",
    "b-skeleton--title",
    "b-skip-link",
    "b-slider",
    "b-sort-control",
    "b-spacer",
    "b-span-10",
    "b-span-11",
    "b-span-12",
    "b-span-2",
    "b-span-3",
    "b-span-4",
    "b-span-5",
    "b-span-6",
    "b-span-7",
    "b-span-8",
    "b-span-9",
    "b-sparkline",
    "b-spec-strip",
    "b-spec__label",
    "b-spec__value",
    "b-spin",
    "b-spinner",
    "b-spinner--lg",
    "b-spinner--sm",
    "b-split",
    "b-split-btn",
    "b-sr-only",
    "b-stack",
    "b-stack--between",
    "b-stack--center",
    "b-stack--end",
    "b-stack--start",
    "b-stack--stretch",
    "b-stack--wrap",
    "b-stage",
    "b-stat",
    "b-stat-card",
    "b-stat-card__figure",
    "b-stat-card__label",
    "b-stat-card__row",
    "b-stat-card__rows",
    "b-stat-card__title",
    "b-stat__delta",
    "b-stat__label",
    "b-stat__value",
    "b-status",
    "b-status--away",
    "b-status--busy",
    "b-status--danger",
    "b-status--online",
    "b-status--pulse",
    "b-status--success",
    "b-status--warning",
    "b-statusbar",
    "b-statusbar__item",
    "b-stepper-input",
    "b-steps",
    "b-sticky",
    "b-subheadline",
    "b-svg-axis-label",
    "b-svg-grid",
    "b-swatch",
    "b-swatches",
    "b-swipe",
    "b-swipe__actions",
    "b-swipe__content",
    "b-switch",
    "b-switch--sm",
    "b-syspage",
    "b-syspage__actions",
    "b-syspage__code",
    "b-syspage__desc",
    "b-syspage__title",
    "b-tab",
    "b-table",
    "b-table--compact",
    "b-table--hover",
    "b-table--striped",
    "b-table-wrap",
    "b-table__num",
    "b-table__sort",
    "b-tabpanel",
    "b-tabs",
    "b-tabular-nums",
    "b-tag",
    "b-task",
    "b-task-list",
    "b-task-row",
    "b-task-row__due",
    "b-task-row__title",
    "b-task__meta",
    "b-task__title",
    "b-text-accent",
    "b-text-center",
    "b-text-danger",
    "b-text-end",
    "b-text-lowercase",
    "b-text-secondary",
    "b-text-start",
    "b-text-success",
    "b-text-tertiary",
    "b-text-uppercase",
    "b-text-warning",
    "b-textarea",
    "b-thumb",
    "b-thumb--video",
    "b-thumb__duration",
    "b-tile-field",
    "b-timeline",
    "b-timeline__body",
    "b-timeline__time",
    "b-timeline__title",
    "b-tip",
    "b-tip__actions",
    "b-tip__close",
    "b-tip__content",
    "b-tip__desc",
    "b-tip__icon",
    "b-tip__title",
    "b-title1",
    "b-title2",
    "b-title3",
    "b-toast",
    "b-toast--danger",
    "b-toast--success",
    "b-toast--warning",
    "b-toast-region",
    "b-toast-region--center",
    "b-toast__action",
    "b-toast__content",
    "b-toast__desc",
    "b-toast__icon",
    "b-toast__title",
    "b-toggle-btn",
    "b-toolbar",
    "b-toolbar--glass",
    "b-tooltip-host",
    "b-tooltip-host--bottom",
    "b-topnav",
    "b-topnav__brand",
    "b-topnav__link",
    "b-topnav__links",
    "b-touch-target",
    "b-tree",
    "b-tree-item",
    "b-tree-item__row",
    "b-truncate",
    "b-upload",
    "b-upload-item",
    "b-upload-item__meta",
    "b-upload-item__name",
    "b-upload-item__size",
    "b-upload-item__thumb",
    "b-upload-preview",
    "b-upload-preview__remove",
    "b-upload-previews",
    "b-upload__hint",
    "b-video",
    "b-video__overlay",
    "b-video__play",
    "b-vstack",
    "b-w-full",
    "b-wall",
    "b-wallpaper-scope",
    "b-waveform",
    "b-web",
    "b-workspace",
    "b-workspace__main"
  ],
  "documentedClasses": [
    "b-accordion",
    "b-accordion--plain",
    "b-account",
    "b-account-switcher",
    "b-account__check",
    "b-account__email",
    "b-account__meta",
    "b-account__name",
    "b-action-sheet",
    "b-action-sheet__cancel",
    "b-action-sheet__group",
    "b-action-sheet__title",
    "b-alert",
    "b-alert--danger",
    "b-alert--success",
    "b-alert--warning",
    "b-alert-dialog",
    "b-alert-dialog__actions",
    "b-alert-dialog__actions--row",
    "b-alert-dialog__desc",
    "b-alert-dialog__title",
    "b-alert__close",
    "b-alert__content",
    "b-alert__desc",
    "b-alert__icon",
    "b-alert__title",
    "b-announce",
    "b-announce__go",
    "b-app-grid",
    "b-app-tile",
    "b-app-tile__hint",
    "b-app-tile__icon",
    "b-app-tile__label",
    "b-area-fill",
    "b-area-svg",
    "b-async-img",
    "b-audio",
    "b-audio--glass",
    "b-audio__art",
    "b-audio__artist",
    "b-audio__controls",
    "b-audio__meta",
    "b-audio__title",
    "b-auth-card",
    "b-auth-card__footer",
    "b-auth-card__logo",
    "b-auth-card__subtitle",
    "b-auth-card__title",
    "b-avatar",
    "b-avatar--lg",
    "b-avatar--more",
    "b-avatar--online",
    "b-avatar--sm",
    "b-avatar--square",
    "b-avatar--xl",
    "b-avatar--xs",
    "b-avatar-group",
    "b-axis",
    "b-axis--y",
    "b-back-btn",
    "b-backplate",
    "b-badge",
    "b-badge--accent",
    "b-badge--count",
    "b-badge--danger",
    "b-badge--dot",
    "b-badge--solid",
    "b-badge--success",
    "b-badge--warning",
    "b-banner",
    "b-banner--neutral",
    "b-banner__close",
    "b-bars",
    "b-bars__label",
    "b-bars__row",
    "b-bars__track",
    "b-bars__value",
    "b-bento",
    "b-bento__body",
    "b-bento__tile",
    "b-bento__tile--wide",
    "b-bento__title",
    "b-billboard",
    "b-billboard__actions",
    "b-billboard__art",
    "b-billboard__body",
    "b-billboard__lede",
    "b-billboard__scrim",
    "b-billboard__title",
    "b-body",
    "b-bottom-sheet",
    "b-bottom-sheet--medium",
    "b-bottom-sheet__body",
    "b-bottom-sheet__grabber",
    "b-bottomnav",
    "b-bottomnav__item",
    "b-breadcrumbs",
    "b-btn",
    "b-btn--block",
    "b-btn--danger",
    "b-btn--danger-tinted",
    "b-btn--ghost",
    "b-btn--glass",
    "b-btn--lg",
    "b-btn--liquid",
    "b-btn--outline",
    "b-btn--pill",
    "b-btn--primary",
    "b-btn--provider",
    "b-btn--sm",
    "b-btn--success",
    "b-btn--tinted",
    "b-btn--xl",
    "b-btn--xs",
    "b-btn-group",
    "b-btn-group--attached",
    "b-bulk-actions__bar",
    "b-bulk-actions__count",
    "b-calendar",
    "b-calendar__day",
    "b-calendar__grid",
    "b-calendar__header",
    "b-calendar__month",
    "b-calendar__weekday",
    "b-callout",
    "b-calview",
    "b-calview__cell",
    "b-calview__date",
    "b-calview__head",
    "b-caption",
    "b-caption2",
    "b-card",
    "b-card--accent",
    "b-card--compact",
    "b-card--elevated",
    "b-card--fill",
    "b-card--flat",
    "b-card--flush",
    "b-card--glass",
    "b-card--icon",
    "b-card--interactive",
    "b-card--media-overlay",
    "b-card--neutral",
    "b-card-grid",
    "b-card-rail",
    "b-card__art",
    "b-card__body",
    "b-card__eyebrow",
    "b-card__footer",
    "b-card__header",
    "b-card__media",
    "b-card__overlay",
    "b-card__subtitle",
    "b-card__title",
    "b-carousel",
    "b-carousel--posters",
    "b-carousel__dots",
    "b-carousel__nav",
    "b-carousel__nav--next",
    "b-carousel__nav--prev",
    "b-carousel__slide",
    "b-carousel__track",
    "b-cc",
    "b-cc__art",
    "b-cc__icon",
    "b-cc__label",
    "b-cc__meta",
    "b-cc__pill",
    "b-cc__range",
    "b-cc__range-icon",
    "b-cc__range-icon--end",
    "b-cc__range-icon--start",
    "b-cc__status",
    "b-cc__tile",
    "b-cc__tile--2x1",
    "b-cc__tile--2x2",
    "b-cc__tile--4x1",
    "b-cc__tile--round",
    "b-cc__transport",
    "b-chapter",
    "b-chapter--dark",
    "b-chapter--tight",
    "b-chapter__actions",
    "b-chapter__eyebrow",
    "b-chapter__lede",
    "b-chapter__media",
    "b-chapter__title",
    "b-chart",
    "b-chart-tip",
    "b-chart__canvas",
    "b-chart__title",
    "b-checkbox",
    "b-chip",
    "b-chip__remove",
    "b-circular",
    "b-circular-wrap",
    "b-circular__label",
    "b-cmdk",
    "b-cmdk__footer",
    "b-cmdk__group-label",
    "b-cmdk__input",
    "b-cmdk__item",
    "b-cmdk__list",
    "b-code",
    "b-code__copy",
    "b-code__header",
    "b-col-span-4",
    "b-col-span-6",
    "b-col-span-full",
    "b-color-picker",
    "b-columns",
    "b-columns--rounded",
    "b-columns__bar",
    "b-combobox",
    "b-combobox__empty",
    "b-combobox__list",
    "b-combobox__option",
    "b-command-center",
    "b-container",
    "b-container--fluid",
    "b-container--md",
    "b-container--sm",
    "b-container--xl",
    "b-cq",
    "b-cq-hide-sm",
    "b-cq-show-sm",
    "b-dashboard",
    "b-datagrid",
    "b-datepicker",
    "b-disclosure",
    "b-disclosure--plain",
    "b-disclosure__body",
    "b-divider",
    "b-divider--inset",
    "b-divider--label",
    "b-divider--vertical",
    "b-dl",
    "b-dl--stacked",
    "b-dock__item",
    "b-dock__tray",
    "b-donut",
    "b-donut__center",
    "b-dot",
    "b-drag-ghost",
    "b-drag-handle",
    "b-drawer",
    "b-drawer__body",
    "b-drawer__header",
    "b-drop-indicator",
    "b-dropdown",
    "b-dropzone",
    "b-elevation-1",
    "b-elevation-2",
    "b-elevation-3",
    "b-elevation-4",
    "b-elevation-5",
    "b-emoji-picker",
    "b-emoji-picker__grid",
    "b-empty",
    "b-empty__desc",
    "b-empty__icon",
    "b-empty__title",
    "b-error",
    "b-event",
    "b-event--green",
    "b-event--orange",
    "b-event--purple",
    "b-fab",
    "b-fab--extended",
    "b-feature-row",
    "b-feature-row__body",
    "b-feature-row__title",
    "b-feed",
    "b-feed__bubble",
    "b-feed__item",
    "b-feed__meta",
    "b-field",
    "b-fieldset",
    "b-figure",
    "b-figure__caption",
    "b-figure__frame",
    "b-file-browser",
    "b-file-browser__main",
    "b-file-browser__side",
    "b-file-grid",
    "b-file-tile",
    "b-file-tile__icon",
    "b-file-tile__name",
    "b-filter-bar",
    "b-filter-chip",
    "b-filter-chip__value",
    "b-fit-text",
    "b-flex",
    "b-flex--between",
    "b-flex--center",
    "b-footnote",
    "b-footnotes",
    "b-form",
    "b-form-actions",
    "b-form-row",
    "b-form-section",
    "b-form-section__desc",
    "b-form-section__header",
    "b-form-section__title",
    "b-fullscreen",
    "b-fullscreen__bar",
    "b-fullscreen__body",
    "b-gallery",
    "b-gantt",
    "b-gantt__bar",
    "b-gantt__label",
    "b-gantt__row",
    "b-gap-1",
    "b-gap-2",
    "b-gap-3",
    "b-gap-4",
    "b-gap-6",
    "b-gauge",
    "b-gauge-linear",
    "b-gauge-linear__labels",
    "b-gauge-linear__marker",
    "b-gauge-linear__track",
    "b-gauge-linear__track--plain",
    "b-gauge__label",
    "b-gauge__value",
    "b-grid",
    "b-grid--2",
    "b-grid--3",
    "b-grid--auto",
    "b-gridlines",
    "b-groupbox",
    "b-groupbox__label",
    "b-grow",
    "b-has-tiles",
    "b-has-wallpaper",
    "b-headline",
    "b-heatmap",
    "b-help",
    "b-hide-desktop",
    "b-hide-mobile",
    "b-highlight",
    "b-hover-card",
    "b-hover-card-host",
    "b-hstack",
    "b-icon",
    "b-icon--bounce",
    "b-icon--breathe",
    "b-icon--lg",
    "b-icon--pulse",
    "b-icon--replace",
    "b-icon--rotate",
    "b-icon--scale",
    "b-icon--sm",
    "b-icon--wiggle",
    "b-icon--xl",
    "b-icon-btn",
    "b-icon-tile",
    "b-icon-tile--gray",
    "b-icon-tile--green",
    "b-icon-tile--indigo",
    "b-icon-tile--orange",
    "b-icon-tile--purple",
    "b-icon-tile--red",
    "b-icon-tile--sm",
    "b-icon-tile--solid",
    "b-icon-tile--teal",
    "b-image-viewer",
    "b-image-viewer__bar",
    "b-img",
    "b-img--framed",
    "b-input",
    "b-input--filled",
    "b-input--lg",
    "b-input--sm",
    "b-input-affix",
    "b-input-affix--end",
    "b-input-affix--start",
    "b-input-group",
    "b-inspector",
    "b-inspector__header",
    "b-inspector__section",
    "b-kanban",
    "b-kanban-col",
    "b-kanban-col__count",
    "b-kanban-col__header",
    "b-kanban-col__list",
    "b-kbd",
    "b-label",
    "b-label--required",
    "b-labeled",
    "b-labeled__label",
    "b-labeled__value",
    "b-large-title",
    "b-legend",
    "b-legend__swatch",
    "b-lens",
    "b-lightbox",
    "b-lightbox__actions",
    "b-lightbox__caption",
    "b-lightbox__empty",
    "b-lightbox__frame",
    "b-line-clamp-3",
    "b-line-svg",
    "b-link",
    "b-link--danger",
    "b-link--muted",
    "b-link-group",
    "b-liquid-bar",
    "b-liquid-bar--accent",
    "b-liquid-capsule",
    "b-liquid-toggle",
    "b-list",
    "b-list--inset-divider",
    "b-list--plain",
    "b-list-item",
    "b-list-item--interactive",
    "b-list-item--top",
    "b-list-item__chevron",
    "b-list-item__content",
    "b-list-item__leading",
    "b-list-item__subtitle",
    "b-list-item__title",
    "b-list-item__trailing",
    "b-list__footer",
    "b-list__header",
    "b-log",
    "b-log--audit",
    "b-log__action",
    "b-log__actor",
    "b-log__entry",
    "b-log__ip",
    "b-log__time",
    "b-logo-wall",
    "b-logo-wall--cards",
    "b-logo-wall__logo",
    "b-mark",
    "b-marketing-nav",
    "b-marketing-nav--lg",
    "b-marketing-nav__brand",
    "b-marketing-nav__links",
    "b-marquee",
    "b-marquee__group",
    "b-marquee__track",
    "b-masonry",
    "b-master-detail",
    "b-master-detail__detail",
    "b-master-detail__list",
    "b-material-chrome",
    "b-material-regular",
    "b-material-thick",
    "b-material-thin",
    "b-material-ultrathin",
    "b-media-controls",
    "b-media-controls__time",
    "b-media-placeholder",
    "b-mention",
    "b-mention-list",
    "b-mention-list__handle",
    "b-mention-list__item",
    "b-mention-list__name",
    "b-menu",
    "b-menu__item",
    "b-menu__item--danger",
    "b-menu__label",
    "b-menu__separator",
    "b-menu__shortcut",
    "b-menu__sub",
    "b-menubar",
    "b-menubar__item",
    "b-mobile-header",
    "b-mobile-header__action--end",
    "b-mobile-header__action--start",
    "b-mobile-header__bar",
    "b-mobile-header__large-title",
    "b-mobile-header__title",
    "b-mobile-menu",
    "b-mobile-toolbar",
    "b-modal",
    "b-modal__body",
    "b-modal__close",
    "b-modal__footer",
    "b-modal__header",
    "b-modal__title",
    "b-multiselect",
    "b-notification",
    "b-notification__app",
    "b-notification__body",
    "b-notification__desc",
    "b-notification__time",
    "b-notification__title",
    "b-onboarding",
    "b-onboarding-feature",
    "b-onboarding-feature__desc",
    "b-onboarding-feature__title",
    "b-onboarding__hero",
    "b-optional",
    "b-ornament",
    "b-ornament--bottom",
    "b-ornament-host",
    "b-otp",
    "b-overline",
    "b-pagination",
    "b-pagination__ellipsis",
    "b-pagination__item",
    "b-panel",
    "b-panel--plain",
    "b-passkey",
    "b-passkey__desc",
    "b-passkey__icon",
    "b-passkey__title",
    "b-pie",
    "b-pill-nav",
    "b-popover",
    "b-popover--arrow-bottom",
    "b-popover--card",
    "b-popover-anchor",
    "b-popover__body",
    "b-popover__footer",
    "b-popover__header",
    "b-popover__title",
    "b-poster",
    "b-poster-grid",
    "b-poster__badge",
    "b-poster__facts",
    "b-poster__frame",
    "b-poster__initial",
    "b-poster__meta",
    "b-poster__title",
    "b-profile-trigger",
    "b-progress",
    "b-progress--danger",
    "b-progress--indeterminate",
    "b-progress--lg",
    "b-progress--sm",
    "b-progress--success",
    "b-progress--warning",
    "b-progress-chart",
    "b-progress-chart__head",
    "b-progress-chart__row",
    "b-progress__fill",
    "b-promo-band",
    "b-promo-band__body",
    "b-promo-band__title",
    "b-props",
    "b-props__key",
    "b-props__row",
    "b-ptr",
    "b-quote",
    "b-quote-card",
    "b-quote-card__head",
    "b-quote-card__name",
    "b-quote-card__quote",
    "b-quote-card__role",
    "b-quote-card__stat",
    "b-quote-card__stat-label",
    "b-radar-svg",
    "b-radio",
    "b-radius-lg",
    "b-rail",
    "b-rail-card__body",
    "b-rail-card__text",
    "b-rail-card__title",
    "b-rail__item",
    "b-range",
    "b-range__fill",
    "b-rating",
    "b-rating__stars",
    "b-redacted",
    "b-relative",
    "b-resizable",
    "b-resizable--vertical",
    "b-resize-handle",
    "b-resource-card",
    "b-resource-card__body",
    "b-resource-card__excerpt",
    "b-resource-card__poster",
    "b-resource-card__title",
    "b-resource-card__type",
    "b-result",
    "b-result--confirm",
    "b-result--error",
    "b-result--success",
    "b-result--warning",
    "b-result__actions",
    "b-result__desc",
    "b-result__icon",
    "b-result__title",
    "b-reveal",
    "b-reveal--end",
    "b-reveal--fade",
    "b-reveal--scale",
    "b-reveal--start",
    "b-row-actions",
    "b-rule",
    "b-rule__label",
    "b-safe-bottom",
    "b-scatter-svg",
    "b-scroll-area",
    "b-scroll-area--fade",
    "b-scroll-condense",
    "b-scroll-progress",
    "b-search",
    "b-search-result",
    "b-search-result__path",
    "b-search-result__snippet",
    "b-search-result__title",
    "b-search-results",
    "b-section",
    "b-section--tight",
    "b-segmented",
    "b-segmented--block",
    "b-segmented__item",
    "b-select",
    "b-selectable",
    "b-selection-count",
    "b-selection-rect",
    "b-series",
    "b-share",
    "b-sheet",
    "b-sheet__body",
    "b-sheet__header",
    "b-showcase",
    "b-showcase__shot",
    "b-shrink-0",
    "b-sidebar",
    "b-sidebar--surface",
    "b-sidebar__group",
    "b-sidebar__heading",
    "b-sidebar__item",
    "b-site-footer",
    "b-site-footer__group",
    "b-site-footer__groups",
    "b-site-footer__heading",
    "b-site-footer__legal",
    "b-skeleton",
    "b-skeleton--card",
    "b-skeleton--circle",
    "b-skeleton--text",
    "b-skeleton--title",
    "b-slider",
    "b-sort-control",
    "b-spacer",
    "b-span-3",
    "b-span-4",
    "b-span-6",
    "b-span-8",
    "b-sparkline",
    "b-spec-strip",
    "b-spec__label",
    "b-spec__value",
    "b-spinner",
    "b-spinner--lg",
    "b-spinner--sm",
    "b-split",
    "b-split-btn",
    "b-stack",
    "b-stack--between",
    "b-stack--center",
    "b-stack--end",
    "b-stack--start",
    "b-stack--wrap",
    "b-stage",
    "b-stat",
    "b-stat-card",
    "b-stat-card__figure",
    "b-stat-card__label",
    "b-stat-card__row",
    "b-stat-card__rows",
    "b-stat-card__title",
    "b-stat__delta",
    "b-stat__label",
    "b-stat__value",
    "b-status",
    "b-status--away",
    "b-status--busy",
    "b-status--danger",
    "b-status--online",
    "b-status--pulse",
    "b-status--success",
    "b-status--warning",
    "b-statusbar",
    "b-statusbar__item",
    "b-stepper-input",
    "b-steps",
    "b-subheadline",
    "b-svg-axis-label",
    "b-svg-grid",
    "b-swatch",
    "b-swatches",
    "b-swipe",
    "b-swipe__actions",
    "b-swipe__content",
    "b-switch",
    "b-switch--sm",
    "b-syspage",
    "b-syspage__actions",
    "b-syspage__code",
    "b-syspage__desc",
    "b-syspage__title",
    "b-tab",
    "b-table",
    "b-table--compact",
    "b-table--hover",
    "b-table--striped",
    "b-table-wrap",
    "b-table__num",
    "b-table__sort",
    "b-tabpanel",
    "b-tabs",
    "b-tabular-nums",
    "b-tag",
    "b-task",
    "b-task-list",
    "b-task-row",
    "b-task-row__due",
    "b-task-row__title",
    "b-task__meta",
    "b-task__title",
    "b-text-center",
    "b-text-secondary",
    "b-text-tertiary",
    "b-text-uppercase",
    "b-textarea",
    "b-thumb",
    "b-thumb--video",
    "b-thumb__duration",
    "b-tile-field",
    "b-timeline",
    "b-timeline__body",
    "b-timeline__time",
    "b-timeline__title",
    "b-tip",
    "b-tip__actions",
    "b-tip__close",
    "b-tip__content",
    "b-tip__desc",
    "b-tip__icon",
    "b-tip__title",
    "b-title1",
    "b-title2",
    "b-title3",
    "b-toast",
    "b-toast--danger",
    "b-toast--success",
    "b-toast--warning",
    "b-toast-region",
    "b-toast-region--center",
    "b-toast__action",
    "b-toast__content",
    "b-toast__desc",
    "b-toast__icon",
    "b-toast__title",
    "b-toggle-btn",
    "b-toolbar",
    "b-toolbar--glass",
    "b-tooltip-host",
    "b-tooltip-host--bottom",
    "b-topnav",
    "b-topnav__brand",
    "b-topnav__link",
    "b-topnav__links",
    "b-touch-target",
    "b-tree",
    "b-tree-item",
    "b-tree-item__row",
    "b-truncate",
    "b-upload",
    "b-upload-item",
    "b-upload-item__meta",
    "b-upload-item__name",
    "b-upload-item__size",
    "b-upload-item__thumb",
    "b-upload-preview",
    "b-upload-preview__remove",
    "b-upload-previews",
    "b-upload__hint",
    "b-video",
    "b-video__overlay",
    "b-video__play",
    "b-vstack",
    "b-wall",
    "b-wallpaper-scope",
    "b-waveform",
    "b-web",
    "b-workspace",
    "b-workspace__main"
  ],
  "knobs": [
    "--b-avatar-size",
    "--b-bars-label-w",
    "--b-billboard-focus",
    "--b-billboard-h",
    "--b-billboard-measure",
    "--b-capsule-h",
    "--b-capsule-w",
    "--b-cc-fill",
    "--b-cc-tile",
    "--b-chapter-gap",
    "--b-chart-color",
    "--b-chart-h",
    "--b-circular-color",
    "--b-circular-size",
    "--b-circular-track",
    "--b-col-min",
    "--b-cols",
    "--b-column-w",
    "--b-datagrid-h",
    "--b-disabled-pointer",
    "--b-donut-hole",
    "--b-fade-from",
    "--b-fit-max",
    "--b-fit-min",
    "--b-fit-scale",
    "--b-gantt-units",
    "--b-gap",
    "--b-gauge-size",
    "--b-glass-spacing",
    "--b-heatmap-cell",
    "--b-heatmap-cols",
    "--b-img-placeholder",
    "--b-inspector-w",
    "--b-lens-size",
    "--b-lg-border",
    "--b-lg-inset",
    "--b-lg-pane",
    "--b-lg-pane-strong",
    "--b-liquid-bar-w",
    "--b-liquid-color",
    "--b-logo-h",
    "--b-mark-ground",
    "--b-marquee-gap",
    "--b-marquee-time",
    "--b-masonry-cols",
    "--b-pie",
    "--b-pie-size",
    "--b-poster-min",
    "--b-poster-ratio",
    "--b-progress",
    "--b-scroll-edge-h",
    "--b-scroll-progress",
    "--b-slide-w",
    "--b-slider-fill",
    "--b-thumb-size",
    "--b-tile",
    "--b-tile-ground",
    "--b-tile-ink",
    "--b-wall-blur",
    "--b-wall-ground",
    "--b-wall-image",
    "--done",
    "--len",
    "--start",
    "--v"
  ],
  "spans": [
    "b-span-2",
    "b-span-3",
    "b-span-4",
    "b-span-5",
    "b-span-6",
    "b-span-7",
    "b-span-8",
    "b-span-9",
    "b-span-10",
    "b-span-11",
    "b-span-12"
  ],
  "lint": {
    "command": "python3 tools/barua-lint.py <files or directory>",
    "rules": [
      "unknown-class",
      "hardcoded-colour",
      "inline-knob",
      "native-select",
      "native-date",
      "emoji-icon",
      "scroll-pane"
    ],
    "suppress": "<!-- barua-lint disable <rule>: reason --> ... <!-- barua-lint enable -->"
  },
  "categories": [
    {
      "id": "principles",
      "title": "Principles \u2014 the eight ideas the system is built on, and what enforces each",
      "url": "https://ui.barua.tz/docs/principles.html",
      "components": [
        {
          "id": "purpose",
          "title": "Purpose",
          "category": "principles",
          "url": "https://ui.barua.tz/docs/principles.html#purpose",
          "summary": "Make something meaningful.",
          "classes": [
            "b-footnote",
            "b-list__header",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-list__header\">What holds it up</div>\n<ul>\n  <li>Every component is documented with a live demo; if it cannot be demonstrated, it is not ready.</li>\n  <li>The linter rejects invented classes, so a new idea must be promoted into the system rather than smuggled into a page.</li>\n  <li>The examples are built only from documented components \u2014 they are proof, not decoration.</li>\n</ul>",
          "react": {
            "import": "import { ListHeader } from \"barua-ui\";",
            "components": [
              "ListHeader"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>What holds it up</ListHeader>\n<ul>\n  <li>Every component is documented with a live demo; if it cannot be demonstrated, it is not ready.</li>\n  <li>The linter rejects invented classes, so a new idea must be promoted into the system rather than smuggled into a page.</li>\n  <li>The examples are built only from documented components \u2014 they are proof, not decoration.</li>\n</ul>"
          }
        },
        {
          "id": "agency",
          "title": "Agency",
          "category": "principles",
          "url": "https://ui.barua.tz/docs/principles.html#agency",
          "summary": "Let people do things their own way.",
          "classes": [
            "b-footnote",
            "b-list__header",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-list__header\">What holds it up</div>\n<ul>\n  <li>Theme, accent and wallpaper belong to the person: <code>data-theme</code>, <code>data-accent</code> and <code>Barua.wallpaper</code>.</li>\n  <li>Overlays close the way people expect \u2014 Escape, outside click, and a visible control, everywhere.</li>\n  <li>Destructive actions say what they will do, and are never the default in a row of buttons.</li>\n</ul>",
          "react": {
            "import": "import { ListHeader } from \"barua-ui\";",
            "components": [
              "ListHeader"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>What holds it up</ListHeader>\n<ul>\n  <li>\n    Theme, accent and wallpaper belong to the person:\n    <code>data-theme</code>\n    ,\n    <code>data-accent</code>\n    and\n    <code>Barua.wallpaper</code>\n    .\n  </li>\n  <li>Overlays close the way people expect \u2014 Escape, outside click, and a visible control, everywhere.</li>\n  <li>Destructive actions say what they will do, and are never the default in a row of buttons.</li>\n</ul>"
          }
        },
        {
          "id": "responsibility",
          "title": "Responsibility",
          "category": "principles",
          "url": "https://ui.barua.tz/docs/principles.html#responsibility",
          "summary": "Act in people\u2019s best interest.",
          "classes": [
            "b-footnote",
            "b-list__header",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-list__header\">What holds it up</div>\n<ul>\n  <li><code>.b-redacted</code> and its privacy variant hide sensitive content deliberately, and look different from loading.</li>\n  <li>Empty and error states explain the situation and the way out rather than apologising.</li>\n  <li>Marketing claims carry footnotes: a figure with its conditions stated is worth more than a figure without.</li>\n</ul>",
          "react": {
            "import": "import { ListHeader } from \"barua-ui\";",
            "components": [
              "ListHeader"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>What holds it up</ListHeader>\n<ul>\n  <li>\n    <code>.b-redacted</code>\n    and its privacy variant hide sensitive content deliberately, and look different from loading.\n  </li>\n  <li>Empty and error states explain the situation and the way out rather than apologising.</li>\n  <li>Marketing claims carry footnotes: a figure with its conditions stated is worth more than a figure without.</li>\n</ul>"
          }
        },
        {
          "id": "familiarity",
          "title": "Familiarity",
          "category": "principles",
          "url": "https://ui.barua.tz/docs/principles.html#familiarity",
          "summary": "Build on what people know.",
          "classes": [
            "b-footnote",
            "b-list__header",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-list__header\">What holds it up</div>\n<ul>\n  <li>Native elements first \u2014 <code>&lt;dialog&gt;</code>, the Popover API, <code>&lt;details&gt;</code> \u2014 so platform behaviour arrives correct and free.</li>\n  <li>One grammar throughout: <code>.b-block__element--modifier</code>, <code>.is-*</code> for state, <code>--b-*</code> for values.</li>\n  <li>States stay distinct and consistent: hover is a quiet fill, selection is accent-soft, focus is the ring.</li>\n</ul>",
          "react": {
            "import": "import { ListHeader } from \"barua-ui\";",
            "components": [
              "ListHeader"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>What holds it up</ListHeader>\n<ul>\n  <li>\n    Native elements first \u2014\n    <code>\n      <dialog>\n    </code>\n    , the Popover API,\n    <code>\n      <details>\n    </code>\n    \u2014 so platform behaviour arrives correct and free.\n  </li>\n  <li>\n    One grammar throughout:\n    <code>.b-block__element--modifier</code>\n    ,\n    <code>.is-*</code>\n    for state,\n    <code>--b-*</code>\n    for values.\n  </li>\n  <li>States stay distinct and consistent: hover is a quiet fill, selection is accent-soft, focus is the ring.</li>\n</ul>"
          }
        },
        {
          "id": "flexibility",
          "title": "Flexibility",
          "category": "principles",
          "url": "https://ui.barua.tz/docs/principles.html#flexibility",
          "summary": "Adapt to diverse contexts and needs.",
          "classes": [
            "b-footnote",
            "b-list__header",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-list__header\">What holds it up</div>\n<ul>\n  <li>Light and dark through <code>light-dark()</code>; a wallpaper can set the scheme for the surface it backs.</li>\n  <li>Every size is in <code>rem</code>, so the system text-size preference scales the whole interface.</li>\n  <li>Reduced motion is honoured globally; every interactive element carries its keyboard path and accessible name.</li>\n  <li>Components reflow on their own \u2014 most layouts need no media query at all.</li>\n</ul>",
          "react": {
            "import": "import { ListHeader } from \"barua-ui\";",
            "components": [
              "ListHeader"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>What holds it up</ListHeader>\n<ul>\n  <li>\n    Light and dark through\n    <code>light-dark()</code>\n    ; a wallpaper can set the scheme for the surface it backs.\n  </li>\n  <li>\n    Every size is in\n    <code>rem</code>\n    , so the system text-size preference scales the whole interface.\n  </li>\n  <li>Reduced motion is honoured globally; every interactive element carries its keyboard path and accessible name.</li>\n  <li>Components reflow on their own \u2014 most layouts need no media query at all.</li>\n</ul>"
          }
        },
        {
          "id": "simplicity",
          "title": "Simplicity",
          "category": "principles",
          "url": "https://ui.barua.tz/docs/principles.html#simplicity",
          "summary": "Be clear and direct.",
          "classes": [
            "b-footnote",
            "b-list__header",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-list__header\">What holds it up</div>\n<ul>\n  <li>The type ramp is eleven roles, each with complete metrics \u2014 hierarchy is a decision, not a font size.</li>\n  <li>A screen ends at the screen: chrome stays put and only designated panes scroll.</li>\n  <li>Surfaces never stack materials; a panel inside glass is a fill.</li>\n  <li>Labels are written, not generated: a button says what will happen.</li>\n</ul>",
          "react": {
            "import": "import { ListHeader } from \"barua-ui\";",
            "components": [
              "ListHeader"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>What holds it up</ListHeader>\n<ul>\n  <li>The type ramp is eleven roles, each with complete metrics \u2014 hierarchy is a decision, not a font size.</li>\n  <li>A screen ends at the screen: chrome stays put and only designated panes scroll.</li>\n  <li>Surfaces never stack materials; a panel inside glass is a fill.</li>\n  <li>Labels are written, not generated: a button says what will happen.</li>\n</ul>"
          }
        },
        {
          "id": "craft",
          "title": "Craft",
          "category": "principles",
          "url": "https://ui.barua.tz/docs/principles.html#craft",
          "summary": "Care about every detail.",
          "classes": [
            "b-footnote",
            "b-list__header",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-list__header\">What holds it up</div>\n<ul>\n  <li>Every text style carries its own leading and tracking; small text opens up rather than borrowing body metrics.</li>\n  <li>Charts have ceilings as well as floors, so a component that reads correctly in a demo still reads correctly in a wide card.</li>\n  <li>Glass carries a specular edge, and the mail pane is literally the same card as everything else rather than a copy of its values.</li>\n  <li>The validator and the linter run over the documentation itself \u2014 the docs obey the rules they publish.</li>\n</ul>",
          "react": {
            "import": "import { ListHeader } from \"barua-ui\";",
            "components": [
              "ListHeader"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>What holds it up</ListHeader>\n<ul>\n  <li>Every text style carries its own leading and tracking; small text opens up rather than borrowing body metrics.</li>\n  <li>Charts have ceilings as well as floors, so a component that reads correctly in a demo still reads correctly in a wide card.</li>\n  <li>Glass carries a specular edge, and the mail pane is literally the same card as everything else rather than a copy of its values.</li>\n  <li>The validator and the linter run over the documentation itself \u2014 the docs obey the rules they publish.</li>\n</ul>"
          }
        },
        {
          "id": "delight",
          "title": "Delight",
          "category": "principles",
          "url": "https://ui.barua.tz/docs/principles.html#delight",
          "summary": "Make it human.",
          "classes": [
            "b-footnote",
            "b-list__header",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-list__header\">What holds it up</div>\n<ul>\n  <li>Motion runs on spring easings, and shared elements morph rather than cross-fade.</li>\n  <li>Symbol effects answer an action: a bounce on send, a pulse while something is genuinely happening.</li>\n  <li>Liquid Glass is one attribute, so a product can change its whole character without changing its markup.</li>\n  <li>A wallpaper makes the glass mean something \u2014 the person&rsquo;s own picture, and the system learning its colour from it.</li>\n</ul>",
          "react": {
            "import": "import { ListHeader } from \"barua-ui\";",
            "components": [
              "ListHeader"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>What holds it up</ListHeader>\n<ul>\n  <li>Motion runs on spring easings, and shared elements morph rather than cross-fade.</li>\n  <li>Symbol effects answer an action: a bounce on send, a pulse while something is genuinely happening.</li>\n  <li>Liquid Glass is one attribute, so a product can change its whole character without changing its markup.</li>\n  <li>A wallpaper makes the glass mean something \u2014 the person\u2019s own picture, and the system learning its colour from it.</li>\n</ul>"
          }
        }
      ]
    },
    {
      "id": "theming",
      "title": "Theming \u2014 light and dark, the named accents, and carrying a brand colour without breaking danger",
      "url": "https://ui.barua.tz/docs/theming.html",
      "components": [
        {
          "id": "named-accents",
          "title": "The named accents",
          "category": "theming",
          "url": "https://ui.barua.tz/docs/theming.html#named-accents",
          "summary": "Five accents ship with the system. Set one attribute on <html> and every button, focus ring, link and selected state re-tints.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-gap-2",
            "b-hstack",
            "b-stack--wrap"
          ],
          "markup": "<div class=\"b-hstack b-gap-2 b-stack--wrap\">\n  <button class=\"b-btn b-btn--primary\">Default blue</button>\n  <span data-accent=\"indigo\"><button class=\"b-btn b-btn--primary\">Indigo</button></span>\n  <span data-accent=\"purple\"><button class=\"b-btn b-btn--primary\">Purple</button></span>\n  <span data-accent=\"teal\"><button class=\"b-btn b-btn--primary\">Teal</button></span>\n  <span data-accent=\"green\"><button class=\"b-btn b-btn--primary\">Green</button></span>\n</div>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-hstack b-gap-2 b-stack--wrap\">\n  <Button variant=\"primary\">Default blue</Button>\n  <span data-accent=\"indigo\">\n    <Button variant=\"primary\">Indigo</Button>\n  </span>\n  <span data-accent=\"purple\">\n    <Button variant=\"primary\">Purple</Button>\n  </span>\n  <span data-accent=\"teal\">\n    <Button variant=\"primary\">Teal</Button>\n  </span>\n  <span data-accent=\"green\">\n    <Button variant=\"primary\">Green</Button>\n  </span>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "brand-colour",
          "title": "A brand colour that is not on the list",
          "category": "theming",
          "url": "https://ui.barua.tz/docs/theming.html#brand-colour",
          "summary": "A brand rarely matches a palette. Override the accent tokens in unlayered CSS \u2014 a plain stylesheet loaded after barua.css . Unlayered rules beat every layer in the system, which is the documented seam for exactly this. It is the supported route, not a workaround.",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-btn--tinted",
            "b-code",
            "b-code__header",
            "b-field",
            "b-gap-2",
            "b-gap-3",
            "b-hstack",
            "b-input",
            "b-label",
            "b-stack",
            "b-stack--wrap"
          ],
          "markup": "<div class=\"b-stack b-gap-3\">\n  <div class=\"b-hstack b-gap-2 b-stack--wrap\">\n    <button class=\"b-btn b-btn--primary\">Deploy agent</button>\n    <button class=\"b-btn b-btn--tinted\">Configure</button>\n    <button class=\"b-btn b-btn--ghost\">Cancel</button>\n    <span class=\"b-badge b-badge--accent\">Live</span>\n  </div>\n  <div class=\"b-field\" style=\"max-width: 22rem\">\n    <label class=\"b-label\" for=\"brand-demo-input\">Focus this field</label>\n    <input class=\"b-input\" id=\"brand-demo-input\" type=\"text\" placeholder=\"The ring follows the accent\">\n  </div>\n</div>",
          "react": {
            "import": "import { Badge, Button, Field, Input, Label } from \"barua-ui\";",
            "components": [
              "Badge",
              "Button",
              "Field",
              "Input",
              "Label"
            ],
            "root": "Badge",
            "jsx": "<div className=\"b-stack b-gap-3\">\n  <div className=\"b-hstack b-gap-2 b-stack--wrap\">\n    <Button variant=\"primary\">Deploy agent</Button>\n    <Button variant=\"tinted\">Configure</Button>\n    <Button variant=\"ghost\">Cancel</Button>\n    <Badge variant=\"accent\">Live</Badge>\n  </div>\n  <Field style={{ maxWidth: \"22rem\" }}>\n    <Label htmlFor=\"brand-demo-input\">Focus this field</Label>\n    <Input id=\"brand-demo-input\" type=\"text\" placeholder=\"The ring follows the accent\" />\n  </Field>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "collisions",
          "title": "Check what your colour now collides with",
          "category": "theming",
          "url": "https://ui.barua.tz/docs/theming.html#collisions",
          "summary": "This is the part that bites. Two system colours are defined in terms of the accent or sit close to it, and a brand colour can quietly erase a distinction the interface relies on.",
          "classes": [
            "b-btn",
            "b-btn--danger",
            "b-btn--primary",
            "b-code",
            "b-code__header",
            "b-gap-2",
            "b-hstack",
            "b-stack--wrap",
            "b-table",
            "b-table-wrap"
          ],
          "markup": "<div class=\"b-hstack b-gap-2 b-stack--wrap\">\n  <button class=\"b-btn b-btn--primary\">Primary \u2014 your brand</button>\n  <button class=\"b-btn b-btn--danger\">Delete \u2014 still unmistakably not that</button>\n</div>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-hstack b-gap-2 b-stack--wrap\">\n  <Button variant=\"primary\">Primary \u2014 your brand</Button>\n  <Button variant=\"danger\">Delete \u2014 still unmistakably not that</Button>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "leave-alone",
          "title": "What not to override",
          "category": "theming",
          "url": "https://ui.barua.tz/docs/theming.html#leave-alone",
          "summary": "Accent tokens are yours. The greyscale is not: --b-text , --b-text-secondary , --b-surface , --b-separator and the fills carry the contrast contract that every component is built against, in both themes at once. Change those and you are not theming the system, you are replacing its foundation \u2014 and the accessible contrast that came free stops being guaranteed.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "scoping",
          "title": "Scope it when the colour means something",
          "category": "theming",
          "url": "https://ui.barua.tz/docs/theming.html#scoping",
          "summary": "Overriding on :root themes the product. Putting the same tokens on a class themes a region \u2014 useful for a tenant, an environment banner, or one board among many. The tokens cascade, so anything inside picks them up.",
          "classes": [
            "b-code",
            "b-code__header"
          ],
          "markup": ""
        }
      ]
    },
    {
      "id": "wallpapers",
      "title": "Wallpapers \u2014 pictures shipped finished: sized, blurred, with the accent and scheme already worked out",
      "url": "https://ui.barua.tz/docs/wallpapers.html",
      "components": [
        {
          "id": "what-is-baked",
          "title": "What was worked out beforehand",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#what-is-baked",
          "summary": "Four things, each with exactly one answer per picture, so computing them per visitor is repeating a settled question:",
          "classes": [],
          "markup": ""
        },
        {
          "id": "wall-city",
          "title": "City",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-city",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/city/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        },
        {
          "id": "wall-desk",
          "title": "Desk",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-desk",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/desk/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        },
        {
          "id": "wall-team",
          "title": "Team",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-team",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/team/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        },
        {
          "id": "wall-dune-light",
          "title": "Dune Light",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-dune-light",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/dune-light/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        },
        {
          "id": "wall-dusk-ridge",
          "title": "Dusk Ridge",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-dusk-ridge",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/dusk-ridge/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        },
        {
          "id": "wall-forest-fog",
          "title": "Forest Fog",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-forest-fog",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-text-tertiary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/forest-fog/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        },
        {
          "id": "wall-night-coast",
          "title": "Night Coast",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-night-coast",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/night-coast/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        },
        {
          "id": "wall-salt-flat",
          "title": "Salt Flat",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-salt-flat",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/salt-flat/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        },
        {
          "id": "wall-still-water",
          "title": "Still Water",
          "category": "wallpapers",
          "url": "https://ui.barua.tz/docs/wallpapers.html#wall-still-water",
          "summary": "",
          "classes": [
            "b-caption",
            "b-code",
            "b-code__copy",
            "b-code__header",
            "b-gap-4",
            "b-has-wallpaper",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall"
          ],
          "markup": "<div class=\"docs-wall\" style=\"background-image: url('../wallpapers/still-water/full.jpg')\">\n  <div class=\"docs-wall__panel\">\n    <div class=\"docs-wall__panel-label\">Baked glass over this picture</div>\n    <p class=\"b-caption b-text-secondary\">Blurred once, at build time.</p>\n  </div>\n</div>",
          "knobs": [
            "--b-gap",
            "--b-wall-blur",
            "--b-wall-ground",
            "--b-wall-image"
          ]
        }
      ]
    },
    {
      "id": "react",
      "title": "React \u2014 the typed bindings: install, Server Components, and the component index",
      "url": "https://ui.barua.tz/docs/react.html",
      "components": [
        {
          "id": "install",
          "title": "Install",
          "category": "react",
          "url": "https://ui.barua.tz/docs/react.html#install",
          "summary": "One package, one stylesheet. The CSS is the system; the components only spare you from typing class names.",
          "classes": [
            "b-code",
            "b-code__header"
          ],
          "markup": ""
        },
        {
          "id": "first",
          "title": "The first component",
          "category": "react",
          "url": "https://ui.barua.tz/docs/react.html#first",
          "summary": "Props are the modifiers you already know. b-btn--primary is variant=\"primary\" ; there is nothing else to learn.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-gap-2",
            "b-hstack"
          ],
          "markup": "<div class=\"b-hstack b-gap-2\">\n  <button class=\"b-btn b-btn--primary\">Send invoice</button>\n  <button class=\"b-btn b-btn--ghost\">Save draft</button>\n</div>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-hstack b-gap-2\">\n  <Button variant=\"primary\">Send invoice</Button>\n  <Button variant=\"ghost\">Save draft</Button>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "server-components",
          "title": "Server Components",
          "category": "react",
          "url": "https://ui.barua.tz/docs/react.html#server-components",
          "summary": "The bundle carries its own \"use client\" , so importing from a Server Component works. Components that hold state \u2014 the provider, toasts, the command palette \u2014 still need a client boundary of their own, which is ordinary React, not a quirk of this library.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "theme",
          "title": "Theme",
          "category": "react",
          "url": "https://ui.barua.tz/docs/react.html#theme",
          "summary": "Light and dark come from light-dark() in the CSS, so the system already follows the operating system with no JavaScript at all. Reach for the provider only to override that choice, and add ThemeScript to stop the first paint flashing the wrong way.",
          "classes": [
            "b-code",
            "b-code__header"
          ],
          "markup": ""
        },
        {
          "id": "icons",
          "title": "Icons",
          "category": "react",
          "url": "https://ui.barua.tz/docs/react.html#icons",
          "summary": "The glyph library ships as a component, generated from the icons page \u2014 the same 59 glyphs, by name, with the sizes on the .b-icon scale.",
          "classes": [
            "b-code",
            "b-code__header",
            "b-gap-3",
            "b-hstack",
            "b-icon"
          ],
          "markup": "<div class=\"b-hstack b-gap-3\">\n  <svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 10.5 8.5 15 16 5.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  <svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13.5 13.5 3 3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  <svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3.5A4.5 4.5 0 0 1 14.5 8c0 3 1 4 1.5 4.5H4c.5-.5 1.5-1.5 1.5-4.5A4.5 4.5 0 0 1 10 3.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M8.5 15.5a1.6 1.6 0 0 0 3 0\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n</div>",
          "react": {
            "import": "import { Icon } from \"barua-ui\";",
            "components": [
              "Icon"
            ],
            "root": "Icon",
            "jsx": "<div className=\"b-hstack b-gap-3\">\n  <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M4 10.5 8.5 15 16 5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n  </Icon>\n  <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    <path d=\"m13.5 13.5 3 3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n  </Icon>\n  <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M10 3.5A4.5 4.5 0 0 1 14.5 8c0 3 1 4 1.5 4.5H4c.5-.5 1.5-1.5 1.5-4.5A4.5 4.5 0 0 1 10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    <path d=\"M8.5 15.5a1.6 1.6 0 0 0 3 0\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n  </Icon>\n</div>"
          },
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "escape-hatch",
          "title": "When a component is in the way",
          "category": "react",
          "url": "https://ui.barua.tz/docs/react.html#escape-hatch",
          "summary": "Nothing here is compulsory. Every component forwards className and its ref, so a class the props do not cover can always be added by hand \u2014 and any element can carry a system class directly. The React layer is a convenience, never a gate.",
          "classes": [
            "b-code",
            "b-code__header"
          ],
          "markup": ""
        },
        {
          "id": "components",
          "title": "What is exported",
          "category": "react",
          "url": "https://ui.barua.tz/docs/react.html#components",
          "summary": "278 components and hooks, covering every block in the system. The list is generated from the package, so it never claims more than it ships.",
          "classes": [
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        }
      ]
    },
    {
      "id": "foundations",
      "title": "Foundations \u2014 tokens, colour, type, materials, motion",
      "url": "https://ui.barua.tz/docs/foundations.html",
      "components": [
        {
          "id": "color-system",
          "title": "Color System",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#color-system",
          "summary": "Every color token is a light-dark() pair, so a single name is always correct in either scheme. The accent family drives buttons, links, focus and selection; re-tint the whole system with data-accent=\"indigo|purple|pink|teal|green\" on <html> .",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-btn",
            "b-btn--ghost",
            "b-btn--glass",
            "b-btn--primary",
            "b-btn--sm",
            "b-card",
            "b-card--glass",
            "b-card--neutral",
            "b-card__body",
            "b-card__header",
            "b-card__title",
            "b-footnote",
            "b-gap-2",
            "b-gap-3",
            "b-hstack",
            "b-link",
            "b-stack",
            "b-stack--wrap",
            "b-text-secondary",
            "b-wall",
            "b-wallpaper-scope"
          ],
          "markup": "<div class=\"b-hstack b-stack--wrap b-gap-2\">\n  <button class=\"b-btn b-btn--glass b-btn--sm\" onclick=\"baruaWallDemo('../examples/assets/ambient-bg.svg')\">Papercut</button>\n  <button class=\"b-btn b-btn--glass b-btn--sm\" onclick=\"baruaWallDemo('../examples/assets/cave-wall.svg')\">Cave wall</button>\n  <label class=\"b-btn b-btn--primary b-btn--sm\">\n    Choose an image\u2026\n    <input type=\"file\" accept=\"image/*\" style=\"display: none\" onchange=\"baruaWallFile(this.files[0])\">\n  </label>\n  <button class=\"b-btn b-btn--ghost b-btn--sm\" onclick=\"baruaWallDemo(null)\">Bare wall</button>\n</div>\n\n<div id=\"wall-demo-frame\">\n  <div class=\"b-wall b-wallpaper-scope\" id=\"wall-demo\" style=\"padding: var(--b-space-6); border-radius: var(--b-radius-xl)\">\n    <article class=\"b-card b-card--neutral\" style=\"max-width: 21rem\">\n      <div class=\"b-card__header\">\n        <div class=\"b-card__title\">Glass needs a backdrop</div>\n        <span class=\"b-badge b-badge--accent\">Live</span>\n      </div>\n      <div class=\"b-card__body b-stack b-gap-2\">\n        <p class=\"b-footnote b-text-secondary\" style=\"margin: 0\">\n          Change the wall and watch the material, the ink and the\n          accent all answer to the picture.\n        </p>\n        <span><button class=\"b-btn b-btn--primary b-btn--sm\">Action</button></span>\n      </div>\n    </article>\n  </div>\n</div>\n\n<p class=\"b-footnote b-text-secondary\" style=\"margin: 0\"",
          "react": {
            "import": "import { Badge, Button, Card, CardBody, CardHeader, CardTitle, Footnote, Wall } from \"barua-ui\";",
            "components": [
              "Badge",
              "Button",
              "Card",
              "CardBody",
              "CardHeader",
              "CardTitle",
              "Footnote",
              "Wall"
            ],
            "root": "Badge",
            "jsx": "<div className=\"b-hstack b-stack--wrap b-gap-2\">\n  <Button\n    variant=\"glass\"\n    size=\"sm\"\n    onclick=\"baruaWallDemo('../examples/assets/ambient-bg.svg')\"\n  >\n    Papercut\n  </Button>\n  <Button\n    variant=\"glass\"\n    size=\"sm\"\n    onclick=\"baruaWallDemo('../examples/assets/cave-wall.svg')\"\n  >\n    Cave wall\n  </Button>\n  <Button variant=\"primary\" size=\"sm\">\n    Choose an image\u2026\n    <input type=\"file\" accept=\"image/*\" style={{ display: \"none\" }} onchange=\"baruaWallFile(this.files[0])\" />\n  </Button>\n  <Button variant=\"ghost\" size=\"sm\" onclick=\"baruaWallDemo(null)\">Bare wall</Button>\n</div>\n<div id=\"wall-demo-frame\">\n  <Wall\n    className=\"b-wallpaper-scope\"\n    id=\"wall-demo\"\n    style={{ padding: \"var(--b-space-6)\", borderRadius: \"var(--b-radius-xl)\" }}\n  >\n    <Card className=\"b-card--neutral\" style={{ maxWidth: \"21rem\" }}>\n      <CardHeader>\n        <CardTitle>Glass needs a backdrop</CardTitle>\n        <Badge variant=\"accent\">Live</Badge>\n      </CardHeader>\n      <CardBody className=\"b-stack b-gap-2\">\n        <Footnote className=\"b-text-secondary\" style={{ margin: \"0\" }}>Change the wall and watch the material, the ink and the accent all answer to the picture.</Footnote>\n        <span>\n          <Button variant=\"primary\" size=\"sm\">Action</Button>\n        </span>\n      </CardBody>\n    </Card>\n  </Wall>\n</div>"
          },
          "variants": [
            {
              "id": "system-colors",
              "title": "System colors"
            },
            {
              "id": "grays",
              "title": "Grays"
            },
            {
              "id": "backgrounds-surfaces",
              "title": "Backgrounds & surfaces"
            },
            {
              "id": "text-hierarchy",
              "title": "Text hierarchy"
            },
            {
              "id": "wallpaper",
              "title": "Wallpaper"
            },
            {
              "id": "adaptive-accent",
              "title": "Adaptive accent & scheme"
            }
          ],
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-wall-ground",
            "--b-wall-image"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "typography",
          "title": "Typography",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#typography",
          "summary": "A text style is a whole set of metrics, not a size: every role below states its own size, weight, leading and tracking together. Small text is not body text made smaller \u2014 a caption opens its tracking slightly and tightens its leading, which is why inheriting those values from the page would be wrong. Headings of the same size as a role use the same metrics as that role, so <h5> and .b-headline are typographically identical.",
          "classes": [
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "font-scale",
          "title": "Font Scale",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#font-scale",
          "summary": "The Apple HIG scale, exposed as one class per role. Elements h1 \u2013 h6 map onto it automatically; use the classes when semantics and size need to differ \u2014 a card title that is an h3 but should read as a headline, for instance.",
          "classes": [
            "b-body",
            "b-callout",
            "b-caption",
            "b-footnote",
            "b-headline",
            "b-large-title",
            "b-overline",
            "b-subheadline",
            "b-tabular-nums",
            "b-text-tertiary",
            "b-text-uppercase",
            "b-title1",
            "b-title2",
            "b-title3",
            "b-truncate"
          ],
          "markup": ""
        },
        {
          "id": "spacing",
          "title": "Spacing",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#spacing",
          "summary": "A 4px base scale. Use 1\u20133 for padding inside controls, 4\u20136 between related elements, 8\u201312 between groups, and 16\u201324 between page sections. If a gap isn't on the scale, it isn't in the system.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "grid",
          "title": "Grid",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#grid",
          "summary": ".b-grid is 12 columns by default; set --b-cols or use .b-grid--2/3/4/6 for equal tracks, and span with .b-col-span-* . .b-grid--auto auto-fills against --b-col-min , and .b-card-grid / .b-masonry handle card walls without media queries. Gaps come from the spacing scale via .b-gap-* .",
          "classes": [
            "b-col-span-4",
            "b-col-span-6",
            "b-col-span-full",
            "b-footnote",
            "b-grid",
            "b-grid--3",
            "b-panel",
            "b-text-center"
          ],
          "markup": "<div class=\"b-grid b-grid--3\">\n  <div class=\"b-panel b-text-center b-footnote\" style=\"padding: var(--b-space-3)\">1 / 3</div>\n  <div class=\"b-panel b-text-center b-footnote\" style=\"padding: var(--b-space-3)\">1 / 3</div>\n  <div class=\"b-panel b-text-center b-footnote\" style=\"padding: var(--b-space-3)\">1 / 3</div>\n</div>\n<div class=\"b-grid\">\n  <div class=\"b-panel b-text-center b-footnote b-col-span-6\" style=\"padding: var(--b-space-3)\">span 6</div>\n  <div class=\"b-panel b-text-center b-footnote b-col-span-6\" style=\"padding: var(--b-space-3)\">span 6</div>\n  <div class=\"b-panel b-text-center b-footnote b-col-span-4\" style=\"padding: var(--b-space-3)\">span 4</div>\n  <div class=\"b-panel b-text-center b-footnote b-col-span-4\" style=\"padding: var(--b-space-3)\">span 4</div>\n  <div class=\"b-panel b-text-center b-footnote b-col-span-4\" style=\"padding: var(--b-space-3)\">span 4</div>\n  <div class=\"b-panel b-text-center b-footnote b-col-span-full\" style=\"padding: var(--b-space-3)\">span full</div>\n</div>",
          "react": {
            "import": "import { Footnote, Grid } from \"barua-ui\";",
            "components": [
              "Footnote",
              "Grid"
            ],
            "root": "Grid",
            "jsx": "<Grid cols={3}>\n  <Footnote\n    className=\"b-panel b-text-center\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    1 / 3\n  </Footnote>\n  <Footnote\n    className=\"b-panel b-text-center\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    1 / 3\n  </Footnote>\n  <Footnote\n    className=\"b-panel b-text-center\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    1 / 3\n  </Footnote>\n</Grid>\n<Grid>\n  <Footnote\n    className=\"b-panel b-text-center b-col-span-6\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    span 6\n  </Footnote>\n  <Footnote\n    className=\"b-panel b-text-center b-col-span-6\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    span 6\n  </Footnote>\n  <Footnote\n    className=\"b-panel b-text-center b-col-span-4\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    span 4\n  </Footnote>\n  <Footnote\n    className=\"b-panel b-text-center b-col-span-4\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    span 4\n  </Footnote>\n  <Footnote\n    className=\"b-panel b-text-center b-col-span-4\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    span 4\n  </Footnote>\n  <Footnote\n    className=\"b-panel b-text-center b-col-span-full\"\n    style={{ padding: \"var(--b-space-3)\" }}\n  >\n    span full\n  </Footnote>\n</Grid>"
          },
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "layout",
          "title": "Layout",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#layout",
          "summary": "SwiftUI-style primitives: .b-vstack and .b-hstack flow content with a token gap, and .b-spacer absorbs the leftover space \u2014 that trio builds most toolbars and headers. .b-container centers a page column, .b-section spaces bands of content, and .b-split + .b-panel make resizable multi-pane layouts.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-btn--sm",
            "b-footnote",
            "b-gap-1",
            "b-headline",
            "b-hstack",
            "b-panel",
            "b-spacer",
            "b-table",
            "b-table-wrap",
            "b-text-secondary",
            "b-vstack"
          ],
          "markup": "<div class=\"b-hstack b-panel\" style=\"padding: var(--b-space-3)\">\n  <span class=\"b-headline\">Inbox</span>\n  <span class=\"b-spacer\"></span>\n  <button class=\"b-btn b-btn--sm\">Filter</button>\n  <button class=\"b-btn b-btn--primary b-btn--sm\">Compose</button>\n</div>\n<div class=\"b-vstack b-gap-1 b-panel\" style=\"padding: var(--b-space-3)\">\n  <span class=\"b-headline\">VStack</span>\n  <span class=\"b-footnote b-text-secondary\">Children flow vertically; the gap comes from --b-gap.</span>\n</div>",
          "react": {
            "import": "import { Button, Footnote, Spacer } from \"barua-ui\";",
            "components": [
              "Button",
              "Footnote",
              "Spacer"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-hstack b-panel\" style={{ padding: \"var(--b-space-3)\" }}>\n  <span className=\"b-headline\">Inbox</span>\n  <Spacer></Spacer>\n  <Button size=\"sm\">Filter</Button>\n  <Button variant=\"primary\" size=\"sm\">Compose</Button>\n</div>\n<div\n  className=\"b-vstack b-gap-1 b-panel\"\n  style={{ padding: \"var(--b-space-3)\" }}\n>\n  <span className=\"b-headline\">VStack</span>\n  <Footnote className=\"b-text-secondary\">Children flow vertically; the gap comes from --b-gap.</Footnote>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "breakpoints",
          "title": "Breakpoints",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#breakpoints",
          "summary": "Custom properties can't drive @media , so breakpoints are a convention: six shared stops, written by value, always mobile-first with @media (min-width: \u2026) . Base styles serve the phone; each stop only adds.",
          "classes": [
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "border-radius",
          "title": "Border Radius",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#border-radius",
          "summary": "Corners grow with the surface, Apple-style: xs for inline code and checkboxes, sm for chips and kbd, md for buttons, inputs and menus, lg for panels and toolbars, xl for cards and modals, 2xl for sheets, and full for pills and avatars. Never give a small control a bigger radius than the surface it sits on.",
          "classes": [
            "b-caption2",
            "b-gap-1",
            "b-stack",
            "b-stack--center",
            "b-text-tertiary"
          ],
          "markup": "<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6rem; height: 4rem; background: var(--b-color-accent-soft); border: 1px solid var(--b-color-accent); border-radius: var(--b-radius-xs)\"></div>\n  <code>--b-radius-xs</code>\n  <span class=\"b-caption2 b-text-tertiary\">4px</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6rem; height: 4rem; background: var(--b-color-accent-soft); border: 1px solid var(--b-color-accent); border-radius: var(--b-radius-sm)\"></div>\n  <code>--b-radius-sm</code>\n  <span class=\"b-caption2 b-text-tertiary\">6px</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6rem; height: 4rem; background: var(--b-color-accent-soft); border: 1px solid var(--b-color-accent); border-radius: var(--b-radius-md)\"></div>\n  <code>--b-radius-md</code>\n  <span class=\"b-caption2 b-text-tertiary\">10px</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6rem; height: 4rem; background: var(--b-color-accent-soft); border: 1px solid var(--b-color-accent); border-radius: var(--b-radius-lg)\"></div>\n  <code>--b-radius-lg</code>\n  <span class=\"b-caption2 b-text-tertiary\">14px</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6rem; height: 4rem; background: var(--b-color-accent-soft); border: 1px solid var(--b-color-accent); border-radius: var(--b-radius-",
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "shadows",
          "title": "Shadows",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#shadows",
          "summary": "Soft, layered, never harsh \u2014 each token stacks a contact shadow with a wide ambient one, and --b-shadow-color deepens automatically in dark mode. --b-shadow-accent is a blue glow reserved for the FAB and other floating accent controls. Prefer the elevation tokens below, which pair these with a hairline ring.",
          "classes": [
            "b-gap-1",
            "b-stack",
            "b-stack--center"
          ],
          "markup": "<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); background: var(--b-surface); box-shadow: var(--b-shadow-xs)\"></div>\n  <code>--b-shadow-xs</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); background: var(--b-surface); box-shadow: var(--b-shadow-sm)\"></div>\n  <code>--b-shadow-sm</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); background: var(--b-surface); box-shadow: var(--b-shadow-md)\"></div>\n  <code>--b-shadow-md</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); background: var(--b-surface); box-shadow: var(--b-shadow-lg)\"></div>\n  <code>--b-shadow-lg</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); background: var(--b-surface); box-shadow: var(--b-shadow-xl)\"></div>\n  <code>--b-shadow-xl</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); background: var(--b-surface); box-shadow: var(--b-shadow-accent)\"></div>\n  <code>--b-shadow-accent</code>\n</div>",
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "elevation",
          "title": "Elevation",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#elevation",
          "summary": "The elevation ladder pairs each shadow with a 1px hairline ring ( --b-ring ) so edges stay crisp on any background. Use the utilities: 1 for resting cards, 2 for raised cards and glass toolbars, 3 for menus and popovers, 4 for modals and drawers, 5 for the command palette. Level 0 removes elevation for flush surfaces.",
          "classes": [
            "b-elevation-1",
            "b-elevation-2",
            "b-elevation-3",
            "b-elevation-4",
            "b-elevation-5",
            "b-gap-2",
            "b-radius-lg",
            "b-stack",
            "b-stack--center"
          ],
          "markup": "<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-elevation-1 b-radius-lg\" style=\"width: 6.5rem; height: 4rem; background: var(--b-surface)\"></div>\n  <code>.b-elevation-1</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-elevation-2 b-radius-lg\" style=\"width: 6.5rem; height: 4rem; background: var(--b-surface)\"></div>\n  <code>.b-elevation-2</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-elevation-3 b-radius-lg\" style=\"width: 6.5rem; height: 4rem; background: var(--b-surface)\"></div>\n  <code>.b-elevation-3</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-elevation-4 b-radius-lg\" style=\"width: 6.5rem; height: 4rem; background: var(--b-surface)\"></div>\n  <code>.b-elevation-4</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-elevation-5 b-radius-lg\" style=\"width: 6.5rem; height: 4rem; background: var(--b-surface)\"></div>\n  <code>.b-elevation-5</code>\n</div>",
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "opacity",
          "title": "Opacity",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#opacity",
          "summary": "Three stops, three meanings. hover (0.85) dims media and imagery under the pointer, muted (0.6) de-emphasizes without disabling, and disabled (0.4) is applied automatically by :disabled and .is-disabled \u2014 never hand-roll a disabled look.",
          "classes": [
            "b-caption2",
            "b-gap-1",
            "b-stack",
            "b-stack--center",
            "b-text-tertiary"
          ],
          "markup": "<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 5.5rem; height: 3.5rem; border-radius: var(--b-radius-md); background: var(--b-color-accent)\"></div>\n  <code>base</code>\n  <span class=\"b-caption2 b-text-tertiary\">1</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 5.5rem; height: 3.5rem; border-radius: var(--b-radius-md); background: var(--b-color-accent); opacity: var(--b-opacity-hover)\"></div>\n  <code>--b-opacity-hover</code>\n  <span class=\"b-caption2 b-text-tertiary\">0.85</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 5.5rem; height: 3.5rem; border-radius: var(--b-radius-md); background: var(--b-color-accent); opacity: var(--b-opacity-muted)\"></div>\n  <code>--b-opacity-muted</code>\n  <span class=\"b-caption2 b-text-tertiary\">0.6</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 5.5rem; height: 3.5rem; border-radius: var(--b-radius-md); background: var(--b-color-accent); opacity: var(--b-opacity-disabled)\"></div>\n  <code>--b-opacity-disabled</code>\n  <span class=\"b-caption2 b-text-tertiary\">0.4</span>\n</div>",
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "blur",
          "title": "Blur",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#blur",
          "summary": "The blur scale feeds the glass materials. Rather than using raw blur values, reach for the composite filters: --b-glass-light (blur-sm + saturate 1.6), --b-glass (blur-lg + saturate 1.8) and --b-glass-heavy (blur-xl + saturate 2) \u2014 the saturation boost is what makes color glow through the pane.",
          "classes": [
            "b-caption2",
            "b-gap-1",
            "b-stack",
            "b-stack--center",
            "b-text-tertiary"
          ],
          "markup": "<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); border: 1px solid var(--b-hairline); -webkit-backdrop-filter: blur(var(--b-blur-xs)); backdrop-filter: blur(var(--b-blur-xs))\"></div>\n  <code>--b-blur-xs</code>\n  <span class=\"b-caption2 b-text-tertiary\">4px</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); border: 1px solid var(--b-hairline); -webkit-backdrop-filter: blur(var(--b-blur-sm)); backdrop-filter: blur(var(--b-blur-sm))\"></div>\n  <code>--b-blur-sm</code>\n  <span class=\"b-caption2 b-text-tertiary\">8px</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); border: 1px solid var(--b-hairline); -webkit-backdrop-filter: blur(var(--b-blur-md)); backdrop-filter: blur(var(--b-blur-md))\"></div>\n  <code>--b-blur-md</code>\n  <span class=\"b-caption2 b-text-tertiary\">16px</span>\n</div>\n<div class=\"b-stack b-stack--center b-gap-1\">\n  <div style=\"width: 6.5rem; height: 4rem; border-radius: var(--b-radius-lg); border: 1px solid var(--b-hairline); -webkit-backdrop-filter: blur(var(--b-blur-lg)); backdrop-filter: blur(var(--b-blur-lg))\"></div>\n  <code>--b-blur-lg</code>\n  <span class=\"b-caption2 b-text-tertiary\">24px</span>\n</div>\n<div class=\"b-",
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "materials",
          "title": "Materials",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#materials",
          "summary": "Five glass thicknesses, from a whisper to nearly opaque. Thinner materials show more of what's behind but hold less legible content \u2014 use ultrathin and thin for hover surfaces, regular for floating toolbars and glass cards, thick for sheets, and chrome for app bars. .b-material-accent adds a Barua-blue tint. Each class pairs its --b-material-*-bg token with the --b-glass backdrop filter and a hairline border.",
          "classes": [
            "b-backplate",
            "b-callout",
            "b-caption",
            "b-code",
            "b-code__header",
            "b-flex",
            "b-flex--center",
            "b-footnote",
            "b-gap-2",
            "b-headline",
            "b-material-chrome",
            "b-material-regular",
            "b-material-thick",
            "b-material-thin",
            "b-material-ultrathin",
            "b-radius-lg",
            "b-stack",
            "b-stack--center",
            "b-subheadline",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-material-ultrathin b-radius-lg b-flex b-flex--center b-callout\" style=\"width: 7rem; height: 4.5rem\">Aa</div>\n  <code>.b-material-ultrathin</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-material-thin b-radius-lg b-flex b-flex--center b-callout\" style=\"width: 7rem; height: 4.5rem\">Aa</div>\n  <code>.b-material-thin</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-material-regular b-radius-lg b-flex b-flex--center b-callout\" style=\"width: 7rem; height: 4.5rem\">Aa</div>\n  <code>.b-material-regular</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-material-thick b-radius-lg b-flex b-flex--center b-callout\" style=\"width: 7rem; height: 4.5rem\">Aa</div>\n  <code>.b-material-thick</code>\n</div>\n<div class=\"b-stack b-stack--center b-gap-2\">\n  <div class=\"b-material-chrome b-radius-lg b-flex b-flex--center b-callout\" style=\"width: 7rem; height: 4.5rem\">Aa</div>\n  <code>.b-material-chrome</code>\n</div>",
          "react": {
            "import": "import { Callout } from \"barua-ui\";",
            "components": [
              "Callout"
            ],
            "root": "Callout",
            "jsx": "<div className=\"b-stack b-stack--center b-gap-2\">\n  <Callout\n    className=\"b-material-ultrathin b-radius-lg b-flex b-flex--center\"\n    style={{ width: \"7rem\", height: \"4.5rem\" }}\n  >\n    Aa\n  </Callout>\n  <code>.b-material-ultrathin</code>\n</div>\n<div className=\"b-stack b-stack--center b-gap-2\">\n  <Callout\n    className=\"b-material-thin b-radius-lg b-flex b-flex--center\"\n    style={{ width: \"7rem\", height: \"4.5rem\" }}\n  >\n    Aa\n  </Callout>\n  <code>.b-material-thin</code>\n</div>\n<div className=\"b-stack b-stack--center b-gap-2\">\n  <Callout\n    className=\"b-material-regular b-radius-lg b-flex b-flex--center\"\n    style={{ width: \"7rem\", height: \"4.5rem\" }}\n  >\n    Aa\n  </Callout>\n  <code>.b-material-regular</code>\n</div>\n<div className=\"b-stack b-stack--center b-gap-2\">\n  <Callout\n    className=\"b-material-thick b-radius-lg b-flex b-flex--center\"\n    style={{ width: \"7rem\", height: \"4.5rem\" }}\n  >\n    Aa\n  </Callout>\n  <code>.b-material-thick</code>\n</div>\n<div className=\"b-stack b-stack--center b-gap-2\">\n  <Callout\n    className=\"b-material-chrome b-radius-lg b-flex b-flex--center\"\n    style={{ width: \"7rem\", height: \"4.5rem\" }}\n  >\n    Aa\n  </Callout>\n  <code>.b-material-chrome</code>\n</div>"
          },
          "variants": [
            {
              "id": "baked-glass",
              "title": "Baked glass"
            },
            {
              "id": "backplate",
              "title": "Backplate"
            }
          ],
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "borders-dividers",
          "title": "Borders & Dividers",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#borders-dividers",
          "summary": "Four weights of edge, all translucent so they sit naturally on any surface: --b-hairline for glass edges and elevation rings, --b-separator for list rows and card borders, --b-border for inputs and controls, and --b-border-strong for their hover state. .b-divider draws separator rules \u2014 vertical inside an hstack, labeled for timeline breaks, and inset to align with list content.",
          "classes": [
            "b-divider",
            "b-divider--label",
            "b-divider--vertical",
            "b-hstack"
          ],
          "markup": "<div class=\"b-hstack\">\n  <span>Reply</span>\n  <hr class=\"b-divider b-divider--vertical\">\n  <span>Forward</span>\n  <hr class=\"b-divider b-divider--vertical\">\n  <span>Archive</span>\n</div>\n<hr class=\"b-divider\">\n<div class=\"b-divider b-divider--label\">Yesterday</div>",
          "react": {
            "import": "import { Divider } from \"barua-ui\";",
            "components": [
              "Divider"
            ],
            "root": "Divider",
            "jsx": "<div className=\"b-hstack\">\n  <span>Reply</span>\n  <Divider vertical />\n  <span>Forward</span>\n  <Divider vertical />\n  <span>Archive</span>\n</div>\n<Divider />\n<Divider label>Yesterday</Divider>"
          },
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "motion",
          "title": "Motion",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#motion",
          "summary": "Motion is quick, physical and quiet: five durations, five curves, and nothing animates that doesn't communicate. Small state changes use instant and fast ; surfaces that move use slow with the spring curve. Everything collapses to near zero under prefers-reduced-motion \u2014 see Accessibility.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-card",
            "b-card--interactive",
            "b-card__body",
            "b-chip",
            "b-footnote",
            "b-progress",
            "b-progress--indeterminate",
            "b-progress__fill",
            "b-spinner",
            "b-spinner--lg",
            "b-table",
            "b-table-wrap"
          ],
          "markup": "<span class=\"b-chip\">instant \u00b7 100ms</span>\n<span class=\"b-chip\">fast \u00b7 150ms</span>\n<span class=\"b-chip\">normal \u00b7 250ms</span>\n<span class=\"b-chip\">slow \u00b7 350ms</span>\n<span class=\"b-chip\">slower \u00b7 500ms</span>\n<span class=\"b-chip\">standard \u00b7 default</span>\n<span class=\"b-chip\">out \u00b7 entrances</span>\n<span class=\"b-chip\">in \u00b7 exits</span>\n<span class=\"b-chip\">spring \u00b7 sheets</span>\n<span class=\"b-chip\">bounce \u00b7 overshoot</span>",
          "react": {
            "import": "import { Chip } from \"barua-ui\";",
            "components": [
              "Chip"
            ],
            "root": "Chip",
            "jsx": "<Chip>instant \u00b7 100ms</Chip>\n<Chip>fast \u00b7 150ms</Chip>\n<Chip>normal \u00b7 250ms</Chip>\n<Chip>slow \u00b7 350ms</Chip>\n<Chip>slower \u00b7 500ms</Chip>\n<Chip>standard \u00b7 default</Chip>\n<Chip>out \u00b7 entrances</Chip>\n<Chip>in \u00b7 exits</Chip>\n<Chip>spring \u00b7 sheets</Chip>\n<Chip>bounce \u00b7 overshoot</Chip>"
          },
          "variants": [
            {
              "id": "motion-transitions",
              "title": "Transitions"
            },
            {
              "id": "motion-animation",
              "title": "Animation"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-progress"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "iconography",
          "title": "Iconography",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#iconography",
          "summary": "Icons are inline SVG \u2014 no font, no sprite request. Draw on a 20\u00d720 viewBox with a 1.5 stroke, stroke=\"currentColor\" and round caps and joins, so every icon inherits text color and matches the SF Symbols weight. .b-icon sizes the box ( --sm 16, default 20, --lg 24, --xl 32) and .b-icon-tile seats an icon on an accent-soft tile for list leaders and feature rows. Decorative icons take aria-hidden=\"true\" .",
          "classes": [
            "b-icon",
            "b-icon--lg",
            "b-icon--sm",
            "b-icon--xl",
            "b-icon-tile"
          ],
          "markup": "<span class=\"b-icon b-icon--sm\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n</span>\n<span class=\"b-icon\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n</span>\n<span class=\"b-icon b-icon--lg\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n</span>\n<span class=\"b-icon b-icon--xl\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n</span>\n<span class=\"b-icon-tile\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m4 7 6 4.5L16 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n</span>\n<span class=\"b-icon-tile\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n</span>",
          "react": {
            "import": "import { Icon, IconTile } from \"barua-ui\";",
            "components": [
              "Icon",
              "IconTile"
            ],
            "root": "Icon",
            "jsx": "<Icon className=\"b-icon--sm\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Icon>\n<Icon>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Icon>\n<Icon className=\"b-icon--lg\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Icon>\n<Icon className=\"b-icon--xl\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Icon>\n<IconTile>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    <path d=\"m4 7 6 4.5L16 7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n  </svg>\n</IconTile>\n<IconTile>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</IconTile>"
          }
        },
        {
          "id": "accessibility",
          "title": "Accessibility",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#accessibility",
          "summary": "Accessibility is baked into the tokens, not bolted on. The focus ring ( --b-focus-ring , a 3.5px accent halo) appears on :focus-visible only \u2014 keyboards get it, mouse clicks don't. Tab through this demo to see it.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-input"
          ],
          "markup": "<button class=\"b-btn\">Tab to me</button>\n<button class=\"b-btn b-btn--primary\">Then me</button>\n<input class=\"b-input\" style=\"max-width: 16rem\" type=\"text\" placeholder=\"Focus shows the ring\">",
          "react": {
            "import": "import { Button, Input } from \"barua-ui\";",
            "components": [
              "Button",
              "Input"
            ],
            "root": "Button",
            "jsx": "<Button>Tab to me</Button>\n<Button variant=\"primary\">Then me</Button>\n<Input style={{ maxWidth: \"16rem\" }} type=\"text\" placeholder=\"Focus shows the ring\" />"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "dark-light",
          "title": "Dark Mode & Light Mode",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#dark-light",
          "summary": "The root declares color-scheme: light dark and every color token is a light-dark() pair, so the whole system follows the OS by default. Set data-theme=\"light|dark\" on <html> to force a scheme \u2014 the topbar's data-b-theme-toggle button does exactly that and persists the choice, which the inline <head> script restores before first paint to avoid a flash.",
          "classes": [
            "b-card",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title"
          ],
          "markup": "<div class=\"b-card\" style=\"width: 14rem\">\n    <div class=\"b-card__body\">\n      <div class=\"b-card__title\">Light</div>\n      <div class=\"b-card__subtitle\">color-scheme: light</div>\n    </div>\n  </div>\n</div>\n<div style=\"color-scheme: dark; background: var(--b-bg); padding: var(--b-space-4); border-radius: var(--b-radius-lg)\">\n  <div class=\"b-card\" style=\"width: 14rem\">\n    <div class=\"b-card__body\">\n      <div class=\"b-card__title\">Dark</div>\n      <div class=\"b-card__subtitle\">color-scheme: dark</div>\n    </div>\n  </div>",
          "react": {
            "import": "import { Card, CardBody, CardSubtitle, CardTitle } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "CardSubtitle",
              "CardTitle"
            ],
            "root": "Card",
            "jsx": "<Card style={{ width: \"14rem\" }}>\n  <CardBody>\n    <CardTitle>Light</CardTitle>\n    <CardSubtitle>color-scheme: light</CardSubtitle>\n  </CardBody>\n</Card>\n<div\n  style={{ colorScheme: \"dark\", background: \"var(--b-bg)\", padding: \"var(--b-space-4)\", borderRadius: \"var(--b-radius-lg)\" }}\n>\n  <Card style={{ width: \"14rem\" }}>\n    <CardBody>\n      <CardTitle>Dark</CardTitle>\n      <CardSubtitle>color-scheme: dark</CardSubtitle>\n    </CardBody>\n  </Card>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "responsive-rules",
          "title": "Responsive Rules",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#responsive-rules",
          "summary": "Mobile first, always: base styles serve the smallest screen, and each of the six breakpoints only adds. Most layouts shouldn't need media queries at all \u2014 .b-grid--auto , .b-card-grid and the stack primitives reflow on their own. When you do write one, use min-width at a shared stop.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "view-transitions",
          "title": "View Transitions",
          "category": "foundations",
          "url": "https://ui.barua.tz/docs/foundations.html#view-transitions",
          "summary": "Two things, on the platform's View Transitions API. Opt in with data-vt on <html> and same-origin navigations cross-fade on the system's motion tokens (180ms out, 220ms in). Off by default, disabled automatically under reduced motion, and inert in browsers without the API.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--glass",
            "b-btn--sm",
            "b-card",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title",
            "b-code",
            "b-code__header",
            "b-footnote",
            "b-gap-3",
            "b-hstack",
            "b-stack",
            "b-text-secondary",
            "b-thumb"
          ],
          "markup": "<div class=\"b-code\">\n  <div class=\"b-code__header\"><span>Page transitions</span></div>\n  <pre><code>&lt;html data-vt&gt;   &lt;!-- pages now cross-fade on navigation --&gt;</code></pre>\n</div>",
          "react": {
            "import": "import { CodeBlock } from \"barua-ui\";",
            "components": [
              "CodeBlock"
            ],
            "root": "CodeBlock",
            "jsx": "<CodeBlock>\n  <div className=\"b-code__header\">\n    <span>Page transitions</span>\n  </div>\n  <pre>\n    <code>\n      <html data-vt> <!-- pages now cross-fade on navigation -->\n    </code>\n  </pre>\n</CodeBlock>"
          },
          "variants": [
            {
              "id": "shared-elements",
              "title": "Shared elements"
            }
          ],
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-thumb-size"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        }
      ]
    },
    {
      "id": "icons",
      "title": "Icons \u2014 the 20\u00d720 glyph set",
      "url": "https://ui.barua.tz/docs/icons.html",
      "components": [
        {
          "id": "icon-usage",
          "title": "Usage",
          "category": "icons",
          "url": "https://ui.barua.tz/docs/icons.html#icon-usage",
          "summary": "Size icons with .b-icon (1.25rem), .b-icon--sm (1rem) or .b-icon--lg (1.75rem) instead of width/height attributes. Icons inherit currentColor , so they recolor with the component state \u2014 a tinted button tints its glyph for free. Decorative icons take aria-hidden=\"true\" ; icon-only buttons carry the label via aria-label .",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--glass",
            "b-btn--primary",
            "b-icon",
            "b-icon--sm",
            "b-icon-btn",
            "b-tooltip-host"
          ],
          "markup": "<button class=\"b-btn b-btn--primary\">\n  <svg class=\"b-icon b-icon--sm\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m3.5 10 13-6-3.5 13-3.5-4.5L3.5 10Zm6 2.5L13 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n  Send\n</button>\n<button class=\"b-btn b-btn--glass\">\n  <svg class=\"b-icon b-icon--sm\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 12.5v-9M7 6l3-2.8L13 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.5 9.5H5A1.5 1.5 0 0 0 3.5 11v4A1.5 1.5 0 0 0 5 16.5h10a1.5 1.5 0 0 0 1.5-1.5v-4A1.5 1.5 0 0 0 15 9.5h-.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  Share\n</button>\n<button class=\"b-btn b-icon-btn b-btn--ghost b-tooltip-host\" data-tooltip=\"Notifications\" aria-label=\"Notifications\">\n  <svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3.5A4.5 4.5 0 0 1 14.5 8c0 3 1 4 1.5 4.5H4c.5-.5 1.5-1.5 1.5-4.5A4.5 4.5 0 0 1 10 3.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M8.5 15.5a1.6 1.6 0 0 0 3 0\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n</button>",
          "react": {
            "import": "import { Button, Icon, Tooltip } from \"barua-ui\";",
            "components": [
              "Button",
              "Icon",
              "Tooltip"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"primary\">\n  <Icon\n    className=\"b-icon--sm\"\n    viewBox=\"0 0 20 20\"\n    fill=\"none\"\n    aria-hidden=\"true\"\n  >\n    <path d=\"m3.5 10 13-6-3.5 13-3.5-4.5L3.5 10Zm6 2.5L13 7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </Icon>\n  Send\n</Button>\n<Button variant=\"glass\">\n  <Icon\n    className=\"b-icon--sm\"\n    viewBox=\"0 0 20 20\"\n    fill=\"none\"\n    aria-hidden=\"true\"\n  >\n    <path d=\"M10 12.5v-9M7 6l3-2.8L13 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    <path d=\"M5.5 9.5H5A1.5 1.5 0 0 0 3.5 11v4A1.5 1.5 0 0 0 5 16.5h10a1.5 1.5 0 0 0 1.5-1.5v-4A1.5 1.5 0 0 0 15 9.5h-.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n  </Icon>\n  Share\n</Button>\n<Tooltip\n  className=\"b-btn b-icon-btn b-btn--ghost\"\n  data-tooltip=\"Notifications\"\n  aria-label=\"Notifications\"\n>\n  <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M10 3.5A4.5 4.5 0 0 1 14.5 8c0 3 1 4 1.5 4.5H4c.5-.5 1.5-1.5 1.5-4.5A4.5 4.5 0 0 1 10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    <path d=\"M8.5 15.5a1.6 1.6 0 0 0 3 0\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n  </Icon>\n</Tooltip>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "symbol-effects",
          "title": "Symbol effects",
          "category": "icons",
          "url": "https://ui.barua.tz/docs/icons.html#symbol-effects",
          "summary": "A glyph that answers an action is the cheapest feedback an interface has. Add one class to the icon rather than to the control, so a button keeps its own states. The division that matters is whether an effect plays once or repeats : one acknowledges something that just happened, the other describes something still happening. A repeating effect used as an acknowledgement is just noise.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-btn--sm",
            "b-btn--tinted",
            "b-caption",
            "b-caption2",
            "b-code",
            "b-code__header",
            "b-gap-2",
            "b-gap-4",
            "b-hstack",
            "b-icon",
            "b-icon--bounce",
            "b-icon--breathe",
            "b-icon--pulse",
            "b-icon--replace",
            "b-icon--rotate",
            "b-icon--scale",
            "b-icon--sm",
            "b-icon--wiggle",
            "b-stack--wrap",
            "b-table",
            "b-table-wrap",
            "b-text-secondary",
            "b-vstack"
          ],
          "markup": "<div class=\"docs-replay\">\n  <button class=\"b-btn b-btn--tinted b-btn--sm\" data-docs-replay=\"#symbol-demo\">Play</button>\n  <span class=\"b-caption b-text-secondary\">the one-shot effects have already run \u2014 press to see them</span>\n</div>\n<div class=\"b-hstack b-gap-4 b-stack--wrap\">\n  <span class=\"b-vstack b-gap-2\" style=\"align-items: center; min-width: 5rem\">\n    <svg class=\"b-icon b-icon--bounce\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m3.5 10 13-6-3.5 13-3.5-4.5L3.5 10Zm6 2.5L13 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n    <code class=\"b-caption2\">--bounce</code>\n  </span>\n  <span class=\"b-vstack b-gap-2\" style=\"align-items: center; min-width: 5rem\">\n    <svg class=\"b-icon b-icon--scale\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3l1.2 3.3 3.3 1.2-3.3 1.2L10 12 8.8 8.7 5.5 7.5l3.3-1.2L10 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n    <code class=\"b-caption2\">--scale</code>\n  </span>\n  <span class=\"b-vstack b-gap-2\" style=\"align-items: center; min-width: 5rem\">\n    <svg class=\"b-icon b-icon--wiggle\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3.5 3.5 15h13L10 3.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M10 8v3M10 13h.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    <code class=\"b-capti",
          "react": {
            "import": "import { Button, Icon } from \"barua-ui\";",
            "components": [
              "Button",
              "Icon"
            ],
            "root": "Button",
            "jsx": "<div className=\"docs-replay\">\n  <Button variant=\"tinted\" size=\"sm\" data-docs-replay=\"#symbol-demo\">Play</Button>\n  <span className=\"b-caption b-text-secondary\">the one-shot effects have already run \u2014 press to see them</span>\n</div>\n<div className=\"b-hstack b-gap-4 b-stack--wrap\">\n  <span\n    className=\"b-vstack b-gap-2\"\n    style={{ alignItems: \"center\", minWidth: \"5rem\" }}\n  >\n    <Icon\n      className=\"b-icon--bounce\"\n      viewBox=\"0 0 20 20\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <path d=\"m3.5 10 13-6-3.5 13-3.5-4.5L3.5 10Zm6 2.5L13 7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </Icon>\n    <code className=\"b-caption2\">--bounce</code>\n  </span>\n  <span\n    className=\"b-vstack b-gap-2\"\n    style={{ alignItems: \"center\", minWidth: \"5rem\" }}\n  >\n    <Icon\n      className=\"b-icon--scale\"\n      viewBox=\"0 0 20 20\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <path d=\"M10 3l1.2 3.3 3.3 1.2-3.3 1.2L10 12 8.8 8.7 5.5 7.5l3.3-1.2L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </Icon>\n    <code className=\"b-caption2\">--scale</code>\n  </span>\n  <span\n    className=\"b-vstack b-gap-2\"\n    style={{ alignItems: \"center\", minWidth: \"5rem\" }}\n  >\n    <Icon\n      className=\"b-icon--wiggle\"\n      viewBox=\"0 0 20 20\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <path d=\"M10 3.5 3.5 15h13L10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      <path d=\"M10 8v3M10 13h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </Icon>\n  </span>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "icon-library",
          "title": "Library",
          "category": "icons",
          "url": "https://ui.barua.tz/docs/icons.html#icon-library",
          "summary": "Fifty-nine core glyphs. Click to copy the SVG \u2014 paste it inline and add .b-icon . New icons must keep the grid, stroke and naming conventions; propose them here before using them in product.",
          "classes": [
            "b-icon"
          ],
          "markup": ""
        }
      ]
    },
    {
      "id": "layout",
      "title": "Layout \u2014 stacks, grids, containers, stage, scroll areas",
      "url": "https://ui.barua.tz/docs/layout.html",
      "components": [
        {
          "id": "container",
          "title": "Container",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#container",
          "summary": ".b-container centers content and clamps its width \u2014 the default cap is --b-container-lg (64rem). Size variants swap the cap; --fluid removes it. Wider variants clamp to this page's width here, which is exactly what they'd do on a narrow viewport.",
          "classes": [
            "b-card__body",
            "b-container",
            "b-container--fluid",
            "b-container--md",
            "b-container--sm",
            "b-container--xl"
          ],
          "markup": "<div class=\"b-container b-container--sm\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">--sm \u00b7 40rem</div>\n</div>\n<div class=\"b-container b-container--md\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">--md \u00b7 48rem</div>\n</div>\n<div class=\"b-container\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">default \u00b7 64rem</div>\n</div>\n<div class=\"b-container b-container--xl\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">--xl \u00b7 80rem</div>\n</div>\n<div class=\"b-container b-container--fluid\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">--fluid \u00b7 no cap</div>\n</div>",
          "react": {
            "import": "import { CardBody, Container } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Container"
            ],
            "root": "Container",
            "jsx": "<Container size=\"sm\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    --sm \u00b7 40rem\n  </CardBody>\n</Container>\n<Container size=\"md\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    --md \u00b7 48rem\n  </CardBody>\n</Container>\n<Container>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    default \u00b7 64rem\n  </CardBody>\n</Container>\n<Container size=\"xl\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    --xl \u00b7 80rem\n  </CardBody>\n</Container>\n<Container size=\"fluid\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    --fluid \u00b7 no cap\n  </CardBody>\n</Container>"
          },
          "knobs": [
            "--b-billboard-h"
          ]
        },
        {
          "id": "stack",
          "title": "Stack (VStack)",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#stack",
          "summary": ".b-stack (alias .b-vstack ) is a vertical flex column with a token gap \u2014 the default building block for any view. Tune spacing with the gap scale \u2014 .b-gap-0 , .b-gap-1 , .b-gap-2 , .b-gap-3 , .b-gap-4 , .b-gap-6 , .b-gap-8 \u2014 instead of margins on children.",
          "classes": [
            "b-card__body",
            "b-gap-2",
            "b-grid",
            "b-grid--3",
            "b-stack",
            "b-stack--center",
            "b-stack--end",
            "b-stack--start"
          ],
          "markup": "<div class=\"b-stack b-gap-2\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">1</div>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">2</div>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">3</div>\n</div>",
          "react": {
            "import": "import { CardBody } from \"barua-ui\";",
            "components": [
              "CardBody"
            ],
            "root": "CardBody",
            "jsx": "<div className=\"b-stack b-gap-2\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    1\n  </CardBody>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    2\n  </CardBody>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    3\n  </CardBody>\n</div>"
          },
          "variants": [
            {
              "id": "stack-alignment",
              "title": "Alignment"
            }
          ],
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap"
          ]
        },
        {
          "id": "hstack",
          "title": "HStack",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#hstack",
          "summary": ".b-hstack lays children out in a row, vertically centered. The alignment modifiers are shared with Stack \u2014 add .b-stack--between to spread children across the row.",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-btn",
            "b-btn--sm",
            "b-btn--tinted",
            "b-card__body",
            "b-gap-2",
            "b-headline",
            "b-hstack",
            "b-spacer",
            "b-stack--between"
          ],
          "markup": "<div class=\"b-hstack b-gap-2\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">1</div>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">2</div>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">3</div>\n</div>\n<div class=\"b-hstack b-stack--between\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">1</div>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">2</div>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">3</div>\n</div>",
          "react": {
            "import": "import { CardBody } from \"barua-ui\";",
            "components": [
              "CardBody"
            ],
            "root": "CardBody",
            "jsx": "<div className=\"b-hstack b-gap-2\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    1\n  </CardBody>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    2\n  </CardBody>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    3\n  </CardBody>\n</div>\n<div className=\"b-hstack b-stack--between\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    1\n  </CardBody>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    2\n  </CardBody>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    3\n  </CardBody>\n</div>"
          },
          "variants": [
            {
              "id": "hstack-spacer",
              "title": "Title + Spacer + action"
            }
          ],
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "grid",
          "title": "Grid",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#grid",
          "summary": ".b-grid is a 12-column grid by default: set --b-cols (or a .b-grid--2/3/4/6 preset) and place children with .b-col-span-* classes.",
          "classes": [
            "b-card__body",
            "b-col-span-4",
            "b-col-span-6",
            "b-col-span-full",
            "b-grid",
            "b-grid--auto"
          ],
          "markup": "<div class=\"b-grid\">\n  <div class=\"b-col-span-4 b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">span 4</div>\n  <div class=\"b-col-span-4 b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">span 4</div>\n  <div class=\"b-col-span-4 b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">span 4</div>\n  <div class=\"b-col-span-6 b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">span 6</div>\n  <div class=\"b-col-span-6 b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">span 6</div>\n  <div class=\"b-col-span-full b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">span full</div>\n</div>",
          "react": {
            "import": "import { CardBody, Grid } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Grid"
            ],
            "root": "Grid",
            "jsx": "<Grid>\n  <CardBody\n    className=\"b-col-span-4\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    span 4\n  </CardBody>\n  <CardBody\n    className=\"b-col-span-4\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    span 4\n  </CardBody>\n  <CardBody\n    className=\"b-col-span-4\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    span 4\n  </CardBody>\n  <CardBody\n    className=\"b-col-span-6\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    span 6\n  </CardBody>\n  <CardBody\n    className=\"b-col-span-6\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    span 6\n  </CardBody>\n  <CardBody\n    className=\"b-col-span-full\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    span full\n  </CardBody>\n</Grid>"
          },
          "variants": [
            {
              "id": "grid-auto",
              "title": "Auto-fit"
            }
          ],
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap"
          ]
        },
        {
          "id": "flex",
          "title": "Flex",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#flex",
          "summary": "A thin display: flex shorthand for when a stack is too opinionated. --center and --between handle both axes; .b-grow and .b-shrink-0 tune individual children.",
          "classes": [
            "b-card__body",
            "b-flex",
            "b-flex--between",
            "b-grow",
            "b-shrink-0"
          ],
          "markup": "<div class=\"b-flex b-flex--between\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">--between</div>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">--between</div>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">--between</div>\n</div>\n<div class=\"b-flex\">\n  <div class=\"b-shrink-0 b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">fixed</div>\n  <div class=\"b-grow b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">b-grow</div>\n  <div class=\"b-shrink-0 b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">fixed</div>\n</div>",
          "react": {
            "import": "import { CardBody, Grow } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Grow"
            ],
            "root": "CardBody",
            "jsx": "<div className=\"b-flex b-flex--between\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    --between\n  </CardBody>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    --between\n  </CardBody>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    --between\n  </CardBody>\n</div>\n<div className=\"b-flex\">\n  <CardBody\n    className=\"b-shrink-0\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    fixed\n  </CardBody>\n  <Grow\n    className=\"b-card__body\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    b-grow\n  </Grow>\n  <CardBody\n    className=\"b-shrink-0\"\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    fixed\n  </CardBody>\n</div>"
          },
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "split-view",
          "title": "Split View",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#split-view",
          "summary": "Master\u2013detail in one line of markup: .b-split stretches .b-panel children to equal height with a .b-resize-handle between them. Make the sidebar .b-resizable and dragging is native CSS resize \u2014 no JavaScript.",
          "classes": [
            "b-card__body",
            "b-grow",
            "b-panel",
            "b-resizable",
            "b-resize-handle",
            "b-split"
          ],
          "markup": "<div class=\"b-split\" style=\"height: 12rem;\">\n  <div class=\"b-panel b-resizable\" style=\"flex: none; width: 13rem;\">\n    <div class=\"b-card__body\">Sidebar</div>\n  </div>\n  <div class=\"b-resize-handle\" role=\"separator\" aria-orientation=\"vertical\" aria-label=\"Resize sidebar\"></div>\n  <div class=\"b-panel b-grow\">\n    <div class=\"b-card__body\">Detail</div>\n  </div>\n</div>",
          "react": {
            "import": "import { CardBody, Grow, Resizable, ResizeHandle, Split } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Grow",
              "Resizable",
              "ResizeHandle",
              "Split"
            ],
            "root": "Split",
            "jsx": "<Split style={{ height: \"12rem\" }}>\n  <Resizable className=\"b-panel\" style={{ flex: \"none\", width: \"13rem\" }}>\n    <CardBody>Sidebar</CardBody>\n  </Resizable>\n  <ResizeHandle\n    role=\"separator\"\n    aria-orientation=\"vertical\"\n    aria-label=\"Resize sidebar\"\n  ></ResizeHandle>\n  <Grow className=\"b-panel\">\n    <CardBody>Detail</CardBody>\n  </Grow>\n</Split>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "resizable-panel",
          "title": "Resizable Panel",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#resizable-panel",
          "summary": ".b-resizable adds the browser's native resize grip to any panel \u2014 horizontal by default, --vertical for height. Look for the grip in the bottom-trailing corner; min and max bounds are built in.",
          "classes": [
            "b-card__body",
            "b-panel",
            "b-resizable",
            "b-resizable--vertical"
          ],
          "markup": "<div class=\"b-panel b-resizable\" style=\"width: 15rem;\">\n  <div class=\"b-card__body\">Drag my corner \u2192</div>\n</div>\n<div class=\"b-panel b-resizable b-resizable--vertical\" style=\"width: 15rem; height: 7rem;\">\n  <div class=\"b-card__body\">Drag me taller \u2193</div>\n</div>",
          "react": {
            "import": "import { CardBody, Resizable } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Resizable"
            ],
            "root": "Resizable",
            "jsx": "<Resizable className=\"b-panel\" style={{ width: \"15rem\" }}>\n  <CardBody>Drag my corner \u2192</CardBody>\n</Resizable>\n<Resizable\n  className=\"b-panel b-resizable--vertical\"\n  style={{ width: \"15rem\", height: \"7rem\" }}\n>\n  <CardBody>Drag me taller \u2193</CardBody>\n</Resizable>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "panel",
          "title": "Panel",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#panel",
          "summary": ".b-panel is the plain workhorse surface: surface background, hairline border, large radius. --plain strips the chrome for panels that only exist to scroll or resize.",
          "classes": [
            "b-card__body",
            "b-grid",
            "b-grid--2",
            "b-panel",
            "b-panel--plain"
          ],
          "markup": "<div class=\"b-grid b-grid--2\">\n  <div class=\"b-panel\">\n    <div class=\"b-card__body\">b-panel</div>\n  </div>\n  <div class=\"b-panel b-panel--plain\">\n    <div class=\"b-card__body\">b-panel--plain</div>\n  </div>\n</div>",
          "react": {
            "import": "import { CardBody, Grid } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Grid"
            ],
            "root": "Grid",
            "jsx": "<Grid cols={2}>\n  <div className=\"b-panel\">\n    <CardBody>b-panel</CardBody>\n  </div>\n  <div className=\"b-panel b-panel--plain\">\n    <CardBody>b-panel--plain</CardBody>\n  </div>\n</Grid>"
          },
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "section",
          "title": "Section",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#section",
          "summary": ".b-section adds generous block padding between page regions \u2014 the vertical rhythm of a landing or settings page. --tight is the compact cut. Dividers shown here only to make the padding visible.",
          "classes": [
            "b-card__body",
            "b-divider",
            "b-section",
            "b-section--tight"
          ],
          "markup": "<div>\n  <hr class=\"b-divider\">\n  <div class=\"b-section b-section--tight\">\n    <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">b-section--tight</div>\n  </div>\n  <hr class=\"b-divider\">\n  <div class=\"b-section\">\n    <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">b-section</div>\n  </div>\n  <hr class=\"b-divider\">\n</div>",
          "react": {
            "import": "import { CardBody, Divider, Section } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Divider",
              "Section"
            ],
            "root": "CardBody",
            "jsx": "<div>\n  <Divider />\n  <Section className=\"b-section--tight\">\n    <CardBody\n      style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n    >\n      b-section--tight\n    </CardBody>\n  </Section>\n  <Divider />\n  <Section>\n    <CardBody\n      style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n    >\n      b-section\n    </CardBody>\n  </Section>\n  <Divider />\n</div>"
          }
        },
        {
          "id": "card-grid",
          "title": "Card Grid",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#card-grid",
          "summary": "A responsive shelf of cards: auto-fill columns at least 17rem wide, token gap, no breakpoints. The default answer for dashboards and galleries.",
          "classes": [
            "b-card",
            "b-card-grid",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title"
          ],
          "markup": "<div class=\"b-card-grid\">\n  <article class=\"b-card\">\n    <div class=\"b-card__body\">\n      <div class=\"b-card__title\">Reports</div>\n      <div class=\"b-card__subtitle\">Weekly digest</div>\n    </div>\n  </article>\n  <article class=\"b-card\">\n    <div class=\"b-card__body\">\n      <div class=\"b-card__title\">Automations</div>\n      <div class=\"b-card__subtitle\">4 running</div>\n    </div>\n  </article>\n  <article class=\"b-card\">\n    <div class=\"b-card__body\">\n      <div class=\"b-card__title\">Contacts</div>\n      <div class=\"b-card__subtitle\">1,208 people</div>\n    </div>\n  </article>\n  <article class=\"b-card\">\n    <div class=\"b-card__body\">\n      <div class=\"b-card__title\">Billing</div>\n      <div class=\"b-card__subtitle\">Paid until March</div>\n    </div>\n  </article>\n</div>",
          "react": {
            "import": "import { Card, CardBody, CardGrid, CardSubtitle, CardTitle } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "CardGrid",
              "CardSubtitle",
              "CardTitle"
            ],
            "root": "CardGrid",
            "jsx": "<CardGrid>\n  <Card>\n    <CardBody>\n      <CardTitle>Reports</CardTitle>\n      <CardSubtitle>Weekly digest</CardSubtitle>\n    </CardBody>\n  </Card>\n  <Card>\n    <CardBody>\n      <CardTitle>Automations</CardTitle>\n      <CardSubtitle>4 running</CardSubtitle>\n    </CardBody>\n  </Card>\n  <Card>\n    <CardBody>\n      <CardTitle>Contacts</CardTitle>\n      <CardSubtitle>1,208 people</CardSubtitle>\n    </CardBody>\n  </Card>\n  <Card>\n    <CardBody>\n      <CardTitle>Billing</CardTitle>\n      <CardSubtitle>Paid until March</CardSubtitle>\n    </CardBody>\n  </Card>\n</CardGrid>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "masonry",
          "title": "Masonry",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#masonry",
          "summary": "CSS-columns masonry for content of uneven height \u2014 pins, notes, image cards. Items flow down each column in source order; cap the column count with --b-masonry-cols .",
          "classes": [
            "b-card",
            "b-card__body",
            "b-masonry"
          ],
          "markup": "<div class=\"b-masonry\">\n  <article class=\"b-card\">\n    <div class=\"b-card__body\" style=\"min-height: 5rem;\">1</div>\n  </article>\n  <article class=\"b-card\">\n    <div class=\"b-card__body\" style=\"min-height: 8rem;\">2</div>\n  </article>\n  <article class=\"b-card\">\n    <div class=\"b-card__body\" style=\"min-height: 3rem;\">3</div>\n  </article>\n  <article class=\"b-card\">\n    <div class=\"b-card__body\" style=\"min-height: 6rem;\">4</div>\n  </article>\n  <article class=\"b-card\">\n    <div class=\"b-card__body\" style=\"min-height: 4rem;\">5</div>\n  </article>\n  <article class=\"b-card\">\n    <div class=\"b-card__body\" style=\"min-height: 7rem;\">6</div>\n  </article>\n</div>",
          "react": {
            "import": "import { Card, CardBody } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody"
            ],
            "root": "Card",
            "jsx": "<div className=\"b-masonry\">\n  <Card>\n    <CardBody style={{ minHeight: \"5rem\" }}>1</CardBody>\n  </Card>\n  <Card>\n    <CardBody style={{ minHeight: \"8rem\" }}>2</CardBody>\n  </Card>\n  <Card>\n    <CardBody style={{ minHeight: \"3rem\" }}>3</CardBody>\n  </Card>\n  <Card>\n    <CardBody style={{ minHeight: \"6rem\" }}>4</CardBody>\n  </Card>\n  <Card>\n    <CardBody style={{ minHeight: \"4rem\" }}>5</CardBody>\n  </Card>\n  <Card>\n    <CardBody style={{ minHeight: \"7rem\" }}>6</CardBody>\n  </Card>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane",
            "--b-masonry-cols"
          ]
        },
        {
          "id": "scroll-area",
          "title": "Scroll Area",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#scroll-area",
          "summary": "Give it a height and .b-scroll-area contains the scrolling: overscroll never leaks to the page and the scrollbar gutter stays stable. --fade masks both edges so clipped content looks intentional.",
          "classes": [
            "b-card__body",
            "b-gap-2",
            "b-grid",
            "b-grid--2",
            "b-scroll-area",
            "b-scroll-area--fade",
            "b-stack"
          ],
          "markup": "<div class=\"b-grid b-grid--2\">\n  <div class=\"b-scroll-area\" style=\"height: 10rem;\" tabindex=\"0\" role=\"region\" aria-label=\"Recent activity\">\n    <div class=\"b-stack b-gap-2\">\n      <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Row 1</div>\n      <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Row 2</div>\n      <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Row 3</div>\n      <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Row 4</div>\n      <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Row 5</div>\n      <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Row 6</div>\n    </div>\n  </div>\n  <div class=\"b-scroll-area b-scroll-area--fade\" style=\"height: 10rem;\" tabindex=\"0\" role=\"region\" aria-label=\"Recent activity, faded edges\">\n    <div class=\"b-st",
          "react": {
            "import": "import { CardBody, Grid, ScrollArea } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Grid",
              "ScrollArea"
            ],
            "root": "Grid",
            "jsx": "<Grid cols={2}>\n  <ScrollArea\n    style={{ height: \"10rem\" }}\n    tabIndex=\"0\"\n    role=\"region\"\n    aria-label=\"Recent activity\"\n  >\n    <div className=\"b-stack b-gap-2\">\n      <CardBody\n        style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n      >\n        Row 1\n      </CardBody>\n      <CardBody\n        style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n      >\n        Row 2\n      </CardBody>\n      <CardBody\n        style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n      >\n        Row 3\n      </CardBody>\n      <CardBody\n        style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n      >\n        Row 4\n      </CardBody>\n      <CardBody\n        style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n      >\n        Row 5\n      </CardBody>\n      <CardBody\n        style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n      >\n        Row 6\n      </CardBody>\n    </div>\n  </ScrollArea>\n  <ScrollArea\n    className=\"b-scroll-area--fade\"\n    style={{ height: \"10rem\" }}\n    tabIndex=\"0\"\n    role=\"region\"\n    aria-label=\"Recent activity, faded edges\"\n  ></ScrollArea>\n</Grid>"
          },
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap"
          ]
        },
        {
          "id": "spacer",
          "title": "Spacer",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#spacer",
          "summary": "Straight from SwiftUI: .b-spacer is an empty flex-1 element that absorbs leftover space. Push row siblings apart, or pin a footer to the bottom of a fixed-height stack.",
          "classes": [
            "b-card__body",
            "b-hstack",
            "b-spacer",
            "b-stack"
          ],
          "markup": "<div class=\"b-hstack\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Leading</div>\n  <span class=\"b-spacer\"></span>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Trailing</div>\n</div>\n<div class=\"b-stack\" style=\"height: 9rem;\">\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Content</div>\n  <span class=\"b-spacer\"></span>\n  <div class=\"b-card__body\" style=\"background: var(--b-color-accent-soft); border-radius: var(--b-radius-md); padding: var(--b-space-3); text-align: center;\">Pinned footer</div>\n</div>",
          "react": {
            "import": "import { CardBody, Spacer } from \"barua-ui\";",
            "components": [
              "CardBody",
              "Spacer"
            ],
            "root": "CardBody",
            "jsx": "<div className=\"b-hstack\">\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    Leading\n  </CardBody>\n  <Spacer></Spacer>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    Trailing\n  </CardBody>\n</div>\n<div className=\"b-stack\" style={{ height: \"9rem\" }}>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    Content\n  </CardBody>\n  <Spacer></Spacer>\n  <CardBody\n    style={{ background: \"var(--b-color-accent-soft)\", borderRadius: \"var(--b-radius-md)\", padding: \"var(--b-space-3)\", textAlign: \"center\" }}\n  >\n    Pinned footer\n  </CardBody>\n</div>"
          },
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "divider",
          "title": "Divider",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#divider",
          "summary": "Hairline separators drawn with --b-separator . Horizontal by default; use them sparingly \u2014 a stack gap is often separation enough.",
          "classes": [
            "b-avatar",
            "b-avatar--sm",
            "b-body",
            "b-btn",
            "b-btn--primary",
            "b-divider",
            "b-divider--inset",
            "b-divider--label",
            "b-divider--vertical",
            "b-gap-3",
            "b-hstack",
            "b-link",
            "b-link--danger",
            "b-list",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-stack"
          ],
          "markup": "<div class=\"b-stack\">\n  <p class=\"b-body\">Above the fold</p>\n  <hr class=\"b-divider\">\n  <p class=\"b-body\">Below the fold</p>\n</div>",
          "react": {
            "import": "import { Divider } from \"barua-ui\";",
            "components": [
              "Divider"
            ],
            "root": "Divider",
            "jsx": "<div className=\"b-stack\">\n  <p className=\"b-body\">Above the fold</p>\n  <Divider />\n  <p className=\"b-body\">Below the fold</p>\n</div>"
          },
          "variants": [
            {
              "id": "divider-vertical",
              "title": "Vertical"
            },
            {
              "id": "divider-inset",
              "title": "Inset"
            },
            {
              "id": "divider-label",
              "title": "Label"
            }
          ],
          "knobs": [
            "--b-avatar-size",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "responsive",
          "title": "Responsive",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#responsive",
          "summary": "Barua is mobile-first and the components own their own shrinking \u2014 pages should not need bespoke media queries. .b-dashboard spans collapse to full width below md (768px) and the column grid engages above it. Floating surfaces clamp themselves to the viewport: toasts, notifications, menus and the command palette cap their width, and the dock tray scrolls when crowded. The breakpoint scale lives in Foundations ; when a component should respond to its box rather than the viewport, use container queries below.",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-btn",
            "b-btn--glass",
            "b-btn--primary",
            "b-btn--sm",
            "b-gap-2",
            "b-hide-desktop",
            "b-hide-mobile",
            "b-hstack",
            "b-spacer",
            "b-stack--wrap"
          ],
          "markup": "<div class=\"b-hstack b-stack--wrap b-gap-2\" style=\"max-width: 20rem\">\n  <span class=\"b-badge b-badge--accent\">Inbox</span>\n  <span class=\"b-badge\">Sent</span>\n  <span class=\"b-badge\">Archive</span>\n  <span class=\"b-spacer\"></span>\n  <button class=\"b-btn b-btn--glass b-btn--sm\">Filter</button>\n  <button class=\"b-btn b-btn--primary b-btn--sm\">Compose</button>\n</div>",
          "react": {
            "import": "import { Badge, Button, Spacer } from \"barua-ui\";",
            "components": [
              "Badge",
              "Button",
              "Spacer"
            ],
            "root": "Badge",
            "jsx": "<div\n  className=\"b-hstack b-stack--wrap b-gap-2\"\n  style={{ maxWidth: \"20rem\" }}\n>\n  <Badge variant=\"accent\">Inbox</Badge>\n  <Badge>Sent</Badge>\n  <Badge>Archive</Badge>\n  <Spacer></Spacer>\n  <Button variant=\"glass\" size=\"sm\">Filter</Button>\n  <Button variant=\"primary\" size=\"sm\">Compose</Button>\n</div>"
          },
          "variants": [
            {
              "id": "responsive-wrap",
              "title": "Wrapping toolbars"
            },
            {
              "id": "responsive-visibility",
              "title": "Visibility utilities"
            }
          ],
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "stage",
          "title": "Stage",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#stage",
          "summary": ".b-stage turns a page into a fixed screen: full viewport height, no scrolling \u2014 the layout for ambient walls, kiosks and TV-style surfaces where everything must be visible at once. Its .b-container child stretches, a .b-dashboard inside shares the remaining height between rows, and cards clip internally instead of growing the page. Below md it steps aside and the page scrolls like any phone screen. The ambient example is built on it.",
          "classes": [
            "b-card",
            "b-card--compact",
            "b-card__body",
            "b-card__header",
            "b-card__title",
            "b-container",
            "b-dashboard",
            "b-gap-3",
            "b-span-6",
            "b-stack",
            "b-stage"
          ],
          "markup": "<div class=\"b-stage\" style=\"height: 16rem\">\n  <div class=\"b-container b-stack b-gap-3\">\n    <div class=\"b-dashboard\">\n      <article class=\"b-card b-card--compact b-span-6\">\n        <div class=\"b-card__header\"><div class=\"b-card__title\">Fits</div></div>\n        <div class=\"b-card__body\">Rows share the stage height.</div>\n      </article>\n      <article class=\"b-card b-card--compact b-span-6\">\n        <div class=\"b-card__header\"><div class=\"b-card__title\">Clips</div></div>\n        <div class=\"b-card__body\">Overflowing content clips inside the card \u2014 the page never scrolls.</div>\n      </article>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Card, CardBody, CardHeader, CardTitle, Container, Dashboard, Stage } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "CardHeader",
              "CardTitle",
              "Container",
              "Dashboard",
              "Stage"
            ],
            "root": "Stage",
            "jsx": "<Stage style={{ height: \"16rem\" }}>\n  <Container className=\"b-stack b-gap-3\">\n    <Dashboard>\n      <Card compact className=\"b-span-6\">\n        <CardHeader>\n          <CardTitle>Fits</CardTitle>\n        </CardHeader>\n        <CardBody>Rows share the stage height.</CardBody>\n      </Card>\n      <Card compact className=\"b-span-6\">\n        <CardHeader>\n          <CardTitle>Clips</CardTitle>\n        </CardHeader>\n        <CardBody>Overflowing content clips inside the card \u2014 the page never scrolls.</CardBody>\n      </Card>\n    </Dashboard>\n  </Container>\n</Stage>"
          },
          "knobs": [
            "--b-billboard-h",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "container-queries",
          "title": "Container Queries",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#container-queries",
          "summary": "SwiftUI's ViewThatFits , the CSS way: mark a wrapper .b-cq and children respond to the container's width \u2014 .b-cq-show-sm/md/lg appear at \u226524/40/56rem, .b-cq-hide-* retire. The same component adapts in a sidebar and in a full-width main without media queries.",
          "classes": [
            "b-card",
            "b-card__body",
            "b-cq",
            "b-cq-hide-sm",
            "b-cq-show-sm",
            "b-footnote",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-cq b-card\" style=\"max-width: 20rem\">\n  <div class=\"b-card__body\">\n    <span class=\"b-cq-hide-sm b-footnote b-text-secondary\">Narrow container \u2192 compact</span>\n    <span class=\"b-cq-show-sm\">Wide container content</span>\n  </div>\n</div>\n<div class=\"b-cq b-card\">\n  <div class=\"b-card__body\">\n    <span class=\"b-cq-hide-sm b-footnote b-text-secondary\">Narrow container \u2192 compact</span>\n    <span class=\"b-cq-show-sm\">Wide container content \u2014 this card is past the 24rem detent, so the fuller layout renders.</span>\n  </div>\n</div>",
          "react": {
            "import": "import { Card, CardBody, Footnote } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "Footnote"
            ],
            "root": "Card",
            "jsx": "<Card className=\"b-cq\" style={{ maxWidth: \"20rem\" }}>\n  <CardBody>\n    <Footnote className=\"b-cq-hide-sm b-text-secondary\">Narrow container \u2192 compact</Footnote>\n    <span className=\"b-cq-show-sm\">Wide container content</span>\n  </CardBody>\n</Card>\n<Card className=\"b-cq\">\n  <CardBody>\n    <Footnote className=\"b-cq-hide-sm b-text-secondary\">Narrow container \u2192 compact</Footnote>\n    <span className=\"b-cq-show-sm\">Wide container content \u2014 this card is past the 24rem detent, so the fuller layout renders.</span>\n  </CardBody>\n</Card>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "fit-text",
          "title": "Text that fits",
          "category": "layout",
          "url": "https://ui.barua.tz/docs/layout.html#fit-text",
          "summary": "SwiftUI has minimumScaleFactor ; CSS has no direct equivalent, but a container query unit does the same job honestly. .b-fit-text sizes its child as a fraction of the container's width, clamped so it can never become unreadable at one end or absurd at the other.",
          "classes": [
            "b-fit-text",
            "b-gap-3",
            "b-stack",
            "b-stat__value"
          ],
          "markup": "<div class=\"b-stack b-gap-3\">\n  <div class=\"b-fit-text\" style=\"width: 100%\"><div class=\"b-stat__value\">TZS 4,208,500</div></div>\n  <div class=\"b-fit-text\" style=\"width: 60%\"><div class=\"b-stat__value\">TZS 4,208,500</div></div>\n  <div class=\"b-fit-text\" style=\"width: 34%\"><div class=\"b-stat__value\">TZS 4,208,500</div></div>\n</div>",
          "react": {
            "import": "import { FitText } from \"barua-ui\";",
            "components": [
              "FitText"
            ],
            "root": "FitText",
            "jsx": "<div className=\"b-stack b-gap-3\">\n  <FitText style={{ width: \"100%\" }}>\n    <div className=\"b-stat__value\">TZS 4,208,500</div>\n  </FitText>\n  <FitText style={{ width: \"60%\" }}>\n    <div className=\"b-stat__value\">TZS 4,208,500</div>\n  </FitText>\n  <FitText style={{ width: \"34%\" }}>\n    <div className=\"b-stat__value\">TZS 4,208,500</div>\n  </FitText>\n</div>"
          },
          "knobs": [
            "--b-fit-max",
            "--b-fit-min",
            "--b-fit-scale",
            "--b-gap"
          ]
        }
      ]
    },
    {
      "id": "actions",
      "title": "Actions \u2014 buttons, icon buttons, toolbars, links",
      "url": "https://ui.barua.tz/docs/actions.html",
      "components": [
        {
          "id": "button",
          "title": "Button",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#button",
          "summary": "The workhorse. Default is a neutral filled button; add .b-btn--primary for the main action of a view \u2014 aim for one primary per view, like Apple does.",
          "classes": [
            "b-btn",
            "b-btn--block",
            "b-btn--danger",
            "b-btn--danger-tinted",
            "b-btn--ghost",
            "b-btn--glass",
            "b-btn--lg",
            "b-btn--liquid",
            "b-btn--outline",
            "b-btn--pill",
            "b-btn--primary",
            "b-btn--sm",
            "b-btn--tinted",
            "b-btn--xl",
            "b-btn--xs"
          ],
          "markup": "<button class=\"b-btn b-btn--primary\">Continue</button>\n<button class=\"b-btn b-btn--tinted\">Duplicate</button>\n<button class=\"b-btn\">Default</button>\n<button class=\"b-btn b-btn--outline\">Outline</button>\n<button class=\"b-btn b-btn--ghost\">Ghost</button>\n<button class=\"b-btn b-btn--glass\">Glass</button>\n<button class=\"b-btn b-btn--liquid\">Liquid</button>\n<button class=\"b-btn b-btn--danger\">Delete</button>\n<button class=\"b-btn b-btn--danger-tinted\">Remove</button>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"primary\">Continue</Button>\n<Button variant=\"tinted\">Duplicate</Button>\n<Button>Default</Button>\n<Button variant=\"outline\">Outline</Button>\n<Button variant=\"ghost\">Ghost</Button>\n<Button variant=\"glass\">Glass</Button>\n<Button variant=\"liquid\">Liquid</Button>\n<Button variant=\"danger\">Delete</Button>\n<Button variant=\"danger-tinted\">Remove</Button>"
          },
          "variants": [
            {
              "id": "button-sizes",
              "title": "Sizes"
            },
            {
              "id": "button-states",
              "title": "States"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "icon-button",
          "title": "Icon Button",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#icon-button",
          "summary": "Square variant for icon-only actions. Always provide aria-label ; add .b-tooltip-host with data-tooltip for a hover hint.",
          "classes": [
            "b-btn",
            "b-btn--danger-tinted",
            "b-btn--ghost",
            "b-btn--primary",
            "b-btn--sm",
            "b-icon-btn",
            "b-tooltip-host"
          ],
          "markup": "<button class=\"b-btn b-icon-btn b-btn--primary\" aria-label=\"Compose\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n</button>\n<button class=\"b-btn b-icon-btn\" aria-label=\"Archive\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\"><rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a1.5 1.5 0 0 0 1.5-1.5V8M8.5 11h3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n</button>\n<button class=\"b-btn b-icon-btn b-btn--ghost b-tooltip-host\" data-tooltip=\"More options\" aria-label=\"More options\">\n  <svg viewBox=\"0 0 20 20\" fill=\"currentColor\"><circle cx=\"4.5\" cy=\"10\" r=\"1.4\"/><circle cx=\"10\" cy=\"10\" r=\"1.4\"/><circle cx=\"15.5\" cy=\"10\" r=\"1.4\"/></svg>\n</button>\n<button class=\"b-btn b-icon-btn b-btn--danger-tinted b-btn--sm\" aria-label=\"Delete\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n</button>",
          "react": {
            "import": "import { Button, Tooltip } from \"barua-ui\";",
            "components": [
              "Button",
              "Tooltip"
            ],
            "root": "Button",
            "jsx": "<Button icon variant=\"primary\" aria-label=\"Compose\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\">\n    <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Button>\n<Button icon aria-label=\"Archive\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\">\n    <rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    <path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a1.5 1.5 0 0 0 1.5-1.5V8M8.5 11h3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n  </svg>\n</Button>\n<Tooltip\n  className=\"b-btn b-icon-btn b-btn--ghost\"\n  data-tooltip=\"More options\"\n  aria-label=\"More options\"\n>\n  <svg viewBox=\"0 0 20 20\" fill=\"currentColor\">\n    <circle cx=\"4.5\" cy=\"10\" r=\"1.4\" />\n    <circle cx=\"10\" cy=\"10\" r=\"1.4\" />\n    <circle cx=\"15.5\" cy=\"10\" r=\"1.4\" />\n  </svg>\n</Tooltip>\n<Button icon variant=\"danger-tinted\" size=\"sm\" aria-label=\"Delete\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\">\n    <path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n  </svg>\n</Button>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "fab",
          "title": "Floating Action Button",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#fab",
          "summary": ".b-fab pins to the bottom-trailing corner with safe-area padding and an accent glow. Shown here inline with position: static for the demo.",
          "classes": [
            "b-btn",
            "b-fab",
            "b-fab--extended",
            "b-icon-btn"
          ],
          "markup": "<button class=\"b-btn b-icon-btn b-fab\" style=\"position: static\" aria-label=\"New message\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/></svg>\n</button>\n<button class=\"b-btn b-fab b-fab--extended\" style=\"position: static\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/></svg>\n  Compose\n</button>",
          "react": {
            "import": "import { Fab } from \"barua-ui\";",
            "components": [
              "Fab"
            ],
            "root": "Fab",
            "jsx": "<Fab\n  className=\"b-btn b-icon-btn\"\n  style={{ position: \"static\" }}\n  aria-label=\"New message\"\n>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\">\n    <path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n  </svg>\n</Fab>\n<Fab extended className=\"b-btn\" style={{ position: \"static\" }}>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\">\n    <path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n  </svg>\n  Compose\n</Fab>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "button-group",
          "title": "Button Group",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#button-group",
          "summary": "Related actions fused into one control. Use .b-btn-group--attached for a hairline between segments.",
          "classes": [
            "b-btn",
            "b-btn--outline",
            "b-btn-group",
            "b-btn-group--attached"
          ],
          "markup": "<div class=\"b-btn-group b-btn-group--attached\" role=\"group\" aria-label=\"Text alignment\">\n  <button class=\"b-btn\">Left</button>\n  <button class=\"b-btn is-active\">Center</button>\n  <button class=\"b-btn\">Right</button>\n</div>\n<div class=\"b-btn-group\" role=\"group\" aria-label=\"Zoom\">\n  <button class=\"b-btn b-btn--outline\">\u2212</button>\n  <button class=\"b-btn b-btn--outline\">100%</button>\n  <button class=\"b-btn b-btn--outline\">+</button>\n</div>",
          "react": {
            "import": "import { Button, ButtonGroup } from \"barua-ui\";",
            "components": [
              "Button",
              "ButtonGroup"
            ],
            "root": "ButtonGroup",
            "jsx": "<ButtonGroup attached role=\"group\" aria-label=\"Text alignment\">\n  <Button>Left</Button>\n  <Button active>Center</Button>\n  <Button>Right</Button>\n</ButtonGroup>\n<ButtonGroup role=\"group\" aria-label=\"Zoom\">\n  <Button variant=\"outline\">\u2212</Button>\n  <Button variant=\"outline\">100%</Button>\n  <Button variant=\"outline\">+</Button>\n</ButtonGroup>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "split-button",
          "title": "Split Button",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#split-button",
          "summary": "Primary action plus a chevron that opens related choices.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-dropdown",
            "b-menu",
            "b-menu__item",
            "b-split-btn"
          ],
          "markup": "<details class=\"b-dropdown\">\n  <summary>\n    <span class=\"b-split-btn\">\n      <span class=\"b-btn b-btn--primary\">Merge branch</span>\n      <span class=\"b-btn b-btn--primary\" aria-label=\"More merge options\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      </span>\n    </span>\n  </summary>\n  <ul class=\"b-menu\">\n    <li><button class=\"b-menu__item\">Merge commit</button></li>\n    <li><button class=\"b-menu__item\">Squash and merge</button></li>\n    <li><button class=\"b-menu__item\">Rebase and merge</button></li>\n  </ul>\n</details>",
          "react": {
            "import": "import { Button, Dropdown, Menu, SplitButton } from \"barua-ui\";",
            "components": [
              "Button",
              "Dropdown",
              "Menu",
              "SplitButton"
            ],
            "root": "Dropdown",
            "jsx": "<Dropdown>\n  <summary>\n    <SplitButton>\n      <Button variant=\"primary\">Merge branch</Button>\n      <Button variant=\"primary\" aria-label=\"More merge options\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\">\n          <path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n        </svg>\n      </Button>\n    </SplitButton>\n  </summary>\n  <Menu>\n    <li>\n      <button className=\"b-menu__item\">Merge commit</button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\">Squash and merge</button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\">Rebase and merge</button>\n    </li>\n  </Menu>\n</Dropdown>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-disabled",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "toggle-button",
          "title": "Toggle Button",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#toggle-button",
          "summary": "A button with on/off state. Reflect state with aria-pressed ; the accent tint appears automatically.",
          "classes": [
            "b-btn",
            "b-icon-btn",
            "b-toggle-btn"
          ],
          "markup": "<button class=\"b-btn b-toggle-btn\" aria-pressed=\"true\" onclick=\"this.setAttribute('aria-pressed', this.getAttribute('aria-pressed')==='true'?'false':'true')\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"16\" height=\"16\"><path d=\"M10 3.5c-4 0-6.5 4.5-6.5 6.5S6 16.5 10 16.5s6.5-4.5 6.5-6.5S14 3.5 10 3.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/><circle cx=\"10\" cy=\"10\" r=\"2.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>\n  Watching\n</button>\n<button class=\"b-btn b-icon-btn b-toggle-btn\" aria-pressed=\"false\" aria-label=\"Bold\" onclick=\"this.setAttribute('aria-pressed', this.getAttribute('aria-pressed')==='true'?'false':'true')\"><strong>B</strong></button>\n<button class=\"b-btn b-icon-btn b-toggle-btn\" aria-pressed=\"true\" aria-label=\"Italic\" onclick=\"this.setAttribute('aria-pressed', this.getAttribute('aria-pressed')==='true'?'false':'true')\"><em>I</em></button>",
          "react": {
            "import": "import { ToggleButton } from \"barua-ui\";",
            "components": [
              "ToggleButton"
            ],
            "root": "ToggleButton",
            "jsx": "<ToggleButton\n  className=\"b-btn\"\n  aria-pressed=\"true\"\n  onclick=\"this.setAttribute('aria-pressed', this.getAttribute('aria-pressed')==='true'?'false':'true')\"\n>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"16\" height=\"16\">\n    <path d=\"M10 3.5c-4 0-6.5 4.5-6.5 6.5S6 16.5 10 16.5s6.5-4.5 6.5-6.5S14 3.5 10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    <circle cx=\"10\" cy=\"10\" r=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n  </svg>\n  Watching\n</ToggleButton>\n<ToggleButton\n  className=\"b-btn b-icon-btn\"\n  aria-pressed=\"false\"\n  aria-label=\"Bold\"\n  onclick=\"this.setAttribute('aria-pressed', this.getAttribute('aria-pressed')==='true'?'false':'true')\"\n>\n  <strong>B</strong>\n</ToggleButton>\n<ToggleButton\n  className=\"b-btn b-icon-btn\"\n  aria-pressed=\"true\"\n  aria-label=\"Italic\"\n  onclick=\"this.setAttribute('aria-pressed', this.getAttribute('aria-pressed')==='true'?'false':'true')\"\n>\n  <em>I</em>\n</ToggleButton>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "link",
          "title": "Link",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#link",
          "summary": "Inline navigation. Plain <a> elements are accent colored by default; .b-link adds icon alignment and muted/danger variants.",
          "classes": [
            "b-link",
            "b-link--danger",
            "b-link--muted"
          ],
          "markup": "<a class=\"b-link\" href=\"#link\">View documentation\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"M7 5h8v8M15 5 5 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n</a>\n<a class=\"b-link b-link--muted\" href=\"#link\">Secondary link</a>\n<a class=\"b-link b-link--danger\" href=\"#link\">Remove account</a>",
          "react": {
            "import": "import { Link } from \"barua-ui\";",
            "components": [
              "Link"
            ],
            "root": "Link",
            "jsx": "<Link href=\"#link\">\n  View documentation\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\">\n    <path d=\"M7 5h8v8M15 5 5 15\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n  </svg>\n</Link>\n<Link className=\"b-link--muted\" href=\"#link\">Secondary link</Link>\n<Link className=\"b-link--danger\" href=\"#link\">Remove account</Link>"
          }
        },
        {
          "id": "link-group",
          "title": "Link Group",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#link-group",
          "summary": "A wrapping row of related links, optionally dot-separated.",
          "classes": [
            "b-link",
            "b-link--muted",
            "b-link-group"
          ],
          "markup": "<nav class=\"b-link-group\" aria-label=\"Footer\">\n  <a class=\"b-link b-link--muted\" href=\"#link-group\">Privacy</a>\n  <a class=\"b-link b-link--muted\" href=\"#link-group\">Terms</a>\n  <a class=\"b-link b-link--muted\" href=\"#link-group\">Status</a>\n  <a class=\"b-link b-link--muted\" href=\"#link-group\">Contact</a>\n</nav>",
          "react": {
            "import": "import { Link, LinkGroup } from \"barua-ui\";",
            "components": [
              "Link",
              "LinkGroup"
            ],
            "root": "LinkGroup",
            "jsx": "<LinkGroup aria-label=\"Footer\">\n  <Link className=\"b-link--muted\" href=\"#link-group\">Privacy</Link>\n  <Link className=\"b-link--muted\" href=\"#link-group\">Terms</Link>\n  <Link className=\"b-link--muted\" href=\"#link-group\">Status</Link>\n  <Link className=\"b-link--muted\" href=\"#link-group\">Contact</Link>\n</LinkGroup>"
          }
        },
        {
          "id": "toolbar",
          "title": "Toolbar",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#toolbar",
          "summary": "Compact strip of small controls with hairline dividers. Add .b-toolbar--glass when it floats above content.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-btn--tinted",
            "b-divider",
            "b-divider--vertical",
            "b-icon-btn",
            "b-toolbar",
            "b-toolbar--glass"
          ],
          "markup": "<div class=\"b-toolbar b-toolbar--glass\" role=\"toolbar\" aria-label=\"Formatting\">\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Bold\"><strong>B</strong></button>\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Italic\"><em>I</em></button>\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Underline\"><u>U</u></button>\n  <hr class=\"b-divider b-divider--vertical\">\n  <button class=\"b-btn b-btn--ghost b-btn--sm\">H1</button>\n  <button class=\"b-btn b-btn--ghost b-btn--sm\">H2</button>\n  <hr class=\"b-divider b-divider--vertical\">\n  <button class=\"b-btn b-btn--tinted b-btn--sm\">Publish</button>\n</div>",
          "react": {
            "import": "import { Button, Divider, Toolbar } from \"barua-ui\";",
            "components": [
              "Button",
              "Divider",
              "Toolbar"
            ],
            "root": "Toolbar",
            "jsx": "<Toolbar glass role=\"toolbar\" aria-label=\"Formatting\">\n  <Button icon variant=\"ghost\" aria-label=\"Bold\">\n    <strong>B</strong>\n  </Button>\n  <Button icon variant=\"ghost\" aria-label=\"Italic\">\n    <em>I</em>\n  </Button>\n  <Button icon variant=\"ghost\" aria-label=\"Underline\">\n    <u>U</u>\n  </Button>\n  <Divider vertical />\n  <Button variant=\"ghost\" size=\"sm\">H1</Button>\n  <Button variant=\"ghost\" size=\"sm\">H2</Button>\n  <Divider vertical />\n  <Button variant=\"tinted\" size=\"sm\">Publish</Button>\n</Toolbar>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "action-menu",
          "title": "Action Menu",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#action-menu",
          "summary": "An icon button opening a .b-menu . Uses <details> for a zero-JS dropdown \u2014 see Navigation for the full menu family.",
          "classes": [
            "b-btn",
            "b-dropdown",
            "b-icon-btn",
            "b-menu",
            "b-menu__item",
            "b-menu__item--danger",
            "b-menu__separator",
            "b-menu__shortcut"
          ],
          "markup": "<details class=\"b-dropdown\">\n  <summary class=\"b-btn b-icon-btn\" aria-label=\"Row actions\">\n    <svg viewBox=\"0 0 20 20\" fill=\"currentColor\"><circle cx=\"4.5\" cy=\"10\" r=\"1.4\"/><circle cx=\"10\" cy=\"10\" r=\"1.4\"/><circle cx=\"15.5\" cy=\"10\" r=\"1.4\"/></svg>\n  </summary>\n  <ul class=\"b-menu\">\n    <li><button class=\"b-menu__item\">Open<span class=\"b-menu__shortcut\">\u23ce</span></button></li>\n    <li><button class=\"b-menu__item\">Rename<span class=\"b-menu__shortcut\">\u2318R</span></button></li>\n    <li><button class=\"b-menu__item\">Duplicate<span class=\"b-menu__shortcut\">\u2318D</span></button></li>\n    <li><hr class=\"b-menu__separator\"></li>\n    <li><button class=\"b-menu__item b-menu__item--danger\">Delete<span class=\"b-menu__shortcut\">\u232b</span></button></li>\n  </ul>\n</details>",
          "react": {
            "import": "import { Button, Dropdown, Menu, MenuSeparator } from \"barua-ui\";",
            "components": [
              "Button",
              "Dropdown",
              "Menu",
              "MenuSeparator"
            ],
            "root": "Dropdown",
            "jsx": "<Dropdown>\n  <Button icon aria-label=\"Row actions\">\n    <svg viewBox=\"0 0 20 20\" fill=\"currentColor\">\n      <circle cx=\"4.5\" cy=\"10\" r=\"1.4\" />\n      <circle cx=\"10\" cy=\"10\" r=\"1.4\" />\n      <circle cx=\"15.5\" cy=\"10\" r=\"1.4\" />\n    </svg>\n  </Button>\n  <Menu>\n    <li>\n      <button className=\"b-menu__item\">\n        Open\n        <span className=\"b-menu__shortcut\">\u23ce</span>\n      </button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\">\n        Rename\n        <span className=\"b-menu__shortcut\">\u2318R</span>\n      </button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\">\n        Duplicate\n        <span className=\"b-menu__shortcut\">\u2318D</span>\n      </button>\n    </li>\n    <li>\n      <MenuSeparator />\n    </li>\n    <li>\n      <button className=\"b-menu__item b-menu__item--danger\">\n        Delete\n        <span className=\"b-menu__shortcut\">\u232b</span>\n      </button>\n    </li>\n  </Menu>\n</Dropdown>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-disabled",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "share",
          "title": "Share",
          "category": "actions",
          "url": "https://ui.barua.tz/docs/actions.html#share",
          "summary": "SwiftUI's ShareLink : any button with data-b-share opens the system share sheet ( navigator.share ), falling back to copying the link with a confirming toast. Pass a URL in the attribute or leave it empty to share the current page.",
          "classes": [
            "b-btn",
            "b-share"
          ],
          "markup": "<button class=\"b-btn b-share\" data-b-share=\"https://barua.tz\" data-b-share-title=\"Barua\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 12.5v-9m0 0L6.8 6.7M10 3.5l3.2 3.2M4.5 10v5A1.5 1.5 0 0 0 6 16.5h8a1.5 1.5 0 0 0 1.5-1.5v-5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  Share\n</button>",
          "react": {
            "import": "import { Share } from \"barua-ui\";",
            "components": [
              "Share"
            ],
            "root": "Share",
            "jsx": "<Share\n  className=\"b-btn\"\n  data-b-share=\"https://barua.tz\"\n  data-b-share-title=\"Barua\"\n>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\">\n    <path d=\"M10 12.5v-9m0 0L6.8 6.7M10 3.5l3.2 3.2M4.5 10v5A1.5 1.5 0 0 0 6 16.5h8a1.5 1.5 0 0 0 1.5-1.5v-5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n  </svg>\n  Share\n</Share>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        }
      ]
    },
    {
      "id": "navigation",
      "title": "Navigation \u2014 bars, sidebars, tabs, menus, command palette",
      "url": "https://ui.barua.tz/docs/navigation.html",
      "components": [
        {
          "id": "top-navigation",
          "title": "Top Navigation",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#top-navigation",
          "summary": ".b-topnav is the sticky glass chrome bar you are looking at right now \u2014 brand, inline links, and trailing actions separated by a .b-spacer . Reach for it on marketing pages and docs with a handful of destinations; move to a sidebar or rail once the map outgrows one row. Demoed with position: static so it stays in the box.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-btn--sm",
            "b-spacer",
            "b-topnav",
            "b-topnav__brand",
            "b-topnav__link",
            "b-topnav__links"
          ],
          "markup": "<header class=\"b-topnav\" style=\"position: static\">\n  <a class=\"b-topnav__brand\" href=\"#top-navigation\">\n    <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"5\" fill=\"var(--b-color-accent)\"/><path d=\"M8 12.5 11 15l5-6\" stroke=\"white\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n    Acme\n  </a>\n  <nav class=\"b-topnav__links\" aria-label=\"Primary\">\n    <a class=\"b-topnav__link is-active\" aria-current=\"page\" href=\"#top-navigation\">Overview</a>\n    <a class=\"b-topnav__link\" href=\"#top-navigation\">Projects</a>\n    <a class=\"b-topnav__link\" href=\"#top-navigation\">Activity</a>\n    <a class=\"b-topnav__link\" href=\"#top-navigation\">Docs</a>\n  </nav>\n  <span class=\"b-spacer\"></span>\n  <button class=\"b-btn b-btn--ghost b-btn--sm\">Sign in</button>\n  <button class=\"b-btn b-btn--primary b-btn--sm\">Get started</button>\n</header>",
          "react": {
            "import": "import { Button, Spacer, TopNav, TopNavBrand, TopNavLinks } from \"barua-ui\";",
            "components": [
              "Button",
              "Spacer",
              "TopNav",
              "TopNavBrand",
              "TopNavLinks"
            ],
            "root": "TopNav",
            "jsx": "<TopNav style={{ position: \"static\" }}>\n  <TopNavBrand href=\"#top-navigation\">\n    <svg\n      width=\"20\"\n      height=\"20\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"5\" fill=\"var(--b-color-accent)\" />\n      <path d=\"M8 12.5 11 15l5-6\" stroke=\"white\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n    Acme\n  </TopNavBrand>\n  <TopNavLinks aria-label=\"Primary\">\n    <a\n      className=\"b-topnav__link is-active\"\n      aria-current=\"page\"\n      href=\"#top-navigation\"\n    >\n      Overview\n    </a>\n    <a className=\"b-topnav__link\" href=\"#top-navigation\">Projects</a>\n    <a className=\"b-topnav__link\" href=\"#top-navigation\">Activity</a>\n    <a className=\"b-topnav__link\" href=\"#top-navigation\">Docs</a>\n  </TopNavLinks>\n  <Spacer></Spacer>\n  <Button variant=\"ghost\" size=\"sm\">Sign in</Button>\n  <Button variant=\"primary\" size=\"sm\">Get started</Button>\n</TopNav>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-scrolled"
          ]
        },
        {
          "id": "sidebar",
          "title": "Sidebar",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#sidebar",
          "summary": ".b-sidebar stacks grouped items with uppercase headings \u2014 the pattern for apps with many destinations (this docs site uses one). Items take an optional icon and a trailing .b-badge for counts; add .b-sidebar--surface when it needs its own background and end hairline. Boxed here at a fixed height to show the built-in scroll.",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-sidebar",
            "b-sidebar__group",
            "b-sidebar__heading",
            "b-sidebar__item"
          ],
          "markup": "<nav class=\"b-sidebar\" style=\"height: 100%\" aria-label=\"Mail\">\n  <div class=\"b-sidebar__group\">\n    <div class=\"b-sidebar__heading\">Mailboxes</div>\n    <a class=\"b-sidebar__item is-active\" aria-current=\"page\" href=\"#sidebar\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 11.5 5 5h10l1.5 6.5v2.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-2.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M3.5 11.5h4l1 1.5h3l1-1.5h4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n      Inbox\n      <span class=\"b-badge b-badge--accent\">24</span>\n    </a>\n    <a class=\"b-sidebar__item\" href=\"#sidebar\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M17 3.5 3 8.5l5.5 2.5L10.5 16.5 17 3.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n      Sent\n    </a>\n    <a class=\"b-sidebar__item\" href=\"#sidebar\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n      Drafts\n      <span class=\"b-badge\">3</span>\n    </a>\n    <a class=\"b-sidebar__item\" href=\"#sidebar\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a",
          "react": {
            "import": "import { Badge, Sidebar, SidebarGroup, SidebarHeading } from \"barua-ui\";",
            "components": [
              "Badge",
              "Sidebar",
              "SidebarGroup",
              "SidebarHeading"
            ],
            "root": "Sidebar",
            "jsx": "<Sidebar style={{ height: \"100%\" }} aria-label=\"Mail\">\n  <SidebarGroup>\n    <SidebarHeading>Mailboxes</SidebarHeading>\n    <a\n      className=\"b-sidebar__item is-active\"\n      aria-current=\"page\"\n      href=\"#sidebar\"\n    >\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M3.5 11.5 5 5h10l1.5 6.5v2.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-2.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        <path d=\"M3.5 11.5h4l1 1.5h3l1-1.5h4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      </svg>\n      Inbox\n      <Badge variant=\"accent\">24</Badge>\n    </a>\n    <a className=\"b-sidebar__item\" href=\"#sidebar\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M17 3.5 3 8.5l5.5 2.5L10.5 16.5 17 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      </svg>\n      Sent\n    </a>\n    <a className=\"b-sidebar__item\" href=\"#sidebar\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      </svg>\n      Drafts\n      <Badge>3</Badge>\n    </a>\n    <a className=\"b-sidebar__item\" href=\"#sidebar\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      </svg>\n    </a>\n  </SidebarGroup>\n</Sidebar>"
          },
          "knobs": [
            "--b-lg-inset",
            "--b-lg-pane"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "navigation-rail",
          "title": "Navigation Rail",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#navigation-rail",
          "summary": ".b-rail is the sidebar's compact sibling: icon-first items with tiny labels on a narrow strip. Use it when you have four to seven top-level destinations and want to spend the horizontal space on content \u2014 or as the collapsed state of a full sidebar.",
          "classes": [
            "b-rail",
            "b-rail__item"
          ],
          "markup": "<nav class=\"b-rail\" style=\"height: 17rem\" aria-label=\"Primary\">\n  <a class=\"b-rail__item is-active\" aria-current=\"page\" href=\"#navigation-rail\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5 10 3l6.5 5.5v7a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-7Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n    <span>Home</span>\n  </a>\n  <a class=\"b-rail__item\" href=\"#navigation-rail\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13 13 3.5 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    <span>Search</span>\n  </a>\n  <a class=\"b-rail__item\" href=\"#navigation-rail\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n    <span>Library</span>\n  </a>\n  <a class=\"b-rail__item\" href=\"#navigation-rail\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 6.5h6m4 0h2M4 13.5h2m4 0h6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><circle cx=\"12\" cy=\"6.5\" r=\"1.8\" stroke=\"currentColor\" stroke-width=\"1.5\"/><circle cx=\"8\" cy=\"13.5\" r=\"1.8\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>\n",
          "react": {
            "import": "import { Rail, RailItem } from \"barua-ui\";",
            "components": [
              "Rail",
              "RailItem"
            ],
            "root": "Rail",
            "jsx": "<Rail style={{ height: \"17rem\" }} aria-label=\"Primary\">\n  <RailItem active aria-current=\"page\" href=\"#navigation-rail\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M3.5 8.5 10 3l6.5 5.5v7a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-7Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </svg>\n    <span>Home</span>\n  </RailItem>\n  <RailItem href=\"#navigation-rail\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m13 13 3.5 3.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n    <span>Search</span>\n  </RailItem>\n  <RailItem href=\"#navigation-rail\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </svg>\n    <span>Library</span>\n  </RailItem>\n  <RailItem href=\"#navigation-rail\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M4 6.5h6m4 0h2M4 13.5h2m4 0h6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      <circle cx=\"12\" cy=\"6.5\" r=\"1.8\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <circle cx=\"8\" cy=\"13.5\" r=\"1.8\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    </svg>\n  </RailItem>\n</Rail>"
          },
          "states": [
            "is-active"
          ]
        },
        {
          "id": "bottom-navigation",
          "title": "Bottom Navigation",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#bottom-navigation",
          "summary": ".b-bottomnav is the phone-sized counterpart: a fixed glass tab bar with three to five destinations, safe-area padding included. The active item tints accent; the rest stay quiet. Demoed with position: static .",
          "classes": [
            "b-bottomnav",
            "b-bottomnav__item"
          ],
          "markup": "<nav class=\"b-bottomnav\" style=\"position: static\" aria-label=\"Primary\">\n  <a class=\"b-bottomnav__item is-active\" aria-current=\"page\" href=\"#bottom-navigation\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 8.5 10 3l6.5 5.5v7a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-7Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n    <span>Home</span>\n  </a>\n  <a class=\"b-bottomnav__item\" href=\"#bottom-navigation\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13 13 3.5 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    <span>Search</span>\n  </a>\n  <a class=\"b-bottomnav__item\" href=\"#bottom-navigation\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3.5a4.5 4.5 0 0 1 4.5 4.5c0 3 1 4 1.5 4.5H4c.5-.5 1.5-1.5 1.5-4.5A4.5 4.5 0 0 1 10 3.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M8.5 15.5a1.5 1.5 0 0 0 3 0\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    <span>Alerts</span>\n  </a>\n  <a class=\"b-bottomnav__item\" href=\"#bottom-navigation\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"10\" cy=\"7\" r=\"3\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M4.5 16.5a5.5 5.5 0 0 1 11 0\" stroke=\"currentColor\" stroke-width=",
          "react": {
            "import": "import { BottomNav } from \"barua-ui\";",
            "components": [
              "BottomNav"
            ],
            "root": "BottomNav",
            "jsx": "<BottomNav style={{ position: \"static\" }} aria-label=\"Primary\">\n  <a\n    className=\"b-bottomnav__item is-active\"\n    aria-current=\"page\"\n    href=\"#bottom-navigation\"\n  >\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M3.5 8.5 10 3l6.5 5.5v7a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-7Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </svg>\n    <span>Home</span>\n  </a>\n  <a className=\"b-bottomnav__item\" href=\"#bottom-navigation\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m13 13 3.5 3.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n    <span>Search</span>\n  </a>\n  <a className=\"b-bottomnav__item\" href=\"#bottom-navigation\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M10 3.5a4.5 4.5 0 0 1 4.5 4.5c0 3 1 4 1.5 4.5H4c.5-.5 1.5-1.5 1.5-4.5A4.5 4.5 0 0 1 10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      <path d=\"M8.5 15.5a1.5 1.5 0 0 0 3 0\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n    <span>Alerts</span>\n  </a>\n  <a className=\"b-bottomnav__item\" href=\"#bottom-navigation\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <circle cx=\"10\" cy=\"7\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    </svg>\n  </a>\n</BottomNav>"
          },
          "states": [
            "is-active"
          ]
        },
        {
          "id": "tab-bar",
          "title": "Tab Bar",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#tab-bar",
          "summary": ".b-segmented is the iOS-style segmented control: pill segments on a recessed fill, the selected one lifted on a white chip. Use it to switch views of the same content (Day / Week / Month); use underline Tabs for page-level sections. .b-segmented--block stretches it full width. Both .is-active and [aria-selected=\"true\"] light a segment.",
          "classes": [
            "b-segmented",
            "b-segmented--block",
            "b-segmented__item"
          ],
          "markup": "<div class=\"b-segmented\" role=\"group\" aria-label=\"Range\">\n  <button class=\"b-segmented__item is-active\">Day</button>\n  <button class=\"b-segmented__item\">Week</button>\n  <button class=\"b-segmented__item\">Month</button>\n  <button class=\"b-segmented__item\">Year</button>\n</div>\n<div class=\"b-segmented b-segmented--block\" role=\"group\" aria-label=\"Message filter\">\n  <button class=\"b-segmented__item is-active\">All</button>\n  <button class=\"b-segmented__item\">Unread</button>\n  <button class=\"b-segmented__item\">Flagged</button>\n</div>",
          "react": {
            "import": "import { Segmented } from \"barua-ui\";",
            "components": [
              "Segmented"
            ],
            "root": "Segmented",
            "jsx": "<Segmented role=\"group\" aria-label=\"Range\">\n  <button className=\"b-segmented__item is-active\">Day</button>\n  <button className=\"b-segmented__item\">Week</button>\n  <button className=\"b-segmented__item\">Month</button>\n  <button className=\"b-segmented__item\">Year</button>\n</Segmented>\n<Segmented block role=\"group\" aria-label=\"Message filter\">\n  <button className=\"b-segmented__item is-active\">All</button>\n  <button className=\"b-segmented__item\">Unread</button>\n  <button className=\"b-segmented__item\">Flagged</button>\n</Segmented>"
          },
          "knobs": [
            "--b-lg-inset"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "tabs",
          "title": "Tabs",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#tabs",
          "summary": "Underline tabs for sectioning a page. Wrap everything in a data-b-tabs container, give triggers role=\"tab\" and panels role=\"tabpanel\" , and mark the initial tab aria-selected=\"true\" \u2014 barua.js wires selection, panel visibility and the roving tabindex from there. The tab list scrolls horizontally when it overflows.",
          "classes": [
            "b-tab",
            "b-tabpanel",
            "b-tabs"
          ],
          "markup": "<div data-b-tabs>\n  <div class=\"b-tabs\" role=\"tablist\" aria-label=\"Project sections\">\n    <button class=\"b-tab\" id=\"demo-tab-overview\" role=\"tab\" aria-selected=\"true\" aria-controls=\"demo-panel-overview\">Overview</button>\n    <button class=\"b-tab\" id=\"demo-tab-commits\" role=\"tab\" aria-selected=\"false\" aria-controls=\"demo-panel-commits\">Commits</button>\n    <button class=\"b-tab\" id=\"demo-tab-settings\" role=\"tab\" aria-selected=\"false\" aria-controls=\"demo-panel-settings\">Settings</button>\n  </div>\n  <div class=\"b-tabpanel\" id=\"demo-panel-overview\" role=\"tabpanel\" aria-labelledby=\"demo-tab-overview\">\n    A calm summary of the project: readme, recent activity, and the\n    people involved.\n  </div>\n  <div class=\"b-tabpanel\" id=\"demo-panel-commits\" role=\"tabpanel\" aria-labelledby=\"demo-tab-commits\" hidden>\n    128 commits on <code>main</code>, most recently \"Polish glass\n    materials\".\n  </div>\n  <div class=\"b-tabpanel\" id=\"demo-panel-settings\" role=\"tabpanel\" aria-labelledby=\"demo-tab-settings\" hidden>\n    Rename, transfer or archive the project. Danger lives behind a\n    confirm dialog.\n  </div>\n</div>",
          "react": {
            "import": "import { Tabs } from \"barua-ui\";",
            "components": [
              "Tabs"
            ],
            "root": "Tabs",
            "jsx": "<div data-b-tabs=\"\">\n  <Tabs role=\"tablist\" aria-label=\"Project sections\">\n    <button\n      className=\"b-tab\"\n      id=\"demo-tab-overview\"\n      role=\"tab\"\n      aria-selected=\"true\"\n      aria-controls=\"demo-panel-overview\"\n    >\n      Overview\n    </button>\n    <button\n      className=\"b-tab\"\n      id=\"demo-tab-commits\"\n      role=\"tab\"\n      aria-selected=\"false\"\n      aria-controls=\"demo-panel-commits\"\n    >\n      Commits\n    </button>\n    <button\n      className=\"b-tab\"\n      id=\"demo-tab-settings\"\n      role=\"tab\"\n      aria-selected=\"false\"\n      aria-controls=\"demo-panel-settings\"\n    >\n      Settings\n    </button>\n  </Tabs>\n  <div\n    className=\"b-tabpanel\"\n    id=\"demo-panel-overview\"\n    role=\"tabpanel\"\n    aria-labelledby=\"demo-tab-overview\"\n  >\n    A calm summary of the project: readme, recent activity, and the people involved.\n  </div>\n  <div\n    className=\"b-tabpanel\"\n    id=\"demo-panel-commits\"\n    role=\"tabpanel\"\n    aria-labelledby=\"demo-tab-commits\"\n    hidden\n  >\n    128 commits on\n    <code>main</code>\n    , most recently \"Polish glass materials\".\n  </div>\n  <div\n    className=\"b-tabpanel\"\n    id=\"demo-panel-settings\"\n    role=\"tabpanel\"\n    aria-labelledby=\"demo-tab-settings\"\n    hidden\n  >\n    Rename, transfer or archive the project. Danger lives behind a confirm dialog.\n  </div>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "breadcrumbs",
          "title": "Breadcrumbs",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#breadcrumbs",
          "summary": "A trail from root to here, separated by hairline chevrons. Use them in hierarchies deeper than two levels; the last crumb is the current page \u2014 give it aria-current=\"page\" and no link.",
          "classes": [
            "b-breadcrumbs"
          ],
          "markup": "<nav aria-label=\"Breadcrumb\">\n  <ol class=\"b-breadcrumbs\">\n    <li><a href=\"#breadcrumbs\">Home</a></li>\n    <li><a href=\"#breadcrumbs\">Projects</a></li>\n    <li><a href=\"#breadcrumbs\">Barua UI</a></li>\n    <li><span aria-current=\"page\">Navigation</span></li>\n  </ol>\n</nav>",
          "react": {
            "import": "import { Breadcrumbs } from \"barua-ui\";",
            "components": [
              "Breadcrumbs"
            ],
            "root": "Breadcrumbs",
            "jsx": "<nav aria-label=\"Breadcrumb\">\n  <Breadcrumbs>\n    <li>\n      <a href=\"#breadcrumbs\">Home</a>\n    </li>\n    <li>\n      <a href=\"#breadcrumbs\">Projects</a>\n    </li>\n    <li>\n      <a href=\"#breadcrumbs\">Barua UI</a>\n    </li>\n    <li>\n      <span aria-current=\"page\">Navigation</span>\n    </li>\n  </Breadcrumbs>\n</nav>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "pagination",
          "title": "Pagination",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#pagination",
          "summary": "Numbered page controls with tabular figures so widths never jitter. The current page fills accent via .is-active or [aria-current=\"page\"] ; collapse long runs with .b-pagination__ellipsis .",
          "classes": [
            "b-pagination",
            "b-pagination__ellipsis",
            "b-pagination__item"
          ],
          "markup": "<nav aria-label=\"Pagination\">\n  <ul class=\"b-pagination\">\n    <li>\n      <a class=\"b-pagination__item\" href=\"#pagination\" aria-label=\"Previous page\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\" aria-hidden=\"true\"><path d=\"m12 5-5 5 5 5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      </a>\n    </li>\n    <li><a class=\"b-pagination__item\" href=\"#pagination\">1</a></li>\n    <li><a class=\"b-pagination__item\" href=\"#pagination\">2</a></li>\n    <li><a class=\"b-pagination__item\" aria-current=\"page\" href=\"#pagination\">3</a></li>\n    <li><a class=\"b-pagination__item\" href=\"#pagination\">4</a></li>\n    <li><span class=\"b-pagination__ellipsis\" aria-hidden=\"true\">\u2026</span></li>\n    <li><a class=\"b-pagination__item\" href=\"#pagination\">12</a></li>\n    <li>\n      <a class=\"b-pagination__item\" href=\"#pagination\" aria-label=\"Next page\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\" aria-hidden=\"true\"><path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      </a>\n    </li>\n  </ul>\n</nav>",
          "react": {
            "import": "import { Pagination, PaginationEllipsis, PaginationItem } from \"barua-ui\";",
            "components": [
              "Pagination",
              "PaginationEllipsis",
              "PaginationItem"
            ],
            "root": "Pagination",
            "jsx": "<nav aria-label=\"Pagination\">\n  <Pagination>\n    <li>\n      <PaginationItem href=\"#pagination\" aria-label=\"Previous page\">\n        <svg\n          viewBox=\"0 0 20 20\"\n          fill=\"none\"\n          width=\"14\"\n          height=\"14\"\n          aria-hidden=\"true\"\n        >\n          <path d=\"m12 5-5 5 5 5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n        </svg>\n      </PaginationItem>\n    </li>\n    <li>\n      <PaginationItem href=\"#pagination\">1</PaginationItem>\n    </li>\n    <li>\n      <PaginationItem href=\"#pagination\">2</PaginationItem>\n    </li>\n    <li>\n      <PaginationItem aria-current=\"page\" href=\"#pagination\">3</PaginationItem>\n    </li>\n    <li>\n      <PaginationItem href=\"#pagination\">4</PaginationItem>\n    </li>\n    <li>\n      <PaginationEllipsis aria-hidden=\"true\">\u2026</PaginationEllipsis>\n    </li>\n    <li>\n      <PaginationItem href=\"#pagination\">12</PaginationItem>\n    </li>\n    <li>\n      <PaginationItem href=\"#pagination\" aria-label=\"Next page\">\n        <svg\n          viewBox=\"0 0 20 20\"\n          fill=\"none\"\n          width=\"14\"\n          height=\"14\"\n          aria-hidden=\"true\"\n        >\n          <path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n        </svg>\n      </PaginationItem>\n    </li>\n  </Pagination>\n</nav>"
          },
          "knobs": [
            "--b-lg-inset"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "stepper",
          "title": "Stepper",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#stepper",
          "summary": ".b-steps shows progress through a linear flow. Each li carries its number in data-step ; .is-complete swaps it for an accent checkmark and fills the connector, .is-active rings the current step. Keep labels to one or two words.",
          "classes": [
            "b-steps"
          ],
          "markup": "<ol class=\"b-steps\" aria-label=\"Checkout progress\">\n  <li class=\"is-complete\" data-step=\"1\">Account</li>\n  <li class=\"is-complete\" data-step=\"2\">Shipping</li>\n  <li class=\"is-active\" data-step=\"3\" aria-current=\"step\">Payment</li>\n  <li data-step=\"4\">Review</li>\n</ol>",
          "react": {
            "import": "import { Steps } from \"barua-ui\";",
            "components": [
              "Steps"
            ],
            "root": "Steps",
            "jsx": "<Steps aria-label=\"Checkout progress\">\n  <li className=\"is-complete\" data-step=\"1\">Account</li>\n  <li className=\"is-complete\" data-step=\"2\">Shipping</li>\n  <li className=\"is-active\" data-step=\"3\" aria-current=\"step\">Payment</li>\n  <li data-step=\"4\">Review</li>\n</Steps>"
          },
          "states": [
            "is-active",
            "is-complete"
          ]
        },
        {
          "id": "menu-bar",
          "title": "Menu Bar",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#menu-bar",
          "summary": ".b-menubar is the desktop-app strip of menu titles. Hover, .is-active and [aria-expanded=\"true\"] all paint the solid accent highlight, so an open dropdown keeps its title lit. Pair each title with a dropdown menu for the real thing.",
          "classes": [
            "b-menubar",
            "b-menubar__item"
          ],
          "markup": "<div class=\"b-menubar\" aria-label=\"Application menu\">\n  <button class=\"b-menubar__item is-active\">File</button>\n  <button class=\"b-menubar__item\">Edit</button>\n  <button class=\"b-menubar__item\">View</button>\n  <button class=\"b-menubar__item\">Window</button>\n  <button class=\"b-menubar__item\">Help</button>\n</div>",
          "react": {
            "import": "import { MenuBar, MenuBarItem } from \"barua-ui\";",
            "components": [
              "MenuBar",
              "MenuBarItem"
            ],
            "root": "MenuBar",
            "jsx": "<MenuBar aria-label=\"Application menu\">\n  <MenuBarItem active>File</MenuBarItem>\n  <MenuBarItem>Edit</MenuBarItem>\n  <MenuBarItem>View</MenuBarItem>\n  <MenuBarItem>Window</MenuBarItem>\n  <MenuBarItem>Help</MenuBarItem>\n</MenuBar>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "dropdown-menu",
          "title": "Dropdown Menu",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#dropdown-menu",
          "summary": "details.b-dropdown opens a glass .b-menu with zero JavaScript. Menus compose from items with optional .b-menu__shortcut hints, a .b-menu__label , hairline .b-menu__separator s, disabled items, and a .b-menu__item--danger kept last. Add .b-dropdown--end to right-align the panel.",
          "classes": [
            "b-btn",
            "b-dropdown",
            "b-menu",
            "b-menu__item",
            "b-menu__item--danger",
            "b-menu__label",
            "b-menu__separator",
            "b-menu__shortcut"
          ],
          "markup": "<details class=\"b-dropdown\">\n  <summary class=\"b-btn\">\n    Options\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\" aria-hidden=\"true\"><path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </summary>\n  <ul class=\"b-menu\">\n    <li class=\"b-menu__label\">Repository</li>\n    <li><button class=\"b-menu__item\">Clone<span class=\"b-menu__shortcut\">\u2318\u21e7C</span></button></li>\n    <li><button class=\"b-menu__item\">Open in editor<span class=\"b-menu__shortcut\">\u2318O</span></button></li>\n    <li><button class=\"b-menu__item\" disabled>Sync fork</button></li>\n    <li><hr class=\"b-menu__separator\"></li>\n    <li><button class=\"b-menu__item b-menu__item--danger\">Delete repository<span class=\"b-menu__shortcut\">\u232b</span></button></li>\n  </ul>\n</details>",
          "react": {
            "import": "import { Button, Dropdown, Menu, MenuLabel, MenuSeparator } from \"barua-ui\";",
            "components": [
              "Button",
              "Dropdown",
              "Menu",
              "MenuLabel",
              "MenuSeparator"
            ],
            "root": "Dropdown",
            "jsx": "<Dropdown>\n  <Button>\n    Options\n    <svg\n      viewBox=\"0 0 20 20\"\n      fill=\"none\"\n      width=\"14\"\n      height=\"14\"\n      aria-hidden=\"true\"\n    >\n      <path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Button>\n  <Menu>\n    <MenuLabel>Repository</MenuLabel>\n    <li>\n      <button className=\"b-menu__item\">\n        Clone\n        <span className=\"b-menu__shortcut\">\u2318\u21e7C</span>\n      </button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\">\n        Open in editor\n        <span className=\"b-menu__shortcut\">\u2318O</span>\n      </button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\" disabled>Sync fork</button>\n    </li>\n    <li>\n      <MenuSeparator />\n    </li>\n    <li>\n      <button className=\"b-menu__item b-menu__item--danger\">\n        Delete repository\n        <span className=\"b-menu__shortcut\">\u232b</span>\n      </button>\n    </li>\n  </Menu>\n</Dropdown>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-disabled",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "context-menu",
          "title": "Context Menu",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#context-menu",
          "summary": "The same .b-menu component, summoned by right-click instead of a trigger button. In production, listen for contextmenu , show the menu with the popover attribute and position it at the pointer \u2014 the glass panel, items and states are identical. Shown here as a static instance.",
          "classes": [
            "b-menu",
            "b-menu__item",
            "b-menu__item--danger",
            "b-menu__separator",
            "b-menu__shortcut"
          ],
          "markup": "<ul class=\"b-menu\">\n  <li><button class=\"b-menu__item\">Reply<span class=\"b-menu__shortcut\">R</span></button></li>\n  <li><button class=\"b-menu__item\">Reply all<span class=\"b-menu__shortcut\">\u21e7R</span></button></li>\n  <li><button class=\"b-menu__item\">Forward<span class=\"b-menu__shortcut\">F</span></button></li>\n  <li><hr class=\"b-menu__separator\"></li>\n  <li><button class=\"b-menu__item\">Mark as read</button></li>\n  <li><button class=\"b-menu__item b-menu__item--danger\">Move to Trash<span class=\"b-menu__shortcut\">\u232b</span></button></li>\n</ul>",
          "react": {
            "import": "import { Menu, MenuSeparator } from \"barua-ui\";",
            "components": [
              "Menu",
              "MenuSeparator"
            ],
            "root": "Menu",
            "jsx": "<Menu>\n  <li>\n    <button className=\"b-menu__item\">\n      Reply\n      <span className=\"b-menu__shortcut\">R</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-menu__item\">\n      Reply all\n      <span className=\"b-menu__shortcut\">\u21e7R</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-menu__item\">\n      Forward\n      <span className=\"b-menu__shortcut\">F</span>\n    </button>\n  </li>\n  <li>\n    <MenuSeparator />\n  </li>\n  <li>\n    <button className=\"b-menu__item\">Mark as read</button>\n  </li>\n  <li>\n    <button className=\"b-menu__item b-menu__item--danger\">\n      Move to Trash\n      <span className=\"b-menu__shortcut\">\u232b</span>\n    </button>\n  </li>\n</Menu>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-disabled"
          ]
        },
        {
          "id": "command-menu",
          "title": "Command Menu",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#command-menu",
          "summary": ".b-cmdk is the \u2318K palette: a search field over a grouped command list on heavy glass. In this docs site it lives in a <dialog data-b-cmdk-root> \u2014 any button with data-b-cmdk=\"#id\" opens it, and barua.js binds \u2318K / Ctrl K globally (try it). Below is a static inline instance showing the anatomy.",
          "classes": [
            "b-cmdk",
            "b-cmdk__footer",
            "b-cmdk__group-label",
            "b-cmdk__input",
            "b-cmdk__item",
            "b-cmdk__list"
          ],
          "markup": "<div class=\"b-cmdk\">\n  <input class=\"b-cmdk__input\" type=\"search\" placeholder=\"Type a command or search\u2026\" aria-label=\"Command menu\">\n  <ul class=\"b-cmdk__list\">\n    <li class=\"b-cmdk__group-label\">Navigate</li>\n    <li>\n      <button class=\"b-cmdk__item is-active\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 11.5 5 5h10l1.5 6.5v2.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-2.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M3.5 11.5h4l1 1.5h3l1-1.5h4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n        Go to Inbox\n        <kbd>G I</kbd>\n      </button>\n    </li>\n    <li>\n      <button class=\"b-cmdk__item\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n        Go to Projects\n        <kbd>G P</kbd>\n      </button>\n    </li>\n    <li class=\"b-cmdk__group-label\">Actions</li>\n    <li>\n      <button class=\"b-cmdk__item\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n        Compose message\n        <kbd>C</kbd>\n      </button>\n    </li>\n    <li>\n      <butt",
          "react": {
            "import": "import { CommandGroupLabel, CommandList, CommandPalette } from \"barua-ui\";",
            "components": [
              "CommandGroupLabel",
              "CommandList",
              "CommandPalette"
            ],
            "root": "CommandPalette",
            "jsx": "<CommandPalette>\n  <input className=\"b-cmdk__input\" type=\"search\" placeholder=\"Type a command or search\u2026\" aria-label=\"Command menu\" />\n  <CommandList>\n    <CommandGroupLabel>Navigate</CommandGroupLabel>\n    <li>\n      <button className=\"b-cmdk__item is-active\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M3.5 11.5 5 5h10l1.5 6.5v2.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-2.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n          <path d=\"M3.5 11.5h4l1 1.5h3l1-1.5h4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        </svg>\n        Go to Inbox\n        <kbd>G I</kbd>\n      </button>\n    </li>\n    <li>\n      <button className=\"b-cmdk__item\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        </svg>\n        Go to Projects\n        <kbd>G P</kbd>\n      </button>\n    </li>\n    <CommandGroupLabel>Actions</CommandGroupLabel>\n    <li>\n      <button className=\"b-cmdk__item\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        </svg>\n        Compose message\n        <kbd>C</kbd>\n      </button>\n    </li>\n    <li></li>\n  </CommandList>\n</CommandPalette>"
          },
          "knobs": [
            "--b-lg-border"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "navigation-drawer",
          "title": "Navigation Drawer",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#navigation-drawer",
          "summary": ".b-drawer slides a full-height glass panel over the page \u2014 the mobile home for a sidebar. The demo uses the native popover attribute with popovertarget buttons: top layer, light dismiss and the spring slide-in for free. Use .b-drawer--end for the trailing edge, or a <dialog> opened via data-b-dialog=\"#id\" when you need a true modal with focus trapping.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-drawer",
            "b-drawer__body",
            "b-drawer__header",
            "b-icon-btn",
            "b-sidebar",
            "b-sidebar__group",
            "b-sidebar__heading",
            "b-sidebar__item"
          ],
          "markup": "<button class=\"b-btn\" popovertarget=\"demo-drawer\">Open drawer</button>\n<nav class=\"b-drawer\" popover id=\"demo-drawer\" aria-label=\"Drawer\">\n  <div class=\"b-drawer__header\">\n    Menu\n    <button class=\"b-btn b-icon-btn b-btn--ghost\" popovertarget=\"demo-drawer\" popovertargetaction=\"hide\" aria-label=\"Close menu\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m5 5 10 10M15 5 5 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    </button>\n  </div>\n  <div class=\"b-drawer__body\">\n    <div class=\"b-sidebar\">\n      <div class=\"b-sidebar__group\">\n        <div class=\"b-sidebar__heading\">Browse</div>\n        <a class=\"b-sidebar__item is-active\" href=\"#navigation-drawer\">Home</a>\n        <a class=\"b-sidebar__item\" href=\"#navigation-drawer\">Discover</a>\n        <a class=\"b-sidebar__item\" href=\"#navigation-drawer\">Library</a>\n      </div>\n      <div class=\"b-sidebar__group\">\n        <div class=\"b-sidebar__heading\">Account</div>\n        <a class=\"b-sidebar__item\" href=\"#navigation-drawer\">Settings</a>\n        <a class=\"b-sidebar__item\" href=\"#navigation-drawer\">Sign out</a>\n      </div>\n    </div>\n  </div>\n</nav>",
          "react": {
            "import": "import { Button, Drawer, DrawerBody, DrawerHeader, Sidebar, SidebarGroup, SidebarHeading } from \"barua-ui\";",
            "components": [
              "Button",
              "Drawer",
              "DrawerBody",
              "DrawerHeader",
              "Sidebar",
              "SidebarGroup",
              "SidebarHeading"
            ],
            "root": "Button",
            "jsx": "<Button popovertarget=\"demo-drawer\">Open drawer</Button>\n<Drawer popover=\"\" id=\"demo-drawer\" aria-label=\"Drawer\">\n  <DrawerHeader>\n    Menu\n    <Button\n      icon\n      variant=\"ghost\"\n      popovertarget=\"demo-drawer\"\n      popovertargetaction=\"hide\"\n      aria-label=\"Close menu\"\n    >\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"m5 5 10 10M15 5 5 15\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      </svg>\n    </Button>\n  </DrawerHeader>\n  <DrawerBody>\n    <Sidebar>\n      <SidebarGroup>\n        <SidebarHeading>Browse</SidebarHeading>\n        <a className=\"b-sidebar__item is-active\" href=\"#navigation-drawer\">Home</a>\n        <a className=\"b-sidebar__item\" href=\"#navigation-drawer\">Discover</a>\n        <a className=\"b-sidebar__item\" href=\"#navigation-drawer\">Library</a>\n      </SidebarGroup>\n      <SidebarGroup>\n        <SidebarHeading>Account</SidebarHeading>\n        <a className=\"b-sidebar__item\" href=\"#navigation-drawer\">Settings</a>\n        <a className=\"b-sidebar__item\" href=\"#navigation-drawer\">Sign out</a>\n      </SidebarGroup>\n    </Sidebar>\n  </DrawerBody>\n</Drawer>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "menu-submenu",
          "title": "Submenu",
          "category": "navigation",
          "url": "https://ui.barua.tz/docs/navigation.html#menu-submenu",
          "summary": "A nested flyout inside any .b-menu : wrap the item and its child menu in .b-menu__sub . The chevron is drawn for you; the flyout opens on hover or keyboard focus.",
          "classes": [
            "b-menu",
            "b-menu__item",
            "b-menu__item--danger",
            "b-menu__separator",
            "b-menu__sub"
          ],
          "markup": "<ul class=\"b-menu\" style=\"position: relative\">\n  <li><button class=\"b-menu__item\">New message</button></li>\n  <li class=\"b-menu__sub\">\n    <button class=\"b-menu__item\" aria-haspopup=\"menu\">Move to</button>\n    <ul class=\"b-menu\">\n      <li><button class=\"b-menu__item\">Archive</button></li>\n      <li><button class=\"b-menu__item\">Receipts</button></li>\n      <li><button class=\"b-menu__item\">Travel</button></li>\n    </ul>\n  </li>\n  <li><hr class=\"b-menu__separator\"></li>\n  <li><button class=\"b-menu__item b-menu__item--danger\">Delete</button></li>\n</ul>",
          "react": {
            "import": "import { Menu, MenuSeparator } from \"barua-ui\";",
            "components": [
              "Menu",
              "MenuSeparator"
            ],
            "root": "Menu",
            "jsx": "<Menu style={{ position: \"relative\" }}>\n  <li>\n    <button className=\"b-menu__item\">New message</button>\n  </li>\n  <li className=\"b-menu__sub\">\n    <button className=\"b-menu__item\" aria-haspopup=\"menu\">Move to</button>\n    <Menu>\n      <li>\n        <button className=\"b-menu__item\">Archive</button>\n      </li>\n      <li>\n        <button className=\"b-menu__item\">Receipts</button>\n      </li>\n      <li>\n        <button className=\"b-menu__item\">Travel</button>\n      </li>\n    </Menu>\n  </li>\n  <li>\n    <MenuSeparator />\n  </li>\n  <li>\n    <button className=\"b-menu__item b-menu__item--danger\">Delete</button>\n  </li>\n</Menu>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-disabled"
          ]
        }
      ]
    },
    {
      "id": "forms",
      "title": "Forms \u2014 fields, selects, switches, sliders, validation",
      "url": "https://ui.barua.tz/docs/forms.html",
      "components": [
        {
          "id": "text-field",
          "title": "Text Field",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#text-field",
          "summary": "The anatomy: a .b-field wraps a .b-label , the .b-input and an optional .b-help line. The label is always a real <label for> ; the placeholder only ever shows an example value.",
          "classes": [
            "b-field",
            "b-help",
            "b-input",
            "b-input--filled",
            "b-input--lg",
            "b-input--sm",
            "b-label"
          ],
          "markup": "<div class=\"b-field\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"tf-name\">Full name</label>\n  <input class=\"b-input\" id=\"tf-name\" type=\"text\" placeholder=\"Amina Salim\"\n         autocomplete=\"name\" aria-describedby=\"tf-name-help\">\n  <p class=\"b-help\" id=\"tf-name-help\">Exactly as it appears on your national ID.</p>\n</div>",
          "react": {
            "import": "import { Field, Help, Input, Label } from \"barua-ui\";",
            "components": [
              "Field",
              "Help",
              "Input",
              "Label"
            ],
            "root": "Field",
            "jsx": "<Field style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"tf-name\">Full name</Label>\n  <Input id=\"tf-name\" type=\"text\" placeholder=\"Amina Salim\" autoComplete=\"name\" aria-describedby=\"tf-name-help\" />\n  <Help id=\"tf-name-help\">Exactly as it appears on your national ID.</Help>\n</Field>"
          },
          "variants": [
            {
              "id": "text-field-filled",
              "title": "Filled variant"
            },
            {
              "id": "text-field-sizes",
              "title": "Sizes"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "text-area",
          "title": "Text Area",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#text-area",
          "summary": ".b-textarea shares the input skin, starts around 5.5rem tall and resizes vertically only \u2014 the column never breaks.",
          "classes": [
            "b-field",
            "b-help",
            "b-label",
            "b-textarea"
          ],
          "markup": "<div class=\"b-field\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"ta-message\">Message</label>\n  <textarea class=\"b-textarea\" id=\"ta-message\" rows=\"4\"\n            placeholder=\"Habari! I'd like a quote for delivery from Kariakoo to Mikocheni\u2026\"></textarea>\n  <p class=\"b-help\">Plain text. Drag the corner to make room.</p>\n</div>",
          "react": {
            "import": "import { Field, Help, Label, Textarea } from \"barua-ui\";",
            "components": [
              "Field",
              "Help",
              "Label",
              "Textarea"
            ],
            "root": "Field",
            "jsx": "<Field style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"ta-message\">Message</Label>\n  <Textarea\n    id=\"ta-message\"\n    rows=\"4\"\n    placeholder=\"Habari! I'd like a quote for delivery from Kariakoo to Mikocheni\u2026\"\n  ></Textarea>\n  <Help>Plain text. Drag the corner to make room.</Help>\n</Field>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "search-field",
          "title": "Search Field",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#search-field",
          "summary": "A .b-search wrapper turns the input into a filled pill; the .b-input-group positions icon and shortcut affixes. Affixes are click-through by default, and the input pads itself automatically when one is present.",
          "classes": [
            "b-input",
            "b-input-affix",
            "b-input-affix--end",
            "b-input-affix--start",
            "b-input-group",
            "b-search"
          ],
          "markup": "<div class=\"b-search\" role=\"search\" style=\"max-width: 26rem\">\n  <div class=\"b-input-group\">\n    <span class=\"b-input-affix b-input-affix--start\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13.2 13.2 3.3 3.3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    </span>\n    <input class=\"b-input\" type=\"search\" placeholder=\"Search messages\u2026\" aria-label=\"Search messages\">\n    <span class=\"b-input-affix b-input-affix--end\"><kbd>\u2318K</kbd></span>\n  </div>\n</div>",
          "react": {
            "import": "import { Input, InputGroup, SearchField } from \"barua-ui\";",
            "components": [
              "Input",
              "InputGroup",
              "SearchField"
            ],
            "root": "SearchField",
            "jsx": "<SearchField role=\"search\" style={{ maxWidth: \"26rem\" }}>\n  <InputGroup>\n    <span className=\"b-input-affix b-input-affix--start\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        <path d=\"m13.2 13.2 3.3 3.3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      </svg>\n    </span>\n    <Input type=\"search\" placeholder=\"Search messages\u2026\" aria-label=\"Search messages\" />\n    <span className=\"b-input-affix b-input-affix--end\">\n      <kbd>\u2318K</kbd>\n    </span>\n  </InputGroup>\n</SearchField>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "password-field",
          "title": "Password Field",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#password-field",
          "summary": "An end affix hosts a ghost icon button that swaps the input type . Buttons inside .b-input-affix--end regain pointer-events , so only the reveal is clickable \u2014 the rest of the affix stays inert.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-field",
            "b-help",
            "b-icon-btn",
            "b-input",
            "b-input-affix",
            "b-input-affix--end",
            "b-input-group",
            "b-label"
          ],
          "markup": "<div class=\"b-field\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"pw\">Password</label>\n  <div class=\"b-input-group\">\n    <input class=\"b-input\" id=\"pw\" type=\"password\" value=\"jambo-karibu-255\"\n           autocomplete=\"current-password\" aria-describedby=\"pw-help\">\n    <span class=\"b-input-affix b-input-affix--end\">\n      <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" type=\"button\" aria-label=\"Show password\"\n              onclick=\"const i=document.getElementById('pw');const s=i.type==='password';i.type=s?'text':'password';this.setAttribute('aria-label',s?'Hide password':'Show password')\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3.5c-4 0-6.5 4.5-6.5 6.5S6 16.5 10 16.5s6.5-4.5 6.5-6.5S14 3.5 10 3.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/><circle cx=\"10\" cy=\"10\" r=\"2.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>\n      </button>\n    </span>\n  </div>\n  <p class=\"b-help\" id=\"pw-help\">At least 12 characters. A phrase beats a puzzle.</p>\n</div>",
          "react": {
            "import": "import { Button, Field, Help, Input, InputGroup, Label } from \"barua-ui\";",
            "components": [
              "Button",
              "Field",
              "Help",
              "Input",
              "InputGroup",
              "Label"
            ],
            "root": "Field",
            "jsx": "<Field style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"pw\">Password</Label>\n  <InputGroup>\n    <Input id=\"pw\" type=\"password\" value=\"jambo-karibu-255\" autoComplete=\"current-password\" aria-describedby=\"pw-help\" />\n    <span className=\"b-input-affix b-input-affix--end\">\n      <Button\n        icon\n        variant=\"ghost\"\n        size=\"sm\"\n        type=\"button\"\n        aria-label=\"Show password\"\n        onclick=\"const i=document.getElementById('pw');const s=i.type==='password';i.type=s?'text':'password';this.setAttribute('aria-label',s?'Hide password':'Show password')\"\n      >\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M10 3.5c-4 0-6.5 4.5-6.5 6.5S6 16.5 10 16.5s6.5-4.5 6.5-6.5S14 3.5 10 3.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n          <circle cx=\"10\" cy=\"10\" r=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        </svg>\n      </Button>\n    </span>\n  </InputGroup>\n  <Help id=\"pw-help\">At least 12 characters. A phrase beats a puzzle.</Help>\n</Field>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "specialized-fields",
          "title": "Specialized Fields",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#specialized-fields",
          "summary": "There is no separate component for numbers or URLs \u2014 each is the same Text Field with a different type , which buys the right mobile keyboard and free validation. Dates and times are the exception: their native popups are not ours, so they use the Barua pickers below instead.",
          "classes": [
            "b-field",
            "b-form-row",
            "b-input",
            "b-label"
          ],
          "markup": "<div class=\"b-form-row\">\n<div class=\"b-field\">\n  <label class=\"b-label\" for=\"sp-qty\">Quantity</label>\n  <input class=\"b-input\" id=\"sp-qty\" type=\"number\" value=\"12\" min=\"1\" max=\"99\">\n</div>\n<div class=\"b-field\">\n  <label class=\"b-label\" for=\"sp-url\">Website</label>\n  <input class=\"b-input\" id=\"sp-url\" type=\"url\" value=\"https://neurotech.africa\" autocomplete=\"url\">\n</div>\n<div class=\"b-field\">\n  <label class=\"b-label\" for=\"sp-email\">Email</label>\n  <input class=\"b-input\" id=\"sp-email\" type=\"email\" placeholder=\"amina@neurotech.africa\" autocomplete=\"email\">\n</div>\n</div>",
          "react": {
            "import": "import { Field, FormRow, Input, Label } from \"barua-ui\";",
            "components": [
              "Field",
              "FormRow",
              "Input",
              "Label"
            ],
            "root": "FormRow",
            "jsx": "<FormRow>\n  <Field>\n    <Label htmlFor=\"sp-qty\">Quantity</Label>\n    <Input id=\"sp-qty\" type=\"number\" value=\"12\" min=\"1\" max=\"99\" />\n  </Field>\n  <Field>\n    <Label htmlFor=\"sp-url\">Website</Label>\n    <Input id=\"sp-url\" type=\"url\" value=\"https://neurotech.africa\" autoComplete=\"url\" />\n  </Field>\n  <Field>\n    <Label htmlFor=\"sp-email\">Email</Label>\n    <Input id=\"sp-email\" type=\"email\" placeholder=\"amina@neurotech.africa\" autoComplete=\"email\" />\n  </Field>\n</FormRow>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "date-time-picker",
          "title": "Date & Time Picker",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#date-time-picker",
          "summary": "Native date and time inputs open the browser\u2019s own popup \u2014 a surface the system cannot style, and the one thing on screen that will never look Barua. Product surfaces do not use them. Dates use the Barua date picker below: the field opens the system .b-calendar in a dropdown, the same pattern as any menu. Times use a menu select of slots. Native inputs remain only as a non-visual fallback where a picker UI truly cannot run.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-btn--tinted",
            "b-calendar",
            "b-calendar__day",
            "b-calendar__grid",
            "b-calendar__header",
            "b-calendar__month",
            "b-calendar__weekday",
            "b-dropdown",
            "b-field",
            "b-hstack",
            "b-icon-btn",
            "b-label",
            "b-menu",
            "b-menu__item",
            "b-select",
            "b-stack--between"
          ],
          "markup": "<div class=\"b-field\" style=\"max-width: 17rem\">\n  <span class=\"b-label\" id=\"bdp-label\">Travel date</span>\n  <details class=\"b-dropdown\">\n    <summary class=\"b-select\" aria-labelledby=\"bdp-label\" style=\"display: flex; align-items: center; justify-content: space-between; gap: var(--b-space-2); cursor: pointer\">\n      <span data-b-date-display>28 Aug 2026</span>\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"16\" height=\"16\" aria-hidden=\"true\"><rect x=\"3\" y=\"4.5\" width=\"14\" height=\"12\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M3 8.5h14M7 3v3M13 3v3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    </summary>\n    <div class=\"b-menu\" style=\"padding: 0; min-width: 0\">\n      <div class=\"b-calendar\" style=\"border: none\">\n        <div class=\"b-calendar__header\">\n          <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Previous month\">\u2039</button>\n          <span class=\"b-calendar__month\">August 2026</span>\n          <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Next month\">\u203a</button>\n        </div>\n        <div class=\"b-calendar__grid\" role=\"grid\" aria-label=\"August 2026\">\n          <span class=\"b-calendar__weekday\">M</span><span class=\"b-calendar__weekday\">T</span><span class=\"b-calendar__weekday\">W</span><span class=\"b-calendar__weekday\">T</span><span class=\"b-calendar__weekday\">F</span><span class=\"",
          "react": {
            "import": "import { Button, Calendar, CalendarGrid, CalendarHeader, CalendarMonth, CalendarWeekday, Dropdown, Field, Label, Menu, Select } from \"barua-ui\";",
            "components": [
              "Button",
              "Calendar",
              "CalendarGrid",
              "CalendarHeader",
              "CalendarMonth",
              "CalendarWeekday",
              "Dropdown",
              "Field",
              "Label",
              "Menu",
              "Select"
            ],
            "root": "Field",
            "jsx": "<Field style={{ maxWidth: \"17rem\" }}>\n  <Label id=\"bdp-label\">Travel date</Label>\n  <Dropdown>\n    <Select\n      aria-labelledby=\"bdp-label\"\n      style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: \"var(--b-space-2)\", cursor: \"pointer\" }}\n    >\n      <span data-b-date-display=\"\">28 Aug 2026</span>\n      <svg\n        viewBox=\"0 0 20 20\"\n        fill=\"none\"\n        width=\"16\"\n        height=\"16\"\n        aria-hidden=\"true\"\n      >\n        <rect x=\"3\" y=\"4.5\" width=\"14\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        <path d=\"M3 8.5h14M7 3v3M13 3v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      </svg>\n    </Select>\n    <Menu style={{ padding: \"0\", minWidth: \"0\" }}>\n      <Calendar style={{ border: \"none\" }}>\n        <CalendarHeader>\n          <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Previous month\">\u2039</Button>\n          <CalendarMonth>August 2026</CalendarMonth>\n          <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Next month\">\u203a</Button>\n        </CalendarHeader>\n        <CalendarGrid role=\"grid\" aria-label=\"August 2026\">\n          <CalendarWeekday>M</CalendarWeekday>\n          <CalendarWeekday>T</CalendarWeekday>\n          <CalendarWeekday>W</CalendarWeekday>\n          <CalendarWeekday>T</CalendarWeekday>\n          <CalendarWeekday>F</CalendarWeekday>\n        </CalendarGrid>\n      </Calendar>\n    </Menu>\n  </Dropdown>\n</Field>"
          },
          "variants": [
            {
              "id": "barua-date-picker",
              "title": "Barua date picker"
            },
            {
              "id": "barua-time-picker",
              "title": "Menu time picker"
            }
          ],
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-disabled",
            "is-in-range",
            "is-invalid",
            "is-loading",
            "is-muted",
            "is-pressed",
            "is-range-end",
            "is-range-start",
            "is-selected",
            "is-today",
            "is-valid"
          ]
        },
        {
          "id": "select",
          "title": "Select",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#select",
          "summary": ".b-select strips the platform chrome and draws its own chevron, so it matches the input family in both themes. It is still a native <select> \u2014 the picker sheet on iOS and the popup on macOS come along untouched.",
          "classes": [
            "b-dropdown",
            "b-field",
            "b-help",
            "b-label",
            "b-menu",
            "b-menu__item",
            "b-select"
          ],
          "markup": "<div class=\"b-field\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"sel-region\">Region</label>\n  <!-- barua-lint disable native-select: documenting the platform control itself; product surfaces use the menu select above -->\n  <select class=\"b-select\" id=\"sel-region\">\n    <option value=\"\" disabled>Choose a region\u2026</option>\n    <option selected>Dar es Salaam</option>\n    <option>Arusha</option>\n    <option>Dodoma</option>\n    <option>Mwanza</option>\n    <option>Zanzibar West</option>\n  </select>\n  <p class=\"b-help\">Sets your default delivery zone.</p>\n</div>",
          "react": {
            "import": "import { Field, Help, Label, Select } from \"barua-ui\";",
            "components": [
              "Field",
              "Help",
              "Label",
              "Select"
            ],
            "root": "Field",
            "jsx": "<Field style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"sel-region\">Region</Label>\n  <Select id=\"sel-region\">\n    <option value=\"\" disabled>Choose a region\u2026</option>\n    <option selected>Dar es Salaam</option>\n    <option>Arusha</option>\n    <option>Dodoma</option>\n    <option>Mwanza</option>\n    <option>Zanzibar West</option>\n  </Select>\n  <Help>Sets your default delivery zone.</Help>\n</Field>"
          },
          "variants": [
            {
              "id": "menu-select",
              "title": "Menu select"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-disabled",
            "is-invalid",
            "is-selected",
            "is-valid"
          ]
        },
        {
          "id": "combobox-autocomplete",
          "title": "Combobox & Autocomplete",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#combobox-autocomplete",
          "summary": "A .b-combobox pairs a .b-input with an anchored .b-combobox__list . The previously chosen option carries aria-selected=\"true\" ; the option the arrow keys are resting on gets .is-active . Both lists are pinned open here for show \u2014 your JS toggles them.",
          "classes": [
            "b-combobox",
            "b-combobox__empty",
            "b-combobox__list",
            "b-combobox__option",
            "b-field",
            "b-input",
            "b-label"
          ],
          "markup": "<div class=\"b-field\" style=\"width: 18rem\">\n  <label class=\"b-label\" for=\"cb-region\">Region</label>\n  <div class=\"b-combobox\">\n    <input class=\"b-input\" id=\"cb-region\" type=\"text\" value=\"M\" role=\"combobox\"\n           aria-expanded=\"true\" aria-controls=\"cb-region-list\" aria-autocomplete=\"list\"\n           aria-activedescendant=\"cb-opt-morogoro\" autocomplete=\"off\">\n    <ul class=\"b-combobox__list\" id=\"cb-region-list\" role=\"listbox\" aria-label=\"Regions\">\n      <li class=\"b-combobox__option\" id=\"cb-opt-mwanza\" role=\"option\" aria-selected=\"true\">Mwanza</li>\n      <li class=\"b-combobox__option is-active\" id=\"cb-opt-morogoro\" role=\"option\" aria-selected=\"false\">Morogoro</li>\n      <li class=\"b-combobox__option\" role=\"option\" aria-selected=\"false\">Mtwara</li>\n      <li class=\"b-combobox__option\" role=\"option\" aria-selected=\"false\">Mara</li>\n      <li class=\"b-combobox__option\" role=\"option\" aria-selected=\"false\">Manyara</li>\n    </ul>\n  </div>\n</div>\n<div class=\"b-field\" style=\"width: 18rem\">\n  <label class=\"b-label\" for=\"cb-none\">Region</label>\n  <div class=\"b-combobox\">\n    <input class=\"b-input\" id=\"cb-none\" type=\"text\" value=\"Nairobi\" role=\"combobox\"\n           aria-expanded=\"true\" aria-controls=\"cb-none-list\" aria-autocomplete=\"list\" autocomplete=\"off\">\n    <ul class=\"b-combobox__list\" id=\"cb-none-list\" role=\"listbox\" aria-label=\"Regions\">\n      <li class=\"b-combobox__empty\">No Tan",
          "react": {
            "import": "import { Combobox, ComboboxEmpty, ComboboxList, Field, Input, Label } from \"barua-ui\";",
            "components": [
              "Combobox",
              "ComboboxEmpty",
              "ComboboxList",
              "Field",
              "Input",
              "Label"
            ],
            "root": "Field",
            "jsx": "<Field style={{ width: \"18rem\" }}>\n  <Label htmlFor=\"cb-region\">Region</Label>\n  <Combobox>\n    <Input id=\"cb-region\" type=\"text\" value=\"M\" role=\"combobox\" aria-expanded=\"true\" aria-controls=\"cb-region-list\" aria-autocomplete=\"list\" aria-activedescendant=\"cb-opt-morogoro\" autoComplete=\"off\" />\n    <ComboboxList id=\"cb-region-list\" role=\"listbox\" aria-label=\"Regions\">\n      <li\n        className=\"b-combobox__option\"\n        id=\"cb-opt-mwanza\"\n        role=\"option\"\n        aria-selected=\"true\"\n      >\n        Mwanza\n      </li>\n      <li\n        className=\"b-combobox__option is-active\"\n        id=\"cb-opt-morogoro\"\n        role=\"option\"\n        aria-selected=\"false\"\n      >\n        Morogoro\n      </li>\n      <li className=\"b-combobox__option\" role=\"option\" aria-selected=\"false\">Mtwara</li>\n      <li className=\"b-combobox__option\" role=\"option\" aria-selected=\"false\">Mara</li>\n      <li className=\"b-combobox__option\" role=\"option\" aria-selected=\"false\">Manyara</li>\n    </ComboboxList>\n  </Combobox>\n</Field>\n<Field style={{ width: \"18rem\" }}>\n  <Label htmlFor=\"cb-none\">Region</Label>\n  <Combobox>\n    <Input id=\"cb-none\" type=\"text\" value=\"Nairobi\" role=\"combobox\" aria-expanded=\"true\" aria-controls=\"cb-none-list\" aria-autocomplete=\"list\" autoComplete=\"off\" />\n    <ComboboxList id=\"cb-none-list\" role=\"listbox\" aria-label=\"Regions\">\n      <ComboboxEmpty>No Tan</ComboboxEmpty>\n    </ComboboxList>\n  </Combobox>\n</Field>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "checkbox",
          "title": "Checkbox",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#checkbox",
          "summary": "A styled native checkbox inside its own label \u2014 no wrapper ids, no for/id bookkeeping. Indeterminate is a JavaScript-only state: set input.indeterminate = true on a parent whose children disagree, as the tiny script below does.",
          "classes": [
            "b-checkbox"
          ],
          "markup": "<label class=\"b-checkbox\"><input type=\"checkbox\" id=\"chk-districts\"> Deliver across Dar es Salaam</label>\n<label class=\"b-checkbox\"><input type=\"checkbox\" checked> Ilala district</label>\n<label class=\"b-checkbox\"><input type=\"checkbox\"> Kinondoni district</label>\n<label class=\"b-checkbox\"><input type=\"checkbox\" disabled> Temeke district (coming soon)</label>\n<script>document.getElementById(\"chk-districts\").indeterminate = true</script>",
          "react": {
            "import": "import { Checkbox } from \"barua-ui\";",
            "components": [
              "Checkbox"
            ],
            "root": "Checkbox",
            "jsx": "<Checkbox>\n  <input type=\"checkbox\" id=\"chk-districts\" />\n  Deliver across Dar es Salaam\n</Checkbox>\n<Checkbox>\n  <input type=\"checkbox\" checked />\n  Ilala district\n</Checkbox>\n<Checkbox>\n  <input type=\"checkbox\" />\n  Kinondoni district\n</Checkbox>\n<Checkbox>\n  <input type=\"checkbox\" disabled />\n  Temeke district (coming soon)\n</Checkbox>\n<script>document.getElementById(\"chk-districts\").indeterminate = true</script>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset"
          ]
        },
        {
          "id": "radio-button",
          "title": "Radio Button",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#radio-button",
          "summary": "Radios travel in groups, and the group needs a name of its own \u2014 wrap it in a .b-fieldset with a legend so the question is announced before the options.",
          "classes": [
            "b-fieldset",
            "b-radio"
          ],
          "markup": "<fieldset class=\"b-fieldset\">\n  <legend>Payment method</legend>\n  <label class=\"b-radio\"><input type=\"radio\" name=\"pay\" checked> M-Pesa</label>\n  <label class=\"b-radio\"><input type=\"radio\" name=\"pay\"> Airtel Money</label>\n  <label class=\"b-radio\"><input type=\"radio\" name=\"pay\"> Mixx by Yas</label>\n  <label class=\"b-radio\"><input type=\"radio\" name=\"pay\"> Card \u2014 Visa or Mastercard</label>\n</fieldset>",
          "react": {
            "import": "import { Fieldset, Radio } from \"barua-ui\";",
            "components": [
              "Fieldset",
              "Radio"
            ],
            "root": "Fieldset",
            "jsx": "<Fieldset>\n  <legend>Payment method</legend>\n  <Radio>\n    <input type=\"radio\" name=\"pay\" checked />\n    M-Pesa\n  </Radio>\n  <Radio>\n    <input type=\"radio\" name=\"pay\" />\n    Airtel Money\n  </Radio>\n  <Radio>\n    <input type=\"radio\" name=\"pay\" />\n    Mixx by Yas\n  </Radio>\n  <Radio>\n    <input type=\"radio\" name=\"pay\" />\n    Card \u2014 Visa or Mastercard\n  </Radio>\n</Fieldset>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset"
          ]
        },
        {
          "id": "toggle-switch",
          "title": "Toggle Switch",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#toggle-switch",
          "summary": "An iOS-grade .b-switch with a sprung thumb. Use it for settings that take effect immediately; if the choice is submitted with the rest of a form, that is a checkbox.",
          "classes": [
            "b-switch",
            "b-switch--sm"
          ],
          "markup": "<label class=\"b-switch\"><input type=\"checkbox\" checked> Read receipts</label>\n<label class=\"b-switch\"><input type=\"checkbox\"> Auto-archive promotions</label>\n<label class=\"b-switch b-switch--sm\"><input type=\"checkbox\" checked> Compact inbox</label>\n<label class=\"b-switch\"><input type=\"checkbox\" checked disabled> End-to-end encryption \u2014 always on</label>",
          "react": {
            "import": "import { Switch } from \"barua-ui\";",
            "components": [
              "Switch"
            ],
            "root": "Switch",
            "jsx": "<Switch>\n  <input type=\"checkbox\" checked />\n  Read receipts\n</Switch>\n<Switch>\n  <input type=\"checkbox\" />\n  Auto-archive promotions\n</Switch>\n<Switch small>\n  <input type=\"checkbox\" checked />\n  Compact inbox\n</Switch>\n<Switch>\n  <input type=\"checkbox\" checked disabled />\n  End-to-end encryption \u2014 always on\n</Switch>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset"
          ]
        },
        {
          "id": "slider",
          "title": "Slider",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#slider",
          "summary": "input.b-slider is a native range input with an accent fill. barua.js finds every one and keeps --b-slider-fill in sync as the thumb moves, normalising against whatever min / max you set.",
          "classes": [
            "b-field",
            "b-help",
            "b-label",
            "b-slider"
          ],
          "markup": "<div class=\"b-field\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"sl-volume\">Volume</label>\n  <input class=\"b-slider\" id=\"sl-volume\" type=\"range\" min=\"0\" max=\"100\" value=\"65\">\n</div>\n<div class=\"b-field\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"sl-font\">Font size</label>\n  <input class=\"b-slider\" id=\"sl-font\" type=\"range\" min=\"12\" max=\"24\" step=\"1\" value=\"16\">\n  <p class=\"b-help\">12\u201324 px. The fill is computed from min/max, not the raw value.</p>\n</div>",
          "react": {
            "import": "import { Field, Help, Label, Slider } from \"barua-ui\";",
            "components": [
              "Field",
              "Help",
              "Label",
              "Slider"
            ],
            "root": "Field",
            "jsx": "<Field style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"sl-volume\">Volume</Label>\n  <Slider id=\"sl-volume\" type=\"range\" min=\"0\" max=\"100\" value=\"65\" />\n</Field>\n<Field style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"sl-font\">Font size</Label>\n  <Slider id=\"sl-font\" type=\"range\" min=\"12\" max=\"24\" step=\"1\" value=\"16\" />\n  <Help>12\u201324 px. The fill is computed from min/max, not the raw value.</Help>\n</Field>"
          },
          "knobs": [
            "--b-slider-fill"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "range-slider",
          "title": "Range Slider",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#range-slider",
          "summary": "Two native range inputs overlaid in a .b-range : the track is drawn by the wrapper, the thumbs stay interactive, and the .b-range__fill bar between them is positioned inline \u2014 here statically, in production from your input handler.",
          "classes": [
            "b-field",
            "b-help",
            "b-label",
            "b-range",
            "b-range__fill"
          ],
          "markup": "<div class=\"b-field\" style=\"max-width: 26rem\">\n  <span class=\"b-label\" id=\"rs-label\">Price range</span>\n  <div class=\"b-range\" role=\"group\" aria-labelledby=\"rs-label\">\n    <div class=\"b-range__fill\" style=\"inset-inline-start: 20%; width: 45%\"></div>\n    <input type=\"range\" min=\"0\" max=\"100000\" step=\"5000\" value=\"20000\" aria-label=\"Minimum price\">\n    <input type=\"range\" min=\"0\" max=\"100000\" step=\"5000\" value=\"65000\" aria-label=\"Maximum price\">\n  </div>\n  <p class=\"b-help\">TZS 20,000 \u2013 TZS 65,000</p>\n</div>",
          "react": {
            "import": "import { Field, Help, Label, Range } from \"barua-ui\";",
            "components": [
              "Field",
              "Help",
              "Label",
              "Range"
            ],
            "root": "Field",
            "jsx": "<Field style={{ maxWidth: \"26rem\" }}>\n  <Label id=\"rs-label\">Price range</Label>\n  <Range role=\"group\" aria-labelledby=\"rs-label\">\n    <div\n      className=\"b-range__fill\"\n      style={{ insetInlineStart: \"20%\", width: \"45%\" }}\n    ></div>\n    <input type=\"range\" min=\"0\" max=\"100000\" step=\"5000\" value=\"20000\" aria-label=\"Minimum price\" />\n    <input type=\"range\" min=\"0\" max=\"100000\" step=\"5000\" value=\"65000\" aria-label=\"Maximum price\" />\n  </Range>\n  <Help>TZS 20,000 \u2013 TZS 65,000</Help>\n</Field>"
          },
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "stepper-input",
          "title": "Stepper Input",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#stepper-input",
          "summary": "A .b-stepper-input is a number input flanked by \u2212 and + buttons. barua.js wires the pair automatically, honouring min , max and step \u2014 no data attributes required.",
          "classes": [
            "b-field",
            "b-label",
            "b-stepper-input"
          ],
          "markup": "<div class=\"b-field\">\n  <label class=\"b-label\" for=\"st-passengers\">Passengers</label>\n  <div class=\"b-stepper-input\">\n    <button type=\"button\" aria-label=\"Fewer passengers\">\u2212</button>\n    <input id=\"st-passengers\" type=\"number\" value=\"2\" min=\"1\" max=\"10\">\n    <button type=\"button\" aria-label=\"More passengers\">+</button>\n  </div>\n</div>\n<div class=\"b-field\">\n  <label class=\"b-label\" for=\"st-copies\">Print copies</label>\n  <div class=\"b-stepper-input\">\n    <button type=\"button\" aria-label=\"Fewer copies\">\u2212</button>\n    <input id=\"st-copies\" type=\"number\" value=\"15\" min=\"5\" max=\"50\" step=\"5\">\n    <button type=\"button\" aria-label=\"More copies\">+</button>\n  </div>\n</div>",
          "react": {
            "import": "import { Field, Label, StepperInput } from \"barua-ui\";",
            "components": [
              "Field",
              "Label",
              "StepperInput"
            ],
            "root": "Field",
            "jsx": "<Field>\n  <Label htmlFor=\"st-passengers\">Passengers</Label>\n  <StepperInput>\n    <button type=\"button\" aria-label=\"Fewer passengers\">\u2212</button>\n    <input id=\"st-passengers\" type=\"number\" value=\"2\" min=\"1\" max=\"10\" />\n    <button type=\"button\" aria-label=\"More passengers\">+</button>\n  </StepperInput>\n</Field>\n<Field>\n  <Label htmlFor=\"st-copies\">Print copies</Label>\n  <StepperInput>\n    <button type=\"button\" aria-label=\"Fewer copies\">\u2212</button>\n    <input id=\"st-copies\" type=\"number\" value=\"15\" min=\"5\" max=\"50\" step=\"5\" />\n    <button type=\"button\" aria-label=\"More copies\">+</button>\n  </StepperInput>\n</Field>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "file-upload",
          "title": "File Upload",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#file-upload",
          "summary": "The .b-upload dropzone is a label wrapping a hidden file input, so clicking anywhere opens the picker. Add .is-dragover from your dragenter handler to light it up, and list accepted files as .b-upload-item rows.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-icon-btn",
            "b-upload",
            "b-upload-item",
            "b-upload-item__meta",
            "b-upload-item__name",
            "b-upload-item__size",
            "b-upload-item__thumb",
            "b-upload__hint"
          ],
          "markup": "<label class=\"b-upload\" style=\"max-width: 26rem\">\n  <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M12 16V8m0 0-3 3m3-3 3 3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 18.5a4.5 4.5 0 0 1-.42-8.98 5.5 5.5 0 0 1 10.84 0A4.5 4.5 0 0 1 17 18.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  <span><strong>Choose files</strong> or drag them here</span>\n  <span class=\"b-upload__hint\">PDF, PNG or JPG \u00b7 up to 10 MB each</span>\n  <input type=\"file\" multiple accept=\".pdf,.png,.jpg,.jpeg\">\n</label>\n<div class=\"b-upload-item\" style=\"max-width: 26rem\">\n  <div class=\"b-upload-item__thumb\" aria-hidden=\"true\"></div>\n  <div class=\"b-upload-item__meta\">\n    <div class=\"b-upload-item__name\">zanzibar-ferry-eticket.pdf</div>\n    <div class=\"b-upload-item__size\">1.2 MB</div>\n  </div>\n  <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" type=\"button\" aria-label=\"Remove zanzibar-ferry-eticket.pdf\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </button>\n</div>\n<div class=\"b-upload-item\" style=\"max-width: 26rem\">\n  <div class=\"b-upload-item__thumb\" aria-hidden=\"true\"></div>\n  <div class=\"b-upload-item__meta\">\n    <div class=\"b-upload-item__name\">amina-profile-photo.jpg</div>\n    <",
          "react": {
            "import": "import { Button, Upload, UploadItem } from \"barua-ui\";",
            "components": [
              "Button",
              "Upload",
              "UploadItem"
            ],
            "root": "Upload",
            "jsx": "<Upload style={{ maxWidth: \"26rem\" }}>\n  <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M12 16V8m0 0-3 3m3-3 3 3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    <path d=\"M7 18.5a4.5 4.5 0 0 1-.42-8.98 5.5 5.5 0 0 1 10.84 0A4.5 4.5 0 0 1 17 18.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n  </svg>\n  <span>\n    <strong>Choose files</strong>\n    or drag them here\n  </span>\n  <span className=\"b-upload__hint\">PDF, PNG or JPG \u00b7 up to 10 MB each</span>\n  <input type=\"file\" multiple accept=\".pdf,.png,.jpg,.jpeg\" />\n</Upload>\n<UploadItem style={{ maxWidth: \"26rem\" }}>\n  <div className=\"b-upload-item__thumb\" aria-hidden=\"true\"></div>\n  <div className=\"b-upload-item__meta\">\n    <div className=\"b-upload-item__name\">zanzibar-ferry-eticket.pdf</div>\n    <div className=\"b-upload-item__size\">1.2 MB</div>\n  </div>\n  <Button\n    icon\n    variant=\"ghost\"\n    size=\"sm\"\n    type=\"button\"\n    aria-label=\"Remove zanzibar-ferry-eticket.pdf\"\n  >\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </Button>\n</UploadItem>\n<UploadItem style={{ maxWidth: \"26rem\" }}>\n  <div className=\"b-upload-item__thumb\" aria-hidden=\"true\"></div>\n  <div className=\"b-upload-item__meta\">\n    <div className=\"b-upload-item__name\">amina-profile-photo.jpg</div>\n  </div>\n</UploadItem>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-dragover",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "color-picker",
          "title": "Color Picker",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#color-picker",
          "summary": "A native input[type=color] dressed to sit beside the other controls, plus a .b-swatches row for presets \u2014 mark the current one with .is-selected .",
          "classes": [
            "b-color-picker",
            "b-field",
            "b-label",
            "b-swatch",
            "b-swatches"
          ],
          "markup": "<div class=\"b-field\">\n  <label class=\"b-label\" for=\"cp-brand\">Brand color</label>\n  <div class=\"b-color-picker\">\n    <input type=\"color\" id=\"cp-brand\" value=\"#0a84ff\">\n    <div class=\"b-swatches\" role=\"group\" aria-label=\"Preset colors\">\n      <button class=\"b-swatch is-selected\" type=\"button\" style=\"background: #0a84ff\" aria-label=\"Blue\" aria-pressed=\"true\"></button>\n      <button class=\"b-swatch\" type=\"button\" style=\"background: #30d158\" aria-label=\"Green\" aria-pressed=\"false\"></button>\n      <button class=\"b-swatch\" type=\"button\" style=\"background: #ff9f0a\" aria-label=\"Orange\" aria-pressed=\"false\"></button>\n      <button class=\"b-swatch\" type=\"button\" style=\"background: #ff375f\" aria-label=\"Pink\" aria-pressed=\"false\"></button>\n      <button class=\"b-swatch\" type=\"button\" style=\"background: #bf5af2\" aria-label=\"Purple\" aria-pressed=\"false\"></button>\n      <button class=\"b-swatch\" type=\"button\" style=\"background: #64d2ff\" aria-label=\"Cyan\" aria-pressed=\"false\"></button>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Field, Label, Swatch, Swatches } from \"barua-ui\";",
            "components": [
              "Field",
              "Label",
              "Swatch",
              "Swatches"
            ],
            "root": "Field",
            "jsx": "<Field>\n  <Label htmlFor=\"cp-brand\">Brand color</Label>\n  <div className=\"b-color-picker\">\n    <input type=\"color\" id=\"cp-brand\" value=\"#0a84ff\" />\n    <Swatches role=\"group\" aria-label=\"Preset colors\">\n      <Swatch\n        selected\n        type=\"button\"\n        style={{ background: \"#0a84ff\" }}\n        aria-label=\"Blue\"\n        aria-pressed=\"true\"\n      ></Swatch>\n      <Swatch\n        type=\"button\"\n        style={{ background: \"#30d158\" }}\n        aria-label=\"Green\"\n        aria-pressed=\"false\"\n      ></Swatch>\n      <Swatch\n        type=\"button\"\n        style={{ background: \"#ff9f0a\" }}\n        aria-label=\"Orange\"\n        aria-pressed=\"false\"\n      ></Swatch>\n      <Swatch\n        type=\"button\"\n        style={{ background: \"#ff375f\" }}\n        aria-label=\"Pink\"\n        aria-pressed=\"false\"\n      ></Swatch>\n      <Swatch\n        type=\"button\"\n        style={{ background: \"#bf5af2\" }}\n        aria-label=\"Purple\"\n        aria-pressed=\"false\"\n      ></Swatch>\n      <Swatch\n        type=\"button\"\n        style={{ background: \"#64d2ff\" }}\n        aria-label=\"Cyan\"\n        aria-pressed=\"false\"\n      ></Swatch>\n    </Swatches>\n  </div>\n</Field>"
          },
          "states": [
            "is-invalid",
            "is-selected",
            "is-valid"
          ]
        },
        {
          "id": "form-structure",
          "title": "Form Structure",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#form-structure",
          "summary": ".b-form stacks .b-form-section cards, each with a header, its fields, and rows that auto-flow into columns when there is at least 14rem to spare. .b-form-actions aligns trailing, like a macOS sheet.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-field",
            "b-form",
            "b-form-actions",
            "b-form-row",
            "b-form-section",
            "b-form-section__desc",
            "b-form-section__header",
            "b-form-section__title",
            "b-help",
            "b-input",
            "b-label",
            "b-label--required",
            "b-optional",
            "b-select",
            "b-switch",
            "b-textarea"
          ],
          "markup": "<form class=\"b-form\" onsubmit=\"event.preventDefault()\">\n  <div class=\"b-form-section\">\n    <div class=\"b-form-section__header\">\n      <div class=\"b-form-section__title\">Profile settings</div>\n      <p class=\"b-form-section__desc\">How you appear across Barua apps.</p>\n    </div>\n    <div class=\"b-form-row\">\n      <div class=\"b-field\">\n        <label class=\"b-label\" for=\"ps-first\">First name</label>\n        <input class=\"b-input\" id=\"ps-first\" type=\"text\" value=\"Amina\" autocomplete=\"given-name\">\n      </div>\n      <div class=\"b-field\">\n        <label class=\"b-label\" for=\"ps-last\">Last name</label>\n        <input class=\"b-input\" id=\"ps-last\" type=\"text\" value=\"Salim\" autocomplete=\"family-name\">\n      </div>\n    </div>\n    <div class=\"b-field\">\n      <label class=\"b-label b-label--required\" for=\"ps-email\">Work email</label>\n      <input class=\"b-input\" id=\"ps-email\" type=\"email\" value=\"amina@neurotech.africa\" required autocomplete=\"email\">\n      <p class=\"b-help\">Used for sign-in and receipts.</p>\n    </div>\n    <div class=\"b-form-row\">\n      <div class=\"b-field\">\n        <label class=\"b-label\" for=\"ps-phone\">Phone</label>\n        <input class=\"b-input\" id=\"ps-phone\" type=\"tel\" value=\"+255 754 123 456\" autocomplete=\"tel\">\n      </div>\n      <div class=\"b-field\">\n        <label class=\"b-label\" for=\"ps-city\">City</label>\n        <!-- barua-lint disable native-select: documenting the ",
          "react": {
            "import": "import { Field, Form, FormRow, FormSection, Help, Input, Label } from \"barua-ui\";",
            "components": [
              "Field",
              "Form",
              "FormRow",
              "FormSection",
              "Help",
              "Input",
              "Label"
            ],
            "root": "Form",
            "jsx": "<Form onsubmit=\"event.preventDefault()\">\n  <FormSection>\n    <div className=\"b-form-section__header\">\n      <div className=\"b-form-section__title\">Profile settings</div>\n      <p className=\"b-form-section__desc\">How you appear across Barua apps.</p>\n    </div>\n    <FormRow>\n      <Field>\n        <Label htmlFor=\"ps-first\">First name</Label>\n        <Input id=\"ps-first\" type=\"text\" value=\"Amina\" autoComplete=\"given-name\" />\n      </Field>\n      <Field>\n        <Label htmlFor=\"ps-last\">Last name</Label>\n        <Input id=\"ps-last\" type=\"text\" value=\"Salim\" autoComplete=\"family-name\" />\n      </Field>\n    </FormRow>\n    <Field>\n      <Label className=\"b-label--required\" htmlFor=\"ps-email\">Work email</Label>\n      <Input id=\"ps-email\" type=\"email\" value=\"amina@neurotech.africa\" required autoComplete=\"email\" />\n      <Help>Used for sign-in and receipts.</Help>\n    </Field>\n    <FormRow>\n      <Field>\n        <Label htmlFor=\"ps-phone\">Phone</Label>\n        <Input id=\"ps-phone\" type=\"tel\" value=\"+255 754 123 456\" autoComplete=\"tel\" />\n      </Field>\n      <Field>\n        <Label htmlFor=\"ps-city\">City</Label>\n      </Field>\n    </FormRow>\n  </FormSection>\n</Form>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-selected",
            "is-valid"
          ]
        },
        {
          "id": "labels-help",
          "title": "Labels & Help",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#labels-help",
          "summary": "Required fields get .b-label--required , which appends a red asterisk; genuinely optional ones say so with a .b-optional span. When most of a form is required, mark the optional few instead of starring everything. Keep .b-help to one calm sentence.",
          "classes": [
            "b-field",
            "b-help",
            "b-input",
            "b-label",
            "b-label--required",
            "b-optional"
          ],
          "markup": "<div class=\"b-field\" style=\"max-width: 26rem\">\n  <label class=\"b-label b-label--required\" for=\"lh-tin\">TIN</label>\n  <input class=\"b-input\" id=\"lh-tin\" type=\"text\" inputmode=\"numeric\" placeholder=\"123-456-789\"\n         required aria-describedby=\"lh-tin-help\">\n  <p class=\"b-help\" id=\"lh-tin-help\">9 digits, as issued by the Tanzania Revenue Authority.</p>\n</div>\n<div class=\"b-field\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"lh-instagram\">Instagram <span class=\"b-optional\">(optional)</span></label>\n  <input class=\"b-input\" id=\"lh-instagram\" type=\"text\" placeholder=\"@duka.langu\">\n</div>",
          "react": {
            "import": "import { Field, Help, Input, Label, Optional } from \"barua-ui\";",
            "components": [
              "Field",
              "Help",
              "Input",
              "Label",
              "Optional"
            ],
            "root": "Field",
            "jsx": "<Field style={{ maxWidth: \"26rem\" }}>\n  <Label className=\"b-label--required\" htmlFor=\"lh-tin\">TIN</Label>\n  <Input id=\"lh-tin\" type=\"text\" inputMode=\"numeric\" placeholder=\"123-456-789\" required aria-describedby=\"lh-tin-help\" />\n  <Help id=\"lh-tin-help\">9 digits, as issued by the Tanzania Revenue Authority.</Help>\n</Field>\n<Field style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"lh-instagram\">\n    Instagram\n    <Optional>(optional)</Optional>\n  </Label>\n  <Input id=\"lh-instagram\" type=\"text\" placeholder=\"@duka.langu\" />\n</Field>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "validation",
          "title": "Validation",
          "category": "forms",
          "url": "https://ui.barua.tz/docs/forms.html#validation",
          "summary": "Add .is-invalid to the field and swap the help line for a .b-error \u2014 border, focus ring and message all turn danger together. .is-valid confirms with a success border. Prefer no class at all where you can: .b-input:user-invalid picks up the danger border only after the person has actually touched the field, so a pristine form never opens covered in red.",
          "classes": [
            "b-error",
            "b-field",
            "b-help",
            "b-input",
            "b-label"
          ],
          "markup": "<div class=\"b-field is-invalid\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"v-phone\">Phone number</label>\n  <input class=\"b-input\" id=\"v-phone\" type=\"tel\" value=\"0754 123\" autocomplete=\"tel\"\n         aria-invalid=\"true\" aria-describedby=\"v-phone-error\">\n  <p class=\"b-error\" id=\"v-phone-error\">\n    <svg viewBox=\"0 0 20 20\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"10\" cy=\"10\" r=\"7.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M10 6.5v4m0 2.8v.2\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    Enter the full number, e.g. +255 754 123 456.\n  </p>\n</div>\n<div class=\"b-field is-valid\" style=\"max-width: 26rem\">\n  <label class=\"b-label\" for=\"v-email\">Email</label>\n  <input class=\"b-input\" id=\"v-email\" type=\"email\" value=\"amina@neurotech.africa\"\n         aria-describedby=\"v-email-help\">\n  <p class=\"b-help\" id=\"v-email-help\">Looks good \u2014 we'll send a confirmation here.</p>\n</div>",
          "react": {
            "import": "import { ErrorText, Field, Help, Input, Label } from \"barua-ui\";",
            "components": [
              "ErrorText",
              "Field",
              "Help",
              "Input",
              "Label"
            ],
            "root": "Field",
            "jsx": "<Field invalid style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"v-phone\">Phone number</Label>\n  <Input id=\"v-phone\" type=\"tel\" value=\"0754 123\" autoComplete=\"tel\" aria-invalid=\"true\" aria-describedby=\"v-phone-error\" />\n  <ErrorText id=\"v-phone-error\">\n    <svg\n      viewBox=\"0 0 20 20\"\n      width=\"14\"\n      height=\"14\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <circle cx=\"10\" cy=\"10\" r=\"7.25\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"M10 6.5v4m0 2.8v.2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n    Enter the full number, e.g. +255 754 123 456.\n  </ErrorText>\n</Field>\n<Field className=\"is-valid\" style={{ maxWidth: \"26rem\" }}>\n  <Label htmlFor=\"v-email\">Email</Label>\n  <Input id=\"v-email\" type=\"email\" value=\"amina@neurotech.africa\" aria-describedby=\"v-email-help\" />\n  <Help id=\"v-email-help\">Looks good \u2014 we'll send a confirmation here.</Help>\n</Field>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        }
      ]
    },
    {
      "id": "content",
      "title": "Content \u2014 cards, lists, tables, badges, avatars",
      "url": "https://ui.barua.tz/docs/content.html",
      "components": [
        {
          "id": "card",
          "title": "Card",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#card",
          "summary": "A bordered surface with optional .b-card__header , .b-card__body and .b-card__footer regions. Title and subtitle classes keep the type ramp consistent across products.",
          "classes": [
            "b-badge",
            "b-badge--success",
            "b-btn",
            "b-btn--block",
            "b-btn--ghost",
            "b-btn--glass",
            "b-btn--pill",
            "b-btn--primary",
            "b-btn--sm",
            "b-btn--tinted",
            "b-card",
            "b-card--accent",
            "b-card--compact",
            "b-card--elevated",
            "b-card--fill",
            "b-card--flush",
            "b-card--glass",
            "b-card--icon",
            "b-card--interactive",
            "b-card--media-overlay",
            "b-card--neutral",
            "b-card__art",
            "b-card__body",
            "b-card__eyebrow",
            "b-card__footer",
            "b-card__header",
            "b-card__media",
            "b-card__overlay",
            "b-card__subtitle",
            "b-card__title",
            "b-gap-3",
            "b-grid",
            "b-grid--3",
            "b-grow",
            "b-hstack",
            "b-icon-tile",
            "b-icon-tile--gray",
            "b-icon-tile--green",
            "b-icon-tile--indigo",
            "b-icon-tile--orange",
            "b-icon-tile--purple",
            "b-icon-tile--red",
            "b-icon-tile--sm",
            "b-icon-tile--solid",
            "b-icon-tile--teal",
            "b-list",
            "b-list--inset-divider",
            "b-list--plain",
            "b-list-item",
            "b-list-item--interactive",
            "b-list-item__chevron",
            "b-list-item__content",
            "b-list-item__leading",
            "b-list-item__title",
            "b-list-item__trailing",
            "b-spacer",
            "b-stack",
            "b-subheadline",
            "b-text-secondary",
            "b-title3",
            "b-wallpaper-scope"
          ],
          "markup": "<article class=\"b-card\" style=\"max-width: 26rem\">\n  <header class=\"b-card__header\">\n    <div>\n      <div class=\"b-card__title\">Safari itinerary</div>\n      <div class=\"b-card__subtitle\">Serengeti &amp; Ngorongoro \u00b7 5 days</div>\n    </div>\n    <button class=\"b-btn b-btn--ghost b-btn--sm\">Edit</button>\n  </header>\n  <div class=\"b-card__body\">\n    Depart Arusha at dawn, overnight in Seronera, then descend into the\n    crater on day four. Amina Hassan is confirmed as your guide.\n  </div>\n  <footer class=\"b-card__footer\">\n    <button class=\"b-btn b-btn--primary b-btn--sm\">Book trip</button>\n    <button class=\"b-btn b-btn--ghost b-btn--sm\">Share</button>\n  </footer>\n</article>",
          "react": {
            "import": "import { Button, Card, CardBody, CardFooter, CardHeader, CardSubtitle, CardTitle } from \"barua-ui\";",
            "components": [
              "Button",
              "Card",
              "CardBody",
              "CardFooter",
              "CardHeader",
              "CardSubtitle",
              "CardTitle"
            ],
            "root": "Card",
            "jsx": "<Card style={{ maxWidth: \"26rem\" }}>\n  <CardHeader>\n    <div>\n      <CardTitle>Safari itinerary</CardTitle>\n      <CardSubtitle>Serengeti & Ngorongoro \u00b7 5 days</CardSubtitle>\n    </div>\n    <Button variant=\"ghost\" size=\"sm\">Edit</Button>\n  </CardHeader>\n  <CardBody>Depart Arusha at dawn, overnight in Seronera, then descend into the crater on day four. Amina Hassan is confirmed as your guide.</CardBody>\n  <CardFooter>\n    <Button variant=\"primary\" size=\"sm\">Book trip</Button>\n    <Button variant=\"ghost\" size=\"sm\">Share</Button>\n  </CardFooter>\n</Card>"
          },
          "variants": [
            {
              "id": "card-variants",
              "title": "Variants"
            },
            {
              "id": "card-media",
              "title": "Media card"
            },
            {
              "id": "card-media-overlay",
              "title": "Story card (App Store style)"
            },
            {
              "id": "card-icon",
              "title": "Icon card"
            },
            {
              "id": "card-grouped-list",
              "title": "Grouped list card (iOS Settings)"
            },
            {
              "id": "card-fill",
              "title": "Cards that end level"
            },
            {
              "id": "icon-tile-colors",
              "title": "Icon tile colors"
            },
            {
              "id": "card-app",
              "title": "App card"
            }
          ],
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "list",
          "title": "List & List Item",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#list",
          "summary": "iOS-style grouped list. Each .b-list-item slots a leading icon, a content column with title and subtitle, trailing detail text and an optional chevron. Add .b-list-item--interactive for hover feedback and .is-selected for the accent wash.",
          "classes": [
            "b-avatar",
            "b-avatar--sm",
            "b-badge",
            "b-badge--accent",
            "b-badge--count",
            "b-footnote",
            "b-list",
            "b-list--inset-divider",
            "b-list--plain",
            "b-list-item",
            "b-list-item--interactive",
            "b-list-item--top",
            "b-list-item__chevron",
            "b-list-item__content",
            "b-list-item__leading",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-list-item__trailing",
            "b-tabular-nums",
            "b-text-secondary",
            "b-text-tertiary"
          ],
          "markup": "<ul class=\"b-list\" style=\"max-width: 26rem\">\n  <li class=\"b-list-item b-list-item--interactive\">\n    <span class=\"b-list-item__leading\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m4.5 7 5.5 4 5.5-4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n    </span>\n    <div class=\"b-list-item__content\">\n      <div class=\"b-list-item__title\">Amina Hassan</div>\n      <div class=\"b-list-item__subtitle\">Customs forms for the Dar es Salaam container</div>\n    </div>\n    <span class=\"b-list-item__trailing\">09:41</span>\n    <span class=\"b-list-item__chevron\" aria-hidden=\"true\">\u203a</span>\n  </li>\n  <li class=\"b-list-item b-list-item--interactive is-selected\">\n    <span class=\"b-list-item__leading\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m10 2.5 6.5 3.5v8L10 17.5 3.5 14V6L10 2.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M3.5 6 10 9.5 16.5 6M10 9.5v8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n    </span>\n    <div class=\"b-list-item__content\">\n      <div class=\"b-list-item__title\">Parcel BR-2609</div>\n      <div class=\"b-list-item__subtitle\">Out for delivery \u2014 Westlands, Nairobi</div>\n    </div>\n    <span class=\"b-list-item__trailing",
          "react": {
            "import": "import { List, ListItem } from \"barua-ui\";",
            "components": [
              "List",
              "ListItem"
            ],
            "root": "List",
            "jsx": "<List style={{ maxWidth: \"26rem\" }}>\n  <ListItem interactive>\n    <span className=\"b-list-item__leading\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        <path d=\"m4.5 7 5.5 4 5.5-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n    </span>\n    <div className=\"b-list-item__content\">\n      <div className=\"b-list-item__title\">Amina Hassan</div>\n      <div className=\"b-list-item__subtitle\">Customs forms for the Dar es Salaam container</div>\n    </div>\n    <span className=\"b-list-item__trailing\">09:41</span>\n    <span className=\"b-list-item__chevron\" aria-hidden=\"true\">\u203a</span>\n  </ListItem>\n  <ListItem interactive selected>\n    <span className=\"b-list-item__leading\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"m10 2.5 6.5 3.5v8L10 17.5 3.5 14V6L10 2.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        <path d=\"M3.5 6 10 9.5 16.5 6M10 9.5v8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      </svg>\n    </span>\n    <div className=\"b-list-item__content\">\n      <div className=\"b-list-item__title\">Parcel BR-2609</div>\n      <div className=\"b-list-item__subtitle\">Out for delivery \u2014 Westlands, Nairobi</div>\n    </div>\n  </ListItem>\n</List>"
          },
          "variants": [
            {
              "id": "list-inset",
              "title": "Inset dividers"
            },
            {
              "id": "list-item-rows",
              "title": "Rows that do something"
            }
          ],
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "list-captions",
          "title": "List Header & Footer",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#list-captions",
          "summary": "iOS grouped-list captions: an uppercase .b-list__header above the group and a quiet explanatory .b-list__footer beneath \u2014 the Settings-app pattern for telling people what a group does.",
          "classes": [
            "b-list",
            "b-list--inset-divider",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__title",
            "b-list-item__trailing",
            "b-list__footer",
            "b-list__header",
            "b-switch",
            "b-switch--sm"
          ],
          "markup": "<div class=\"b-list__header\">Notifications</div>\n<ul class=\"b-list b-list--inset-divider\">\n  <li class=\"b-list-item\">\n    <span class=\"b-list-item__content\"><span class=\"b-list-item__title\">New mail</span></span>\n    <span class=\"b-list-item__trailing\"><label class=\"b-switch b-switch--sm\"><input type=\"checkbox\" checked></label></span>\n  </li>\n  <li class=\"b-list-item\">\n    <span class=\"b-list-item__content\"><span class=\"b-list-item__title\">Mentions</span></span>\n    <span class=\"b-list-item__trailing\"><label class=\"b-switch b-switch--sm\"><input type=\"checkbox\"></label></span>\n  </li>\n</ul>\n<div class=\"b-list__footer\">Delivered quietly between 22:00 and 07:00.</div>",
          "react": {
            "import": "import { List, ListFooter, ListHeader, ListItem, Switch } from \"barua-ui\";",
            "components": [
              "List",
              "ListFooter",
              "ListHeader",
              "ListItem",
              "Switch"
            ],
            "root": "ListHeader",
            "jsx": "<ListHeader>Notifications</ListHeader>\n<List insetDividers>\n  <ListItem>\n    <span className=\"b-list-item__content\">\n      <span className=\"b-list-item__title\">New mail</span>\n    </span>\n    <span className=\"b-list-item__trailing\">\n      <Switch small>\n        <input type=\"checkbox\" checked />\n      </Switch>\n    </span>\n  </ListItem>\n  <ListItem>\n    <span className=\"b-list-item__content\">\n      <span className=\"b-list-item__title\">Mentions</span>\n    </span>\n    <span className=\"b-list-item__trailing\">\n      <Switch small>\n        <input type=\"checkbox\" />\n      </Switch>\n    </span>\n  </ListItem>\n</List>\n<ListFooter>Delivered quietly between 22:00 and 07:00.</ListFooter>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane"
          ],
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "description-list",
          "title": "Description List",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#description-list",
          "summary": "Label\u2013value pairs on a two-column grid. Use for read-only detail panes; switch to .b-dl--stacked in narrow columns.",
          "classes": [
            "b-dl",
            "b-dl--stacked"
          ],
          "markup": "<dl class=\"b-dl\">\n  <dt>Full name</dt><dd>Amina Hassan</dd>\n  <dt>Route</dt><dd>Dar es Salaam \u2192 Zanzibar</dd>\n  <dt>Vessel</dt><dd>MV Kilimanjaro IV, deck 2</dd>\n  <dt>Booking reference</dt><dd><code>ZNZ-88214</code></dd>\n</dl>",
          "react": {
            "import": "import { DescriptionList } from \"barua-ui\";",
            "components": [
              "DescriptionList"
            ],
            "root": "DescriptionList",
            "jsx": "<DescriptionList>\n  <dt>Full name</dt>\n  <dd>Amina Hassan</dd>\n  <dt>Route</dt>\n  <dd>Dar es Salaam \u2192 Zanzibar</dd>\n  <dt>Vessel</dt>\n  <dd>MV Kilimanjaro IV, deck 2</dd>\n  <dt>Booking reference</dt>\n  <dd>\n    <code>ZNZ-88214</code>\n  </dd>\n</DescriptionList>"
          },
          "variants": [
            {
              "id": "description-list-stacked",
              "title": "Stacked"
            }
          ]
        },
        {
          "id": "groupbox",
          "title": "GroupBox",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#groupbox",
          "summary": "SwiftUI's GroupBox for the web: a quiet, labeled enclosure for related content \u2014 softer than a card, and it nests (a nested box flips back to surface so depth stays readable).",
          "classes": [
            "b-groupbox",
            "b-groupbox__label",
            "b-labeled",
            "b-labeled__label",
            "b-labeled__value",
            "b-progress",
            "b-progress__fill"
          ],
          "markup": "<div class=\"b-groupbox\" style=\"max-width: 24rem\">\n  <div class=\"b-groupbox__label\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 3.5c-2.5 3-4.5 5.2-4.5 7.4a4.5 4.5 0 0 0 9 0c0-2.2-2-4.4-4.5-7.4Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n    Hydration\n  </div>\n  <div class=\"b-labeled\">\n    <span class=\"b-labeled__label\">Today</span>\n    <span class=\"b-labeled__value\">1.2 L of 2 L</span>\n  </div>\n  <div class=\"b-progress\"><div class=\"b-progress__fill\" style=\"width: 60%\"></div></div>\n</div>",
          "react": {
            "import": "import { GroupBox, Labeled, Progress } from \"barua-ui\";",
            "components": [
              "GroupBox",
              "Labeled",
              "Progress"
            ],
            "root": "GroupBox",
            "jsx": "<GroupBox style={{ maxWidth: \"24rem\" }}>\n  <div className=\"b-groupbox__label\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"M10 3.5c-2.5 3-4.5 5.2-4.5 7.4a4.5 4.5 0 0 0 9 0c0-2.2-2-4.4-4.5-7.4Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </svg>\n    Hydration\n  </div>\n  <Labeled>\n    <span className=\"b-labeled__label\">Today</span>\n    <span className=\"b-labeled__value\">1.2 L of 2 L</span>\n  </Labeled>\n  <Progress>\n    <div className=\"b-progress__fill\" style={{ width: \"60%\" }}></div>\n  </Progress>\n</GroupBox>"
          },
          "knobs": [
            "--b-lg-inset",
            "--b-progress"
          ]
        },
        {
          "id": "labeled-content",
          "title": "Labeled Content",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#labeled-content",
          "summary": "SwiftUI's LabeledContent : the standard label-left, value-right row for settings and detail screens. Rows separate with hairlines automatically; the label takes an optional small second line.",
          "classes": [
            "b-labeled",
            "b-labeled__label",
            "b-labeled__value",
            "b-switch"
          ],
          "markup": "<div class=\"b-labeled\">\n  <span class=\"b-labeled__label\">Plan</span>\n  <span class=\"b-labeled__value\">Barua Business</span>\n</div>\n<div class=\"b-labeled\">\n  <span class=\"b-labeled__label\">Storage<small>Mail and Drive combined</small></span>\n  <span class=\"b-labeled__value\">8.2 GB of 15 GB</span>\n</div>\n<div class=\"b-labeled\">\n  <span class=\"b-labeled__label\">Two-factor</span>\n  <span class=\"b-labeled__value\"><label class=\"b-switch\"><input type=\"checkbox\" checked></label></span>\n</div>",
          "react": {
            "import": "import { Labeled, Switch } from \"barua-ui\";",
            "components": [
              "Labeled",
              "Switch"
            ],
            "root": "Labeled",
            "jsx": "<Labeled>\n  <span className=\"b-labeled__label\">Plan</span>\n  <span className=\"b-labeled__value\">Barua Business</span>\n</Labeled>\n<Labeled>\n  <span className=\"b-labeled__label\">\n    Storage\n    <small>Mail and Drive combined</small>\n  </span>\n  <span className=\"b-labeled__value\">8.2 GB of 15 GB</span>\n</Labeled>\n<Labeled>\n  <span className=\"b-labeled__label\">Two-factor</span>\n  <span className=\"b-labeled__value\">\n    <Switch>\n      <input type=\"checkbox\" checked />\n    </Switch>\n  </span>\n</Labeled>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset"
          ]
        },
        {
          "id": "table",
          "title": "Table",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#table",
          "summary": "Wrap every .b-table in a .b-table-wrap so it scrolls horizontally instead of breaking the page. Sortable columns put a .b-table__sort button inside the header cell; .is-asc / .is-desc flip the arrow. Numeric columns take .b-table__num for right-aligned tabular figures.",
          "classes": [
            "b-table",
            "b-table--compact",
            "b-table--hover",
            "b-table--striped",
            "b-table-wrap",
            "b-table__num",
            "b-table__sort"
          ],
          "markup": "<div class=\"b-table-wrap\">\n  <table class=\"b-table b-table--hover\">\n    <thead>\n      <tr>\n        <th scope=\"col\" aria-sort=\"ascending\"><button class=\"b-table__sort is-asc\">Route</button></th>\n        <th scope=\"col\"><button class=\"b-table__sort\">Next departure</button></th>\n        <th scope=\"col\" class=\"b-table__num\">Seats</th>\n        <th scope=\"col\" class=\"b-table__num\">Fare (TZS)</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td>Dar es Salaam \u2192 Zanzibar</td>\n        <td>Today 15:45</td>\n        <td class=\"b-table__num\">64</td>\n        <td class=\"b-table__num\">35,000</td>\n      </tr>\n      <tr class=\"is-selected\">\n        <td>Nairobi \u2192 Mombasa</td>\n        <td>Today 20:35</td>\n        <td class=\"b-table__num\">118</td>\n        <td class=\"b-table__num\">58,500</td>\n      </tr>\n      <tr>\n        <td>Arusha \u2192 Moshi</td>\n        <td>Tomorrow 07:10</td>\n        <td class=\"b-table__num\">42</td>\n        <td class=\"b-table__num\">12,000</td>\n      </tr>\n      <tr>\n        <td>Dodoma \u2192 Dar es Salaam</td>\n        <td>Tomorrow 09:00</td>\n        <td class=\"b-table__num\">51</td>\n        <td class=\"b-table__num\">41,000</td>\n      </tr>\n    </tbody>\n  </table>\n</div>",
          "react": {
            "import": "import { Table, TableNum, TableWrap } from \"barua-ui\";",
            "components": [
              "Table",
              "TableNum",
              "TableWrap"
            ],
            "root": "TableWrap",
            "jsx": "<TableWrap>\n  <Table hover>\n    <thead>\n      <tr>\n        <th scope=\"col\" aria-sort=\"ascending\">\n          <button className=\"b-table__sort is-asc\">Route</button>\n        </th>\n        <th scope=\"col\">\n          <button className=\"b-table__sort\">Next departure</button>\n        </th>\n        <TableNum scope=\"col\">Seats</TableNum>\n        <TableNum scope=\"col\">Fare (TZS)</TableNum>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td>Dar es Salaam \u2192 Zanzibar</td>\n        <td>Today 15:45</td>\n        <TableNum>64</TableNum>\n        <TableNum>35,000</TableNum>\n      </tr>\n      <tr className=\"is-selected\">\n        <td>Nairobi \u2192 Mombasa</td>\n        <td>Today 20:35</td>\n        <TableNum>118</TableNum>\n        <TableNum>58,500</TableNum>\n      </tr>\n      <tr>\n        <td>Arusha \u2192 Moshi</td>\n        <td>Tomorrow 07:10</td>\n        <TableNum>42</TableNum>\n        <TableNum>12,000</TableNum>\n      </tr>\n      <tr>\n        <td>Dodoma \u2192 Dar es Salaam</td>\n        <td>Tomorrow 09:00</td>\n        <TableNum>51</TableNum>\n        <TableNum>41,000</TableNum>\n      </tr>\n    </tbody>\n  </Table>\n</TableWrap>"
          },
          "variants": [
            {
              "id": "table-density",
              "title": "Striped & compact"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "data-grid",
          "title": "Data Grid",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#data-grid",
          "summary": "Add .b-datagrid to the table wrap for a scrolling body with a sticky header \u2014 height comes from the --b-datagrid-h custom property. Row actions in a .b-row-actions span stay hidden until the row is hovered.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-datagrid",
            "b-icon-btn",
            "b-row-actions",
            "b-table",
            "b-table--hover",
            "b-table-wrap",
            "b-table__num"
          ],
          "markup": "<div class=\"b-table-wrap b-datagrid\" style=\"--b-datagrid-h: 17rem\">\n  <table class=\"b-table b-table--hover\">\n    <thead>\n      <tr>\n        <th scope=\"col\">Invoice</th>\n        <th scope=\"col\">Customer</th>\n        <th scope=\"col\">City</th>\n        <th scope=\"col\" class=\"b-table__num\">Amount (TZS)</th>\n        <th scope=\"col\">Actions</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td>BR-2610</td><td>Amina Hassan</td><td>Dar es Salaam</td><td class=\"b-table__num\">240,000</td>\n        <td><span class=\"b-row-actions\">\n          <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Edit BR-2610\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></button>\n          <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Delete BR-2610\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg></button>\n        </span></td>\n      </tr>\n      <tr>\n        <td>BR-2609</td><td>Baraka Mwangi</td><td>Nairobi</td><td class=\"b-table__num\">96,500</td>\n        <td><span class=\"b-row-actions\">\n          <button class=\"b-btn b-ic",
          "react": {
            "import": "import { Button, Table, TableNum, TableWrap } from \"barua-ui\";",
            "components": [
              "Button",
              "Table",
              "TableNum",
              "TableWrap"
            ],
            "root": "TableWrap",
            "jsx": "<TableWrap className=\"b-datagrid\" style={{ \"--b-datagrid-h\": \"17rem\" }}>\n  <Table hover>\n    <thead>\n      <tr>\n        <th scope=\"col\">Invoice</th>\n        <th scope=\"col\">Customer</th>\n        <th scope=\"col\">City</th>\n        <TableNum scope=\"col\">Amount (TZS)</TableNum>\n        <th scope=\"col\">Actions</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td>BR-2610</td>\n        <td>Amina Hassan</td>\n        <td>Dar es Salaam</td>\n        <TableNum>240,000</TableNum>\n        <td>\n          <span className=\"b-row-actions\">\n            <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Edit BR-2610\">\n              <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n              </svg>\n            </Button>\n            <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Delete BR-2610\">\n              <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                <path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n              </svg>\n            </Button>\n          </span>\n        </td>\n      </tr>\n      <tr>\n        <td>BR-2609</td>\n        <td>Baraka Mwangi</td>\n        <td>Nairobi</td>\n        <TableNum>96,500</TableNum>\n        <td>\n          <span className=\"b-row-actions\"></span>\n        </td>\n      </tr>\n    </tbody>\n  </Table>\n</TableWrap>"
          },
          "knobs": [
            "--b-datagrid-h",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "tree",
          "title": "Tree",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#tree",
          "summary": "Nested <details> elements with the .b-tree-item class \u2014 branches expand natively, no JavaScript. Leaves are plain .b-tree-item__row divs indented to align with branch labels.",
          "classes": [
            "b-tree",
            "b-tree-item",
            "b-tree-item__row"
          ],
          "markup": "<ul class=\"b-tree\" style=\"max-width: 22rem\">\n  <li>\n    <details class=\"b-tree-item\" open>\n      <summary>\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2.5h6A1.5 1.5 0 0 1 17 8v6.5a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n        Reports\n      </summary>\n      <ul class=\"b-tree\">\n        <li>\n          <details class=\"b-tree-item\" open>\n            <summary>\n              <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2.5h6A1.5 1.5 0 0 1 17 8v6.5a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n              Q3 2026\n            </summary>\n            <ul class=\"b-tree\">\n              <li>\n                <div class=\"b-tree-item__row is-selected\">\n                  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M5 2.5h7l3 3v12H5v-15Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M12 2.5v3h3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n                  nairobi-sales.numbers\n                </div>\n              </li>\n              <li>\n                <div class=\"b-tree-item__row\">\n                  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-",
          "react": {
            "import": "import { Tree, TreeItem } from \"barua-ui\";",
            "components": [
              "Tree",
              "TreeItem"
            ],
            "root": "Tree",
            "jsx": "<Tree style={{ maxWidth: \"22rem\" }}>\n  <li>\n    <TreeItem open>\n      <summary>\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2.5h6A1.5 1.5 0 0 1 17 8v6.5a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        </svg>\n        Reports\n      </summary>\n      <Tree>\n        <li>\n          <TreeItem open>\n            <summary>\n              <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2.5h6A1.5 1.5 0 0 1 17 8v6.5a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n              </svg>\n              Q3 2026\n            </summary>\n            <Tree>\n              <li>\n                <div className=\"b-tree-item__row is-selected\">\n                  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                    <path d=\"M5 2.5h7l3 3v12H5v-15Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n                    <path d=\"M12 2.5v3h3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n                  </svg>\n                  nairobi-sales.numbers\n                </div>\n              </li>\n              <li>\n                <div className=\"b-tree-item__row\"></div>\n              </li>\n            </Tree>\n          </TreeItem>\n        </li>\n      </Tree>\n    </TreeItem>\n  </li>\n</Tree>"
          },
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "timeline",
          "title": "Timeline",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#timeline",
          "summary": "A vertical sequence of events. Mark finished steps .is-complete (filled accent dot) and the current one .is-active (accent ring); untouched steps stay gray.",
          "classes": [
            "b-timeline",
            "b-timeline__body",
            "b-timeline__time",
            "b-timeline__title"
          ],
          "markup": "<ol class=\"b-timeline\" style=\"max-width: 26rem\">\n  <li class=\"is-complete\">\n    <div class=\"b-timeline__time\">Mon 24 Aug \u00b7 08:12</div>\n    <div class=\"b-timeline__title\">Order placed</div>\n    <div class=\"b-timeline__body\">Amina Hassan paid TZS 240,000 via mobile money.</div>\n  </li>\n  <li class=\"is-complete\">\n    <div class=\"b-timeline__time\">Mon 24 Aug \u00b7 16:40</div>\n    <div class=\"b-timeline__title\">Packed in Dar es Salaam</div>\n    <div class=\"b-timeline__body\">Two parcels sealed at the Ubungo depot.</div>\n  </li>\n  <li class=\"is-active\">\n    <div class=\"b-timeline__time\">Wed 26 Aug \u00b7 06:55</div>\n    <div class=\"b-timeline__title\">In transit to Nairobi</div>\n    <div class=\"b-timeline__body\">Cleared Namanga border, ETA tonight.</div>\n  </li>\n  <li>\n    <div class=\"b-timeline__time\">Pending</div>\n    <div class=\"b-timeline__title\">Delivered</div>\n    <div class=\"b-timeline__body\">Signature required on arrival.</div>\n  </li>\n</ol>",
          "react": {
            "import": "import { Timeline } from \"barua-ui\";",
            "components": [
              "Timeline"
            ],
            "root": "Timeline",
            "jsx": "<Timeline style={{ maxWidth: \"26rem\" }}>\n  <li className=\"is-complete\">\n    <div className=\"b-timeline__time\">Mon 24 Aug \u00b7 08:12</div>\n    <div className=\"b-timeline__title\">Order placed</div>\n    <div className=\"b-timeline__body\">Amina Hassan paid TZS 240,000 via mobile money.</div>\n  </li>\n  <li className=\"is-complete\">\n    <div className=\"b-timeline__time\">Mon 24 Aug \u00b7 16:40</div>\n    <div className=\"b-timeline__title\">Packed in Dar es Salaam</div>\n    <div className=\"b-timeline__body\">Two parcels sealed at the Ubungo depot.</div>\n  </li>\n  <li className=\"is-active\">\n    <div className=\"b-timeline__time\">Wed 26 Aug \u00b7 06:55</div>\n    <div className=\"b-timeline__title\">In transit to Nairobi</div>\n    <div className=\"b-timeline__body\">Cleared Namanga border, ETA tonight.</div>\n  </li>\n  <li>\n    <div className=\"b-timeline__time\">Pending</div>\n    <div className=\"b-timeline__title\">Delivered</div>\n    <div className=\"b-timeline__body\">Signature required on arrival.</div>\n  </li>\n</Timeline>"
          },
          "states": [
            "is-active",
            "is-complete"
          ]
        },
        {
          "id": "feed",
          "title": "Feed",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#feed",
          "summary": "Avatar-plus-bubble rows for comments and activity streams. The bubble is a bordered surface; .b-feed__meta carries the byline.",
          "classes": [
            "b-avatar",
            "b-feed",
            "b-feed__bubble",
            "b-feed__item",
            "b-feed__meta"
          ],
          "markup": "<div class=\"b-feed\" style=\"max-width: 30rem\">\n  <div class=\"b-feed__item\">\n    <span class=\"b-avatar\">AH</span>\n    <div class=\"b-feed__bubble\">\n      Customs cleared the container this morning \u2014 paperwork is in the\n      shared folder.\n      <div class=\"b-feed__meta\">Amina Hassan \u00b7 2 h ago \u00b7 Dar es Salaam</div>\n    </div>\n  </div>\n  <div class=\"b-feed__item\">\n    <span class=\"b-avatar\">BM</span>\n    <div class=\"b-feed__bubble\">\n      Asante! I&rsquo;ll schedule the Nairobi leg for tomorrow at dawn.\n      <div class=\"b-feed__meta\">Baraka Mwangi \u00b7 1 h ago \u00b7 Nairobi</div>\n    </div>\n  </div>\n  <div class=\"b-feed__item\">\n    <span class=\"b-avatar\">NJ</span>\n    <div class=\"b-feed__bubble\">\n      Flag anything fragile \u2014 the Zanzibar ferry crossing is rough this\n      week.\n      <div class=\"b-feed__meta\">Neema Joseph \u00b7 20 min ago \u00b7 Zanzibar</div>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Avatar, Feed } from \"barua-ui\";",
            "components": [
              "Avatar",
              "Feed"
            ],
            "root": "Feed",
            "jsx": "<Feed style={{ maxWidth: \"30rem\" }}>\n  <div className=\"b-feed__item\">\n    <Avatar>AH</Avatar>\n    <div className=\"b-feed__bubble\">\n      Customs cleared the container this morning \u2014 paperwork is in the shared folder.\n      <div className=\"b-feed__meta\">Amina Hassan \u00b7 2 h ago \u00b7 Dar es Salaam</div>\n    </div>\n  </div>\n  <div className=\"b-feed__item\">\n    <Avatar>BM</Avatar>\n    <div className=\"b-feed__bubble\">\n      Asante! I\u2019ll schedule the Nairobi leg for tomorrow at dawn.\n      <div className=\"b-feed__meta\">Baraka Mwangi \u00b7 1 h ago \u00b7 Nairobi</div>\n    </div>\n  </div>\n  <div className=\"b-feed__item\">\n    <Avatar>NJ</Avatar>\n    <div className=\"b-feed__bubble\">\n      Flag anything fragile \u2014 the Zanzibar ferry crossing is rough this week.\n      <div className=\"b-feed__meta\">Neema Joseph \u00b7 20 min ago \u00b7 Zanzibar</div>\n    </div>\n  </div>\n</Feed>"
          },
          "knobs": [
            "--b-avatar-size"
          ]
        },
        {
          "id": "accordion",
          "title": "Accordion & Disclosure",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#accordion",
          "summary": "A .b-accordion stacks details.b-disclosure panels with hairlines between them \u2014 native open/close semantics and keyboard support for free. Use a lone .b-disclosure--plain for an inline \u201cshow more\u201d.",
          "classes": [
            "b-accordion",
            "b-disclosure",
            "b-disclosure--plain",
            "b-disclosure__body"
          ],
          "markup": "<div class=\"b-accordion\" style=\"max-width: 32rem\">\n  <details class=\"b-disclosure\" open>\n    <summary>How long does delivery to Zanzibar take?</summary>\n    <div class=\"b-disclosure__body\">\n      Parcels leave Dar es Salaam on the 15:45 ferry daily. Most\n      deliveries land in Stone Town the same evening; the east-coast\n      villages add one day.\n    </div>\n  </details>\n  <details class=\"b-disclosure\">\n    <summary>Which cities do you cover?</summary>\n    <div class=\"b-disclosure__body\">\n      Dar es Salaam, Nairobi, Mombasa, Arusha, Dodoma, Kampala and\n      Kigali \u2014 with partner depots in Moshi and Tanga.\n    </div>\n  </details>\n  <details class=\"b-disclosure\">\n    <summary>Can I change the delivery address?</summary>\n    <div class=\"b-disclosure__body\">\n      Yes, until the parcel is marked out for delivery. Edits after\n      dispatch reroute on the next leg.\n    </div>\n  </details>\n</div>",
          "react": {
            "import": "import { Accordion, Disclosure } from \"barua-ui\";",
            "components": [
              "Accordion",
              "Disclosure"
            ],
            "root": "Accordion",
            "jsx": "<Accordion style={{ maxWidth: \"32rem\" }}>\n  <Disclosure open>\n    <summary>How long does delivery to Zanzibar take?</summary>\n    <div className=\"b-disclosure__body\">Parcels leave Dar es Salaam on the 15:45 ferry daily. Most deliveries land in Stone Town the same evening; the east-coast villages add one day.</div>\n  </Disclosure>\n  <Disclosure>\n    <summary>Which cities do you cover?</summary>\n    <div className=\"b-disclosure__body\">Dar es Salaam, Nairobi, Mombasa, Arusha, Dodoma, Kampala and Kigali \u2014 with partner depots in Moshi and Tanga.</div>\n  </Disclosure>\n  <Disclosure>\n    <summary>Can I change the delivery address?</summary>\n    <div className=\"b-disclosure__body\">Yes, until the parcel is marked out for delivery. Edits after dispatch reroute on the next leg.</div>\n  </Disclosure>\n</Accordion>"
          },
          "variants": [
            {
              "id": "disclosure-plain",
              "title": "Plain disclosure"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane"
          ]
        },
        {
          "id": "badge",
          "title": "Badge",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#badge",
          "summary": "Small status labels. --dot prefixes a colored point, --count is the red numeric pill, and --solid fills with the accent for maximum emphasis.",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-badge--count",
            "b-badge--danger",
            "b-badge--dot",
            "b-badge--solid",
            "b-badge--success",
            "b-badge--warning"
          ],
          "markup": "<span class=\"b-badge\">Default</span>\n<span class=\"b-badge b-badge--accent\">Accent</span>\n<span class=\"b-badge b-badge--success\">Delivered</span>\n<span class=\"b-badge b-badge--warning\">Held at customs</span>\n<span class=\"b-badge b-badge--danger\">Failed</span>\n<span class=\"b-badge b-badge--solid\">Solid</span>\n<span class=\"b-badge b-badge--success b-badge--dot\">Online</span>\n<span class=\"b-badge b-badge--danger b-badge--dot\">Offline</span>\n<span class=\"b-badge b-badge--count\">12</span>",
          "react": {
            "import": "import { Badge } from \"barua-ui\";",
            "components": [
              "Badge"
            ],
            "root": "Badge",
            "jsx": "<Badge>Default</Badge>\n<Badge variant=\"accent\">Accent</Badge>\n<Badge variant=\"success\">Delivered</Badge>\n<Badge variant=\"warning\">Held at customs</Badge>\n<Badge variant=\"danger\">Failed</Badge>\n<Badge className=\"b-badge--solid\">Solid</Badge>\n<Badge variant=\"success\" dot>Online</Badge>\n<Badge variant=\"danger\" dot>Offline</Badge>\n<Badge className=\"b-badge--count\">12</Badge>"
          },
          "knobs": [
            "--b-lg-pane"
          ]
        },
        {
          "id": "tag-chip",
          "title": "Tag & Chip",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#tag-chip",
          "summary": "Tags are quiet, outlined metadata \u2014 never click targets. Chips are interactive: real buttons that toggle with .is-selected (or aria-pressed ) and can carry a .b-chip__remove affordance.",
          "classes": [
            "b-chip",
            "b-chip__remove",
            "b-tag"
          ],
          "markup": "<span class=\"b-tag\">fragile</span>\n<span class=\"b-tag\">express</span>\n<span class=\"b-tag\">cold-chain</span>\n<span class=\"b-tag\">v0.1</span>",
          "react": {
            "import": "import { Tag } from \"barua-ui\";",
            "components": [
              "Tag"
            ],
            "root": "Tag",
            "jsx": "<Tag>fragile</Tag>\n<Tag>express</Tag>\n<Tag>cold-chain</Tag>\n<Tag>v0.1</Tag>"
          },
          "knobs": [
            "--b-lg-pane"
          ],
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "avatar",
          "title": "Avatar & Avatar Group",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#avatar",
          "summary": "Initials on the accent-soft fill are the built-in fallback \u2014 no broken-image state, ever. Sizes run --xs to --xl ; --square suits workspaces and files, --online adds the presence dot.",
          "classes": [
            "b-avatar",
            "b-avatar--lg",
            "b-avatar--more",
            "b-avatar--online",
            "b-avatar--sm",
            "b-avatar--square",
            "b-avatar--xl",
            "b-avatar--xs",
            "b-avatar-group"
          ],
          "markup": "<span class=\"b-avatar b-avatar--xs\">AH</span>\n<span class=\"b-avatar b-avatar--sm\">BM</span>\n<span class=\"b-avatar\">NJ</span>\n<span class=\"b-avatar b-avatar--lg\">JA</span>\n<span class=\"b-avatar b-avatar--xl\">KO</span>\n<span class=\"b-avatar b-avatar--square\">DK</span>\n<span class=\"b-avatar b-avatar--online\">FS</span>",
          "react": {
            "import": "import { Avatar } from \"barua-ui\";",
            "components": [
              "Avatar"
            ],
            "root": "Avatar",
            "jsx": "<Avatar className=\"b-avatar--xs\">AH</Avatar>\n<Avatar className=\"b-avatar--sm\">BM</Avatar>\n<Avatar>NJ</Avatar>\n<Avatar className=\"b-avatar--lg\">JA</Avatar>\n<Avatar className=\"b-avatar--xl\">KO</Avatar>\n<Avatar className=\"b-avatar--square\">DK</Avatar>\n<Avatar className=\"b-avatar--online\">FS</Avatar>"
          },
          "variants": [
            {
              "id": "avatar-group",
              "title": "Group"
            }
          ],
          "knobs": [
            "--b-avatar-size"
          ]
        },
        {
          "id": "icon",
          "title": "Icon",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#icon",
          "summary": ".b-icon is a sized slot for any inline SVG \u2014 it inherits currentColor , so icons re-tint with their context. .b-icon-tile wraps one in the rounded accent square used across settings lists and feature grids.",
          "classes": [
            "b-icon",
            "b-icon--lg",
            "b-icon--sm",
            "b-icon--xl",
            "b-icon-tile"
          ],
          "markup": "<span class=\"b-icon b-icon--sm\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></span>\n<span class=\"b-icon\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></span>\n<span class=\"b-icon b-icon--lg\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></span>\n<span class=\"b-icon b-icon--xl\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></span>\n<span class=\"b-icon-tile\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m4.5 7 5.5 4 5.5-4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>\n<span class=\"b-icon-tile\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3a4.",
          "react": {
            "import": "import { Icon, IconTile } from \"barua-ui\";",
            "components": [
              "Icon",
              "IconTile"
            ],
            "root": "Icon",
            "jsx": "<Icon className=\"b-icon--sm\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Icon>\n<Icon>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Icon>\n<Icon className=\"b-icon--lg\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Icon>\n<Icon className=\"b-icon--xl\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n  </svg>\n</Icon>\n<IconTile>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    <path d=\"m4.5 7 5.5 4 5.5-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n  </svg>\n</IconTile>\n<IconTile>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"></svg>\n</IconTile>"
          }
        },
        {
          "id": "image",
          "title": "Image",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#image",
          "summary": ".b-img rounds and crops; --framed adds a soft elevation shadow. .b-figure pairs an image with a quiet caption. Gradients stand in for photography below.",
          "classes": [
            "b-figure",
            "b-img",
            "b-img--framed"
          ],
          "markup": "<div class=\"b-img\" style=\"width:14rem;aspect-ratio:4/3;background:linear-gradient(135deg,var(--b-color-accent),var(--b-color-indigo))\"></div>\n<figure class=\"b-figure\" style=\"max-width: 16rem\">\n  <div class=\"b-img b-img--framed\" style=\"aspect-ratio:16/10;background:linear-gradient(160deg,var(--b-color-teal),var(--b-color-accent))\"></div>\n  <figcaption>Forodhani Gardens at dusk, Zanzibar.</figcaption>\n</figure>",
          "react": {
            "import": "import { Figure } from \"barua-ui\";",
            "components": [
              "Figure"
            ],
            "root": "Figure",
            "jsx": "<div\n  className=\"b-img\"\n  style={{ width: \"14rem\", aspectRatio: \"4/3\", background: \"linear-gradient(135deg,var(--b-color-accent),var(--b-color-indigo))\" }}\n></div>\n<Figure style={{ maxWidth: \"16rem\" }}>\n  <div\n    className=\"b-img b-img--framed\"\n    style={{ aspectRatio: \"16/10\", background: \"linear-gradient(160deg,var(--b-color-teal),var(--b-color-accent))\" }}\n  ></div>\n  <figcaption>Forodhani Gardens at dusk, Zanzibar.</figcaption>\n</Figure>"
          },
          "knobs": [
            "--b-fade-from"
          ]
        },
        {
          "id": "code-block",
          "title": "Code Block",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#code-block",
          "summary": "Always dark, regardless of theme. The header slot names the file and hosts a .b-code__copy button \u2014 point data-b-copy at the id of the <code> element and Barua handles the clipboard.",
          "classes": [
            "b-code",
            "b-code__copy",
            "b-code__header"
          ],
          "markup": "<div class=\"b-code\" style=\"max-width: 34rem\">\n            <div class=\"b-code__header\">\n              <span>install.sh</span>\n              <button class=\"b-code__copy\" data-b-copy=\"#code-install\">Copy</button>\n            </div>\n            <pre><code id=\"code-install\">npm install barua-ui\n# or just link the stylesheet\n&lt;link rel=\"stylesheet\" href=\"css/barua.css\"&gt;</code></pre>\n          </div>",
          "react": {
            "import": "import { CodeBlock } from \"barua-ui\";",
            "components": [
              "CodeBlock"
            ],
            "root": "CodeBlock",
            "jsx": "<CodeBlock style={{ maxWidth: \"34rem\" }}>\n  <div className=\"b-code__header\">\n    <span>install.sh</span>\n    <button className=\"b-code__copy\" data-b-copy=\"#code-install\">Copy</button>\n  </div>\n  <pre>\n    <code id=\"code-install\">npm install barua-ui # or just link the stylesheet <link rel=\"stylesheet\" href=\"css/barua.css\"></code>\n  </pre>\n</CodeBlock>"
          }
        },
        {
          "id": "quote",
          "title": "Quote",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#quote",
          "summary": "Accent-washed pull quote with an inline-start rule. Keep the <cite> inside the blockquote for attribution.",
          "classes": [
            "b-quote"
          ],
          "markup": "<blockquote class=\"b-quote\" style=\"max-width: 32rem\">\n  <p>\n    Barua turned a two-day paperwork run into an afternoon. We clear a\n    full container out of Dar es Salaam before lunch now.\n  </p>\n  <cite>Khadija Omar \u2014 Operations lead, Mombasa</cite>\n</blockquote>",
          "react": {
            "import": "import { Quote } from \"barua-ui\";",
            "components": [
              "Quote"
            ],
            "root": "Quote",
            "jsx": "<Quote style={{ maxWidth: \"32rem\" }}>\n  <p>Barua turned a two-day paperwork run into an afternoon. We clear a full container out of Dar es Salaam before lunch now.</p>\n  <cite>Khadija Omar \u2014 Operations lead, Mombasa</cite>\n</Quote>"
          }
        },
        {
          "id": "statistic",
          "title": "Statistic",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#statistic",
          "summary": "Big tabular-numeral values with a label and an optional delta. .is-up renders green, .is-down red \u2014 pick metrics where the direction matches the sentiment.",
          "classes": [
            "b-grid",
            "b-grid--3",
            "b-stat",
            "b-stat__delta",
            "b-stat__label",
            "b-stat__value"
          ],
          "markup": "<div class=\"b-grid b-grid--3\">\n  <div class=\"b-stat\">\n    <div class=\"b-stat__label\">Deliveries this month</div>\n    <div class=\"b-stat__value\">4,807</div>\n    <span class=\"b-stat__delta is-up\">\u2191 12.4% vs July</span>\n  </div>\n  <div class=\"b-stat\">\n    <div class=\"b-stat__label\">On-time rate</div>\n    <div class=\"b-stat__value\">96.2%</div>\n    <span class=\"b-stat__delta is-up\">\u2191 1.1 pts</span>\n  </div>\n  <div class=\"b-stat\">\n    <div class=\"b-stat__label\">Revenue (TZS)</div>\n    <div class=\"b-stat__value\">86.4M</div>\n    <span class=\"b-stat__delta is-down\">\u2193 3.2% vs July</span>\n  </div>\n</div>",
          "react": {
            "import": "import { Grid, Stat } from \"barua-ui\";",
            "components": [
              "Grid",
              "Stat"
            ],
            "root": "Grid",
            "jsx": "<Grid cols={3}>\n  <Stat>\n    <div className=\"b-stat__label\">Deliveries this month</div>\n    <div className=\"b-stat__value\">4,807</div>\n    <span className=\"b-stat__delta is-up\">\u2191 12.4% vs July</span>\n  </Stat>\n  <Stat>\n    <div className=\"b-stat__label\">On-time rate</div>\n    <div className=\"b-stat__value\">96.2%</div>\n    <span className=\"b-stat__delta is-up\">\u2191 1.1 pts</span>\n  </Stat>\n  <Stat>\n    <div className=\"b-stat__label\">Revenue (TZS)</div>\n    <div className=\"b-stat__value\">86.4M</div>\n    <span className=\"b-stat__delta is-down\">\u2193 3.2% vs July</span>\n  </Stat>\n</Grid>"
          },
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap"
          ],
          "states": [
            "is-down",
            "is-up"
          ]
        },
        {
          "id": "empty-state",
          "title": "Empty State",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#empty-state",
          "summary": "Centered icon, headline, one supportive sentence, one action. Never leave a blank pane \u2014 tell people what belongs here and how to start.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-empty",
            "b-empty__desc",
            "b-empty__icon",
            "b-empty__title"
          ],
          "markup": "<div class=\"b-empty\">\n  <div class=\"b-empty__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M5 4.5h10l2 6.5v4.5H3V11L5 4.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M3.5 11h4l1 2h3l1-2h4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n  </div>\n  <div class=\"b-empty__title\">No shipments yet</div>\n  <p class=\"b-empty__desc\">\n    When you book a pickup or send a parcel, it appears here with live\n    tracking from depot to doorstep.\n  </p>\n  <button class=\"b-btn b-btn--primary\">Create shipment</button>\n</div>",
          "react": {
            "import": "import { Button, EmptyState } from \"barua-ui\";",
            "components": [
              "Button",
              "EmptyState"
            ],
            "root": "EmptyState",
            "jsx": "<EmptyState>\n  <div className=\"b-empty__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M5 4.5h10l2 6.5v4.5H3V11L5 4.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      <path d=\"M3.5 11h4l1 2h3l1-2h4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </svg>\n  </div>\n  <div className=\"b-empty__title\">No shipments yet</div>\n  <p className=\"b-empty__desc\">When you book a pickup or send a parcel, it appears here with live tracking from depot to doorstep.</p>\n  <Button variant=\"primary\">Create shipment</Button>\n</EmptyState>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "rich-media-text",
          "title": "Rich Media & Text",
          "category": "content",
          "url": "https://ui.barua.tz/docs/content.html#rich-media-text",
          "summary": "Video and audio players live on the Media page. For rendered markdown and rich text, Barua\u2019s base typography does the work \u2014 headings, paragraphs, inline code, quotes and lists inherit the ramp, so a .b-card__body is all a prose container needs.",
          "classes": [
            "b-card",
            "b-card__body"
          ],
          "markup": "<article class=\"b-card\" style=\"max-width: 36rem\">\n  <div class=\"b-card__body\">\n    <h3>Shipping to Zanzibar</h3>\n    <p>\n      Parcels bound for the islands route through the\n      <code>ZNZ</code> depot and cross on the afternoon ferry from Dar\n      es Salaam.\n    </p>\n    <blockquote>\n      Book before 13:00 EAT to make the same-day crossing.\n    </blockquote>\n    <ul>\n      <li>Stone Town \u2014 same evening</li>\n      <li>Nungwi and the east coast \u2014 next morning</li>\n      <li>Pemba \u2014 every Tuesday and Friday</li>\n    </ul>\n  </div>\n</article>",
          "react": {
            "import": "import { Card, CardBody } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody"
            ],
            "root": "Card",
            "jsx": "<Card style={{ maxWidth: \"36rem\" }}>\n  <CardBody>\n    <h3>Shipping to Zanzibar</h3>\n    <p>\n      Parcels bound for the islands route through the\n      <code>ZNZ</code>\n      depot and cross on the afternoon ferry from Dar es Salaam.\n    </p>\n    <blockquote>Book before 13:00 EAT to make the same-day crossing.</blockquote>\n    <ul>\n      <li>Stone Town \u2014 same evening</li>\n      <li>Nungwi and the east coast \u2014 next morning</li>\n      <li>Pemba \u2014 every Tuesday and Friday</li>\n    </ul>\n  </CardBody>\n</Card>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ]
        }
      ]
    },
    {
      "id": "feedback",
      "title": "Feedback \u2014 alerts, toasts, progress, skeletons, empty states",
      "url": "https://ui.barua.tz/docs/feedback.html",
      "components": [
        {
          "id": "alert",
          "title": "Alert",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#alert",
          "summary": "An inline, contextual message that sits in the page flow. The default is informational; add .b-alert--success , .b-alert--warning or .b-alert--danger . A close button with data-b-dismiss removes the alert with zero extra JS.",
          "classes": [
            "b-alert",
            "b-alert--danger",
            "b-alert--success",
            "b-alert--warning",
            "b-alert__close",
            "b-alert__content",
            "b-alert__desc",
            "b-alert__icon",
            "b-alert__title"
          ],
          "markup": "<div class=\"b-alert\" role=\"status\">\n  <span class=\"b-alert__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M10 9v5m0-8v.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </span>\n  <div class=\"b-alert__content\">\n    <div class=\"b-alert__title\">A new version is available</div>\n    <div class=\"b-alert__desc\">Refresh to load Barua UI v0.2 \u2014 no data will be lost.</div>\n  </div>\n  <button class=\"b-alert__close\" data-b-dismiss aria-label=\"Dismiss\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </button>\n</div>\n<div class=\"b-alert b-alert--success\" role=\"status\">\n  <span class=\"b-alert__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m6.5 10.3 2.3 2.3 4.7-5.2\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </span>\n  <div class=\"b-alert__content\">\n    <div class=\"b-alert__title\">Backup complete</div>\n    <div class=\"b-alert__desc\">All 1,284 files are safely stored. Next backup runs tonight at 02:00.</div>\n  </div>\n  <button class=\"b-alert__close\" data-b-dismiss aria-label=\"Dismiss\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"",
          "react": {
            "import": "import { Alert } from \"barua-ui\";",
            "components": [
              "Alert"
            ],
            "root": "Alert",
            "jsx": "<Alert role=\"status\">\n  <span className=\"b-alert__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"M10 9v5m0-8v.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </span>\n  <div className=\"b-alert__content\">\n    <div className=\"b-alert__title\">A new version is available</div>\n    <div className=\"b-alert__desc\">Refresh to load Barua UI v0.2 \u2014 no data will be lost.</div>\n  </div>\n  <button className=\"b-alert__close\" data-b-dismiss=\"\" aria-label=\"Dismiss\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\">\n      <path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </button>\n</Alert>\n<Alert variant=\"success\" role=\"status\">\n  <span className=\"b-alert__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m6.5 10.3 2.3 2.3 4.7-5.2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </span>\n  <div className=\"b-alert__content\">\n    <div className=\"b-alert__title\">Backup complete</div>\n    <div className=\"b-alert__desc\">All 1,284 files are safely stored. Next backup runs tonight at 02:00.</div>\n  </div>\n  <button className=\"b-alert__close\" data-b-dismiss=\"\" aria-label=\"Dismiss\"></button>\n</Alert>"
          },
          "states": [
            "is-destructive",
            "is-primary"
          ]
        },
        {
          "id": "banner",
          "title": "Banner",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#banner",
          "summary": "A full-width announcement pinned above the app chrome. The default wears the accent gradient; .b-banner--neutral sits quietly on a surface color for less urgent notices. The close button uses data-b-dismiss .",
          "classes": [
            "b-banner",
            "b-banner--neutral",
            "b-banner__close"
          ],
          "markup": "<div class=\"b-banner\" role=\"status\">\n  <span>Barua UI v0.2 ships glass navigation and charts. <a href=\"#banner\">See what's new</a></span>\n  <button class=\"b-banner__close\" data-b-dismiss aria-label=\"Dismiss announcement\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </button>\n</div>\n<div class=\"b-banner b-banner--neutral\" role=\"status\">\n  <span>Scheduled maintenance Saturday 02:00\u201304:00 UTC. <a href=\"#banner\">Status page</a></span>\n  <button class=\"b-banner__close\" data-b-dismiss aria-label=\"Dismiss notice\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </button>\n</div>",
          "react": {
            "import": "import { Banner } from \"barua-ui\";",
            "components": [
              "Banner"
            ],
            "root": "Banner",
            "jsx": "<Banner role=\"status\">\n  <span>\n    Barua UI v0.2 ships glass navigation and charts.\n    <a href=\"#banner\">See what's new</a>\n  </span>\n  <button\n    className=\"b-banner__close\"\n    data-b-dismiss=\"\"\n    aria-label=\"Dismiss announcement\"\n  >\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\">\n      <path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </button>\n</Banner>\n<Banner neutral role=\"status\">\n  <span>\n    Scheduled maintenance Saturday 02:00\u201304:00 UTC.\n    <a href=\"#banner\">Status page</a>\n  </span>\n  <button\n    className=\"b-banner__close\"\n    data-b-dismiss=\"\"\n    aria-label=\"Dismiss notice\"\n  >\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\">\n      <path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </button>\n</Banner>"
          }
        },
        {
          "id": "toast",
          "title": "Toast",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#toast",
          "summary": "A transient, glassy confirmation that floats in from the bottom corner and dismisses itself. At runtime toasts live inside an auto-created .b-toast-region ; the static markup below shows each variant's anatomy \u2014 icon, content and an optional trailing action.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--outline",
            "b-btn--tinted",
            "b-table",
            "b-table-wrap",
            "b-toast",
            "b-toast--danger",
            "b-toast--success",
            "b-toast--warning",
            "b-toast__action",
            "b-toast__content",
            "b-toast__desc",
            "b-toast__icon",
            "b-toast__title"
          ],
          "markup": "<div class=\"b-toast\" role=\"status\">\n  <span class=\"b-toast__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M10 9v5m0-8v.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </span>\n  <div class=\"b-toast__content\">\n    <div class=\"b-toast__title\">New sign-in</div>\n    <div class=\"b-toast__desc\">Safari on macOS, Arusha TZ</div>\n  </div>\n</div>\n<div class=\"b-toast b-toast--success\" role=\"status\">\n  <span class=\"b-toast__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m6.5 10.3 2.3 2.3 4.7-5.2\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </span>\n  <div class=\"b-toast__content\">\n    <div class=\"b-toast__title\">Saved</div>\n    <div class=\"b-toast__desc\">Profile updated</div>\n  </div>\n</div>\n<div class=\"b-toast b-toast--warning\" role=\"status\">\n  <span class=\"b-toast__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 3.5 18 17H2L10 3.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M10 8.5v3.5m0 2.2v.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </span>\n  <div class=\"b-toast__content\">\n    <div class=\"b-toast__title\">Working offline</div>\n    <div class=\"b-toast__desc\">C",
          "variants": [
            {
              "id": "toast-live",
              "title": "Live triggers"
            },
            {
              "id": "toast-api",
              "title": "JavaScript API"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-leaving",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "snackbar",
          "title": "Snackbar",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#snackbar",
          "summary": "A snackbar is the same .b-toast component anchored to the bottom center of the viewport \u2014 wrap it in <div class=\"b-toast-region b-toast-region--center\" aria-live=\"polite\"> instead of the default corner region. It usually skips the icon and always offers one action.",
          "classes": [
            "b-toast",
            "b-toast-region",
            "b-toast-region--center",
            "b-toast__action",
            "b-toast__content",
            "b-toast__title"
          ],
          "markup": "<div class=\"b-toast\" role=\"status\">\n  <div class=\"b-toast__content\">\n    <div class=\"b-toast__title\">Conversation moved to Trash</div>\n  </div>\n  <button class=\"b-toast__action\">Undo</button>\n</div>",
          "knobs": [
            "--b-lg-border"
          ],
          "states": [
            "is-leaving"
          ]
        },
        {
          "id": "notification",
          "title": "Notification",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#notification",
          "summary": "A rich, macOS-style notification card: source app, title, body and timestamp beside an avatar or app mark. It shares the toast's glass treatment and works with data-b-dismiss on any child button.",
          "classes": [
            "b-avatar",
            "b-avatar--square",
            "b-notification",
            "b-notification__app",
            "b-notification__body",
            "b-notification__desc",
            "b-notification__time",
            "b-notification__title"
          ],
          "markup": "<div class=\"b-notification\" role=\"status\">\n  <span class=\"b-avatar\">AK</span>\n  <div class=\"b-notification__body\">\n    <div class=\"b-notification__app\">Messages</div>\n    <div class=\"b-notification__title\">Amina Kimaro</div>\n    <div class=\"b-notification__desc\">Uploaded the Q3 launch deck \u2014 take a look before standup.</div>\n  </div>\n  <span class=\"b-notification__time\">now</span>\n</div>\n<div class=\"b-notification\" role=\"status\">\n  <span class=\"b-avatar b-avatar--square\">\n    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"4\" fill=\"var(--b-color-accent)\"/><path d=\"m4 7 8 6 8-6\" stroke=\"white\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </span>\n  <div class=\"b-notification__body\">\n    <div class=\"b-notification__app\">Barua Mail</div>\n    <div class=\"b-notification__title\">Weekly digest ready</div>\n    <div class=\"b-notification__desc\">12 threads resolved, 3 waiting on you.</div>\n  </div>\n  <span class=\"b-notification__time\">9:41</span>\n</div>",
          "react": {
            "import": "import { Avatar, Notification } from \"barua-ui\";",
            "components": [
              "Avatar",
              "Notification"
            ],
            "root": "Notification",
            "jsx": "<Notification role=\"status\">\n  <Avatar>AK</Avatar>\n  <div className=\"b-notification__body\">\n    <div className=\"b-notification__app\">Messages</div>\n    <div className=\"b-notification__title\">Amina Kimaro</div>\n    <div className=\"b-notification__desc\">Uploaded the Q3 launch deck \u2014 take a look before standup.</div>\n  </div>\n  <span className=\"b-notification__time\">now</span>\n</Notification>\n<Notification role=\"status\">\n  <Avatar className=\"b-avatar--square\">\n    <svg\n      width=\"18\"\n      height=\"18\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"4\" fill=\"var(--b-color-accent)\" />\n      <path d=\"m4 7 8 6 8-6\" stroke=\"white\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Avatar>\n  <div className=\"b-notification__body\">\n    <div className=\"b-notification__app\">Barua Mail</div>\n    <div className=\"b-notification__title\">Weekly digest ready</div>\n    <div className=\"b-notification__desc\">12 threads resolved, 3 waiting on you.</div>\n  </div>\n  <span className=\"b-notification__time\">9:41</span>\n</Notification>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border"
          ]
        },
        {
          "id": "tip",
          "title": "Tip",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#tip",
          "summary": "A TipKit-style callout: glass card with an icon tile, one-line promise, quiet explanation, inline actions and a dismiss. For teaching a feature in place \u2014 once, then it leaves.",
          "classes": [
            "b-link",
            "b-link--muted",
            "b-tip",
            "b-tip__actions",
            "b-tip__close",
            "b-tip__content",
            "b-tip__desc",
            "b-tip__icon",
            "b-tip__title"
          ],
          "markup": "<div class=\"b-tip\" style=\"max-width: 26rem\">\n  <span class=\"b-tip__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 2.5v2M4.7 4.7l1.4 1.4M2.5 10h2M15.3 4.7l-1.4 1.4M17.5 10h-2M7.5 15.5h5M8.5 18h3M10 6a4 4 0 0 1 2.5 7.1c-.5.4-.8 1-.8 1.6v.3h-3.4v-.3c0-.6-.3-1.2-.8-1.6A4 4 0 0 1 10 6Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </span>\n  <span class=\"b-tip__content\">\n    <span class=\"b-tip__title\">Swipe to archive</span>\n    <span class=\"b-tip__desc\">Drag any conversation left to file it without opening it.</span>\n    <span class=\"b-tip__actions\">\n      <button class=\"b-link\">Try it</button>\n      <button class=\"b-link b-link--muted\">Not now</button>\n    </span>\n  </span>\n  <button class=\"b-tip__close\" aria-label=\"Dismiss tip\" data-b-dismiss>\u2715</button>\n</div>",
          "react": {
            "import": "import { Link, Tip } from \"barua-ui\";",
            "components": [
              "Link",
              "Tip"
            ],
            "root": "Tip",
            "jsx": "<Tip style={{ maxWidth: \"26rem\" }}>\n  <span className=\"b-tip__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"M10 2.5v2M4.7 4.7l1.4 1.4M2.5 10h2M15.3 4.7l-1.4 1.4M17.5 10h-2M7.5 15.5h5M8.5 18h3M10 6a4 4 0 0 1 2.5 7.1c-.5.4-.8 1-.8 1.6v.3h-3.4v-.3c0-.6-.3-1.2-.8-1.6A4 4 0 0 1 10 6Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </span>\n  <span className=\"b-tip__content\">\n    <span className=\"b-tip__title\">Swipe to archive</span>\n    <span className=\"b-tip__desc\">Drag any conversation left to file it without opening it.</span>\n    <span className=\"b-tip__actions\">\n      <Link>Try it</Link>\n      <Link className=\"b-link--muted\">Not now</Link>\n    </span>\n  </span>\n  <button className=\"b-tip__close\" aria-label=\"Dismiss tip\" data-b-dismiss=\"\">\u2715</button>\n</Tip>"
          }
        },
        {
          "id": "status-indicator",
          "title": "Status Indicator",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#status-indicator",
          "summary": "A dot plus label for presence and system health. Presence modifiers --online , --busy and --away have semantic aliases --success , --danger and --warning for non-people states; add --pulse to animate live activity.",
          "classes": [
            "b-status",
            "b-status--away",
            "b-status--busy",
            "b-status--danger",
            "b-status--online",
            "b-status--pulse",
            "b-status--success",
            "b-status--warning"
          ],
          "markup": "<span class=\"b-status\">Offline</span>\n<span class=\"b-status b-status--online\">Online</span>\n<span class=\"b-status b-status--away\">Away</span>\n<span class=\"b-status b-status--busy\">Busy</span>\n<span class=\"b-status b-status--online b-status--pulse\">Live</span>\n<span class=\"b-status b-status--success\">Operational</span>\n<span class=\"b-status b-status--warning\">Degraded</span>\n<span class=\"b-status b-status--danger\">Major outage</span>",
          "react": {
            "import": "import { StatusDot } from \"barua-ui\";",
            "components": [
              "StatusDot"
            ],
            "root": "StatusDot",
            "jsx": "<StatusDot>Offline</StatusDot>\n<StatusDot className=\"b-status--online\">Online</StatusDot>\n<StatusDot className=\"b-status--away\">Away</StatusDot>\n<StatusDot className=\"b-status--busy\">Busy</StatusDot>\n<StatusDot className=\"b-status--online b-status--pulse\">Live</StatusDot>\n<StatusDot className=\"b-status--success\">Operational</StatusDot>\n<StatusDot className=\"b-status--warning\">Degraded</StatusDot>\n<StatusDot className=\"b-status--danger\">Major outage</StatusDot>"
          }
        },
        {
          "id": "progress-bar",
          "title": "Progress Bar",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#progress-bar",
          "summary": "A determinate track whose fill width comes from the --b-progress custom property, e.g. style=\"--b-progress: 65%\" . The fill animates smoothly when the value changes.",
          "classes": [
            "b-progress",
            "b-progress--danger",
            "b-progress--indeterminate",
            "b-progress--lg",
            "b-progress--sm",
            "b-progress--success",
            "b-progress--warning",
            "b-progress__fill"
          ],
          "markup": "<div class=\"b-progress\" role=\"progressbar\" aria-label=\"Upload progress\" aria-valuenow=\"65\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"--b-progress: 65%\">\n  <div class=\"b-progress__fill\"></div>\n</div>",
          "react": {
            "import": "import { Progress } from \"barua-ui\";",
            "components": [
              "Progress"
            ],
            "root": "Progress",
            "jsx": "<Progress\n  role=\"progressbar\"\n  aria-label=\"Upload progress\"\n  aria-valuenow=\"65\"\n  aria-valuemin=\"0\"\n  aria-valuemax=\"100\"\n  style={{ \"--b-progress\": \"65%\" }}\n>\n  <div className=\"b-progress__fill\"></div>\n</Progress>"
          },
          "variants": [
            {
              "id": "progress-bar-sizes",
              "title": "Sizes"
            },
            {
              "id": "progress-bar-colors",
              "title": "Semantic colors"
            },
            {
              "id": "progress-bar-indeterminate",
              "title": "Indeterminate"
            }
          ],
          "knobs": [
            "--b-lg-inset",
            "--b-progress"
          ]
        },
        {
          "id": "circular-progress",
          "title": "Circular Progress",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#circular-progress",
          "summary": "A conic-gradient ring driven by a unitless --b-progress value from 0\u2013100 set on .b-circular . Wrap it in .b-circular-wrap to center a .b-circular__label in the ring; resize with --b-circular-size and --b-circular-track .",
          "classes": [
            "b-circular",
            "b-circular-wrap",
            "b-circular__label"
          ],
          "markup": "<div class=\"b-circular-wrap\">\n  <div class=\"b-circular\" role=\"progressbar\" aria-label=\"Sync\" aria-valuenow=\"72\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"--b-progress: 72\"></div>\n  <span class=\"b-circular__label\">72%</span>\n</div>\n<div class=\"b-circular-wrap\">\n  <div class=\"b-circular\" role=\"progressbar\" aria-label=\"Storage\" aria-valuenow=\"45\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"--b-progress: 45; --b-circular-size: 4.5rem\"></div>\n  <span class=\"b-circular__label\">45%</span>\n</div>\n<div class=\"b-circular-wrap\">\n  <div class=\"b-circular\" role=\"progressbar\" aria-label=\"Goal\" aria-valuenow=\"90\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"--b-progress: 90; --b-circular-size: 6rem; --b-circular-track: 6px\"></div>\n  <span class=\"b-circular__label\">90%</span>\n</div>",
          "react": {
            "import": "import { CircularProgress } from \"barua-ui\";",
            "components": [
              "CircularProgress"
            ],
            "root": "CircularProgress",
            "jsx": "<div className=\"b-circular-wrap\">\n  <CircularProgress\n    role=\"progressbar\"\n    aria-label=\"Sync\"\n    aria-valuenow=\"72\"\n    aria-valuemin=\"0\"\n    aria-valuemax=\"100\"\n    style={{ \"--b-progress\": \"72\" }}\n  ></CircularProgress>\n  <span className=\"b-circular__label\">72%</span>\n</div>\n<div className=\"b-circular-wrap\">\n  <CircularProgress\n    role=\"progressbar\"\n    aria-label=\"Storage\"\n    aria-valuenow=\"45\"\n    aria-valuemin=\"0\"\n    aria-valuemax=\"100\"\n    style={{ \"--b-progress\": \"45\", \"--b-circular-size\": \"4.5rem\" }}\n  ></CircularProgress>\n  <span className=\"b-circular__label\">45%</span>\n</div>\n<div className=\"b-circular-wrap\">\n  <CircularProgress\n    role=\"progressbar\"\n    aria-label=\"Goal\"\n    aria-valuenow=\"90\"\n    aria-valuemin=\"0\"\n    aria-valuemax=\"100\"\n    style={{ \"--b-progress\": \"90\", \"--b-circular-size\": \"6rem\", \"--b-circular-track\": \"6px\" }}\n  ></CircularProgress>\n  <span className=\"b-circular__label\">90%</span>\n</div>"
          },
          "knobs": [
            "--b-circular-color",
            "--b-circular-size",
            "--b-circular-track",
            "--b-progress"
          ]
        },
        {
          "id": "loading-spinner",
          "title": "Loading Spinner",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#loading-spinner",
          "summary": "A lightweight indeterminate ring in three sizes. For buttons, prefer the built-in .b-btn.is-loading state from Actions \u2014 it swaps the label for a spinner while keeping the accessible name.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-spinner",
            "b-spinner--lg",
            "b-spinner--sm"
          ],
          "markup": "<span class=\"b-spinner b-spinner--sm\" role=\"status\" aria-label=\"Loading\"></span>\n<span class=\"b-spinner\" role=\"status\" aria-label=\"Loading\"></span>\n<span class=\"b-spinner b-spinner--lg\" role=\"status\" aria-label=\"Loading\"></span>\n<button class=\"b-btn b-btn--primary is-loading\" aria-busy=\"true\">Saving\u2026</button>",
          "react": {
            "import": "import { Button, Spinner } from \"barua-ui\";",
            "components": [
              "Button",
              "Spinner"
            ],
            "root": "Spinner",
            "jsx": "<Spinner size=\"sm\" role=\"status\" aria-label=\"Loading\"></Spinner>\n<Spinner role=\"status\" aria-label=\"Loading\"></Spinner>\n<Spinner size=\"lg\" role=\"status\" aria-label=\"Loading\"></Spinner>\n<Button variant=\"primary\" loading aria-busy=\"true\">Saving\u2026</Button>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "skeleton",
          "title": "Skeleton",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#skeleton",
          "summary": "Shimmering placeholders that hold layout while content loads. Four shapes \u2014 --text , --title , --circle and --card \u2014 compose into a ghost of the real screen.",
          "classes": [
            "b-card",
            "b-card__body",
            "b-skeleton",
            "b-skeleton--card",
            "b-skeleton--circle",
            "b-skeleton--text",
            "b-skeleton--title"
          ],
          "markup": "<div class=\"b-skeleton b-skeleton--title\"></div>\n<div class=\"b-skeleton b-skeleton--text\"></div>\n<div class=\"b-skeleton b-skeleton--text\" style=\"width: 75%\"></div>\n<div class=\"b-skeleton b-skeleton--circle\" style=\"width: 3rem\"></div>\n<div class=\"b-skeleton b-skeleton--card\" style=\"max-width: 18rem\"></div>",
          "react": {
            "import": "import { Skeleton } from \"barua-ui\";",
            "components": [
              "Skeleton"
            ],
            "root": "Skeleton",
            "jsx": "<Skeleton className=\"b-skeleton--title\"></Skeleton>\n<Skeleton className=\"b-skeleton--text\"></Skeleton>\n<Skeleton className=\"b-skeleton--text\" style={{ width: \"75%\" }}></Skeleton>\n<Skeleton className=\"b-skeleton--circle\" style={{ width: \"3rem\" }}></Skeleton>\n<Skeleton className=\"b-skeleton--card\" style={{ maxWidth: \"18rem\" }}></Skeleton>"
          },
          "variants": [
            {
              "id": "skeleton-composed",
              "title": "Composed loading state"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "result-states",
          "title": "Result States",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#result-states",
          "summary": "A full-panel outcome message for the end of a flow \u2014 one component, four modifiers. .b-result--success , .b-result--error , .b-result--warning and .b-result--confirm compose the Success State, Error State, Warning State and Confirmation State patterns from the component list. Each pairs a tinted icon disc with a title, supporting copy and clear next actions.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-divider",
            "b-result",
            "b-result--confirm",
            "b-result--error",
            "b-result--success",
            "b-result--warning",
            "b-result__actions",
            "b-result__desc",
            "b-result__icon",
            "b-result__title"
          ],
          "markup": "<div class=\"b-result b-result--success\">\n  <div class=\"b-result__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"m4.5 10.5 3.5 3.5 7.5-8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </div>\n  <div class=\"b-result__title\">Payment complete</div>\n  <div class=\"b-result__desc\">Your receipt is on its way to your inbox. Funds typically arrive within two business days.</div>\n  <div class=\"b-result__actions\">\n    <button class=\"b-btn b-btn--primary\">View receipt</button>\n    <button class=\"b-btn b-btn--ghost\">Done</button>\n  </div>\n</div>\n<hr class=\"b-divider\">\n<div class=\"b-result b-result--error\" role=\"alert\">\n  <div class=\"b-result__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </div>\n  <div class=\"b-result__title\">Something went wrong</div>\n  <div class=\"b-result__desc\">We couldn't process the transfer and no money left your account. Try again, or contact support if it keeps happening.</div>\n  <div class=\"b-result__actions\">\n    <button class=\"b-btn b-btn--primary\">Try again</button>\n    <button class=\"b-btn b-btn--ghost\">Contact support</button>\n  </div>\n</div>\n<hr class=\"b-divider\">\n<div class=\"b-result b-result--warning\">\n  <div class=\"b-result__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 3 18.5 ",
          "react": {
            "import": "import { Button, Divider, Result } from \"barua-ui\";",
            "components": [
              "Button",
              "Divider",
              "Result"
            ],
            "root": "Result",
            "jsx": "<Result tone=\"success\">\n  <div className=\"b-result__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"m4.5 10.5 3.5 3.5 7.5-8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </div>\n  <div className=\"b-result__title\">Payment complete</div>\n  <div className=\"b-result__desc\">Your receipt is on its way to your inbox. Funds typically arrive within two business days.</div>\n  <div className=\"b-result__actions\">\n    <Button variant=\"primary\">View receipt</Button>\n    <Button variant=\"ghost\">Done</Button>\n  </div>\n</Result>\n<Divider />\n<Result tone=\"error\" role=\"alert\">\n  <div className=\"b-result__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </div>\n  <div className=\"b-result__title\">Something went wrong</div>\n  <div className=\"b-result__desc\">We couldn't process the transfer and no money left your account. Try again, or contact support if it keeps happening.</div>\n  <div className=\"b-result__actions\">\n    <Button variant=\"primary\">Try again</Button>\n    <Button variant=\"ghost\">Contact support</Button>\n  </div>\n</Result>\n<Divider />\n<Result tone=\"warning\">\n  <div className=\"b-result__icon\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"></svg>\n  </div>\n</Result>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "redacted",
          "title": "Redacted",
          "category": "feedback",
          "url": "https://ui.barua.tz/docs/feedback.html#redacted",
          "summary": "SwiftUI's .redacted(reason: .placeholder) : add .b-redacted to any element and its real content renders as a breathing placeholder block \u2014 same box, same layout, no skeleton markup to maintain. Remove the class when data arrives.",
          "classes": [
            "b-card",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title",
            "b-redacted"
          ],
          "markup": "<div class=\"b-card\" style=\"width: 15rem\"><div class=\"b-card__body\">\n  <div class=\"b-card__title\">Amina Hassan</div>\n  <div class=\"b-card__subtitle\">Reconciled 14 invoices</div>\n</div></div>\n<div class=\"b-card\" style=\"width: 15rem\"><div class=\"b-card__body\">\n  <div class=\"b-card__title b-redacted\">Amina Hassan</div>\n  <div class=\"b-card__subtitle b-redacted\">Reconciled 14 invoices</div>\n</div></div>",
          "react": {
            "import": "import { Card, CardBody, CardSubtitle, CardTitle } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "CardSubtitle",
              "CardTitle"
            ],
            "root": "Card",
            "jsx": "<Card style={{ width: \"15rem\" }}>\n  <CardBody>\n    <CardTitle>Amina Hassan</CardTitle>\n    <CardSubtitle>Reconciled 14 invoices</CardSubtitle>\n  </CardBody>\n</Card>\n<Card style={{ width: \"15rem\" }}>\n  <CardBody>\n    <CardTitle className=\"b-redacted\">Amina Hassan</CardTitle>\n    <CardSubtitle className=\"b-redacted\">Reconciled 14 invoices</CardSubtitle>\n  </CardBody>\n</Card>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ]
        }
      ]
    },
    {
      "id": "overlays",
      "title": "Overlays \u2014 modals, sheets, popovers, tooltips, lightbox",
      "url": "https://ui.barua.tz/docs/overlays.html",
      "components": [
        {
          "id": "modal",
          "title": "Modal",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#modal",
          "summary": "A <dialog class=\"b-modal\"> opened with showModal() . Any trigger with data-b-dialog=\"#id\" opens it; anything inside carrying data-b-dialog-close closes it \u2014 no bespoke JS. Sizes: .b-modal--sm , the 28rem default, .b-modal--lg and .b-modal--xl . Add .b-modal--glass for a translucent material that blurs the content behind it.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-modal",
            "b-modal__body",
            "b-modal__close",
            "b-modal__footer",
            "b-modal__header",
            "b-modal__title"
          ],
          "markup": "<button class=\"b-btn b-btn--primary\" data-b-dialog=\"#demo-modal\">Open modal</button>\n<dialog class=\"b-modal\" id=\"demo-modal\" aria-labelledby=\"demo-modal-title\">\n  <header class=\"b-modal__header\">\n    <h2 class=\"b-modal__title\" id=\"demo-modal-title\">Rename mailbox</h2>\n    <button class=\"b-modal__close\" data-b-dialog-close aria-label=\"Close\">\u2715</button>\n  </header>\n  <div class=\"b-modal__body\">\n    <p>Choose a new name for this mailbox. Filters and rules that\n    reference it will update automatically.</p>\n  </div>\n  <footer class=\"b-modal__footer\">\n    <button class=\"b-btn\" data-b-dialog-close>Cancel</button>\n    <button class=\"b-btn b-btn--primary\" data-b-dialog-close>Rename</button>\n  </footer>\n</dialog>",
          "react": {
            "import": "import { Button, Modal } from \"barua-ui\";",
            "components": [
              "Button",
              "Modal"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"primary\" data-b-dialog=\"#demo-modal\">Open modal</Button>\n<Modal id=\"demo-modal\" aria-labelledby=\"demo-modal-title\">\n  <header className=\"b-modal__header\">\n    <h2 className=\"b-modal__title\" id=\"demo-modal-title\">Rename mailbox</h2>\n    <button className=\"b-modal__close\" data-b-dialog-close=\"\" aria-label=\"Close\">\u2715</button>\n  </header>\n  <div className=\"b-modal__body\">\n    <p>Choose a new name for this mailbox. Filters and rules that reference it will update automatically.</p>\n  </div>\n  <footer className=\"b-modal__footer\">\n    <Button data-b-dialog-close=\"\">Cancel</Button>\n    <Button variant=\"primary\" data-b-dialog-close=\"\">Rename</Button>\n  </footer>\n</Modal>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "dialog-vs-modal",
          "title": "Dialog vs Modal",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#dialog-vs-modal",
          "summary": "One element, two behaviours. <dialog> opened with showModal() is modal : it sits in the browser's top layer, renders a ::backdrop scrim, and blocks the page behind it. The same element opened with show() is a non-modal dialog \u2014 an inline panel the user can ignore, with no backdrop, no focus trap and no Esc handling. Barua styles both from the same .b-modal class.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "alert-dialog",
          "title": "Alert Dialog",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#alert-dialog",
          "summary": "A compact, centered confirmation in the iOS style: title, one-sentence description, then full-width stacked actions separated by hairlines. Mark the destructive choice with .is-destructive and the preferred one with .is-primary . Add .b-alert-dialog__actions--row for the two-button side-by-side arrangement, shown statically below with show() -style inline rendering.",
          "classes": [
            "b-alert-dialog",
            "b-alert-dialog__actions",
            "b-alert-dialog__actions--row",
            "b-alert-dialog__desc",
            "b-alert-dialog__title",
            "b-btn",
            "b-btn--danger-tinted",
            "b-modal",
            "b-modal__body"
          ],
          "markup": "<button class=\"b-btn b-btn--danger-tinted\" data-b-dialog=\"#demo-alert\">Delete draft\u2026</button>\n<dialog class=\"b-modal b-alert-dialog\" id=\"demo-alert\" aria-labelledby=\"demo-alert-title\" aria-describedby=\"demo-alert-desc\">\n  <div class=\"b-modal__body\">\n    <h2 class=\"b-alert-dialog__title\" id=\"demo-alert-title\">Delete draft?</h2>\n    <p class=\"b-alert-dialog__desc\" id=\"demo-alert-desc\">This draft will be removed from all your devices. You can't undo this.</p>\n  </div>\n  <div class=\"b-alert-dialog__actions\">\n    <button class=\"is-destructive\" data-b-dialog-close>Delete draft</button>\n    <button class=\"is-primary\" data-b-dialog-close>Keep editing</button>\n  </div>\n</dialog>",
          "react": {
            "import": "import { Button, Modal } from \"barua-ui\";",
            "components": [
              "Button",
              "Modal"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"danger-tinted\" data-b-dialog=\"#demo-alert\">Delete draft\u2026</Button>\n<Modal\n  className=\"b-alert-dialog\"\n  id=\"demo-alert\"\n  aria-labelledby=\"demo-alert-title\"\n  aria-describedby=\"demo-alert-desc\"\n>\n  <div className=\"b-modal__body\">\n    <h2 className=\"b-alert-dialog__title\" id=\"demo-alert-title\">Delete draft?</h2>\n    <p className=\"b-alert-dialog__desc\" id=\"demo-alert-desc\">This draft will be removed from all your devices. You can't undo this.</p>\n  </div>\n  <div className=\"b-alert-dialog__actions\">\n    <button className=\"is-destructive\" data-b-dialog-close=\"\">Delete draft</button>\n    <button className=\"is-primary\" data-b-dialog-close=\"\">Keep editing</button>\n  </div>\n</Modal>"
          },
          "variants": [
            {
              "id": "alert-dialog-row",
              "title": "Row actions"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-destructive",
            "is-loading",
            "is-pressed",
            "is-primary"
          ]
        },
        {
          "id": "action-sheet",
          "title": "Action Sheet",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#action-sheet",
          "summary": "SwiftUI's confirmationDialog : a bottom-anchored glass stack of choices with a separate Cancel group. Destructive choices take .is-destructive . Built on native <dialog> like every Barua overlay.",
          "classes": [
            "b-action-sheet",
            "b-action-sheet__cancel",
            "b-action-sheet__group",
            "b-action-sheet__title",
            "b-btn"
          ],
          "markup": "<button class=\"b-btn\" data-b-dialog=\"#demo-action-sheet\">Delete conversation\u2026</button>\n<dialog class=\"b-action-sheet\" id=\"demo-action-sheet\" aria-label=\"Delete conversation\">\n  <div class=\"b-action-sheet__group\">\n    <p class=\"b-action-sheet__title\">This conversation will be removed from all your devices.</p>\n    <button class=\"is-destructive\" data-b-dialog-close>Delete for everyone</button>\n    <button data-b-dialog-close>Archive instead</button>\n  </div>\n  <div class=\"b-action-sheet__group b-action-sheet__cancel\">\n    <button data-b-dialog-close>Cancel</button>\n  </div>\n</dialog>",
          "react": {
            "import": "import { ActionSheet, Button } from \"barua-ui\";",
            "components": [
              "ActionSheet",
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button data-b-dialog=\"#demo-action-sheet\">Delete conversation\u2026</Button>\n<ActionSheet id=\"demo-action-sheet\" aria-label=\"Delete conversation\">\n  <div className=\"b-action-sheet__group\">\n    <p className=\"b-action-sheet__title\">This conversation will be removed from all your devices.</p>\n    <button className=\"is-destructive\" data-b-dialog-close=\"\">Delete for everyone</button>\n    <button data-b-dialog-close=\"\">Archive instead</button>\n  </div>\n  <div className=\"b-action-sheet__group b-action-sheet__cancel\">\n    <button data-b-dialog-close=\"\">Cancel</button>\n  </div>\n</ActionSheet>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-destructive",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "sheet",
          "title": "Sheet",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#sheet",
          "summary": "A full-height panel that springs in from the trailing edge \u2014 the macOS/iPadOS inspector pattern. It is still a <dialog> , so it gets the scrim, focus trap and Esc handling of a modal while reading as a side panel.",
          "classes": [
            "b-btn",
            "b-modal__close",
            "b-modal__title",
            "b-sheet",
            "b-sheet__body",
            "b-sheet__header"
          ],
          "markup": "<button class=\"b-btn\" data-b-dialog=\"#demo-sheet\">Open sheet</button>\n<dialog class=\"b-sheet\" id=\"demo-sheet\" aria-labelledby=\"demo-sheet-title\">\n  <header class=\"b-sheet__header\">\n    <h2 class=\"b-modal__title\" id=\"demo-sheet-title\">Message details</h2>\n    <button class=\"b-modal__close\" data-b-dialog-close aria-label=\"Close\">\u2715</button>\n  </header>\n  <div class=\"b-sheet__body\">\n    <p>From <strong>Amina Otieno</strong> \u00b7 Today at 09:41</p>\n    <p>Encrypted in transit \u00b7 Signed \u00b7 2 attachments</p>\n    <p>Sheets suit secondary detail and editing tasks that relate to\n    the content behind them \u2014 the page stays visible under the\n    scrim to preserve context.</p>\n  </div>\n</dialog>",
          "react": {
            "import": "import { Button, Sheet } from \"barua-ui\";",
            "components": [
              "Button",
              "Sheet"
            ],
            "root": "Button",
            "jsx": "<Button data-b-dialog=\"#demo-sheet\">Open sheet</Button>\n<Sheet id=\"demo-sheet\" aria-labelledby=\"demo-sheet-title\">\n  <header className=\"b-sheet__header\">\n    <h2 className=\"b-modal__title\" id=\"demo-sheet-title\">Message details</h2>\n    <button className=\"b-modal__close\" data-b-dialog-close=\"\" aria-label=\"Close\">\u2715</button>\n  </header>\n  <div className=\"b-sheet__body\">\n    <p>\n      From\n      <strong>Amina Otieno</strong>\n      \u00b7 Today at 09:41\n    </p>\n    <p>Encrypted in transit \u00b7 Signed \u00b7 2 attachments</p>\n    <p>Sheets suit secondary detail and editing tasks that relate to the content behind them \u2014 the page stays visible under the scrim to preserve context.</p>\n  </div>\n</Sheet>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "bottom-sheet",
          "title": "Bottom Sheet",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#bottom-sheet",
          "summary": "Slides up from the bottom edge on a thick glass material, with a grabber affordance and safe-area padding. This is the preferred modal surface on mobile \u2014 thumb-reachable, dismissible, and familiar from every iOS share sheet.",
          "classes": [
            "b-bottom-sheet",
            "b-bottom-sheet__body",
            "b-bottom-sheet__grabber",
            "b-btn",
            "b-btn--block",
            "b-btn--primary",
            "b-modal__title"
          ],
          "markup": "<button class=\"b-btn\" data-b-dialog=\"#demo-bottom-sheet\">Open bottom sheet</button>\n<dialog class=\"b-bottom-sheet\" id=\"demo-bottom-sheet\" aria-labelledby=\"demo-bottom-sheet-title\">\n  <div class=\"b-bottom-sheet__grabber\" aria-hidden=\"true\"></div>\n  <div class=\"b-bottom-sheet__body\">\n    <h2 class=\"b-modal__title\" id=\"demo-bottom-sheet-title\">Move to\u2026</h2>\n    <p>Pick a destination mailbox. On phone-width layouts, prefer a\n    bottom sheet over a centered modal for any picker or short\n    form.</p>\n    <button class=\"b-btn b-btn--primary b-btn--block\" data-b-dialog-close>Done</button>\n  </div>\n</dialog>",
          "react": {
            "import": "import { BottomSheet, Button } from \"barua-ui\";",
            "components": [
              "BottomSheet",
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button data-b-dialog=\"#demo-bottom-sheet\">Open bottom sheet</Button>\n<BottomSheet id=\"demo-bottom-sheet\" aria-labelledby=\"demo-bottom-sheet-title\">\n  <div className=\"b-bottom-sheet__grabber\" aria-hidden=\"true\"></div>\n  <div className=\"b-bottom-sheet__body\">\n    <h2 className=\"b-modal__title\" id=\"demo-bottom-sheet-title\">Move to\u2026</h2>\n    <p>Pick a destination mailbox. On phone-width layouts, prefer a bottom sheet over a centered modal for any picker or short form.</p>\n    <Button variant=\"primary\" block data-b-dialog-close=\"\">Done</Button>\n  </div>\n</BottomSheet>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "sheet-detents",
          "title": "Sheet Detents",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#sheet-detents",
          "summary": "SwiftUI's presentationDetents for the bottom sheet: .b-bottom-sheet--medium caps the sheet at half the viewport, --large at 92%. The default remains content-sized up to 85%.",
          "classes": [
            "b-bottom-sheet",
            "b-bottom-sheet--medium",
            "b-bottom-sheet__body",
            "b-bottom-sheet__grabber",
            "b-btn",
            "b-btn--block",
            "b-btn--primary",
            "b-headline",
            "b-subheadline",
            "b-text-secondary"
          ],
          "markup": "<button class=\"b-btn\" data-b-dialog=\"#demo-detent\">Open medium sheet</button>\n<dialog class=\"b-bottom-sheet b-bottom-sheet--medium\" id=\"demo-detent\" aria-label=\"Filters\">\n  <div class=\"b-bottom-sheet__grabber\" aria-hidden=\"true\"></div>\n  <div class=\"b-bottom-sheet__body\">\n    <h3 class=\"b-headline\">Filters</h3>\n    <p class=\"b-subheadline b-text-secondary\">A medium-detent sheet holds to half the screen.</p>\n    <button class=\"b-btn b-btn--primary b-btn--block\" data-b-dialog-close>Done</button>\n  </div>\n</dialog>",
          "react": {
            "import": "import { BottomSheet, Button } from \"barua-ui\";",
            "components": [
              "BottomSheet",
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button data-b-dialog=\"#demo-detent\">Open medium sheet</Button>\n<BottomSheet\n  className=\"b-bottom-sheet--medium\"\n  id=\"demo-detent\"\n  aria-label=\"Filters\"\n>\n  <div className=\"b-bottom-sheet__grabber\" aria-hidden=\"true\"></div>\n  <div className=\"b-bottom-sheet__body\">\n    <h3 className=\"b-headline\">Filters</h3>\n    <p className=\"b-subheadline b-text-secondary\">A medium-detent sheet holds to half the screen.</p>\n    <Button variant=\"primary\" block data-b-dialog-close=\"\">Done</Button>\n  </div>\n</BottomSheet>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "popover",
          "title": "Popover",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#popover",
          "summary": "A light glass card for transient detail, built on the native Popover API: popovers open centered in the viewport by default \u2014 add .b-popover--anchored (or .b-menu--anchored ) only when you position one against its trigger yourself. Point popovertarget at the popover's id and the browser handles toggling, light-dismiss and Esc \u2014 zero JS. Where you need guaranteed positioning without anchor support, wrap trigger and card in .b-popover-anchor to pin the card under its anchor (shown statically below).",
          "classes": [
            "b-avatar",
            "b-avatar--xs",
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-btn--sm",
            "b-btn--tinted",
            "b-field",
            "b-gap-3",
            "b-input",
            "b-input--sm",
            "b-label",
            "b-popover",
            "b-popover--arrow-bottom",
            "b-popover--card",
            "b-popover-anchor",
            "b-popover__body",
            "b-popover__footer",
            "b-popover__header",
            "b-popover__title",
            "b-stack",
            "b-switch"
          ],
          "markup": "<button class=\"b-btn\" popovertarget=\"p1\">Storage details</button>\n<div class=\"b-popover\" popover id=\"p1\">\n  <div class=\"b-popover__title\">Storage</div>\n  8.2 GB of 15 GB used. Attachments account for most of it \u2014 sweep\n  anything older than a year.\n</div>",
          "react": {
            "import": "import { Button, Popover } from \"barua-ui\";",
            "components": [
              "Button",
              "Popover"
            ],
            "root": "Button",
            "jsx": "<Button popovertarget=\"p1\">Storage details</Button>\n<Popover popover=\"\" id=\"p1\">\n  <div className=\"b-popover__title\">Storage</div>\n  8.2 GB of 15 GB used. Attachments account for most of it \u2014 sweep anything older than a year.\n</Popover>"
          },
          "variants": [
            {
              "id": "popover-anchored",
              "title": "Anchored fallback"
            },
            {
              "id": "popover-arrow",
              "title": "Arrowed popover"
            },
            {
              "id": "popover-card",
              "title": "Popover card"
            }
          ],
          "knobs": [
            "--b-avatar-size",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "tooltip",
          "title": "Tooltip",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#tooltip",
          "summary": "CSS-only. Add .b-tooltip-host and a data-tooltip label to any button or link; the tip fades in above after a 350ms delay so it never flickers during casual mouse travel. Use .b-tooltip-host--bottom when the control sits near the top of the viewport.",
          "classes": [
            "b-btn",
            "b-icon-btn",
            "b-link",
            "b-tooltip-host",
            "b-tooltip-host--bottom"
          ],
          "markup": "<button class=\"b-btn b-icon-btn b-tooltip-host\" data-tooltip=\"Archive conversation\" aria-label=\"Archive conversation\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\"><rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a1.5 1.5 0 0 0 1.5-1.5V8M8.5 11h3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n</button>\n<button class=\"b-btn b-tooltip-host\" data-tooltip=\"Sends in ~3 seconds\">Send later</button>\n<a class=\"b-link b-tooltip-host b-tooltip-host--bottom\" data-tooltip=\"Opens keyboard reference\" href=\"#tooltip\">Shortcuts</a>",
          "react": {
            "import": "import { Link, Tooltip } from \"barua-ui\";",
            "components": [
              "Link",
              "Tooltip"
            ],
            "root": "Tooltip",
            "jsx": "<Tooltip\n  className=\"b-btn b-icon-btn\"\n  data-tooltip=\"Archive conversation\"\n  aria-label=\"Archive conversation\"\n>\n  <svg viewBox=\"0 0 20 20\" fill=\"none\">\n    <rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    <path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a1.5 1.5 0 0 0 1.5-1.5V8M8.5 11h3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n  </svg>\n</Tooltip>\n<Tooltip className=\"b-btn\" data-tooltip=\"Sends in ~3 seconds\">Send later</Tooltip>\n<Link\n  className=\"b-tooltip-host b-tooltip-host--bottom\"\n  data-tooltip=\"Opens keyboard reference\"\n  href=\"#tooltip\"\n>\n  Shortcuts\n</Link>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "hover-card",
          "title": "Hover Card",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#hover-card",
          "summary": "A richer preview that appears when hovering or focusing a reference to a person or object \u2014 GitHub-style. Wrap the link in .b-hover-card-host ; the card fades in below after a 250ms delay and stays while hovered.",
          "classes": [
            "b-avatar",
            "b-avatar--lg",
            "b-badge",
            "b-hover-card",
            "b-hover-card-host",
            "b-link"
          ],
          "markup": "<div>\n  Assigned to\n  <span class=\"b-hover-card-host\">\n    <a class=\"b-link\" href=\"#hover-card\">@amina</a>\n    <div class=\"b-hover-card\">\n      <div style=\"display: flex; gap: 0.75rem; align-items: center;\">\n        <div class=\"b-avatar b-avatar--lg\">AO</div>\n        <div>\n          <strong>Amina Otieno</strong><br>\n          <span class=\"b-badge\">Platform team</span>\n        </div>\n      </div>\n      <p style=\"margin: 0.75rem 0 0;\">Nairobi \u00b7 joined 2021<br>412 threads \u00b7 38 shared labels</p>\n    </div>\n  </span>\n  for review.\n</div>",
          "react": {
            "import": "import { Avatar, Badge, HoverCard, HoverCardHost, Link } from \"barua-ui\";",
            "components": [
              "Avatar",
              "Badge",
              "HoverCard",
              "HoverCardHost",
              "Link"
            ],
            "root": "Avatar",
            "jsx": "<div>\n  Assigned to\n  <HoverCardHost>\n    <Link href=\"#hover-card\">@amina</Link>\n    <HoverCard>\n      <div style={{ display: \"flex\", gap: \"0.75rem\", alignItems: \"center\" }}>\n        <Avatar className=\"b-avatar--lg\">AO</Avatar>\n        <div>\n          <strong>Amina Otieno</strong>\n          <br />\n          <Badge>Platform team</Badge>\n        </div>\n      </div>\n      <p style={{ margin: \"0.75rem 0 0\" }}>\n        Nairobi \u00b7 joined 2021\n        <br />\n        412 threads \u00b7 38 shared labels\n      </p>\n    </HoverCard>\n  </HoverCardHost>\n  for review.\n</div>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "dropdown",
          "title": "Dropdown",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#dropdown",
          "summary": "Dropdowns belong to the menu family documented in Navigation : a zero-JS <details class=\"b-dropdown\"> disclosure holding a .b-menu . One compact demo here for completeness.",
          "classes": [
            "b-btn",
            "b-dropdown",
            "b-menu",
            "b-menu__item"
          ],
          "markup": "<details class=\"b-dropdown\">\n  <summary class=\"b-btn\">Sort by\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </summary>\n  <ul class=\"b-menu\">\n    <li><button class=\"b-menu__item is-active\">Newest first</button></li>\n    <li><button class=\"b-menu__item\">Oldest first</button></li>\n    <li><button class=\"b-menu__item\">Sender A\u2013Z</button></li>\n  </ul>\n</details>",
          "react": {
            "import": "import { Button, Dropdown, Menu } from \"barua-ui\";",
            "components": [
              "Button",
              "Dropdown",
              "Menu"
            ],
            "root": "Dropdown",
            "jsx": "<Dropdown>\n  <Button>\n    Sort by\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\">\n      <path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Button>\n  <Menu>\n    <li>\n      <button className=\"b-menu__item is-active\">Newest first</button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\">Oldest first</button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\">Sender A\u2013Z</button>\n    </li>\n  </Menu>\n</Dropdown>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-disabled",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "context-menu",
          "title": "Context Menu",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#context-menu",
          "summary": "Right-click menus reuse .b-menu unchanged \u2014 see Navigation for menu items, shortcuts, separators and danger rows. Position it at the pointer with your own contextmenu handler; the surface is shown statically here.",
          "classes": [
            "b-menu",
            "b-menu__item",
            "b-menu__item--danger",
            "b-menu__separator",
            "b-menu__shortcut"
          ],
          "markup": "<ul class=\"b-menu\">\n  <li><button class=\"b-menu__item\">Reply<span class=\"b-menu__shortcut\">R</span></button></li>\n  <li><button class=\"b-menu__item\">Forward<span class=\"b-menu__shortcut\">F</span></button></li>\n  <li><button class=\"b-menu__item\">Mark as unread<span class=\"b-menu__shortcut\">\u21e7U</span></button></li>\n  <li><hr class=\"b-menu__separator\"></li>\n  <li><button class=\"b-menu__item b-menu__item--danger\">Delete<span class=\"b-menu__shortcut\">\u232b</span></button></li>\n</ul>",
          "react": {
            "import": "import { Menu, MenuSeparator } from \"barua-ui\";",
            "components": [
              "Menu",
              "MenuSeparator"
            ],
            "root": "Menu",
            "jsx": "<Menu>\n  <li>\n    <button className=\"b-menu__item\">\n      Reply\n      <span className=\"b-menu__shortcut\">R</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-menu__item\">\n      Forward\n      <span className=\"b-menu__shortcut\">F</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-menu__item\">\n      Mark as unread\n      <span className=\"b-menu__shortcut\">\u21e7U</span>\n    </button>\n  </li>\n  <li>\n    <MenuSeparator />\n  </li>\n  <li>\n    <button className=\"b-menu__item b-menu__item--danger\">\n      Delete\n      <span className=\"b-menu__shortcut\">\u232b</span>\n    </button>\n  </li>\n</Menu>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-disabled"
          ]
        },
        {
          "id": "lightbox",
          "title": "Lightbox",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#lightbox",
          "summary": "A borderless <dialog> that centers media over a near-black blurred backdrop, with a floating close control pinned to the top corner. Drop an <img> straight in \u2014 a gradient placeholder stands in for one here.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--glass",
            "b-btn--sm",
            "b-footnote",
            "b-headline",
            "b-lightbox",
            "b-lightbox__actions",
            "b-lightbox__caption",
            "b-lightbox__empty",
            "b-lightbox__frame",
            "b-modal__close"
          ],
          "markup": "<button class=\"b-btn\" data-b-dialog=\"#demo-lightbox\">View attachment</button>\n<dialog class=\"b-lightbox\" id=\"demo-lightbox\" aria-label=\"Attachment preview\">\n  <button class=\"b-modal__close\" data-b-dialog-close aria-label=\"Close\">\u2715</button>\n  <div style=\"width:640px;max-width:80vw;aspect-ratio:16/10;background:linear-gradient(135deg,var(--b-color-accent),var(--b-color-purple));border-radius:var(--b-radius-lg)\"></div>\n  <p class=\"b-lightbox__caption\">sunset-over-zanzibar.jpg \u00b7 4.2 MB</p>\n</dialog>",
          "react": {
            "import": "import { Button, Lightbox } from \"barua-ui\";",
            "components": [
              "Button",
              "Lightbox"
            ],
            "root": "Button",
            "jsx": "<Button data-b-dialog=\"#demo-lightbox\">View attachment</Button>\n<Lightbox id=\"demo-lightbox\" aria-label=\"Attachment preview\">\n  <button className=\"b-modal__close\" data-b-dialog-close=\"\" aria-label=\"Close\">\u2715</button>\n  <div\n    style={{ width: \"640px\", maxWidth: \"80vw\", aspectRatio: \"16/10\", background: \"linear-gradient(135deg,var(--b-color-accent),var(--b-color-purple))\", borderRadius: \"var(--b-radius-lg)\" }}\n  ></div>\n  <p className=\"b-lightbox__caption\">sunset-over-zanzibar.jpg \u00b7 4.2 MB</p>\n</Lightbox>"
          },
          "variants": [
            {
              "id": "file-preview",
              "title": "File preview (Quick Look)"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "fullscreen-overlay",
          "title": "Fullscreen Overlay",
          "category": "overlays",
          "url": "https://ui.barua.tz/docs/overlays.html#fullscreen-overlay",
          "summary": "Takes over the entire viewport for immersive tasks \u2014 composing, onboarding, distraction-free reading. A top bar keeps the exit visible at all times; the body scrolls independently beneath it.",
          "classes": [
            "b-btn",
            "b-btn--tinted",
            "b-fullscreen",
            "b-fullscreen__bar",
            "b-fullscreen__body",
            "b-modal__close",
            "b-modal__title"
          ],
          "markup": "<button class=\"b-btn b-btn--tinted\" data-b-dialog=\"#demo-fullscreen\">Enter focus mode</button>\n<dialog class=\"b-fullscreen\" id=\"demo-fullscreen\" aria-labelledby=\"demo-fullscreen-title\">\n  <div class=\"b-fullscreen__bar\">\n    <h2 class=\"b-modal__title\" id=\"demo-fullscreen-title\">Focus mode</h2>\n    <button class=\"b-modal__close\" data-b-dialog-close aria-label=\"Exit focus mode\">\u2715</button>\n  </div>\n  <div class=\"b-fullscreen__body\">\n    <p>Everything else fades away. Esc or the close control returns\n    you exactly where you left off, with focus restored to the\n    trigger.</p>\n  </div>\n</dialog>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"tinted\" data-b-dialog=\"#demo-fullscreen\">Enter focus mode</Button>\n<dialog\n  className=\"b-fullscreen\"\n  id=\"demo-fullscreen\"\n  aria-labelledby=\"demo-fullscreen-title\"\n>\n  <div className=\"b-fullscreen__bar\">\n    <h2 className=\"b-modal__title\" id=\"demo-fullscreen-title\">Focus mode</h2>\n    <button\n      className=\"b-modal__close\"\n      data-b-dialog-close=\"\"\n      aria-label=\"Exit focus mode\"\n    >\n      \u2715\n    </button>\n  </div>\n  <div className=\"b-fullscreen__body\">\n    <p>Everything else fades away. Esc or the close control returns you exactly where you left off, with focus restored to the trigger.</p>\n  </div>\n</dialog>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        }
      ]
    },
    {
      "id": "data-viz",
      "title": "Data visualization \u2014 CSS charts",
      "url": "https://ui.barua.tz/docs/data-viz.html",
      "components": [
        {
          "id": "chart-anatomy",
          "title": "Chart Anatomy",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#chart-anatomy",
          "summary": ".b-chart is the frame: a titled column that stacks .b-chart__title , a .b-chart__canvas (position-relative, so gridlines and tooltips can float inside it), and a .b-legend . Axes sit beside or below the canvas. Everything below is this one recipe, swapping the middle.",
          "classes": [
            "b-axis",
            "b-axis--y",
            "b-chart",
            "b-chart__canvas",
            "b-chart__title",
            "b-columns",
            "b-columns__bar",
            "b-gridlines",
            "b-legend",
            "b-legend__swatch"
          ],
          "markup": "<figure class=\"b-chart\" style=\"max-width: 30rem; width: 100%; margin: 0\" role=\"img\" aria-label=\"Column chart: messages delivered per day last week, peaking Thursday at 4,120.\">\n  <figcaption class=\"b-chart__title\">Messages delivered \u2014 last 7 days</figcaption>\n  <div style=\"display: grid; grid-template-columns: max-content 1fr; gap: var(--b-space-3)\">\n    <div class=\"b-axis b-axis--y\" style=\"padding-block-end: 1.4rem\" aria-hidden=\"true\">\n      <span>4k</span><span>2k</span><span>0</span>\n    </div>\n    <div class=\"b-chart__canvas\">\n      <div class=\"b-gridlines\" style=\"inset-block-end: 1.4rem\" aria-hidden=\"true\"><i></i><i></i><i></i></div>\n      <div class=\"b-columns\">\n        <div class=\"b-columns__bar\" style=\"--v: 62%\" data-label=\"Mon\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 48%\" data-label=\"Tue\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 71%\" data-label=\"Wed\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 88%\" data-label=\"Thu\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 76%\" data-label=\"Fri\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 34%\" data-label=\"Sat\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 26%\" data-label=\"Sun\"></div>\n      </div>\n    </div>\n  </div>\n  <ul class=\"b-legend\">\n    <li><span class=\"b-legend__swatch\"></span>Delivered</li>\n  </ul>\n</figure>",
          "react": {
            "import": "import { Axis, Chart, Columns, GridLines, Legend } from \"barua-ui\";",
            "components": [
              "Axis",
              "Chart",
              "Columns",
              "GridLines",
              "Legend"
            ],
            "root": "Chart",
            "jsx": "<Chart\n  style={{ maxWidth: \"30rem\", width: \"100%\", margin: \"0\" }}\n  role=\"img\"\n  aria-label=\"Column chart: messages delivered per day last week, peaking Thursday at 4,120.\"\n>\n  <figcaption className=\"b-chart__title\">Messages delivered \u2014 last 7 days</figcaption>\n  <div\n    style={{ display: \"grid\", gridTemplateColumns: \"max-content 1fr\", gap: \"var(--b-space-3)\" }}\n  >\n    <Axis\n      className=\"b-axis--y\"\n      style={{ paddingBlockEnd: \"1.4rem\" }}\n      aria-hidden=\"true\"\n    >\n      <span>4k</span>\n      <span>2k</span>\n      <span>0</span>\n    </Axis>\n    <div className=\"b-chart__canvas\">\n      <GridLines style={{ insetBlockEnd: \"1.4rem\" }} aria-hidden=\"true\">\n        <i></i>\n        <i></i>\n        <i></i>\n      </GridLines>\n      <Columns>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"62%\" }} data-label=\"Mon\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"48%\" }} data-label=\"Tue\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"71%\" }} data-label=\"Wed\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"88%\" }} data-label=\"Thu\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"76%\" }} data-label=\"Fri\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"34%\" }} data-label=\"Sat\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"26%\" }} data-label=\"Sun\"></div>\n      </Columns>\n    </div>\n  </div>\n  <Legend>\n    <li>\n      <span className=\"b-legend__swatch\"></span>\n      Delivered\n    </li>\n  </Legend>\n</Chart>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-column-w",
            "--b-pie",
            "--b-pie-size",
            "--v"
          ]
        },
        {
          "id": "column-chart",
          "title": "Column Chart",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#column-chart",
          "summary": ".b-columns lays vertical bars on a flex baseline. Each .b-columns__bar takes its height from --v (a percentage of the chart height, --b-chart-h , default 10rem) and its x-label from data-label . Recolor any bar with --b-chart-color \u2014 here Thursday's peak.",
          "classes": [
            "b-chart",
            "b-columns",
            "b-columns--rounded",
            "b-columns__bar",
            "b-legend",
            "b-legend__swatch"
          ],
          "markup": "<div class=\"b-columns\" style=\"max-width: 30rem; width: 100%\">\n  <div class=\"b-columns__bar\" style=\"--v: 62%\" data-label=\"Mon\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 45%\" data-label=\"Tue\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 70%\" data-label=\"Wed\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 84%; --b-chart-color: var(--b-chart-4)\" data-label=\"Thu\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 58%\" data-label=\"Fri\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 32%\" data-label=\"Sat\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 24%\" data-label=\"Sun\"></div>\n</div>",
          "react": {
            "import": "import { Columns } from \"barua-ui\";",
            "components": [
              "Columns"
            ],
            "root": "Columns",
            "jsx": "<Columns style={{ maxWidth: \"30rem\", width: \"100%\" }}>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"62%\" }} data-label=\"Mon\"></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"45%\" }} data-label=\"Tue\"></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"70%\" }} data-label=\"Wed\"></div>\n  <div\n    className=\"b-columns__bar\"\n    style={{ \"--v\": \"84%\", \"--b-chart-color\": \"var(--b-chart-4)\" }}\n    data-label=\"Thu\"\n  ></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"58%\" }} data-label=\"Fri\"></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"32%\" }} data-label=\"Sat\"></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"24%\" }} data-label=\"Sun\"></div>\n</Columns>"
          },
          "variants": [
            {
              "id": "column-chart-rounded",
              "title": "Rounded"
            },
            {
              "id": "column-chart-stacked",
              "title": "Stacked segments"
            }
          ],
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-column-w",
            "--b-pie",
            "--b-pie-size",
            "--v"
          ]
        },
        {
          "id": "bar-chart",
          "title": "Bar Chart",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#bar-chart",
          "summary": "Horizontal bars for ranked categories with long labels. Each .b-bars__row is a three-column grid: label, track, value. Fill width comes from --v ; widen the label column with --b-bars-label-w when city names need room.",
          "classes": [
            "b-bars",
            "b-bars__label",
            "b-bars__row",
            "b-bars__track",
            "b-bars__value"
          ],
          "markup": "<div class=\"b-bars\" style=\"max-width: 30rem; width: 100%; --b-bars-label-w: 7.5rem\">\n  <div class=\"b-bars__row\">\n    <span class=\"b-bars__label\">Dar es Salaam</span>\n    <div class=\"b-bars__track\"><i style=\"--v: 90%\"></i></div>\n    <span class=\"b-bars__value\">$120k</span>\n  </div>\n  <div class=\"b-bars__row\">\n    <span class=\"b-bars__label\">Nairobi</span>\n    <div class=\"b-bars__track\"><i style=\"--v: 75%\"></i></div>\n    <span class=\"b-bars__value\">$100k</span>\n  </div>\n  <div class=\"b-bars__row\">\n    <span class=\"b-bars__label\">Kampala</span>\n    <div class=\"b-bars__track\"><i style=\"--v: 54%\"></i></div>\n    <span class=\"b-bars__value\">$72k</span>\n  </div>\n  <div class=\"b-bars__row\">\n    <span class=\"b-bars__label\">Kigali</span>\n    <div class=\"b-bars__track\"><i style=\"--v: 42%\"></i></div>\n    <span class=\"b-bars__value\">$56k</span>\n  </div>\n  <div class=\"b-bars__row\">\n    <span class=\"b-bars__label\">Zanzibar</span>\n    <div class=\"b-bars__track\"><i style=\"--v: 27%\"></i></div>\n    <span class=\"b-bars__value\">$36k</span>\n  </div>\n</div>",
          "react": {
            "import": "import { Bars } from \"barua-ui\";",
            "components": [
              "Bars"
            ],
            "root": "Bars",
            "jsx": "<Bars\n  style={{ maxWidth: \"30rem\", width: \"100%\", \"--b-bars-label-w\": \"7.5rem\" }}\n>\n  <div className=\"b-bars__row\">\n    <span className=\"b-bars__label\">Dar es Salaam</span>\n    <div className=\"b-bars__track\">\n      <i style={{ \"--v\": \"90%\" }}></i>\n    </div>\n    <span className=\"b-bars__value\">$120k</span>\n  </div>\n  <div className=\"b-bars__row\">\n    <span className=\"b-bars__label\">Nairobi</span>\n    <div className=\"b-bars__track\">\n      <i style={{ \"--v\": \"75%\" }}></i>\n    </div>\n    <span className=\"b-bars__value\">$100k</span>\n  </div>\n  <div className=\"b-bars__row\">\n    <span className=\"b-bars__label\">Kampala</span>\n    <div className=\"b-bars__track\">\n      <i style={{ \"--v\": \"54%\" }}></i>\n    </div>\n    <span className=\"b-bars__value\">$72k</span>\n  </div>\n  <div className=\"b-bars__row\">\n    <span className=\"b-bars__label\">Kigali</span>\n    <div className=\"b-bars__track\">\n      <i style={{ \"--v\": \"42%\" }}></i>\n    </div>\n    <span className=\"b-bars__value\">$56k</span>\n  </div>\n  <div className=\"b-bars__row\">\n    <span className=\"b-bars__label\">Zanzibar</span>\n    <div className=\"b-bars__track\">\n      <i style={{ \"--v\": \"27%\" }}></i>\n    </div>\n    <span className=\"b-bars__value\">$36k</span>\n  </div>\n</Bars>"
          },
          "knobs": [
            "--b-bars-label-w",
            "--b-chart-color",
            "--v"
          ]
        },
        {
          "id": "line-chart",
          "title": "Line Chart",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#line-chart",
          "summary": "Lines are plain inline SVG \u2014 you own the coordinates, the stylesheet owns the look. Give the polyline path class=\"b-series\" inside an svg.b-line-svg ; add dashed .b-svg-grid lines and .b-svg-axis-label texts. The stroke stays 2px at any size thanks to vector-effect: non-scaling-stroke .",
          "classes": [
            "b-chart",
            "b-chart__title",
            "b-line-svg",
            "b-series",
            "b-svg-axis-label",
            "b-svg-grid"
          ],
          "markup": "<div class=\"b-chart\" style=\"max-width: 30rem; width: 100%\">\n  <div class=\"b-chart__title\">New subscribers \u2014 six months</div>\n  <svg class=\"b-line-svg\" viewBox=\"0 0 300 120\" role=\"img\" aria-label=\"Line chart: new subscribers rising from about 1,200 in March to 4,800 in August, with a dip in May.\">\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"10\" x2=\"300\" y2=\"10\"/>\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"50\" x2=\"300\" y2=\"50\"/>\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"90\" x2=\"300\" y2=\"90\"/>\n    <path class=\"b-series\" d=\"M10 84 L66 66 L122 72 L178 40 L234 48 L290 14\"/>\n    <text class=\"b-svg-axis-label\" x=\"10\" y=\"112\" text-anchor=\"middle\">Mar</text>\n    <text class=\"b-svg-axis-label\" x=\"66\" y=\"112\" text-anchor=\"middle\">Apr</text>\n    <text class=\"b-svg-axis-label\" x=\"122\" y=\"112\" text-anchor=\"middle\">May</text>\n    <text class=\"b-svg-axis-label\" x=\"178\" y=\"112\" text-anchor=\"middle\">Jun</text>\n    <text class=\"b-svg-axis-label\" x=\"234\" y=\"112\" text-anchor=\"middle\">Jul</text>\n    <text class=\"b-svg-axis-label\" x=\"290\" y=\"112\" text-anchor=\"middle\">Aug</text>\n  </svg>\n</div>",
          "react": {
            "import": "import { Chart, LineChart } from \"barua-ui\";",
            "components": [
              "Chart",
              "LineChart"
            ],
            "root": "Chart",
            "jsx": "<Chart style={{ maxWidth: \"30rem\", width: \"100%\" }}>\n  <div className=\"b-chart__title\">New subscribers \u2014 six months</div>\n  <LineChart\n    viewBox=\"0 0 300 120\"\n    role=\"img\"\n    aria-label=\"Line chart: new subscribers rising from about 1,200 in March to 4,800 in August, with a dip in May.\"\n  >\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"10\" x2=\"300\" y2=\"10\" />\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"50\" x2=\"300\" y2=\"50\" />\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"90\" x2=\"300\" y2=\"90\" />\n    <path className=\"b-series\" d=\"M10 84 L66 66 L122 72 L178 40 L234 48 L290 14\" />\n    <text className=\"b-svg-axis-label\" x=\"10\" y=\"112\" textAnchor=\"middle\">Mar</text>\n    <text className=\"b-svg-axis-label\" x=\"66\" y=\"112\" textAnchor=\"middle\">Apr</text>\n    <text className=\"b-svg-axis-label\" x=\"122\" y=\"112\" textAnchor=\"middle\">May</text>\n    <text className=\"b-svg-axis-label\" x=\"178\" y=\"112\" textAnchor=\"middle\">Jun</text>\n    <text className=\"b-svg-axis-label\" x=\"234\" y=\"112\" textAnchor=\"middle\">Jul</text>\n    <text className=\"b-svg-axis-label\" x=\"290\" y=\"112\" textAnchor=\"middle\">Aug</text>\n  </LineChart>\n</Chart>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-pie",
            "--b-pie-size"
          ]
        },
        {
          "id": "area-chart",
          "title": "Area Chart",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#area-chart",
          "summary": "An svg.b-area-svg with two paths: a closed .b-area-fill underneath (same points, dropped to the baseline) and the .b-series stroke on top. The fill is an 18% tint of the series color, so one --b-chart-color on the <svg> retints both.",
          "classes": [
            "b-area-fill",
            "b-area-svg",
            "b-chart",
            "b-chart__title",
            "b-series",
            "b-svg-axis-label",
            "b-svg-grid"
          ],
          "markup": "<div class=\"b-chart\" style=\"max-width: 30rem; width: 100%\">\n  <div class=\"b-chart__title\">Weekly active readers</div>\n  <svg class=\"b-area-svg\" viewBox=\"0 0 300 120\" style=\"--b-chart-color: var(--b-chart-2)\" role=\"img\" aria-label=\"Area chart: weekly active readers growing from 3,100 in March to 7,400 in August.\">\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"10\" x2=\"300\" y2=\"10\"/>\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"50\" x2=\"300\" y2=\"50\"/>\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"90\" x2=\"300\" y2=\"90\"/>\n    <path class=\"b-area-fill\" d=\"M10 78 L66 62 L122 68 L178 36 L234 44 L290 16 L290 90 L10 90 Z\"/>\n    <path class=\"b-series\" d=\"M10 78 L66 62 L122 68 L178 36 L234 44 L290 16\"/>\n    <text class=\"b-svg-axis-label\" x=\"10\" y=\"112\" text-anchor=\"middle\">Mar</text>\n    <text class=\"b-svg-axis-label\" x=\"122\" y=\"112\" text-anchor=\"middle\">May</text>\n    <text class=\"b-svg-axis-label\" x=\"234\" y=\"112\" text-anchor=\"middle\">Jul</text>\n  </svg>\n</div>",
          "react": {
            "import": "import { AreaChart, Chart } from \"barua-ui\";",
            "components": [
              "AreaChart",
              "Chart"
            ],
            "root": "Chart",
            "jsx": "<Chart style={{ maxWidth: \"30rem\", width: \"100%\" }}>\n  <div className=\"b-chart__title\">Weekly active readers</div>\n  <AreaChart\n    viewBox=\"0 0 300 120\"\n    style={{ \"--b-chart-color\": \"var(--b-chart-2)\" }}\n    role=\"img\"\n    aria-label=\"Area chart: weekly active readers growing from 3,100 in March to 7,400 in August.\"\n  >\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"10\" x2=\"300\" y2=\"10\" />\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"50\" x2=\"300\" y2=\"50\" />\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"90\" x2=\"300\" y2=\"90\" />\n    <path className=\"b-area-fill\" d=\"M10 78 L66 62 L122 68 L178 36 L234 44 L290 16 L290 90 L10 90 Z\" />\n    <path className=\"b-series\" d=\"M10 78 L66 62 L122 68 L178 36 L234 44 L290 16\" />\n    <text className=\"b-svg-axis-label\" x=\"10\" y=\"112\" textAnchor=\"middle\">Mar</text>\n    <text className=\"b-svg-axis-label\" x=\"122\" y=\"112\" textAnchor=\"middle\">May</text>\n    <text className=\"b-svg-axis-label\" x=\"234\" y=\"112\" textAnchor=\"middle\">Jul</text>\n  </AreaChart>\n</Chart>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-pie",
            "--b-pie-size"
          ]
        },
        {
          "id": "pie-chart",
          "title": "Pie Chart",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#pie-chart",
          "summary": "A single div and a conic-gradient . Pass color stops through --b-pie as color start end triplets covering 0\u2013100%; size it with --b-pie-size (default 9rem). Always pair with a legend \u2014 the wedges carry no text of their own.",
          "classes": [
            "b-legend",
            "b-legend__swatch",
            "b-pie"
          ],
          "markup": "<div class=\"b-pie\" style=\"--b-pie: var(--b-chart-1) 0 45%, var(--b-chart-2) 45% 78%, var(--b-chart-3) 78% 100%\" role=\"img\" aria-label=\"Pie chart: mobile 45%, desktop 33%, tablet 22%.\"></div>\n<ul class=\"b-legend\" style=\"flex-direction: column\">\n  <li><span class=\"b-legend__swatch\"></span>Mobile \u00b7 45%</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-2)\"></span>Desktop \u00b7 33%</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-3)\"></span>Tablet \u00b7 22%</li>\n</ul>",
          "react": {
            "import": "import { Legend } from \"barua-ui\";",
            "components": [
              "Legend"
            ],
            "root": "Legend",
            "jsx": "<div\n  className=\"b-pie\"\n  style={{ \"--b-pie\": \"var(--b-chart-1) 0 45%, var(--b-chart-2) 45% 78%, var(--b-chart-3) 78% 100%\" }}\n  role=\"img\"\n  aria-label=\"Pie chart: mobile 45%, desktop 33%, tablet 22%.\"\n></div>\n<Legend style={{ flexDirection: \"column\" }}>\n  <li>\n    <span className=\"b-legend__swatch\"></span>\n    Mobile \u00b7 45%\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-2)\" }}\n    ></span>\n    Desktop \u00b7 33%\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-3)\" }}\n    ></span>\n    Tablet \u00b7 22%\n  </li>\n</Legend>"
          },
          "knobs": [
            "--b-donut-hole",
            "--b-pie",
            "--b-pie-size"
          ]
        },
        {
          "id": "donut-chart",
          "title": "Donut Chart",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#donut-chart",
          "summary": "Wrap a .b-pie in .b-donut : a radial mask punches the hole and .b-donut__center stacks on the same grid cell for a headline stat. The hole radius is --b-donut-hole , default 62% \u2014 raise it for a thinner ring.",
          "classes": [
            "b-donut",
            "b-donut__center",
            "b-legend",
            "b-legend__swatch",
            "b-pie",
            "b-stat__label",
            "b-stat__value"
          ],
          "markup": "<div class=\"b-donut\">\n  <div class=\"b-pie\" style=\"--b-pie: var(--b-chart-1) 0 52%, var(--b-chart-4) 52% 81%, var(--b-chart-6) 81% 100%\" role=\"img\" aria-label=\"Donut chart of 18,200 sends: newsletter 52%, product updates 29%, digests 19%.\"></div>\n  <div class=\"b-donut__center\">\n    <div class=\"b-stat__value\">18.2k</div>\n    <div class=\"b-stat__label\">sends</div>\n  </div>\n</div>\n<ul class=\"b-legend\" style=\"flex-direction: column\">\n  <li><span class=\"b-legend__swatch\"></span>Newsletter \u00b7 52%</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-4)\"></span>Product updates \u00b7 29%</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-6)\"></span>Digests \u00b7 19%</li>\n</ul>",
          "react": {
            "import": "import { Donut, Legend } from \"barua-ui\";",
            "components": [
              "Donut",
              "Legend"
            ],
            "root": "Donut",
            "jsx": "<Donut>\n  <div\n    className=\"b-pie\"\n    style={{ \"--b-pie\": \"var(--b-chart-1) 0 52%, var(--b-chart-4) 52% 81%, var(--b-chart-6) 81% 100%\" }}\n    role=\"img\"\n    aria-label=\"Donut chart of 18,200 sends: newsletter 52%, product updates 29%, digests 19%.\"\n  ></div>\n  <div className=\"b-donut__center\">\n    <div className=\"b-stat__value\">18.2k</div>\n    <div className=\"b-stat__label\">sends</div>\n  </div>\n</Donut>\n<Legend style={{ flexDirection: \"column\" }}>\n  <li>\n    <span className=\"b-legend__swatch\"></span>\n    Newsletter \u00b7 52%\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-4)\" }}\n    ></span>\n    Product updates \u00b7 29%\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-6)\" }}\n    ></span>\n    Digests \u00b7 19%\n  </li>\n</Legend>"
          },
          "knobs": [
            "--b-donut-hole",
            "--b-pie",
            "--b-pie-size"
          ]
        },
        {
          "id": "scatter-plot",
          "title": "Scatter Plot",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#scatter-plot",
          "summary": "An svg.b-scatter-svg full of circle.b-dot elements \u2014 you supply cx , cy and r . Dots default to --b-chart-1 ; put --b-chart-color on individual circles for a second series. Session length against pages read, mobile vs desktop:",
          "classes": [
            "b-chart",
            "b-chart__title",
            "b-dot",
            "b-legend",
            "b-legend__swatch",
            "b-scatter-svg",
            "b-svg-axis-label",
            "b-svg-grid"
          ],
          "markup": "<div class=\"b-chart\" style=\"max-width: 30rem; width: 100%\">\n  <div class=\"b-chart__title\">Session length vs pages read</div>\n  <svg class=\"b-scatter-svg\" viewBox=\"0 0 300 140\" role=\"img\" aria-label=\"Scatter plot: desktop sessions read more pages than mobile at every session length.\">\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"20\" x2=\"300\" y2=\"20\"/>\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"70\" x2=\"300\" y2=\"70\"/>\n    <line class=\"b-svg-grid\" x1=\"0\" y1=\"120\" x2=\"300\" y2=\"120\"/>\n    <circle class=\"b-dot\" cx=\"30\" cy=\"110\" r=\"4\"/>\n    <circle class=\"b-dot\" cx=\"55\" cy=\"96\" r=\"4\"/>\n    <circle class=\"b-dot\" cx=\"80\" cy=\"100\" r=\"4\"/>\n    <circle class=\"b-dot\" cx=\"110\" cy=\"78\" r=\"4\"/>\n    <circle class=\"b-dot\" cx=\"140\" cy=\"84\" r=\"4\"/>\n    <circle class=\"b-dot\" cx=\"170\" cy=\"62\" r=\"4\"/>\n    <circle class=\"b-dot\" cx=\"60\" cy=\"72\" r=\"4\" style=\"--b-chart-color: var(--b-chart-4)\"/>\n    <circle class=\"b-dot\" cx=\"95\" cy=\"56\" r=\"4\" style=\"--b-chart-color: var(--b-chart-4)\"/>\n    <circle class=\"b-dot\" cx=\"130\" cy=\"46\" r=\"4\" style=\"--b-chart-color: var(--b-chart-4)\"/>\n    <circle class=\"b-dot\" cx=\"180\" cy=\"34\" r=\"4\" style=\"--b-chart-color: var(--b-chart-4)\"/>\n    <circle class=\"b-dot\" cx=\"220\" cy=\"40\" r=\"4\" style=\"--b-chart-color: var(--b-chart-4)\"/>\n    <circle class=\"b-dot\" cx=\"260\" cy=\"22\" r=\"4\" style=\"--b-chart-color: var(--b-chart-4)\"/>\n    <text class=\"b-svg-axis-label\" x=\"0\" y=\"136\">0 min</text>\n ",
          "react": {
            "import": "import { Chart, ScatterChart } from \"barua-ui\";",
            "components": [
              "Chart",
              "ScatterChart"
            ],
            "root": "Chart",
            "jsx": "<Chart style={{ maxWidth: \"30rem\", width: \"100%\" }}>\n  <div className=\"b-chart__title\">Session length vs pages read</div>\n  <ScatterChart\n    viewBox=\"0 0 300 140\"\n    role=\"img\"\n    aria-label=\"Scatter plot: desktop sessions read more pages than mobile at every session length.\"\n  >\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"20\" x2=\"300\" y2=\"20\" />\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"70\" x2=\"300\" y2=\"70\" />\n    <line className=\"b-svg-grid\" x1=\"0\" y1=\"120\" x2=\"300\" y2=\"120\" />\n    <circle className=\"b-dot\" cx=\"30\" cy=\"110\" r=\"4\" />\n    <circle className=\"b-dot\" cx=\"55\" cy=\"96\" r=\"4\" />\n    <circle className=\"b-dot\" cx=\"80\" cy=\"100\" r=\"4\" />\n    <circle className=\"b-dot\" cx=\"110\" cy=\"78\" r=\"4\" />\n    <circle className=\"b-dot\" cx=\"140\" cy=\"84\" r=\"4\" />\n    <circle className=\"b-dot\" cx=\"170\" cy=\"62\" r=\"4\" />\n    <circle className=\"b-dot\" cx=\"60\" cy=\"72\" r=\"4\" style={{ \"--b-chart-color\": \"var(--b-chart-4)\" }} />\n    <circle className=\"b-dot\" cx=\"95\" cy=\"56\" r=\"4\" style={{ \"--b-chart-color\": \"var(--b-chart-4)\" }} />\n    <circle className=\"b-dot\" cx=\"130\" cy=\"46\" r=\"4\" style={{ \"--b-chart-color\": \"var(--b-chart-4)\" }} />\n    <circle className=\"b-dot\" cx=\"180\" cy=\"34\" r=\"4\" style={{ \"--b-chart-color\": \"var(--b-chart-4)\" }} />\n    <circle className=\"b-dot\" cx=\"220\" cy=\"40\" r=\"4\" style={{ \"--b-chart-color\": \"var(--b-chart-4)\" }} />\n    <circle className=\"b-dot\" cx=\"260\" cy=\"22\" r=\"4\" style={{ \"--b-chart-color\": \"var(--b-chart-4)\" }} />\n    <text className=\"b-svg-axis-label\" x=\"0\" y=\"136\">0 min</text>\n  </ScatterChart>\n</Chart>"
          },
          "variants": [
            {
              "id": "data-points",
              "title": "Data points"
            }
          ],
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-pie",
            "--b-pie-size"
          ]
        },
        {
          "id": "radar-chart",
          "title": "Radar Chart",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#radar-chart",
          "summary": "Concentric polygon.b-web rings and line.b-web spokes form the web; the filled polygon.b-series plots the values. Five axes on a 200\u00d7200 viewBox, center (100,100), outer radius 80.",
          "classes": [
            "b-radar-svg",
            "b-series",
            "b-svg-axis-label",
            "b-web"
          ],
          "markup": "<svg class=\"b-radar-svg\" viewBox=\"0 0 200 200\" role=\"img\" aria-label=\"Radar chart of team coverage: design 90%, code 75%, data 60%, ops 80%, docs 70%.\">\n  <polygon class=\"b-web\" points=\"100,20 176,75 147,165 53,165 24,75\"/>\n  <polygon class=\"b-web\" points=\"100,60 138,88 124,132 76,132 62,88\"/>\n  <line class=\"b-web\" x1=\"100\" y1=\"100\" x2=\"100\" y2=\"20\"/>\n  <line class=\"b-web\" x1=\"100\" y1=\"100\" x2=\"176\" y2=\"75\"/>\n  <line class=\"b-web\" x1=\"100\" y1=\"100\" x2=\"147\" y2=\"165\"/>\n  <line class=\"b-web\" x1=\"100\" y1=\"100\" x2=\"53\" y2=\"165\"/>\n  <line class=\"b-web\" x1=\"100\" y1=\"100\" x2=\"24\" y2=\"75\"/>\n  <polygon class=\"b-series\" points=\"100,28 157,81 128,139 62,152 47,83\"/>\n  <text class=\"b-svg-axis-label\" x=\"100\" y=\"12\" text-anchor=\"middle\">Design</text>\n  <text class=\"b-svg-axis-label\" x=\"182\" y=\"72\" text-anchor=\"start\">Code</text>\n  <text class=\"b-svg-axis-label\" x=\"152\" y=\"180\" text-anchor=\"middle\">Data</text>\n  <text class=\"b-svg-axis-label\" x=\"48\" y=\"180\" text-anchor=\"middle\">Ops</text>\n  <text class=\"b-svg-axis-label\" x=\"18\" y=\"72\" text-anchor=\"end\">Docs</text>\n</svg>",
          "react": {
            "import": "import { RadarChart, Web } from \"barua-ui\";",
            "components": [
              "RadarChart",
              "Web"
            ],
            "root": "RadarChart",
            "jsx": "<RadarChart\n  viewBox=\"0 0 200 200\"\n  role=\"img\"\n  aria-label=\"Radar chart of team coverage: design 90%, code 75%, data 60%, ops 80%, docs 70%.\"\n>\n  <Web points=\"100,20 176,75 147,165 53,165 24,75\" />\n  <Web points=\"100,60 138,88 124,132 76,132 62,88\" />\n  <Web x1=\"100\" y1=\"100\" x2=\"100\" y2=\"20\" />\n  <Web x1=\"100\" y1=\"100\" x2=\"176\" y2=\"75\" />\n  <Web x1=\"100\" y1=\"100\" x2=\"147\" y2=\"165\" />\n  <Web x1=\"100\" y1=\"100\" x2=\"53\" y2=\"165\" />\n  <Web x1=\"100\" y1=\"100\" x2=\"24\" y2=\"75\" />\n  <polygon className=\"b-series\" points=\"100,28 157,81 128,139 62,152 47,83\" />\n  <text className=\"b-svg-axis-label\" x=\"100\" y=\"12\" textAnchor=\"middle\">Design</text>\n  <text className=\"b-svg-axis-label\" x=\"182\" y=\"72\" textAnchor=\"start\">Code</text>\n  <text className=\"b-svg-axis-label\" x=\"152\" y=\"180\" textAnchor=\"middle\">Data</text>\n  <text className=\"b-svg-axis-label\" x=\"48\" y=\"180\" textAnchor=\"middle\">Ops</text>\n  <text className=\"b-svg-axis-label\" x=\"18\" y=\"72\" textAnchor=\"end\">Docs</text>\n</RadarChart>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h"
          ]
        },
        {
          "id": "heatmap",
          "title": "Heatmap",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#heatmap",
          "summary": "A CSS grid of <i> cells. Column count comes from --b-heatmap-cols ; each cell's --v is an intensity from 0 to 1, mixed into the series color with color-mix() \u2014 0 renders the empty fill, 1 the full --b-chart-color . Twelve months of commits, one row per week of the month:",
          "classes": [
            "b-axis",
            "b-chart",
            "b-heatmap"
          ],
          "markup": "<div class=\"b-chart\" style=\"max-width: 26rem; width: 100%\">\n  <div class=\"b-heatmap\" style=\"--b-heatmap-cols: 12\">\n    <i style=\"--v: 0.1\"></i><i style=\"--v: 0.2\"></i><i style=\"--v: 0.1\"></i><i style=\"--v: 0.3\"></i><i style=\"--v: 0.4\"></i><i style=\"--v: 0.5\"></i><i style=\"--v: 0.7\"></i><i style=\"--v: 0.8\"></i><i style=\"--v: 0.6\"></i><i style=\"--v: 0.4\"></i><i style=\"--v: 0.2\"></i><i style=\"--v: 0.1\"></i>\n    <i style=\"--v: 0.2\"></i><i style=\"--v: 0.1\"></i><i style=\"--v: 0.3\"></i><i style=\"--v: 0.4\"></i><i style=\"--v: 0.6\"></i><i style=\"--v: 0.7\"></i><i style=\"--v: 0.9\"></i><i style=\"--v: 1\"></i><i style=\"--v: 0.7\"></i><i style=\"--v: 0.5\"></i><i style=\"--v: 0.3\"></i><i style=\"--v: 0.1\"></i>\n    <i style=\"--v: 0\"></i><i style=\"--v: 0.2\"></i><i style=\"--v: 0.2\"></i><i style=\"--v: 0.5\"></i><i style=\"--v: 0.5\"></i><i style=\"--v: 0.8\"></i><i style=\"--v: 0.8\"></i><i style=\"--v: 0.9\"></i><i style=\"--v: 0.6\"></i><i style=\"--v: 0.4\"></i><i style=\"--v: 0.2\"></i><i style=\"--v: 0\"></i>\n    <i style=\"--v: 0.1\"></i><i style=\"--v: 0.3\"></i><i style=\"--v: 0.4\"></i><i style=\"--v: 0.4\"></i><i style=\"--v: 0.7\"></i><i style=\"--v: 0.6\"></i><i style=\"--v: 1\"></i><i style=\"--v: 0.8\"></i><i style=\"--v: 0.5\"></i><i style=\"--v: 0.3\"></i><i style=\"--v: 0.1\"></i><i style=\"--v: 0.2\"></i>\n  </div>\n  <div class=\"b-axis\">\n    <span>Jan</span><span>Jun</span><span>Dec</span>\n  </div>\n</div>",
          "react": {
            "import": "import { Axis, Chart, Heatmap } from \"barua-ui\";",
            "components": [
              "Axis",
              "Chart",
              "Heatmap"
            ],
            "root": "Chart",
            "jsx": "<Chart style={{ maxWidth: \"26rem\", width: \"100%\" }}>\n  <Heatmap style={{ \"--b-heatmap-cols\": \"12\" }}>\n    <i style={{ \"--v\": \"0.1\" }}></i>\n    <i style={{ \"--v\": \"0.2\" }}></i>\n    <i style={{ \"--v\": \"0.1\" }}></i>\n    <i style={{ \"--v\": \"0.3\" }}></i>\n    <i style={{ \"--v\": \"0.4\" }}></i>\n    <i style={{ \"--v\": \"0.5\" }}></i>\n    <i style={{ \"--v\": \"0.7\" }}></i>\n    <i style={{ \"--v\": \"0.8\" }}></i>\n    <i style={{ \"--v\": \"0.6\" }}></i>\n    <i style={{ \"--v\": \"0.4\" }}></i>\n    <i style={{ \"--v\": \"0.2\" }}></i>\n    <i style={{ \"--v\": \"0.1\" }}></i>\n    <i style={{ \"--v\": \"0.2\" }}></i>\n    <i style={{ \"--v\": \"0.1\" }}></i>\n    <i style={{ \"--v\": \"0.3\" }}></i>\n    <i style={{ \"--v\": \"0.4\" }}></i>\n    <i style={{ \"--v\": \"0.6\" }}></i>\n    <i style={{ \"--v\": \"0.7\" }}></i>\n    <i style={{ \"--v\": \"0.9\" }}></i>\n    <i style={{ \"--v\": \"1\" }}></i>\n    <i style={{ \"--v\": \"0.7\" }}></i>\n    <i style={{ \"--v\": \"0.5\" }}></i>\n    <i style={{ \"--v\": \"0.3\" }}></i>\n    <i style={{ \"--v\": \"0.1\" }}></i>\n    <i style={{ \"--v\": \"0\" }}></i>\n    <i style={{ \"--v\": \"0.2\" }}></i>\n    <i style={{ \"--v\": \"0.2\" }}></i>\n    <i style={{ \"--v\": \"0.5\" }}></i>\n    <i style={{ \"--v\": \"0.5\" }}></i>\n    <i style={{ \"--v\": \"0.8\" }}></i>\n    <i style={{ \"--v\": \"0.8\" }}></i>\n    <i style={{ \"--v\": \"0.9\" }}></i>\n    <i style={{ \"--v\": \"0.6\" }}></i>\n    <i style={{ \"--v\": \"0.4\" }}></i>\n    <i style={{ \"--v\": \"0.2\" }}></i>\n    <i style={{ \"--v\": \"0\" }}></i>\n    <i style={{ \"--v\": \"0.1\" }}></i>\n    <i style={{ \"--v\": \"0.3\" }}></i>\n    <i style={{ \"--v\": \"0.4\" }}></i>\n    <i style={{ \"--v\": \"0.4\" }}></i>\n    <i style={{ \"--v\": \"0.7\" }}></i>\n    <i style={{ \"--v\": \"0.6\" }}></i>\n    <i style={{ \"--v\": \"1\" }}></i>\n    <i style={{ \"--v\": \"0.8\" }}></i>\n    <i style={{ \"--v\": \"0.5\" }}></i>\n    <i style={{ \"--v\": \"0.3\" }}></i>\n    <i style={{ \"--v\": \"0.1\" }}></i>\n    <i style={{ \"--v\": \"0.2\" }}></i>\n  </Heatmap>\n  <Axis>\n    <span>Jan</span>\n    <span>Jun</span>\n    <span>Dec</span>\n  </Axis>\n</Chart>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-heatmap-cell",
            "--b-heatmap-cols",
            "--b-pie",
            "--b-pie-size",
            "--v"
          ]
        },
        {
          "id": "gauge",
          "title": "Gauge",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#gauge",
          "summary": "A half-donut for a single 0\u2013100 reading. Set --b-progress as a unitless number (here 68 \u2014 note the linear progress bar takes a percentage instead), size with --b-gauge-size , and recolor with --b-chart-color . The label hangs below the arc, so leave it some room.",
          "classes": [
            "b-gauge",
            "b-gauge__label",
            "b-gauge__value"
          ],
          "markup": "<div class=\"b-gauge\" style=\"--b-progress: 68\" role=\"img\" aria-label=\"Gauge: storage 68% used.\">\n  <div class=\"b-gauge__value\">68%</div>\n  <div class=\"b-gauge__label\">Storage used</div>\n</div>",
          "react": {
            "import": "import { Gauge } from \"barua-ui\";",
            "components": [
              "Gauge"
            ],
            "root": "Gauge",
            "jsx": "<Gauge\n  style={{ \"--b-progress\": \"68\" }}\n  role=\"img\"\n  aria-label=\"Gauge: storage 68% used.\"\n>\n  <div className=\"b-gauge__value\">68%</div>\n  <div className=\"b-gauge__label\">Storage used</div>\n</Gauge>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-gauge-size",
            "--b-progress",
            "--v"
          ]
        },
        {
          "id": "sparkline",
          "title": "Sparkline",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#sparkline",
          "summary": "A word-sized trend for stat cards and table cells: svg.b-sparkline stretches its single path across a 2rem-tall box ( preserveAspectRatio=\"none\" lets it fill; the stroke never distorts). Purely decorative \u2014 keep it aria-hidden and let the stat carry the numbers.",
          "classes": [
            "b-card",
            "b-card__body",
            "b-sparkline",
            "b-stat",
            "b-stat__delta",
            "b-stat__label",
            "b-stat__value"
          ],
          "markup": "<div class=\"b-card\" style=\"width: 100%; max-width: 14rem\">\n  <div class=\"b-card__body\">\n    <div class=\"b-stat\">\n      <span class=\"b-stat__label\">Messages sent</span>\n      <span class=\"b-stat__value\">12,480</span>\n      <span class=\"b-stat__delta is-up\">\u2191 8.2% this week</span>\n      <svg class=\"b-sparkline\" viewBox=\"0 0 100 24\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n        <path d=\"M0 18 L12 15 L24 16 L36 11 L48 13 L60 8 L72 10 L84 5 L100 3\"/>\n      </svg>\n    </div>\n  </div>\n</div>\n<div class=\"b-card\" style=\"width: 100%; max-width: 14rem\">\n  <div class=\"b-card__body\">\n    <div class=\"b-stat\">\n      <span class=\"b-stat__label\">Open rate</span>\n      <span class=\"b-stat__value\">38.4%</span>\n      <span class=\"b-stat__delta is-down\">\u2193 2.1 pts this week</span>\n      <svg class=\"b-sparkline\" viewBox=\"0 0 100 24\" preserveAspectRatio=\"none\" aria-hidden=\"true\" style=\"--b-chart-color: var(--b-chart-4)\">\n        <path d=\"M0 5 L12 8 L24 6 L36 11 L48 9 L60 14 L72 12 L84 17 L100 19\"/>\n      </svg>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Card, CardBody, Sparkline, Stat } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "Sparkline",
              "Stat"
            ],
            "root": "Card",
            "jsx": "<Card style={{ width: \"100%\", maxWidth: \"14rem\" }}>\n  <CardBody>\n    <Stat>\n      <span className=\"b-stat__label\">Messages sent</span>\n      <span className=\"b-stat__value\">12,480</span>\n      <span className=\"b-stat__delta is-up\">\u2191 8.2% this week</span>\n      <Sparkline viewBox=\"0 0 100 24\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n        <path d=\"M0 18 L12 15 L24 16 L36 11 L48 13 L60 8 L72 10 L84 5 L100 3\" />\n      </Sparkline>\n    </Stat>\n  </CardBody>\n</Card>\n<Card style={{ width: \"100%\", maxWidth: \"14rem\" }}>\n  <CardBody>\n    <Stat>\n      <span className=\"b-stat__label\">Open rate</span>\n      <span className=\"b-stat__value\">38.4%</span>\n      <span className=\"b-stat__delta is-down\">\u2193 2.1 pts this week</span>\n      <Sparkline\n        viewBox=\"0 0 100 24\"\n        preserveAspectRatio=\"none\"\n        aria-hidden=\"true\"\n        style={{ \"--b-chart-color\": \"var(--b-chart-4)\" }}\n      >\n        <path d=\"M0 5 L12 8 L24 6 L36 11 L48 9 L60 14 L72 12 L84 17 L100 19\" />\n      </Sparkline>\n    </Stat>\n  </CardBody>\n</Card>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-down",
            "is-up"
          ]
        },
        {
          "id": "progress-chart",
          "title": "Progress Chart",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#progress-chart",
          "summary": "Stacked .b-progress-chart__row s, each a __head (label left, value right) over a standard .b-progress bar from Feedback . Here --b-progress is a width percentage on the fill \u2014 96% , unit included.",
          "classes": [
            "b-progress",
            "b-progress-chart",
            "b-progress-chart__head",
            "b-progress-chart__row",
            "b-progress__fill"
          ],
          "markup": "<div class=\"b-progress-chart\" style=\"max-width: 24rem; width: 100%\">\n  <div class=\"b-progress-chart__row\">\n    <div class=\"b-progress-chart__head\"><span>Newsletter</span><span>96%</span></div>\n    <div class=\"b-progress\"><div class=\"b-progress__fill\" style=\"--b-progress: 96%\"></div></div>\n  </div>\n  <div class=\"b-progress-chart__row\">\n    <div class=\"b-progress-chart__head\"><span>Product updates</span><span>88%</span></div>\n    <div class=\"b-progress\"><div class=\"b-progress__fill\" style=\"--b-progress: 88%\"></div></div>\n  </div>\n  <div class=\"b-progress-chart__row\">\n    <div class=\"b-progress-chart__head\"><span>Onboarding series</span><span>72%</span></div>\n    <div class=\"b-progress\"><div class=\"b-progress__fill\" style=\"--b-progress: 72%\"></div></div>\n  </div>\n  <div class=\"b-progress-chart__row\">\n    <div class=\"b-progress-chart__head\"><span>Win-back</span><span>41%</span></div>\n    <div class=\"b-progress\"><div class=\"b-progress__fill\" style=\"--b-progress: 41%\"></div></div>\n  </div>\n</div>",
          "react": {
            "import": "import { Progress } from \"barua-ui\";",
            "components": [
              "Progress"
            ],
            "root": "Progress",
            "jsx": "<div\n  className=\"b-progress-chart\"\n  style={{ maxWidth: \"24rem\", width: \"100%\" }}\n>\n  <div className=\"b-progress-chart__row\">\n    <div className=\"b-progress-chart__head\">\n      <span>Newsletter</span>\n      <span>96%</span>\n    </div>\n    <Progress>\n      <div className=\"b-progress__fill\" style={{ \"--b-progress\": \"96%\" }}></div>\n    </Progress>\n  </div>\n  <div className=\"b-progress-chart__row\">\n    <div className=\"b-progress-chart__head\">\n      <span>Product updates</span>\n      <span>88%</span>\n    </div>\n    <Progress>\n      <div className=\"b-progress__fill\" style={{ \"--b-progress\": \"88%\" }}></div>\n    </Progress>\n  </div>\n  <div className=\"b-progress-chart__row\">\n    <div className=\"b-progress-chart__head\">\n      <span>Onboarding series</span>\n      <span>72%</span>\n    </div>\n    <Progress>\n      <div className=\"b-progress__fill\" style={{ \"--b-progress\": \"72%\" }}></div>\n    </Progress>\n  </div>\n  <div className=\"b-progress-chart__row\">\n    <div className=\"b-progress-chart__head\">\n      <span>Win-back</span>\n      <span>41%</span>\n    </div>\n    <Progress>\n      <div className=\"b-progress__fill\" style={{ \"--b-progress\": \"41%\" }}></div>\n    </Progress>\n  </div>\n</div>"
          },
          "knobs": [
            "--b-lg-inset",
            "--b-progress"
          ]
        },
        {
          "id": "legend",
          "title": "Legend",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#legend",
          "summary": "A wrapping ul.b-legend of swatch + label pairs. The .b-legend__swatch defaults to --b-chart-1 ; set the others inline. The six series tokens resolve to accent blue, teal, purple, orange, pink and green \u2014 and re-tune automatically in dark mode.",
          "classes": [
            "b-legend",
            "b-legend__swatch"
          ],
          "markup": "<ul class=\"b-legend\">\n  <li><span class=\"b-legend__swatch\"></span>Email</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-2)\"></span>Push</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-3)\"></span>In-app</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-4)\"></span>SMS</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-5)\"></span>Social</li>\n  <li><span class=\"b-legend__swatch\" style=\"background: var(--b-chart-6)\"></span>Webhooks</li>\n</ul>",
          "react": {
            "import": "import { Legend } from \"barua-ui\";",
            "components": [
              "Legend"
            ],
            "root": "Legend",
            "jsx": "<Legend>\n  <li>\n    <span className=\"b-legend__swatch\"></span>\n    Email\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-2)\" }}\n    ></span>\n    Push\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-3)\" }}\n    ></span>\n    In-app\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-4)\" }}\n    ></span>\n    SMS\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-5)\" }}\n    ></span>\n    Social\n  </li>\n  <li>\n    <span\n      className=\"b-legend__swatch\"\n      style={{ background: \"var(--b-chart-6)\" }}\n    ></span>\n    Webhooks\n  </li>\n</Legend>"
          }
        },
        {
          "id": "axis-gridlines",
          "title": "Axis & Gridlines",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#axis-gridlines",
          "summary": ".b-axis spreads tick labels across a row in tabular figures; .b-axis--y stacks them beside a canvas. .b-gridlines floats dashed rules through a position-relative canvas \u2014 one <i> per line. Columns reserve a 1.4rem label strip at the bottom, so give the gridlines inset-block-end: 1.4rem and the y-axis the same bottom padding to keep \u201c0\u201d on the baseline.",
          "classes": [
            "b-axis",
            "b-axis--y",
            "b-chart",
            "b-chart__canvas",
            "b-columns",
            "b-columns__bar",
            "b-gridlines"
          ],
          "markup": "<div class=\"b-chart\" style=\"max-width: 30rem; width: 100%\">\n  <div style=\"display: grid; grid-template-columns: max-content 1fr; gap: var(--b-space-3)\">\n    <div class=\"b-axis b-axis--y\" style=\"padding-block-end: 1.4rem\" aria-hidden=\"true\">\n      <span>600</span><span>300</span><span>0</span>\n    </div>\n    <div class=\"b-chart__canvas\">\n      <div class=\"b-gridlines\" style=\"inset-block-end: 1.4rem\" aria-hidden=\"true\"><i></i><i></i><i></i></div>\n      <div class=\"b-columns\">\n        <div class=\"b-columns__bar\" style=\"--v: 55%\" data-label=\"Mon\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 40%\" data-label=\"Tue\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 70%\" data-label=\"Wed\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 85%\" data-label=\"Thu\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 65%\" data-label=\"Fri\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 30%\" data-label=\"Sat\"></div>\n        <div class=\"b-columns__bar\" style=\"--v: 20%\" data-label=\"Sun\"></div>\n      </div>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Axis, Chart, Columns, GridLines } from \"barua-ui\";",
            "components": [
              "Axis",
              "Chart",
              "Columns",
              "GridLines"
            ],
            "root": "Chart",
            "jsx": "<Chart style={{ maxWidth: \"30rem\", width: \"100%\" }}>\n  <div\n    style={{ display: \"grid\", gridTemplateColumns: \"max-content 1fr\", gap: \"var(--b-space-3)\" }}\n  >\n    <Axis\n      className=\"b-axis--y\"\n      style={{ paddingBlockEnd: \"1.4rem\" }}\n      aria-hidden=\"true\"\n    >\n      <span>600</span>\n      <span>300</span>\n      <span>0</span>\n    </Axis>\n    <div className=\"b-chart__canvas\">\n      <GridLines style={{ insetBlockEnd: \"1.4rem\" }} aria-hidden=\"true\">\n        <i></i>\n        <i></i>\n        <i></i>\n      </GridLines>\n      <Columns>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"55%\" }} data-label=\"Mon\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"40%\" }} data-label=\"Tue\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"70%\" }} data-label=\"Wed\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"85%\" }} data-label=\"Thu\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"65%\" }} data-label=\"Fri\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"30%\" }} data-label=\"Sat\"></div>\n        <div className=\"b-columns__bar\" style={{ \"--v\": \"20%\" }} data-label=\"Sun\"></div>\n      </Columns>\n    </div>\n  </div>\n</Chart>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-column-w",
            "--b-pie",
            "--b-pie-size",
            "--v"
          ]
        },
        {
          "id": "chart-tooltip",
          "title": "Chart Tooltip",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#chart-tooltip",
          "summary": ".b-chart-tip is a floating value bubble for the nearest data point: absolutely positioned inside the relative .b-chart__canvas , self-centered above its anchor via translate , with a small caret. Barua ships the look only \u2014 tracking the pointer, picking the point and setting left / top is app-side JavaScript. Shown pinned over Thursday:",
          "classes": [
            "b-chart",
            "b-chart-tip",
            "b-chart__canvas",
            "b-columns",
            "b-columns__bar"
          ],
          "markup": "<div class=\"b-chart\" style=\"max-width: 30rem; width: 100%\">\n  <div class=\"b-chart__canvas\">\n    <div class=\"b-chart-tip\" style=\"left: 50%; top: 14%\">Thu \u00b7 4,120</div>\n    <div class=\"b-columns\">\n      <div class=\"b-columns__bar\" style=\"--v: 62%\" data-label=\"Mon\"></div>\n      <div class=\"b-columns__bar\" style=\"--v: 45%\" data-label=\"Tue\"></div>\n      <div class=\"b-columns__bar\" style=\"--v: 70%\" data-label=\"Wed\"></div>\n      <div class=\"b-columns__bar\" style=\"--v: 84%\" data-label=\"Thu\"></div>\n      <div class=\"b-columns__bar\" style=\"--v: 58%\" data-label=\"Fri\"></div>\n      <div class=\"b-columns__bar\" style=\"--v: 32%\" data-label=\"Sat\"></div>\n      <div class=\"b-columns__bar\" style=\"--v: 24%\" data-label=\"Sun\"></div>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Chart, ChartTip, Columns } from \"barua-ui\";",
            "components": [
              "Chart",
              "ChartTip",
              "Columns"
            ],
            "root": "Chart",
            "jsx": "<Chart style={{ maxWidth: \"30rem\", width: \"100%\" }}>\n  <div className=\"b-chart__canvas\">\n    <ChartTip style={{ left: \"50%\", top: \"14%\" }}>Thu \u00b7 4,120</ChartTip>\n    <Columns>\n      <div className=\"b-columns__bar\" style={{ \"--v\": \"62%\" }} data-label=\"Mon\"></div>\n      <div className=\"b-columns__bar\" style={{ \"--v\": \"45%\" }} data-label=\"Tue\"></div>\n      <div className=\"b-columns__bar\" style={{ \"--v\": \"70%\" }} data-label=\"Wed\"></div>\n      <div className=\"b-columns__bar\" style={{ \"--v\": \"84%\" }} data-label=\"Thu\"></div>\n      <div className=\"b-columns__bar\" style={{ \"--v\": \"58%\" }} data-label=\"Fri\"></div>\n      <div className=\"b-columns__bar\" style={{ \"--v\": \"32%\" }} data-label=\"Sat\"></div>\n      <div className=\"b-columns__bar\" style={{ \"--v\": \"24%\" }} data-label=\"Sun\"></div>\n    </Columns>\n  </div>\n</Chart>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-column-w",
            "--b-pie",
            "--b-pie-size",
            "--v"
          ]
        },
        {
          "id": "rule-mark",
          "title": "Rule Mark",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#rule-mark",
          "summary": "Swift Charts' RuleMark : a dashed goal or threshold line laid over any chart canvas. Position with bottom as a percentage of the scale; --accent recolors it for targets rather than limits.",
          "classes": [
            "b-columns",
            "b-columns__bar",
            "b-rule",
            "b-rule__label"
          ],
          "markup": "<div class=\"b-columns\" style=\"--b-chart-h: 9rem; max-width: 26rem; position: relative\">\n  <div class=\"b-rule\" style=\"bottom: calc(1.4rem + (9rem - 1.4rem) * 0.7)\"><span class=\"b-rule__label\">SLA 70%</span></div>\n  <div class=\"b-columns__bar\" style=\"--v: 48%\" data-label=\"Mon\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 64%\" data-label=\"Tue\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 82%\" data-label=\"Wed\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 58%\" data-label=\"Thu\"></div>\n  <div class=\"b-columns__bar\" style=\"--v: 74%\" data-label=\"Fri\"></div>\n</div>",
          "react": {
            "import": "import { Columns } from \"barua-ui\";",
            "components": [
              "Columns"
            ],
            "root": "Columns",
            "jsx": "<Columns\n  style={{ \"--b-chart-h\": \"9rem\", maxWidth: \"26rem\", position: \"relative\" }}\n>\n  <div\n    className=\"b-rule\"\n    style={{ bottom: \"calc(1.4rem + (9rem - 1.4rem) * 0.7)\" }}\n  >\n    <span className=\"b-rule__label\">SLA 70%</span>\n  </div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"48%\" }} data-label=\"Mon\"></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"64%\" }} data-label=\"Tue\"></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"82%\" }} data-label=\"Wed\"></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"58%\" }} data-label=\"Thu\"></div>\n  <div className=\"b-columns__bar\" style={{ \"--v\": \"74%\" }} data-label=\"Fri\"></div>\n</Columns>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-column-w",
            "--v"
          ]
        },
        {
          "id": "linear-gauge",
          "title": "Linear Gauge",
          "category": "data-viz",
          "url": "https://ui.barua.tz/docs/data-viz.html#linear-gauge",
          "summary": "SwiftUI's linear Gauge style: a graded track with a marker at the current value ( --v ) and min/max labels beneath. Use __track--plain for a neutral track.",
          "classes": [
            "b-gauge-linear",
            "b-gauge-linear__labels",
            "b-gauge-linear__marker",
            "b-gauge-linear__track",
            "b-gauge-linear__track--plain"
          ],
          "markup": "<div class=\"b-gauge-linear\">\n  <div class=\"b-gauge-linear__track\"><span class=\"b-gauge-linear__marker\" style=\"--v: 68%\"></span></div>\n  <div class=\"b-gauge-linear__labels\"><span>0 GB</span><span>15 GB</span></div>\n</div>\n<div class=\"b-gauge-linear\">\n  <div class=\"b-gauge-linear__track b-gauge-linear__track--plain\"><span class=\"b-gauge-linear__marker\" style=\"--v: 35%\"></span></div>\n  <div class=\"b-gauge-linear__labels\"><span>Min</span><span>Max</span></div>\n</div>",
          "react": {
            "import": "import { LinearGauge } from \"barua-ui\";",
            "components": [
              "LinearGauge"
            ],
            "root": "LinearGauge",
            "jsx": "<LinearGauge>\n  <div className=\"b-gauge-linear__track\">\n    <span className=\"b-gauge-linear__marker\" style={{ \"--v\": \"68%\" }}></span>\n  </div>\n  <div className=\"b-gauge-linear__labels\">\n    <span>0 GB</span>\n    <span>15 GB</span>\n  </div>\n</LinearGauge>\n<LinearGauge>\n  <div className=\"b-gauge-linear__track b-gauge-linear__track--plain\">\n    <span className=\"b-gauge-linear__marker\" style={{ \"--v\": \"35%\" }}></span>\n  </div>\n  <div className=\"b-gauge-linear__labels\">\n    <span>Min</span>\n    <span>Max</span>\n  </div>\n</LinearGauge>"
          },
          "knobs": [
            "--v"
          ]
        }
      ]
    },
    {
      "id": "media",
      "title": "Media \u2014 galleries, players, thumbnails",
      "url": "https://ui.barua.tz/docs/media.html",
      "components": [
        {
          "id": "image-viewer",
          "title": "Image Viewer",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#image-viewer",
          "summary": "A dark stage that centers one image, with a .b-image-viewer__bar pinned to the bottom edge for the caption and actions. The stage stays near-black in both themes so photos read the same everywhere. Demos on this page use gradient placeholders in place of real files.",
          "classes": [
            "b-btn",
            "b-btn--glass",
            "b-btn--sm",
            "b-icon-btn",
            "b-image-viewer",
            "b-image-viewer__bar"
          ],
          "markup": "<div class=\"b-image-viewer\">\n  <div style=\"width: 100%; aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--b-color-accent), var(--b-color-purple))\"></div>\n  <div class=\"b-image-viewer__bar\">\n    <span>Msasani Bay at dusk \u2014 4,032 \u00d7 2,268</span>\n    <span style=\"display: flex; gap: var(--b-space-1)\">\n      <button class=\"b-btn b-icon-btn b-btn--glass b-btn--sm\" aria-label=\"Zoom in\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13.2 13.2 3.3 3.3M9 6.8v4.4M6.8 9h4.4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n      </button>\n      <button class=\"b-btn b-icon-btn b-btn--glass b-btn--sm\" aria-label=\"Download image\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3.5v9m0 0L6.5 9m3.5 3.5L13.5 9M4.5 16h11\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      </button>\n    </span>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, ImageViewer, ImageViewerBar } from \"barua-ui\";",
            "components": [
              "Button",
              "ImageViewer",
              "ImageViewerBar"
            ],
            "root": "ImageViewer",
            "jsx": "<ImageViewer>\n  <div\n    style={{ width: \"100%\", aspectRatio: \"16 / 9\", background: \"linear-gradient(135deg, var(--b-color-accent), var(--b-color-purple))\" }}\n  ></div>\n  <ImageViewerBar>\n    <span>Msasani Bay at dusk \u2014 4,032 \u00d7 2,268</span>\n    <span style={{ display: \"flex\", gap: \"var(--b-space-1)\" }}>\n      <Button icon variant=\"glass\" size=\"sm\" aria-label=\"Zoom in\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n          <path d=\"m13.2 13.2 3.3 3.3M9 6.8v4.4M6.8 9h4.4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n        </svg>\n      </Button>\n      <Button icon variant=\"glass\" size=\"sm\" aria-label=\"Download image\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M10 3.5v9m0 0L6.5 9m3.5 3.5L13.5 9M4.5 16h11\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n        </svg>\n      </Button>\n    </span>\n  </ImageViewerBar>\n</ImageViewer>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "image-gallery",
          "title": "Image Gallery",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#image-gallery",
          "summary": "An auto-filling square grid. Wrap each tile in a <button> (or <a> ) \u2014 the grid strips the chrome, rounds the corners and adds a zoom-in cursor, and real images get a gentle hover scale.",
          "classes": [
            "b-gallery"
          ],
          "markup": "<div class=\"b-gallery\">\n  <button aria-label=\"View photo: Harbor at dawn\">\n    <div style=\"aspect-ratio: 1; background: linear-gradient(135deg, var(--b-color-accent), var(--b-color-purple))\"></div>\n  </button>\n  <button aria-label=\"View photo: Reef shallows\">\n    <div style=\"aspect-ratio: 1; background: linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\"></div>\n  </button>\n  <button aria-label=\"View photo: Market stalls\">\n    <div style=\"aspect-ratio: 1; background: linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\"></div>\n  </button>\n  <button aria-label=\"View photo: Forest canopy\">\n    <div style=\"aspect-ratio: 1; background: linear-gradient(135deg, var(--b-color-green), var(--b-color-mint))\"></div>\n  </button>\n  <button aria-label=\"View photo: City lights\">\n    <div style=\"aspect-ratio: 1; background: linear-gradient(135deg, var(--b-color-accent), var(--b-color-indigo))\"></div>\n  </button>\n  <button aria-label=\"View photo: Tide pools\">\n    <div style=\"aspect-ratio: 1; background: linear-gradient(135deg, var(--b-color-mint), var(--b-color-teal))\"></div>\n  </button>\n  <button aria-label=\"View photo: Dune sunset\">\n    <div style=\"aspect-ratio: 1; background: linear-gradient(135deg, var(--b-color-orange), var(--b-color-pink))\"></div>\n  </button>\n  <button aria-label=\"View photo: Night sky\">\n    <div style=\"aspect-ratio: 1; background: linear-grad",
          "react": {
            "import": "import { Gallery } from \"barua-ui\";",
            "components": [
              "Gallery"
            ],
            "root": "Gallery",
            "jsx": "<Gallery>\n  <button aria-label=\"View photo: Harbor at dawn\">\n    <div\n      style={{ aspectRatio: \"1\", background: \"linear-gradient(135deg, var(--b-color-accent), var(--b-color-purple))\" }}\n    ></div>\n  </button>\n  <button aria-label=\"View photo: Reef shallows\">\n    <div\n      style={{ aspectRatio: \"1\", background: \"linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\" }}\n    ></div>\n  </button>\n  <button aria-label=\"View photo: Market stalls\">\n    <div\n      style={{ aspectRatio: \"1\", background: \"linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\" }}\n    ></div>\n  </button>\n  <button aria-label=\"View photo: Forest canopy\">\n    <div\n      style={{ aspectRatio: \"1\", background: \"linear-gradient(135deg, var(--b-color-green), var(--b-color-mint))\" }}\n    ></div>\n  </button>\n  <button aria-label=\"View photo: City lights\">\n    <div\n      style={{ aspectRatio: \"1\", background: \"linear-gradient(135deg, var(--b-color-accent), var(--b-color-indigo))\" }}\n    ></div>\n  </button>\n  <button aria-label=\"View photo: Tide pools\">\n    <div\n      style={{ aspectRatio: \"1\", background: \"linear-gradient(135deg, var(--b-color-mint), var(--b-color-teal))\" }}\n    ></div>\n  </button>\n  <button aria-label=\"View photo: Dune sunset\">\n    <div\n      style={{ aspectRatio: \"1\", background: \"linear-gradient(135deg, var(--b-color-orange), var(--b-color-pink))\" }}\n    ></div>\n  </button>\n  <button aria-label=\"View photo: Night sky\"></button>\n</Gallery>"
          }
        },
        {
          "id": "carousel",
          "title": "Carousel",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#carousel",
          "summary": "A scroll-snap track \u2014 it works with plain CSS, and adding data-b-carousel lets barua.js wire the prev/next buttons to smooth scrolling and keep the dots in sync. Slides default to 70% of the track width; override with --b-slide-w .",
          "classes": [
            "b-btn",
            "b-btn--glass",
            "b-carousel",
            "b-carousel__dots",
            "b-carousel__nav",
            "b-carousel__nav--next",
            "b-carousel__nav--prev",
            "b-carousel__slide",
            "b-carousel__track",
            "b-icon-btn"
          ],
          "markup": "<div class=\"b-carousel\" data-b-carousel>\n  <div class=\"b-carousel__track\">\n    <div class=\"b-carousel__slide\">\n      <div style=\"aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--b-color-accent), var(--b-color-indigo))\"></div>\n    </div>\n    <div class=\"b-carousel__slide\">\n      <div style=\"aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\"></div>\n    </div>\n    <div class=\"b-carousel__slide\">\n      <div style=\"aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\"></div>\n    </div>\n    <div class=\"b-carousel__slide\">\n      <div style=\"aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--b-color-green), var(--b-color-mint))\"></div>\n    </div>\n  </div>\n  <button class=\"b-btn b-icon-btn b-btn--glass b-carousel__nav b-carousel__nav--prev\" aria-label=\"Previous slide\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m12 5-5 5 5 5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </button>\n  <button class=\"b-btn b-icon-btn b-btn--glass b-carousel__nav b-carousel__nav--next\" aria-label=\"Next slide\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </button>\n  <div c",
          "react": {
            "import": "import { Button, Carousel, CarouselSlide, CarouselTrack } from \"barua-ui\";",
            "components": [
              "Button",
              "Carousel",
              "CarouselSlide",
              "CarouselTrack"
            ],
            "root": "Carousel",
            "jsx": "<Carousel data-b-carousel=\"\">\n  <CarouselTrack>\n    <CarouselSlide>\n      <div\n        style={{ aspectRatio: \"16 / 9\", background: \"linear-gradient(135deg, var(--b-color-accent), var(--b-color-indigo))\" }}\n      ></div>\n    </CarouselSlide>\n    <CarouselSlide>\n      <div\n        style={{ aspectRatio: \"16 / 9\", background: \"linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\" }}\n      ></div>\n    </CarouselSlide>\n    <CarouselSlide>\n      <div\n        style={{ aspectRatio: \"16 / 9\", background: \"linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\" }}\n      ></div>\n    </CarouselSlide>\n    <CarouselSlide>\n      <div\n        style={{ aspectRatio: \"16 / 9\", background: \"linear-gradient(135deg, var(--b-color-green), var(--b-color-mint))\" }}\n      ></div>\n    </CarouselSlide>\n  </CarouselTrack>\n  <Button\n    icon\n    variant=\"glass\"\n    className=\"b-carousel__nav b-carousel__nav--prev\"\n    aria-label=\"Previous slide\"\n  >\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"m12 5-5 5 5 5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Button>\n  <Button\n    icon\n    variant=\"glass\"\n    className=\"b-carousel__nav b-carousel__nav--next\"\n    aria-label=\"Next slide\"\n  >\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Button>\n</Carousel>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-slide-w"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "billboard",
          "title": "Billboard",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#billboard",
          "summary": "The featured title on a media storefront: art behind, words in front. The scrim fades the picture into the page colour from below and from the start edge, so the text never fights it and the shelf underneath feels attached. Put .b-container on the body for the gutters. The block is tall on a phone \u2014 min(62svh, 34rem) \u2014 and capped on a desktop so the shelves stay above the fold; --b-billboard-h sets the height and --b-billboard-focus moves the picture's subject into view.",
          "classes": [
            "b-billboard",
            "b-billboard__actions",
            "b-billboard__art",
            "b-billboard__body",
            "b-billboard__lede",
            "b-billboard__scrim",
            "b-billboard__title",
            "b-body",
            "b-btn",
            "b-btn--glass",
            "b-btn--lg",
            "b-btn--pill",
            "b-btn--primary",
            "b-container",
            "b-line-clamp-3",
            "b-overline"
          ],
          "markup": "",
          "knobs": [
            "--b-billboard-focus",
            "--b-billboard-h",
            "--b-billboard-measure",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "poster",
          "title": "Poster",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#poster",
          "summary": "A title as a 2:3 picture with its name under it \u2014 the unit of a catalogue. The whole block is one link. The frame holds its shape before the picture arrives, so a slow connection never makes the shelf jump, and a title with no picture shows its initial on a plate tinted from the accent. A .b-badge in .b-poster__badge sits on the picture for a price or a state. .b-poster--wide is the 16:9 form for an episode; .is-selected marks the one playing.",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-badge--success",
            "b-btn",
            "b-btn--glass",
            "b-carousel",
            "b-carousel--posters",
            "b-carousel__nav",
            "b-carousel__nav--next",
            "b-carousel__nav--prev",
            "b-carousel__slide",
            "b-carousel__track",
            "b-icon-btn",
            "b-poster",
            "b-poster-grid",
            "b-poster__badge",
            "b-poster__facts",
            "b-poster__frame",
            "b-poster__initial",
            "b-poster__meta",
            "b-poster__title"
          ],
          "markup": "<div class=\"b-poster-grid\">\n  <a class=\"b-poster\" href=\"#\">\n    <div class=\"b-poster__frame\">\n      <img src=\"img/posters/night-coast.jpg\" alt=\"\" loading=\"lazy\">\n      <span class=\"b-badge b-badge--accent b-poster__badge\">TSh 2,000</span>\n    </div>\n    <div class=\"b-poster__meta\">\n      <p class=\"b-poster__title\">Night Coast</p>\n      <p class=\"b-poster__facts\"><span>2026</span><span>Drama</span></p>\n    </div>\n  </a>\n  <a class=\"b-poster\" href=\"#\">\n    <div class=\"b-poster__frame\">\n      <img src=\"img/posters/dune-light.jpg\" alt=\"\" loading=\"lazy\">\n      <span class=\"b-badge b-badge--success b-poster__badge\">Free</span>\n    </div>\n    <div class=\"b-poster__meta\">\n      <p class=\"b-poster__title\">Dune Light</p>\n      <p class=\"b-poster__facts\"><span>2025</span><span>Adventure</span></p>\n    </div>\n  </a>\n  <a class=\"b-poster\" href=\"#\">\n    <div class=\"b-poster__frame\">\n      <img src=\"img/posters/forest-fog.jpg\" alt=\"\" loading=\"lazy\">\n    </div>\n    <div class=\"b-poster__meta\">\n      <p class=\"b-poster__title\">Forest Fog</p>\n      <p class=\"b-poster__facts\"><span>2024</span><span>Thriller</span></p>\n    </div>\n  </a>\n  <a class=\"b-poster\" href=\"#\">\n    <div class=\"b-poster__frame\">\n      <span class=\"b-poster__initial\" aria-hidden=\"true\">K</span>\n      <span class=\"b-badge b-poster__badge\">Coming soon</span>\n    </div>\n    <div class=\"b-poster__meta\">\n      <p class=\"b-poster__",
          "react": {
            "import": "import { Badge, Poster, PosterFacts, PosterFrame, PosterGrid, PosterInitial, PosterMeta, PosterTitle } from \"barua-ui\";",
            "components": [
              "Badge",
              "Poster",
              "PosterFacts",
              "PosterFrame",
              "PosterGrid",
              "PosterInitial",
              "PosterMeta",
              "PosterTitle"
            ],
            "root": "PosterGrid",
            "jsx": "<PosterGrid>\n  <Poster href=\"#\">\n    <PosterFrame>\n      <img src=\"img/posters/night-coast.jpg\" alt=\"\" loading=\"lazy\" />\n      <Badge variant=\"accent\" className=\"b-poster__badge\">TSh 2,000</Badge>\n    </PosterFrame>\n    <PosterMeta>\n      <PosterTitle>Night Coast</PosterTitle>\n      <PosterFacts>\n        <span>2026</span>\n        <span>Drama</span>\n      </PosterFacts>\n    </PosterMeta>\n  </Poster>\n  <Poster href=\"#\">\n    <PosterFrame>\n      <img src=\"img/posters/dune-light.jpg\" alt=\"\" loading=\"lazy\" />\n      <Badge variant=\"success\" className=\"b-poster__badge\">Free</Badge>\n    </PosterFrame>\n    <PosterMeta>\n      <PosterTitle>Dune Light</PosterTitle>\n      <PosterFacts>\n        <span>2025</span>\n        <span>Adventure</span>\n      </PosterFacts>\n    </PosterMeta>\n  </Poster>\n  <Poster href=\"#\">\n    <PosterFrame>\n      <img src=\"img/posters/forest-fog.jpg\" alt=\"\" loading=\"lazy\" />\n    </PosterFrame>\n    <PosterMeta>\n      <PosterTitle>Forest Fog</PosterTitle>\n      <PosterFacts>\n        <span>2024</span>\n        <span>Thriller</span>\n      </PosterFacts>\n    </PosterMeta>\n  </Poster>\n  <Poster href=\"#\">\n    <PosterFrame>\n      <PosterInitial aria-hidden=\"true\">K</PosterInitial>\n      <Badge className=\"b-poster__badge\">Coming soon</Badge>\n    </PosterFrame>\n    <PosterMeta></PosterMeta>\n  </Poster>\n</PosterGrid>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-poster-min",
            "--b-poster-ratio",
            "--b-slide-w"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "video-player",
          "title": "Video Player",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#video-player",
          "summary": "A 16:9 frame around a <video> element. The .b-video__overlay with its glass .b-video__play button fades in on hover, or stays visible while the frame carries .is-paused . The bottom bar is the shared Media Controls strip.",
          "classes": [
            "b-btn",
            "b-icon-btn",
            "b-media-controls",
            "b-media-controls__time",
            "b-slider",
            "b-video",
            "b-video__overlay",
            "b-video__play"
          ],
          "markup": "<div class=\"b-video is-paused\">\n  <div style=\"position: absolute; inset: 0; background: linear-gradient(135deg, var(--b-color-accent), var(--b-color-indigo))\"></div>\n  <div class=\"b-video__overlay\">\n    <button class=\"b-video__play\" aria-label=\"Play video\">\n      <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"24\" height=\"24\" aria-hidden=\"true\"><path d=\"M7 4.9v10.2a.6.6 0 0 0 .92.5l8-5.1a.6.6 0 0 0 0-1l-8-5.1a.6.6 0 0 0-.92.5Z\"/></svg>\n    </button>\n  </div>\n  <div class=\"b-media-controls\">\n    <button class=\"b-btn b-icon-btn\" aria-label=\"Play\">\n      <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M7 4.9v10.2a.6.6 0 0 0 .92.5l8-5.1a.6.6 0 0 0 0-1l-8-5.1a.6.6 0 0 0-.92.5Z\"/></svg>\n    </button>\n    <input class=\"b-slider\" type=\"range\" min=\"0\" max=\"100\" value=\"37\" style=\"--b-slider-fill: 37%\" aria-label=\"Seek\">\n    <span class=\"b-media-controls__time\">1:24 / 3:47</span>\n    <button class=\"b-btn b-icon-btn\" aria-label=\"Mute\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M9.5 4.8 6.6 7.3H4.7a.7.7 0 0 0-.7.7v4a.7.7 0 0 0 .7.7h1.9l2.9 2.5a.6.6 0 0 0 1-.45V5.25a.6.6 0 0 0-1-.45Z\" fill=\"currentColor\"/><path d=\"M12.5 7.5a3.4 3.4 0 0 1 0 5M14.4 5.6a6.2 6.2 0 0 1 0 8.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    </button>\n    <button class=\"b-btn b-icon-btn\" aria-label=\"Enter full screen\">\n      <svg ",
          "react": {
            "import": "import { Button, Slider, Video } from \"barua-ui\";",
            "components": [
              "Button",
              "Slider",
              "Video"
            ],
            "root": "Video",
            "jsx": "<Video className=\"is-paused\">\n  <div\n    style={{ position: \"absolute\", inset: \"0\", background: \"linear-gradient(135deg, var(--b-color-accent), var(--b-color-indigo))\" }}\n  ></div>\n  <div className=\"b-video__overlay\">\n    <button className=\"b-video__play\" aria-label=\"Play video\">\n      <svg\n        viewBox=\"0 0 20 20\"\n        fill=\"currentColor\"\n        width=\"24\"\n        height=\"24\"\n        aria-hidden=\"true\"\n      >\n        <path d=\"M7 4.9v10.2a.6.6 0 0 0 .92.5l8-5.1a.6.6 0 0 0 0-1l-8-5.1a.6.6 0 0 0-.92.5Z\" />\n      </svg>\n    </button>\n  </div>\n  <div className=\"b-media-controls\">\n    <Button icon aria-label=\"Play\">\n      <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n        <path d=\"M7 4.9v10.2a.6.6 0 0 0 .92.5l8-5.1a.6.6 0 0 0 0-1l-8-5.1a.6.6 0 0 0-.92.5Z\" />\n      </svg>\n    </Button>\n    <Slider type=\"range\" min=\"0\" max=\"100\" value=\"37\" style={{ \"--b-slider-fill\": \"37%\" }} aria-label=\"Seek\" />\n    <span className=\"b-media-controls__time\">1:24 / 3:47</span>\n    <Button icon aria-label=\"Mute\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M9.5 4.8 6.6 7.3H4.7a.7.7 0 0 0-.7.7v4a.7.7 0 0 0 .7.7h1.9l2.9 2.5a.6.6 0 0 0 1-.45V5.25a.6.6 0 0 0-1-.45Z\" fill=\"currentColor\" />\n        <path d=\"M12.5 7.5a3.4 3.4 0 0 1 0 5M14.4 5.6a6.2 6.2 0 0 1 0 8.8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      </svg>\n    </Button>\n    <Button icon aria-label=\"Enter full screen\"></Button>\n  </div>\n</Video>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-slider-fill"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-paused",
            "is-pressed"
          ]
        },
        {
          "id": "audio-player",
          "title": "Audio Player",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#audio-player",
          "summary": "A compact row: .b-audio__art , a flexible .b-audio__meta block with title, artist and a .b-progress track, and transport buttons in .b-audio__controls .",
          "classes": [
            "b-audio",
            "b-audio--glass",
            "b-audio__art",
            "b-audio__artist",
            "b-audio__controls",
            "b-audio__meta",
            "b-audio__title",
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-icon-btn",
            "b-progress",
            "b-progress__fill",
            "b-waveform"
          ],
          "markup": "<div class=\"b-audio\">\n  <div class=\"b-audio__art\" style=\"background: linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\"></div>\n  <div class=\"b-audio__meta\">\n    <div class=\"b-audio__title\">Golden Hour</div>\n    <div class=\"b-audio__artist\">The Marine Layer</div>\n    <div class=\"b-progress\"><div class=\"b-progress__fill\" style=\"--b-progress: 42%\"></div></div>\n  </div>\n  <div class=\"b-audio__controls\">\n    <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Previous track\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M5.5 4.5v11\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/><path d=\"M15 5.6v8.8a.6.6 0 0 1-.93.5L7.6 10.5a.6.6 0 0 1 0-1l6.47-4.4a.6.6 0 0 1 .93.5Z\" fill=\"currentColor\"/></svg>\n    </button>\n    <button class=\"b-btn b-icon-btn b-btn--primary\" aria-label=\"Play\">\n      <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M7 4.9v10.2a.6.6 0 0 0 .92.5l8-5.1a.6.6 0 0 0 0-1l-8-5.1a.6.6 0 0 0-.92.5Z\"/></svg>\n    </button>\n    <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Next track\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M14.5 4.5v11\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/><path d=\"M5 5.6v8.8a.6.6 0 0 0 .93.5l6.47-4.4a.6.6 0 0 0 0-1L5.93 5.1a.6.6 0 0 0-.93.5Z\" fill=\"currentColor\"/></svg>\n    </button>\n  </div>\n</div>",
          "react": {
            "import": "import { Audio, Button, Progress } from \"barua-ui\";",
            "components": [
              "Audio",
              "Button",
              "Progress"
            ],
            "root": "Audio",
            "jsx": "<Audio>\n  <div\n    className=\"b-audio__art\"\n    style={{ background: \"linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\" }}\n  ></div>\n  <div className=\"b-audio__meta\">\n    <div className=\"b-audio__title\">Golden Hour</div>\n    <div className=\"b-audio__artist\">The Marine Layer</div>\n    <Progress>\n      <div className=\"b-progress__fill\" style={{ \"--b-progress\": \"42%\" }}></div>\n    </Progress>\n  </div>\n  <div className=\"b-audio__controls\">\n    <Button icon variant=\"ghost\" aria-label=\"Previous track\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M5.5 4.5v11\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n        <path d=\"M15 5.6v8.8a.6.6 0 0 1-.93.5L7.6 10.5a.6.6 0 0 1 0-1l6.47-4.4a.6.6 0 0 1 .93.5Z\" fill=\"currentColor\" />\n      </svg>\n    </Button>\n    <Button icon variant=\"primary\" aria-label=\"Play\">\n      <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n        <path d=\"M7 4.9v10.2a.6.6 0 0 0 .92.5l8-5.1a.6.6 0 0 0 0-1l-8-5.1a.6.6 0 0 0-.92.5Z\" />\n      </svg>\n    </Button>\n    <Button icon variant=\"ghost\" aria-label=\"Next track\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M14.5 4.5v11\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n        <path d=\"M5 5.6v8.8a.6.6 0 0 0 .93.5l6.47-4.4a.6.6 0 0 0 0-1L5.93 5.1a.6.6 0 0 0-.93.5Z\" fill=\"currentColor\" />\n      </svg>\n    </Button>\n  </div>\n</Audio>"
          },
          "variants": [
            {
              "id": "audio-glass",
              "title": "Glass + waveform"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-progress",
            "--v"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-played",
            "is-pressed"
          ]
        },
        {
          "id": "media-controls",
          "title": "Media Controls",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#media-controls",
          "summary": "The shared bottom bar used by the video player and any custom media frame. It pins to the bottom of the nearest position: relative ancestor over a soft black gradient, forces dark color-scheme, and makes any inner .b-icon-btn white and transparent. The .b-slider (a native range input from Forms ) flexes to fill the row, and .b-media-controls__time keeps timestamps in tabular numerals so they never wiggle.",
          "classes": [
            "b-btn",
            "b-icon-btn",
            "b-media-controls",
            "b-media-controls__time",
            "b-slider"
          ],
          "markup": "<div class=\"b-media-controls\">\n  <button class=\"b-btn b-icon-btn\" aria-label=\"Pause\">\n    <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><rect x=\"5.5\" y=\"4.5\" width=\"3\" height=\"11\" rx=\"1\"/><rect x=\"11.5\" y=\"4.5\" width=\"3\" height=\"11\" rx=\"1\"/></svg>\n  </button>\n  <input class=\"b-slider\" type=\"range\" min=\"0\" max=\"100\" value=\"64\" style=\"--b-slider-fill: 64%\" aria-label=\"Seek\">\n  <span class=\"b-media-controls__time\">2:26 / 3:47</span>\n  <button class=\"b-btn b-icon-btn\" aria-label=\"Mute\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M9.5 4.8 6.6 7.3H4.7a.7.7 0 0 0-.7.7v4a.7.7 0 0 0 .7.7h1.9l2.9 2.5a.6.6 0 0 0 1-.45V5.25a.6.6 0 0 0-1-.45Z\" fill=\"currentColor\"/><path d=\"M12.5 7.5a3.4 3.4 0 0 1 0 5M14.4 5.6a6.2 6.2 0 0 1 0 8.8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </button>\n</div>",
          "react": {
            "import": "import { Button, Slider } from \"barua-ui\";",
            "components": [
              "Button",
              "Slider"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-media-controls\">\n  <Button icon aria-label=\"Pause\">\n    <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n      <rect x=\"5.5\" y=\"4.5\" width=\"3\" height=\"11\" rx=\"1\" />\n      <rect x=\"11.5\" y=\"4.5\" width=\"3\" height=\"11\" rx=\"1\" />\n    </svg>\n  </Button>\n  <Slider type=\"range\" min=\"0\" max=\"100\" value=\"64\" style={{ \"--b-slider-fill\": \"64%\" }} aria-label=\"Seek\" />\n  <span className=\"b-media-controls__time\">2:26 / 3:47</span>\n  <Button icon aria-label=\"Mute\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M9.5 4.8 6.6 7.3H4.7a.7.7 0 0 0-.7.7v4a.7.7 0 0 0 .7.7h1.9l2.9 2.5a.6.6 0 0 0 1-.45V5.25a.6.6 0 0 0-1-.45Z\" fill=\"currentColor\" />\n      <path d=\"M12.5 7.5a3.4 3.4 0 0 1 0 5M14.4 5.6a6.2 6.2 0 0 1 0 8.8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </Button>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-slider-fill"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "thumbnail",
          "title": "Thumbnail",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#thumbnail",
          "summary": "A square media chip, sized with --b-thumb-size (default 4.5rem). .b-thumb--video overlays a play glyph, and .b-thumb__duration stamps a runtime in the corner.",
          "classes": [
            "b-thumb",
            "b-thumb--video",
            "b-thumb__duration"
          ],
          "markup": "<div class=\"b-thumb\" style=\"--b-thumb-size: 3rem\">\n  <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, var(--b-color-green), var(--b-color-mint))\"></div>\n</div>\n<div class=\"b-thumb\">\n  <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\"></div>\n</div>\n<div class=\"b-thumb\" style=\"--b-thumb-size: 6rem\">\n  <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, var(--b-color-accent), var(--b-color-purple))\"></div>\n</div>\n<div class=\"b-thumb b-thumb--video\" style=\"--b-thumb-size: 6rem\">\n  <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\"></div>\n  <span class=\"b-thumb__duration\">2:14</span>\n</div>",
          "react": {
            "import": "import { Thumb } from \"barua-ui\";",
            "components": [
              "Thumb"
            ],
            "root": "Thumb",
            "jsx": "<Thumb style={{ \"--b-thumb-size\": \"3rem\" }}>\n  <div\n    style={{ width: \"100%\", height: \"100%\", background: \"linear-gradient(135deg, var(--b-color-green), var(--b-color-mint))\" }}\n  ></div>\n</Thumb>\n<Thumb>\n  <div\n    style={{ width: \"100%\", height: \"100%\", background: \"linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\" }}\n  ></div>\n</Thumb>\n<Thumb style={{ \"--b-thumb-size\": \"6rem\" }}>\n  <div\n    style={{ width: \"100%\", height: \"100%\", background: \"linear-gradient(135deg, var(--b-color-accent), var(--b-color-purple))\" }}\n  ></div>\n</Thumb>\n<Thumb className=\"b-thumb--video\" style={{ \"--b-thumb-size\": \"6rem\" }}>\n  <div\n    style={{ width: \"100%\", height: \"100%\", background: \"linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\" }}\n  ></div>\n  <span className=\"b-thumb__duration\">2:14</span>\n</Thumb>"
          },
          "knobs": [
            "--b-thumb-size"
          ]
        },
        {
          "id": "media-placeholder",
          "title": "Media Placeholder",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#media-placeholder",
          "summary": "The empty state for a media slot \u2014 a dashed 16:9 frame with a hatched fill and a quiet glyph. Use it wherever an image or video hasn't been chosen, uploaded or loaded yet; it holds the exact space the media will occupy.",
          "classes": [
            "b-media-placeholder"
          ],
          "markup": "<div class=\"b-media-placeholder\">\n  <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><circle cx=\"8.5\" cy=\"10\" r=\"1.5\" fill=\"currentColor\"/><path d=\"m5.5 16.5 4-4 3 3 3-3 3.5 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n</div>",
          "react": {
            "import": "import { MediaPlaceholder } from \"barua-ui\";",
            "components": [
              "MediaPlaceholder"
            ],
            "root": "MediaPlaceholder",
            "jsx": "<MediaPlaceholder>\n  <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n    <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    <circle cx=\"8.5\" cy=\"10\" r=\"1.5\" fill=\"currentColor\" />\n    <path d=\"m5.5 16.5 4-4 3 3 3-3 3.5 3.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n  </svg>\n</MediaPlaceholder>"
          }
        },
        {
          "id": "upload-preview",
          "title": "Upload Preview",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#upload-preview",
          "summary": "A grid of square tiles for files being attached. While a file uploads, float a .b-progress near the bottom edge; once done, show the .b-upload-preview__remove button. Pairs with the File Upload dropzone in Forms .",
          "classes": [
            "b-progress",
            "b-progress__fill",
            "b-upload-preview",
            "b-upload-preview__remove",
            "b-upload-previews"
          ],
          "markup": "<div class=\"b-upload-previews\">\n  <div class=\"b-upload-preview\">\n    <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, var(--b-color-accent), var(--b-color-purple))\"></div>\n  </div>\n  <div class=\"b-upload-preview\">\n    <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\"></div>\n    <button class=\"b-upload-preview__remove\" aria-label=\"Remove harbor-02.jpg\">\u2715</button>\n  </div>\n  <div class=\"b-upload-preview\">\n    <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, var(--b-color-green), var(--b-color-mint))\"></div>\n    <div class=\"b-progress\"><div class=\"b-progress__fill\" style=\"--b-progress: 60%\"></div></div>\n  </div>\n  <div class=\"b-upload-preview\">\n    <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\"></div>\n  </div>\n</div>",
          "react": {
            "import": "import { Progress, UploadPreview, UploadPreviews } from \"barua-ui\";",
            "components": [
              "Progress",
              "UploadPreview",
              "UploadPreviews"
            ],
            "root": "UploadPreviews",
            "jsx": "<UploadPreviews>\n  <UploadPreview>\n    <div\n      style={{ width: \"100%\", height: \"100%\", background: \"linear-gradient(135deg, var(--b-color-accent), var(--b-color-purple))\" }}\n    ></div>\n  </UploadPreview>\n  <UploadPreview>\n    <div\n      style={{ width: \"100%\", height: \"100%\", background: \"linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\" }}\n    ></div>\n    <button\n      className=\"b-upload-preview__remove\"\n      aria-label=\"Remove harbor-02.jpg\"\n    >\n      \u2715\n    </button>\n  </UploadPreview>\n  <UploadPreview>\n    <div\n      style={{ width: \"100%\", height: \"100%\", background: \"linear-gradient(135deg, var(--b-color-green), var(--b-color-mint))\" }}\n    ></div>\n    <Progress>\n      <div className=\"b-progress__fill\" style={{ \"--b-progress\": \"60%\" }}></div>\n    </Progress>\n  </UploadPreview>\n  <UploadPreview>\n    <div\n      style={{ width: \"100%\", height: \"100%\", background: \"linear-gradient(135deg, var(--b-color-pink), var(--b-color-orange))\" }}\n    ></div>\n  </UploadPreview>\n</UploadPreviews>"
          },
          "knobs": [
            "--b-lg-inset",
            "--b-progress"
          ]
        },
        {
          "id": "async-image",
          "title": "Async Image",
          "category": "media",
          "url": "https://ui.barua.tz/docs/media.html#async-image",
          "summary": "SwiftUI's AsyncImage loading choreography: wrap the image in .b-async-img and add data-b-async \u2014 it shimmers while loading, then the picture fades in. Errors stop the shimmer and leave the quiet fill.",
          "classes": [
            "b-async-img",
            "b-footnote",
            "b-gap-4",
            "b-hstack",
            "b-stack--wrap",
            "b-text-secondary"
          ],
          "markup": "<span class=\"b-async-img\" style=\"width: 14rem; aspect-ratio: 16/10\">\n  <img data-b-async alt=\"Sample\" src=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='200'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%230a7aff'/%3E%3Cstop offset='1' stop-color='%23af52de'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='320' height='200' fill='url(%23g)'/%3E%3C/svg%3E\">\n</span>\n<span class=\"b-async-img\" style=\"width: 14rem; aspect-ratio: 16/10\" aria-label=\"Still loading\"></span>",
          "react": {
            "import": "import { AsyncImage } from \"barua-ui\";",
            "components": [
              "AsyncImage"
            ],
            "root": "AsyncImage",
            "jsx": "<AsyncImage style={{ width: \"14rem\", aspectRatio: \"16/10\" }}>\n  <img data-b-async=\"\" alt=\"Sample\" src=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='200'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%230a7aff'/%3E%3Cstop offset='1' stop-color='%23af52de'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='320' height='200' fill='url(%23g)'/%3E%3C/svg%3E\" />\n</AsyncImage>\n<AsyncImage\n  style={{ width: \"14rem\", aspectRatio: \"16/10\" }}\n  aria-label=\"Still loading\"\n></AsyncImage>"
          },
          "variants": [
            {
              "id": "blur-up",
              "title": "Blur-up"
            }
          ],
          "knobs": [
            "--b-gap",
            "--b-img-placeholder"
          ],
          "states": [
            "is-loaded"
          ]
        }
      ]
    },
    {
      "id": "specialized",
      "title": "Specialized \u2014 calendars, pickers, file browser",
      "url": "https://ui.barua.tz/docs/specialized.html",
      "components": [
        {
          "id": "command-palette",
          "title": "Command Palette",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#command-palette",
          "summary": "The .b-cmdk glass palette \u2014 full behaviour, \u2318K wiring and filtering live in Navigation \u203a Command Menu . Shown here as a static snapshot of the anatomy: input, grouped list, active item, footer hints.",
          "classes": [
            "b-cmdk",
            "b-cmdk__footer",
            "b-cmdk__group-label",
            "b-cmdk__input",
            "b-cmdk__item",
            "b-cmdk__list"
          ],
          "markup": "<div class=\"b-cmdk\">\n  <input class=\"b-cmdk__input\" type=\"search\" placeholder=\"Type a command or search\u2026\">\n  <ul class=\"b-cmdk__list\">\n    <li class=\"b-cmdk__group-label\">Actions</li>\n    <li><button class=\"b-cmdk__item is-active\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg>\n      New invoice<kbd>\u2318N</kbd>\n    </button></li>\n    <li><button class=\"b-cmdk__item\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n      Assign to Amina Hassan<kbd>\u2318\u21e7A</kbd>\n    </button></li>\n    <li class=\"b-cmdk__group-label\">Go to</li>\n    <li><button class=\"b-cmdk__item\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>\n      Dar es Salaam branch\n    </button></li>\n  </ul>\n  <div class=\"b-cmdk__footer\"><span><kbd>\u2191\u2193</kbd> navigate</span><span><kbd>\u21b5</kbd> select</span><span><kbd>esc</kbd> close</span></div>\n</div>",
          "react": {
            "import": "import { CommandFooter, CommandGroupLabel, CommandList, CommandPalette } from \"barua-ui\";",
            "components": [
              "CommandFooter",
              "CommandGroupLabel",
              "CommandList",
              "CommandPalette"
            ],
            "root": "CommandPalette",
            "jsx": "<CommandPalette>\n  <input className=\"b-cmdk__input\" type=\"search\" placeholder=\"Type a command or search\u2026\" />\n  <CommandList>\n    <CommandGroupLabel>Actions</CommandGroupLabel>\n    <li>\n      <button className=\"b-cmdk__item is-active\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n        </svg>\n        New invoice\n        <kbd>\u2318N</kbd>\n      </button>\n    </li>\n    <li>\n      <button className=\"b-cmdk__item\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        </svg>\n        Assign to Amina Hassan\n        <kbd>\u2318\u21e7A</kbd>\n      </button>\n    </li>\n    <CommandGroupLabel>Go to</CommandGroupLabel>\n    <li>\n      <button className=\"b-cmdk__item\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        </svg>\n        Dar es Salaam branch\n      </button>\n    </li>\n  </CommandList>\n  <CommandFooter>\n    <span>\n      <kbd>\u2191\u2193</kbd>\n      navigate\n    </span>\n    <span>\n      <kbd>\u21b5</kbd>\n      select\n    </span>\n    <span>\n      <kbd>esc</kbd>\n      close\n    </span>\n  </CommandFooter>\n</CommandPalette>"
          },
          "knobs": [
            "--b-lg-border"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "calendar",
          "title": "Calendar",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#calendar",
          "summary": "A full month panel. .b-calendar__header pairs the month label with ghost icon buttons; the __grid lays seven __weekday cells over circular __day buttons. Neighbouring-month days take .is-muted , today takes .is-today plus aria-current=\"date\" , and unavailable days are simply disabled .",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-calendar",
            "b-calendar__day",
            "b-calendar__grid",
            "b-calendar__header",
            "b-calendar__month",
            "b-calendar__weekday",
            "b-icon-btn"
          ],
          "markup": "<div class=\"b-calendar\">\n  <div class=\"b-calendar__header\">\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Previous month\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m12 5-5 5 5 5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n    </button>\n    <span class=\"b-calendar__month\">October 2026</span>\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Next month\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n    </button>\n  </div>\n  <div class=\"b-calendar__grid\">\n    <div class=\"b-calendar__weekday\">Mo</div>\n    <div class=\"b-calendar__weekday\">Tu</div>\n    <div class=\"b-calendar__weekday\">We</div>\n    <div class=\"b-calendar__weekday\">Th</div>\n    <div class=\"b-calendar__weekday\">Fr</div>\n    <div class=\"b-calendar__weekday\">Sa</div>\n    <div class=\"b-calendar__weekday\">Su</div>\n    <button class=\"b-calendar__day is-muted\">28</button>\n    <button class=\"b-calendar__day is-muted\">29</button>\n    <button class=\"b-calendar__day is-muted\">30</button>\n    <button class=\"b-calendar__day\">1</button>\n    <button class=\"b-calendar__day\">2</button>\n    <button class=\"b-calendar__day\">3</button>\n    <button class=\"b-calendar__day\">4</butt",
          "react": {
            "import": "import { Button, Calendar, CalendarGrid, CalendarHeader, CalendarMonth, CalendarWeekday } from \"barua-ui\";",
            "components": [
              "Button",
              "Calendar",
              "CalendarGrid",
              "CalendarHeader",
              "CalendarMonth",
              "CalendarWeekday"
            ],
            "root": "Calendar",
            "jsx": "<Calendar>\n  <CalendarHeader>\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Previous month\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"m12 5-5 5 5 5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n    </Button>\n    <CalendarMonth>October 2026</CalendarMonth>\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Next month\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n    </Button>\n  </CalendarHeader>\n  <CalendarGrid>\n    <CalendarWeekday>Mo</CalendarWeekday>\n    <CalendarWeekday>Tu</CalendarWeekday>\n    <CalendarWeekday>We</CalendarWeekday>\n    <CalendarWeekday>Th</CalendarWeekday>\n    <CalendarWeekday>Fr</CalendarWeekday>\n    <CalendarWeekday>Sa</CalendarWeekday>\n    <CalendarWeekday>Su</CalendarWeekday>\n    <button className=\"b-calendar__day is-muted\">28</button>\n    <button className=\"b-calendar__day is-muted\">29</button>\n    <button className=\"b-calendar__day is-muted\">30</button>\n    <button className=\"b-calendar__day\">1</button>\n    <button className=\"b-calendar__day\">2</button>\n    <button className=\"b-calendar__day\">3</button>\n    <button className=\"b-calendar__day\">4</button>\n  </CalendarGrid>\n</Calendar>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-in-range",
            "is-loading",
            "is-muted",
            "is-pressed",
            "is-range-end",
            "is-range-start",
            "is-selected",
            "is-today"
          ]
        },
        {
          "id": "date-range",
          "title": "Date Range",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#date-range",
          "summary": "The same calendar expresses a span: solid endpoints get .is-range-start / .is-range-end (squared on the inner edge), and every day between takes .is-in-range for a continuous soft-accent band.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-calendar",
            "b-calendar__day",
            "b-calendar__grid",
            "b-calendar__header",
            "b-calendar__month",
            "b-calendar__weekday",
            "b-icon-btn"
          ],
          "markup": "<div class=\"b-calendar\">\n  <div class=\"b-calendar__header\">\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Previous month\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m12 5-5 5 5 5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n    </button>\n    <span class=\"b-calendar__month\">October 2026</span>\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Next month\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n    </button>\n  </div>\n  <div class=\"b-calendar__grid\">\n    <div class=\"b-calendar__weekday\">Mo</div>\n    <div class=\"b-calendar__weekday\">Tu</div>\n    <div class=\"b-calendar__weekday\">We</div>\n    <div class=\"b-calendar__weekday\">Th</div>\n    <div class=\"b-calendar__weekday\">Fr</div>\n    <div class=\"b-calendar__weekday\">Sa</div>\n    <div class=\"b-calendar__weekday\">Su</div>\n    <button class=\"b-calendar__day is-muted\">28</button>\n    <button class=\"b-calendar__day is-muted\">29</button>\n    <button class=\"b-calendar__day is-muted\">30</button>\n    <button class=\"b-calendar__day\">1</button>\n    <button class=\"b-calendar__day\">2</button>\n    <button class=\"b-calendar__day\">3</button>\n    <button class=\"b-calendar__day\">4</butt",
          "react": {
            "import": "import { Button, Calendar, CalendarGrid, CalendarHeader, CalendarMonth, CalendarWeekday } from \"barua-ui\";",
            "components": [
              "Button",
              "Calendar",
              "CalendarGrid",
              "CalendarHeader",
              "CalendarMonth",
              "CalendarWeekday"
            ],
            "root": "Calendar",
            "jsx": "<Calendar>\n  <CalendarHeader>\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Previous month\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"m12 5-5 5 5 5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n    </Button>\n    <CalendarMonth>October 2026</CalendarMonth>\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Next month\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"m8 5 5 5-5 5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n    </Button>\n  </CalendarHeader>\n  <CalendarGrid>\n    <CalendarWeekday>Mo</CalendarWeekday>\n    <CalendarWeekday>Tu</CalendarWeekday>\n    <CalendarWeekday>We</CalendarWeekday>\n    <CalendarWeekday>Th</CalendarWeekday>\n    <CalendarWeekday>Fr</CalendarWeekday>\n    <CalendarWeekday>Sa</CalendarWeekday>\n    <CalendarWeekday>Su</CalendarWeekday>\n    <button className=\"b-calendar__day is-muted\">28</button>\n    <button className=\"b-calendar__day is-muted\">29</button>\n    <button className=\"b-calendar__day is-muted\">30</button>\n    <button className=\"b-calendar__day\">1</button>\n    <button className=\"b-calendar__day\">2</button>\n    <button className=\"b-calendar__day\">3</button>\n    <button className=\"b-calendar__day\">4</button>\n  </CalendarGrid>\n</Calendar>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-in-range",
            "is-loading",
            "is-muted",
            "is-pressed",
            "is-range-end",
            "is-range-start",
            "is-selected",
            "is-today"
          ]
        },
        {
          "id": "date-picker",
          "title": "Date Picker",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#date-picker",
          "summary": ".b-datepicker is a field that grows a calendar. Compose a .b-input-group with a leading calendar affix; when open, append a .b-calendar directly inside the wrapper \u2014 it drops beneath the field as an elevated popover ( position: absolute , --b-elevation-4 , popover z-index) with zero extra wiring.",
          "classes": [
            "b-datepicker",
            "b-input",
            "b-input-affix",
            "b-input-affix--start",
            "b-input-group"
          ],
          "markup": "<div class=\"b-datepicker\">\n  <div class=\"b-input-group\">\n    <span class=\"b-input-affix b-input-affix--start\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><rect x=\"3\" y=\"4.5\" width=\"14\" height=\"12\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M3 8.5h14M7 3v3m6-3v3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    </span>\n    <input class=\"b-input\" type=\"text\" value=\"26 Aug 2026\" aria-label=\"Invoice date\" style=\"max-width: 14rem;\">\n  </div>\n</div>",
          "react": {
            "import": "import { DatePicker, Input, InputGroup } from \"barua-ui\";",
            "components": [
              "DatePicker",
              "Input",
              "InputGroup"
            ],
            "root": "DatePicker",
            "jsx": "<DatePicker>\n  <InputGroup>\n    <span className=\"b-input-affix b-input-affix--start\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <rect x=\"3\" y=\"4.5\" width=\"14\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        <path d=\"M3 8.5h14M7 3v3m6-3v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      </svg>\n    </span>\n    <Input type=\"text\" value=\"26 Aug 2026\" aria-label=\"Invoice date\" style={{ maxWidth: \"14rem\" }} />\n  </InputGroup>\n</DatePicker>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "color-picker",
          "title": "Color Picker",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#color-picker",
          "summary": "The native .b-color-picker input and full field patterns are documented in Forms \u203a Color Picker . For constrained palettes, a row of .b-swatches is usually the better control \u2014 pass each swatch its colour and mark the choice with .is-selected .",
          "classes": [
            "b-swatch",
            "b-swatches"
          ],
          "markup": "<div class=\"b-swatches\">\n  <button class=\"b-swatch\" style=\"background: var(--b-color-red)\" aria-label=\"Red\"></button>\n  <button class=\"b-swatch\" style=\"background: var(--b-color-orange)\" aria-label=\"Orange\"></button>\n  <button class=\"b-swatch\" style=\"background: var(--b-color-yellow)\" aria-label=\"Yellow\"></button>\n  <button class=\"b-swatch\" style=\"background: var(--b-color-green)\" aria-label=\"Green\"></button>\n  <button class=\"b-swatch\" style=\"background: var(--b-color-teal)\" aria-label=\"Teal\"></button>\n  <button class=\"b-swatch is-selected\" style=\"background: var(--b-color-blue)\" aria-label=\"Blue\" aria-pressed=\"true\"></button>\n  <button class=\"b-swatch\" style=\"background: var(--b-color-purple)\" aria-label=\"Purple\"></button>\n  <button class=\"b-swatch\" style=\"background: var(--b-color-pink)\" aria-label=\"Pink\"></button>\n</div>",
          "react": {
            "import": "import { Swatch, Swatches } from \"barua-ui\";",
            "components": [
              "Swatch",
              "Swatches"
            ],
            "root": "Swatches",
            "jsx": "<Swatches>\n  <Swatch style={{ background: \"var(--b-color-red)\" }} aria-label=\"Red\"></Swatch>\n  <Swatch style={{ background: \"var(--b-color-orange)\" }} aria-label=\"Orange\"></Swatch>\n  <Swatch style={{ background: \"var(--b-color-yellow)\" }} aria-label=\"Yellow\"></Swatch>\n  <Swatch style={{ background: \"var(--b-color-green)\" }} aria-label=\"Green\"></Swatch>\n  <Swatch style={{ background: \"var(--b-color-teal)\" }} aria-label=\"Teal\"></Swatch>\n  <Swatch\n    selected\n    style={{ background: \"var(--b-color-blue)\" }}\n    aria-label=\"Blue\"\n    aria-pressed=\"true\"\n  ></Swatch>\n  <Swatch style={{ background: \"var(--b-color-purple)\" }} aria-label=\"Purple\"></Swatch>\n  <Swatch style={{ background: \"var(--b-color-pink)\" }} aria-label=\"Pink\"></Swatch>\n</Swatches>"
          },
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "emoji-picker",
          "title": "Emoji Picker",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#emoji-picker",
          "summary": "A compact .b-emoji-picker panel: small search field on top, then a scrollable eight-column __grid of plain buttons that scale up on hover.",
          "classes": [
            "b-emoji-picker",
            "b-emoji-picker__grid",
            "b-input",
            "b-input--sm"
          ],
          "markup": "<div class=\"b-emoji-picker\">\n  <input class=\"b-input b-input--sm\" type=\"search\" placeholder=\"Search emoji\" aria-label=\"Search emoji\">\n  <!-- barua-lint disable emoji-icon: in an emoji picker the emoji are the content, not icons -->\n  <div class=\"b-emoji-picker__grid\">\n    <button aria-label=\"Grinning face\">\ud83d\ude00</button>\n    <button aria-label=\"Tears of joy\">\ud83d\ude02</button>\n    <button aria-label=\"Smiling with hearts\">\ud83e\udd70</button>\n    <button aria-label=\"Sunglasses\">\ud83d\ude0e</button>\n    <button aria-label=\"Handshake\">\ud83e\udd1d</button>\n    <button aria-label=\"Clapping hands\">\ud83d\udc4f</button>\n    <button aria-label=\"Folded hands\">\ud83d\ude4f</button>\n    <button aria-label=\"Flexed biceps\">\ud83d\udcaa</button>\n    <button aria-label=\"Fire\">\ud83d\udd25</button>\n    <button aria-label=\"Sparkles\">\u2728</button>\n    <button aria-label=\"Party popper\">\ud83c\udf89</button>\n    <button aria-label=\"Bullseye\">\ud83c\udfaf</button>\n    <button aria-label=\"Sun\">\u2600\ufe0f</button>\n    <button aria-label=\"Ocean wave\">\ud83c\udf0a</button>\n    <button aria-label=\"Palm tree\">\ud83c\udf34</button>\n    <button aria-label=\"Mountain\">\u26f0\ufe0f</button>\n    <button aria-label=\"Lion\">\ud83e\udd81</button>\n    <button aria-label=\"Elephant\">\ud83d\udc18</button>\n    <button aria-label=\"Giraffe\">\ud83e\udd92</button>\n    <button aria-label=\"Zebra\">\ud83e\udd93</button>\n    <button aria-label=\"Coffee\">\u2615</button>\n    <button aria-label=\"Watermelon\">\ud83c\udf49</button>\n    <button aria-label=\"Football\">\u26bd</button>\n    <button aria-label=\"Rocket\">\ud83d\ude80</button>\n  <!-- barua-lint enabl",
          "react": {
            "import": "import { Input } from \"barua-ui\";",
            "components": [
              "Input"
            ],
            "root": "Input",
            "jsx": "<div className=\"b-emoji-picker\">\n  <Input className=\"b-input--sm\" type=\"search\" placeholder=\"Search emoji\" aria-label=\"Search emoji\" />\n  <div className=\"b-emoji-picker__grid\">\n    <button aria-label=\"Grinning face\">\ud83d\ude00</button>\n    <button aria-label=\"Tears of joy\">\ud83d\ude02</button>\n    <button aria-label=\"Smiling with hearts\">\ud83e\udd70</button>\n    <button aria-label=\"Sunglasses\">\ud83d\ude0e</button>\n    <button aria-label=\"Handshake\">\ud83e\udd1d</button>\n    <button aria-label=\"Clapping hands\">\ud83d\udc4f</button>\n    <button aria-label=\"Folded hands\">\ud83d\ude4f</button>\n    <button aria-label=\"Flexed biceps\">\ud83d\udcaa</button>\n    <button aria-label=\"Fire\">\ud83d\udd25</button>\n    <button aria-label=\"Sparkles\">\u2728</button>\n    <button aria-label=\"Party popper\">\ud83c\udf89</button>\n    <button aria-label=\"Bullseye\">\ud83c\udfaf</button>\n    <button aria-label=\"Sun\">\u2600\ufe0f</button>\n    <button aria-label=\"Ocean wave\">\ud83c\udf0a</button>\n    <button aria-label=\"Palm tree\">\ud83c\udf34</button>\n    <button aria-label=\"Mountain\">\u26f0\ufe0f</button>\n    <button aria-label=\"Lion\">\ud83e\udd81</button>\n    <button aria-label=\"Elephant\">\ud83d\udc18</button>\n    <button aria-label=\"Giraffe\">\ud83e\udd92</button>\n    <button aria-label=\"Zebra\">\ud83e\udd93</button>\n    <button aria-label=\"Coffee\">\u2615</button>\n    <button aria-label=\"Watermelon\">\ud83c\udf49</button>\n    <button aria-label=\"Football\">\u26bd</button>\n    <button aria-label=\"Rocket\">\ud83d\ude80</button>\n  </div>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "mention-picker",
          "title": "Mention Picker",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#mention-picker",
          "summary": "Typing @ in a composer opens a .b-mention-list of people \u2014 avatar initials, __name , muted __handle , with .is-active tracking the keyboard. Committed mentions render inline as .b-mention tokens.",
          "classes": [
            "b-avatar",
            "b-mention",
            "b-mention-list",
            "b-mention-list__handle",
            "b-mention-list__item",
            "b-mention-list__name"
          ],
          "markup": "<ul class=\"b-mention-list\" style=\"max-width: 20rem;\">\n  <li><button class=\"b-mention-list__item is-active\">\n    <span class=\"b-avatar\">AH</span>\n    <span class=\"b-mention-list__name\">Amina Hassan</span>\n    <span class=\"b-mention-list__handle\">@amina</span>\n  </button></li>\n  <li><button class=\"b-mention-list__item\">\n    <span class=\"b-avatar\">BO</span>\n    <span class=\"b-mention-list__name\">Baraka Otieno</span>\n    <span class=\"b-mention-list__handle\">@baraka</span>\n  </button></li>\n  <li><button class=\"b-mention-list__item\">\n    <span class=\"b-avatar\">NM</span>\n    <span class=\"b-mention-list__name\">Neema Mushi</span>\n    <span class=\"b-mention-list__handle\">@neema</span>\n  </button></li>\n  <li><button class=\"b-mention-list__item\">\n    <span class=\"b-avatar\">JK</span>\n    <span class=\"b-mention-list__name\">Juma Kibwana</span>\n    <span class=\"b-mention-list__handle\">@juma</span>\n  </button></li>\n</ul>\n<p>Handing the Q3 invoices to <span class=\"b-mention\">@amina</span> \u2014\n<span class=\"b-mention\">@baraka</span> has the port-fees context.</p>",
          "react": {
            "import": "import { Avatar } from \"barua-ui\";",
            "components": [
              "Avatar"
            ],
            "root": "Avatar",
            "jsx": "<ul className=\"b-mention-list\" style={{ maxWidth: \"20rem\" }}>\n  <li>\n    <button className=\"b-mention-list__item is-active\">\n      <Avatar>AH</Avatar>\n      <span className=\"b-mention-list__name\">Amina Hassan</span>\n      <span className=\"b-mention-list__handle\">@amina</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-mention-list__item\">\n      <Avatar>BO</Avatar>\n      <span className=\"b-mention-list__name\">Baraka Otieno</span>\n      <span className=\"b-mention-list__handle\">@baraka</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-mention-list__item\">\n      <Avatar>NM</Avatar>\n      <span className=\"b-mention-list__name\">Neema Mushi</span>\n      <span className=\"b-mention-list__handle\">@neema</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-mention-list__item\">\n      <Avatar>JK</Avatar>\n      <span className=\"b-mention-list__name\">Juma Kibwana</span>\n      <span className=\"b-mention-list__handle\">@juma</span>\n    </button>\n  </li>\n</ul>\n<p>\n  Handing the Q3 invoices to\n  <span className=\"b-mention\">@amina</span>\n  \u2014\n  <span className=\"b-mention\">@baraka</span>\n  has the port-fees context.\n</p>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "user-picker",
          "title": "User Picker",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#user-picker",
          "summary": "Compose a .b-multiselect token field with the mention list as its open listbox: chosen people become removable .b-chip tokens, the inline input keeps filtering, and the list below tracks the highlighted option.",
          "classes": [
            "b-avatar",
            "b-chip",
            "b-chip__remove",
            "b-mention-list",
            "b-mention-list__handle",
            "b-mention-list__item",
            "b-mention-list__name",
            "b-multiselect"
          ],
          "markup": "<div class=\"b-multiselect\" style=\"max-width: 24rem;\">\n  <span class=\"b-chip\">Amina Hassan\n    <button class=\"b-chip__remove\" aria-label=\"Remove Amina Hassan\">\u00d7</button>\n  </span>\n  <span class=\"b-chip\">Baraka Otieno\n    <button class=\"b-chip__remove\" aria-label=\"Remove Baraka Otieno\">\u00d7</button>\n  </span>\n  <input type=\"text\" placeholder=\"Add people\u2026\" aria-label=\"Add people\">\n</div>\n<ul class=\"b-mention-list\" role=\"listbox\" aria-label=\"People\" style=\"max-width: 24rem;\">\n  <li class=\"b-mention-list__item is-active\" role=\"option\" aria-selected=\"true\">\n    <span class=\"b-avatar\">NM</span>\n    <span class=\"b-mention-list__name\">Neema Mushi</span>\n    <span class=\"b-mention-list__handle\">@neema</span>\n  </li>\n  <li class=\"b-mention-list__item\" role=\"option\" aria-selected=\"false\">\n    <span class=\"b-avatar\">JK</span>\n    <span class=\"b-mention-list__name\">Juma Kibwana</span>\n    <span class=\"b-mention-list__handle\">@juma</span>\n  </li>\n</ul>",
          "react": {
            "import": "import { Avatar, Chip } from \"barua-ui\";",
            "components": [
              "Avatar",
              "Chip"
            ],
            "root": "Avatar",
            "jsx": "<div className=\"b-multiselect\" style={{ maxWidth: \"24rem\" }}>\n  <Chip>\n    Amina Hassan\n    <button className=\"b-chip__remove\" aria-label=\"Remove Amina Hassan\">\u00d7</button>\n  </Chip>\n  <Chip>\n    Baraka Otieno\n    <button className=\"b-chip__remove\" aria-label=\"Remove Baraka Otieno\">\u00d7</button>\n  </Chip>\n  <input type=\"text\" placeholder=\"Add people\u2026\" aria-label=\"Add people\" />\n</div>\n<ul\n  className=\"b-mention-list\"\n  role=\"listbox\"\n  aria-label=\"People\"\n  style={{ maxWidth: \"24rem\" }}\n>\n  <li\n    className=\"b-mention-list__item is-active\"\n    role=\"option\"\n    aria-selected=\"true\"\n  >\n    <Avatar>NM</Avatar>\n    <span className=\"b-mention-list__name\">Neema Mushi</span>\n    <span className=\"b-mention-list__handle\">@neema</span>\n  </li>\n  <li className=\"b-mention-list__item\" role=\"option\" aria-selected=\"false\">\n    <Avatar>JK</Avatar>\n    <span className=\"b-mention-list__name\">Juma Kibwana</span>\n    <span className=\"b-mention-list__handle\">@juma</span>\n  </li>\n</ul>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-selected"
          ]
        },
        {
          "id": "search-results",
          "title": "Search Results",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#search-results",
          "summary": "A .b-search-results stack renders each hit as a title, snippet and breadcrumb __path . Wrap matched terms in <mark> \u2014 or .b-highlight on any element \u2014 for the soft yellow wash.",
          "classes": [
            "b-highlight",
            "b-search-result",
            "b-search-result__path",
            "b-search-result__snippet",
            "b-search-result__title",
            "b-search-results"
          ],
          "markup": "<div class=\"b-search-results\" style=\"max-width: 34rem;\">\n  <a class=\"b-search-result\" href=\"#search-results\">\n    <span class=\"b-search-result__title\">Q3 invoice ready for approval</span>\n    <span class=\"b-search-result__snippet\">Baraka uploaded <mark>invoice</mark>-q3.pdf covering the Dar es Salaam port fees\u2026</span>\n    <span class=\"b-search-result__path\">Finance \u203a Invoices \u203a invoice-q3.pdf</span>\n  </a>\n  <a class=\"b-search-result\" href=\"#search-results\">\n    <span class=\"b-search-result__title\">Supplier <mark>invoice</mark> workflow</span>\n    <span class=\"b-search-result__snippet\">Amina approves any <span class=\"b-highlight\">invoice</span> above TZS 2,000,000 before payout\u2026</span>\n    <span class=\"b-search-result__path\">Handbook \u203a Finance \u203a Approvals</span>\n  </a>\n  <a class=\"b-search-result\" href=\"#search-results\">\n    <span class=\"b-search-result__title\">Mwanza depot handover notes</span>\n    <span class=\"b-search-result__snippet\">\u2026final <mark>invoice</mark> reconciliation is owed to the Mwanza depot by Friday.</span>\n    <span class=\"b-search-result__path\">Operations \u203a Mwanza \u203a Handover</span>\n  </a>\n</div>",
          "react": {
            "import": "import { SearchResult, SearchResults } from \"barua-ui\";",
            "components": [
              "SearchResult",
              "SearchResults"
            ],
            "root": "SearchResults",
            "jsx": "<SearchResults style={{ maxWidth: \"34rem\" }}>\n  <SearchResult href=\"#search-results\">\n    <span className=\"b-search-result__title\">Q3 invoice ready for approval</span>\n    <span className=\"b-search-result__snippet\">\n      Baraka uploaded\n      <mark>invoice</mark>\n      -q3.pdf covering the Dar es Salaam port fees\u2026\n    </span>\n    <span className=\"b-search-result__path\">Finance \u203a Invoices \u203a invoice-q3.pdf</span>\n  </SearchResult>\n  <SearchResult href=\"#search-results\">\n    <span className=\"b-search-result__title\">\n      Supplier\n      <mark>invoice</mark>\n      workflow\n    </span>\n    <span className=\"b-search-result__snippet\">\n      Amina approves any\n      <span className=\"b-highlight\">invoice</span>\n      above TZS 2,000,000 before payout\u2026\n    </span>\n    <span className=\"b-search-result__path\">Handbook \u203a Finance \u203a Approvals</span>\n  </SearchResult>\n  <SearchResult href=\"#search-results\">\n    <span className=\"b-search-result__title\">Mwanza depot handover notes</span>\n    <span className=\"b-search-result__snippet\">\n      \u2026final\n      <mark>invoice</mark>\n      reconciliation is owed to the Mwanza depot by Friday.\n    </span>\n    <span className=\"b-search-result__path\">Operations \u203a Mwanza \u203a Handover</span>\n  </SearchResult>\n</SearchResults>"
          }
        },
        {
          "id": "filter-bar",
          "title": "Filter Bar",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#filter-bar",
          "summary": ".b-filter-bar is a wrapping row that composes a small search field, .b-filter-chip facets, a .b-sort-control and a clear-all link \u2014 no bespoke styling, just flex and gap.",
          "classes": [
            "b-filter-bar",
            "b-filter-chip",
            "b-filter-chip__value",
            "b-input",
            "b-input--sm",
            "b-link",
            "b-search",
            "b-sort-control"
          ],
          "markup": "<div class=\"b-filter-bar\">\n  <div class=\"b-search\">\n    <input class=\"b-input b-input--sm\" type=\"search\" placeholder=\"Search documents\u2026\" aria-label=\"Search documents\">\n  </div>\n  <button class=\"b-filter-chip\">Owner</button>\n  <button class=\"b-filter-chip is-active\">Type <span class=\"b-filter-chip__value\">PDF</span></button>\n  <button class=\"b-filter-chip\">Modified</button>\n  <button class=\"b-sort-control is-desc\">Sort: Newest</button>\n  <button class=\"b-link\">Clear all</button>\n</div>",
          "react": {
            "import": "import { FilterBar, FilterChip, Input, Link, SearchField, SortControl } from \"barua-ui\";",
            "components": [
              "FilterBar",
              "FilterChip",
              "Input",
              "Link",
              "SearchField",
              "SortControl"
            ],
            "root": "FilterBar",
            "jsx": "<FilterBar>\n  <SearchField>\n    <Input className=\"b-input--sm\" type=\"search\" placeholder=\"Search documents\u2026\" aria-label=\"Search documents\" />\n  </SearchField>\n  <FilterChip>Owner</FilterChip>\n  <FilterChip active>\n    Type\n    <span className=\"b-filter-chip__value\">PDF</span>\n  </FilterChip>\n  <FilterChip>Modified</FilterChip>\n  <SortControl className=\"is-desc\">Sort: Newest</SortControl>\n  <Link>Clear all</Link>\n</FilterBar>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-invalid",
            "is-valid"
          ]
        },
        {
          "id": "filter-chip",
          "title": "Filter Chip",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#filter-chip",
          "summary": "A dashed pill that reads as \u201cadd a constraint\u201d. On hover the dashed border and label tint accent; once applied, .is-active swaps to a solid soft-accent fill and the chosen __value renders semibold beside the facet name.",
          "classes": [
            "b-filter-chip",
            "b-filter-chip__value"
          ],
          "markup": "<button class=\"b-filter-chip\">Owner</button>\n<button class=\"b-filter-chip\">Status</button>\n<button class=\"b-filter-chip is-active\">Branch <span class=\"b-filter-chip__value\">Dar es Salaam</span></button>",
          "react": {
            "import": "import { FilterChip } from \"barua-ui\";",
            "components": [
              "FilterChip"
            ],
            "root": "FilterChip",
            "jsx": "<FilterChip>Owner</FilterChip>\n<FilterChip>Status</FilterChip>\n<FilterChip active>\n  Branch\n  <span className=\"b-filter-chip__value\">Dar es Salaam</span>\n</FilterChip>"
          },
          "states": [
            "is-active"
          ]
        },
        {
          "id": "sort-control",
          "title": "Sort Control",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#sort-control",
          "summary": "A quiet text button for column or list ordering. .is-asc and .is-desc append an accent arrow via CSS; with neither class the control reads as unsorted. Cycle asc \u2192 desc \u2192 none on press and mirror the state with aria-sort on the column header.",
          "classes": [
            "b-sort-control"
          ],
          "markup": "<button class=\"b-sort-control is-asc\">Name</button>\n<button class=\"b-sort-control is-desc\">Modified</button>\n<button class=\"b-sort-control\">Size</button>",
          "react": {
            "import": "import { SortControl } from \"barua-ui\";",
            "components": [
              "SortControl"
            ],
            "root": "SortControl",
            "jsx": "<SortControl className=\"is-asc\">Name</SortControl>\n<SortControl className=\"is-desc\">Modified</SortControl>\n<SortControl>Size</SortControl>"
          },
          "states": [
            "is-asc",
            "is-desc"
          ]
        },
        {
          "id": "bulk-actions",
          "title": "Bulk Actions",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#bulk-actions",
          "summary": "When a selection exists, a glass .b-bulk-actions__bar floats in with the count and the few actions that apply to every selected item. In production, wrap it in .b-bulk-actions to pin it bottom-center; the bar is shown here statically.",
          "classes": [
            "b-btn",
            "b-btn--danger-tinted",
            "b-btn--ghost",
            "b-btn--sm",
            "b-bulk-actions__bar",
            "b-bulk-actions__count",
            "b-divider",
            "b-divider--vertical",
            "b-icon-btn"
          ],
          "markup": "<div class=\"b-bulk-actions__bar\">\n  <span class=\"b-bulk-actions__count\">3 selected</span>\n  <button class=\"b-btn b-btn--ghost b-btn--sm\">Move</button>\n  <button class=\"b-btn b-btn--ghost b-btn--sm\">Share</button>\n  <hr class=\"b-divider b-divider--vertical\">\n  <button class=\"b-btn b-btn--danger-tinted b-btn--sm\">Delete</button>\n  <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Clear selection\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m5 5 10 10M15 5 5 15\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg>\n  </button>\n</div>",
          "react": {
            "import": "import { Button, Divider } from \"barua-ui\";",
            "components": [
              "Button",
              "Divider"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-bulk-actions__bar\">\n  <span className=\"b-bulk-actions__count\">3 selected</span>\n  <Button variant=\"ghost\" size=\"sm\">Move</Button>\n  <Button variant=\"ghost\" size=\"sm\">Share</Button>\n  <Divider vertical />\n  <Button variant=\"danger-tinted\" size=\"sm\">Delete</Button>\n  <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Clear selection\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"m5 5 10 10M15 5 5 15\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n    </svg>\n  </Button>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "multi-select",
          "title": "Multi-Select",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#multi-select",
          "summary": "A token field: .b-multiselect looks like one input but holds removable .b-chip tokens ahead of a borderless inline input. The whole frame lights up on :focus-within , so it behaves like a single control.",
          "classes": [
            "b-chip",
            "b-chip__remove",
            "b-multiselect"
          ],
          "markup": "<div class=\"b-multiselect\" style=\"max-width: 26rem;\">\n  <span class=\"b-chip\">Dar es Salaam\n    <button class=\"b-chip__remove\" aria-label=\"Remove Dar es Salaam\">\u00d7</button>\n  </span>\n  <span class=\"b-chip\">Mwanza\n    <button class=\"b-chip__remove\" aria-label=\"Remove Mwanza\">\u00d7</button>\n  </span>\n  <span class=\"b-chip\">Arusha\n    <button class=\"b-chip__remove\" aria-label=\"Remove Arusha\">\u00d7</button>\n  </span>\n  <input type=\"text\" placeholder=\"Add branch\u2026\" aria-label=\"Add branch\">\n</div>",
          "react": {
            "import": "import { Chip } from \"barua-ui\";",
            "components": [
              "Chip"
            ],
            "root": "Chip",
            "jsx": "<div className=\"b-multiselect\" style={{ maxWidth: \"26rem\" }}>\n  <Chip>\n    Dar es Salaam\n    <button className=\"b-chip__remove\" aria-label=\"Remove Dar es Salaam\">\u00d7</button>\n  </Chip>\n  <Chip>\n    Mwanza\n    <button className=\"b-chip__remove\" aria-label=\"Remove Mwanza\">\u00d7</button>\n  </Chip>\n  <Chip>\n    Arusha\n    <button className=\"b-chip__remove\" aria-label=\"Remove Arusha\">\u00d7</button>\n  </Chip>\n  <input type=\"text\" placeholder=\"Add branch\u2026\" aria-label=\"Add branch\" />\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane"
          ],
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "file-browser",
          "title": "File Browser",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#file-browser",
          "summary": "A two-pane Finder-style shell: __side holds a compact folder .b-tree on a recessed fill, __main holds a responsive .b-file-grid of .b-file-tile items. The selected tile gets a soft-accent wash and a solid accent name pill \u2014 exactly like the desktop.",
          "classes": [
            "b-file-browser",
            "b-file-browser__main",
            "b-file-browser__side",
            "b-file-grid",
            "b-file-tile",
            "b-file-tile__icon",
            "b-file-tile__name",
            "b-tree",
            "b-tree-item",
            "b-tree-item__row"
          ],
          "markup": "<div class=\"b-file-browser\">\n  <aside class=\"b-file-browser__side\">\n    <ul class=\"b-tree\">\n      <li>\n        <details class=\"b-tree-item\" open>\n          <summary><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>Finance</summary>\n          <ul class=\"b-tree\">\n            <li><div class=\"b-tree-item__row is-selected\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>Invoices</div></li>\n            <li><div class=\"b-tree-item__row\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>Receipts</div></li>\n          </ul>\n        </details>\n      </li>\n      <li><div class=\"b-tree-item__row\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>Operations</div></li>\n      <li><div class=\"b-tree-item__row\"><s",
          "react": {
            "import": "import { FileBrowser, Tree, TreeItem } from \"barua-ui\";",
            "components": [
              "FileBrowser",
              "Tree",
              "TreeItem"
            ],
            "root": "FileBrowser",
            "jsx": "<FileBrowser>\n  <aside className=\"b-file-browser__side\">\n    <Tree>\n      <li>\n        <TreeItem open>\n          <summary>\n            <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n              <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n            </svg>\n            Finance\n          </summary>\n          <Tree>\n            <li>\n              <div className=\"b-tree-item__row is-selected\">\n                <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n                </svg>\n                Invoices\n              </div>\n            </li>\n            <li>\n              <div className=\"b-tree-item__row\">\n                <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n                </svg>\n                Receipts\n              </div>\n            </li>\n          </Tree>\n        </TreeItem>\n      </li>\n      <li>\n        <div className=\"b-tree-item__row\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n            <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n          </svg>\n          Operations\n        </div>\n      </li>\n      <li>\n        <div className=\"b-tree-item__row\"></div>\n      </li>\n    </Tree>\n  </aside>\n</FileBrowser>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "folder-tree",
          "title": "Folder Tree",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#folder-tree",
          "summary": "The generic disclosure tree is documented in Content \u203a Tree . Flavoured with folder icons it becomes a location picker: <details class=\"b-tree-item\"> for branches, __row for leaves, .is-selected for the current folder.",
          "classes": [
            "b-tree",
            "b-tree-item",
            "b-tree-item__row"
          ],
          "markup": "<ul class=\"b-tree\" style=\"max-width: 18rem;\">\n  <li>\n    <details class=\"b-tree-item\" open>\n      <summary><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>Dar es Salaam HQ</summary>\n      <ul class=\"b-tree\">\n        <li>\n          <details class=\"b-tree-item\" open>\n            <summary><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>Finance</summary>\n            <ul class=\"b-tree\">\n              <li><div class=\"b-tree-item__row is-selected\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>Invoices</div></li>\n              <li><div class=\"b-tree-item__row\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>Payroll</div></li>\n            </ul>\n          </details>\n        </li>\n        <li><div cl",
          "react": {
            "import": "import { Tree, TreeItem } from \"barua-ui\";",
            "components": [
              "Tree",
              "TreeItem"
            ],
            "root": "Tree",
            "jsx": "<Tree style={{ maxWidth: \"18rem\" }}>\n  <li>\n    <TreeItem open>\n      <summary>\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        </svg>\n        Dar es Salaam HQ\n      </summary>\n      <Tree>\n        <li>\n          <TreeItem open>\n            <summary>\n              <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n              </svg>\n              Finance\n            </summary>\n            <Tree>\n              <li>\n                <div className=\"b-tree-item__row is-selected\">\n                  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                    <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n                  </svg>\n                  Invoices\n                </div>\n              </li>\n              <li>\n                <div className=\"b-tree-item__row\">\n                  <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n                    <path d=\"M3 5.5A1.5 1.5 0 0 1 4.5 4h3l2 2h6A1.5 1.5 0 0 1 17 7.5v7a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 14.5v-9Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n                  </svg>\n                  Payroll\n                </div>\n              </li>\n            </Tree>\n          </TreeItem>\n        </li>\n        <li></li>\n      </Tree>\n    </TreeItem>\n  </li>\n</Tree>"
          },
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "activity-log",
          "title": "Activity Log",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#activity-log",
          "summary": ".b-log renders each __entry on a three-column baseline grid \u2014 semibold __actor , muted __action with object names in <code> , and a tabular __time pinned trailing. Rows separate with hairlines and highlight on hover.",
          "classes": [
            "b-log",
            "b-log__action",
            "b-log__actor",
            "b-log__entry",
            "b-log__time"
          ],
          "markup": "<div class=\"b-log\" style=\"max-width: 40rem;\">\n  <div class=\"b-log__entry\">\n    <span class=\"b-log__actor\">Amina Hassan</span>\n    <span class=\"b-log__action\">uploaded <code>invoice-q3.pdf</code> to Finance / Invoices</span>\n    <time class=\"b-log__time\">2 min ago</time>\n  </div>\n  <div class=\"b-log__entry\">\n    <span class=\"b-log__actor\">Baraka Otieno</span>\n    <span class=\"b-log__action\">approved purchase order <code>PO-2214</code></span>\n    <time class=\"b-log__time\">38 min ago</time>\n  </div>\n  <div class=\"b-log__entry\">\n    <span class=\"b-log__actor\">Neema Mushi</span>\n    <span class=\"b-log__action\">renamed <code>port-fees-draft.xlsx</code> to <code>port-fees.xlsx</code></span>\n    <time class=\"b-log__time\">Yesterday</time>\n  </div>\n  <div class=\"b-log__entry\">\n    <span class=\"b-log__actor\">Juma Kibwana</span>\n    <span class=\"b-log__action\">shared <code>tender-brief.docx</code> with the Mwanza depot</span>\n    <time class=\"b-log__time\">Mon 09:12</time>\n  </div>\n</div>",
          "react": {
            "import": "import { Log } from \"barua-ui\";",
            "components": [
              "Log"
            ],
            "root": "Log",
            "jsx": "<Log style={{ maxWidth: \"40rem\" }}>\n  <div className=\"b-log__entry\">\n    <span className=\"b-log__actor\">Amina Hassan</span>\n    <span className=\"b-log__action\">\n      uploaded\n      <code>invoice-q3.pdf</code>\n      to Finance / Invoices\n    </span>\n    <time className=\"b-log__time\">2 min ago</time>\n  </div>\n  <div className=\"b-log__entry\">\n    <span className=\"b-log__actor\">Baraka Otieno</span>\n    <span className=\"b-log__action\">\n      approved purchase order\n      <code>PO-2214</code>\n    </span>\n    <time className=\"b-log__time\">38 min ago</time>\n  </div>\n  <div className=\"b-log__entry\">\n    <span className=\"b-log__actor\">Neema Mushi</span>\n    <span className=\"b-log__action\">\n      renamed\n      <code>port-fees-draft.xlsx</code>\n      to\n      <code>port-fees.xlsx</code>\n    </span>\n    <time className=\"b-log__time\">Yesterday</time>\n  </div>\n  <div className=\"b-log__entry\">\n    <span className=\"b-log__actor\">Juma Kibwana</span>\n    <span className=\"b-log__action\">\n      shared\n      <code>tender-brief.docx</code>\n      with the Mwanza depot\n    </span>\n    <time className=\"b-log__time\">Mon 09:12</time>\n  </div>\n</Log>"
          },
          "knobs": [
            "--b-logo-h",
            "--b-marquee-gap"
          ]
        },
        {
          "id": "audit-log",
          "title": "Audit Log",
          "category": "specialized",
          "url": "https://ui.barua.tz/docs/specialized.html#audit-log",
          "summary": "Security review needs provenance. .b-log--audit widens the entry grid to four columns \u2014 7.5rem max-content 1fr max-content \u2014 so a monospace __ip leads each row and full timestamps align down the right edge.",
          "classes": [
            "b-log",
            "b-log--audit",
            "b-log__action",
            "b-log__actor",
            "b-log__entry",
            "b-log__ip",
            "b-log__time"
          ],
          "markup": "<div class=\"b-log b-log--audit\">\n  <div class=\"b-log__entry\">\n    <span class=\"b-log__ip\">197.250.14.62</span>\n    <span class=\"b-log__actor\">amina</span>\n    <span class=\"b-log__action\">signed in with <code>passkey</code></span>\n    <time class=\"b-log__time\">2026-08-26 09:14</time>\n  </div>\n  <div class=\"b-log__entry\">\n    <span class=\"b-log__ip\">197.250.14.62</span>\n    <span class=\"b-log__actor\">amina</span>\n    <span class=\"b-log__action\">exported <code>invoice-q3.pdf</code></span>\n    <time class=\"b-log__time\">2026-08-26 09:21</time>\n  </div>\n  <div class=\"b-log__entry\">\n    <span class=\"b-log__ip\">41.222.180.7</span>\n    <span class=\"b-log__actor\">baraka</span>\n    <span class=\"b-log__action\">changed role of <code>@juma</code> to <code>editor</code></span>\n    <time class=\"b-log__time\">2026-08-25 17:03</time>\n  </div>\n  <div class=\"b-log__entry\">\n    <span class=\"b-log__ip\">196.249.5.118</span>\n    <span class=\"b-log__actor\">system</span>\n    <span class=\"b-log__action\">rotated API key <code>brk_live_\u20269f2</code></span>\n    <time class=\"b-log__time\">2026-08-25 02:00</time>\n  </div>\n</div>",
          "react": {
            "import": "import { Log } from \"barua-ui\";",
            "components": [
              "Log"
            ],
            "root": "Log",
            "jsx": "<Log className=\"b-log--audit\">\n  <div className=\"b-log__entry\">\n    <span className=\"b-log__ip\">197.250.14.62</span>\n    <span className=\"b-log__actor\">amina</span>\n    <span className=\"b-log__action\">\n      signed in with\n      <code>passkey</code>\n    </span>\n    <time className=\"b-log__time\">2026-08-26 09:14</time>\n  </div>\n  <div className=\"b-log__entry\">\n    <span className=\"b-log__ip\">197.250.14.62</span>\n    <span className=\"b-log__actor\">amina</span>\n    <span className=\"b-log__action\">\n      exported\n      <code>invoice-q3.pdf</code>\n    </span>\n    <time className=\"b-log__time\">2026-08-26 09:21</time>\n  </div>\n  <div className=\"b-log__entry\">\n    <span className=\"b-log__ip\">41.222.180.7</span>\n    <span className=\"b-log__actor\">baraka</span>\n    <span className=\"b-log__action\">\n      changed role of\n      <code>@juma</code>\n      to\n      <code>editor</code>\n    </span>\n    <time className=\"b-log__time\">2026-08-25 17:03</time>\n  </div>\n  <div className=\"b-log__entry\">\n    <span className=\"b-log__ip\">196.249.5.118</span>\n    <span className=\"b-log__actor\">system</span>\n    <span className=\"b-log__action\">\n      rotated API key\n      <code>brk_live_\u20269f2</code>\n    </span>\n    <time className=\"b-log__time\">2026-08-25 02:00</time>\n  </div>\n</Log>"
          },
          "knobs": [
            "--b-logo-h",
            "--b-marquee-gap"
          ]
        }
      ]
    },
    {
      "id": "authentication",
      "title": "Authentication \u2014 sign in, OTP, account switching",
      "url": "https://ui.barua.tz/docs/authentication.html",
      "components": [
        {
          "id": "sign-in",
          "title": "Sign In",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#sign-in",
          "summary": "The flagship flow. .b-auth-card is a glass panel that stacks a gradient __logo , __title and __subtitle , a .b-btn--provider social button, a .b-divider--label , standard .b-field rows and a block primary action. The card is shown alone here \u2014 in an app, place it inside the .b-auth page wrapper, which centers it over a full-height, aurora-tinted background. Wrap the controls in a real <form> so Enter submits.",
          "classes": [
            "b-auth-card",
            "b-auth-card__footer",
            "b-auth-card__logo",
            "b-auth-card__subtitle",
            "b-auth-card__title",
            "b-btn",
            "b-btn--block",
            "b-btn--primary",
            "b-btn--provider",
            "b-divider--label",
            "b-field",
            "b-hstack",
            "b-input",
            "b-label",
            "b-link",
            "b-stack--between"
          ],
          "markup": "<div class=\"b-auth-card\" style=\"max-width: 24rem; margin-inline: auto\">\n  <div class=\"b-auth-card__logo\" aria-hidden=\"true\">\n    <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\"><rect x=\"2.75\" y=\"4.75\" width=\"18.5\" height=\"14.5\" rx=\"3.25\" stroke=\"currentColor\" stroke-width=\"1.7\"/><path d=\"m4.75 8.25 7.25 5.25 7.25-5.25\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </div>\n  <h2 class=\"b-auth-card__title\">Welcome back</h2>\n  <p class=\"b-auth-card__subtitle\">Sign in to your Neurotech workspace.</p>\n  <button class=\"b-btn b-btn--provider b-btn--block\" type=\"button\">\n    <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path fill=\"#4285F4\" d=\"M23.5 12.27c0-.85-.08-1.66-.22-2.45H12v4.64h6.46a5.53 5.53 0 0 1-2.4 3.62v3h3.88c2.27-2.09 3.56-5.17 3.56-8.81Z\"/><path fill=\"#34A853\" d=\"M12 24c3.24 0 5.96-1.07 7.94-2.91l-3.88-3c-1.08.72-2.45 1.15-4.06 1.15-3.13 0-5.78-2.11-6.72-4.95H1.27v3.1A12 12 0 0 0 12 24Z\"/><path fill=\"#FBBC05\" d=\"M5.28 14.29a7.2 7.2 0 0 1 0-4.58v-3.1H1.27a12 12 0 0 0 0 10.78l4.01-3.1Z\"/><path fill=\"#EA4335\" d=\"M12 4.77c1.76 0 3.34.6 4.59 1.8l3.44-3.44A11.97 11.97 0 0 0 12 0 12 12 0 0 0 1.27 6.61l4.01 3.1C6.22 6.88 8.87 4.77 12 4.77Z\"/></svg>\n    Continue with Google\n  </button>\n  <div class=\"b-divider--label\">or</div>\n  <div class=\"b-field\">\n    <label class=\"b-label\" for=\"signin-email\">E",
          "react": {
            "import": "import { AuthCard, Button, Field, Label } from \"barua-ui\";",
            "components": [
              "AuthCard",
              "Button",
              "Field",
              "Label"
            ],
            "root": "AuthCard",
            "jsx": "<AuthCard style={{ maxWidth: \"24rem\", marginInline: \"auto\" }}>\n  <div className=\"b-auth-card__logo\" aria-hidden=\"true\">\n    <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\">\n      <rect x=\"2.75\" y=\"4.75\" width=\"18.5\" height=\"14.5\" rx=\"3.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" />\n      <path d=\"m4.75 8.25 7.25 5.25 7.25-5.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </div>\n  <h2 className=\"b-auth-card__title\">Welcome back</h2>\n  <p className=\"b-auth-card__subtitle\">Sign in to your Neurotech workspace.</p>\n  <Button variant=\"provider\" block type=\"button\">\n    <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n      <path fill=\"#4285F4\" d=\"M23.5 12.27c0-.85-.08-1.66-.22-2.45H12v4.64h6.46a5.53 5.53 0 0 1-2.4 3.62v3h3.88c2.27-2.09 3.56-5.17 3.56-8.81Z\" />\n      <path fill=\"#34A853\" d=\"M12 24c3.24 0 5.96-1.07 7.94-2.91l-3.88-3c-1.08.72-2.45 1.15-4.06 1.15-3.13 0-5.78-2.11-6.72-4.95H1.27v3.1A12 12 0 0 0 12 24Z\" />\n      <path fill=\"#FBBC05\" d=\"M5.28 14.29a7.2 7.2 0 0 1 0-4.58v-3.1H1.27a12 12 0 0 0 0 10.78l4.01-3.1Z\" />\n      <path fill=\"#EA4335\" d=\"M12 4.77c1.76 0 3.34.6 4.59 1.8l3.44-3.44A11.97 11.97 0 0 0 12 0 12 12 0 0 0 1.27 6.61l4.01 3.1C6.22 6.88 8.87 4.77 12 4.77Z\" />\n    </svg>\n    Continue with Google\n  </Button>\n  <div className=\"b-divider--label\">or</div>\n  <Field>\n    <Label htmlFor=\"signin-email\">E</Label>\n  </Field>\n</AuthCard>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "sign-up",
          "title": "Sign Up",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#sign-up",
          "summary": "Same card, different fields. Keep it to the essentials \u2014 name, email, password, terms via .b-checkbox \u2014 and defer everything else to onboarding.",
          "classes": [
            "b-auth-card",
            "b-auth-card__footer",
            "b-auth-card__subtitle",
            "b-auth-card__title",
            "b-btn",
            "b-btn--block",
            "b-btn--primary",
            "b-checkbox",
            "b-field",
            "b-input",
            "b-label"
          ],
          "markup": "<div class=\"b-auth-card\" style=\"max-width: 24rem; margin-inline: auto\">\n  <h2 class=\"b-auth-card__title\">Create your account</h2>\n  <p class=\"b-auth-card__subtitle\">Start your 14-day Neurotech trial.</p>\n  <div class=\"b-field\">\n    <label class=\"b-label\" for=\"signup-name\">Full name</label>\n    <input class=\"b-input\" id=\"signup-name\" name=\"name\" type=\"text\" autocomplete=\"name\" placeholder=\"Amina Hassan\">\n  </div>\n  <div class=\"b-field\">\n    <label class=\"b-label\" for=\"signup-email\">Work email</label>\n    <input class=\"b-input\" id=\"signup-email\" name=\"email\" type=\"email\" autocomplete=\"email\" placeholder=\"amina@neurotech.africa\">\n  </div>\n  <div class=\"b-field\">\n    <label class=\"b-label\" for=\"signup-password\">Password</label>\n    <input class=\"b-input\" id=\"signup-password\" name=\"new-password\" type=\"password\" autocomplete=\"new-password\" placeholder=\"8+ characters\">\n  </div>\n  <label class=\"b-checkbox\">\n    <input type=\"checkbox\" name=\"terms\">\n    <span>I agree to the <a href=\"#sign-up\">Terms of Service</a> and <a href=\"#sign-up\">Privacy Policy</a></span>\n  </label>\n  <button class=\"b-btn b-btn--primary b-btn--block\" type=\"button\">Create account</button>\n  <p class=\"b-auth-card__footer\">Already have an account? <a href=\"#sign-in\">Sign in</a></p>\n</div>",
          "react": {
            "import": "import { AuthCard, Button, Checkbox, Field, Input, Label } from \"barua-ui\";",
            "components": [
              "AuthCard",
              "Button",
              "Checkbox",
              "Field",
              "Input",
              "Label"
            ],
            "root": "AuthCard",
            "jsx": "<AuthCard style={{ maxWidth: \"24rem\", marginInline: \"auto\" }}>\n  <h2 className=\"b-auth-card__title\">Create your account</h2>\n  <p className=\"b-auth-card__subtitle\">Start your 14-day Neurotech trial.</p>\n  <Field>\n    <Label htmlFor=\"signup-name\">Full name</Label>\n    <Input id=\"signup-name\" name=\"name\" type=\"text\" autoComplete=\"name\" placeholder=\"Amina Hassan\" />\n  </Field>\n  <Field>\n    <Label htmlFor=\"signup-email\">Work email</Label>\n    <Input id=\"signup-email\" name=\"email\" type=\"email\" autoComplete=\"email\" placeholder=\"amina@neurotech.africa\" />\n  </Field>\n  <Field>\n    <Label htmlFor=\"signup-password\">Password</Label>\n    <Input id=\"signup-password\" name=\"new-password\" type=\"password\" autoComplete=\"new-password\" placeholder=\"8+ characters\" />\n  </Field>\n  <Checkbox>\n    <input type=\"checkbox\" name=\"terms\" />\n    <span>\n      I agree to the\n      <a href=\"#sign-up\">Terms of Service</a>\n      and\n      <a href=\"#sign-up\">Privacy Policy</a>\n    </span>\n  </Checkbox>\n  <Button variant=\"primary\" block type=\"button\">Create account</Button>\n  <p className=\"b-auth-card__footer\">\n    Already have an account?\n    <a href=\"#sign-in\">Sign in</a>\n  </p>\n</AuthCard>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "forgot-password",
          "title": "Forgot Password",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#forgot-password",
          "summary": "One field, one action, one way back. Confirm the send generically (\u201cIf an account exists for that address\u2026\u201d) so the flow never leaks which emails are registered.",
          "classes": [
            "b-auth-card",
            "b-auth-card__footer",
            "b-auth-card__subtitle",
            "b-auth-card__title",
            "b-btn",
            "b-btn--block",
            "b-btn--primary",
            "b-field",
            "b-input",
            "b-label",
            "b-link",
            "b-link--muted"
          ],
          "markup": "<div class=\"b-auth-card\" style=\"max-width: 24rem; margin-inline: auto\">\n  <h2 class=\"b-auth-card__title\">Reset your password</h2>\n  <p class=\"b-auth-card__subtitle\">We&rsquo;ll email you a secure reset link.</p>\n  <div class=\"b-field\">\n    <label class=\"b-label\" for=\"forgot-email\">Email</label>\n    <input class=\"b-input\" id=\"forgot-email\" name=\"email\" type=\"email\" autocomplete=\"email\" placeholder=\"amina@neurotech.africa\">\n  </div>\n  <button class=\"b-btn b-btn--primary b-btn--block\" type=\"button\">Send reset link</button>\n  <p class=\"b-auth-card__footer\"><a class=\"b-link b-link--muted\" href=\"#sign-in\">\u2190 Back to sign in</a></p>\n</div>",
          "react": {
            "import": "import { AuthCard, Button, Field, Input, Label, Link } from \"barua-ui\";",
            "components": [
              "AuthCard",
              "Button",
              "Field",
              "Input",
              "Label",
              "Link"
            ],
            "root": "AuthCard",
            "jsx": "<AuthCard style={{ maxWidth: \"24rem\", marginInline: \"auto\" }}>\n  <h2 className=\"b-auth-card__title\">Reset your password</h2>\n  <p className=\"b-auth-card__subtitle\">We\u2019ll email you a secure reset link.</p>\n  <Field>\n    <Label htmlFor=\"forgot-email\">Email</Label>\n    <Input id=\"forgot-email\" name=\"email\" type=\"email\" autoComplete=\"email\" placeholder=\"amina@neurotech.africa\" />\n  </Field>\n  <Button variant=\"primary\" block type=\"button\">Send reset link</Button>\n  <p className=\"b-auth-card__footer\">\n    <Link className=\"b-link--muted\" href=\"#sign-in\">\u2190 Back to sign in</Link>\n  </p>\n</AuthCard>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "reset-password",
          "title": "Reset Password",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#reset-password",
          "summary": "Two password fields plus a .b-help hint about strength. Both inputs use autocomplete=\"new-password\" , which is the cue for password managers to offer a generated password.",
          "classes": [
            "b-auth-card",
            "b-auth-card__subtitle",
            "b-auth-card__title",
            "b-btn",
            "b-btn--block",
            "b-btn--primary",
            "b-field",
            "b-help",
            "b-input",
            "b-label"
          ],
          "markup": "<div class=\"b-auth-card\" style=\"max-width: 24rem; margin-inline: auto\">\n  <h2 class=\"b-auth-card__title\">Choose a new password</h2>\n  <p class=\"b-auth-card__subtitle\">for amina@neurotech.africa</p>\n  <div class=\"b-field\">\n    <label class=\"b-label\" for=\"reset-new\">New password</label>\n    <input class=\"b-input\" id=\"reset-new\" name=\"new-password\" type=\"password\" autocomplete=\"new-password\">\n    <p class=\"b-help\">At least 8 characters with a number and a symbol \u2014 a long passphrase is even stronger.</p>\n  </div>\n  <div class=\"b-field\">\n    <label class=\"b-label\" for=\"reset-confirm\">Confirm new password</label>\n    <input class=\"b-input\" id=\"reset-confirm\" name=\"confirm-password\" type=\"password\" autocomplete=\"new-password\">\n  </div>\n  <button class=\"b-btn b-btn--primary b-btn--block\" type=\"button\">Reset password</button>\n</div>",
          "react": {
            "import": "import { AuthCard, Button, Field, Help, Input, Label } from \"barua-ui\";",
            "components": [
              "AuthCard",
              "Button",
              "Field",
              "Help",
              "Input",
              "Label"
            ],
            "root": "AuthCard",
            "jsx": "<AuthCard style={{ maxWidth: \"24rem\", marginInline: \"auto\" }}>\n  <h2 className=\"b-auth-card__title\">Choose a new password</h2>\n  <p className=\"b-auth-card__subtitle\">for amina@neurotech.africa</p>\n  <Field>\n    <Label htmlFor=\"reset-new\">New password</Label>\n    <Input id=\"reset-new\" name=\"new-password\" type=\"password\" autoComplete=\"new-password\" />\n    <Help>At least 8 characters with a number and a symbol \u2014 a long passphrase is even stronger.</Help>\n  </Field>\n  <Field>\n    <Label htmlFor=\"reset-confirm\">Confirm new password</Label>\n    <Input id=\"reset-confirm\" name=\"confirm-password\" type=\"password\" autoComplete=\"new-password\" />\n  </Field>\n  <Button variant=\"primary\" block type=\"button\">Reset password</Button>\n</AuthCard>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "otp-input",
          "title": "OTP Input",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#otp-input",
          "summary": ".b-otp is a row of six single-character boxes. Add data-b-otp and barua.js wires the behavior: every box gets inputmode=\"numeric\" and maxlength=\"1\" , typing a digit auto-advances to the next box (toggling .is-filled ), Backspace on an empty box steps back, and pasting a copied code distributes the digits across the whole group.",
          "classes": [
            "b-otp"
          ],
          "markup": "<div class=\"b-otp\" data-b-otp role=\"group\" aria-label=\"One-time code\">\n  <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" autocomplete=\"one-time-code\" aria-label=\"Digit 1\" value=\"7\" class=\"is-filled\">\n  <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 2\">\n  <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 3\">\n  <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 4\">\n  <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 5\">\n  <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 6\">\n</div>",
          "react": {
            "import": "import { OtpInput } from \"barua-ui\";",
            "components": [
              "OtpInput"
            ],
            "root": "OtpInput",
            "jsx": "<OtpInput data-b-otp=\"\" role=\"group\" aria-label=\"One-time code\">\n  <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" autoComplete=\"one-time-code\" aria-label=\"Digit 1\" value=\"7\" className=\"is-filled\" />\n  <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 2\" />\n  <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 3\" />\n  <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 4\" />\n  <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 5\" />\n  <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 6\" />\n</OtpInput>"
          },
          "variants": [
            {
              "id": "otp-invalid",
              "title": "Invalid state"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset"
          ],
          "states": [
            "is-filled",
            "is-invalid"
          ]
        },
        {
          "id": "verification",
          "title": "Verification",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#verification",
          "summary": "The screen after sign-up, built from the result states in Feedback : .b-result--confirm with a tinted resend action and an escape hatch to correct the address.",
          "classes": [
            "b-btn",
            "b-btn--tinted",
            "b-link",
            "b-link--muted",
            "b-result",
            "b-result--confirm",
            "b-result__actions",
            "b-result__desc",
            "b-result__icon",
            "b-result__title"
          ],
          "markup": "<div class=\"b-result b-result--confirm\">\n  <div class=\"b-result__icon\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\" fill=\"none\"><rect x=\"2.75\" y=\"4.75\" width=\"18.5\" height=\"14.5\" rx=\"3.25\" stroke=\"currentColor\" stroke-width=\"1.7\"/><path d=\"m4.75 8.25 7.25 5.25 7.25-5.25\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </div>\n  <h2 class=\"b-result__title\">Check your inbox</h2>\n  <p class=\"b-result__desc\">We sent a verification link to <strong>amina@neurotech.africa</strong>. It expires in 24 hours.</p>\n  <div class=\"b-result__actions\">\n    <button class=\"b-btn b-btn--tinted\" type=\"button\">Resend email</button>\n    <a class=\"b-link b-link--muted\" href=\"#sign-up\">Change email address</a>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, Link, Result } from \"barua-ui\";",
            "components": [
              "Button",
              "Link",
              "Result"
            ],
            "root": "Result",
            "jsx": "<Result tone=\"confirm\">\n  <div className=\"b-result__icon\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\" fill=\"none\">\n      <rect x=\"2.75\" y=\"4.75\" width=\"18.5\" height=\"14.5\" rx=\"3.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" />\n      <path d=\"m4.75 8.25 7.25 5.25 7.25-5.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </div>\n  <h2 className=\"b-result__title\">Check your inbox</h2>\n  <p className=\"b-result__desc\">\n    We sent a verification link to\n    <strong>amina@neurotech.africa</strong>\n    . It expires in 24 hours.\n  </p>\n  <div className=\"b-result__actions\">\n    <Button variant=\"tinted\" type=\"button\">Resend email</Button>\n    <Link className=\"b-link--muted\" href=\"#sign-up\">Change email address</Link>\n  </div>\n</Result>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "passkey-prompt",
          "title": "Passkey Prompt",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#passkey-prompt",
          "summary": ".b-passkey is a focused prompt for WebAuthn sign-in: a soft accent __icon , a one-line pitch, a primary action and a ghost fallback to other methods.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-passkey",
            "b-passkey__desc",
            "b-passkey__icon",
            "b-passkey__title"
          ],
          "markup": "<div class=\"b-passkey\" style=\"max-width: 24rem\">\n  <div class=\"b-passkey__icon\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\" width=\"26\" height=\"26\" fill=\"none\"><path d=\"M7.5 10.5a4.5 4.5 0 0 1 9 0v3a13.5 13.5 0 0 1-.56 3.85\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/><path d=\"M12 10.5v3.25a9.75 9.75 0 0 1-1.4 5.05\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/><path d=\"M4.5 13.5v-3a7.5 7.5 0 0 1 11.87-6.1M19.5 10.2v3.3c0 1.7-.28 3.33-.8 4.85\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg>\n  </div>\n  <h3 class=\"b-passkey__title\">Sign in with a passkey</h3>\n  <p class=\"b-passkey__desc\">Use Face ID, Touch ID or your device PIN. Nothing to remember, nothing to phish.</p>\n  <button class=\"b-btn b-btn--primary\" type=\"button\">Use passkey</button>\n  <button class=\"b-btn b-btn--ghost\" type=\"button\">Other options</button>\n</div>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-passkey\" style={{ maxWidth: \"24rem\" }}>\n  <div className=\"b-passkey__icon\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\" width=\"26\" height=\"26\" fill=\"none\">\n      <path d=\"M7.5 10.5a4.5 4.5 0 0 1 9 0v3a13.5 13.5 0 0 1-.56 3.85\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n      <path d=\"M12 10.5v3.25a9.75 9.75 0 0 1-1.4 5.05\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n      <path d=\"M4.5 13.5v-3a7.5 7.5 0 0 1 11.87-6.1M19.5 10.2v3.3c0 1.7-.28 3.33-.8 4.85\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n    </svg>\n  </div>\n  <h3 className=\"b-passkey__title\">Sign in with a passkey</h3>\n  <p className=\"b-passkey__desc\">Use Face ID, Touch ID or your device PIN. Nothing to remember, nothing to phish.</p>\n  <Button variant=\"primary\" type=\"button\">Use passkey</Button>\n  <Button variant=\"ghost\" type=\"button\">Other options</Button>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "two-factor-authentication",
          "title": "Two-Factor Authentication",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#two-factor-authentication",
          "summary": "Composed, not invented: a .b-auth-card carrying an OTP group, a remember-device .b-switch and a block verify action.",
          "classes": [
            "b-auth-card",
            "b-auth-card__footer",
            "b-auth-card__subtitle",
            "b-auth-card__title",
            "b-btn",
            "b-btn--block",
            "b-btn--primary",
            "b-otp",
            "b-switch"
          ],
          "markup": "<div class=\"b-auth-card\" style=\"max-width: 24rem; margin-inline: auto\">\n  <h2 class=\"b-auth-card__title\">Two-factor code</h2>\n  <p class=\"b-auth-card__subtitle\">Enter the 6-digit code from your authenticator app.</p>\n  <div class=\"b-otp\" data-b-otp role=\"group\" aria-label=\"Two-factor code\">\n    <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" autocomplete=\"one-time-code\" aria-label=\"Digit 1\">\n    <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 2\">\n    <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 3\">\n    <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 4\">\n    <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 5\">\n    <input type=\"text\" inputmode=\"numeric\" maxlength=\"1\" aria-label=\"Digit 6\">\n  </div>\n  <label class=\"b-switch\">\n    <input type=\"checkbox\" checked>\n    Remember this device for 30 days\n  </label>\n  <button class=\"b-btn b-btn--primary b-btn--block\" type=\"button\">Verify</button>\n  <p class=\"b-auth-card__footer\">Lost your device? <a href=\"#two-factor-authentication\">Use a recovery code</a></p>\n</div>",
          "react": {
            "import": "import { AuthCard, Button, OtpInput, Switch } from \"barua-ui\";",
            "components": [
              "AuthCard",
              "Button",
              "OtpInput",
              "Switch"
            ],
            "root": "AuthCard",
            "jsx": "<AuthCard style={{ maxWidth: \"24rem\", marginInline: \"auto\" }}>\n  <h2 className=\"b-auth-card__title\">Two-factor code</h2>\n  <p className=\"b-auth-card__subtitle\">Enter the 6-digit code from your authenticator app.</p>\n  <OtpInput data-b-otp=\"\" role=\"group\" aria-label=\"Two-factor code\">\n    <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" autoComplete=\"one-time-code\" aria-label=\"Digit 1\" />\n    <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 2\" />\n    <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 3\" />\n    <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 4\" />\n    <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 5\" />\n    <input type=\"text\" inputMode=\"numeric\" maxLength=\"1\" aria-label=\"Digit 6\" />\n  </OtpInput>\n  <Switch>\n    <input type=\"checkbox\" checked />\n    Remember this device for 30 days\n  </Switch>\n  <Button variant=\"primary\" block type=\"button\">Verify</Button>\n  <p className=\"b-auth-card__footer\">\n    Lost your device?\n    <a href=\"#two-factor-authentication\">Use a recovery code</a>\n  </p>\n</AuthCard>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-filled",
            "is-invalid",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "account-switcher",
          "title": "Account Switcher",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#account-switcher",
          "summary": ".b-account-switcher stacks .b-account rows \u2014 initials .b-avatar , __name and __email \u2014 inside a .b-menu -shaped glass surface. Mark the signed-in account with .is-active and a __check .",
          "classes": [
            "b-account",
            "b-account-switcher",
            "b-account__check",
            "b-account__email",
            "b-account__meta",
            "b-account__name",
            "b-avatar",
            "b-menu",
            "b-menu__separator"
          ],
          "markup": "<div class=\"b-menu\" style=\"width: 18rem\">\n  <div class=\"b-account-switcher\">\n    <button class=\"b-account is-active\" type=\"button\">\n      <span class=\"b-avatar\" aria-hidden=\"true\">AH</span>\n      <div class=\"b-account__meta\">\n        <div class=\"b-account__name\">Amina Hassan</div>\n        <div class=\"b-account__email\">amina@neurotech.africa</div>\n      </div>\n      <span class=\"b-account__check\" aria-hidden=\"true\">\u2713</span>\n    </button>\n    <button class=\"b-account\" type=\"button\">\n      <span class=\"b-avatar\" aria-hidden=\"true\">BO</span>\n      <div class=\"b-account__meta\">\n        <div class=\"b-account__name\">Baraka Otieno</div>\n        <div class=\"b-account__email\">baraka@neurotech.africa</div>\n      </div>\n    </button>\n    <button class=\"b-account\" type=\"button\">\n      <span class=\"b-avatar\" aria-hidden=\"true\">NS</span>\n      <div class=\"b-account__meta\">\n        <div class=\"b-account__name\">Neurotech Support</div>\n        <div class=\"b-account__email\">support@neurotech.africa</div>\n      </div>\n    </button>\n    <hr class=\"b-menu__separator\">\n    <button class=\"b-account\" type=\"button\">\n      <span class=\"b-avatar\" aria-hidden=\"true\">+</span>\n      <div class=\"b-account__meta\">\n        <div class=\"b-account__name\">Add account</div>\n      </div>\n    </button>\n  </div>\n</div>",
          "react": {
            "import": "import { Account, AccountSwitcher, Avatar, Menu, MenuSeparator } from \"barua-ui\";",
            "components": [
              "Account",
              "AccountSwitcher",
              "Avatar",
              "Menu",
              "MenuSeparator"
            ],
            "root": "Menu",
            "jsx": "<Menu style={{ width: \"18rem\" }}>\n  <AccountSwitcher>\n    <Account active type=\"button\">\n      <Avatar aria-hidden=\"true\">AH</Avatar>\n      <div className=\"b-account__meta\">\n        <div className=\"b-account__name\">Amina Hassan</div>\n        <div className=\"b-account__email\">amina@neurotech.africa</div>\n      </div>\n      <span className=\"b-account__check\" aria-hidden=\"true\">\u2713</span>\n    </Account>\n    <Account type=\"button\">\n      <Avatar aria-hidden=\"true\">BO</Avatar>\n      <div className=\"b-account__meta\">\n        <div className=\"b-account__name\">Baraka Otieno</div>\n        <div className=\"b-account__email\">baraka@neurotech.africa</div>\n      </div>\n    </Account>\n    <Account type=\"button\">\n      <Avatar aria-hidden=\"true\">NS</Avatar>\n      <div className=\"b-account__meta\">\n        <div className=\"b-account__name\">Neurotech Support</div>\n        <div className=\"b-account__email\">support@neurotech.africa</div>\n      </div>\n    </Account>\n    <MenuSeparator />\n    <Account type=\"button\">\n      <Avatar aria-hidden=\"true\">+</Avatar>\n      <div className=\"b-account__meta\">\n        <div className=\"b-account__name\">Add account</div>\n      </div>\n    </Account>\n  </AccountSwitcher>\n</Menu>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-disabled"
          ]
        },
        {
          "id": "profile-menu",
          "title": "Profile Menu",
          "category": "authentication",
          "url": "https://ui.barua.tz/docs/authentication.html#profile-menu",
          "summary": "A zero-JS dropdown: details.b-dropdown whose summary is a .b-profile-trigger \u2014 avatar, name, chevron \u2014 opening a .b-menu . See Navigation for the full menu family.",
          "classes": [
            "b-avatar",
            "b-avatar--sm",
            "b-dropdown",
            "b-menu",
            "b-menu__item",
            "b-menu__item--danger",
            "b-menu__separator",
            "b-menu__shortcut",
            "b-profile-trigger"
          ],
          "markup": "<details class=\"b-dropdown\">\n  <summary class=\"b-profile-trigger\">\n    <span class=\"b-avatar b-avatar--sm\" aria-hidden=\"true\">AH</span>\n    Amina Hassan\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\" aria-hidden=\"true\"><path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </summary>\n  <ul class=\"b-menu\">\n    <li><button class=\"b-menu__item\">Profile</button></li>\n    <li><button class=\"b-menu__item\">Settings<span class=\"b-menu__shortcut\">\u2318,</span></button></li>\n    <li><hr class=\"b-menu__separator\"></li>\n    <li><button class=\"b-menu__item b-menu__item--danger\">Sign out</button></li>\n  </ul>\n</details>",
          "react": {
            "import": "import { Avatar, Dropdown, Menu, MenuSeparator } from \"barua-ui\";",
            "components": [
              "Avatar",
              "Dropdown",
              "Menu",
              "MenuSeparator"
            ],
            "root": "Dropdown",
            "jsx": "<Dropdown>\n  <summary className=\"b-profile-trigger\">\n    <Avatar className=\"b-avatar--sm\" aria-hidden=\"true\">AH</Avatar>\n    Amina Hassan\n    <svg\n      viewBox=\"0 0 20 20\"\n      fill=\"none\"\n      width=\"14\"\n      height=\"14\"\n      aria-hidden=\"true\"\n    >\n      <path d=\"m5 8 5 5 5-5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </summary>\n  <Menu>\n    <li>\n      <button className=\"b-menu__item\">Profile</button>\n    </li>\n    <li>\n      <button className=\"b-menu__item\">\n        Settings\n        <span className=\"b-menu__shortcut\">\u2318,</span>\n      </button>\n    </li>\n    <li>\n      <MenuSeparator />\n    </li>\n    <li>\n      <button className=\"b-menu__item b-menu__item--danger\">Sign out</button>\n    </li>\n  </Menu>\n</Dropdown>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-disabled"
          ]
        }
      ]
    },
    {
      "id": "system",
      "title": "System pages \u2014 errors, empty, onboarding",
      "url": "https://ui.barua.tz/docs/system.html",
      "components": [
        {
          "id": "error-page-anatomy",
          "title": "Error Page Anatomy",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#error-page-anatomy",
          "summary": "Every error page is the same four pieces stacked on .b-syspage , a flex column that centers itself in the viewport: .b-syspage__code \u2014 the oversized status number wearing the accent-to-indigo gradient \u2014 .b-syspage__title for the human headline, .b-syspage__desc for one or two sentences on what actually happened, and .b-syspage__actions , a button row with exactly one primary way out. Swap the code for an icon and the same scaffold covers maintenance and any other full-page interruption.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "404-page",
          "title": "404 Page",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#404-page",
          "summary": "The classic. Keep the description honest \u2014 most 404s are stale links, not user error \u2014 and route people home or to a human. The demo pins min-height: 0 ; the real page keeps the default 60vh so it centers in the viewport.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-syspage",
            "b-syspage__actions",
            "b-syspage__code",
            "b-syspage__desc",
            "b-syspage__title"
          ],
          "markup": "<div class=\"b-syspage\" style=\"min-height: 0\">\n  <div class=\"b-syspage__code\">404</div>\n  <div class=\"b-syspage__title\">Page not found</div>\n  <p class=\"b-syspage__desc\">The page you're looking for was moved, renamed, or never existed. Check the address, or head back somewhere familiar.</p>\n  <div class=\"b-syspage__actions\">\n    <a class=\"b-btn b-btn--primary\" href=\"#404-page\">Go home</a>\n    <a class=\"b-btn b-btn--ghost\" href=\"#404-page\">Contact support</a>\n  </div>\n</div>",
          "react": {
            "import": "import { ButtonLink, SysPage } from \"barua-ui\";",
            "components": [
              "ButtonLink",
              "SysPage"
            ],
            "root": "SysPage",
            "jsx": "<SysPage style={{ minHeight: \"0\" }}>\n  <div className=\"b-syspage__code\">404</div>\n  <div className=\"b-syspage__title\">Page not found</div>\n  <p className=\"b-syspage__desc\">The page you're looking for was moved, renamed, or never existed. Check the address, or head back somewhere familiar.</p>\n  <div className=\"b-syspage__actions\">\n    <ButtonLink variant=\"primary\" href=\"#404-page\">Go home</ButtonLink>\n    <ButtonLink variant=\"ghost\" href=\"#404-page\">Contact support</ButtonLink>\n  </div>\n</SysPage>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "403-page",
          "title": "403 Page",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#403-page",
          "summary": "Denied, not broken. Offer the two exits people actually want: request access, or hop identities. Pair \"Switch account\" with the Account Switcher from Authentication so nobody has to sign out just to sign back in.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-syspage",
            "b-syspage__actions",
            "b-syspage__code",
            "b-syspage__desc",
            "b-syspage__title"
          ],
          "markup": "<div class=\"b-syspage\" style=\"min-height: 0\">\n  <div class=\"b-syspage__code\">403</div>\n  <div class=\"b-syspage__title\">Access denied</div>\n  <p class=\"b-syspage__desc\">Your account doesn't have permission to view this workspace. Ask an admin to let you in, or try a different account.</p>\n  <div class=\"b-syspage__actions\">\n    <button class=\"b-btn b-btn--primary\">Request access</button>\n    <button class=\"b-btn b-btn--ghost\">Switch account</button>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, SysPage } from \"barua-ui\";",
            "components": [
              "Button",
              "SysPage"
            ],
            "root": "SysPage",
            "jsx": "<SysPage style={{ minHeight: \"0\" }}>\n  <div className=\"b-syspage__code\">403</div>\n  <div className=\"b-syspage__title\">Access denied</div>\n  <p className=\"b-syspage__desc\">Your account doesn't have permission to view this workspace. Ask an admin to let you in, or try a different account.</p>\n  <div className=\"b-syspage__actions\">\n    <Button variant=\"primary\">Request access</Button>\n    <Button variant=\"ghost\">Switch account</Button>\n  </div>\n</SysPage>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "500-page",
          "title": "500 Page",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#500-page",
          "summary": "Own it. Say the fault is on your side, promise the data is safe, and hand over a reference code support can actually use \u2014 a plain <code> line tucked under the actions.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-footnote",
            "b-syspage",
            "b-syspage__actions",
            "b-syspage__code",
            "b-syspage__desc",
            "b-syspage__title",
            "b-text-tertiary"
          ],
          "markup": "<div class=\"b-syspage\" style=\"min-height: 0\">\n  <div class=\"b-syspage__code\">500</div>\n  <div class=\"b-syspage__title\">Something broke on our side</div>\n  <p class=\"b-syspage__desc\">An unexpected error stopped this request. It's not you \u2014 your mail is safe, and the team has already been paged.</p>\n  <div class=\"b-syspage__actions\">\n    <button class=\"b-btn b-btn--primary\">Try again</button>\n    <a class=\"b-btn b-btn--ghost\" href=\"#500-page\">View status page</a>\n  </div>\n  <p class=\"b-footnote b-text-tertiary\">Reference: <code>ERR-2AF4-9C01</code></p>\n</div>",
          "react": {
            "import": "import { Button, ButtonLink, Footnote, SysPage } from \"barua-ui\";",
            "components": [
              "Button",
              "ButtonLink",
              "Footnote",
              "SysPage"
            ],
            "root": "SysPage",
            "jsx": "<SysPage style={{ minHeight: \"0\" }}>\n  <div className=\"b-syspage__code\">500</div>\n  <div className=\"b-syspage__title\">Something broke on our side</div>\n  <p className=\"b-syspage__desc\">An unexpected error stopped this request. It's not you \u2014 your mail is safe, and the team has already been paged.</p>\n  <div className=\"b-syspage__actions\">\n    <Button variant=\"primary\">Try again</Button>\n    <ButtonLink variant=\"ghost\" href=\"#500-page\">View status page</ButtonLink>\n  </div>\n  <Footnote className=\"b-text-tertiary\">\n    Reference:\n    <code>ERR-2AF4-9C01</code>\n  </Footnote>\n</SysPage>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "maintenance-page",
          "title": "Maintenance Page",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#maintenance-page",
          "summary": "The same scaffold minus the status code \u2014 an icon where the number would be, a concrete time window, and an indeterminate .b-progress so the page feels alive rather than abandoned.",
          "classes": [
            "b-footnote",
            "b-progress",
            "b-progress--indeterminate",
            "b-progress__fill",
            "b-syspage",
            "b-syspage__desc",
            "b-syspage__title",
            "b-text-tertiary"
          ],
          "markup": "<div class=\"b-syspage\" style=\"min-height: 0\">\n  <svg width=\"44\" height=\"44\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\" stroke=\"var(--b-color-accent)\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  <div class=\"b-syspage__title\">Scheduled maintenance</div>\n  <p class=\"b-syspage__desc\">Barua is getting a planned upgrade between 02:00 and 04:30 UTC. Mail keeps arriving the whole time and will be waiting when we're back.</p>\n  <div class=\"b-progress b-progress--indeterminate\" style=\"max-width: 20rem\">\n    <div class=\"b-progress__fill\"></div>\n  </div>\n  <p class=\"b-footnote b-text-tertiary\">Started 02:00 UTC \u00b7 Live updates on the status page</p>\n</div>",
          "react": {
            "import": "import { Footnote, Progress, SysPage } from \"barua-ui\";",
            "components": [
              "Footnote",
              "Progress",
              "SysPage"
            ],
            "root": "SysPage",
            "jsx": "<SysPage style={{ minHeight: \"0\" }}>\n  <svg\n    width=\"44\"\n    height=\"44\"\n    viewBox=\"0 0 24 24\"\n    fill=\"none\"\n    aria-hidden=\"true\"\n  >\n    <path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\" stroke=\"var(--b-color-accent)\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n  </svg>\n  <div className=\"b-syspage__title\">Scheduled maintenance</div>\n  <p className=\"b-syspage__desc\">Barua is getting a planned upgrade between 02:00 and 04:30 UTC. Mail keeps arriving the whole time and will be waiting when we're back.</p>\n  <Progress className=\"b-progress--indeterminate\" style={{ maxWidth: \"20rem\" }}>\n    <div className=\"b-progress__fill\"></div>\n  </Progress>\n  <Footnote className=\"b-text-tertiary\">Started 02:00 UTC \u00b7 Live updates on the status page</Footnote>\n</SysPage>"
          },
          "knobs": [
            "--b-lg-inset",
            "--b-progress"
          ]
        },
        {
          "id": "offline-state",
          "title": "Offline State",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#offline-state",
          "summary": "A .b-result--warning panel, not a dead end \u2014 reassure people their drafts are safe locally. Toggling it (listening to navigator.onLine and the online / offline events) is app-side wiring; Barua ships the look.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-result",
            "b-result--warning",
            "b-result__actions",
            "b-result__desc",
            "b-result__icon",
            "b-result__title"
          ],
          "markup": "<div class=\"b-result b-result--warning\">\n  <div class=\"b-result__icon\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M2 8.5a14.5 14.5 0 0 1 20 0M5.5 12a9.7 9.7 0 0 1 13 0M9 15.5a4.6 4.6 0 0 1 6 0\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/><circle cx=\"12\" cy=\"19\" r=\"1.2\" fill=\"currentColor\"/><path d=\"m4 4 16 16\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg>\n  </div>\n  <div class=\"b-result__title\">You're offline</div>\n  <p class=\"b-result__desc\">Barua can't reach the network. Drafts are saved on this device and will send themselves the moment you're back online.</p>\n  <div class=\"b-result__actions\">\n    <button class=\"b-btn b-btn--primary\">Retry connection</button>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, Result } from \"barua-ui\";",
            "components": [
              "Button",
              "Result"
            ],
            "root": "Result",
            "jsx": "<Result tone=\"warning\">\n  <div className=\"b-result__icon\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\" fill=\"none\">\n      <path d=\"M2 8.5a14.5 14.5 0 0 1 20 0M5.5 12a9.7 9.7 0 0 1 13 0M9 15.5a4.6 4.6 0 0 1 6 0\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n      <circle cx=\"12\" cy=\"19\" r=\"1.2\" fill=\"currentColor\" />\n      <path d=\"m4 4 16 16\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n    </svg>\n  </div>\n  <div className=\"b-result__title\">You're offline</div>\n  <p className=\"b-result__desc\">Barua can't reach the network. Drafts are saved on this device and will send themselves the moment you're back online.</p>\n  <div className=\"b-result__actions\">\n    <Button variant=\"primary\">Retry connection</Button>\n  </div>\n</Result>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "permission-state",
          "title": "Permission State",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#permission-state",
          "summary": "Ask in context, right before the capability is used. A .b-result--confirm panel primes the real browser prompt \u2014 explain the payoff first and the OS dialog stops feeling like an ambush.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-result",
            "b-result--confirm",
            "b-result__actions",
            "b-result__desc",
            "b-result__icon",
            "b-result__title"
          ],
          "markup": "<div class=\"b-result b-result--confirm\">\n  <div class=\"b-result__icon\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13.73 21a2 2 0 0 1-3.46 0\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg>\n  </div>\n  <div class=\"b-result__title\">Turn on notifications?</div>\n  <p class=\"b-result__desc\">Get a ping the moment important mail lands \u2014 VIP senders and mentions only, never the newsletter flood.</p>\n  <div class=\"b-result__actions\">\n    <button class=\"b-btn b-btn--primary\">Allow notifications</button>\n    <button class=\"b-btn b-btn--ghost\">Not now</button>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, Result } from \"barua-ui\";",
            "components": [
              "Button",
              "Result"
            ],
            "root": "Result",
            "jsx": "<Result tone=\"confirm\">\n  <div className=\"b-result__icon\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 24 24\" fill=\"none\">\n      <path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      <path d=\"M13.73 21a2 2 0 0 1-3.46 0\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n    </svg>\n  </div>\n  <div className=\"b-result__title\">Turn on notifications?</div>\n  <p className=\"b-result__desc\">Get a ping the moment important mail lands \u2014 VIP senders and mentions only, never the newsletter flood.</p>\n  <div className=\"b-result__actions\">\n    <Button variant=\"primary\">Allow notifications</Button>\n    <Button variant=\"ghost\">Not now</Button>\n  </div>\n</Result>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "loading-state",
          "title": "Loading State",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#loading-state",
          "summary": "Two tools, both from Feedback : a centered spinner when you don't know the shape of what's coming, skeletons when you do. Full-page loading is a .b-spinner--lg plus one quiet line of .b-footnote text \u2014 never a paragraph.",
          "classes": [
            "b-card",
            "b-card-grid",
            "b-card__body",
            "b-footnote",
            "b-gap-3",
            "b-skeleton",
            "b-skeleton--card",
            "b-skeleton--text",
            "b-skeleton--title",
            "b-spinner",
            "b-spinner--lg",
            "b-stack--center",
            "b-text-secondary",
            "b-vstack"
          ],
          "markup": "<div class=\"b-vstack b-stack--center b-gap-3\" role=\"status\" aria-busy=\"true\">\n  <span class=\"b-spinner b-spinner--lg\" aria-hidden=\"true\"></span>\n  <p class=\"b-footnote b-text-secondary\">Loading your inbox\u2026</p>\n</div>",
          "react": {
            "import": "import { Footnote, Spinner } from \"barua-ui\";",
            "components": [
              "Footnote",
              "Spinner"
            ],
            "root": "Footnote",
            "jsx": "<div\n  className=\"b-vstack b-stack--center b-gap-3\"\n  role=\"status\"\n  aria-busy=\"true\"\n>\n  <Spinner size=\"lg\" aria-hidden=\"true\"></Spinner>\n  <Footnote className=\"b-text-secondary\">Loading your inbox\u2026</Footnote>\n</div>"
          },
          "variants": [
            {
              "id": "loading-skeleton",
              "title": "Skeleton page"
            }
          ],
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "empty-state",
          "title": "Empty State",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#empty-state",
          "summary": "The component lives in Content \u2014 this is the pattern. On first run, render .b-empty inside the exact container the content will eventually fill, with the creation action right there instead of hidden in a toolbar.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--primary",
            "b-btn--sm",
            "b-card",
            "b-card__header",
            "b-card__title",
            "b-empty",
            "b-empty__desc",
            "b-empty__icon",
            "b-empty__title"
          ],
          "markup": "<div class=\"b-card\">\n  <div class=\"b-card__header\">\n    <div class=\"b-card__title\">Rules</div>\n    <button class=\"b-btn b-btn--ghost b-btn--sm\">Import</button>\n  </div>\n  <div class=\"b-empty\">\n    <div class=\"b-empty__icon\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M22 3H2l8 9.46V19l4 2v-8.54L22 3z\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n    </div>\n    <div class=\"b-empty__title\">No rules yet</div>\n    <p class=\"b-empty__desc\">Rules file, label and archive mail before it ever hits your inbox. Start with one for newsletters \u2014 future you says thanks.</p>\n    <button class=\"b-btn b-btn--primary\">Create your first rule</button>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, Card, CardHeader, CardTitle, EmptyState } from \"barua-ui\";",
            "components": [
              "Button",
              "Card",
              "CardHeader",
              "CardTitle",
              "EmptyState"
            ],
            "root": "Card",
            "jsx": "<Card>\n  <CardHeader>\n    <CardTitle>Rules</CardTitle>\n    <Button variant=\"ghost\" size=\"sm\">Import</Button>\n  </CardHeader>\n  <EmptyState>\n    <div className=\"b-empty__icon\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\">\n        <path d=\"M22 3H2l8 9.46V19l4 2v-8.54L22 3z\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n    </div>\n    <div className=\"b-empty__title\">No rules yet</div>\n    <p className=\"b-empty__desc\">Rules file, label and archive mail before it ever hits your inbox. Start with one for newsletters \u2014 future you says thanks.</p>\n    <Button variant=\"primary\">Create your first rule</Button>\n  </EmptyState>\n</Card>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "onboarding",
          "title": "Onboarding",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#onboarding",
          "summary": "The pitch page. .b-onboarding__hero gives one word the gradient treatment via <em> , a single primary CTA leads, and at most three .b-onboarding-feature rows carry the argument \u2014 icons from .b-icon-tile .",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--lg",
            "b-btn--primary",
            "b-callout",
            "b-gap-4",
            "b-hstack",
            "b-icon-tile",
            "b-onboarding",
            "b-onboarding-feature",
            "b-onboarding-feature__desc",
            "b-onboarding-feature__title",
            "b-onboarding__hero",
            "b-text-secondary",
            "b-vstack"
          ],
          "markup": "<div class=\"b-onboarding\">\n  <div class=\"b-onboarding__hero\">Email that finally feels <em>effortless</em></div>\n  <p class=\"b-callout b-text-secondary\" style=\"max-width: 34rem\">One inbox for every account, triaged before you even open it. No folders to invent, no zero to chase.</p>\n  <div class=\"b-hstack\">\n    <button class=\"b-btn b-btn--primary b-btn--lg\">Get started</button>\n    <button class=\"b-btn b-btn--ghost b-btn--lg\">Watch demo</button>\n  </div>\n  <div class=\"b-vstack b-gap-4\">\n    <div class=\"b-onboarding-feature\">\n      <span class=\"b-icon-tile\" aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M22 12h-6l-2 3h-4l-2-3H2\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      </span>\n      <div>\n        <div class=\"b-onboarding-feature__title\">Smart triage</div>\n        <div class=\"b-onboarding-feature__desc\">People, receipts and newsletters sort themselves into calm, separate lanes.</div>\n      </div>\n    </div>\n    <div class=\"b-onboarding-feature\">\n      <span class=\"b-icon-tile\" aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\"><circle cx=\"11\" cy=\"11\" r=\"8\" stroke=\"currentColor\" ",
          "react": {
            "import": "import { Button, Callout, IconTile, Onboarding, OnboardingHero } from \"barua-ui\";",
            "components": [
              "Button",
              "Callout",
              "IconTile",
              "Onboarding",
              "OnboardingHero"
            ],
            "root": "Onboarding",
            "jsx": "<Onboarding>\n  <OnboardingHero>\n    Email that finally feels\n    <em>effortless</em>\n  </OnboardingHero>\n  <Callout className=\"b-text-secondary\" style={{ maxWidth: \"34rem\" }}>One inbox for every account, triaged before you even open it. No folders to invent, no zero to chase.</Callout>\n  <div className=\"b-hstack\">\n    <Button variant=\"primary\" size=\"lg\">Get started</Button>\n    <Button variant=\"ghost\" size=\"lg\">Watch demo</Button>\n  </div>\n  <div className=\"b-vstack b-gap-4\">\n    <div className=\"b-onboarding-feature\">\n      <IconTile aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\">\n          <path d=\"M22 12h-6l-2 3h-4l-2-3H2\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n          <path d=\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n        </svg>\n      </IconTile>\n      <div>\n        <div className=\"b-onboarding-feature__title\">Smart triage</div>\n        <div className=\"b-onboarding-feature__desc\">People, receipts and newsletters sort themselves into calm, separate lanes.</div>\n      </div>\n    </div>\n    <div className=\"b-onboarding-feature\">\n      <IconTile aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\"></svg>\n      </IconTile>\n    </div>\n  </div>\n</Onboarding>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "welcome-screen",
          "title": "Welcome Screen",
          "category": "system",
          "url": "https://ui.barua.tz/docs/system.html#welcome-screen",
          "summary": "The Apple-style first-launch sheet: app icon up top ( .b-auth-card__logo ), a \"Welcome to\" hero, a short feature list, and a single Continue button in a .b-form-actions footer. In a real sheet, pin that footer to the bottom edge so Continue never scrolls away.",
          "classes": [
            "b-auth-card__logo",
            "b-btn",
            "b-btn--lg",
            "b-btn--primary",
            "b-form-actions",
            "b-gap-4",
            "b-icon-tile",
            "b-onboarding",
            "b-onboarding-feature",
            "b-onboarding-feature__desc",
            "b-onboarding-feature__title",
            "b-onboarding__hero",
            "b-vstack"
          ],
          "markup": "<div class=\"b-onboarding\">\n  <div class=\"b-auth-card__logo\" aria-hidden=\"true\">\n    <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\"><rect x=\"2.5\" y=\"4.5\" width=\"19\" height=\"15\" rx=\"3.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m5 8.2 7 5.3 7-5.3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </div>\n  <div class=\"b-onboarding__hero\">Welcome to <em>Barua</em></div>\n  <div class=\"b-vstack b-gap-4\">\n    <div class=\"b-onboarding-feature\">\n      <span class=\"b-icon-tile\" aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\"><circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" stroke-width=\"1.6\"/><path d=\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg>\n      </span>\n      <div>\n        <div class=\"b-onboarding-feature__title\">All of your accounts</div>\n        <div class=\"b-onboarding-feature__desc\">Work, personal and that address from 2011 \u2014 unified in one inbox, color-coded per identity.</div>\n      </div>\n    </div>\n    <div class=\"b-onboarding-feature\">\n      <span class=\"b-icon-tile\" aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M13 2 3 14h9l-1 8 10-12h-9l1-8z\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      </span>\n      <div>\n        <div class",
          "react": {
            "import": "import { IconTile, Onboarding, OnboardingHero } from \"barua-ui\";",
            "components": [
              "IconTile",
              "Onboarding",
              "OnboardingHero"
            ],
            "root": "Onboarding",
            "jsx": "<Onboarding>\n  <div className=\"b-auth-card__logo\" aria-hidden=\"true\">\n    <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\">\n      <rect x=\"2.5\" y=\"4.5\" width=\"19\" height=\"15\" rx=\"3.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m5 8.2 7 5.3 7-5.3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </div>\n  <OnboardingHero>\n    Welcome to\n    <em>Barua</em>\n  </OnboardingHero>\n  <div className=\"b-vstack b-gap-4\">\n    <div className=\"b-onboarding-feature\">\n      <IconTile aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\">\n          <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n          <path d=\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n        </svg>\n      </IconTile>\n      <div>\n        <div className=\"b-onboarding-feature__title\">All of your accounts</div>\n        <div className=\"b-onboarding-feature__desc\">Work, personal and that address from 2011 \u2014 unified in one inbox, color-coded per identity.</div>\n      </div>\n    </div>\n    <div className=\"b-onboarding-feature\">\n      <IconTile aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\">\n          <path d=\"M13 2 3 14h9l-1 8 10-12h-9l1-8z\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n        </svg>\n      </IconTile>\n      <div></div>\n    </div>\n  </div>\n</Onboarding>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        }
      ]
    },
    {
      "id": "dashboards",
      "title": "Dashboards \u2014 archetypes, composition, choosing a chart, and the four states every widget has",
      "url": "https://ui.barua.tz/docs/dashboards.html",
      "components": [
        {
          "id": "the-question",
          "title": "Name the question first",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#the-question",
          "summary": "A dashboard answers one question, for one person, on one visit: is anything wrong , how are we doing , what needs me today . Everything on the screen either serves that question or is decoration. A page that answers three answers none of them well \u2014 that is what a second dashboard is for.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "layers",
          "title": "The five layers",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#layers",
          "summary": "A dashboard is not a grid of cards, it is a page read from the top down, and each band answers the same question at a different depth: what , then why , then what now . In the survey a figure came first on 40 of 51 pages, and the strongest adjacency of all was a figure followed by a list \u2014 36 occurrences. That order is not a convention, it is how people read.",
          "classes": [
            "b-gap-2",
            "b-hstack",
            "b-stack",
            "b-table",
            "b-table-wrap"
          ],
          "markup": "<div class=\"b-stack b-gap-2 docs-layers\">\n  <div class=\"docs-layer docs-layer--ctx\"><span>1 \u00b7 context</span></div>\n  <div class=\"b-hstack b-gap-2\">\n    <div class=\"docs-layer\" style=\"flex: 3\"><span>2 \u00b7 verdict</span></div>\n    <div class=\"docs-layer\" style=\"flex: 3\"></div>\n    <div class=\"docs-layer\" style=\"flex: 3\"></div>\n    <div class=\"docs-layer\" style=\"flex: 3\"></div>\n  </div>\n  <div class=\"b-hstack b-gap-2\">\n    <div class=\"docs-layer docs-layer--tall\" style=\"flex: 8\"><span>3 \u00b7 evidence</span></div>\n    <div class=\"docs-layer docs-layer--tall\" style=\"flex: 4\"></div>\n  </div>\n  <div class=\"b-hstack b-gap-2\">\n    <div class=\"docs-layer\" style=\"flex: 6\"><span>4 \u00b7 detail</span></div>\n    <div class=\"docs-layer\" style=\"flex: 6\"></div>\n  </div>\n  <div class=\"docs-layer docs-layer--ctx\"><span>5 \u00b7 tail</span></div>\n</div>",
          "variants": [
            {
              "id": "rhythm",
              "title": "Rhythm is what makes it feel designed"
            },
            {
              "id": "grouping",
              "title": "Space groups; borders separate"
            },
            {
              "id": "fold",
              "title": "What the first screen owes you"
            }
          ],
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "archetypes",
          "title": "Six archetypes",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#archetypes",
          "summary": "Variety comes from choosing a different archetype, not from decorating the same one. Most dashboards are an Overview because it is the shape that gets built by reflex.",
          "classes": [
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "composition",
          "title": "Composition",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#composition",
          "summary": "Widths are full, half, third or quarter, and spans in a row total twelve. Those four are the entire vocabulary the surveyed templates use; anything else reads as a mistake.",
          "classes": [
            "b-card",
            "b-card--compact",
            "b-card__body",
            "b-card__header",
            "b-card__title",
            "b-columns",
            "b-columns__bar",
            "b-dashboard",
            "b-empty",
            "b-empty__desc",
            "b-empty__title",
            "b-span-3",
            "b-span-4",
            "b-span-8",
            "b-stat",
            "b-stat__label",
            "b-stat__value"
          ],
          "markup": "<div class=\"b-dashboard\">\n  <article class=\"b-card b-card--compact b-span-3\"><div class=\"b-card__body\"><div class=\"b-stat\"><span class=\"b-stat__label\">Sent</span><span class=\"b-stat__value\">12,480</span></div></div></article>\n  <article class=\"b-card b-card--compact b-span-3\"><div class=\"b-card__body\"><div class=\"b-stat\"><span class=\"b-stat__label\">Opened</span><span class=\"b-stat__value\">61%</span></div></div></article>\n  <article class=\"b-card b-card--compact b-span-3\"><div class=\"b-card__body\"><div class=\"b-stat\"><span class=\"b-stat__label\">Replied</span><span class=\"b-stat__value\">18%</span></div></div></article>\n  <article class=\"b-card b-card--compact b-span-3\"><div class=\"b-card__body\"><div class=\"b-stat\"><span class=\"b-stat__label\">Bounced</span><span class=\"b-stat__value\">0.4%</span></div></div></article>\n  <article class=\"b-card b-span-8\"><div class=\"b-card__header\"><div class=\"b-card__title\">Delivery, last 7 days</div></div><div class=\"b-card__body\"><div class=\"b-columns\" style=\"--b-chart-h: 8rem\" role=\"img\" aria-label=\"Delivery peaked Thursday at 4,120.\"><div class=\"b-columns__bar\" data-label=\"M\" style=\"--v: 62%\"></div><div class=\"b-columns__bar\" data-label=\"T\" style=\"--v: 71%\"></div><div class=\"b-columns__bar\" data-label=\"W\" style=\"--v: 58%\"></div><div class=\"b-columns__bar\" data-label=\"T\" style=\"--v: 100%\"></div><div class=\"b-columns__bar\" data-label=\"F\" style=\"--",
          "react": {
            "import": "import { Card, CardBody, CardHeader, CardTitle, Columns, Dashboard, Stat } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "CardHeader",
              "CardTitle",
              "Columns",
              "Dashboard",
              "Stat"
            ],
            "root": "Dashboard",
            "jsx": "<Dashboard>\n  <Card compact className=\"b-span-3\">\n    <CardBody>\n      <Stat>\n        <span className=\"b-stat__label\">Sent</span>\n        <span className=\"b-stat__value\">12,480</span>\n      </Stat>\n    </CardBody>\n  </Card>\n  <Card compact className=\"b-span-3\">\n    <CardBody>\n      <Stat>\n        <span className=\"b-stat__label\">Opened</span>\n        <span className=\"b-stat__value\">61%</span>\n      </Stat>\n    </CardBody>\n  </Card>\n  <Card compact className=\"b-span-3\">\n    <CardBody>\n      <Stat>\n        <span className=\"b-stat__label\">Replied</span>\n        <span className=\"b-stat__value\">18%</span>\n      </Stat>\n    </CardBody>\n  </Card>\n  <Card compact className=\"b-span-3\">\n    <CardBody>\n      <Stat>\n        <span className=\"b-stat__label\">Bounced</span>\n        <span className=\"b-stat__value\">0.4%</span>\n      </Stat>\n    </CardBody>\n  </Card>\n  <Card className=\"b-span-8\">\n    <CardHeader>\n      <CardTitle>Delivery, last 7 days</CardTitle>\n    </CardHeader>\n    <CardBody>\n      <Columns\n        style={{ \"--b-chart-h\": \"8rem\" }}\n        role=\"img\"\n        aria-label=\"Delivery peaked Thursday at 4,120.\"\n      >\n        <div className=\"b-columns__bar\" data-label=\"M\" style={{ \"--v\": \"62%\" }}></div>\n        <div className=\"b-columns__bar\" data-label=\"T\" style={{ \"--v\": \"71%\" }}></div>\n        <div className=\"b-columns__bar\" data-label=\"W\" style={{ \"--v\": \"58%\" }}></div>\n        <div className=\"b-columns__bar\" data-label=\"T\" style={{ \"--v\": \"100%\" }}></div>\n      </Columns>\n    </CardBody>\n  </Card>\n</Dashboard>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-chart-h",
            "--b-column-w",
            "--b-lg-border",
            "--b-lg-pane",
            "--v"
          ],
          "states": [
            "is-down",
            "is-up"
          ]
        },
        {
          "id": "whitespace",
          "title": "White space",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#whitespace",
          "summary": "Space is the only thing on a dashboard doing structural work that nobody notices. Four rules cover almost every case.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "dashboard-type",
          "title": "Text on a dashboard",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#dashboard-type",
          "summary": "Nothing here is prose. A dashboard is read in glances, so every string is a label, a figure or a caption \u2014 and if something genuinely needs a sentence to explain it, it belongs on a detail page.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "page-set",
          "title": "How many pages a dashboard product has",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#page-set",
          "summary": "Counted across the same six products \u2014 163 genuine product pages, once component demos are set aside. It is a useful check on whether a product is finished.",
          "classes": [
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "charts",
          "title": "Choosing a chart",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#charts",
          "summary": "Time is a line or an area. Comparison across categories is a bar. Those three were 84% of every chart in the survey \u2014 97 of 115.",
          "classes": [
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "states",
          "title": "Four states, not one",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#states",
          "summary": "Every widget has a loading state, an empty state, an error state and a loaded state. Design all four or the page only works on a good day. In 457 pages, three had a message for having no data.",
          "classes": [
            "b-alert",
            "b-alert--danger",
            "b-alert__content",
            "b-card",
            "b-card--compact",
            "b-card__body",
            "b-empty",
            "b-empty__desc",
            "b-empty__title",
            "b-gap-2",
            "b-gap-3",
            "b-grid",
            "b-grid--3",
            "b-skeleton",
            "b-skeleton--text",
            "b-stack"
          ],
          "markup": "<div class=\"b-grid b-grid--3 b-gap-3\">\n  <article class=\"b-card b-card--compact\"><div class=\"b-card__body b-stack b-gap-2\"><span class=\"b-skeleton b-skeleton--text\" style=\"width: 40%\"></span><span class=\"b-skeleton b-skeleton--text\" style=\"width: 70%\"></span></div></article>\n  <article class=\"b-card b-card--compact\"><div class=\"b-card__body\"><div class=\"b-empty\"><div class=\"b-empty__title\">No invoices yet</div><p class=\"b-empty__desc\">They appear here once you send one.</p></div></div></article>\n  <article class=\"b-card b-card--compact\"><div class=\"b-card__body\"><div class=\"b-alert b-alert--danger\" role=\"alert\"><div class=\"b-alert__content\">Could not reach billing. Retrying in 30s.</div></div></div></article>\n</div>",
          "react": {
            "import": "import { Alert, Card, CardBody, EmptyState, Grid, Skeleton } from \"barua-ui\";",
            "components": [
              "Alert",
              "Card",
              "CardBody",
              "EmptyState",
              "Grid",
              "Skeleton"
            ],
            "root": "Grid",
            "jsx": "<Grid cols={3} className=\"b-gap-3\">\n  <Card compact>\n    <CardBody className=\"b-stack b-gap-2\">\n      <Skeleton className=\"b-skeleton--text\" style={{ width: \"40%\" }}></Skeleton>\n      <Skeleton className=\"b-skeleton--text\" style={{ width: \"70%\" }}></Skeleton>\n    </CardBody>\n  </Card>\n  <Card compact>\n    <CardBody>\n      <EmptyState>\n        <div className=\"b-empty__title\">No invoices yet</div>\n        <p className=\"b-empty__desc\">They appear here once you send one.</p>\n      </EmptyState>\n    </CardBody>\n  </Card>\n  <Card compact>\n    <CardBody>\n      <Alert variant=\"danger\" role=\"alert\">\n        <div className=\"b-alert__content\">Could not reach billing. Retrying in 30s.</div>\n      </Alert>\n    </CardBody>\n  </Card>\n</Grid>"
          },
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-destructive",
            "is-primary"
          ]
        },
        {
          "id": "density",
          "title": "Density",
          "category": "dashboards",
          "url": "https://ui.barua.tz/docs/dashboards.html#density",
          "summary": "A table on a dashboard shows five to ten rows and links to the full list \u2014 it is a sample, not the archive. Columns of figures take .b-tabular-nums or the digits jitter as they update. A delta states direction and period together: \"\u2191 8.2% this week\", never a bare arrow.",
          "classes": [],
          "markup": ""
        }
      ]
    },
    {
      "id": "productivity",
      "title": "Productivity \u2014 dashboards, workspace, dock, control centre",
      "url": "https://ui.barua.tz/docs/productivity.html",
      "components": [
        {
          "id": "workspace-shell",
          "title": "Workspace Shell",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#workspace-shell",
          "summary": ".b-workspace is a full-height CSS grid with four named areas: topbar spanning the top, then sidebar / main / inspector below. Children slot in by class \u2014 a .b-topnav takes the topbar, a .b-sidebar (or .b-rail ) takes the sidebar, .b-workspace__main is the one scrolling work surface, and an optional .b-inspector docks on the trailing edge. Drop the inspector and main simply stretches. The shell defaults to 100dvh ; the demo constrains it to a miniature.",
          "classes": [
            "b-avatar",
            "b-avatar--xs",
            "b-card",
            "b-card__body",
            "b-dl",
            "b-dl--stacked",
            "b-inspector",
            "b-inspector__header",
            "b-inspector__section",
            "b-sidebar",
            "b-sidebar--surface",
            "b-sidebar__group",
            "b-sidebar__item",
            "b-spacer",
            "b-stat",
            "b-stat__delta",
            "b-stat__label",
            "b-stat__value",
            "b-status",
            "b-status--online",
            "b-topnav",
            "b-topnav__brand",
            "b-workspace",
            "b-workspace__main"
          ],
          "markup": "<div class=\"b-workspace\" style=\"height: 100%\">\n  <header class=\"b-topnav\">\n    <span class=\"b-topnav__brand\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"4\" fill=\"var(--b-color-accent)\"/><path d=\"m4 7 8 6 8-6\" stroke=\"white\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      Sema\n    </span>\n    <span class=\"b-spacer\"></span>\n    <span class=\"b-status b-status--online\">Live</span>\n    <span class=\"b-avatar b-avatar--xs\">AH</span>\n  </header>\n  <aside class=\"b-sidebar b-sidebar--surface\" style=\"width: 10rem\" aria-label=\"Workspace\">\n    <nav class=\"b-sidebar__group\">\n      <a class=\"b-sidebar__item is-active\" href=\"#workspace-shell\">Overview</a>\n      <a class=\"b-sidebar__item\" href=\"#workspace-shell\">Campaigns</a>\n      <a class=\"b-sidebar__item\" href=\"#workspace-shell\">Tickets</a>\n    </nav>\n  </aside>\n  <main class=\"b-workspace__main\">\n    <article class=\"b-card\">\n      <div class=\"b-card__body\">\n        <div class=\"b-stat\">\n          <span class=\"b-stat__label\">Calls today</span>\n          <span class=\"b-stat__value\">214</span>\n          <span class=\"b-stat__delta is-up\">\u25b2 9%</span>\n        </div>\n      </div>\n    </article>\n  </main>\n  <aside class=\"b-inspector\" style=\"--b-inspector-w: 10.5rem\" aria-label=\"Inspector\">\n    <div class=\"b-inspector__header\">Inspect",
          "react": {
            "import": "import { Avatar, Card, CardBody, Inspector, Sidebar, SidebarGroup, Spacer, Stat, StatusDot, TopNav, TopNavBrand, Workspace, WorkspaceMain } from \"barua-ui\";",
            "components": [
              "Avatar",
              "Card",
              "CardBody",
              "Inspector",
              "Sidebar",
              "SidebarGroup",
              "Spacer",
              "Stat",
              "StatusDot",
              "TopNav",
              "TopNavBrand",
              "Workspace",
              "WorkspaceMain"
            ],
            "root": "Workspace",
            "jsx": "<Workspace style={{ height: \"100%\" }}>\n  <TopNav>\n    <TopNavBrand>\n      <svg\n        width=\"16\"\n        height=\"16\"\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        aria-hidden=\"true\"\n      >\n        <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"4\" fill=\"var(--b-color-accent)\" />\n        <path d=\"m4 7 8 6 8-6\" stroke=\"white\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n      Sema\n    </TopNavBrand>\n    <Spacer></Spacer>\n    <StatusDot className=\"b-status--online\">Live</StatusDot>\n    <Avatar className=\"b-avatar--xs\">AH</Avatar>\n  </TopNav>\n  <Sidebar material=\"surface\" style={{ width: \"10rem\" }} aria-label=\"Workspace\">\n    <SidebarGroup>\n      <a className=\"b-sidebar__item is-active\" href=\"#workspace-shell\">Overview</a>\n      <a className=\"b-sidebar__item\" href=\"#workspace-shell\">Campaigns</a>\n      <a className=\"b-sidebar__item\" href=\"#workspace-shell\">Tickets</a>\n    </SidebarGroup>\n  </Sidebar>\n  <WorkspaceMain>\n    <Card>\n      <CardBody>\n        <Stat>\n          <span className=\"b-stat__label\">Calls today</span>\n          <span className=\"b-stat__value\">214</span>\n          <span className=\"b-stat__delta is-up\">\u25b2 9%</span>\n        </Stat>\n      </CardBody>\n    </Card>\n  </WorkspaceMain>\n  <Inspector style={{ \"--b-inspector-w\": \"10.5rem\" }} aria-label=\"Inspector\">\n    <div className=\"b-inspector__header\">Inspect</div>\n  </Inspector>\n</Workspace>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-inspector-w",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-down",
            "is-scrolled",
            "is-up"
          ]
        },
        {
          "id": "dashboard",
          "title": "Dashboard",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#dashboard",
          "summary": ".b-dashboard is a 12-column grid. Cards claim width with one of .b-span-2 , .b-span-3 , .b-span-4 , .b-span-5 , .b-span-6 , .b-span-7 , .b-span-8 , .b-span-9 , .b-span-10 , .b-span-11 or .b-span-12 from 768px up, and stack to a single column below. Spans in one row should total twelve \u2014 5 + 4 + 3 reads as well as 4 + 4 + 4 , and a row that overflows wraps a card onto its own line. Compose it from .b-card + .b-stat for KPIs and the CSS charts from Data Visualization for trends.",
          "classes": [
            "b-avatar",
            "b-avatar--sm",
            "b-card",
            "b-card__body",
            "b-card__header",
            "b-card__title",
            "b-chart",
            "b-chart__title",
            "b-columns",
            "b-columns__bar",
            "b-dashboard",
            "b-list",
            "b-list--plain",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__leading",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-list-item__trailing",
            "b-span-4",
            "b-span-8",
            "b-sparkline",
            "b-stat",
            "b-stat__delta",
            "b-stat__label",
            "b-stat__value"
          ],
          "markup": "<div class=\"b-dashboard\">\n  <article class=\"b-card b-span-4\">\n    <div class=\"b-card__body\">\n      <div class=\"b-stat\">\n        <span class=\"b-stat__label\">Calls handled</span>\n        <span class=\"b-stat__value\">4,182</span>\n        <span class=\"b-stat__delta is-up\">\u25b2 12% vs last week</span>\n      </div>\n      <svg class=\"b-sparkline\" viewBox=\"0 0 100 24\" preserveAspectRatio=\"none\" aria-hidden=\"true\"><path d=\"M0 19 14 15 28 17 42 10 56 12 70 7 84 9 100 4\"/></svg>\n    </div>\n  </article>\n  <article class=\"b-card b-span-4\">\n    <div class=\"b-card__body\">\n      <div class=\"b-stat\">\n        <span class=\"b-stat__label\">Tickets resolved</span>\n        <span class=\"b-stat__value\">318</span>\n        <span class=\"b-stat__delta is-up\">\u25b2 6% vs last week</span>\n      </div>\n    </div>\n  </article>\n  <article class=\"b-card b-span-4\">\n    <div class=\"b-card__body\">\n      <div class=\"b-stat\">\n        <span class=\"b-stat__label\">Avg. handle time</span>\n        <span class=\"b-stat__value\">3m 42s</span>\n        <span class=\"b-stat__delta is-down\">\u25bc 21s over target</span>\n      </div>\n    </div>\n  </article>\n  <article class=\"b-card b-span-8\">\n    <div class=\"b-card__body\">\n      <div class=\"b-chart\">\n        <div class=\"b-chart__title\">Calls per day</div>\n        <div class=\"b-columns\" style=\"--b-chart-h: 9rem\">\n          <div class=\"b-columns__bar\" style=\"--v: 44%\" data-label=\"Mon\"></div>\n    ",
          "react": {
            "import": "import { Card, CardBody, Chart, Columns, Dashboard, Sparkline, Stat } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "Chart",
              "Columns",
              "Dashboard",
              "Sparkline",
              "Stat"
            ],
            "root": "Dashboard",
            "jsx": "<Dashboard>\n  <Card className=\"b-span-4\">\n    <CardBody>\n      <Stat>\n        <span className=\"b-stat__label\">Calls handled</span>\n        <span className=\"b-stat__value\">4,182</span>\n        <span className=\"b-stat__delta is-up\">\u25b2 12% vs last week</span>\n      </Stat>\n      <Sparkline viewBox=\"0 0 100 24\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n        <path d=\"M0 19 14 15 28 17 42 10 56 12 70 7 84 9 100 4\" />\n      </Sparkline>\n    </CardBody>\n  </Card>\n  <Card className=\"b-span-4\">\n    <CardBody>\n      <Stat>\n        <span className=\"b-stat__label\">Tickets resolved</span>\n        <span className=\"b-stat__value\">318</span>\n        <span className=\"b-stat__delta is-up\">\u25b2 6% vs last week</span>\n      </Stat>\n    </CardBody>\n  </Card>\n  <Card className=\"b-span-4\">\n    <CardBody>\n      <Stat>\n        <span className=\"b-stat__label\">Avg. handle time</span>\n        <span className=\"b-stat__value\">3m 42s</span>\n        <span className=\"b-stat__delta is-down\">\u25bc 21s over target</span>\n      </Stat>\n    </CardBody>\n  </Card>\n  <Card className=\"b-span-8\">\n    <CardBody>\n      <Chart>\n        <div className=\"b-chart__title\">Calls per day</div>\n        <Columns style={{ \"--b-chart-h\": \"9rem\" }}>\n          <div className=\"b-columns__bar\" style={{ \"--v\": \"44%\" }} data-label=\"Mon\"></div>\n        </Columns>\n      </Chart>\n    </CardBody>\n  </Card>\n</Dashboard>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-chart-color",
            "--b-chart-h",
            "--b-column-w",
            "--b-lg-border",
            "--b-lg-pane",
            "--b-pie",
            "--b-pie-size",
            "--v"
          ],
          "states": [
            "is-down",
            "is-selected",
            "is-up"
          ]
        },
        {
          "id": "command-center",
          "title": "Command Center",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#command-center",
          "summary": "A search-first hero for the top of a workspace: .b-command-center centers a big .b-input-group (capped at 34rem ) with a row of quick-action .b-chip s underneath. It answers \"where do I start?\" before the user has picked a surface.",
          "classes": [
            "b-chip",
            "b-command-center",
            "b-gap-2",
            "b-hstack",
            "b-input",
            "b-input-affix",
            "b-input-affix--end",
            "b-input-affix--start",
            "b-input-group",
            "b-search",
            "b-stack--wrap"
          ],
          "markup": "<div class=\"b-command-center\">\n  <h3>Good morning, Asha</h3>\n  <p>Search across calls, tickets and campaigns \u2014 or jump straight in.</p>\n  <div class=\"b-input-group b-search\">\n    <span class=\"b-input-affix b-input-affix--start\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13.5 13.5 3 3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    </span>\n    <input class=\"b-input\" type=\"search\" placeholder=\"Search Sema\u2026\" aria-label=\"Search Sema\">\n    <span class=\"b-input-affix b-input-affix--end\"><kbd>\u2318K</kbd></span>\n  </div>\n  <div class=\"b-hstack b-stack--wrap b-gap-2\" style=\"justify-content: center\">\n    <button class=\"b-chip\">New campaign</button>\n    <button class=\"b-chip\">Push leads</button>\n    <button class=\"b-chip\">Open queue</button>\n    <button class=\"b-chip\">Today's report</button>\n  </div>\n</div>",
          "react": {
            "import": "import { Chip, CommandCenter, Input, InputGroup } from \"barua-ui\";",
            "components": [
              "Chip",
              "CommandCenter",
              "Input",
              "InputGroup"
            ],
            "root": "CommandCenter",
            "jsx": "<CommandCenter>\n  <h3>Good morning, Asha</h3>\n  <p>Search across calls, tickets and campaigns \u2014 or jump straight in.</p>\n  <InputGroup className=\"b-search\">\n    <span className=\"b-input-affix b-input-affix--start\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        <path d=\"m13.5 13.5 3 3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      </svg>\n    </span>\n    <Input type=\"search\" placeholder=\"Search Sema\u2026\" aria-label=\"Search Sema\" />\n    <span className=\"b-input-affix b-input-affix--end\">\n      <kbd>\u2318K</kbd>\n    </span>\n  </InputGroup>\n  <div\n    className=\"b-hstack b-stack--wrap b-gap-2\"\n    style={{ justifyContent: \"center\" }}\n  >\n    <Chip>New campaign</Chip>\n    <Chip>Push leads</Chip>\n    <Chip>Open queue</Chip>\n    <Chip>Today's report</Chip>\n  </div>\n</CommandCenter>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-invalid",
            "is-selected",
            "is-valid"
          ]
        },
        {
          "id": "kanban-board",
          "title": "Kanban Board",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#kanban-board",
          "summary": ".b-kanban is a horizontally scrolling row of .b-kanban-col columns, each with a __header (title + __count ) and a __list of task cards . During drag, mark the grabbed card .is-dragging and the hovered column .is-dropover \u2014 shown frozen mid-drag below, with a card leaving \"In Progress\" for \"Done\".",
          "classes": [
            "b-avatar",
            "b-badge",
            "b-badge--accent",
            "b-kanban",
            "b-kanban-col",
            "b-kanban-col__count",
            "b-kanban-col__header",
            "b-kanban-col__list",
            "b-task",
            "b-task__meta",
            "b-task__title"
          ],
          "markup": "",
          "knobs": [
            "--b-avatar-size",
            "--b-lg-pane"
          ],
          "states": [
            "is-done",
            "is-dragging",
            "is-dropover",
            "is-overdue"
          ]
        },
        {
          "id": "task-and-task-list",
          "title": "Task & Task List",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#task-and-task-list",
          "summary": ".b-task is the draggable unit of work: a __title plus a __meta row of badge, due date and an avatar that auto-shrinks and pushes to the trailing edge. It lifts on hover and tilts while .is-dragging .",
          "classes": [
            "b-avatar",
            "b-badge",
            "b-badge--accent",
            "b-badge--danger",
            "b-checkbox",
            "b-task",
            "b-task-list",
            "b-task-row",
            "b-task-row__due",
            "b-task-row__title",
            "b-task__meta",
            "b-task__title"
          ],
          "markup": "<div class=\"b-task\" style=\"width: 16rem\">\n  <div class=\"b-task__title\">Wire USSD flow</div>\n  <div class=\"b-task__meta\">\n    <span class=\"b-badge b-badge--accent\">USSD</span>\n    <span>Sep 2</span>\n    <span class=\"b-avatar\">AH</span>\n  </div>\n</div>\n<div class=\"b-task is-dragging\" style=\"width: 16rem\">\n  <div class=\"b-task__title\">Fix webhook retries</div>\n  <div class=\"b-task__meta\">\n    <span class=\"b-badge b-badge--danger\">Bug</span>\n    <span>Aug 28</span>\n    <span class=\"b-avatar\">JK</span>\n  </div>\n</div>",
          "react": {
            "import": "import { Avatar, Badge, Task } from \"barua-ui\";",
            "components": [
              "Avatar",
              "Badge",
              "Task"
            ],
            "root": "Task",
            "jsx": "<Task style={{ width: \"16rem\" }}>\n  <div className=\"b-task__title\">Wire USSD flow</div>\n  <div className=\"b-task__meta\">\n    <Badge variant=\"accent\">USSD</Badge>\n    <span>Sep 2</span>\n    <Avatar>AH</Avatar>\n  </div>\n</Task>\n<Task className=\"is-dragging\" style={{ width: \"16rem\" }}>\n  <div className=\"b-task__title\">Fix webhook retries</div>\n  <div className=\"b-task__meta\">\n    <Badge variant=\"danger\">Bug</Badge>\n    <span>Aug 28</span>\n    <Avatar>JK</Avatar>\n  </div>\n</Task>"
          },
          "variants": [
            {
              "id": "task-list",
              "title": "Task list"
            }
          ],
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane"
          ],
          "states": [
            "is-done",
            "is-dragging",
            "is-overdue"
          ]
        },
        {
          "id": "calendar-view",
          "title": "Calendar View",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#calendar-view",
          "summary": ".b-calview is a 7-column month grid: one __head cell per weekday, then a __cell per day holding a __date and stacked .b-event pills ( --green , --orange , --purple recolor them). .is-today fills the date disc with accent; .is-other-month dims spillover days. Two weeks are enough to show the pattern \u2014 a real month just repeats the same cells.",
          "classes": [
            "b-calview",
            "b-calview__cell",
            "b-calview__date",
            "b-calview__head",
            "b-event",
            "b-event--green",
            "b-event--orange",
            "b-event--purple"
          ],
          "markup": "<div class=\"b-calview\">\n  <div class=\"b-calview__head\">Mon</div>\n  <div class=\"b-calview__head\">Tue</div>\n  <div class=\"b-calview__head\">Wed</div>\n  <div class=\"b-calview__head\">Thu</div>\n  <div class=\"b-calview__head\">Fri</div>\n  <div class=\"b-calview__head\">Sat</div>\n  <div class=\"b-calview__head\">Sun</div>\n  <div class=\"b-calview__cell\">\n    <span class=\"b-calview__date\">24</span>\n    <span class=\"b-event\">Standup</span>\n  </div>\n  <div class=\"b-calview__cell\">\n    <span class=\"b-calview__date\">25</span>\n    <span class=\"b-event b-event--purple\">USSD demo</span>\n  </div>\n  <div class=\"b-calview__cell is-today\">\n    <span class=\"b-calview__date\">26</span>\n    <span class=\"b-event\">Sprint review</span>\n    <span class=\"b-event b-event--green\">1:1 Asha</span>\n  </div>\n  <div class=\"b-calview__cell\">\n    <span class=\"b-calview__date\">27</span>\n  </div>\n  <div class=\"b-calview__cell\">\n    <span class=\"b-calview__date\">28</span>\n    <span class=\"b-event b-event--orange\">Campaign launch</span>\n  </div>\n  <div class=\"b-calview__cell\">\n    <span class=\"b-calview__date\">29</span>\n  </div>\n  <div class=\"b-calview__cell\">\n    <span class=\"b-calview__date\">30</span>\n  </div>\n  <div class=\"b-calview__cell\">\n    <span class=\"b-calview__date\">31</span>\n    <span class=\"b-event\">Retro</span>\n  </div>\n  <div class=\"b-calview__cell is-other-month\">\n    <span class=\"b-calview__date\">1</span>\n  ",
          "react": {
            "import": "import { CalendarView, CalendarViewCell, CalendarViewHead, Event } from \"barua-ui\";",
            "components": [
              "CalendarView",
              "CalendarViewCell",
              "CalendarViewHead",
              "Event"
            ],
            "root": "CalendarView",
            "jsx": "<CalendarView>\n  <CalendarViewHead>Mon</CalendarViewHead>\n  <CalendarViewHead>Tue</CalendarViewHead>\n  <CalendarViewHead>Wed</CalendarViewHead>\n  <CalendarViewHead>Thu</CalendarViewHead>\n  <CalendarViewHead>Fri</CalendarViewHead>\n  <CalendarViewHead>Sat</CalendarViewHead>\n  <CalendarViewHead>Sun</CalendarViewHead>\n  <CalendarViewCell>\n    <span className=\"b-calview__date\">24</span>\n    <Event>Standup</Event>\n  </CalendarViewCell>\n  <CalendarViewCell>\n    <span className=\"b-calview__date\">25</span>\n    <Event tone=\"purple\">USSD demo</Event>\n  </CalendarViewCell>\n  <CalendarViewCell today>\n    <span className=\"b-calview__date\">26</span>\n    <Event>Sprint review</Event>\n    <Event tone=\"green\">1:1 Asha</Event>\n  </CalendarViewCell>\n  <CalendarViewCell>\n    <span className=\"b-calview__date\">27</span>\n  </CalendarViewCell>\n  <CalendarViewCell>\n    <span className=\"b-calview__date\">28</span>\n    <Event tone=\"orange\">Campaign launch</Event>\n  </CalendarViewCell>\n  <CalendarViewCell>\n    <span className=\"b-calview__date\">29</span>\n  </CalendarViewCell>\n  <CalendarViewCell>\n    <span className=\"b-calview__date\">30</span>\n  </CalendarViewCell>\n  <CalendarViewCell>\n    <span className=\"b-calview__date\">31</span>\n    <Event>Retro</Event>\n  </CalendarViewCell>\n  <CalendarViewCell className=\"is-other-month\">\n    <span className=\"b-calview__date\">1</span>\n  </CalendarViewCell>\n</CalendarView>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-other-month",
            "is-today"
          ]
        },
        {
          "id": "gantt-view",
          "title": "Gantt View",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#gantt-view",
          "summary": ".b-gantt pairs a __label column with __row tracks. Each .b-gantt__bar is placed with two variables \u2014 --start and --len \u2014 and an inner <i> fills to --done for progress. Recolor per bar with --b-chart-color . The background grid divides into --b-gantt-units columns (default 12 ) \u2014 set it on the container to match your timescale.",
          "classes": [
            "b-gantt",
            "b-gantt__bar",
            "b-gantt__label",
            "b-gantt__row"
          ],
          "markup": "<div class=\"b-gantt\" style=\"--b-gantt-units: 8\">\n  <div class=\"b-gantt__label\">Wire USSD flow</div>\n  <div class=\"b-gantt__row\">\n    <div class=\"b-gantt__bar\" style=\"--start: 0%; --len: 30%\"><i style=\"--done: 70%\"></i></div>\n  </div>\n  <div class=\"b-gantt__label\">IVR prompts</div>\n  <div class=\"b-gantt__row\">\n    <div class=\"b-gantt__bar\" style=\"--start: 22%; --len: 32%; --b-chart-color: var(--b-chart-3)\"><i style=\"--done: 45%\"></i></div>\n  </div>\n  <div class=\"b-gantt__label\">Agent console</div>\n  <div class=\"b-gantt__row\">\n    <div class=\"b-gantt__bar\" style=\"--start: 48%; --len: 38%; --b-chart-color: var(--b-chart-4)\"><i style=\"--done: 20%\"></i></div>\n  </div>\n  <div class=\"b-gantt__label\">Campaign launch</div>\n  <div class=\"b-gantt__row\">\n    <div class=\"b-gantt__bar\" style=\"--start: 82%; --len: 14%; --b-chart-color: var(--b-chart-6)\"><i style=\"--done: 0%\"></i></div>\n  </div>\n</div>",
          "react": {
            "import": "import { Gantt, GanttBar, GanttRow } from \"barua-ui\";",
            "components": [
              "Gantt",
              "GanttBar",
              "GanttRow"
            ],
            "root": "Gantt",
            "jsx": "<Gantt style={{ \"--b-gantt-units\": \"8\" }}>\n  <div className=\"b-gantt__label\">Wire USSD flow</div>\n  <GanttRow>\n    <GanttBar style={{ \"--start\": \"0%\", \"--len\": \"30%\" }}>\n      <i style={{ \"--done\": \"70%\" }}></i>\n    </GanttBar>\n  </GanttRow>\n  <div className=\"b-gantt__label\">IVR prompts</div>\n  <GanttRow>\n    <GanttBar\n      style={{ \"--start\": \"22%\", \"--len\": \"32%\", \"--b-chart-color\": \"var(--b-chart-3)\" }}\n    >\n      <i style={{ \"--done\": \"45%\" }}></i>\n    </GanttBar>\n  </GanttRow>\n  <div className=\"b-gantt__label\">Agent console</div>\n  <GanttRow>\n    <GanttBar\n      style={{ \"--start\": \"48%\", \"--len\": \"38%\", \"--b-chart-color\": \"var(--b-chart-4)\" }}\n    >\n      <i style={{ \"--done\": \"20%\" }}></i>\n    </GanttBar>\n  </GanttRow>\n  <div className=\"b-gantt__label\">Campaign launch</div>\n  <GanttRow>\n    <GanttBar\n      style={{ \"--start\": \"82%\", \"--len\": \"14%\", \"--b-chart-color\": \"var(--b-chart-6)\" }}\n    >\n      <i style={{ \"--done\": \"0%\" }}></i>\n    </GanttBar>\n  </GanttRow>\n</Gantt>"
          },
          "knobs": [
            "--b-chart-color",
            "--b-gantt-units",
            "--b-lg-border",
            "--b-lg-pane",
            "--done",
            "--len",
            "--start"
          ]
        },
        {
          "id": "activity-panel",
          "title": "Activity Panel",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#activity-panel",
          "summary": "There is no dedicated activity component \u2014 compose an inspector-style card from .b-card and the Content page's .b-timeline : time, title, body per event, with .is-complete / .is-active dots marking progress.",
          "classes": [
            "b-badge",
            "b-card",
            "b-card__body",
            "b-card__header",
            "b-card__title",
            "b-timeline",
            "b-timeline__body",
            "b-timeline__time",
            "b-timeline__title"
          ],
          "markup": "<div class=\"b-card\" style=\"max-width: 24rem\">\n  <div class=\"b-card__header\">\n    <div class=\"b-card__title\">Activity</div>\n    <span class=\"b-badge\">Today</span>\n  </div>\n  <div class=\"b-card__body\">\n    <ol class=\"b-timeline\">\n      <li class=\"is-complete\">\n        <div class=\"b-timeline__time\">09:14</div>\n        <div class=\"b-timeline__title\">Ticket #4821 resolved</div>\n        <div class=\"b-timeline__body\">Asha closed the billing escalation after a callback.</div>\n      </li>\n      <li class=\"is-active\">\n        <div class=\"b-timeline__time\">11:02</div>\n        <div class=\"b-timeline__title\">USSD flow v3 deployed</div>\n        <div class=\"b-timeline__body\">Baraka pushed the new menu tree to staging.</div>\n      </li>\n      <li>\n        <div class=\"b-timeline__time\">13:40</div>\n        <div class=\"b-timeline__title\">Campaign queued</div>\n        <div class=\"b-timeline__body\">Nane Nane follow-ups scheduled for 15:00.</div>\n      </li>\n    </ol>\n  </div>\n</div>",
          "react": {
            "import": "import { Badge, Card, CardBody, CardHeader, CardTitle, Timeline } from \"barua-ui\";",
            "components": [
              "Badge",
              "Card",
              "CardBody",
              "CardHeader",
              "CardTitle",
              "Timeline"
            ],
            "root": "Card",
            "jsx": "<Card style={{ maxWidth: \"24rem\" }}>\n  <CardHeader>\n    <CardTitle>Activity</CardTitle>\n    <Badge>Today</Badge>\n  </CardHeader>\n  <CardBody>\n    <Timeline>\n      <li className=\"is-complete\">\n        <div className=\"b-timeline__time\">09:14</div>\n        <div className=\"b-timeline__title\">Ticket #4821 resolved</div>\n        <div className=\"b-timeline__body\">Asha closed the billing escalation after a callback.</div>\n      </li>\n      <li className=\"is-active\">\n        <div className=\"b-timeline__time\">11:02</div>\n        <div className=\"b-timeline__title\">USSD flow v3 deployed</div>\n        <div className=\"b-timeline__body\">Baraka pushed the new menu tree to staging.</div>\n      </li>\n      <li>\n        <div className=\"b-timeline__time\">13:40</div>\n        <div className=\"b-timeline__title\">Campaign queued</div>\n        <div className=\"b-timeline__body\">Nane Nane follow-ups scheduled for 15:00.</div>\n      </li>\n    </Timeline>\n  </CardBody>\n</Card>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-complete"
          ]
        },
        {
          "id": "inspector-and-properties-panel",
          "title": "Inspector & Properties Panel",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#inspector-and-properties-panel",
          "summary": ".b-inspector is the trailing panel of the workspace shell : a sticky __header with a close button, then stacked __section s each led by an <h6> . Inside, .b-props lays out label-control rows ( __key at a fixed 6rem ; inputs and selects auto-shrink to the small control height). Shown standalone here \u2014 inside a shell it docks with only a hairline start border.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-dl",
            "b-icon-btn",
            "b-input",
            "b-inspector",
            "b-inspector__header",
            "b-inspector__section",
            "b-props",
            "b-props__key",
            "b-props__row",
            "b-select",
            "b-slider"
          ],
          "markup": "<aside class=\"b-inspector\" style=\"height: 20rem; border: 1px solid var(--b-separator); border-radius: var(--b-radius-xl);\" aria-label=\"Inspector\">\n  <header class=\"b-inspector__header\">\n    Inspector\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Close inspector\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    </button>\n  </header>\n  <div class=\"b-inspector__section\">\n    <h6>Properties</h6>\n    <div class=\"b-props\">\n      <div class=\"b-props__row\">\n        <label class=\"b-props__key\" for=\"insp-name\">Name</label>\n        <input class=\"b-input\" id=\"insp-name\" value=\"Wire USSD flow\">\n      </div>\n      <div class=\"b-props__row\">\n        <label class=\"b-props__key\" for=\"insp-status\">Status</label>\n        <!-- barua-lint disable native-select: a stand-in control inside a layout demo; forms.html documents the menu select -->\n        <select class=\"b-select\" id=\"insp-status\">\n          <option>Backlog</option>\n          <option selected>In progress</option>\n          <option>Done</option>\n        </select>\n      </div>\n      <div class=\"b-props__row\">\n        <label class=\"b-props__key\" for=\"insp-width\">Width</label>\n        <input class=\"b-slider\" id=\"insp-width\" type=\"range\" min=\"0\" max=\"100\" value=\"64\" style=\"--b-slider-fill: 64%\">\n   ",
          "react": {
            "import": "import { Button, Input, Inspector, Select, Slider } from \"barua-ui\";",
            "components": [
              "Button",
              "Input",
              "Inspector",
              "Select",
              "Slider"
            ],
            "root": "Inspector",
            "jsx": "<Inspector\n  style={{ height: \"20rem\", border: \"1px solid var(--b-separator)\", borderRadius: \"var(--b-radius-xl)\" }}\n  aria-label=\"Inspector\"\n>\n  <header className=\"b-inspector__header\">\n    Inspector\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Close inspector\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"m5.5 5.5 9 9m0-9-9 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      </svg>\n    </Button>\n  </header>\n  <div className=\"b-inspector__section\">\n    <h6>Properties</h6>\n    <div className=\"b-props\">\n      <div className=\"b-props__row\">\n        <label className=\"b-props__key\" htmlFor=\"insp-name\">Name</label>\n        <Input id=\"insp-name\" value=\"Wire USSD flow\" />\n      </div>\n      <div className=\"b-props__row\">\n        <label className=\"b-props__key\" htmlFor=\"insp-status\">Status</label>\n        <Select id=\"insp-status\">\n          <option>Backlog</option>\n          <option selected>In progress</option>\n          <option>Done</option>\n        </Select>\n      </div>\n      <div className=\"b-props__row\">\n        <label className=\"b-props__key\" htmlFor=\"insp-width\">Width</label>\n        <Slider id=\"insp-width\" type=\"range\" min=\"0\" max=\"100\" value=\"64\" style={{ \"--b-slider-fill\": \"64%\" }} />\n      </div>\n    </div>\n  </div>\n</Inspector>"
          },
          "knobs": [
            "--b-inspector-w",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-slider-fill"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-selected",
            "is-valid"
          ]
        },
        {
          "id": "detail-view-and-master-detail",
          "title": "Detail View & Master-Detail",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#detail-view-and-master-detail",
          "summary": ".b-master-detail splits a __list (a .b-list of interactive rows, one .is-selected ) from a __detail pane. Below 768px the panes collapse to one at a time: the list shows by default, and toggling .is-detail-open on the container swaps in the detail \u2014 pair it with a back button in the detail header.",
          "classes": [
            "b-avatar",
            "b-avatar--sm",
            "b-badge",
            "b-badge--warning",
            "b-btn",
            "b-btn--primary",
            "b-dl",
            "b-hstack",
            "b-list",
            "b-list--plain",
            "b-list-item",
            "b-list-item--interactive",
            "b-list-item__content",
            "b-list-item__leading",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-list-item__trailing",
            "b-master-detail",
            "b-master-detail__detail",
            "b-master-detail__list"
          ],
          "markup": "<div class=\"b-master-detail\">\n  <div class=\"b-master-detail__list\">\n    <ul class=\"b-list b-list--plain\">\n      <li class=\"b-list-item b-list-item--interactive\">\n        <span class=\"b-list-item__leading\"><span class=\"b-avatar b-avatar--sm\">AH</span></span>\n        <div class=\"b-list-item__content\">\n          <div class=\"b-list-item__title\">#4821 \u2014 Billing escalation</div>\n          <div class=\"b-list-item__subtitle\">Resolved \u00b7 Asha</div>\n        </div>\n        <span class=\"b-list-item__trailing\">2h</span>\n      </li>\n      <li class=\"b-list-item b-list-item--interactive is-selected\">\n        <span class=\"b-list-item__leading\"><span class=\"b-avatar b-avatar--sm\">BO</span></span>\n        <div class=\"b-list-item__content\">\n          <div class=\"b-list-item__title\">#4832 \u2014 USSD menu loops</div>\n          <div class=\"b-list-item__subtitle\">Open \u00b7 Baraka</div>\n        </div>\n        <span class=\"b-list-item__trailing\">35m</span>\n      </li>\n      <li class=\"b-list-item b-list-item--interactive\">\n        <span class=\"b-list-item__leading\"><span class=\"b-avatar b-avatar--sm\">JK</span></span>\n        <div class=\"b-list-item__content\">\n          <div class=\"b-list-item__title\">#4835 \u2014 Recording missing</div>\n          <div class=\"b-list-item__subtitle\">Open \u00b7 Joseph</div>\n        </div>\n        <span class=\"b-list-item__trailing\">12m</span>\n      </li>\n    </ul>\n  </div>\n  <div class=\"b",
          "react": {
            "import": "import { Avatar, List, ListItem } from \"barua-ui\";",
            "components": [
              "Avatar",
              "List",
              "ListItem"
            ],
            "root": "Avatar",
            "jsx": "<div className=\"b-master-detail\">\n  <div className=\"b-master-detail__list\">\n    <List plain>\n      <ListItem interactive>\n        <span className=\"b-list-item__leading\">\n          <Avatar className=\"b-avatar--sm\">AH</Avatar>\n        </span>\n        <div className=\"b-list-item__content\">\n          <div className=\"b-list-item__title\">#4821 \u2014 Billing escalation</div>\n          <div className=\"b-list-item__subtitle\">Resolved \u00b7 Asha</div>\n        </div>\n        <span className=\"b-list-item__trailing\">2h</span>\n      </ListItem>\n      <ListItem interactive selected>\n        <span className=\"b-list-item__leading\">\n          <Avatar className=\"b-avatar--sm\">BO</Avatar>\n        </span>\n        <div className=\"b-list-item__content\">\n          <div className=\"b-list-item__title\">#4832 \u2014 USSD menu loops</div>\n          <div className=\"b-list-item__subtitle\">Open \u00b7 Baraka</div>\n        </div>\n        <span className=\"b-list-item__trailing\">35m</span>\n      </ListItem>\n      <ListItem interactive>\n        <span className=\"b-list-item__leading\">\n          <Avatar className=\"b-avatar--sm\">JK</Avatar>\n        </span>\n        <div className=\"b-list-item__content\">\n          <div className=\"b-list-item__title\">#4835 \u2014 Recording missing</div>\n          <div className=\"b-list-item__subtitle\">Open \u00b7 Joseph</div>\n        </div>\n        <span className=\"b-list-item__trailing\">12m</span>\n      </ListItem>\n    </List>\n  </div>\n</div>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-detail-open",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "split-pane",
          "title": "Split Pane",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#split-pane",
          "summary": "Resizable side-by-side panels are covered in Layout \u2014 .b-split + .b-panel with a .b-resize-handle between them, the leading panel made draggable via .b-resizable .",
          "classes": [
            "b-panel",
            "b-resizable",
            "b-resize-handle",
            "b-split"
          ],
          "markup": "<div class=\"b-split\" style=\"height: 9rem\">\n  <div class=\"b-panel b-resizable\" style=\"flex: 0 0 38%; padding: var(--b-space-4);\">Queue</div>\n  <div class=\"b-resize-handle\" role=\"separator\" aria-orientation=\"vertical\" aria-label=\"Resize panels\"></div>\n  <div class=\"b-panel\" style=\"flex: 1; padding: var(--b-space-4);\">Transcript</div>\n</div>",
          "react": {
            "import": "import { Resizable, ResizeHandle, Split } from \"barua-ui\";",
            "components": [
              "Resizable",
              "ResizeHandle",
              "Split"
            ],
            "root": "Split",
            "jsx": "<Split style={{ height: \"9rem\" }}>\n  <Resizable\n    className=\"b-panel\"\n    style={{ flex: \"0 0 38%\", padding: \"var(--b-space-4)\" }}\n  >\n    Queue\n  </Resizable>\n  <ResizeHandle\n    role=\"separator\"\n    aria-orientation=\"vertical\"\n    aria-label=\"Resize panels\"\n  ></ResizeHandle>\n  <div\n    className=\"b-panel\"\n    style={{ flex: \"1\", padding: \"var(--b-space-4)\" }}\n  >\n    Transcript\n  </div>\n</Split>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "dock",
          "title": "Dock",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#dock",
          "summary": "A macOS-style app switcher. In production the glass .b-dock__tray sits inside .b-dock , which fixes it to the bottom of the viewport \u2014 shown statically here. Items magnify and lift on hover ( scale 1.28 with a bounce ease) and .is-active draws the running-app dot.",
          "classes": [
            "b-dock__item",
            "b-dock__tray",
            "b-icon"
          ],
          "markup": "<div class=\"b-dock__tray\">\n  <button class=\"b-dock__item is-active\" aria-label=\"Calls\"><svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M6.5 3.5 8 6.2 6.4 8a9 9 0 0 0 5.6 5.6l1.8-1.6 2.7 1.5v2.2a1.3 1.3 0 0 1-1.4 1.3A13.5 13.5 0 0 1 3 5.2 1.3 1.3 0 0 1 4.3 3.8h2.2Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></button>\n  <button class=\"b-dock__item\" aria-label=\"Inbox\"><svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 11.5 5 5h10l1.5 6.5v2.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-2.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M3.5 11.5h4l1 1.5h3l1-1.5h4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></button>\n  <button class=\"b-dock__item\" aria-label=\"Contacts\"><svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"7.5\" cy=\"7\" r=\"2.6\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M2.5 16a5 5 0 0 1 10 0\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M13 4.6a2.6 2.6 0 0 1 0 4.9M14.5 11.6a5 5 0 0 1 3 4.4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg></button>\n  <button class=\"b-dock__item\" aria-label=\"Reports\"><svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 16.5V9M10 16.5V4M16 16.5v-5\" stroke=\"currentColor\" stroke-wi",
          "react": {
            "import": "import { DockTray, Icon } from \"barua-ui\";",
            "components": [
              "DockTray",
              "Icon"
            ],
            "root": "DockTray",
            "jsx": "<DockTray>\n  <button className=\"b-dock__item is-active\" aria-label=\"Calls\">\n    <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M6.5 3.5 8 6.2 6.4 8a9 9 0 0 0 5.6 5.6l1.8-1.6 2.7 1.5v2.2a1.3 1.3 0 0 1-1.4 1.3A13.5 13.5 0 0 1 3 5.2 1.3 1.3 0 0 1 4.3 3.8h2.2Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </Icon>\n  </button>\n  <button className=\"b-dock__item\" aria-label=\"Inbox\">\n    <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M3.5 11.5 5 5h10l1.5 6.5v2.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-2.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      <path d=\"M3.5 11.5h4l1 1.5h3l1-1.5h4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </Icon>\n  </button>\n  <button className=\"b-dock__item\" aria-label=\"Contacts\">\n    <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <circle cx=\"7.5\" cy=\"7\" r=\"2.6\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"M2.5 16a5 5 0 0 1 10 0\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      <path d=\"M13 4.6a2.6 2.6 0 0 1 0 4.9M14.5 11.6a5 5 0 0 1 3 4.4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </Icon>\n  </button>\n  <button className=\"b-dock__item\" aria-label=\"Reports\">\n    <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"></Icon>\n  </button>\n</DockTray>"
          },
          "states": [
            "is-active"
          ]
        },
        {
          "id": "toolbar",
          "title": "Toolbar",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#toolbar",
          "summary": "The toolbar family lives in Actions ; in a workspace it floats over the board as .b-toolbar--glass with the view's bulk actions at the trailing end.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-btn--tinted",
            "b-divider",
            "b-divider--vertical",
            "b-icon-btn",
            "b-toolbar",
            "b-toolbar--glass"
          ],
          "markup": "<div class=\"b-toolbar b-toolbar--glass\" role=\"toolbar\" aria-label=\"Board tools\">\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Add task\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/></svg>\n  </button>\n  <button class=\"b-btn b-btn--ghost b-btn--sm\">Filter</button>\n  <button class=\"b-btn b-btn--ghost b-btn--sm\">Group</button>\n  <hr class=\"b-divider b-divider--vertical\">\n  <button class=\"b-btn b-btn--tinted b-btn--sm\">Share board</button>\n</div>",
          "react": {
            "import": "import { Button, Divider, Toolbar } from \"barua-ui\";",
            "components": [
              "Button",
              "Divider",
              "Toolbar"
            ],
            "root": "Toolbar",
            "jsx": "<Toolbar glass role=\"toolbar\" aria-label=\"Board tools\">\n  <Button icon variant=\"ghost\" aria-label=\"Add task\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n    </svg>\n  </Button>\n  <Button variant=\"ghost\" size=\"sm\">Filter</Button>\n  <Button variant=\"ghost\" size=\"sm\">Group</Button>\n  <Divider vertical />\n  <Button variant=\"tinted\" size=\"sm\">Share board</Button>\n</Toolbar>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "app-grid",
          "title": "App Grid",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#app-grid",
          "summary": "The iOS home screen: squircle icons with their names beneath, in an auto-filling grid. .is-soon dims an unreleased tile; __hint carries a quiet second line.",
          "classes": [
            "b-app-grid",
            "b-app-tile",
            "b-app-tile__hint",
            "b-app-tile__icon",
            "b-app-tile__label"
          ],
          "markup": "<ul class=\"b-app-grid\" style=\"max-width: 26rem\">\n  <li><a class=\"b-app-tile\" href=\"#app-grid\">\n    <span class=\"b-app-tile__icon\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"4\" fill=\"currentColor\" opacity=\"0.25\"/><path d=\"m4 7 8 6 8-6\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>\n    <span class=\"b-app-tile__label\">Mail</span>\n  </a></li>\n  <li><a class=\"b-app-tile\" href=\"#app-grid\">\n    <span class=\"b-app-tile__icon\" style=\"background: linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\"><svg width=\"22\" height=\"22\" viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></span>\n    <span class=\"b-app-tile__label\">Drive</span>\n  </a></li>\n  <li><a class=\"b-app-tile\" href=\"#app-grid\">\n    <span class=\"b-app-tile__icon\" style=\"background: linear-gradient(135deg, var(--b-color-indigo), var(--b-color-purple))\"><svg width=\"22\" height=\"22\" viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"6.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M3.5 10h13M10 3.5c2 2 2 11 0 13-2-2-2-11 0-13Z\" stroke=\"currentColor\" stroke-width=\"1.3\"/></svg></span>\n    <span class=\"b-app-tile__la",
          "react": {
            "import": "import { AppGrid, AppTile } from \"barua-ui\";",
            "components": [
              "AppGrid",
              "AppTile"
            ],
            "root": "AppGrid",
            "jsx": "<AppGrid style={{ maxWidth: \"26rem\" }}>\n  <li>\n    <AppTile href=\"#app-grid\">\n      <span className=\"b-app-tile__icon\">\n        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n          <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"4\" fill=\"currentColor\" opacity=\"0.25\" />\n          <path d=\"m4 7 8 6 8-6\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n        </svg>\n      </span>\n      <span className=\"b-app-tile__label\">Mail</span>\n    </AppTile>\n  </li>\n  <li>\n    <AppTile href=\"#app-grid\">\n      <span\n        className=\"b-app-tile__icon\"\n        style={{ background: \"linear-gradient(135deg, var(--b-color-teal), var(--b-color-cyan))\" }}\n      >\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 20 20\" fill=\"none\">\n          <path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        </svg>\n      </span>\n      <span className=\"b-app-tile__label\">Drive</span>\n    </AppTile>\n  </li>\n  <li>\n    <AppTile href=\"#app-grid\">\n      <span\n        className=\"b-app-tile__icon\"\n        style={{ background: \"linear-gradient(135deg, var(--b-color-indigo), var(--b-color-purple))\" }}\n      >\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 20 20\" fill=\"none\">\n          <circle cx=\"10\" cy=\"10\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n          <path d=\"M3.5 10h13M10 3.5c2 2 2 11 0 13-2-2-2-11 0-13Z\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n        </svg>\n      </span>\n    </AppTile>\n  </li>\n</AppGrid>"
          },
          "states": [
            "is-soon"
          ]
        },
        {
          "id": "ornament",
          "title": "Ornament",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#ornament",
          "summary": "visionOS's ornament, translated: a floating glass control cluster hanging half-off a panel's edge. Wrap the panel in .b-ornament-host ; the ornament names its edge \u2014 --bottom , --top , --start , --end .",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-card",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title",
            "b-icon-btn",
            "b-ornament",
            "b-ornament--bottom",
            "b-ornament-host"
          ],
          "markup": "<div class=\"b-ornament-host b-card\" style=\"width: min(26rem, 100%)\">\n  <div class=\"b-card__body\" style=\"min-height: 9rem\">\n    <div class=\"b-card__title\">Q3 research.pdf</div>\n    <div class=\"b-card__subtitle\">Page 4 of 18</div>\n  </div>\n  <div class=\"b-ornament b-ornament--bottom\" role=\"toolbar\" aria-label=\"Document controls\">\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Previous page\">\u2039</button>\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Zoom out\">\u2212</button>\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Zoom in\">+</button>\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Next page\">\u203a</button>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, Card, CardBody, CardSubtitle, CardTitle } from \"barua-ui\";",
            "components": [
              "Button",
              "Card",
              "CardBody",
              "CardSubtitle",
              "CardTitle"
            ],
            "root": "Card",
            "jsx": "<Card className=\"b-ornament-host\" style={{ width: \"min(26rem, 100%)\" }}>\n  <CardBody style={{ minHeight: \"9rem\" }}>\n    <CardTitle>Q3 research.pdf</CardTitle>\n    <CardSubtitle>Page 4 of 18</CardSubtitle>\n  </CardBody>\n  <div\n    className=\"b-ornament b-ornament--bottom\"\n    role=\"toolbar\"\n    aria-label=\"Document controls\"\n  >\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Previous page\">\u2039</Button>\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Zoom out\">\u2212</Button>\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Zoom in\">+</Button>\n    <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Next page\">\u203a</Button>\n  </div>\n</Card>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "status-bar",
          "title": "Status Bar",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#status-bar",
          "summary": ".b-statusbar is the thin strip along the bottom of a shell: tabular-numeral __item entries with a hairline top border. Pair it with a .b-status dot for connection state and a .b-spacer to split leading from trailing items.",
          "classes": [
            "b-spacer",
            "b-status",
            "b-status--online",
            "b-statusbar",
            "b-statusbar__item"
          ],
          "markup": "<div class=\"b-statusbar\">\n  <span class=\"b-statusbar__item\">\n    <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"4.5\" cy=\"3.5\" r=\"1.6\" stroke=\"currentColor\" stroke-width=\"1.3\"/><circle cx=\"4.5\" cy=\"12.5\" r=\"1.6\" stroke=\"currentColor\" stroke-width=\"1.3\"/><circle cx=\"11.5\" cy=\"4.5\" r=\"1.6\" stroke=\"currentColor\" stroke-width=\"1.3\"/><path d=\"M4.5 5.1v5.8M11.5 6.1a5 5 0 0 1-5 5\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linecap=\"round\"/></svg>\n    main\n  </span>\n  <span class=\"b-statusbar__item\"><span class=\"b-status b-status--online\">Synced</span></span>\n  <span class=\"b-spacer\"></span>\n  <span class=\"b-statusbar__item\">Ln 42, Col 7</span>\n  <span class=\"b-statusbar__item\">UTF-8</span>\n</div>",
          "react": {
            "import": "import { Spacer, StatusBar, StatusBarItem, StatusDot } from \"barua-ui\";",
            "components": [
              "Spacer",
              "StatusBar",
              "StatusBarItem",
              "StatusDot"
            ],
            "root": "StatusBar",
            "jsx": "<StatusBar>\n  <StatusBarItem>\n    <svg\n      viewBox=\"0 0 16 16\"\n      width=\"12\"\n      height=\"12\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <circle cx=\"4.5\" cy=\"3.5\" r=\"1.6\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n      <circle cx=\"4.5\" cy=\"12.5\" r=\"1.6\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n      <circle cx=\"11.5\" cy=\"4.5\" r=\"1.6\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n      <path d=\"M4.5 5.1v5.8M11.5 6.1a5 5 0 0 1-5 5\" stroke=\"currentColor\" strokeWidth=\"1.3\" strokeLinecap=\"round\" />\n    </svg>\n    main\n  </StatusBarItem>\n  <StatusBarItem>\n    <StatusDot className=\"b-status--online\">Synced</StatusDot>\n  </StatusBarItem>\n  <Spacer></Spacer>\n  <StatusBarItem>Ln 42, Col 7</StatusBarItem>\n  <StatusBarItem>UTF-8</StatusBarItem>\n</StatusBar>"
          }
        },
        {
          "id": "control-center",
          "title": "Control Center",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#control-center",
          "summary": "The iOS-style glass tile grid \u2014 .b-cc \u2014 for quick settings, connectivity, and media. Tiles span the 4-column grid ( --2x2 , --2x1 , --4x1 , --round ); toggle pills flip with .b-cc__icon.is-on , and the chunky __range sliders hide a real <input type=\"range\"> for keyboard and screen-reader access. Best floated over wallpaper-grade color.",
          "classes": [
            "b-cc",
            "b-cc__art",
            "b-cc__icon",
            "b-cc__label",
            "b-cc__meta",
            "b-cc__pill",
            "b-cc__range",
            "b-cc__range-icon",
            "b-cc__range-icon--end",
            "b-cc__range-icon--start",
            "b-cc__status",
            "b-cc__tile",
            "b-cc__tile--2x1",
            "b-cc__tile--2x2",
            "b-cc__tile--4x1",
            "b-cc__tile--round",
            "b-cc__transport"
          ],
          "markup": "<div class=\"b-cc\">\n  <div class=\"b-cc__tile b-cc__tile--2x2\">\n    <div class=\"b-cc__pill\">\n      <button class=\"b-cc__icon is-on\" aria-pressed=\"true\" aria-label=\"Wi-Fi on\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M2.5 8a11 11 0 0 1 15 0M5 11a7.3 7.3 0 0 1 10 0M7.6 13.8a3.6 3.6 0 0 1 4.8 0\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/><circle cx=\"10\" cy=\"16.2\" r=\"1.1\" fill=\"currentColor\"/></svg>\n      </button>\n      <span class=\"b-cc__meta\"><span class=\"b-cc__label\">Wi-Fi</span><br><span class=\"b-cc__status\">Ghala</span></span>\n    </div>\n    <div class=\"b-cc__pill\">\n      <button class=\"b-cc__icon is-on\" aria-pressed=\"true\" aria-label=\"Bluetooth on\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M6 6.5 14 13l-4 3.5v-13L14 7l-8 6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      </button>\n      <span class=\"b-cc__meta\"><span class=\"b-cc__label\">Bluetooth</span><br><span class=\"b-cc__status\">On</span></span>\n    </div>\n    <div class=\"b-cc__pill\">\n      <button class=\"b-cc__icon\" aria-pressed=\"false\" aria-label=\"AirDrop\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M6.5 13.5a5 5 0 0 1 0-7M13.5 6.5a5 5 0 0 1 0 7M4.4 15.6a8 8 0 0 1 0-11.2M15.6 4.4a8 8 0 0 1 0 11.2\" stroke=\"currentColor\" stroke-width=\"1.4\"",
          "react": {
            "import": "import { CommandCenterLabel, CommandCenterStatus, CommandCenterTile } from \"barua-ui\";",
            "components": [
              "CommandCenterLabel",
              "CommandCenterStatus",
              "CommandCenterTile"
            ],
            "root": "CommandCenterLabel",
            "jsx": "<div className=\"b-cc\">\n  <CommandCenterTile className=\"b-cc__tile--2x2\">\n    <div className=\"b-cc__pill\">\n      <button\n        className=\"b-cc__icon is-on\"\n        aria-pressed=\"true\"\n        aria-label=\"Wi-Fi on\"\n      >\n        <svg viewBox=\"0 0 20 20\" fill=\"none\">\n          <path d=\"M2.5 8a11 11 0 0 1 15 0M5 11a7.3 7.3 0 0 1 10 0M7.6 13.8a3.6 3.6 0 0 1 4.8 0\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n          <circle cx=\"10\" cy=\"16.2\" r=\"1.1\" fill=\"currentColor\" />\n        </svg>\n      </button>\n      <span className=\"b-cc__meta\">\n        <CommandCenterLabel>Wi-Fi</CommandCenterLabel>\n        <br />\n        <CommandCenterStatus>Ghala</CommandCenterStatus>\n      </span>\n    </div>\n    <div className=\"b-cc__pill\">\n      <button\n        className=\"b-cc__icon is-on\"\n        aria-pressed=\"true\"\n        aria-label=\"Bluetooth on\"\n      >\n        <svg viewBox=\"0 0 20 20\" fill=\"none\">\n          <path d=\"M6 6.5 14 13l-4 3.5v-13L14 7l-8 6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n        </svg>\n      </button>\n      <span className=\"b-cc__meta\">\n        <CommandCenterLabel>Bluetooth</CommandCenterLabel>\n        <br />\n        <CommandCenterStatus>On</CommandCenterStatus>\n      </span>\n    </div>\n    <div className=\"b-cc__pill\">\n      <button className=\"b-cc__icon\" aria-pressed=\"false\" aria-label=\"AirDrop\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\">\n          <circle cx=\"10\" cy=\"10\" r=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        </svg>\n      </button>\n    </div>\n  </CommandCenterTile>\n</div>"
          },
          "knobs": [
            "--b-cc-fill",
            "--b-cc-tile",
            "--v"
          ],
          "states": [
            "is-on",
            "is-on--green",
            "is-on--white"
          ]
        },
        {
          "id": "liquid-glass",
          "title": "Liquid Glass Objects",
          "category": "productivity",
          "url": "https://ui.barua.tz/docs/productivity.html#liquid-glass",
          "summary": "Decorative-grade glass primitives in the Apple Developer \"liquid\" style \u2014 a refractive .b-lens button, a .b-liquid-toggle with a colored core inside a glass capsule, and a .b-liquid-bar gradient slider with a glass cap. Drawn entirely in CSS: layered radial highlights, inset rims, and backdrop blur.",
          "classes": [
            "b-lens",
            "b-liquid-bar",
            "b-liquid-bar--accent",
            "b-liquid-capsule",
            "b-liquid-toggle"
          ],
          "markup": "<button class=\"b-liquid-toggle\" aria-pressed=\"true\" aria-label=\"Liquid toggle\"\n  onclick=\"this.setAttribute('aria-pressed', this.getAttribute('aria-pressed')==='true'?'false':'true')\"></button>\n<button class=\"b-lens\" aria-label=\"Add\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/></svg>\n</button>\n<div class=\"b-liquid-bar\" style=\"--v: 64%\" role=\"img\" aria-label=\"Gradient level indicator at 64%\"><i></i><b></b></div>\n<span class=\"b-liquid-capsule\" aria-hidden=\"true\" style=\"--b-capsule-w: 8rem; --b-capsule-h: 4rem\"></span>\n<div class=\"b-liquid-bar b-liquid-bar--accent\" style=\"--v: 46%; --b-liquid-bar-w: 11rem\" role=\"img\" aria-label=\"Level indicator at 46%\"><i></i></div>",
          "react": {
            "import": "import { ImageLens, LiquidToggle } from \"barua-ui\";",
            "components": [
              "ImageLens",
              "LiquidToggle"
            ],
            "root": "LiquidToggle",
            "jsx": "<LiquidToggle\n  aria-pressed=\"true\"\n  aria-label=\"Liquid toggle\"\n  onclick=\"this.setAttribute('aria-pressed', this.getAttribute('aria-pressed')==='true'?'false':'true')\"\n></LiquidToggle>\n<ImageLens aria-label=\"Add\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\">\n    <path d=\"M10 4v12M4 10h12\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n  </svg>\n</ImageLens>\n<div\n  className=\"b-liquid-bar\"\n  style={{ \"--v\": \"64%\" }}\n  role=\"img\"\n  aria-label=\"Gradient level indicator at 64%\"\n>\n  <i></i>\n  <b></b>\n</div>\n<span\n  className=\"b-liquid-capsule\"\n  aria-hidden=\"true\"\n  style={{ \"--b-capsule-w\": \"8rem\", \"--b-capsule-h\": \"4rem\" }}\n></span>\n<div\n  className=\"b-liquid-bar b-liquid-bar--accent\"\n  style={{ \"--v\": \"46%\", \"--b-liquid-bar-w\": \"11rem\" }}\n  role=\"img\"\n  aria-label=\"Level indicator at 46%\"\n>\n  <i></i>\n</div>"
          },
          "knobs": [
            "--b-capsule-h",
            "--b-capsule-w",
            "--b-lens-size",
            "--b-liquid-bar-w",
            "--b-liquid-color",
            "--v"
          ]
        }
      ]
    },
    {
      "id": "interaction",
      "title": "Interaction \u2014 states, drag and drop, shortcuts",
      "url": "https://ui.barua.tz/docs/interaction.html",
      "components": [
        {
          "id": "state-conventions",
          "title": "State Conventions",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#state-conventions",
          "summary": "Barua uses one small vocabulary everywhere. Native pseudo-classes do the work when the browser can ( :hover , :active , :disabled , :focus-visible ); a matching is-* class exists for every state your JavaScript needs to drive itself.",
          "classes": [
            "b-btn",
            "b-table",
            "b-table-wrap"
          ],
          "markup": "<button class=\"b-btn\">Default</button>\n<button class=\"b-btn is-pressed\">Pressed</button>\n<button class=\"b-btn is-active\">Active</button>\n<button class=\"b-btn is-dragging\" draggable=\"true\">Dragging</button>\n<button class=\"b-btn\" disabled>Disabled</button>\n<button class=\"b-btn is-disabled\" aria-disabled=\"true\">Disabled (class)</button>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button>Default</Button>\n<Button className=\"is-pressed\">Pressed</Button>\n<Button active>Active</Button>\n<Button className=\"is-dragging\" draggable=\"true\">Dragging</Button>\n<Button disabled>Disabled</Button>\n<Button className=\"is-disabled\" aria-disabled=\"true\">Disabled (class)</Button>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "hover-state",
          "title": "Hover State",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#hover-state",
          "summary": "Hover is an invitation, not information: the surface tint deepens one step ( --b-fill-quaternary \u2192 --b-fill-tertiary ) and interactive cards lift 2px. Treat it as enhancement only \u2014 touch screens never fire it, so nothing may exist solely behind a hover.",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-badge--success",
            "b-card",
            "b-card--interactive",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title",
            "b-grid",
            "b-grid--2",
            "b-list",
            "b-list-item",
            "b-list-item--interactive",
            "b-list-item__chevron",
            "b-list-item__content",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-table",
            "b-table--hover",
            "b-table-wrap"
          ],
          "markup": "<div class=\"b-grid b-grid--2\">\n  <div class=\"b-card b-card--interactive\">\n    <div class=\"b-card__body\">\n      <div class=\"b-card__title\">Weekly digest</div>\n      <div class=\"b-card__subtitle\">Hover me \u2014 I lift and gain elevation</div>\n    </div>\n  </div>\n  <div class=\"b-card b-card--interactive\">\n    <div class=\"b-card__body\">\n      <div class=\"b-card__title\">Team inbox</div>\n      <div class=\"b-card__subtitle\">.b-card--interactive opts a card in</div>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Card, CardBody, CardSubtitle, CardTitle, Grid } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "CardSubtitle",
              "CardTitle",
              "Grid"
            ],
            "root": "Grid",
            "jsx": "<Grid cols={2}>\n  <Card className=\"b-card--interactive\">\n    <CardBody>\n      <CardTitle>Weekly digest</CardTitle>\n      <CardSubtitle>Hover me \u2014 I lift and gain elevation</CardSubtitle>\n    </CardBody>\n  </Card>\n  <Card className=\"b-card--interactive\">\n    <CardBody>\n      <CardTitle>Team inbox</CardTitle>\n      <CardSubtitle>.b-card--interactive opts a card in</CardSubtitle>\n    </CardBody>\n  </Card>\n</Grid>"
          },
          "variants": [
            {
              "id": "hover-cards",
              "title": "Cards"
            },
            {
              "id": "hover-list-items",
              "title": "List items"
            },
            {
              "id": "hover-table-rows",
              "title": "Table rows"
            }
          ],
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "pressed-state",
          "title": "Pressed State",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#pressed-state",
          "summary": "Buttons compress to scale: 0.97 on :active \u2014 a 100ms ( --b-duration-instant ) squeeze that makes every press feel physical, the way Apple's controls do. When state is driven from JavaScript instead of the pointer \u2014 keyboard activation, pointer capture on a custom control \u2014 apply .is-pressed to get the identical physics.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-btn--tinted"
          ],
          "markup": "<button class=\"b-btn b-btn--primary\">Press and hold</button>\n<button class=\"b-btn\">Press and hold</button>\n<button class=\"b-btn b-btn--tinted is-pressed\">.is-pressed</button>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"primary\">Press and hold</Button>\n<Button>Press and hold</Button>\n<Button variant=\"tinted\" className=\"is-pressed\">.is-pressed</Button>"
          },
          "variants": [
            {
              "id": "touch-targets",
              "title": "Touch Targets"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "active-selected-state",
          "title": "Active & Selected State",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#active-selected-state",
          "summary": ".is-active means \"you are here\" or \"this is on\" \u2014 navigation items, segmented controls, toggles. .is-selected means \"this is chosen and something will happen to it\" \u2014 list rows, chips, cards in a picker. Both tint with --b-color-accent-soft so the whole system re-themes from one accent token.",
          "classes": [
            "b-card",
            "b-card--flat",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title",
            "b-chip",
            "b-grid",
            "b-grid--3",
            "b-list",
            "b-list-item",
            "b-list-item--interactive",
            "b-list-item__content",
            "b-list-item__title",
            "b-list-item__trailing",
            "b-segmented",
            "b-segmented__item",
            "b-selectable",
            "b-sidebar",
            "b-sidebar__item"
          ],
          "markup": "<div class=\"b-segmented\">\n  <button class=\"b-segmented__item is-active\">List</button>\n  <button class=\"b-segmented__item\">Board</button>\n  <button class=\"b-segmented__item\">Timeline</button>\n</div>\n<button class=\"b-chip is-selected\">Design</button>\n<button class=\"b-chip\">Engineering</button>\n<button class=\"b-chip\">Marketing</button>",
          "react": {
            "import": "import { Chip, Segmented } from \"barua-ui\";",
            "components": [
              "Chip",
              "Segmented"
            ],
            "root": "Segmented",
            "jsx": "<Segmented>\n  <button className=\"b-segmented__item is-active\">List</button>\n  <button className=\"b-segmented__item\">Board</button>\n  <button className=\"b-segmented__item\">Timeline</button>\n</Segmented>\n<Chip selected>Design</Chip>\n<Chip>Engineering</Chip>\n<Chip>Marketing</Chip>"
          },
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-selected"
          ]
        },
        {
          "id": "disabled-state",
          "title": "Disabled State",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#disabled-state",
          "summary": "Disabled controls fade to --b-opacity-disabled (0.4) and swap to a not-allowed cursor. The native disabled attribute is the default; the .is-disabled class produces the same look on elements that can't take the attribute (links, custom widgets).",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-checkbox",
            "b-input",
            "b-select",
            "b-switch"
          ],
          "markup": "<button class=\"b-btn b-btn--primary\" disabled>Send</button>\n<button class=\"b-btn is-disabled\" aria-disabled=\"true\">Archive</button>\n<input class=\"b-input\" style=\"width: 11rem;\" placeholder=\"Recipient\" disabled>\n<!-- barua-lint disable native-select: showing the disabled state of a platform control -->\n<select class=\"b-select\" style=\"width: 9rem;\" disabled>\n  <option>Read only</option>\n</select>\n<label class=\"b-switch\"><input type=\"checkbox\" checked disabled> Auto-reply</label>\n<label class=\"b-checkbox\"><input type=\"checkbox\" disabled> Cc me</label>",
          "react": {
            "import": "import { Button, Checkbox, Input, Select, Switch } from \"barua-ui\";",
            "components": [
              "Button",
              "Checkbox",
              "Input",
              "Select",
              "Switch"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"primary\" disabled>Send</Button>\n<Button className=\"is-disabled\" aria-disabled=\"true\">Archive</Button>\n<Input style={{ width: \"11rem\" }} placeholder=\"Recipient\" disabled />\n<Select style={{ width: \"9rem\" }} disabled>\n  <option>Read only</option>\n</Select>\n<Switch>\n  <input type=\"checkbox\" checked disabled />\n  Auto-reply\n</Switch>\n<Checkbox>\n  <input type=\"checkbox\" disabled />\n  Cc me\n</Checkbox>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-selected",
            "is-valid"
          ]
        },
        {
          "id": "dragging-state",
          "title": "Dragging State",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#dragging-state",
          "summary": "Mid-drag, the grabbed element takes .is-dragging : opacity drops to 0.55 and the cursor switches to grabbing \u2014 on .b-task cards it also tilts 2\u00b0 for a picked-up feel. Leave a .b-drag-ghost copy (50% opacity) at the origin so the layout doesn't jump. Anything with draggable=\"true\" shows a grab cursor at rest.",
          "classes": [
            "b-drag-ghost",
            "b-task",
            "b-task__meta",
            "b-task__title"
          ],
          "markup": "<div class=\"b-task\" draggable=\"true\" style=\"width: 12.5rem;\">\n  <div class=\"b-task__title\">At rest</div>\n  <div class=\"b-task__meta\">cursor: grab</div>\n</div>\n<div class=\"b-task b-drag-ghost\" style=\"width: 12.5rem;\">\n  <div class=\"b-task__title\">Origin ghost</div>\n  <div class=\"b-task__meta\">.b-drag-ghost</div>\n</div>\n<div class=\"b-task is-dragging\" style=\"width: 12.5rem;\">\n  <div class=\"b-task__title\">Being dragged</div>\n  <div class=\"b-task__meta\">.is-dragging</div>\n</div>",
          "react": {
            "import": "import { Task } from \"barua-ui\";",
            "components": [
              "Task"
            ],
            "root": "Task",
            "jsx": "<Task draggable=\"true\" style={{ width: \"12.5rem\" }}>\n  <div className=\"b-task__title\">At rest</div>\n  <div className=\"b-task__meta\">cursor: grab</div>\n</Task>\n<Task className=\"b-drag-ghost\" style={{ width: \"12.5rem\" }}>\n  <div className=\"b-task__title\">Origin ghost</div>\n  <div className=\"b-task__meta\">.b-drag-ghost</div>\n</Task>\n<Task className=\"is-dragging\" style={{ width: \"12.5rem\" }}>\n  <div className=\"b-task__title\">Being dragged</div>\n  <div className=\"b-task__meta\">.is-dragging</div>\n</Task>"
          },
          "states": [
            "is-done",
            "is-dragging",
            "is-overdue"
          ]
        },
        {
          "id": "drag-and-drop",
          "title": "Drag & Drop",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#drag-and-drop",
          "summary": "The full pattern composes four pieces: .b-dropzone around any list (its 2px dashed border is transparent until needed), .is-dropover when a drag hovers a valid target (dashed accent border + accent-soft wash), .b-drop-indicator as the insertion line between items, and .is-dragging on the grabbed card. The HTML5 dragstart / dragover / drop wiring \u2014 and toggling these classes \u2014 is app-side JavaScript; Barua supplies the states, not the engine.",
          "classes": [
            "b-drag-handle",
            "b-drop-indicator",
            "b-dropzone",
            "b-gap-2",
            "b-grid",
            "b-grid--2",
            "b-list",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__title",
            "b-list-item__trailing",
            "b-overline",
            "b-stack",
            "b-task",
            "b-task__meta",
            "b-task__title"
          ],
          "markup": "<div class=\"b-grid b-grid--2\">\n  <div class=\"b-dropzone\" style=\"padding: var(--b-space-3);\">\n    <div class=\"b-stack b-gap-2\">\n      <div class=\"b-overline\">Backlog</div>\n      <div class=\"b-task\" draggable=\"true\">\n        <div class=\"b-task__title\">Refactor tokens</div>\n        <div class=\"b-task__meta\">BAR-201</div>\n      </div>\n      <div class=\"b-task is-dragging\" draggable=\"true\">\n        <div class=\"b-task__title\">Ship dark mode</div>\n        <div class=\"b-task__meta\">BAR-202</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"b-dropzone is-dropover\" style=\"padding: var(--b-space-3);\">\n    <div class=\"b-stack b-gap-2\">\n      <div class=\"b-overline\">This week</div>\n      <div class=\"b-task\" draggable=\"true\">\n        <div class=\"b-task__title\">Draft changelog</div>\n        <div class=\"b-task__meta\">BAR-198</div>\n      </div>\n      <div class=\"b-drop-indicator\" aria-hidden=\"true\"></div>\n      <div class=\"b-task\" draggable=\"true\">\n        <div class=\"b-task__title\">QA pass</div>\n        <div class=\"b-task__meta\">BAR-199</div>\n      </div>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Dropzone, Grid, Overline, Task } from \"barua-ui\";",
            "components": [
              "Dropzone",
              "Grid",
              "Overline",
              "Task"
            ],
            "root": "Grid",
            "jsx": "<Grid cols={2}>\n  <Dropzone style={{ padding: \"var(--b-space-3)\" }}>\n    <div className=\"b-stack b-gap-2\">\n      <Overline>Backlog</Overline>\n      <Task draggable=\"true\">\n        <div className=\"b-task__title\">Refactor tokens</div>\n        <div className=\"b-task__meta\">BAR-201</div>\n      </Task>\n      <Task className=\"is-dragging\" draggable=\"true\">\n        <div className=\"b-task__title\">Ship dark mode</div>\n        <div className=\"b-task__meta\">BAR-202</div>\n      </Task>\n    </div>\n  </Dropzone>\n  <Dropzone className=\"is-dropover\" style={{ padding: \"var(--b-space-3)\" }}>\n    <div className=\"b-stack b-gap-2\">\n      <Overline>This week</Overline>\n      <Task draggable=\"true\">\n        <div className=\"b-task__title\">Draft changelog</div>\n        <div className=\"b-task__meta\">BAR-198</div>\n      </Task>\n      <div className=\"b-drop-indicator\" aria-hidden=\"true\"></div>\n      <Task draggable=\"true\">\n        <div className=\"b-task__title\">QA pass</div>\n        <div className=\"b-task__meta\">BAR-199</div>\n      </Task>\n    </div>\n  </Dropzone>\n</Grid>"
          },
          "variants": [
            {
              "id": "drag-handle",
              "title": "Drag handle & reorder"
            }
          ],
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-done",
            "is-dragging",
            "is-dropover",
            "is-overdue",
            "is-selected"
          ]
        },
        {
          "id": "resizable-handle",
          "title": "Resizable Handle",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#resizable-handle",
          "summary": "Place a .b-resize-handle between two .b-panel children of a .b-split . The 9px grab strip renders as a hairline; on hover \u2014 or with .is-active while dragging \u2014 it thickens into an accent bar. The pointer-tracking that actually resizes the panels is app-side JavaScript.",
          "classes": [
            "b-footnote",
            "b-overline",
            "b-panel",
            "b-resizable",
            "b-resize-handle",
            "b-split",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-split\" style=\"height: 9rem;\">\n  <div class=\"b-panel\" style=\"flex: 1; padding: var(--b-space-4);\">\n    <div class=\"b-overline\">Folders</div>\n  </div>\n  <div class=\"b-resize-handle\" role=\"separator\" aria-orientation=\"vertical\" aria-label=\"Resize panels\" tabindex=\"0\"></div>\n  <div class=\"b-panel\" style=\"flex: 2; padding: var(--b-space-4);\">\n    <div class=\"b-overline\">Messages</div>\n  </div>\n</div>",
          "react": {
            "import": "import { Overline, ResizeHandle, Split } from \"barua-ui\";",
            "components": [
              "Overline",
              "ResizeHandle",
              "Split"
            ],
            "root": "Split",
            "jsx": "<Split style={{ height: \"9rem\" }}>\n  <div\n    className=\"b-panel\"\n    style={{ flex: \"1\", padding: \"var(--b-space-4)\" }}\n  >\n    <Overline>Folders</Overline>\n  </div>\n  <ResizeHandle\n    role=\"separator\"\n    aria-orientation=\"vertical\"\n    aria-label=\"Resize panels\"\n    tabIndex=\"0\"\n  ></ResizeHandle>\n  <div\n    className=\"b-panel\"\n    style={{ flex: \"2\", padding: \"var(--b-space-4)\" }}\n  >\n    <Overline>Messages</Overline>\n  </div>\n</Split>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "selection-multi-selection",
          "title": "Selection & Multi-Selection",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#selection-multi-selection",
          "summary": "Multi-selection layers three pieces: .b-selectable items (with .is-selected ), a .b-selection-rect marquee drawn while the pointer rubber-bands across the surface, and a .b-selection-count readout. The rect is normally position: fixed and sized from pointer coordinates \u2014 it's frozen here with inline positioning so you can see it.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-card",
            "b-card--flat",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title",
            "b-grid",
            "b-grid--3",
            "b-hstack",
            "b-relative",
            "b-selectable",
            "b-selection-count",
            "b-selection-rect"
          ],
          "markup": "<div class=\"b-relative\">\n  <div class=\"b-grid b-grid--3\">\n    <div class=\"b-card b-card--flat b-selectable is-selected\">\n      <div class=\"b-card__body\">\n        <div class=\"b-card__title\">photo-01.heic \u2713</div>\n        <div class=\"b-card__subtitle\">2.4 MB</div>\n      </div>\n    </div>\n    <div class=\"b-card b-card--flat b-selectable is-selected\">\n      <div class=\"b-card__body\">\n        <div class=\"b-card__title\">photo-02.heic \u2713</div>\n        <div class=\"b-card__subtitle\">3.1 MB</div>\n      </div>\n    </div>\n    <div class=\"b-card b-card--flat b-selectable\">\n      <div class=\"b-card__body\">\n        <div class=\"b-card__title\">notes.txt</div>\n        <div class=\"b-card__subtitle\">4 KB</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"b-selection-rect\" style=\"position: absolute; left: 4%; top: 22%; width: 58%; height: 68%;\"></div>\n</div>\n<div class=\"b-hstack\" style=\"margin-block-start: var(--b-space-4);\">\n  <span class=\"b-selection-count\">2 selected</span>\n  <button class=\"b-btn b-btn--sm\">Move</button>\n  <button class=\"b-btn b-btn--sm b-btn--ghost\">Deselect</button>\n</div>",
          "react": {
            "import": "import { Button, Card, CardBody, CardSubtitle, CardTitle, Grid, SelectionCount } from \"barua-ui\";",
            "components": [
              "Button",
              "Card",
              "CardBody",
              "CardSubtitle",
              "CardTitle",
              "Grid",
              "SelectionCount"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-relative\">\n  <Grid cols={3}>\n    <Card selected className=\"b-card--flat b-selectable\">\n      <CardBody>\n        <CardTitle>photo-01.heic \u2713</CardTitle>\n        <CardSubtitle>2.4 MB</CardSubtitle>\n      </CardBody>\n    </Card>\n    <Card selected className=\"b-card--flat b-selectable\">\n      <CardBody>\n        <CardTitle>photo-02.heic \u2713</CardTitle>\n        <CardSubtitle>3.1 MB</CardSubtitle>\n      </CardBody>\n    </Card>\n    <Card className=\"b-card--flat b-selectable\">\n      <CardBody>\n        <CardTitle>notes.txt</CardTitle>\n        <CardSubtitle>4 KB</CardSubtitle>\n      </CardBody>\n    </Card>\n  </Grid>\n  <div\n    className=\"b-selection-rect\"\n    style={{ position: \"absolute\", left: \"4%\", top: \"22%\", width: \"58%\", height: \"68%\" }}\n  ></div>\n</div>\n<div\n  className=\"b-hstack\"\n  style={{ marginBlockStart: \"var(--b-space-4)\" }}\n>\n  <SelectionCount>2 selected</SelectionCount>\n  <Button size=\"sm\">Move</Button>\n  <Button size=\"sm\" variant=\"ghost\">Deselect</Button>\n</div>"
          },
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "keyboard-shortcut",
          "title": "Keyboard Shortcut",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#keyboard-shortcut",
          "summary": "Shortcuts render with the native <kbd> element \u2014 or .b-kbd on a span \u2014 styled as a small key cap with a weighted bottom edge. Show them inline in help text, in menus and in the command palette so they're learnable, not secret.",
          "classes": [
            "b-kbd",
            "b-menu",
            "b-menu__item",
            "b-menu__separator",
            "b-menu__shortcut",
            "b-table",
            "b-table-wrap"
          ],
          "markup": "<span>Open the palette with <kbd>\u2318K</kbd>, save with <kbd>\u2318S</kbd>, close with <kbd>esc</kbd> or press <span class=\"b-kbd\">\u21e7\u2318P</span> for actions.</span>",
          "react": {
            "import": "import { Kbd } from \"barua-ui\";",
            "components": [
              "Kbd"
            ],
            "root": "Kbd",
            "jsx": "<span>\n  Open the palette with\n  <kbd>\u2318K</kbd>\n  , save with\n  <kbd>\u2318S</kbd>\n  , close with\n  <kbd>esc</kbd>\n  or press\n  <Kbd>\u21e7\u2318P</Kbd>\n  for actions.\n</span>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-disabled",
            "is-selected"
          ]
        },
        {
          "id": "focus-ring",
          "title": "Focus Ring",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#focus-ring",
          "summary": "Every focusable element shares one ring: --b-focus-ring , a 3.5px accent glow at 30% opacity. It attaches via :focus-visible , so it appears for keyboard and assistive tech but not for mouse clicks \u2014 press Tab below to walk it across four different control types. Inputs pair the ring with an accent border. Custom focusable elements can opt in with the .b-focus-ring class.",
          "classes": [
            "b-btn",
            "b-checkbox",
            "b-input",
            "b-link"
          ],
          "markup": "<button class=\"b-btn\">Tab to me</button>\n<input class=\"b-input\" style=\"width: 11rem;\" placeholder=\"Then me\">\n<a class=\"b-link\" href=\"#focus-ring\">Then this link</a>\n<label class=\"b-checkbox\"><input type=\"checkbox\"> And this</label>",
          "react": {
            "import": "import { Button, Checkbox, Input, Link } from \"barua-ui\";",
            "components": [
              "Button",
              "Checkbox",
              "Input",
              "Link"
            ],
            "root": "Button",
            "jsx": "<Button>Tab to me</Button>\n<Input style={{ width: \"11rem\" }} placeholder=\"Then me\" />\n<Link href=\"#focus-ring\">Then this link</Link>\n<Checkbox>\n  <input type=\"checkbox\" />\n  And this\n</Checkbox>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "contextual-actions",
          "title": "Contextual Actions",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#contextual-actions",
          "summary": "Row-level actions stay hidden until the row is hovered, keeping dense lists calm. Inside a .b-datagrid this is automatic \u2014 .b-row-actions cells flip from visibility: hidden to visible on tr:hover . The list below recreates both moments statically: the first row is at rest, the second is shown as if hovered.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-btn--sm",
            "b-icon-btn",
            "b-list",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-row-actions"
          ],
          "markup": "<ul class=\"b-list\">\n  <li class=\"b-list-item\">\n    <div class=\"b-list-item__content\">\n      <div class=\"b-list-item__title\">Quarterly-report.pdf</div>\n      <div class=\"b-list-item__subtitle\">Edited 2 hours ago</div>\n    </div>\n    <span class=\"b-row-actions\" style=\"visibility: hidden; display: inline-flex; gap: var(--b-space-1);\">\n      <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Star\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n      </button>\n      <button class=\"b-btn b-icon-btn b-btn--ghost b-btn--sm\" aria-label=\"Delete\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n      </button>\n    </span>\n  </li>\n  <li class=\"b-list-item\" style=\"background: var(--b-fill-quaternary);\">\n    <div class=\"b-list-item__content\">\n      <div class=\"b-list-item__title\">Launch-plan.key</div>\n      <div class=\"b-list-item__subtitle\">Edited yesterday \u2014 hovered, actions revealed</div>\n    </div>\n    <span class=\"b-row-actions\" style=\"display: inline-flex; gap: var(--b-space-1)",
          "react": {
            "import": "import { Button, List, ListItem } from \"barua-ui\";",
            "components": [
              "Button",
              "List",
              "ListItem"
            ],
            "root": "List",
            "jsx": "<List>\n  <ListItem>\n    <div className=\"b-list-item__content\">\n      <div className=\"b-list-item__title\">Quarterly-report.pdf</div>\n      <div className=\"b-list-item__subtitle\">Edited 2 hours ago</div>\n    </div>\n    <span\n      className=\"b-row-actions\"\n      style={{ visibility: \"hidden\", display: \"inline-flex\", gap: \"var(--b-space-1)\" }}\n    >\n      <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Star\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n        </svg>\n      </Button>\n      <Button icon variant=\"ghost\" size=\"sm\" aria-label=\"Delete\">\n        <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n        </svg>\n      </Button>\n    </span>\n  </ListItem>\n  <ListItem style={{ background: \"var(--b-fill-quaternary)\" }}>\n    <div className=\"b-list-item__content\">\n      <div className=\"b-list-item__title\">Launch-plan.key</div>\n      <div className=\"b-list-item__subtitle\">Edited yesterday \u2014 hovered, actions revealed</div>\n    </div>\n  </ListItem>\n</List>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "scroll-reveal",
          "title": "Scroll reveal",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#scroll-reveal",
          "summary": "SwiftUI has scrollTransition ; the web now has a scroll timeline. .b-reveal ties an entrance animation to the element's own position in the scrollport, so the browser drives it \u2014 no observer, no scroll listener, nothing on the main thread.",
          "classes": [
            "b-btn",
            "b-btn--sm",
            "b-btn--tinted",
            "b-caption",
            "b-card",
            "b-card__body",
            "b-code",
            "b-code__header",
            "b-footnote",
            "b-gap-3",
            "b-reveal",
            "b-reveal--end",
            "b-reveal--fade",
            "b-reveal--scale",
            "b-reveal--start",
            "b-stack",
            "b-text-secondary"
          ],
          "markup": "<div class=\"docs-replay\">\n  <button class=\"b-btn b-btn--tinted b-btn--sm\" data-docs-replay=\"#reveal-box\">Play</button>\n  <span class=\"b-caption b-text-secondary\">or scroll inside the box</span>\n</div>\n<div class=\"docs-scrollbox\" id=\"reveal-box\">\n  <div class=\"docs-scrollbox__spacer\">scroll down \u2193</div>\n  <div class=\"b-stack b-gap-3\">\n    <article class=\"b-card b-reveal\"><div class=\"b-card__body\">Rises as it enters</div></article>\n    <article class=\"b-card b-reveal b-reveal--fade\"><div class=\"b-card__body\"><code>--fade</code></div></article>\n    <article class=\"b-card b-reveal b-reveal--scale\"><div class=\"b-card__body\"><code>--scale</code></div></article>\n    <article class=\"b-card b-reveal b-reveal--start\"><div class=\"b-card__body\"><code>--start</code>, from the leading edge</div></article>\n    <article class=\"b-card b-reveal b-reveal--end\"><div class=\"b-card__body\"><code>--end</code>, from the trailing edge</div></article>\n  </div>\n  <div class=\"docs-scrollbox__spacer\">scroll back up to replay \u2191</div>\n</div>",
          "react": {
            "import": "import { Button, CardBody, Reveal } from \"barua-ui\";",
            "components": [
              "Button",
              "CardBody",
              "Reveal"
            ],
            "root": "Button",
            "jsx": "<div className=\"docs-replay\">\n  <Button variant=\"tinted\" size=\"sm\" data-docs-replay=\"#reveal-box\">Play</Button>\n  <span className=\"b-caption b-text-secondary\">or scroll inside the box</span>\n</div>\n<div className=\"docs-scrollbox\" id=\"reveal-box\">\n  <div className=\"docs-scrollbox__spacer\">scroll down \u2193</div>\n  <div className=\"b-stack b-gap-3\">\n    <Reveal className=\"b-card\">\n      <CardBody>Rises as it enters</CardBody>\n    </Reveal>\n    <Reveal className=\"b-card b-reveal--fade\">\n      <CardBody>\n        <code>--fade</code>\n      </CardBody>\n    </Reveal>\n    <Reveal className=\"b-card b-reveal--scale\">\n      <CardBody>\n        <code>--scale</code>\n      </CardBody>\n    </Reveal>\n    <Reveal className=\"b-card b-reveal--start\">\n      <CardBody>\n        <code>--start</code>\n        , from the leading edge\n      </CardBody>\n    </Reveal>\n    <Reveal className=\"b-card b-reveal--end\">\n      <CardBody>\n        <code>--end</code>\n        , from the trailing edge\n      </CardBody>\n    </Reveal>\n  </div>\n  <div className=\"docs-scrollbox__spacer\">scroll back up to replay \u2191</div>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-visible"
          ]
        },
        {
          "id": "context-menu",
          "title": "Context menu",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#context-menu",
          "summary": "SwiftUI's contextMenu , on the platform's own event. Point any element at a .b-menu and a right-click \u2014 or a long press, which the browser reports as the same event \u2014 opens it where the pointer is.",
          "classes": [
            "b-list",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-menu",
            "b-menu__item",
            "b-menu__item--danger",
            "b-menu__shortcut"
          ],
          "markup": "<div class=\"b-list\">\n  <div class=\"b-list-item\" data-b-contextmenu=\"#demo-context\">\n    <div class=\"b-list-item__content\">\n      <div class=\"b-list-item__title\">Q3 invoice.pdf</div>\n      <div class=\"b-list-item__subtitle\">Right-click, or long-press on a touch screen</div>\n    </div>\n  </div>\n</div>\n<ul class=\"b-menu\" id=\"demo-context\" hidden>\n  <li><button class=\"b-menu__item\">Open<span class=\"b-menu__shortcut\">\u23ce</span></button></li>\n  <li><button class=\"b-menu__item\">Rename<span class=\"b-menu__shortcut\">\u2318R</span></button></li>\n  <li><button class=\"b-menu__item\">Duplicate<span class=\"b-menu__shortcut\">\u2318D</span></button></li>\n  <li><button class=\"b-menu__item b-menu__item--danger\">Delete</button></li>\n</ul>",
          "react": {
            "import": "import { List, ListItem, Menu } from \"barua-ui\";",
            "components": [
              "List",
              "ListItem",
              "Menu"
            ],
            "root": "List",
            "jsx": "<List>\n  <ListItem data-b-contextmenu=\"#demo-context\">\n    <div className=\"b-list-item__content\">\n      <div className=\"b-list-item__title\">Q3 invoice.pdf</div>\n      <div className=\"b-list-item__subtitle\">Right-click, or long-press on a touch screen</div>\n    </div>\n  </ListItem>\n</List>\n<Menu id=\"demo-context\" hidden>\n  <li>\n    <button className=\"b-menu__item\">\n      Open\n      <span className=\"b-menu__shortcut\">\u23ce</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-menu__item\">\n      Rename\n      <span className=\"b-menu__shortcut\">\u2318R</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-menu__item\">\n      Duplicate\n      <span className=\"b-menu__shortcut\">\u2318D</span>\n    </button>\n  </li>\n  <li>\n    <button className=\"b-menu__item b-menu__item--danger\">Delete</button>\n  </li>\n</Menu>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active",
            "is-disabled",
            "is-selected"
          ]
        },
        {
          "id": "rolling-numbers",
          "title": "Rolling numbers",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#rolling-numbers",
          "summary": "SwiftUI's contentTransition(.numericText()) . A figure that changes should travel to its new value rather than blink to it \u2014 on a dashboard the movement is what tells you something happened at all.",
          "classes": [
            "b-btn",
            "b-btn--sm",
            "b-btn--tinted",
            "b-code",
            "b-code__header",
            "b-gap-6",
            "b-hstack",
            "b-stack--wrap",
            "b-stat",
            "b-stat__label",
            "b-stat__value"
          ],
          "markup": "<div class=\"docs-replay\">\n  <button class=\"b-btn b-btn--tinted b-btn--sm\" data-docs-replay=\"#count-demo\">Play</button>\n</div>\n<div class=\"b-hstack b-gap-6 b-stack--wrap\">\n  <div class=\"b-stat\">\n    <span class=\"b-stat__label\">Messages sent</span>\n    <span class=\"b-stat__value\" data-b-count=\"12480\" data-docs-from=\"0\">0</span>\n  </div>\n  <div class=\"b-stat\">\n    <span class=\"b-stat__label\">Outstanding</span>\n    <span class=\"b-stat__value\" data-b-count=\"4.2\" data-docs-from=\"TZS 0.0M\">TZS 0.0M</span>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, Stat } from \"barua-ui\";",
            "components": [
              "Button",
              "Stat"
            ],
            "root": "Button",
            "jsx": "<div className=\"docs-replay\">\n  <Button variant=\"tinted\" size=\"sm\" data-docs-replay=\"#count-demo\">Play</Button>\n</div>\n<div className=\"b-hstack b-gap-6 b-stack--wrap\">\n  <Stat>\n    <span className=\"b-stat__label\">Messages sent</span>\n    <span className=\"b-stat__value\" data-b-count=\"12480\" data-docs-from=\"0\">0</span>\n  </Stat>\n  <Stat>\n    <span className=\"b-stat__label\">Outstanding</span>\n    <span\n      className=\"b-stat__value\"\n      data-b-count=\"4.2\"\n      data-docs-from=\"TZS 0.0M\"\n    >\n      TZS 0.0M\n    </span>\n  </Stat>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-down",
            "is-loading",
            "is-pressed",
            "is-up"
          ]
        },
        {
          "id": "scroll-geometry",
          "title": "Scroll geometry",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#scroll-geometry",
          "summary": "SwiftUI's onScrollGeometryChange . A scroll container carrying data-b-scroll-geometry writes its own position onto itself \u2014 --b-scroll-y , --b-scroll-x and --b-scroll-progress (0 to 1) \u2014 carries .is-scrolled once it has moved, and dispatches b:scroll with the numbers. Put it on <html> for the page. Anything that reads the properties is then pure CSS: the progress line below is a .b-scroll-progress whose width is the distance scrolled, and the title condenses on the browser's own scroll timeline with .b-scroll-condense .",
          "classes": [
            "b-caption",
            "b-card",
            "b-card__body",
            "b-footnote",
            "b-gap-3",
            "b-large-title",
            "b-scroll-condense",
            "b-scroll-progress",
            "b-stack",
            "b-tabular-nums",
            "b-text-secondary"
          ],
          "markup": "<div class=\"docs-scrollbox\" data-b-scroll-geometry id=\"geometry-box\">\n  <div class=\"b-scroll-progress\" aria-hidden=\"true\"></div>\n  <div class=\"b-stack b-gap-3\">\n    <h3 class=\"b-large-title b-scroll-condense\">Inbox</h3>\n    <p class=\"b-caption b-text-secondary\">scrolled <output data-docs-geometry=\"#geometry-box\" class=\"b-tabular-nums\">0%</output></p>\n    <article class=\"b-card\"><div class=\"b-card__body\">The line at the top is the distance scrolled.</div></article>\n    <article class=\"b-card\"><div class=\"b-card__body\">The title above shrinks as the box moves.</div></article>\n    <article class=\"b-card\"><div class=\"b-card__body\">Nothing here listens in JavaScript except the percentage.</div></article>\n    <article class=\"b-card\"><div class=\"b-card__body\">The container carries <code>.is-scrolled</code> now.</div></article>\n    <article class=\"b-card\"><div class=\"b-card__body\">And <code>--b-scroll-progress</code> is 1 at the end.</div></article>\n    <article class=\"b-card\"><div class=\"b-card__body\">Keep going.</div></article>\n    <article class=\"b-card\"><div class=\"b-card__body\">Nearly there.</div></article>\n  </div>\n</div>",
          "react": {
            "import": "import { Card, CardBody, CountUp } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "CountUp"
            ],
            "root": "Card",
            "jsx": "<div\n  className=\"docs-scrollbox\"\n  data-b-scroll-geometry=\"\"\n  id=\"geometry-box\"\n>\n  <div className=\"b-scroll-progress\" aria-hidden=\"true\"></div>\n  <div className=\"b-stack b-gap-3\">\n    <h3 className=\"b-large-title b-scroll-condense\">Inbox</h3>\n    <p className=\"b-caption b-text-secondary\">\n      scrolled\n      <CountUp data-docs-geometry=\"#geometry-box\">0%</CountUp>\n    </p>\n    <Card>\n      <CardBody>The line at the top is the distance scrolled.</CardBody>\n    </Card>\n    <Card>\n      <CardBody>The title above shrinks as the box moves.</CardBody>\n    </Card>\n    <Card>\n      <CardBody>Nothing here listens in JavaScript except the percentage.</CardBody>\n    </Card>\n    <Card>\n      <CardBody>\n        The container carries\n        <code>.is-scrolled</code>\n        now.\n      </CardBody>\n    </Card>\n    <Card>\n      <CardBody>\n        And\n        <code>--b-scroll-progress</code>\n        is 1 at the end.\n      </CardBody>\n    </Card>\n    <Card>\n      <CardBody>Keep going.</CardBody>\n    </Card>\n    <Card>\n      <CardBody>Nearly there.</CardBody>\n    </Card>\n  </div>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane",
            "--b-scroll-progress"
          ]
        },
        {
          "id": "scroll-visibility",
          "title": "Scroll visibility",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#scroll-visibility",
          "summary": "SwiftUI's onScrollVisibilityChange(threshold:) . An element carrying data-b-visible \u2014 optionally the fraction of itself that counts, data-b-visible=\"0.8\" \u2014 gains .is-visible as it crosses that much into the viewport, loses it on the way out, and dispatches b:visible with { visible, ratio } . It is also the entrance for browsers without a view timeline: .b-reveal with data-b-visible reveals on the class where it cannot on the timeline.",
          "classes": [
            "b-badge",
            "b-card",
            "b-card__body",
            "b-footnote",
            "b-gap-2",
            "b-gap-3",
            "b-hstack",
            "b-reveal",
            "b-stack",
            "b-text-secondary"
          ],
          "markup": "<div class=\"docs-scrollbox\" id=\"visible-box\">\n  <div class=\"docs-scrollbox__spacer\">scroll down \u2193</div>\n  <div class=\"b-stack b-gap-3\">\n    <article class=\"b-card b-reveal\" data-b-visible=\"0.5\"><div class=\"b-card__body b-hstack b-gap-2\">Half in view <span class=\"b-badge docs-visible-badge\">off screen</span></div></article>\n    <article class=\"b-card b-reveal\" data-b-visible=\"0.9\"><div class=\"b-card__body b-hstack b-gap-2\">Almost all in view <span class=\"b-badge docs-visible-badge\">off screen</span></div></article>\n    <article class=\"b-card b-reveal\" data-b-visible=\"0.5\"><div class=\"b-card__body b-hstack b-gap-2\">Half in view <span class=\"b-badge docs-visible-badge\">off screen</span></div></article>\n  </div>\n  <div class=\"docs-scrollbox__spacer\">scroll back up \u2191</div>\n</div>",
          "react": {
            "import": "import { Badge, CardBody, Reveal } from \"barua-ui\";",
            "components": [
              "Badge",
              "CardBody",
              "Reveal"
            ],
            "root": "Badge",
            "jsx": "<div className=\"docs-scrollbox\" id=\"visible-box\">\n  <div className=\"docs-scrollbox__spacer\">scroll down \u2193</div>\n  <div className=\"b-stack b-gap-3\">\n    <Reveal className=\"b-card\" data-b-visible=\"0.5\">\n      <CardBody className=\"b-hstack b-gap-2\">\n        Half in view\n        <Badge className=\"docs-visible-badge\">off screen</Badge>\n      </CardBody>\n    </Reveal>\n    <Reveal className=\"b-card\" data-b-visible=\"0.9\">\n      <CardBody className=\"b-hstack b-gap-2\">\n        Almost all in view\n        <Badge className=\"docs-visible-badge\">off screen</Badge>\n      </CardBody>\n    </Reveal>\n    <Reveal className=\"b-card\" data-b-visible=\"0.5\">\n      <CardBody className=\"b-hstack b-gap-2\">\n        Half in view\n        <Badge className=\"docs-visible-badge\">off screen</Badge>\n      </CardBody>\n    </Reveal>\n  </div>\n  <div className=\"docs-scrollbox__spacer\">scroll back up \u2191</div>\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-visible"
          ]
        },
        {
          "id": "scroll-position",
          "title": "Scroll position",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#scroll-position",
          "summary": "SwiftUI's scrollPosition(id:) . A snapping container with data-b-snap names the child in view: data-b-snap-current on itself, .is-current on the child, .is-active on the matching dot in a data-b-snap-dots=\"#id\" strip, and b:snapchange with { id, index, element } . The browser's own scrollsnapchange event drives it where that exists; elsewhere the nearest child after the scroll settles. Barua.snap.to(box, idOrIndex) goes there.",
          "classes": [
            "b-caption",
            "b-card",
            "b-card-rail",
            "b-card__body",
            "b-carousel__dots",
            "b-gap-1",
            "b-headline",
            "b-stack",
            "b-tabular-nums",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-card-rail\" data-b-snap id=\"snap-rail\" style=\"grid-auto-columns: 70%\">\n  <article class=\"b-card\" id=\"snap-dar\"><div class=\"b-card__body b-stack b-gap-1\"><span class=\"b-headline\">Dar es Salaam</span><span class=\"b-caption b-text-secondary\">id=\"snap-dar\"</span></div></article>\n  <article class=\"b-card\" id=\"snap-arusha\"><div class=\"b-card__body b-stack b-gap-1\"><span class=\"b-headline\">Arusha</span><span class=\"b-caption b-text-secondary\">id=\"snap-arusha\"</span></div></article>\n  <article class=\"b-card\" id=\"snap-zanzibar\"><div class=\"b-card__body b-stack b-gap-1\"><span class=\"b-headline\">Zanzibar</span><span class=\"b-caption b-text-secondary\">id=\"snap-zanzibar\"</span></div></article>\n  <article class=\"b-card\" id=\"snap-mwanza\"><div class=\"b-card__body b-stack b-gap-1\"><span class=\"b-headline\">Mwanza</span><span class=\"b-caption b-text-secondary\">id=\"snap-mwanza\"</span></div></article>\n</div>\n<div class=\"b-carousel__dots\" data-b-snap-dots=\"#snap-rail\">\n  <button class=\"is-active\" aria-label=\"Dar es Salaam\"></button>\n  <button aria-label=\"Arusha\"></button>\n  <button aria-label=\"Zanzibar\"></button>\n  <button aria-label=\"Mwanza\"></button>\n</div>\n<p class=\"b-caption b-text-secondary\">in view: <output data-docs-snap=\"#snap-rail\" class=\"b-tabular-nums\">snap-dar</output></p>",
          "react": {
            "import": "import { Card, CardBody, CardRail, CarouselDots, CountUp } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "CardRail",
              "CarouselDots",
              "CountUp"
            ],
            "root": "CardRail",
            "jsx": "<CardRail data-b-snap=\"\" id=\"snap-rail\" style={{ gridAutoColumns: \"70%\" }}>\n  <Card id=\"snap-dar\">\n    <CardBody className=\"b-stack b-gap-1\">\n      <span className=\"b-headline\">Dar es Salaam</span>\n      <span className=\"b-caption b-text-secondary\">id=\"snap-dar\"</span>\n    </CardBody>\n  </Card>\n  <Card id=\"snap-arusha\">\n    <CardBody className=\"b-stack b-gap-1\">\n      <span className=\"b-headline\">Arusha</span>\n      <span className=\"b-caption b-text-secondary\">id=\"snap-arusha\"</span>\n    </CardBody>\n  </Card>\n  <Card id=\"snap-zanzibar\">\n    <CardBody className=\"b-stack b-gap-1\">\n      <span className=\"b-headline\">Zanzibar</span>\n      <span className=\"b-caption b-text-secondary\">id=\"snap-zanzibar\"</span>\n    </CardBody>\n  </Card>\n  <Card id=\"snap-mwanza\">\n    <CardBody className=\"b-stack b-gap-1\">\n      <span className=\"b-headline\">Mwanza</span>\n      <span className=\"b-caption b-text-secondary\">id=\"snap-mwanza\"</span>\n    </CardBody>\n  </Card>\n</CardRail>\n<CarouselDots data-b-snap-dots=\"#snap-rail\">\n  <button className=\"is-active\" aria-label=\"Dar es Salaam\"></button>\n  <button aria-label=\"Arusha\"></button>\n  <button aria-label=\"Zanzibar\"></button>\n  <button aria-label=\"Mwanza\"></button>\n</CarouselDots>\n<p className=\"b-caption b-text-secondary\">\n  in view:\n  <CountUp data-docs-snap=\"#snap-rail\">snap-dar</CountUp>\n</p>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "haptics",
          "title": "Haptics",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#haptics",
          "summary": "SwiftUI's sensoryFeedback . data-b-haptic on anything clickable \u2014 selection , impact , success , warning , error \u2014 plays a vibration on click; Barua.haptic(kind) does the same from code and returns whether anything could be felt. The web is honest about its limits here: Android phones vibrate; an iPhone has no vibration API, but Safari plays the system haptic when a switch toggles, so one is toggled off screen; a desktop feels nothing and says nothing.",
          "classes": [
            "b-btn",
            "b-btn--danger-tinted",
            "b-btn--outline",
            "b-btn--tinted"
          ],
          "markup": "<button class=\"b-btn\" data-b-haptic=\"selection\">Selection</button>\n<button class=\"b-btn\" data-b-haptic=\"impact\">Impact</button>\n<button class=\"b-btn b-btn--tinted\" data-b-haptic=\"success\">Success</button>\n<button class=\"b-btn b-btn--outline\" data-b-haptic=\"warning\">Warning</button>\n<button class=\"b-btn b-btn--danger-tinted\" data-b-haptic=\"error\">Error</button>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button data-b-haptic=\"selection\">Selection</Button>\n<Button data-b-haptic=\"impact\">Impact</Button>\n<Button variant=\"tinted\" data-b-haptic=\"success\">Success</Button>\n<Button variant=\"outline\" data-b-haptic=\"warning\">Warning</Button>\n<Button variant=\"danger-tinted\" data-b-haptic=\"error\">Error</Button>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "persistence",
          "title": "Persistence",
          "category": "interaction",
          "url": "https://ui.barua.tz/docs/interaction.html#persistence",
          "summary": "SwiftUI's customizationID . data-b-persist=\"key\" keeps a piece of interface state across reloads with no code: a <details> stays open or shut, a segmented control or tab strip keeps its choice, a scroll area keeps its place, a field keeps its value. Change the two below, reload the page, and they are as you left them. For anything else, Barua.persist.get(key) , set(key, value) and clear(key) hold JSON under the same keys \u2014 which the React kit's usePersistedState shares, so the two can hand over.",
          "classes": [
            "b-disclosure",
            "b-disclosure__body",
            "b-segmented",
            "b-segmented__item"
          ],
          "markup": "<div class=\"b-segmented\" data-b-persist=\"docs.view\">\n  <button class=\"b-segmented__item is-active\">List</button>\n  <button class=\"b-segmented__item\">Board</button>\n  <button class=\"b-segmented__item\">Timeline</button>\n</div>\n<details class=\"b-disclosure\" data-b-persist=\"docs.details\">\n  <summary>Delivery details</summary>\n  <div class=\"b-disclosure__body\">Open this, reload, and it is still open.</div>\n</details>",
          "react": {
            "import": "import { Disclosure, Segmented } from \"barua-ui\";",
            "components": [
              "Disclosure",
              "Segmented"
            ],
            "root": "Segmented",
            "jsx": "<Segmented data-b-persist=\"docs.view\">\n  <button className=\"b-segmented__item is-active\">List</button>\n  <button className=\"b-segmented__item\">Board</button>\n  <button className=\"b-segmented__item\">Timeline</button>\n</Segmented>\n<Disclosure data-b-persist=\"docs.details\">\n  <summary>Delivery details</summary>\n  <div className=\"b-disclosure__body\">Open this, reload, and it is still open.</div>\n</Disclosure>"
          },
          "knobs": [
            "--b-lg-inset"
          ],
          "states": [
            "is-active"
          ]
        }
      ]
    },
    {
      "id": "mobile",
      "title": "Mobile \u2014 headers, tab bars, sheets, safe areas",
      "url": "https://ui.barua.tz/docs/mobile.html",
      "components": [
        {
          "id": "mobile-header",
          "title": "Mobile Header",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#mobile-header",
          "summary": ".b-mobile-header is the sticky glass chrome at the top of a mobile view: a three-column __bar with a .b-back-btn at the start, a centered __title and an __action--end slot. One note on the demos on this page: mobile chrome is normally position: fixed or sticky , so each demo sits inside a phone-width frame and the component gets an inline position: static override to render inside it \u2014 drop the override in a real app.",
          "classes": [
            "b-back-btn",
            "b-btn",
            "b-btn--ghost",
            "b-icon-btn",
            "b-mobile-header",
            "b-mobile-header__action--end",
            "b-mobile-header__action--start",
            "b-mobile-header__bar",
            "b-mobile-header__large-title",
            "b-mobile-header__title"
          ],
          "markup": "<header class=\"b-mobile-header\" style=\"position: static\">\n  <div class=\"b-mobile-header__bar\">\n    <button class=\"b-back-btn b-mobile-header__action--start\">Inbox</button>\n    <div class=\"b-mobile-header__title\">Message</div>\n    <button class=\"b-btn b-icon-btn b-btn--ghost b-mobile-header__action--end\" aria-label=\"Reply\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M8 5 3.5 9.5 8 14M3.5 9.5H12a4.5 4.5 0 0 1 4.5 4.5V16\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n    </button>\n  </div>\n</header>\n<div style=\"height: 4.5rem\"></div>",
          "react": {
            "import": "import { BackButton, Button } from \"barua-ui\";",
            "components": [
              "BackButton",
              "Button"
            ],
            "root": "BackButton",
            "jsx": "<header className=\"b-mobile-header\" style={{ position: \"static\" }}>\n  <div className=\"b-mobile-header__bar\">\n    <BackButton className=\"b-mobile-header__action--start\">Inbox</BackButton>\n    <div className=\"b-mobile-header__title\">Message</div>\n    <Button\n      icon\n      variant=\"ghost\"\n      className=\"b-mobile-header__action--end\"\n      aria-label=\"Reply\"\n    >\n      <svg viewBox=\"0 0 20 20\" fill=\"none\">\n        <path d=\"M8 5 3.5 9.5 8 14M3.5 9.5H12a4.5 4.5 0 0 1 4.5 4.5V16\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n    </Button>\n  </div>\n</header>\n<div style={{ height: \"4.5rem\" }}></div>"
          },
          "variants": [
            {
              "id": "mobile-header-large-title",
              "title": "Large title"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-collapsed",
            "is-loading",
            "is-pressed",
            "is-scrolled"
          ]
        },
        {
          "id": "mobile-navigation",
          "title": "Mobile Navigation",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#mobile-navigation",
          "summary": "Mobile navigation is a pattern, not one component. Follow the iOS conventions: the back button sits at the start of the header, is labelled with the previous screen's title (never just \"Back\"), and the current screen's title stays centered. Push deeper views onto a stack; switch top-level sections with the Bottom Tab Bar below. For overflow destinations, use the navigation drawer from the Navigation page, or the Mobile Menu as a full-screen list.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "bottom-tab-bar",
          "title": "Bottom Tab Bar",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#bottom-tab-bar",
          "summary": ".b-bottomnav fixes a glass tab bar to the bottom edge with safe-area padding built in. Use three to five __item s, mark the current one with .is-active , and attach a .b-badge--count to an icon for unread counts.",
          "classes": [
            "b-badge",
            "b-badge--count",
            "b-bottomnav",
            "b-bottomnav__item"
          ],
          "markup": "<div style=\"height: 4.5rem\"></div>\n<nav class=\"b-bottomnav\" style=\"position: static\" aria-label=\"Primary\">\n  <a class=\"b-bottomnav__item\" href=\"#bottom-tab-bar\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M4 9.5 10 4l6 5.5V16a1 1 0 0 1-1 1h-3v-4H8v4H5a1 1 0 0 1-1-1V9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n    Home\n  </a>\n  <a class=\"b-bottomnav__item is-active\" href=\"#bottom-tab-bar\" aria-current=\"page\">\n    <span style=\"position: relative; display: inline-flex\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\"><rect x=\"3\" y=\"5\" width=\"14\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m4.5 7.5 5.5 4 5.5-4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      <span class=\"b-badge b-badge--count\" style=\"position: absolute; top: -0.4rem; inset-inline-end: -0.7rem\">3</span>\n    </span>\n    Inbox\n  </a>\n  <a class=\"b-bottomnav__item\" href=\"#bottom-tab-bar\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"9\" cy=\"9\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13 13 3.5 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n    Search\n  </a>\n  <a class=\"b-bottomnav__item\" href=\"#bottom-tab-bar\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"7\" r=\"3\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M4.5 16.5a5.5 5.5 0 0",
          "react": {
            "import": "import { Badge, BottomNav } from \"barua-ui\";",
            "components": [
              "Badge",
              "BottomNav"
            ],
            "root": "Badge",
            "jsx": "<div style={{ height: \"4.5rem\" }}></div>\n<BottomNav style={{ position: \"static\" }} aria-label=\"Primary\">\n  <a className=\"b-bottomnav__item\" href=\"#bottom-tab-bar\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"M4 9.5 10 4l6 5.5V16a1 1 0 0 1-1 1h-3v-4H8v4H5a1 1 0 0 1-1-1V9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </svg>\n    Home\n  </a>\n  <a\n    className=\"b-bottomnav__item is-active\"\n    href=\"#bottom-tab-bar\"\n    aria-current=\"page\"\n  >\n    <span style={{ position: \"relative\", display: \"inline-flex\" }}>\n      <svg viewBox=\"0 0 20 20\" fill=\"none\">\n        <rect x=\"3\" y=\"5\" width=\"14\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        <path d=\"m4.5 7.5 5.5 4 5.5-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n      <Badge\n        className=\"b-badge--count\"\n        style={{ position: \"absolute\", top: \"-0.4rem\", insetInlineEnd: \"-0.7rem\" }}\n      >\n        3\n      </Badge>\n    </span>\n    Inbox\n  </a>\n  <a className=\"b-bottomnav__item\" href=\"#bottom-tab-bar\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <circle cx=\"9\" cy=\"9\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m13 13 3.5 3.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n    Search\n  </a>\n  <a className=\"b-bottomnav__item\" href=\"#bottom-tab-bar\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <circle cx=\"10\" cy=\"7\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n    </svg>\n  </a>\n</BottomNav>"
          },
          "knobs": [
            "--b-lg-pane"
          ],
          "states": [
            "is-active"
          ]
        },
        {
          "id": "bottom-sheet",
          "title": "Bottom Sheet",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#bottom-sheet",
          "summary": "The full .b-bottom-sheet \u2014 a <dialog> that springs up from the bottom edge with a scrim \u2014 is documented on the Overlays page. Shown here statically inside the frame: a __grabber pill on top of a __body list of actions.",
          "classes": [
            "b-bottom-sheet",
            "b-bottom-sheet__body",
            "b-bottom-sheet__grabber",
            "b-list",
            "b-list--plain",
            "b-list-item",
            "b-list-item--interactive",
            "b-list-item__content",
            "b-list-item__leading",
            "b-list-item__title"
          ],
          "markup": "<div style=\"height: 3rem\"></div>\n<dialog class=\"b-bottom-sheet\" open style=\"position: static; width: 100%\">\n  <div class=\"b-bottom-sheet__grabber\"></div>\n  <div class=\"b-bottom-sheet__body\">\n    <ul class=\"b-list b-list--plain\">\n      <li class=\"b-list-item b-list-item--interactive\">\n        <span class=\"b-list-item__leading\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M8 5 3.5 9.5 8 14M3.5 9.5H12a4.5 4.5 0 0 1 4.5 4.5V16\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n        </span>\n        <div class=\"b-list-item__content\"><div class=\"b-list-item__title\">Reply</div></div>\n      </li>\n      <li class=\"b-list-item b-list-item--interactive\">\n        <span class=\"b-list-item__leading\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M12 5l4.5 4.5L12 14M16.5 9.5H8A4.5 4.5 0 0 0 3.5 14V16\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n        </span>\n        <div class=\"b-list-item__content\"><div class=\"b-list-item__title\">Forward</div></div>\n      </li>\n      <li class=\"b-list-item b-list-item--interactive\">\n        <span class=\"b-list-item__leading\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\"><rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a1.5 1.5 0 0 0 1.5-1.5V8M8.5 11h3\" str",
          "react": {
            "import": "import { BottomSheet, List, ListItem } from \"barua-ui\";",
            "components": [
              "BottomSheet",
              "List",
              "ListItem"
            ],
            "root": "BottomSheet",
            "jsx": "<div style={{ height: \"3rem\" }}></div>\n<BottomSheet open style={{ position: \"static\", width: \"100%\" }}>\n  <div className=\"b-bottom-sheet__grabber\"></div>\n  <div className=\"b-bottom-sheet__body\">\n    <List plain>\n      <ListItem interactive>\n        <span className=\"b-list-item__leading\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\">\n            <path d=\"M8 5 3.5 9.5 8 14M3.5 9.5H12a4.5 4.5 0 0 1 4.5 4.5V16\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n          </svg>\n        </span>\n        <div className=\"b-list-item__content\">\n          <div className=\"b-list-item__title\">Reply</div>\n        </div>\n      </ListItem>\n      <ListItem interactive>\n        <span className=\"b-list-item__leading\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\">\n            <path d=\"M12 5l4.5 4.5L12 14M16.5 9.5H8A4.5 4.5 0 0 0 3.5 14V16\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n          </svg>\n        </span>\n        <div className=\"b-list-item__content\">\n          <div className=\"b-list-item__title\">Forward</div>\n        </div>\n      </ListItem>\n      <ListItem interactive>\n        <span className=\"b-list-item__leading\">\n          <svg viewBox=\"0 0 20 20\" fill=\"none\">\n            <rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n          </svg>\n        </span>\n      </ListItem>\n    </List>\n  </div>\n</BottomSheet>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "mobile-menu",
          "title": "Mobile Menu",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#mobile-menu",
          "summary": ".b-mobile-menu is a full-width list of big, thumb-sized rows \u2014 each at least the 44px touch target tall. Use it inside a drawer or a full-screen sheet; mark the current destination with .is-active .",
          "classes": [
            "b-mobile-menu"
          ],
          "markup": "<ul class=\"b-mobile-menu\">\n  <li>\n    <a class=\"is-active\" href=\"#mobile-menu\" aria-current=\"page\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"20\" height=\"20\"><rect x=\"3\" y=\"5\" width=\"14\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m4.5 7.5 5.5 4 5.5-4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      Inbox\n    </a>\n  </li>\n  <li>\n    <a href=\"#mobile-menu\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"20\" height=\"20\"><path d=\"m10 3 2.1 4.4 4.9.6-3.6 3.3.9 4.7L10 13.7 5.7 16l.9-4.7L3 8l4.9-.6L10 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n      Starred\n    </a>\n  </li>\n  <li>\n    <a href=\"#mobile-menu\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"20\" height=\"20\"><path d=\"M6 3h6l3 3v11H6V3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M12 3v3h3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n      Drafts\n    </a>\n  </li>\n  <li>\n    <a href=\"#mobile-menu\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"20\" height=\"20\"><rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a1.5 1.5 0 0 0 1.5-1.5V8M8.5 11h3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n      Archive\n    </a>\n  </li>\n  <li>\n    <a",
          "states": [
            "is-active"
          ]
        },
        {
          "id": "mobile-toolbar",
          "title": "Mobile Toolbar",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#mobile-toolbar",
          "summary": ".b-mobile-toolbar is the bottom action bar for the current screen \u2014 glass, hairline on top, safe-area padding below, and icon buttons bumped up to the large control size for easy reach.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-icon-btn",
            "b-mobile-toolbar"
          ],
          "markup": "</div>\n<div class=\"b-mobile-toolbar\" style=\"position: static\" role=\"toolbar\" aria-label=\"Message actions\">\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Reply\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M8 5 3.5 9.5 8 14M3.5 9.5H12a4.5 4.5 0 0 1 4.5 4.5V16\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </button>\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Archive\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a1.5 1.5 0 0 0 1.5-1.5V8M8.5 11h3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </button>\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Flag\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M5 17V4h9.5l-2 3.5 2 3.5H5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n  </button>\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Delete\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </button>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<div\n  className=\"b-mobile-toolbar\"\n  style={{ position: \"static\" }}\n  role=\"toolbar\"\n  aria-label=\"Message actions\"\n>\n  <Button icon variant=\"ghost\" aria-label=\"Reply\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"M8 5 3.5 9.5 8 14M3.5 9.5H12a4.5 4.5 0 0 1 4.5 4.5V16\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Button>\n  <Button icon variant=\"ghost\" aria-label=\"Archive\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <rect x=\"3\" y=\"4\" width=\"14\" height=\"4\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"M4.5 8v6.5A1.5 1.5 0 0 0 6 16h8a1.5 1.5 0 0 0 1.5-1.5V8M8.5 11h3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </Button>\n  <Button icon variant=\"ghost\" aria-label=\"Flag\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"M5 17V4h9.5l-2 3.5 2 3.5H5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Button>\n  <Button icon variant=\"ghost\" aria-label=\"Delete\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </Button>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "swipe-actions",
          "title": "Swipe Actions",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#swipe-actions",
          "summary": ".b-swipe is a CSS-only take on the iOS swipe-to-act row: a horizontal scroller with scroll-snap-type: x mandatory . The __content row fills 100% of the width and snaps to the start; the __actions sit just off-screen and snap to the end. Dragging left reveals them, and the scroll snap makes the row rest either fully closed or fully open \u2014 try it, the demo below actually scrolls.",
          "classes": [
            "b-avatar",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-swipe",
            "b-swipe__actions",
            "b-swipe__content"
          ],
          "markup": "<div class=\"b-swipe\">\n  <div class=\"b-swipe__content b-list-item\">\n    <span class=\"b-avatar\">AK</span>\n    <div class=\"b-list-item__content\">\n      <div class=\"b-list-item__title\">Amina Kassim</div>\n      <div class=\"b-list-item__subtitle\">Q3 launch review \u2014 moved to Thursday, can you make it?</div>\n    </div>\n  </div>\n  <div class=\"b-swipe__actions\">\n    <button class=\"is-flag\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M5 17V4h9.5l-2 3.5 2 3.5H5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n      Flag\n    </button>\n    <button class=\"is-danger\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n      Delete\n    </button>\n  </div>\n</div>",
          "react": {
            "import": "import { Avatar, ListItem } from \"barua-ui\";",
            "components": [
              "Avatar",
              "ListItem"
            ],
            "root": "Avatar",
            "jsx": "<div className=\"b-swipe\">\n  <ListItem className=\"b-swipe__content\">\n    <Avatar>AK</Avatar>\n    <div className=\"b-list-item__content\">\n      <div className=\"b-list-item__title\">Amina Kassim</div>\n      <div className=\"b-list-item__subtitle\">Q3 launch review \u2014 moved to Thursday, can you make it?</div>\n    </div>\n  </ListItem>\n  <div className=\"b-swipe__actions\">\n    <button className=\"is-flag\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\">\n        <path d=\"M5 17V4h9.5l-2 3.5 2 3.5H5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n      Flag\n    </button>\n    <button className=\"is-danger\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\">\n        <path d=\"M4 6h12M8 6V4.5A1.5 1.5 0 0 1 9.5 3h1A1.5 1.5 0 0 1 12 4.5V6m2.5 0-.7 9.1A1.5 1.5 0 0 1 12.3 16H7.7a1.5 1.5 0 0 1-1.5-.9L5.5 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n      </svg>\n      Delete\n    </button>\n  </div>\n</div>"
          },
          "knobs": [
            "--b-avatar-size"
          ],
          "states": [
            "is-danger",
            "is-flag",
            "is-primary",
            "is-selected"
          ]
        },
        {
          "id": "pull-to-refresh",
          "title": "Pull to Refresh",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#pull-to-refresh",
          "summary": ".b-ptr is the visual affordance above a list. It sits at height: 0 until your scroll handler adds a state class: .is-pulling springs it open to its full height as the user drags, .is-ready rotates the __arrow 180\u00b0 to signal \"release to refresh\", and .is-refreshing swaps the arrow for a spinner while data loads. Shown here frozen in the refreshing state.",
          "classes": [
            "b-avatar",
            "b-avatar--sm",
            "b-list",
            "b-list--plain",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-ptr",
            "b-spinner",
            "b-spinner--sm"
          ],
          "markup": "<div class=\"b-ptr is-refreshing\">\n  <span class=\"b-spinner b-spinner--sm\"></span>\n  Refreshing\u2026\n</div>\n<ul class=\"b-list b-list--plain\">\n  <li class=\"b-list-item\">\n    <span class=\"b-avatar b-avatar--sm\">JM</span>\n    <div class=\"b-list-item__content\">\n      <div class=\"b-list-item__title\">Joseph Mwangi</div>\n      <div class=\"b-list-item__subtitle\">Invoice #2214 approved</div>\n    </div>\n  </li>\n  <li class=\"b-list-item\">\n    <span class=\"b-avatar b-avatar--sm\">ZH</span>\n    <div class=\"b-list-item__content\">\n      <div class=\"b-list-item__title\">Zawadi Hassan</div>\n      <div class=\"b-list-item__subtitle\">Design tokens are ready for review</div>\n    </div>\n  </li>\n</ul>",
          "react": {
            "import": "import { Avatar, List, ListItem, Spinner } from \"barua-ui\";",
            "components": [
              "Avatar",
              "List",
              "ListItem",
              "Spinner"
            ],
            "root": "Avatar",
            "jsx": "<div className=\"b-ptr is-refreshing\">\n  <Spinner size=\"sm\"></Spinner>\n  Refreshing\u2026\n</div>\n<List plain>\n  <ListItem>\n    <Avatar className=\"b-avatar--sm\">JM</Avatar>\n    <div className=\"b-list-item__content\">\n      <div className=\"b-list-item__title\">Joseph Mwangi</div>\n      <div className=\"b-list-item__subtitle\">Invoice #2214 approved</div>\n    </div>\n  </ListItem>\n  <ListItem>\n    <Avatar className=\"b-avatar--sm\">ZH</Avatar>\n    <div className=\"b-list-item__content\">\n      <div className=\"b-list-item__title\">Zawadi Hassan</div>\n      <div className=\"b-list-item__subtitle\">Design tokens are ready for review</div>\n    </div>\n  </ListItem>\n</List>"
          },
          "knobs": [
            "--b-avatar-size",
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-pulling",
            "is-ready",
            "is-refreshing",
            "is-selected"
          ]
        },
        {
          "id": "touch-target",
          "title": "Touch Target",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#touch-target",
          "summary": "Small controls stay small visually but should never be small to a thumb. The .b-touch-target utility overlays an invisible ::after hit area of at least var(--b-touch-target) \u2014 44px \u2014 centered on the control, so a compact close button still catches an imprecise tap. The button below renders at its extra-small size; the whole 44\u00d744 area around it is pressable.",
          "classes": [
            "b-badge",
            "b-btn",
            "b-btn--xs",
            "b-icon-btn",
            "b-touch-target"
          ],
          "markup": "<button class=\"b-btn b-icon-btn b-btn--xs b-touch-target\" aria-label=\"Dismiss\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"12\" height=\"12\"><path d=\"m5 5 10 10M15 5 5 15\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg>\n</button>\n<span class=\"b-badge\">\u2190 44\u00d744 hit area around a tiny button</span>",
          "react": {
            "import": "import { Badge, Button } from \"barua-ui\";",
            "components": [
              "Badge",
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button icon size=\"xs\" className=\"b-touch-target\" aria-label=\"Dismiss\">\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"12\" height=\"12\">\n    <path d=\"m5 5 10 10M15 5 5 15\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n  </svg>\n</Button>\n<Badge>\u2190 44\u00d744 hit area around a tiny button</Badge>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "safe-area",
          "title": "Safe Area",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#safe-area",
          "summary": "On notched and home-indicator phones, the OS reserves the screen edges and reports them as env(safe-area-inset-*) values. Barua's fixed chrome \u2014 .b-mobile-header , .b-bottomnav , .b-mobile-toolbar , .b-bottom-sheet \u2014 already pads with them. For your own bars, use .b-safe-area (all four edges) or .b-safe-bottom , which pads with max(var(--b-space-3), env(safe-area-inset-bottom)) so it still breathes on squared-off screens.",
          "classes": [
            "b-btn",
            "b-btn--ghost",
            "b-code",
            "b-code__header",
            "b-icon-btn",
            "b-mobile-toolbar",
            "b-safe-bottom"
          ],
          "markup": "</div>\n<div class=\"b-mobile-toolbar b-safe-bottom\" style=\"position: static\" role=\"toolbar\" aria-label=\"Editor actions\">\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Compose\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg>\n  </button>\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"Search\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"9\" cy=\"9\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13 13 3.5 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>\n  </button>\n  <button class=\"b-btn b-icon-btn b-btn--ghost\" aria-label=\"More options\">\n    <svg viewBox=\"0 0 20 20\" fill=\"currentColor\"><circle cx=\"4.5\" cy=\"10\" r=\"1.4\"/><circle cx=\"10\" cy=\"10\" r=\"1.4\"/><circle cx=\"15.5\" cy=\"10\" r=\"1.4\"/></svg>\n  </button>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<div\n  className=\"b-mobile-toolbar b-safe-bottom\"\n  style={{ position: \"static\" }}\n  role=\"toolbar\"\n  aria-label=\"Editor actions\"\n>\n  <Button icon variant=\"ghost\" aria-label=\"Compose\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <path d=\"M13.5 3.5 16.5 6.5 7 16H4v-3l9.5-9.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    </svg>\n  </Button>\n  <Button icon variant=\"ghost\" aria-label=\"Search\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\">\n      <circle cx=\"9\" cy=\"9\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m13 13 3.5 3.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </Button>\n  <Button icon variant=\"ghost\" aria-label=\"More options\">\n    <svg viewBox=\"0 0 20 20\" fill=\"currentColor\">\n      <circle cx=\"4.5\" cy=\"10\" r=\"1.4\" />\n      <circle cx=\"10\" cy=\"10\" r=\"1.4\" />\n      <circle cx=\"15.5\" cy=\"10\" r=\"1.4\" />\n    </svg>\n  </Button>\n</div>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "collapsing-title",
          "title": "Collapsing Large Title",
          "category": "mobile",
          "url": "https://ui.barua.tz/docs/mobile.html#collapsing-title",
          "summary": "NavigationStack's signature move: the large title shrinks away as content scrolls, and the bar title fades in. Add data-b-collapse to a .b-mobile-header \u2014 barua.js watches the nearest scroll parent and toggles .is-collapsed .",
          "classes": [
            "b-footnote",
            "b-mobile-header",
            "b-mobile-header__bar",
            "b-mobile-header__large-title",
            "b-mobile-header__title",
            "b-subheadline",
            "b-text-secondary",
            "b-text-tertiary"
          ],
          "markup": "<header class=\"b-mobile-header\" data-b-collapse style=\"position: sticky\">\n  <div class=\"b-mobile-header__bar\">\n    <span class=\"b-mobile-header__title\">Inbox</span>\n  </div>\n  <h1 class=\"b-mobile-header__large-title\">Inbox</h1>\n</header>\n<div style=\"padding: var(--b-space-4)\">\n  <p class=\"b-subheadline b-text-secondary\">Scroll this panel \u2014 the large title collapses into the bar.</p>\n  <div style=\"height: 30rem\"></div>\n  <p class=\"b-footnote b-text-tertiary\">The end.</p>\n</div>",
          "react": {
            "import": "import { Footnote } from \"barua-ui\";",
            "components": [
              "Footnote"
            ],
            "root": "Footnote",
            "jsx": "<header\n  className=\"b-mobile-header\"\n  data-b-collapse=\"\"\n  style={{ position: \"sticky\" }}\n>\n  <div className=\"b-mobile-header__bar\">\n    <span className=\"b-mobile-header__title\">Inbox</span>\n  </div>\n  <h1 className=\"b-mobile-header__large-title\">Inbox</h1>\n</header>\n<div style={{ padding: \"var(--b-space-4)\" }}>\n  <p className=\"b-subheadline b-text-secondary\">Scroll this panel \u2014 the large title collapses into the bar.</p>\n  <div style={{ height: \"30rem\" }}></div>\n  <Footnote className=\"b-text-tertiary\">The end.</Footnote>\n</div>"
          },
          "states": [
            "is-collapsed",
            "is-scrolled"
          ]
        }
      ]
    },
    {
      "id": "marketing",
      "title": "Marketing \u2014 landing pages: hero, chapters, figures, bento, site footer",
      "url": "https://ui.barua.tz/docs/marketing.html",
      "components": [
        {
          "id": "marketing-nav",
          "title": "Marketing Nav",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#marketing-nav",
          "summary": "Quieter than an application\u2019s chrome: a slim sticky bar in the chrome material, links centred, one action at the end. It is .b-marketing-nav rather than .b-topnav because a product page is not an app and should not pretend to be.",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-btn--sm",
            "b-marketing-nav",
            "b-marketing-nav__brand",
            "b-marketing-nav__links"
          ],
          "markup": "<nav class=\"b-marketing-nav\" style=\"position: static\">\n  <a class=\"b-marketing-nav__brand\" href=\"#marketing-nav\">Barua</a>\n  <div class=\"b-marketing-nav__links\"><a href=\"#marketing-nav\">Mail</a><a href=\"#marketing-nav\">Domains</a><a href=\"#marketing-nav\">Pricing</a></div>\n  <a class=\"b-btn b-btn--primary b-btn--sm\" href=\"#marketing-nav\">Get started</a>\n</nav>",
          "react": {
            "import": "import { ButtonLink, MarketingNav, MarketingNavBrand, MarketingNavLinks } from \"barua-ui\";",
            "components": [
              "ButtonLink",
              "MarketingNav",
              "MarketingNavBrand",
              "MarketingNavLinks"
            ],
            "root": "MarketingNav",
            "jsx": "<MarketingNav style={{ position: \"static\" }}>\n  <MarketingNavBrand href=\"#marketing-nav\">Barua</MarketingNavBrand>\n  <MarketingNavLinks>\n    <a href=\"#marketing-nav\">Mail</a>\n    <a href=\"#marketing-nav\">Domains</a>\n    <a href=\"#marketing-nav\">Pricing</a>\n  </MarketingNavLinks>\n  <ButtonLink variant=\"primary\" size=\"sm\" href=\"#marketing-nav\">Get started</ButtonLink>\n</MarketingNav>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-scrolled"
          ]
        },
        {
          "id": "chapter",
          "title": "Chapter",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#chapter",
          "summary": "One idea, centred, with room around it. An eyebrow names the subject, the title is capped at twenty characters of measure so it always breaks well, and the lede is one sentence at reading width. .b-chapter--tight halves the vertical room; .b-chapter--start aligns the whole chapter to the reading edge.",
          "classes": [
            "b-btn",
            "b-btn--lg",
            "b-btn--primary",
            "b-chapter",
            "b-chapter--tight",
            "b-chapter__actions",
            "b-chapter__eyebrow",
            "b-chapter__lede",
            "b-chapter__title",
            "b-link"
          ],
          "markup": "<div class=\"b-chapter b-chapter--tight\">\n  <p class=\"b-chapter__eyebrow\">Barua Mail</p>\n  <h2 class=\"b-chapter__title\">Your business, on your own name.</h2>\n  <p class=\"b-chapter__lede\">Professional email on the domain you own \u2014 set up in an afternoon, paid for in shillings.</p>\n  <div class=\"b-chapter__actions\">\n    <a class=\"b-btn b-btn--primary b-btn--lg\" href=\"#chapter\">Start free trial</a>\n    <a class=\"b-link\" href=\"#chapter\">See how it works &rsaquo;</a>\n  </div>\n</div>",
          "react": {
            "import": "import { ButtonLink, Chapter, Link } from \"barua-ui\";",
            "components": [
              "ButtonLink",
              "Chapter",
              "Link"
            ],
            "root": "Chapter",
            "jsx": "<Chapter tight>\n  <p className=\"b-chapter__eyebrow\">Barua Mail</p>\n  <h2 className=\"b-chapter__title\">Your business, on your own name.</h2>\n  <p className=\"b-chapter__lede\">Professional email on the domain you own \u2014 set up in an afternoon, paid for in shillings.</p>\n  <div className=\"b-chapter__actions\">\n    <ButtonLink variant=\"primary\" size=\"lg\" href=\"#chapter\">Start free trial</ButtonLink>\n    <Link href=\"#chapter\">See how it works \u203a</Link>\n  </div>\n</Chapter>"
          },
          "variants": [
            {
              "id": "hero",
              "title": "Hero"
            }
          ],
          "knobs": [
            "--b-chapter-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "hero-furniture",
          "title": "Hero furniture",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#hero-furniture",
          "summary": "The three marks that sit around a headline on almost every product page: the news above it, the credibility under it, and the ground it all stands on. Each is small enough that every team rebuilds it slightly differently, which is exactly why they belong here.",
          "classes": [
            "b-announce",
            "b-announce__go",
            "b-chapter",
            "b-chapter--tight",
            "b-chapter__lede",
            "b-chapter__title",
            "b-has-tiles",
            "b-icon",
            "b-logo-wall",
            "b-logo-wall__logo",
            "b-rating",
            "b-rating__stars",
            "b-tile-field"
          ],
          "markup": "<a class=\"b-announce\" href=\"#announce\">\n  <svg class=\"b-icon\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><path d=\"M10 3l1.2 3.3 3.3 1.2-3.3 1.2L10 12 8.8 8.7 5.5 7.5l3.3-1.2L10 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"m14.8 11.5.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7.7-1.8Z\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linejoin=\"round\"/></svg>\n  Barua UI 0.6 has shipped\n  <span class=\"b-announce__go\" aria-hidden=\"true\">\u2192</span>\n</a>",
          "react": {
            "import": "import { Announce, AnnounceGo, Icon } from \"barua-ui\";",
            "components": [
              "Announce",
              "AnnounceGo",
              "Icon"
            ],
            "root": "Announce",
            "jsx": "<Announce href=\"#announce\">\n  <Icon viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n    <path d=\"M10 3l1.2 3.3 3.3 1.2-3.3 1.2L10 12 8.8 8.7 5.5 7.5l3.3-1.2L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n    <path d=\"m14.8 11.5.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7.7-1.8Z\" stroke=\"currentColor\" strokeWidth=\"1.3\" strokeLinejoin=\"round\" />\n  </Icon>\n  Barua UI 0.6 has shipped\n  <AnnounceGo aria-hidden=\"true\">\u2192</AnnounceGo>\n</Announce>"
          },
          "variants": [
            {
              "id": "announce",
              "title": "Announcement"
            },
            {
              "id": "rating",
              "title": "Rating"
            },
            {
              "id": "logo-wall",
              "title": "Logo wall"
            },
            {
              "id": "tile-field",
              "title": "Tile field"
            }
          ],
          "knobs": [
            "--b-chapter-gap",
            "--b-logo-h",
            "--b-marquee-gap",
            "--b-tile",
            "--b-tile-ground",
            "--b-tile-ink"
          ],
          "states": [
            "is-empty"
          ]
        },
        {
          "id": "proof",
          "title": "Proof and pointers",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#proof",
          "summary": "Three shapes a product page reaches for once it has something to show: a row of names too long to stand still, a case study, and a card that sends somebody off to read.",
          "classes": [
            "b-badge",
            "b-btn",
            "b-btn--glass",
            "b-btn--pill",
            "b-grid",
            "b-grid--3",
            "b-logo-wall",
            "b-logo-wall__logo",
            "b-marquee",
            "b-marquee__group",
            "b-marquee__track",
            "b-quote-card",
            "b-quote-card__head",
            "b-quote-card__name",
            "b-quote-card__quote",
            "b-quote-card__role",
            "b-quote-card__stat",
            "b-quote-card__stat-label",
            "b-resource-card",
            "b-resource-card__body",
            "b-resource-card__excerpt",
            "b-resource-card__poster",
            "b-resource-card__title",
            "b-resource-card__type"
          ],
          "markup": "<div class=\"b-marquee\" aria-label=\"Partners\">\n  <div class=\"b-marquee__track\">\n    <div class=\"b-marquee__group b-logo-wall\">\n      <span class=\"b-logo-wall__logo\">Vodacom</span>\n      <span class=\"b-logo-wall__logo\">CRDB</span>\n      <span class=\"b-logo-wall__logo\">Serengeti</span>\n      <span class=\"b-logo-wall__logo\">Azam</span>\n      <span class=\"b-logo-wall__logo\">Precision Air</span>\n    </div>\n    <div class=\"b-marquee__group b-logo-wall\" aria-hidden=\"true\">\n      <span class=\"b-logo-wall__logo\">Vodacom</span>\n      <span class=\"b-logo-wall__logo\">CRDB</span>\n      <span class=\"b-logo-wall__logo\">Serengeti</span>\n      <span class=\"b-logo-wall__logo\">Azam</span>\n      <span class=\"b-logo-wall__logo\">Precision Air</span>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { LogoWall, LogoWallLogo, Marquee, MarqueeTrack } from \"barua-ui\";",
            "components": [
              "LogoWall",
              "LogoWallLogo",
              "Marquee",
              "MarqueeTrack"
            ],
            "root": "Marquee",
            "jsx": "<Marquee aria-label=\"Partners\">\n  <MarqueeTrack>\n    <LogoWall className=\"b-marquee__group\">\n      <LogoWallLogo>Vodacom</LogoWallLogo>\n      <LogoWallLogo>CRDB</LogoWallLogo>\n      <LogoWallLogo>Serengeti</LogoWallLogo>\n      <LogoWallLogo>Azam</LogoWallLogo>\n      <LogoWallLogo>Precision Air</LogoWallLogo>\n    </LogoWall>\n    <LogoWall className=\"b-marquee__group\" aria-hidden=\"true\">\n      <LogoWallLogo>Vodacom</LogoWallLogo>\n      <LogoWallLogo>CRDB</LogoWallLogo>\n      <LogoWallLogo>Serengeti</LogoWallLogo>\n      <LogoWallLogo>Azam</LogoWallLogo>\n      <LogoWallLogo>Precision Air</LogoWallLogo>\n    </LogoWall>\n  </MarqueeTrack>\n</Marquee>"
          },
          "variants": [
            {
              "id": "marquee",
              "title": "Marquee"
            },
            {
              "id": "quote-card",
              "title": "Quote card"
            },
            {
              "id": "resource-card",
              "title": "Resource card"
            }
          ],
          "knobs": [
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-logo-h",
            "--b-marquee-gap",
            "--b-marquee-time"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "figure",
          "title": "Figure",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#figure",
          "summary": "A picture is furniture, so it has a shape: .b-figure__frame clips it to the large radius, lifts it on the elevation scale, and fills any gap with a surface rather than white. .b-figure--bleed lets it run to the edges of the page, which is how a chapter ends when the image is the argument. .b-figure--fade dissolves the bottom of the frame into the page instead of ending it, which is what a product shot under a hero wants: a window into the thing rather than a photograph with an edge. --b-fade-from is where the fade begins.",
          "classes": [
            "b-figure",
            "b-figure__caption",
            "b-figure__frame"
          ],
          "markup": "<figure class=\"b-figure\" style=\"max-width: 26rem\">\n  <div class=\"b-figure__frame\">\n    <img src=\"../examples/assets/landing-domains.svg\" alt=\"Domain records verifying\" width=\"1200\" height=\"900\" loading=\"lazy\">\n  </div>\n  <figcaption class=\"b-figure__caption\">Every record checked against public resolvers.</figcaption>\n</figure>",
          "react": {
            "import": "import { Figure } from \"barua-ui\";",
            "components": [
              "Figure"
            ],
            "root": "Figure",
            "jsx": "<Figure style={{ maxWidth: \"26rem\" }}>\n  <div className=\"b-figure__frame\">\n    <img src=\"../examples/assets/landing-domains.svg\" alt=\"Domain records verifying\" width=\"1200\" height=\"900\" loading=\"lazy\" />\n  </div>\n  <figcaption className=\"b-figure__caption\">Every record checked against public resolvers.</figcaption>\n</Figure>"
          },
          "knobs": [
            "--b-fade-from"
          ]
        },
        {
          "id": "feature-row",
          "title": "Feature Row",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#feature-row",
          "summary": "Picture beside prose, alternating down the page. .b-feature-row--flip swaps the sides so consecutive rows do not march; below md both stack with the picture first. Actions inside a row align with the prose, never centre.",
          "classes": [
            "b-chapter__actions",
            "b-chapter__eyebrow",
            "b-feature-row",
            "b-feature-row__body",
            "b-feature-row__title",
            "b-figure",
            "b-figure__frame",
            "b-link"
          ],
          "markup": "<div class=\"b-feature-row\">\n  <figure class=\"b-figure\">\n    <div class=\"b-figure__frame\">\n      <img src=\"../examples/assets/landing-mail.svg\" alt=\"Threads and labels\" width=\"1200\" height=\"900\" loading=\"lazy\">\n    </div>\n  </figure>\n  <div>\n    <p class=\"b-chapter__eyebrow\">Mail</p>\n    <h3 class=\"b-feature-row__title\">An inbox that behaves like an application.</h3>\n    <p class=\"b-feature-row__body\">Threads, labels, and search that reads the whole message \u2014 one keystroke away.</p>\n    <p class=\"b-chapter__actions\"><a class=\"b-link\" href=\"#feature-row\">Open an inbox &rsaquo;</a></p>\n  </div>\n</div>",
          "react": {
            "import": "import { FeatureRow, Figure, Link } from \"barua-ui\";",
            "components": [
              "FeatureRow",
              "Figure",
              "Link"
            ],
            "root": "FeatureRow",
            "jsx": "<FeatureRow>\n  <Figure>\n    <div className=\"b-figure__frame\">\n      <img src=\"../examples/assets/landing-mail.svg\" alt=\"Threads and labels\" width=\"1200\" height=\"900\" loading=\"lazy\" />\n    </div>\n  </Figure>\n  <div>\n    <p className=\"b-chapter__eyebrow\">Mail</p>\n    <h3 className=\"b-feature-row__title\">An inbox that behaves like an application.</h3>\n    <p className=\"b-feature-row__body\">Threads, labels, and search that reads the whole message \u2014 one keystroke away.</p>\n    <p className=\"b-chapter__actions\">\n      <Link href=\"#feature-row\">Open an inbox \u203a</Link>\n    </p>\n  </div>\n</FeatureRow>"
          },
          "knobs": [
            "--b-fade-from"
          ]
        },
        {
          "id": "bento",
          "title": "Bento",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#bento",
          "summary": "Tiles of unequal weight in one grid \u2014 the rest of a platform at a glance. .b-bento__tile--wide takes two columns so the grid has a rhythm instead of a checkerboard; on a phone every tile is full width.",
          "classes": [
            "b-bento",
            "b-bento__body",
            "b-bento__tile",
            "b-bento__tile--wide",
            "b-bento__title",
            "b-icon-tile",
            "b-icon-tile--sm",
            "b-icon-tile--solid",
            "b-icon-tile--teal"
          ],
          "markup": "<div class=\"b-bento\">\n  <article class=\"b-bento__tile b-bento__tile--wide\">\n    <span class=\"b-icon-tile b-icon-tile--solid\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"none\"><rect x=\"3\" y=\"4.5\" width=\"14\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m4.5 7 5.5 4 5.5-4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>\n    <h3 class=\"b-bento__title\">Mail</h3>\n    <p class=\"b-bento__body\">Mailboxes on your domain, shared inboxes for the team, and IMAP for the app you already use.</p>\n  </article>\n  <article class=\"b-bento__tile\">\n    <span class=\"b-icon-tile b-icon-tile--sm b-icon-tile--teal\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/></svg></span>\n    <h3 class=\"b-bento__title\">Storage</h3>\n    <p class=\"b-bento__body\">Files beside the mailbox they belong to.</p>\n  </article>\n</div>",
          "react": {
            "import": "import { Bento, IconTile } from \"barua-ui\";",
            "components": [
              "Bento",
              "IconTile"
            ],
            "root": "Bento",
            "jsx": "<Bento>\n  <article className=\"b-bento__tile b-bento__tile--wide\">\n    <IconTile className=\"b-icon-tile--solid\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\">\n        <rect x=\"3\" y=\"4.5\" width=\"14\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n        <path d=\"m4.5 7 5.5 4 5.5-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n      </svg>\n    </IconTile>\n    <h3 className=\"b-bento__title\">Mail</h3>\n    <p className=\"b-bento__body\">Mailboxes on your domain, shared inboxes for the team, and IMAP for the app you already use.</p>\n  </article>\n  <article className=\"b-bento__tile\">\n    <IconTile className=\"b-icon-tile--sm b-icon-tile--teal\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 20 20\" fill=\"none\">\n        <path d=\"M3.5 5.5A1.5 1.5 0 0 1 5 4h3l1.5 2H15a1.5 1.5 0 0 1 1.5 1.5V14a1.5 1.5 0 0 1-1.5 1.5H5A1.5 1.5 0 0 1 3.5 14V5.5Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n      </svg>\n    </IconTile>\n    <h3 className=\"b-bento__title\">Storage</h3>\n    <p className=\"b-bento__body\">Files beside the mailbox they belong to.</p>\n  </article>\n</Bento>"
          }
        },
        {
          "id": "spec-strip",
          "title": "Spec Strip",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#spec-strip",
          "summary": "Four numbers, evenly spaced, with the claim underneath each. Use tabular numerals so the row stays even, and keep the labels honest \u2014 a figure with a footnote is worth more than a figure without one.",
          "classes": [
            "b-spec-strip",
            "b-spec__label",
            "b-spec__value",
            "b-tabular-nums"
          ],
          "markup": "<div class=\"b-spec-strip\">\n  <div><span class=\"b-spec__value b-tabular-nums\">10 min</span><span class=\"b-spec__label\">From signup to first email</span></div>\n  <div><span class=\"b-spec__value b-tabular-nums\">99.9%</span><span class=\"b-spec__label\">Delivery to the major providers</span></div>\n  <div><span class=\"b-spec__value\">TZS</span><span class=\"b-spec__label\">Billed in shillings</span></div>\n</div>",
          "react": {
            "import": "import { CountUp, SpecStrip } from \"barua-ui\";",
            "components": [
              "CountUp",
              "SpecStrip"
            ],
            "root": "SpecStrip",
            "jsx": "<SpecStrip>\n  <div>\n    <CountUp className=\"b-spec__value\">10 min</CountUp>\n    <span className=\"b-spec__label\">From signup to first email</span>\n  </div>\n  <div>\n    <CountUp className=\"b-spec__value\">99.9%</CountUp>\n    <span className=\"b-spec__label\">Delivery to the major providers</span>\n  </div>\n  <div>\n    <span className=\"b-spec__value\">TZS</span>\n    <span className=\"b-spec__label\">Billed in shillings</span>\n  </div>\n</SpecStrip>"
          }
        },
        {
          "id": "louder",
          "title": "The louder half",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#louder",
          "summary": "Everything above is the quiet version of a product page, and the restraint that makes a toolbar good makes a front page forgettable. A landing page is not an application: the type has to be readable from across a room, the ground has to change between chapters so the page has floors, and the accent has to be used at full strength rather than apologetically. These are the pieces that do that.",
          "classes": [
            "b-accordion",
            "b-accordion--plain",
            "b-btn",
            "b-btn--block",
            "b-btn--ghost",
            "b-btn--lg",
            "b-btn--pill",
            "b-btn--primary",
            "b-btn--sm",
            "b-card",
            "b-card--flush",
            "b-card__body",
            "b-chapter__title",
            "b-disclosure",
            "b-disclosure__body",
            "b-icon-tile",
            "b-icon-tile--sm",
            "b-list",
            "b-list--inset-divider",
            "b-list--plain",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__subtitle",
            "b-list-item__title",
            "b-list-item__trailing",
            "b-logo-wall",
            "b-logo-wall--cards",
            "b-logo-wall__logo",
            "b-mark",
            "b-marketing-nav",
            "b-marketing-nav--lg",
            "b-marketing-nav__brand",
            "b-marketing-nav__links",
            "b-showcase",
            "b-showcase__shot",
            "b-spacer",
            "b-stat-card",
            "b-stat-card__figure",
            "b-stat-card__label",
            "b-stat-card__row",
            "b-stat-card__rows",
            "b-stat-card__title"
          ],
          "markup": "<h2 class=\"b-chapter__title\">Email at <span class=\"b-mark\">your own name</span></h2>",
          "variants": [
            {
              "id": "mark",
              "title": "Highlight marker"
            },
            {
              "id": "chapter-tint",
              "title": "Tinted chapter"
            },
            {
              "id": "nav-lg",
              "title": "The confident bar"
            },
            {
              "id": "showcase",
              "title": "Showcase"
            },
            {
              "id": "logo-wall-cards",
              "title": "Logos on cards"
            },
            {
              "id": "accordion-plain",
              "title": "Accordion without the box"
            },
            {
              "id": "feature-row-top",
              "title": "Headline beside the substance"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong",
            "--b-logo-h",
            "--b-mark-ground",
            "--b-marquee-gap"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed",
            "is-scrolled",
            "is-selected"
          ]
        },
        {
          "id": "dark-chapter",
          "title": "Dark chapter",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#dark-chapter",
          "summary": "Product pages alternate light and dark full-bleed sections so the page has chapters you can feel while scrolling. .b-chapter--dark flips color-scheme rather than hardcoding colours, so every token inside resolves for the dark ground and any component dropped in keeps working. It is one of the three selectors the token block is declared on, alongside :root and [data-theme] \u2014 a chapter that inverts is a themed subtree, and flipping the scheme without re-declaring the tokens leaves them resolved against the page around it, which reads as a dark band that came out light.",
          "classes": [
            "b-caption",
            "b-card",
            "b-card__body",
            "b-chapter",
            "b-chapter--dark",
            "b-chapter--tight",
            "b-chapter__eyebrow",
            "b-chapter__lede",
            "b-chapter__media",
            "b-chapter__title",
            "b-container",
            "b-container--xl",
            "b-gap-2",
            "b-grid",
            "b-grid--3",
            "b-headline",
            "b-stack",
            "b-text-secondary"
          ],
          "markup": "<div class=\"b-chapter b-chapter--dark b-chapter--tight\" style=\"border-radius: var(--b-radius-xl)\">\n  <p class=\"b-chapter__eyebrow\">Barua for business</p>\n  <h2 class=\"b-chapter__title\">Work that arrives.</h2>\n  <p class=\"b-chapter__lede\">The same chapter, on the other ground.</p>\n  <div class=\"b-container b-container--xl b-chapter__media\">\n    <div class=\"b-grid b-grid--3\">\n      <article class=\"b-card\"><div class=\"b-card__body b-stack b-gap-2\"><p class=\"b-headline\">Storage</p><p class=\"b-caption b-text-secondary\">Files shared with a link that expires.</p></div></article>\n      <article class=\"b-card\"><div class=\"b-card__body b-stack b-gap-2\"><p class=\"b-headline\">Domains</p><p class=\"b-caption b-text-secondary\">Buy the name, records written for you.</p></div></article>\n      <article class=\"b-card\"><div class=\"b-card__body b-stack b-gap-2\"><p class=\"b-headline\">Hosting</p><p class=\"b-caption b-text-secondary\">A site with nothing to look after.</p></div></article>\n    </div>\n  </div>\n</div>",
          "react": {
            "import": "import { Card, CardBody, Chapter, Container, Grid } from \"barua-ui\";",
            "components": [
              "Card",
              "CardBody",
              "Chapter",
              "Container",
              "Grid"
            ],
            "root": "Chapter",
            "jsx": "<Chapter dark tight style={{ borderRadius: \"var(--b-radius-xl)\" }}>\n  <p className=\"b-chapter__eyebrow\">Barua for business</p>\n  <h2 className=\"b-chapter__title\">Work that arrives.</h2>\n  <p className=\"b-chapter__lede\">The same chapter, on the other ground.</p>\n  <Container size=\"xl\" className=\"b-chapter__media\">\n    <Grid cols={3}>\n      <Card>\n        <CardBody className=\"b-stack b-gap-2\">\n          <p className=\"b-headline\">Storage</p>\n          <p className=\"b-caption b-text-secondary\">Files shared with a link that expires.</p>\n        </CardBody>\n      </Card>\n      <Card>\n        <CardBody className=\"b-stack b-gap-2\">\n          <p className=\"b-headline\">Domains</p>\n          <p className=\"b-caption b-text-secondary\">Buy the name, records written for you.</p>\n        </CardBody>\n      </Card>\n      <Card>\n        <CardBody className=\"b-stack b-gap-2\">\n          <p className=\"b-headline\">Hosting</p>\n          <p className=\"b-caption b-text-secondary\">A site with nothing to look after.</p>\n        </CardBody>\n      </Card>\n    </Grid>\n  </Container>\n</Chapter>"
          },
          "knobs": [
            "--b-billboard-h",
            "--b-chapter-gap",
            "--b-col-min",
            "--b-cols",
            "--b-gap",
            "--b-lg-border",
            "--b-lg-pane"
          ]
        },
        {
          "id": "pill-nav",
          "title": "Pill switcher",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#pill-nav",
          "summary": "One product across several surfaces, switched from a row of pills under the bar \u2014 .b-pill-nav , with .is-active on the current one. Use it when the surfaces are peers; use tabs when one contains the others.",
          "classes": [
            "b-pill-nav"
          ],
          "markup": "<nav class=\"b-pill-nav\" aria-label=\"Surfaces\">\n  <a class=\"is-active\" href=\"#pill-nav\">Mail</a><a href=\"#pill-nav\">Storage</a><a href=\"#pill-nav\">Teams</a><a href=\"#pill-nav\">Domains</a>\n</nav>",
          "react": {
            "import": "import { PillNav } from \"barua-ui\";",
            "components": [
              "PillNav"
            ],
            "root": "PillNav",
            "jsx": "<PillNav aria-label=\"Surfaces\">\n  <a className=\"is-active\" href=\"#pill-nav\">Mail</a>\n  <a href=\"#pill-nav\">Storage</a>\n  <a href=\"#pill-nav\">Teams</a>\n  <a href=\"#pill-nav\">Domains</a>\n</PillNav>"
          },
          "states": [
            "is-active"
          ]
        },
        {
          "id": "card-rail",
          "title": "Card rail",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#card-rail",
          "summary": "A row you push sideways, snapping card to card \u2014 for a set of features that reads better as a sequence than a grid. Every figure in a rail is forced to one aspect so the captions line up; photographs arrive at whatever shape they were taken.",
          "classes": [
            "b-card-rail",
            "b-figure",
            "b-figure__frame",
            "b-rail-card__body",
            "b-rail-card__text",
            "b-rail-card__title"
          ],
          "markup": "<div class=\"b-card-rail\">\n  <article>\n    <figure class=\"b-figure\"><div class=\"b-figure__frame\"><img src=\"../examples/assets/media/team.jpg\" alt=\"A small team meeting\" width=\"1500\" height=\"1000\" loading=\"lazy\"></div></figure>\n    <div class=\"b-rail-card__body\">\n      <div class=\"b-rail-card__title\">Shared mailboxes</div>\n      <p class=\"b-rail-card__text\">sales@ and support@ belong to the team.</p>\n    </div>\n  </article>\n  <article>\n    <figure class=\"b-figure\"><div class=\"b-figure__frame\"><img src=\"../examples/assets/media/desk.jpg\" alt=\"Files on a desk\" width=\"1500\" height=\"1000\" loading=\"lazy\"></div></figure>\n    <div class=\"b-rail-card__body\">\n      <div class=\"b-rail-card__title\">Files where the mail is</div>\n      <p class=\"b-rail-card__text\">Storage sits beside the mailbox.</p>\n    </div>\n  </article>\n  <article>\n    <figure class=\"b-figure\"><div class=\"b-figure__frame\"><img src=\"../examples/assets/media/city.jpg\" alt=\"The coast\" width=\"1500\" height=\"1000\" loading=\"lazy\"></div></figure>\n    <div class=\"b-rail-card__body\">\n      <div class=\"b-rail-card__title\">Paid in shillings</div>\n      <p class=\"b-rail-card__text\">Mobile money or card, one balance.</p>\n    </div>\n  </article>\n</div>",
          "react": {
            "import": "import { CardRail, Figure } from \"barua-ui\";",
            "components": [
              "CardRail",
              "Figure"
            ],
            "root": "CardRail",
            "jsx": "<CardRail>\n  <article>\n    <Figure>\n      <div className=\"b-figure__frame\">\n        <img src=\"../examples/assets/media/team.jpg\" alt=\"A small team meeting\" width=\"1500\" height=\"1000\" loading=\"lazy\" />\n      </div>\n    </Figure>\n    <div className=\"b-rail-card__body\">\n      <div className=\"b-rail-card__title\">Shared mailboxes</div>\n      <p className=\"b-rail-card__text\">sales@ and support@ belong to the team.</p>\n    </div>\n  </article>\n  <article>\n    <Figure>\n      <div className=\"b-figure__frame\">\n        <img src=\"../examples/assets/media/desk.jpg\" alt=\"Files on a desk\" width=\"1500\" height=\"1000\" loading=\"lazy\" />\n      </div>\n    </Figure>\n    <div className=\"b-rail-card__body\">\n      <div className=\"b-rail-card__title\">Files where the mail is</div>\n      <p className=\"b-rail-card__text\">Storage sits beside the mailbox.</p>\n    </div>\n  </article>\n  <article>\n    <Figure>\n      <div className=\"b-figure__frame\">\n        <img src=\"../examples/assets/media/city.jpg\" alt=\"The coast\" width=\"1500\" height=\"1000\" loading=\"lazy\" />\n      </div>\n    </Figure>\n    <div className=\"b-rail-card__body\">\n      <div className=\"b-rail-card__title\">Paid in shillings</div>\n      <p className=\"b-rail-card__text\">Mobile money or card, one balance.</p>\n    </div>\n  </article>\n</CardRail>"
          },
          "knobs": [
            "--b-fade-from"
          ]
        },
        {
          "id": "moving-media",
          "title": "Moving media",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#moving-media",
          "summary": "A hero can move. Put a <video> in the figure frame with autoplay muted loop playsinline \u2014 muted because a page that makes noise is a page people close, and playsinline so phones do not take it fullscreen. Keep it short, keep it small, and give it a poster so something is there before it loads.",
          "classes": [
            "b-figure",
            "b-figure__caption",
            "b-figure__frame"
          ],
          "markup": "<figure class=\"b-figure\" style=\"max-width: 30rem\">\n  <div class=\"b-figure__frame\">\n    <video src=\"../examples/assets/media/typing.mp4\" autoplay muted loop playsinline preload=\"metadata\" aria-label=\"Someone typing at a desk\"></video>\n  </div>\n  <figcaption class=\"b-figure__caption\">Ten seconds on loop, under a megabyte.</figcaption>\n</figure>",
          "react": {
            "import": "import { Figure } from \"barua-ui\";",
            "components": [
              "Figure"
            ],
            "root": "Figure",
            "jsx": "<Figure style={{ maxWidth: \"30rem\" }}>\n  <div className=\"b-figure__frame\">\n    <video\n      src=\"../examples/assets/media/typing.mp4\"\n      autoplay\n      muted\n      loop\n      playsInline\n      preload=\"metadata\"\n      aria-label=\"Someone typing at a desk\"\n    ></video>\n  </div>\n  <figcaption className=\"b-figure__caption\">Ten seconds on loop, under a megabyte.</figcaption>\n</Figure>"
          },
          "knobs": [
            "--b-fade-from"
          ]
        },
        {
          "id": "promo-band",
          "title": "Promo band",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#promo-band",
          "summary": "One offer, full width, in its own colour \u2014 the band near the end of a product page that carries the ask. It sets a dark scheme so the controls inside it come out right.",
          "classes": [
            "b-btn",
            "b-btn--glass",
            "b-btn--lg",
            "b-chapter__actions",
            "b-promo-band",
            "b-promo-band__body",
            "b-promo-band__title"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "footnotes",
          "title": "Footnotes",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#footnotes",
          "summary": "The small print a claim earns. Numbered, caption-sized and tertiary, sitting between the last chapter and the footer \u2014 with <sup> markers on the claims themselves. A figure with a footnote is worth more than a figure without one.",
          "classes": [
            "b-footnotes"
          ],
          "markup": "<div class=\"b-footnotes\" style=\"padding-block-start: 0\">\n  <ol>\n    <li>Measured from account creation to first delivered message on a domain with working nameservers.</li>\n    <li>Delivery to Gmail, Outlook and Yahoo across the last ninety days.</li>\n  </ol>\n</div>",
          "react": {
            "import": "import { Footnotes } from \"barua-ui\";",
            "components": [
              "Footnotes"
            ],
            "root": "Footnotes",
            "jsx": "<Footnotes style={{ paddingBlockStart: \"0\" }}>\n  <ol>\n    <li>Measured from account creation to first delivered message on a domain with working nameservers.</li>\n    <li>Delivery to Gmail, Outlook and Yahoo across the last ninety days.</li>\n  </ol>\n</Footnotes>"
          }
        },
        {
          "id": "site-footer",
          "title": "Site Footer",
          "category": "marketing",
          "url": "https://ui.barua.tz/docs/marketing.html#site-footer",
          "summary": "Small, dense, and unafraid of links: groups of destinations in columns, then the legal line that carries the footnotes the page made. Caption-sized throughout \u2014 a footer is for finding, not for reading.",
          "classes": [
            "b-site-footer",
            "b-site-footer__group",
            "b-site-footer__groups",
            "b-site-footer__heading",
            "b-site-footer__legal"
          ],
          "markup": "<footer class=\"b-site-footer\" style=\"border-radius: var(--b-radius-lg)\">\n  <div class=\"b-site-footer__groups\">\n    <div class=\"b-site-footer__group\">\n      <div class=\"b-site-footer__heading\">Barua</div>\n      <a href=\"#site-footer\">Mail</a><a href=\"#site-footer\">Domains</a><a href=\"#site-footer\">Pricing</a>\n    </div>\n    <div class=\"b-site-footer__group\">\n      <div class=\"b-site-footer__heading\">Support</div>\n      <a href=\"#site-footer\">Help centre</a><a href=\"#site-footer\">Status</a><a href=\"#site-footer\">Contact</a>\n    </div>\n    <div class=\"b-site-footer__group\">\n      <div class=\"b-site-footer__heading\">Company</div>\n      <a href=\"#site-footer\">About</a><a href=\"#site-footer\">Privacy</a><a href=\"#site-footer\">Terms</a>\n    </div>\n  </div>\n  <p class=\"b-site-footer__legal\">Prices include VAT where it applies.<br>Copyright &copy; 2026 Barua. Dar es Salaam, Tanzania.</p>\n</footer>",
          "react": {
            "import": "import { SiteFooter, SiteFooterGroup, SiteFooterGroups, SiteFooterHeading, SiteFooterLegal } from \"barua-ui\";",
            "components": [
              "SiteFooter",
              "SiteFooterGroup",
              "SiteFooterGroups",
              "SiteFooterHeading",
              "SiteFooterLegal"
            ],
            "root": "SiteFooter",
            "jsx": "<SiteFooter style={{ borderRadius: \"var(--b-radius-lg)\" }}>\n  <SiteFooterGroups>\n    <SiteFooterGroup>\n      <SiteFooterHeading>Barua</SiteFooterHeading>\n      <a href=\"#site-footer\">Mail</a>\n      <a href=\"#site-footer\">Domains</a>\n      <a href=\"#site-footer\">Pricing</a>\n    </SiteFooterGroup>\n    <SiteFooterGroup>\n      <SiteFooterHeading>Support</SiteFooterHeading>\n      <a href=\"#site-footer\">Help centre</a>\n      <a href=\"#site-footer\">Status</a>\n      <a href=\"#site-footer\">Contact</a>\n    </SiteFooterGroup>\n    <SiteFooterGroup>\n      <SiteFooterHeading>Company</SiteFooterHeading>\n      <a href=\"#site-footer\">About</a>\n      <a href=\"#site-footer\">Privacy</a>\n      <a href=\"#site-footer\">Terms</a>\n    </SiteFooterGroup>\n  </SiteFooterGroups>\n  <SiteFooterLegal>\n    Prices include VAT where it applies.\n    <br />\n    Copyright \u00a9 2026 Barua. Dar es Salaam, Tanzania.\n  </SiteFooterLegal>\n</SiteFooter>"
          }
        }
      ]
    },
    {
      "id": "infrastructure",
      "title": "Infrastructure \u2014 naming, theming, accessibility, contribution",
      "url": "https://ui.barua.tz/docs/infrastructure.html",
      "components": [
        {
          "id": "mcp",
          "title": "MCP server",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#mcp",
          "summary": "The system is also a service. Rather than loading a 500 KB index into context, an agent can ask it questions \u2014 and, more usefully, hand back the markup it just wrote to be judged before shipping it. Hosted, so a coding agent that has never seen this repository can still use the system correctly:",
          "classes": [
            "b-code",
            "b-code__copy",
            "b-code__header"
          ],
          "markup": ""
        },
        {
          "id": "design-tokens",
          "title": "Design Tokens",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#design-tokens",
          "summary": "Every visual decision is a custom property prefixed --b- , defined once in css/tokens.css . Tokens come in three tiers: primitives are raw values ( --b-blue-500 is Barua blue), semantic tokens give values meaning and carry the light/dark pair ( --b-color-accent ), and components consume the semantic tier \u2014 never the primitives.",
          "classes": [
            "b-code",
            "b-code__header",
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "variants": [
            {
              "id": "token-families",
              "title": "Token families"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "architecture-layers",
          "title": "Architecture & Layers",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#architecture-layers",
          "summary": "Barua is one stylesheet with a declared cascade. css/barua.css opens with @layer tokens, base, utilities, components; \u2014 later layers win, so components can rely on base and utilities without specificity wars. Your own overrides live unlayered , and unlayered CSS always beats layered rules: a plain .b-btn { border-radius: 0 } in your app stylesheet wins without !important .",
          "classes": [
            "b-code",
            "b-code__copy",
            "b-code__header"
          ],
          "markup": ""
        },
        {
          "id": "naming-conventions",
          "title": "Naming Conventions",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#naming-conventions",
          "summary": "BEM with a b- namespace. If a class starts with .b- it ships with Barua; if it starts with .is- it is runtime state; if an attribute starts with data-b- it is a JS behavior hook, never a styling hook.",
          "classes": [
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "component-variants",
          "title": "Component Variants",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#component-variants",
          "summary": "Variants are modifier classes along two standard axes. The visual axis sets prominence \u2014 primary, tinted, outline, ghost, glass, danger \u2014 and reads the same on every component that offers it. Buttons carry the full set:",
          "classes": [
            "b-badge",
            "b-badge--danger",
            "b-badge--success",
            "b-badge--warning",
            "b-btn",
            "b-btn--danger",
            "b-btn--danger-tinted",
            "b-btn--ghost",
            "b-btn--glass",
            "b-btn--outline",
            "b-btn--primary",
            "b-btn--sm",
            "b-btn--success",
            "b-btn--tinted"
          ],
          "markup": "<button class=\"b-btn b-btn--primary\">Primary</button>\n<button class=\"b-btn b-btn--tinted\">Tinted</button>\n<button class=\"b-btn\">Default</button>\n<button class=\"b-btn b-btn--outline\">Outline</button>\n<button class=\"b-btn b-btn--ghost\">Ghost</button>\n<button class=\"b-btn b-btn--glass\">Glass</button>\n<button class=\"b-btn b-btn--danger\">Danger</button>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"primary\">Primary</Button>\n<Button variant=\"tinted\">Tinted</Button>\n<Button>Default</Button>\n<Button variant=\"outline\">Outline</Button>\n<Button variant=\"ghost\">Ghost</Button>\n<Button variant=\"glass\">Glass</Button>\n<Button variant=\"danger\">Danger</Button>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-loading",
            "is-pressed"
          ]
        },
        {
          "id": "component-states",
          "title": "Component States",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#component-states",
          "summary": "State is expressed twice: an aria-* attribute for assistive technology and, where no semantic attribute exists, an .is-* class for styling. Barua's selectors target both, so setting the aria attribute alone is enough for the components below. The full state language lives in Interaction .",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-chip",
            "b-table",
            "b-table-wrap",
            "b-toggle-btn"
          ],
          "markup": "<button class=\"b-btn b-toggle-btn\" aria-pressed=\"true\">Watching</button>\n<button class=\"b-chip is-selected\">Design</button>\n<button class=\"b-btn is-active\">Active</button>\n<button class=\"b-btn b-btn--primary is-loading\">Saving\u2026</button>\n<button class=\"b-btn\" disabled>Disabled</button>",
          "react": {
            "import": "import { Button, Chip, ToggleButton } from \"barua-ui\";",
            "components": [
              "Button",
              "Chip",
              "ToggleButton"
            ],
            "root": "ToggleButton",
            "jsx": "<ToggleButton className=\"b-btn\" aria-pressed=\"true\">Watching</ToggleButton>\n<Chip selected>Design</Chip>\n<Button active>Active</Button>\n<Button variant=\"primary\" loading>Saving\u2026</Button>\n<Button disabled>Disabled</Button>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "component-sizes",
          "title": "Component Sizes",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#component-sizes",
          "summary": "One height scale for every control, held in the --b-control-h-* tokens. Modifiers are --xs , --sm , medium by default, --lg , --xl ; font size and radius step down or up with the height.",
          "classes": [
            "b-btn",
            "b-btn--lg",
            "b-btn--sm",
            "b-btn--xl",
            "b-btn--xs",
            "b-hstack",
            "b-input",
            "b-input--lg",
            "b-input--sm",
            "b-stack--wrap",
            "b-table",
            "b-table-wrap",
            "b-table__num"
          ],
          "markup": "<div class=\"b-hstack b-stack--wrap\">\n  <button class=\"b-btn b-btn--xs\">Extra small</button>\n  <button class=\"b-btn b-btn--sm\">Small</button>\n  <button class=\"b-btn\">Medium</button>\n  <button class=\"b-btn b-btn--lg\">Large</button>\n  <button class=\"b-btn b-btn--xl\">Extra large</button>\n</div>\n<div class=\"b-hstack b-stack--wrap\">\n  <input class=\"b-input b-input--sm\" style=\"max-width: 11rem\" placeholder=\"Small input\">\n  <input class=\"b-input\" style=\"max-width: 11rem\" placeholder=\"Medium input\">\n  <input class=\"b-input b-input--lg\" style=\"max-width: 11rem\" placeholder=\"Large input\">\n</div>",
          "react": {
            "import": "import { Button, Input } from \"barua-ui\";",
            "components": [
              "Button",
              "Input"
            ],
            "root": "Button",
            "jsx": "<div className=\"b-hstack b-stack--wrap\">\n  <Button size=\"xs\">Extra small</Button>\n  <Button size=\"sm\">Small</Button>\n  <Button>Medium</Button>\n  <Button size=\"lg\">Large</Button>\n  <Button size=\"xl\">Extra large</Button>\n</div>\n<div className=\"b-hstack b-stack--wrap\">\n  <Input className=\"b-input--sm\" style={{ maxWidth: \"11rem\" }} placeholder=\"Small input\" />\n  <Input style={{ maxWidth: \"11rem\" }} placeholder=\"Medium input\" />\n  <Input className=\"b-input--lg\" style={{ maxWidth: \"11rem\" }} placeholder=\"Large input\" />\n</div>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-selected",
            "is-valid"
          ]
        },
        {
          "id": "icon-system",
          "title": "Icon System",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#icon-system",
          "summary": "Icons are inline SVGs on a 20\u00d720 viewBox: 1.5px strokes, round caps and joins, fill=\"none\" , and currentColor throughout so they inherit text color in every variant and theme. The .b-icon wrapper sizes them \u2014 --sm 16px, default 20px, --lg 24px, --xl 32px. Inside buttons no wrapper is needed; the button scales its own SVG.",
          "classes": [
            "b-code",
            "b-code__header",
            "b-gap-2",
            "b-hstack",
            "b-icon",
            "b-icon--lg",
            "b-icon--sm"
          ],
          "markup": "<div class=\"b-hstack b-gap-2\" aria-label=\"Envelope at 16, 20 and 24 pixels\">\n  <span class=\"b-icon b-icon--sm\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><rect x=\"2\" y=\"4.5\" width=\"16\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m3.5 6.5 6.5 4.5 6.5-4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>\n  <span class=\"b-icon\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><rect x=\"2\" y=\"4.5\" width=\"16\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m3.5 6.5 6.5 4.5 6.5-4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>\n  <span class=\"b-icon b-icon--lg\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><rect x=\"2\" y=\"4.5\" width=\"16\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m3.5 6.5 6.5 4.5 6.5-4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>\n</div>\n<div class=\"b-hstack b-gap-2\" aria-label=\"Search at 16, 20 and 24 pixels\">\n  <span class=\"b-icon b-icon--sm\"><svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"m13.4 13.4 3.6 3.6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg></span>\n  <span class=\"b-icon\"",
          "react": {
            "import": "import { Icon } from \"barua-ui\";",
            "components": [
              "Icon"
            ],
            "root": "Icon",
            "jsx": "<div\n  className=\"b-hstack b-gap-2\"\n  aria-label=\"Envelope at 16, 20 and 24 pixels\"\n>\n  <Icon className=\"b-icon--sm\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <rect x=\"2\" y=\"4.5\" width=\"16\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m3.5 6.5 6.5 4.5 6.5-4.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Icon>\n  <Icon>\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <rect x=\"2\" y=\"4.5\" width=\"16\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m3.5 6.5 6.5 4.5 6.5-4.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Icon>\n  <Icon className=\"b-icon--lg\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <rect x=\"2\" y=\"4.5\" width=\"16\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m3.5 6.5 6.5 4.5 6.5-4.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n    </svg>\n  </Icon>\n</div>\n<div\n  className=\"b-hstack b-gap-2\"\n  aria-label=\"Search at 16, 20 and 24 pixels\"\n>\n  <Icon className=\"b-icon--sm\">\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n      <circle cx=\"9\" cy=\"9\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n      <path d=\"m13.4 13.4 3.6 3.6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n    </svg>\n  </Icon>\n</div>"
          },
          "knobs": [
            "--b-gap"
          ]
        },
        {
          "id": "theme-system",
          "title": "Theme System",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#theme-system",
          "summary": "Every color token is declared once with light-dark() and :root sets color-scheme: light dark , so with no attribute at all the UI follows the system appearance. Setting data-theme=\"light\" or data-theme=\"dark\" on <html> forces a scheme by flipping color-scheme \u2014 no second stylesheet, no class swap. Each docs page restores the saved choice before first paint:",
          "classes": [
            "b-btn",
            "b-btn--primary",
            "b-btn--sm",
            "b-code",
            "b-code__header",
            "b-table",
            "b-table-wrap"
          ],
          "markup": "<button class=\"b-btn b-btn--primary b-btn--sm\">Blue</button>\n<span data-accent=\"indigo\"><button class=\"b-btn b-btn--primary b-btn--sm\">Indigo</button></span>\n<span data-accent=\"purple\"><button class=\"b-btn b-btn--primary b-btn--sm\">Purple</button></span>\n<span data-accent=\"pink\"><button class=\"b-btn b-btn--primary b-btn--sm\">Pink</button></span>\n<span data-accent=\"teal\"><button class=\"b-btn b-btn--primary b-btn--sm\">Teal</button></span>\n<span data-accent=\"green\"><button class=\"b-btn b-btn--primary b-btn--sm\">Green</button></span>",
          "react": {
            "import": "import { Button } from \"barua-ui\";",
            "components": [
              "Button"
            ],
            "root": "Button",
            "jsx": "<Button variant=\"primary\" size=\"sm\">Blue</Button>\n<span data-accent=\"indigo\">\n  <Button variant=\"primary\" size=\"sm\">Indigo</Button>\n</span>\n<span data-accent=\"purple\">\n  <Button variant=\"primary\" size=\"sm\">Purple</Button>\n</span>\n<span data-accent=\"pink\">\n  <Button variant=\"primary\" size=\"sm\">Pink</Button>\n</span>\n<span data-accent=\"teal\">\n  <Button variant=\"primary\" size=\"sm\">Teal</Button>\n</span>\n<span data-accent=\"green\">\n  <Button variant=\"primary\" size=\"sm\">Green</Button>\n</span>"
          },
          "variants": [
            {
              "id": "accent-retinting",
              "title": "Accent re-tinting"
            },
            {
              "id": "theme-js-api",
              "title": "JS API"
            }
          ],
          "knobs": [
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-asc",
            "is-desc",
            "is-loading",
            "is-pressed",
            "is-selected"
          ]
        },
        {
          "id": "responsive-system",
          "title": "Responsive System",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#responsive-system",
          "summary": "Mobile-first: base styles target small screens and min-width queries layer on refinements at the breakpoint values below (a documented convention in tokens.css \u2014 media queries cannot read custom properties, so the values are used literally).",
          "classes": [
            "b-badge",
            "b-badge--accent",
            "b-hide-desktop",
            "b-hide-mobile",
            "b-table",
            "b-table-wrap",
            "b-table__num"
          ],
          "markup": "<span class=\"b-badge b-badge--accent b-hide-mobile\">Desktop only (\u2265768px)</span>\n<span class=\"b-badge b-badge--accent b-hide-desktop\">Mobile only (&lt;768px)</span>\n<span class=\"b-badge\">Always visible</span>",
          "react": {
            "import": "import { Badge } from \"barua-ui\";",
            "components": [
              "Badge"
            ],
            "root": "Badge",
            "jsx": "<Badge variant=\"accent\" className=\"b-hide-mobile\">Desktop only (\u2265768px)</Badge>\n<Badge variant=\"accent\" className=\"b-hide-desktop\">Mobile only (<768px)</Badge>\n<Badge>Always visible</Badge>"
          },
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "accessibility-system",
          "title": "Accessibility System",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#accessibility-system",
          "summary": "Accessibility is infrastructure, not a per-component afterthought. The baseline contract every component inherits:",
          "classes": [
            "b-table",
            "b-table-wrap"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "motion-system",
          "title": "Motion System",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#motion-system",
          "summary": "Five durations, five curves \u2014 all tokens, so timing stays consistent across components. Small feedback is near-instant; the bigger the surface, the longer and springier the move.",
          "classes": [
            "b-table",
            "b-table-wrap",
            "b-table__num"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-asc",
            "is-desc",
            "is-selected"
          ]
        },
        {
          "id": "interaction-states",
          "title": "Interaction States",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#interaction-states",
          "summary": "The full interaction-state language \u2014 hover, pressed ( :active / .is-pressed ), drag ( .is-dragging , [draggable] cursors), selection rectangles, drop indicators and focus choreography \u2014 is a pattern page of its own. This page defines the naming; see Interaction for live demos of each state applied across components.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "composition-patterns",
          "title": "Composition Patterns",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#composition-patterns",
          "summary": "Big surfaces are assembled, not invented. An auth screen is .b-card + .b-field + .b-btn (packaged as .b-auth-card on Authentication ); a dashboard is .b-grid + .b-card + .b-stat + .b-chart (see Productivity and Data Visualization ). The same three primitives compose a working sign-in card with zero new CSS:",
          "classes": [
            "b-btn",
            "b-btn--block",
            "b-btn--primary",
            "b-card",
            "b-card__body",
            "b-card__subtitle",
            "b-card__title",
            "b-field",
            "b-gap-4",
            "b-input",
            "b-label",
            "b-stack"
          ],
          "markup": "<div class=\"b-card\" style=\"width: min(22rem, 100%)\">\n  <div class=\"b-card__body b-stack b-gap-4\">\n    <div>\n      <div class=\"b-card__title\">Sign in</div>\n      <div class=\"b-card__subtitle\">Card + field + button \u2014 nothing else.</div>\n    </div>\n    <div class=\"b-field\">\n      <label class=\"b-label\" for=\"infra-email\">Email</label>\n      <input class=\"b-input\" id=\"infra-email\" type=\"email\" placeholder=\"you@example.com\">\n    </div>\n    <button class=\"b-btn b-btn--primary b-btn--block\">Continue</button>\n  </div>\n</div>",
          "react": {
            "import": "import { Button, Card, CardBody, CardSubtitle, CardTitle, Field, Input, Label } from \"barua-ui\";",
            "components": [
              "Button",
              "Card",
              "CardBody",
              "CardSubtitle",
              "CardTitle",
              "Field",
              "Input",
              "Label"
            ],
            "root": "Card",
            "jsx": "<Card style={{ width: \"min(22rem, 100%)\" }}>\n  <CardBody className=\"b-stack b-gap-4\">\n    <div>\n      <CardTitle>Sign in</CardTitle>\n      <CardSubtitle>Card + field + button \u2014 nothing else.</CardSubtitle>\n    </div>\n    <Field>\n      <Label htmlFor=\"infra-email\">Email</Label>\n      <Input id=\"infra-email\" type=\"email\" placeholder=\"you@example.com\" />\n    </Field>\n    <Button variant=\"primary\" block>Continue</Button>\n  </CardBody>\n</Card>"
          },
          "knobs": [
            "--b-gap",
            "--b-lg-border",
            "--b-lg-inset",
            "--b-lg-pane",
            "--b-lg-pane-strong"
          ],
          "states": [
            "is-active",
            "is-invalid",
            "is-loading",
            "is-pressed",
            "is-valid"
          ]
        },
        {
          "id": "content-guidelines",
          "title": "Content Guidelines",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#content-guidelines",
          "summary": "Voice is part of the system. Buttons are verb-first and specific \u2014 they say what happens, not what the dialog is about. Sentence case everywhere: buttons, labels, headings, menu items. Errors say what went wrong and what to do next, in words a person would use; error codes belong in logs, not in .b-error text.",
          "classes": [],
          "markup": ""
        },
        {
          "id": "usage-contribution",
          "title": "Usage & Contribution Guidelines",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#usage-contribution",
          "summary": "Compose first. If a design can be assembled from existing components plus layout utilities, compose it in markup \u2014 do not add CSS. Add a new component only when a pattern recurs across several screens or needs its own state contract. New components get a block name, live in css/components/ inside @layer components , and are imported from barua.css . Before shipping one:",
          "classes": [
            "b-list",
            "b-list-item",
            "b-list-item__content",
            "b-list-item__leading",
            "b-list-item__subtitle",
            "b-list-item__title"
          ],
          "markup": "",
          "knobs": [
            "--b-lg-border",
            "--b-lg-pane"
          ],
          "states": [
            "is-selected"
          ]
        },
        {
          "id": "documentation-conventions",
          "title": "Documentation Conventions",
          "category": "infrastructure",
          "url": "https://ui.barua.tz/docs/infrastructure.html#documentation-conventions",
          "summary": "These docs are themselves built from Barua \u2014 docs.css styles only the chrome (shell, hero, demo frames), so every demo you see is the real system rendering itself. Each section follows one anatomy: .docs-section with an h2[id] , short prose, a live .docs-demo , and a .docs-a11y note where the component has sharp edges. docs.js generates the collapsible HTML block under every demo from its actual markup \u2014 the code you copy is the code that rendered, and can never drift. Demos marked data-no-code skip the block when the markup would be noise. The same script builds the right-rail table of contents from the section headings and feeds the \u2318K palette from the sidebar, so navigation stays in sync with the pages for free.",
          "classes": [],
          "markup": ""
        }
      ]
    }
  ]
}
