// Authors view for v1 — ported from v2 editorial rows, slimmer
function AuthorsView({ onOpenDoc, filterTrad }) {
  const { AUTHORS } = window.LIBRARY_V2;
  // Filter authors whose works belong to the requested tradition, if given.
  const shown = filterTrad
    ? AUTHORS.filter(a => (a.works || []).some(w => w.tradition === filterTrad))
    : AUTHORS;
  return React.createElement('div', { className:'amos-authors' },
    shown.map((a, i) => React.createElement('section', { key:a.id, className:'author-card' },
      React.createElement('div', { className:'ac-meta' },
        React.createElement('div', { className:'ac-supra' },
          React.createElement('span', { className:'ac-roman' }, a.roman),
          React.createElement('span', null, a.supra)
        ),
        React.createElement('h4', { className:'ac-name' }, a.name_pre, React.createElement('em', null, a.name_em)),
        React.createElement('div', { className:'ac-lived' }, a.lived),
        React.createElement('div', { className:'ac-bio', dangerouslySetInnerHTML: { __html: a.bio } }),
        React.createElement('div', { className:'ac-stats' },
          a.stats.map((s, si) => React.createElement('div', { key:si, className:'ac-stat' },
            React.createElement('div', { className:'n' }, s.n),
            React.createElement('div', { className:'l' }, s.l)
          ))
        ),
        React.createElement('div', { className:'ac-topics' },
          a.topics.map(t => React.createElement('span', { key:t, className:'ac-topic' }, '# ', t))
        )
      ),
      React.createElement('div', { className:'ac-works' },
        React.createElement('div', { className:'ac-works-head' },
          React.createElement('span', null, 'In the library'),
          React.createElement('span', { className:'r' }, a.works.length + ' works · ' + a.stats[1].n)
        ),
        a.works.map((w, wi) => React.createElement('div', { key:wi, className:'ac-work', onClick: onOpenDoc },
          React.createElement('div', { className:'ac-spine cvr-'+w.tradition },
            React.createElement('span', { className:'g' }, w.glyph)
          ),
          React.createElement('div', null,
            React.createElement('div', { className:'t' }, w.title_pre, React.createElement('em', null, w.title_em)),
            React.createElement('div', { className:'s' }, w.sub)
          ),
          React.createElement('div', { className:'ac-wmeta' },
            React.createElement('div', null, w.meta, ' · ', w.words),
            React.createElement('div', { className:'langs' }, w.langs.map(l => React.createElement('span', { key:l, className:'lp' }, l)))
          )
        ))
      )
    ))
  );
}

function TranslationModesBand({ onOpenDoc }) {
  const { MODES } = window.LIBRARY_V2;
  return React.createElement('section', { className:'amos-modes-band' },
    React.createElement('div', { className:'wmb-head' },
      React.createElement('div', null,
        React.createElement('div', { className:'wmb-kicker' }, 'Translation Modes'),
        React.createElement('div', { className:'wmb-title' }, 'Four ways to ', React.createElement('em', null, 'read a verse'))
      ),
      React.createElement('span', { className:'wmb-more', onClick: onOpenDoc }, 'Try on Rom 8:28 ', window.I.arrowRight(13))
    ),
    React.createElement('div', { className:'wmb-grid' },
      MODES.map(m => React.createElement('div', { key:m.letter, className:'wmb-card', onClick: onOpenDoc },
        React.createElement('div', { className:'wmb-letter' }, m.letter),
        React.createElement('div', { className:'wmb-k' }, m.kicker),
        React.createElement('div', { className:'wmb-n' }, m.name),
        React.createElement('div', { className:'wmb-d' }, m.desc)
      ))
    )
  );
}

Object.assign(window, { AuthorsView, TranslationModesBand });
