countrySheet.js now withholds the whole-India poster (WITHHELD,
sheetWithheld), and makeCountrySheet returns nothing for India. The three
large-format Styles cards use India as their sample, so they showed
"preview unavailable" and their print fell through to a stored poster
that does not exist. They now answer PosterWall's unsupported with
messages.countryPosterTooMany, in the reader's language: the card shows
that sentence instead of a preview, and a print opens only that notice.
The designs stay in the catalogue, so they return when India is no longer
withheld.
wall.bless-panels drew nothing. It now draws the ladder's 5 x 8 ft size
(60x96: three 60 x 36 in sheets, 6 in joins) through panelSheets'
planPanels and screenLayout, the same plan the Bless print uses: the
sheets pulled apart, each join a red glue band with a dashed edge, a
banner on the first sheet, a footer on the last, and rows of portrait
cards inside each sheet's content box, never crossing a join.
The cards are a layout (src/panelsSvg.js): the Bless wall draws its real
cards in its own plugin, which the gallery cannot import. The card is not
offered for printing here.
The seven templates that showed 'preview unavailable' for the packet and
the cards now draw from the shared renderers with the Nepal sample:
- each card stock is the deck the wall prints (createCardRenderer with
that stock, buildDeck), its first card the thumbnail;
- each packet variant is the packet renderer's page 1, its map page,
built from the sample's map-only sheet as the wall's packet builds it.
src/pageThumb.js turns a document's first page into an image: it keeps
that page, re-serialises it as XHTML inside an SVG foreignObject and
returns it as an SVG image, which a plain <img> draws. Photos are inlined
only from the page's own origin; the people-group photo host sends no CORS
headers, so a card's photo frame stays empty in the thumbnail (the printed
deck still carries the photo), and no refused fetch reaches the console.
A card stock's print button prints its whole deck. A packet card is not
offered for printing here, since only its page 1 is built.
Sizes reads the one shared ladder (POSTER_LADDER in POSTER_LADDER_ORDER)
and feeds each size's sheets straight into the library's PanelSheets, the
component the Wall uses for its 5 x 8 ft preview: multi-sheet sizes show
their sheets pulled apart with the red glue strip. A lineup draws every
size at one scale on one baseline, its scale fitted to the row's width so
a phone keeps every size in view. Each card also states the sheets, the
glued overlap, whether photos fit beside names, and how it prints.
The sheets carry the 3 x 3 ft country poster's layout at that size
(src/layoutSvg.js: header, map, names, table, scripture footer, no words),
labelled as a layout, since the renderer does not draw the large sizes
yet. Every size is sized from panelSheets' own screenLayout, so the fit
computed here is the box PanelSheets renders.
The composite header's Share button takes the header form
(shape="rounded-square"), as Big Picture's top bar does.
countrySheet.js now lets a requested side-lane format win over a large
country's default sheet, so the shared path draws India at 66x66 and
36x60 as well as 60x96. The two cards that were listed but not drawn now
draw the real whole-India poster at their own size, and the note that
said no country printed at those sizes (missing.largeFormat, 11 locales)
is removed: nothing refers to it.
poster-render gains three side-lane formats (60x96, 66x66, 36x60), and
check:poster-design-catalogue requires SHEET_FORMATS to list exactly what
FORMATS defines, so it failed on those three. They are now listed, near
the top after the 3 x 3 sheet, with India as their sample: India is the
one country countrySheet.js prints on a large sheet (LARGE_SHEETS).
map-sheet.country.60x96 draws through makeCountrySheet, the one country
sheet path, so its card shows the real whole-India poster. 66x66 and
36x60 are listed but not drawn: no country prints at those sizes yet, and
the shared path would hand back India's 5 x 8 ft sheet under their label.
Their details say so (posterDesign.missing.largeFormat, 11 locales).
The check fails on the three formats without this commit and passes with
it.
The Styles tab called generateCountrySheet directly and built the country
without its region, so the sample would have printed in the old flat teal
while the Country Posters wall prints it region-hued. It now draws through
the one shared path (library/packet/countrySheet.js), which carries the
region and computes the series the way the wall does; the inline series
arithmetic is gone. check:country-sheet-one-path passes.
Every poster template the library prints, in one place, so the designs
can be compared side by side and handed to an agent by name.
- poster-design-mfe: the two-tab element (capability 4), the same shape
as country-posters-mfe: the shared ViewSelect over Styles and Sizes,
each tab its own element, one ShareButton for the composite.
- poster-styles: the library's PosterWall, one card per configuration
(src/templates.js: country map sheets at each format, the packet page,
the packet variants, every card stock, the Bless wall panels, the map
print). Through PosterWall's host seams the header sticker reads "Show
full details" and opens a dialog with the configuration name, size,
file size, settings, sample and renderer, and each thumbnail is drawn
from the library with sample data (Nepal) when it comes into view.
Templates the gallery cannot draw yet say which part is missing. The
dialog fits a phone (border-box), and in Arabic its file size and the
configuration name stay whole (LRI…PDI isolates).
- poster-sizes: waits for the shared size table rather than keeping a
second list of sizes.
check:poster-design-catalogue (gates:pre) keeps the catalogue true: its
sheet formats match poster-render FORMATS, names are unique, the card
entries are card-render STOCK, its keys exist, the sample can be drawn.