{
  "id": "feed",
  "name": "Feed",
  "level": "organism",
  "status": "stable",
  "purpose": "A stream of posts that loads more as people scroll.",
  "description": "Infinite-scroll content feed. Pure presentation: pass `items`, `hasMore`, `loading`, `onLoadMore` and `renderItem` — the Feed handles the sentinel, the loading shelf and the empty / end-of-feed states. Three layouts (single, grid, masonry); `role=\"feed\"` ARIA pattern with `aria-busy` while loading. Pair with SWR / React Query / vanilla `useEffect` for the data layer.",
  "role": "content",
  "import": "@rrios-forge/ui/organisms/feed",
  "exports": [
    "Feed",
    "FEED_COLUMNS",
    "FEED_DENSITIES",
    "FEED_LAYOUTS",
    "feedVariants",
    "useInfiniteScroll"
  ],
  "source": "packages/ui/src/organisms/feed",
  "axes": [
    {
      "axis": "layout",
      "part": null,
      "values": [
        "single",
        "grid",
        "masonry"
      ],
      "default": "single",
      "meaning": "Arrangement of a composite."
    },
    {
      "axis": "columns",
      "part": null,
      "values": [
        "2",
        "3",
        "4"
      ],
      "default": "3",
      "meaning": "How many columns a grid layout takes from its widest breakpoint (ADR-039)."
    }
  ],
  "needs": [
    {
      "need": "Feed card / infinite feed",
      "answer": "`FeedCard` / `Feed`"
    }
  ],
  "patterns": [],
  "a11yExceptions": [],
  "decisions": [
    {
      "id": "ADR-020",
      "title": "Feed `anchor=\"bottom\"` (conversation mode) instead of a ChatThread organism"
    }
  ],
  "stories": [
    {
      "name": "Single Column",
      "id": "components-organisms-feed--single-column",
      "interaction": false,
      "snapshots": [],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--single-column",
      "frame": "/iframe.html?id=components-organisms-feed--single-column&viewMode=story"
    },
    {
      "name": "Grid",
      "id": "components-organisms-feed--grid",
      "interaction": false,
      "snapshots": [],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--grid",
      "frame": "/iframe.html?id=components-organisms-feed--grid&viewMode=story"
    },
    {
      "name": "Masonry",
      "id": "components-organisms-feed--masonry",
      "interaction": false,
      "snapshots": [],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--masonry",
      "frame": "/iframe.html?id=components-organisms-feed--masonry&viewMode=story"
    },
    {
      "name": "Empty",
      "id": "components-organisms-feed--empty",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--empty",
      "frame": "/iframe.html?id=components-organisms-feed--empty&viewMode=story"
    },
    {
      "name": "Initial loading (skeleton)",
      "id": "components-organisms-feed--initial-loading",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--initial-loading",
      "frame": "/iframe.html?id=components-organisms-feed--initial-loading&viewMode=story"
    },
    {
      "name": "End of feed",
      "id": "components-organisms-feed--end-of-feed",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--end-of-feed",
      "frame": "/iframe.html?id=components-organisms-feed--end-of-feed&viewMode=story"
    },
    {
      "name": "Content variety (any element)",
      "id": "components-organisms-feed--content-variety",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--content-variety",
      "frame": "/iframe.html?id=components-organisms-feed--content-variety&viewMode=story"
    },
    {
      "name": "Headless data layer (consumer-owned)",
      "id": "components-organisms-feed--swr-ready",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--swr-ready",
      "frame": "/iframe.html?id=components-organisms-feed--swr-ready&viewMode=story"
    },
    {
      "name": "Chat mode (anchor=bottom)",
      "id": "components-organisms-feed--chat-mode",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-organisms-feed--chat-mode",
      "frame": "/iframe.html?id=components-organisms-feed--chat-mode&viewMode=story"
    }
  ],
  "storyFile": "tooling/storybook/stories/components/organisms/feed.stories.tsx"
}
