diff --git a/library/packet/card-render.js b/library/packet/card-render.js index 7b16377a2..0da23c2eb 100644 --- a/library/packet/card-render.js +++ b/library/packet/card-render.js @@ -143,10 +143,11 @@ export function createCardRenderer({ strings, lang = 'en', stock = 'poker', ? `left:10px;width:${COL - 20}px;top:${12 + PH + 6}px;bottom:10px;align-items:flex-start;justify-content:center;text-align:center;` : `left:${12 + PW + 10}px;right:8px;top:0;height:${BAND}px;`} font:700 ${SIDE ? 14 : 17}px Georgia,serif;color:#1b1a17;line-height:1.1;overflow:hidden; - overflow-wrap:anywhere} + overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto} /* Steps by the LONGEST WORD as well as the length: the name sits in a narrow box beside the photo, and one unbreakable word (the dataset has 16-letter ones, e.g. Pagativeshagallu) would overflow it - sideways. overflow-wrap:anywhere is the last resort, so a name is never cut off without a sign. */ + sideways. overflow-wrap:anywhere is the last resort, so a name is never cut off without a sign; + hyphens:auto (the deck's names the language) puts a hyphen where it does break. */ .nm.long{font-size:${SIDE ? 11.5 : 14}px} .nm.xlong{font-size:${SIDE ? 10.5 : 11}px} diff --git a/library/packet/packet-render.js b/library/packet/packet-render.js index 68afa40be..107d2e7cc 100644 --- a/library/packet/packet-render.js +++ b/library/packet/packet-render.js @@ -194,7 +194,11 @@ export function createPacketRenderer({ strings, lang = 'en', fontData = null, de .lc-wk{height:16px;margin-bottom:4px;font:400 10px Georgia,serif;color:#6f6a5c} .lc-wk span{text-align:center;line-height:16px} .lc-dec{grid-auto-rows:11px;row-gap:3px} - .lc-plain .lc-dec{grid-template-columns:repeat(52,11px)} + .lc-plain{width:auto} + .lc-plain .lc-all{display:grid;grid-template-columns:repeat(80,1fr);gap:3px} + .lc-plain .lc-c{width:auto;height:auto;aspect-ratio:1} + .lc-plain + .lc-legend{font-size:22px;gap:48px} + .lc-plain ~ .lc-per{font-size:20px} .lc-dec+.lc-dec{margin-top:6px;padding-top:6px;border-top:1px solid #d8d3c4} .lc-y{font:400 10px/11px Georgia,serif;color:#8a8577;text-align:end;padding-inline-end:6px} .lc-c{display:block;box-sizing:border-box;width:11px;height:11px;border:1px solid #8f8a78;background:#fff} @@ -883,6 +887,15 @@ export function createPacketRenderer({ strings, lang = 'en', fontData = null, de // Week labels sit in the column of the week they name (column 1 is the year labels). const WEEK_MARKS = [1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]; const head = axes ? `
t(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l t(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l ${b(s("life_lede"))} ${b(u(s("christian_per_cell"),{n:so(I2(Oe,Ce.YEARS,Ce.WEEKS))}))} ${b(u(s("christian_per_cell"),{n:so(I2(Oe,Ce.YEARS,Ce.WEEKS))}))} ${b(s("christian_lede"))} ${b(s("christian_foot"))}${Ko} ${b(s("light_intro"))} ${b(u(s("sets_bounded_tally"),{inside:A(Ie.inside),outside:A(Ie.outside),unknown:A(Ie.unknown)}))} ${b(u(s("sets_centered_tally"),{placed:A(so.placed.length),centre:A(Ie.centre),unplaced:A(Ie.unplaced+so.unplaced.length)}))} ${b(s("sets_lede"))}ve)for(;L<=le;)j(M[L],se,G,!0),L++;else{const de=L,U=L,ne=new Map;for(L=U;L<=ve;L++){const vt=O[L]=E?Sn(O[L]):on(O[L]);vt.key!=null&&ne.set(vt.key,L)}let Ee,Re=0;const tt=ve-U+1;let kt=!1,_t=0;const It=new Array(tt);for(L=0;L=tt){j(vt,se,G,!0);continue}let Lt;if(vt.key!=null)Lt=ne.get(vt.key);else for(Ee=U;Ee<=ve;Ee++)if(It[Ee-U]===0&&Fr(vt,O[Ee])){Lt=Ee;break}Lt===void 0?j(vt,se,G,!0):(It[Lt-U]=L+1,Lt>=_t?_t=Lt:kt=!0,y(vt,O[Lt],B,null,se,G,ue,me,E),Re++)}const Yt=kt?hb(It):Ea;for(Ee=Yt.length-1,L=tt-1;L>=0;L--){const vt=U+L,Lt=O[vt],Po=O[vt+1],Wo=vt+1
{const{el:G,type:ue,transition:me,children:E,shapeFlag:L}=M;if(L&6){Z(M.component.subTree,O,B,V);return}if(L&128){M.suspense.move(O,B,V);return}if(L&64){ue.move(M,O,B,pe);return}if(ue===et){n(G,O,B);for(let le=0;le
ve)for(;L<=le;)j(M[L],se,G,!0),L++;else{const de=L,U=L,ne=new Map;for(L=U;L<=ve;L++){const vt=O[L]=E?Sn(O[L]):on(O[L]);vt.key!=null&&ne.set(vt.key,L)}let Ee,Re=0;const tt=ve-U+1;let kt=!1,_t=0;const It=new Array(tt);for(L=0;L=tt){j(vt,se,G,!0);continue}let Lt;if(vt.key!=null)Lt=ne.get(vt.key);else for(Ee=U;Ee<=ve;Ee++)if(It[Ee-U]===0&&Fr(vt,O[Ee])){Lt=Ee;break}Lt===void 0?j(vt,se,G,!0):(It[Lt-U]=L+1,Lt>=_t?_t=Lt:kt=!0,y(vt,O[Lt],B,null,se,G,ue,me,E),Re++)}const Yt=kt?hb(It):Ea;for(Ee=Yt.length-1,L=tt-1;L>=0;L--){const vt=U+L,Lt=O[vt],Po=O[vt+1],Wo=vt+1
{const{el:G,type:ue,transition:me,children:E,shapeFlag:L}=M;if(L&6){Z(M.component.subTree,O,B,V);return}if(L&128){M.suspense.move(O,B,V);return}if(L&64){ue.move(M,O,B,pe);return}if(ue===et){n(G,O,B);for(let le=0;le
${b(s("life_title"))}
${b(s("christian_title"))}
`:`
`:`
${b(u(s("map_page_sub"),{count:A(ie.length)}))}
${$e.join("")}
`:""}function ka(ee,ie,be){const $e=be*.2,ke=be*.66;return`${$e.join("")}
`:""}function ka(ee,ie,be){const $e=be*.2,ke=be*.66;return`${b(s("sets_head_bounded"))}
${b(s("sets_head_centered"))}