{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "blackboard-fixtures",
  "title": "Blackboard — fixtures",
  "author": "ilinxa",
  "description": "Blackboard plus the dummy-data fixtures used by the docs-site demo.",
  "registryDependencies": [
    "@ilinxa/blackboard"
  ],
  "files": [
    {
      "path": "src/registry/components/data/blackboard/dummy-data.ts",
      "content": "import type { BlackboardAuthor, BlackboardMember, BlackboardNote } from \"./types\";\n\n/** The mention-able team roster. */\nexport const BLACKBOARD_MEMBERS: BlackboardMember[] = [\n  { id: \"u-hessam\", name: \"Hessam\" },\n  { id: \"u-maryam\", name: \"Maryam\" },\n  { id: \"u-ali\", name: \"Ali\" },\n  { id: \"u-sara\", name: \"Sara\" },\n  { id: \"u-devran\", name: \"Devran\" },\n];\n\n/** Who's writing in the demo. */\nexport const BLACKBOARD_CURRENT_USER: BlackboardAuthor = {\n  id: \"u-hessam\",\n  name: \"Hessam\",\n  inkColor: \"oklch(0.86 0.18 132)\",\n};\n\nconst AUTHOR: Record<string, BlackboardAuthor> = {\n  \"u-hessam\": { id: \"u-hessam\", name: \"Hessam\", inkColor: \"oklch(0.86 0.18 132)\" },\n  \"u-maryam\": { id: \"u-maryam\", name: \"Maryam\", inkColor: \"oklch(0.82 0.12 230)\" },\n  \"u-ali\": { id: \"u-ali\", name: \"Ali\", inkColor: \"oklch(0.84 0.14 80)\" },\n  \"u-sara\": { id: \"u-sara\", name: \"Sara\", inkColor: \"oklch(0.80 0.14 18)\" },\n  \"u-devran\": { id: \"u-devran\", name: \"Devran\", inkColor: \"oklch(0.96 0.01 250)\" },\n};\n\n/** Seed notes (oldest → newest), fixed ISO timestamps so SSR stays deterministic. */\nexport const BLACKBOARD_NOTES: BlackboardNote[] = [\n  {\n    id: \"n-101\",\n    text: \"Standup moved to 10:30 from tomorrow 👋\",\n    author: AUTHOR[\"u-maryam\"],\n    createdAt: \"2026-06-16T08:05:00.000Z\",\n    style: { color: \"sky\", width: \"regular\", font: \"caveat\" },\n    pinned: true,\n  },\n  {\n    id: \"n-102\",\n    text: \"Shipped the media-library smoke fix — green ✅\",\n    author: AUTHOR[\"u-ali\"],\n    createdAt: \"2026-06-16T09:20:00.000Z\",\n    style: { color: \"lime\", width: \"bold\", font: \"kalam\" },\n  },\n  {\n    id: \"n-103\",\n    text: \"@Hessam can you review the blackboard plan?\",\n    author: AUTHOR[\"u-sara\"],\n    createdAt: \"2026-06-16T11:48:00.000Z\",\n    style: { color: \"amber\", width: \"regular\", font: \"patrick\" },\n    mentions: [{ memberId: \"u-hessam\", display: \"@Hessam\", start: 0, length: 7 }],\n  },\n  {\n    id: \"n-104\",\n    text: \"On it — pushing the GATE 2 plan now.\",\n    author: AUTHOR[\"u-hessam\"],\n    createdAt: \"2026-06-16T12:02:00.000Z\",\n    style: { color: \"chalk\", width: \"regular\", font: \"kalam\" },\n  },\n  {\n    id: \"n-105\",\n    text: \"Coffee machine on 3rd floor is fixed ☕\",\n    author: AUTHOR[\"u-devran\"],\n    createdAt: \"2026-06-17T07:15:00.000Z\",\n    style: { color: \"chalk\", width: \"thin\", font: \"shadows\" },\n  },\n  {\n    id: \"n-106\",\n    text: \"Design review @Maryam @Ali at 4pm in the slate room\",\n    author: AUTHOR[\"u-hessam\"],\n    createdAt: \"2026-06-17T09:40:00.000Z\",\n    style: { color: \"rose\", width: \"regular\", font: \"caveat\" },\n    mentions: [\n      { memberId: \"u-maryam\", display: \"@Maryam\", start: 14, length: 7 },\n      { memberId: \"u-ali\", display: \"@Ali\", start: 22, length: 4 },\n    ],\n  },\n];\n\nconst OLDER_TEXTS = [\n  \"Don't forget to update STATUS.md\",\n  \"Lunch & learn moved to Friday\",\n  \"New hire starts Monday — say hi 👋\",\n  \"Prod deploy window: Thu 2–4pm\",\n  \"Retro action items are in the doc\",\n  \"Anyone seen the staging creds?\",\n  \"Great demo today 🎉\",\n  \"Remember to file your expenses\",\n];\nconst OLDER_AUTHORS = [\"u-maryam\", \"u-ali\", \"u-sara\", \"u-devran\"];\nconst OLDER_COLORS = [\"chalk\", \"sky\", \"amber\", \"lime\", \"rose\"];\nconst OLDER_FONTS = [\"kalam\", \"caveat\", \"patrick\", \"shadows\"];\nconst OLDER_WIDTHS = [\"thin\", \"regular\", \"bold\"] as const;\n\n/**\n * Deterministic synthetic older notes for the lazy-load demo. `page` (0-based) +\n * `count` produce stable ids/timestamps decreasing into the past, so repeated\n * scroll-ups paginate cleanly without randomness (SSR-safe).\n */\nexport function makeOlderNotes(page: number, count: number): BlackboardNote[] {\n  const base = Date.parse(\"2026-06-16T07:00:00.000Z\");\n  return Array.from({ length: count }, (_, i) => {\n    const n = page * count + i;\n    const minutesAgo = (n + 1) * 37;\n    return {\n      id: `n-old-${page}-${i}`,\n      text: OLDER_TEXTS[n % OLDER_TEXTS.length],\n      author: AUTHOR[OLDER_AUTHORS[n % OLDER_AUTHORS.length]],\n      createdAt: new Date(base - minutesAgo * 60_000).toISOString(),\n      style: {\n        color: OLDER_COLORS[n % OLDER_COLORS.length],\n        width: OLDER_WIDTHS[n % OLDER_WIDTHS.length],\n        font: OLDER_FONTS[n % OLDER_FONTS.length],\n      },\n    } satisfies BlackboardNote;\n  });\n}\n",
      "type": "registry:component",
      "target": "components/blackboard/dummy-data.ts"
    }
  ],
  "categories": [
    "data",
    "fixtures"
  ],
  "type": "registry:block"
}