Remove tear-off full-page flyers; /flyers is now the five artwork handouts only

Marty: the tear-off designs did not look good next to the artwork handouts. Page renamed Printable Handouts; dashboard link, tools card/nav, chatbot answer, and AI prompt synced.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
martbost
2026-08-27 09:25:17 -05:00
parent a8f3a1290e
commit 7fb7a6c0d1
6 changed files with 24 additions and 108 deletions
+10 -57
View File
@@ -1,26 +1,9 @@
// Printable RM Circle flyers, personalized to the member. Each flyer's QR + the
// tear-off tabs carry /join/<id> (angle-matched per flyer). Reuses qrlib.js.
// Printable RM Circle handouts, personalized to the member. Detailed AI
// artwork backgrounds (headline baked into the art) + a live DOM overlay
// carrying the member's QR and angle-matched /join/<id> link (via qrlib.js).
// Each design prints 2 copies per letter page with a cut line.
(function () {
'use strict';
var FLYERS = [
{ angle: 'pocket', theme: 't-gold', eye: 'PAYS PERSON-TO-PERSON · ON POLYGON',
h: 'You Already <span class="k">Found the Money.</span>',
pitch: 'The pocket change that slips through your fingers every week could be starting something instead. Scan for the 90-second look — no sign-up, no pressure, just the math.' },
{ angle: 'two', theme: 't-teal', eye: 'A CRYPTO TEAM BUILD · POLYGON',
h: 'You Know <span class="k">Two People.</span> That’s All This Takes.',
pitch: 'No big network. Nothing to sell. Get two, help them get theirs, and payments roll up to you on-chain as your team grows. Scan to see exactly how it works.' },
{ angle: 'phone', theme: 't-blue', eye: 'ON-CHAIN · NO MIDDLEMAN',
h: 'Your Phone Could <span class="k">Start Paying You.</span>',
pitch: 'The device in your hand is the only tool this needs. A public smart contract on Polygon pays people directly — no company holding the money. Scan and see for yourself.' },
{ angle: 'graveyard', theme: 't-navy', eye: 'AUTONOMOUS · IMMUTABLE · POLYGON',
h: 'Tired of Side Hustles <span class="k">That Die?</span>',
pitch: 'This one can’t be shut off. It runs on a public, immutable smart contract — no company, no owner who can pull the plug and take your momentum with them. Scan to look inside.' }
];
var TABS = 8;
// Half-sheet handouts: detailed AI artwork backgrounds (headline baked into
// the art, banner-kit energy) + a live DOM overlay carrying the member's QR
// and link. Prints 2 copies per letter page with a cut line.
var HALF = [
{ angle: 'pocket', img: '/handout-pocket.jpg' },
{ angle: 'two', img: '/handout-two.jpg' },
@@ -43,42 +26,6 @@
function el(tag, cls, html) { var d = document.createElement(tag); if (cls) d.className = cls; if (html != null) d.innerHTML = html; return d; }
function build(id) {
var host = document.getElementById('flyers');
host.innerHTML = '';
var haveId = /^\d{1,15}$/.test(id);
var idLabel = haveId ? id : '____';
FLYERS.forEach(function (f) {
var url = 'https://rmcircle.team/join/' + (haveId ? id : '') + (f.angle ? '?v=' + f.angle : '');
var shortUrl = 'rmcircle.team/join/' + idLabel;
var card = el('div', 'fl ' + f.theme);
var pr = el('button', 'fl-print btn btn-teal btn-sm', '🖨 Print this flyer');
card.appendChild(pr);
card.appendChild(el('div', 'fl-hd', '<div class="fl-ring"><span>RM</span></div><div class="fl-eye">' + f.eye + '</div><div class="fl-brand">THE RM CIRCLE</div>'));
var body = el('div', 'fl-body',
'<h2>' + f.h + '</h2><p class="pitch">' + f.pitch + '</p>' +
'<div class="fl-scan"><div class="fl-qr">' + (haveId ? qrSvg(url) : '') + '</div>' +
'<div class="si"><span class="sm">Scan with your phone camera 📷</span><b>' + shortUrl + '</b><span class="sm">Then take the 2-minute tour.</span></div></div>' +
'<p class="fl-disc">Independent team resource. Participation takes real effort and involves cryptocurrency risk. No income is guaranteed. Learn more at rmcircle.team.</p>');
card.appendChild(body);
var tabs = el('div', 'fl-tabs');
for (var i = 0; i < TABS; i++) tabs.appendChild(el('div', 'fl-tab', '✂ ' + shortUrl));
card.appendChild(tabs);
pr.addEventListener('click', function () {
document.body.classList.add('print-one'); card.classList.add('printing');
window.print();
setTimeout(function () { document.body.classList.remove('print-one'); card.classList.remove('printing'); }, 400);
});
host.appendChild(card);
});
if (!haveId) {
var note = el('p', 'micro', 'Enter your member ID above to fill in your QR codes and links. (Blank flyers still print if you want to write the link by hand.)');
note.style.cssText = 'color:var(--gold);text-align:center;margin:-14px 0 20px';
host.insertBefore(note, host.firstChild);
}
buildHalf(id);
}
function buildHalf(id) {
var host = document.getElementById('halfsheets');
if (!host) return;
host.innerHTML = '';
@@ -97,6 +44,12 @@
return card;
}
if (!haveId) {
var note = el('p', 'micro', 'Enter your member ID above to fill in your QR codes and links. (Blank handouts still print if you want to write the link by hand.)');
note.style.cssText = 'color:var(--gold);text-align:center;margin:0 0 20px';
host.appendChild(note);
}
HALF.forEach(function (f) {
var url = 'https://rmcircle.team/join/' + (haveId ? id : '') + (f.angle ? '?v=' + f.angle : '');
var shortUrl = 'rmcircle.team/join/' + idLabel;