{"version":3,"sources":["../src/components/viewers/BlockNoteViewer.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCreateBlockNote } from \"@blocknote/react\";\nimport type { PartialBlock } from \"@blocknote/core\";\n// Mirror BlockNoteEditor.tsx's BlockNoteView import + style.css. Default schema\n// only — no useCurrentUserContext, uploadImage, AI, or custom inline specs, so\n// this can render on auth-free public pages.\nimport { BlockNoteView } from \"@blocknote/shadcn\";\nimport \"@blocknote/shadcn/style.css\";\nimport { useTheme } from \"next-themes\";\nimport { cn } from \"../../utils\";\n\nfunction normalize(content: unknown): PartialBlock[] | undefined {\n  if (Array.isArray(content) && content.length > 0) return content as PartialBlock[];\n  if (typeof content === \"string\" && content.trim()) {\n    try {\n      const parsed = JSON.parse(content);\n      if (Array.isArray(parsed) && parsed.length > 0) return parsed as PartialBlock[];\n    } catch {\n      /* plain string — fall through to undefined (rendered as empty) */\n    }\n  }\n  return undefined;\n}\n\nexport function BlockNoteViewer({ content, size }: { content: unknown; size?: \"default\" | \"sm\" }) {\n  const editor = useCreateBlockNote({ initialContent: normalize(content) });\n  // Outside a next-themes ThemeProvider (public pages) resolvedTheme is\n  // undefined, so this falls back to \"light\".\n  const { resolvedTheme } = useTheme();\n  return (\n    <BlockNoteView\n      editor={editor}\n      editable={false}\n      theme={resolvedTheme === \"dark\" ? \"dark\" : \"light\"}\n      // Same two classes BlockNoteEditor applies for its `size` prop: the app\n      // stylesheet keys the compact recipe off `.BlockNoteView.small`, so a\n      // viewer that omits them can only ever render at reading-page size.\n      className={cn(\"BlockNoteView\", size === \"sm\" && \"small\")}\n    />\n  );\n}\n"],"mappings":";;;;;;;;;;;;AAEA,SAAS,0BAA0B;AAKnC,SAAS,qBAAqB;AAC9B,OAAO;AACP,SAAS,gBAAgB;AAsBrB;AAnBJ,SAAS,UAAU,SAA8C;AAC/D,MAAI,MAAM,QAAQ,OAAO,KAAK,QAAQ,SAAS,EAAG,QAAO;AACzD,MAAI,OAAO,YAAY,YAAY,QAAQ,KAAK,GAAG;AACjD,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,OAAO;AACjC,UAAI,MAAM,QAAQ,MAAM,KAAK,OAAO,SAAS,EAAG,QAAO;AAAA,IACzD,QAAQ;AAAA,IAER;AAAA,EACF;AACA,SAAO;AACT;AAXS;AAaF,SAAS,gBAAgB,EAAE,SAAS,KAAK,GAAkD;AAChG,QAAM,SAAS,mBAAmB,EAAE,gBAAgB,UAAU,OAAO,EAAE,CAAC;AAGxE,QAAM,EAAE,cAAc,IAAI,SAAS;AACnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU;AAAA,MACV,OAAO,kBAAkB,SAAS,SAAS;AAAA,MAI3C,WAAW,GAAG,iBAAiB,SAAS,QAAQ,OAAO;AAAA;AAAA,EACzD;AAEJ;AAhBgB;","names":[]}