// Doc card, list row, featured card
function DocCard({ d, onOpen }) {
  const era = d.dates || '';
  return React.createElement('article', { className:'amos-doc', onClick: ()=>onOpen && onOpen(d) },
    React.createElement('div', { className:`amos-doc-cover cov-${d.tradition}` },
      React.createElement('span', { className:'tradition-bar' }),
      React.createElement('span', { className:'cov-folio' }),
      React.createElement('span', { className:'cov-glyph' }, d.glyph || '·'),
      React.createElement('span', { className:'lang-flag' },
        React.createElement('span', { className:'dot' }),
        d.langs[0]
      ),
      React.createElement('span', { className:'era' }, era)
    ),
    React.createElement('div', { className:'amos-doc-title' }, d.title),
    d.author && React.createElement('div', { className:'amos-doc-by' }, d.author),
    React.createElement('div', { className:'amos-doc-meta' },
      React.createElement('span', null, d.collection),
      React.createElement('span', { className:'sep' }, '·'),
      React.createElement('span', null, d.words + ' words'),
      React.createElement('div', { className:'langs' },
        d.langs.slice(0,4).map(l=>React.createElement('span', { key:l, className:'lang-pip' }, l))
      )
    ),
    d.topics && React.createElement('div', { className:'amos-doc-topics' },
      d.topics.slice(0,3).map(t=>React.createElement('span', { key:t, className:'amos-doc-topic' }, t))
    ),
    d.citations && React.createElement('div', { className:'amos-doc-cites' },
      window.I.cite(12),
      React.createElement('span', { className:'c' }, d.citations.toLocaleString()),
      React.createElement('span', null, 'citations'),
      React.createElement('span', { className:'sep' }, '·'),
      React.createElement('span', null, d.tier)
    )
  );
}

function DocListRow({ d, onOpen }) {
  const colorMap = {
    patristic:'#b8443a', parabiblical:'#8b6d9e', greek:'#5b7aa8', hebrew:'#7a9579',
    latin:'#d4a24c', qumran:'#8a7b58', vernacular:'#26828F'
  };
  return React.createElement('div', { className:'amos-list-row', onClick: ()=>onOpen && onOpen(d) },
    React.createElement('div', { className:'spine', style:{ background: colorMap[d.tradition] } }, d.glyph || '·'),
    React.createElement('div', null,
      React.createElement('div', { className:'title' }, d.title),
      d.author && React.createElement('div', { className:'by' }, d.author + ' · ' + (d.dates||''))
    ),
    React.createElement('div', { className:'muted' }, d.collection),
    React.createElement('div', { className:'muted', style:{textAlign:'right'} }, d.words),
    React.createElement('div', null, d.langs.slice(0,4).map(l=>React.createElement('span', { key:l, className:'lang-pip' }, l))),
    React.createElement('div', null, React.createElement('span', { className:`tag-tier trad-${d.tradition}-bg` }, d.tier)),
    React.createElement('div', { style:{textAlign:'right'} },
      React.createElement('button', { className:'amos-icon-btn', onClick:(e)=>{e.stopPropagation(); onOpen && onOpen(d);} }, window.I.open(15))
    )
  );
}

function FeaturedPassage({ onOpen }) {
  return React.createElement('section', { className:'amos-featured' },
    React.createElement('div', null,
      React.createElement('div', { className:'eyebrow' }, 'Featured study · Romans 8:28–30'),
      React.createElement('h3', null, 'One study, ', React.createElement('em', null, 'worked through'), '.'),
      React.createElement('p', null,
        'Read Paul\u2019s sōma passage across five Greek editions, three Latin witnesses, seven pre-Nicene fathers, and three modern translations — side-by-side, word-by-word, with the apparatus where the Greek is stronger.'),
      React.createElement('div', { className:'cta' },
        React.createElement('button', { className:'btn btn-primary btn-sm', onClick: onOpen }, window.I.open(14), 'Open study'),
        React.createElement('button', { className:'btn btn-outline btn-sm' }, window.I.layers(14), 'See witnesses (12)'),
      )
    ),
    React.createElement('div', { className:'amos-featured-passage' },
      React.createElement('div', { className:'ref' }, 'Ep. Rom. VIII · 28–30 · NA28'),
      React.createElement('div', { className:'greek' },
        'οἴδαμεν δὲ ὅτι τοῖς ἀγαπῶσιν τὸν θεὸν πάντα συνεργεῖ εἰς ἀγαθόν, τοῖς κατὰ πρόθεσιν κλητοῖς οὖσιν. ὅτι οὓς προέγνω, καὶ προώρισεν συμμόρφους τῆς εἰκόνος τοῦ υἱοῦ αὐτοῦ…'
      ),
      React.createElement('div', { className:'en' },
        '“And we know that for those who love God all things work together for good, for those who are called according to his purpose.”'),
      React.createElement('div', { className:'chip-row' },
        React.createElement('span', null, '5 GNT editions'),
        React.createElement('span', null, '7 fathers cite'),
        React.createElement('span', null, '3 variants at v. 28'),
        React.createElement('span', null, '4 lemmata hot')
      ),
      React.createElement('div', { className:'amos-featured-passage-v2' },
        React.createElement('div', { className:'ref' }, 'Irenaeus · Adv. Haer. IV.37.4 — citing Rom 8:29'),
        React.createElement('div', { className:'greek' },
          '\u201CHe calls those who love him according to his foreknowledge, and to those so called he predestined, that they be conformed to the image of his Son.\u201D'),
        React.createElement('div', { className:'cite' }, 'Pre-Nicene reception · translated from Greek via Latin')
      )
    )
  );
}

Object.assign(window, { DocCard, DocListRow, FeaturedPassage });
