components/elements/ButtonList/index.jsjavascript
import definition from "./schema.js";
import { ButtonList } from "./ButtonList";

/**
 * Element definition consumed by elements/registry.js (pattern:
 * StoryTitle/index.js). Buttons reference sibling view ids (e.g.
 * "cancer-1-1"); the component doesn't navigate itself, it reports the
 * chosen id back to the page via `onNavigate`.
 */
export default {
  ...definition,
  component: ButtonList,
  adapter: ({ buttons }, { onNavigate }) => ({
    items: (buttons || []).map((button) => ({
      content: { label: button.label },
      targetViewId: button.id,
    })),
    onNavigate,
  }),
};