From d82515feeef40505430cc24b25eb3b48c8d92e92 Mon Sep 17 00:00:00 2001 From: Xavier Karma Date: Sun, 4 Oct 2026 09:56:56 +0530 Subject: [PATCH] Add the Northline template family: Purple Pop and Citrus Split Purple Pop (cream page, purple pills, asterisk and dome decor, opt-in logo) and Citrus Split (grey split panel, halftone chevrons, icon contacts, logo in the measured slot) are rebuilt from the Canva PDFs on the engine with A4/Letter support, GST slots and zero audit errors. Adds static DM Sans, Jost and Poppins 800 as look-alikes for the commercial fonts. The picker now lists ten templates. --- docs/templates/12-purple-pop.md | 19 + docs/templates/13-citrus-split.md | 18 + public/fonts/dm-sans/DMSans-Bold.ttf | Bin 0 -> 56632 bytes public/fonts/dm-sans/DMSans-Regular.ttf | Bin 0 -> 56696 bytes public/fonts/dm-sans/OFL.txt | 93 +++ public/fonts/jost/Jost-Bold.ttf | Bin 0 -> 61052 bytes public/fonts/jost/Jost-Regular.ttf | Bin 0 -> 60944 bytes public/fonts/jost/OFL.txt | 93 +++ public/fonts/manifest.json | 91 +++ public/fonts/poppins/Poppins-ExtraBold.ttf | Bin 0 -> 154836 bytes public/templates/citrus-split.png | Bin 0 -> 79927 bytes public/templates/purple-pop.png | Bin 0 -> 63233 bytes public/templates/slate-band.png | Bin 58960 -> 58176 bytes public/templates/teal-swoosh.png | Bin 65534 -> 66156 bytes scripts/templates/compare.mjs | 19 +- src/pdf/InvoicePage.tsx | 4 + src/pdf/blocks/ItemsTable.tsx | 87 +-- src/pdf/blocks/slots.tsx | 11 +- src/pdf/decor/Asterisk.tsx | 78 +++ src/pdf/decor/CircledIcon.tsx | 9 +- src/pdf/decor/Halftone.tsx | 109 ++++ src/pdf/decor/Underlay.tsx | 21 + src/pdf/fonts/register.test.ts | 2 + src/pdf/fonts/roles.ts | 24 +- src/pdf/templates/band/band.test.tsx | 2 +- src/pdf/templates/catalog.test.ts | 2 +- src/pdf/templates/catalog.ts | 5 +- src/pdf/templates/classic/classic.test.tsx | 2 +- src/pdf/templates/contract.ts | 5 + src/pdf/templates/neutral/neutral.test.tsx | 2 +- src/pdf/templates/northline/CitrusLayout.tsx | 471 +++++++++++++++ src/pdf/templates/northline/Layout.tsx | 13 + src/pdf/templates/northline/PurpleLayout.tsx | 457 +++++++++++++++ src/pdf/templates/northline/citrus.tsx | 123 ++++ src/pdf/templates/northline/layoutFor.tsx | 11 + .../templates/northline/northline.test.tsx | 463 +++++++++++++++ src/pdf/templates/northline/plan.ts | 553 ++++++++++++++++++ src/pdf/templates/northline/purple.tsx | 129 ++++ src/pdf/templates/northline/variant.ts | 169 ++++++ src/pdf/templates/registry.ts | 4 + 40 files changed, 3033 insertions(+), 56 deletions(-) create mode 100644 public/fonts/dm-sans/DMSans-Bold.ttf create mode 100644 public/fonts/dm-sans/DMSans-Regular.ttf create mode 100644 public/fonts/dm-sans/OFL.txt create mode 100644 public/fonts/jost/Jost-Bold.ttf create mode 100644 public/fonts/jost/Jost-Regular.ttf create mode 100644 public/fonts/jost/OFL.txt create mode 100644 public/fonts/poppins/Poppins-ExtraBold.ttf create mode 100644 public/templates/citrus-split.png create mode 100644 public/templates/purple-pop.png create mode 100644 src/pdf/decor/Asterisk.tsx create mode 100644 src/pdf/decor/Halftone.tsx create mode 100644 src/pdf/decor/Underlay.tsx create mode 100644 src/pdf/templates/northline/CitrusLayout.tsx create mode 100644 src/pdf/templates/northline/Layout.tsx create mode 100644 src/pdf/templates/northline/PurpleLayout.tsx create mode 100644 src/pdf/templates/northline/citrus.tsx create mode 100644 src/pdf/templates/northline/layoutFor.tsx create mode 100644 src/pdf/templates/northline/northline.test.tsx create mode 100644 src/pdf/templates/northline/plan.ts create mode 100644 src/pdf/templates/northline/purple.tsx create mode 100644 src/pdf/templates/northline/variant.ts diff --git a/docs/templates/12-purple-pop.md b/docs/templates/12-purple-pop.md index a3e6f46..eca27bb 100644 --- a/docs/templates/12-purple-pop.md +++ b/docs/templates/12-purple-pop.md @@ -216,3 +216,22 @@ US Letter is 612 × 792. Sibling of 13.pdf. They are from the same Canva family, with the same placeholder data ('Northline Group', 'Amy Fletcher', 'Intelligent Bank'), the same DM Sans plus Gotham type system, the same raster 30% shadow effects, and the same SERVICE/QTY/RATE/AMOUNT table with SUBTOTAL/TAX/TOTAL. The composition is different: pills and asterisks on cream here, versus a split grey column on blush in 13. Keep both and share the data-mapping code. Not similar to 1–11, format.pdf or the in-app template. + +## Implementation notes + +Built as `src/pdf/templates/northline/` (the family component shared with Citrus Split: `Layout.tsx` dispatches to `PurpleLayout.tsx`, the plans live in `plan.ts`, tokens in `purple.tsx` and `variant.ts`) on the decor primitives in `src/pdf/decor/` (`Asterisk`, `Underlay`, `CircledIcon`). Measured against `12.pdf` with `npm run templates:compare -- purple-pop` (`/tmp/invoice-c5/compare-purple-pop.png`, left Canva, right ours; `--numbers` prints both sets of baselines). + +**Matches the design (measured, A4):** wordmark x 238.8 and 291.6 pt wide (Canva 238.2 / 292.2), right edge on the design's 530.4; INVOICE NO pill right edge 530.9, grey, text tracked 0.13 em; client label, pill and lines at x 67.1; AMOUNT DUE at 71.8; table pills, 46.6 pt header (radius 23.3), 32.7 pt rows (radius 16.35), alternating #EDEDE8 / #FFD80B, flush; SUBTOTAL / TOTAL labels at x 192 and values ending at 522 / 529; the TOTAL pill 369.4 x 41 at x 173.4; rule 1 at 64.8..533.4; footer columns at x 67.4 / 218.5 / 380.7. + +**Intentional deviations, and why:** +- **Fonts.** Open Sauce One is not bundled: the wordmark is Poppins 800 at -0.08 em. Gotham is Montserrat with every size multiplied by 0.96 at token definition (`gotham()` in `variant.ts`; a real Gotham imported over the licensed name would need the tokens at factor 1). DM Sans is bundled 400/700 and has the rupee sign; Montserrat and Poppins carry it too, so no amount depends on the Plex fallback. +- **Wordmark and 'Tax'.** The wordmark always reads "Invoice". A tax invoice adds a tracked 14 pt "TAX" above it (right-aligned), not a 61 pt "Tax Invoice". Negative tracking leaves the last glyph's ink 7.5 pt past the line end, so the wordmark Text carries that much right padding; the ink then ends on the design's edge and the overflow audit stays quiet. +- **Vertical rhythm.** The design is generous and a Voiced invoice has more lines (GSTIN, place of supply, tax rows, amount in words, signature, bank lines), so the gaps between blocks are elastic (client 35 to 10, rules 18 to 6, amount band 18 to 6, table 20 to 8, totals 14 to 6; Letter gives back its 49.9 pt from them first). A one-page invoice of two or three plain items fits A4; a tax invoice with a signature and notes puts items and totals on page 1 and the closing block (terms, signature, footer) alone at the foot of page 2, which is how the other families behave too. When the gaps can give back the whole overflow only to keep the totals with the items, the plan does exactly that. +- **Table width.** The narrow table beside the asterisk (x 176.9, the design) is used only for up to three items whose descriptions take at most two lines in its ~100 pt column; everything else uses the full width (x 59.5..539.4) on every page and drops the asterisk, as the spec recommends. The 71.5 pt asterisk is page 1 only and a child of `FirstPageHeader`, positioned from the plan; the dome sits in the left gutter of the totals block and travels with it. +- **Pills.** Header and rows are Views with a flat fill and a radius, laid out through `TableRows`'s `pill` option (cells inset 15 pt inside the pill, the pill indented from the container's left edge). No opacity, so text is never faded. +- **Watermarks.** The two pale asterisks are `decor.underlay` items (fixed, painted before the flow, anchored to the page corners; the off-page part is cut away by the Svg's viewBox so the box always lies on the page, Letter included). No keep-outs: nothing printed over them needs a clear ground. Canva's drop-shadow rasters are dropped. +- **Dates.** "INVOICE DATE : ..." and "DUE DATE : ..." are explicit right-aligned lines (a PO line is added when present); the size shrinks to 10 pt before the amount (32.74 pt, shrinking to 20) loses its 150 pt. +- **Supplier lines.** GSTIN and PAN sit under the vendor name (9 pt, through `Slot.Gstin`); phone, e-mail and address are footer columns B and C with icons (solid discs for phone and e-mail, a ring for the address). The website column has no Voiced data and is dropped; UPI is a bank line. +- **Signature and terms.** The signature takes the 29 pt asterisk's place at the right of the terms row (190 pt wide, so the computer-generated line fits in one line). Terms are one bullet per note line; with more than the signature's height they flow as their own block before the closing block, each bullet unbreakable and the label held with the first. +- **Logo.** No Canva placeholder: opt-in (picker toggle, `prefs.logo.show`), off by default, in the area left of the vendor name (at most 200 x 34 from `slots.optin.ts`). A mark shifts the name right; a wordmark replaces it. The no-logo fallback is the vendor name in DM Sans Bold. +- **Margins.** Top 70 (the design's pill starts at 77; 7 pt go to the page-2+ continuation band), bottom 40 plus the footer reserve, 54.8 left, 52.48 right; floors 36 / 36 / 24 / 36. diff --git a/docs/templates/13-citrus-split.md b/docs/templates/13-citrus-split.md index c83d40d..1cbeb81 100644 --- a/docs/templates/13-citrus-split.md +++ b/docs/templates/13-citrus-split.md @@ -182,3 +182,21 @@ US Letter is 612 × 792. ## Similarity to other templates Sibling of 12.pdf: the same Canva family, data and type system with a different layout. It is distinct from everything else in the set and from format.pdf and the in-app template; the split grey column is unique to it. It can share the 12/13 data-mapping code, though its pill and label components differ. + +## Implementation notes + +Built as `src/pdf/templates/northline/` (the family component shared with Purple Pop: `Layout.tsx` dispatches to `CitrusLayout.tsx`, the plans live in `plan.ts`, tokens in `citrus.tsx` and `variant.ts`) on the decor primitives in `src/pdf/decor/` (`Underlay`, `Halftone`, `CircledIcon`). Measured against `13.pdf` with `npm run templates:compare -- citrus-split` (`/tmp/invoice-c5/compare-citrus-split.png`, left Canva, right ours). + +**Matches the design (measured, A4):** INVOICE at x 73.3 with its baseline at 109.3 (Canva 109.7); the stripe at x 298.8..535.6; meta labels at x 87.9 / 174.1 / 315.5 / 423.7; table header 47.2 pt, orange SERVICE cell x 84.2..298.6 with the text at 115.9, numeric headings on white; description text at x 99.9 (Canva 100.1); SUBTOTAL / TAX labels at x 320.9 with values ending at 505; TOTAL bar 235 x 47.2 with TOTAL at 316.5 and its value ending at 505; BILLED TO block at x 85.6 beside the totals; PAYMENT METHOD / TERMS at x 81.7, bullets at 89.2 / 102.1. + +**Intentional deviations, and why:** +- **Fonts.** Now Bold is drawn in Jost 700 at -0.081 em (Jost has no rupee sign and is used for that one word only; 'INVOICE' comes out 176 pt wide against Canva's 189.7). Gotham is Montserrat at 0.96 of the design size (`gotham()`); DM Sans for labels, names and the words line. +- **The stripe.** A full-height fixed underlay on every page (not Canva's 547 pt rectangle plus a bottom block), anchored to the right margin: `x = page width - right margin - 236.8`. On Letter the extra 16.5 pt go to the left column; Narrow and Normal margins move it with the margin. The three halftone fields are anchored to their page corners and edges, drawn as Svg circles over the stripe, each dot already in the gradient's colour at its x (no gradient object), at 9% opacity. +- **Table.** The three numeric columns add up to exactly 236.8 pt (66.8 / 80 / 90), so every number is printed on the grey whatever the data; the description column takes the rest (214.6 on A4, 231 on Letter). RATE and AMOUNT are right-aligned (the design centres them), the rate's unit goes under it when the short form does not fit, HSN/SAC is a 9 pt line under the description. Zebra rows span the full row width and only show on the left. +- **BILLED TO.** Beside the totals (the design) when the whole invoice fits one page; above the table, under the title, when it does not, so page 1 always names the client. `planCitrus` decides from the nominal height against the page and the gaps' slack. +- **Totals.** 12.5 pt labels (Gotham 700, drawn 0.96) and values; each row is one line (the value column takes only the width the amounts need, so 'TAXABLE VALUE' and 'UTGST @ 14%' never wrap). Amount in words sits under the TOTAL bar in the design's tagline slot, right-aligned; the reverse-charge line follows it. +- **Contacts.** Phone, e-mail and address with icons (a solid orange disc for the phone, rings for e-mail and address), right-aligned with the icons at the stripe's right edge; GSTIN and PAN replace the web line, without an icon. The signature goes under them in the panel column (the design's empty bottom block). +- **Row pitch.** 12.15 pt padding gives the design's 39.3 pt row; on Letter (and when an invoice is a little over a page) the row padding is the elastic part, down to 8 pt, together with the gaps. +- **Header.** Logo in the measured slot (a mark keeps the name, a wordmark replaces the lockup), the name 2+ lines at 17.13 pt; with no logo the name stands at the logo's x, vertically centred on the title. A tax invoice puts a tracked orange "TAX" above the wordmark. +- **Margins.** Top 58, bottom 40 plus the footer reserve, 73.3 left, 59.68 right; floors 36 / 36 / 24 / 36. The standard footer sits over the bottom-left halftone and the stripe. +- **Terms.** Beside the bank lines in the closing block; more than 110 pt of them flow as their own block across the width, each bullet unbreakable. diff --git a/public/fonts/dm-sans/DMSans-Bold.ttf b/public/fonts/dm-sans/DMSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..42dc26d19ffd04481c6d16a9d99e23ca9b26968e GIT binary patch literal 56632 zcmd442Y6dW);B(LWlQc=vRqXxOL9|}Ecf0LCw5}TaeC}Hj_t%Pu^p$71PH;v(g|%B z*rhJLyev!E&_WG_4gr=H+7dcTTNdK$?>BR=Wji74zTf|OzUS{`q^on!oH=vm%$YN1 z=H4Nc5E4yJCJHiCS6x%9e?9GELdFvT{kd*IQ_DFoR6k6}8EQi2+*jAqTA4H2yq%Dj z4iXaH*VN*0pL%=QB0}gE;J0`7cMQFI>PLSiBy@<7ps%_+hVe~eKo5z8boXst_fqTq z3PR%Y3F!#x>FQXUll(>;?j1$S>j5C-)F40TdGR}=r+;LNRx$Tt{CFp*R8vIlR@t_$L4OWSC4I5RU{MQoICQ zB@q}Df5@jeEIva>FuQ+x&>>Dqx+fw0gF)y&$Xb-r4m4KM^q&I1gM_)lKHMR~Spws} zLHeevh?_d5Q3;xcI2I7Y@+nwdQ&S!J6N&sqka$phPxB0fT*U6vpFook14$H;NsaIX zN%(J);x3ZFlCTqbJ|Onv(qn+L^a4@xREO*THvIy6xuixBM(i__@C;x}*MSBS`z?&&dS+TdY{IeW9pJQ*lv(LEQYQSjX+Mcp{EYICNy1e`Cu}ECznUtD zOPG;3uXBl4_%D*;PU2-rIFD2ctBL!#bRJ;;Lb?snr;fmXE zzxP*CJ78GnS>rv{9h*@iBWh- z?6FBGBJt2O^{*xR88OaG;Ft0JACuyH)DcOz^q91klnDQA>POvvEv*5sJBgb9OuVpt zZeg70g-3{;_Tjq%zn2rIa2EQ`0I3kR;dc`H^H$K>P73Kw(DT)}e;#p6wG;W0XlXA= zr)xoT6-hq!w?HP3Dtgi9Ymu%b>SOPd&tVIZxP3iJa>$P)fruoBCZMc4@a-dYEWuV9 zkTNj}<o@x2Xv zUI^P9fxgAQ?<1KC2ky!B|Bv5Jl7g20fBr{XNEEq@L`>-!J%fbPQaQDdaPl(=gFb}P z3jhlPdxtrT%!_~z1btm zJbEFW5K;ucuvBx-vaFJuY37o}8{r&q=ROZ%^+sKl6()ISF1O;X^n{ zA^eQnX&BW}3(cbibS_;*dpHkAg+$K7lfoMcqEITrz=H)moD3fJ>AuzdWQaE;8d41g z&O?|JEf(JS|N%O$Pw@AP8Ctfu9J_Cz8#M()CcG92tSMl134np34 zNc#PLmHeIl{^s}XhkrPH@bKZoZ=w;NIlSTUlEYgLw-EB)HSb;i-Uav`d+&_*cD}di zy#?>N33= zqUX>W+DfbGLRw4f=w5mOy@)o@5pWy{eT;{_GQoail5FB5c_g2dk}^_57LaDrLfXhm z(n0!2KiNcv$yU0OHlt1dK$p?XU&DP$Zy=yY-hIhXu_T#SBsIk}zOL~bFs!Z+Se z4#3hrMV=#1)APwe@-cazd`Lbb-;o!|4@5;yLti|ZgpfU$3!P2k$a$ExoP(Zu0nv~P ziJn|RlE@__jr<<{;!2D}ml89%hFHmU#6qqmS>y)dC3g`wxr5lq&BR0QMDMu~qsISW zH25oe^L?aeN$#U{{%thX#hw0zx`}AY_0ey!)L?5R6>67#+`Z#@%?xRo8 zN9bc@Bl(65U^E>fUlSv_ii~08+(Q0EJLy`wns(4Nw4LsvC(}lHCOw_rM*mE2qPNgH z=$-U-dLzA=-b$~g=h90sHj?}3M2R*M+m@k|mT!9|-uJD=gqasG(Qj{p>C>AMJE7mJU z6(=ixr?^CMwc=LALB&55-v-g3h@ixvj38%FT~KGxwxH94E)2RV=;om3f+mB*gSEk? zU`KFKa9waq@Y%ta1-}(6D$|uKl;g^alz&v-qWnQcRgtPBm07h)HK^LI8dqJUx>xm> z>IKzXs!vqksU}0hL$o2L5JyO5NP9?M$d-`PLe3AlIppDxXG2~O`7q?`kY7S$L(@XD zLVckFp?8Nq9QthN>!BZpejWOAm@+IbEG_Jeu)Sdi!zRK*!!_Z?a9em+_{Q)%!+(gd zMHEETL@bP08POXt8gWX**%6mTTpRIr#J?kZBS#`njyyZ^&d9eTe~JodL6UL_HVvX4J<~|BRZ54vAJrXGX7yK0W%v=&Pb{j{a-(M==R8 z=`r@0!kF5a=9pD6y)oCs+!h-aTN%4G_J3lZi+v;Z!`QFlJaJ`lbK@4rt%(Tb(OkF zy-Yo*-lpE8zCiu7`c?H|^%v@&G(nmeO{ykSBmecO)K3@+8$H zU6k~0(htez7jO?^G}yEILjKdmOMIcq`b$z-W zx^s1Z(A}k>(_Gllgb%znJ%#UogLA{@!A+ zcr1;URh9wEX_h}&{$hE=a>Vj4YnXMhb-VR%)|ahEGHIqZvpDmV%ulkmW?h(dW7Z>C zZ)AOwt;#lJ=Vvd=-j;n+_Uk#pIo_PkoC|Xv$@wbRoVy}-W9}unx8^>O`*iNxx!>Cq zws@P~UP= z__O0)$5W1voMBG8v&gyJc`ACdfH8&8Lx?vhU_Z%ltTEPXj5XHK3&eY9u=tCxZ=$*Y zGf@H7n~jkBfE5lr>WMd@<68YjZ2~2iPoDSSLunawt%>0a=@ak%v9}i<2+yNweRE$ro zP233y8nsfX^6LclZL)gYc|NbjWb#d2)KLALwH|weEymf9lecc}HD~*aOZ{h^>ht^a zP7(Im7y5klRzC-%wjA(f{wE|Qvbi^b>7%k#Jsv?hzi zl&(~2)CmbF#qUun>8{>O7cRWCch@!Qiy~X9N|!pFOG~SoBloJWiCBK^h7H%P*g2eE zRpG^fq$7$wyaBN?l^1ZOQR!C%H$$l>A-jF$lXb(%Oi5y0ObfImmU zx}?3r#gJ7PMtDdHd~->02{92tMm3*p`{VriS8eZHvA8okyL0ghVPD&o>(^h|Hj>{v zXKrsks56OQtYF-rJ<$>`V@zY*C;`73`l4hlj+T*s<0=ZC1ZnXZHS|}@RMH*dbDy(v z|F~`KN~zqH)I2;azI9CLkUuLu7Ik3#DwgSz^sj~<6#qu8;+wQa*w=q=@BV(7(^xJ~ ztt`*Ka!xr71?y1~{1v$d5}egcg1-!piq-5`_)D|ktfxu%2jNLh<1_h7@aNcUDL{wy zKneal{G@3(>wyfeq=yDL6#Y-j`=5mU2KCRtX8laUe(j_wy?hROnaT9hECTjFSFLCbGQ0Sm&E@;y=-@L*JZ7XE{||5 z-PstWk6Ghy%1QRlbNj1Td-6Tiy+zBe?eDvGx!f9&XpPVrtr1&8pB5jcRGdUh{B6C+ zBE?LDUjla-zu9X{K4YxO>WUKRmbH7E7hN^5{o2G!qZgJ}x4Ydd%T}xoy_I@*ge4R; zMl8L0L*MnQHuu_n#eEI)*84k~y2KqzjW#W$%**1fi_)Nbld-?`yjdc-jRXvg&&GSJ7Y9%Gr-TCA3R=v&~J3boW?W#98lC(KG`n4F_i)9PR zDvTjN+KEXm-b1NLq0-chPuw6*($MRls1WvvpHq$axww>;*8aq62z@{vaFWL)N)J$2 zEQuC{>aukTM#~5))Pq*It(WD3C8LvE-uaTelQ=B~6`lhv2365VY4PMwOp4+WMk@e6 zK#orJ;aTwch?gb8LZe5sJ`bHkk81ImHC%TzTI%{7Owh2QwL{{C5-$>`3Ky`UXW%s6 z74L~P#kv&mHDYV7KJ@C<fRmSV~0{Pce9prI9g1?N}+LT;DJ%E3J+GgOhmY48f!#s#{ zGnv6hC236J+^}I=8m@g)eC0IyO0o~Urn><9*GuBR!E;hGZhCpuc>@)pdX z62*Ec`kQ8IC^eZh)2`+C$%{Z|uB|L+c2($v=^%ZR6NI4mx>fR;$`13cPEi4FQ{heQyEWY*v6VQvfSv39{4aIxWI+Xa(_`Pe!^ zEBW>`Z{Ao9g0niG+2BY{^HiBz+DiIr>Nb?o^J!A9E;%PDDYw|aPS=W3ZB`PEGbJabCuzdtT#e=aRfUXK&J(X&n_M@^SCinZPfPGA zAJGP19CZl5Ung&IU)+W|&x9X9{7tfYKMQxDMXbEeJ`8xg%FGA%`7xEyz?8GOg;ArL z(lh$%`c0>0In%ANw7g{f#jhGu#V}-Cn*{%eyu|C4g1XIwA3%JL)vXNeIe?O2(fMf325~+wlE-r;T{M5^-0}1Zo4q1^ zeBLP$r6;x1+r@?6y7crqFTF!-Za=9M<#IZ_4G`mI_7)LL#-{{l_Ev(wf*9j8oVASv ze+eD1lbLi_yGZcY*t`%N zV)o4EoSZ{yWD@|R#zm_z%XwSeM{9fNM?*bg>JX#NaXF7$Wgc(gWlC_yqXd5$vG!?v z=4VUr=a>%iQDRK^aKbxTLGJt|xy}bhs|lEhJ~@ zVinzbYg}A&Rf__IrtzogKQxQ}T{6CsKDAcDwjmxL z6rl1f^-NPyqy^wlVC`j^`riUnoFy0lXLApMy>olBDzFHnlVjh}`&)pG8iV{re z7OUhUO^e*@kpfOXmbc~DR@d!TXB$mS^u?VeMa$C+%e-?3%cvk;s4)2SS?u{ zpnA&VJib0_i6bU@%Xnf_QEh)&S>L+MlJxYFOlyhBR1%>!B~%D6iXWI9HDmJ|wp4F6 zSLEbWna!2>%s>xyqdXg=JKOi4j><_61rN*R&D&gAxp`j4X>sR;7FbPweVoCToSdUm zo)@<#qI&bZ#<7}pOHG-kD!a*VRmT|<+qzk+N+qzG{!Z4(2Y72s@DBs<$FOe3@iAtC zqX7IF@;Vu z9}3JzGYP3+#%{_MAkKM0Zi?wr@toh_NboIOIPvgrvn7?@i2Zv>SYNcs-h&)rwJYEk zDp*AKSV<@_Po^b}TdS)^=2@yzBQtV6X}dgg9SQZ@8#0PBrv9fHH<`+FZRI9<=YmxWW@wao78mH5Y83_msq<+9;a-HSyz@pY zDn{lv43!FEH;q@6InoP_`h2t56>(NnWqU-$==`RwHI+kkVM&qAu6%vDD=n+UXh?F* z%bjWu8}CVbW&M(TX-Qw0&6D7dv+saDGQE@FkI6o^gwJfD1m8ak&TOFs--or`X*x_F zCHR9_<(`H!eV5=5$-ccrpV>$Thm9POu=8bYm$0A3N^f|8OJ)lt>?dK+C4WB?y%n;p zn2JG5I>us_vZpvBW=Snfw!@8cH64U2N1RI~$-z0_+f>taq{b4`x41rLYFUylfWETM9S2G~1AJkQNALIL*UJ z`iZyb_{NQh=;cl(3XE49RA^5jG@-EF3(+`wan zsuTQHkA|ky_Z4N-cs=$kz0YWHq*w|(O~qM}8#;Dc!ZikOW@T%pYh7d6a+hm)S^09O zb9uSd>9ks0u5Ae~95K~-O{Jc=%4l1%)({<|*QBHe1x0I;Belc&lPZLdZ7AH-Sml6YG-gJe$Kv>msq0<4G<4vc*LL|vZ`P_R%?0DsSZ#qPa~90daFjZ%&$UuM+vCNt=Z z!fO}_*epbaRXcD@gvk#lGswG;Sp;j9Iv(Lb)3VT9{0!lxAt*PF;M@kY-EKyDdpJ2w z$ewr|;W{^%e7O%uha zajO1E{BVQ#fbimklSvM9QRG0~?qRi{2e=>2H4_qLooGpGIxRCp5F3Obp>aUemITogEEh<}VJKf_; z_vz?Q&DmZr=)J?q6lIIw$#oZUc^`O4mf#^ia0qn4u zro*&S!he#jt}#9l7iN6Ir-MzI=5snYJZ)SU!^I_SwroU+GmR;;*}j#9ij&i5J%quT zm%J?}X#aQ7VrTtuRnE!ZxT$a!Di0x07262|jb=o=Jb^2tAYjBiPr*Y?j0i zvlomGAGy&hQo&^&B=Nt96{phw=@FZ*tskkJ5=y;M7K*{(V;1tnf(h`!+FRm-`2^ha zQ(Ox^tk^w<^#L9?l0Cn`q~Vx3(ea+()U1fQcw5yMtM(rDu5~Fcn%; zTGDAWtSp@38cj)!pTVindD6i;YfW2rmR<7I%zkMKWXsI7&1&PvUHMu&vsKX3mEfGu zb=sJwPOq}EsatIPF{=-iTcTrfOS0TN)Ix9o` zkk)3fNzT+%Cs5vtQfwdP#r~(_#!pt_k5H~d(!S{^G$PV=#ng06+UUU?|EU;sOwGE&pwojBGgDL2 zV-xMhjG8=yb4A7S^E<( z;Rje06ZNc`{86}3cpLqU^)jo6``gTeWuf*`RFwOua`>6M=TVq;p}z9QfwxwSgzXG+ zSTn3<-@^JNvpK2IQ&P02WOQM}`us%vjLFV!sBo_c>sV@a7}L_sacM>N6mx2lL1W3P zEEHqu&sFOR91C3f9Gx~XDnhM^PMKHaZe;!zY&|_iIEDG^9Zb)BSOxTBr3L$i5Fm%o zZ1y$fE?ykHWzQa6Mx}9n)uD}Np1JXj^kh7>Hpz3}F8mBhyv^nID9tBk28VIKtC8 zhnmGtOG@=cIW$rXY0mMWTuz7U|zxPn6(~W54Y*oOy~8e7_t^knowW zD8ct(ukSQI(-R5)&YxCr@Hph2AQdAu|<5YdLm(;Qn)W>^SE>3<%?Ns~EztVqxk{z>;Iv)_706 z3gKRp!lSr;@18YDLzfICckbDH_E_o|vUO8>nb^Z-d?EBYaRtie`ME^DKn+;DDTDJQ z!I|VF_TX&OQxil9S*MF*@Kc9<|5>f03vK=4i~mskAJ99e>X~7jE5p z!9Dj}uyyOvqqp65^yuxk178j6SPy(ehTE{mkH_rksoQkVTy*}a=ZOd2rfT{K_9fL! z@Hsxm=G-$6oAvAaIX4oVaWBF5V>dVBQi3z?CHOw}#A5)?xR>A$&7#9vhQXEe$?dF8 zMtnRh@i^>@XA3`U51#l7y=0Qm;69o<)GvO_W7iy$^Y;_aFWFED%B+qAeXO1FAVJwo zg+bX&@GtnDiem*yqtnb$93utqI>$zDXnIXwS=m61zd0#%=Z-LKlWxXnA;+<@%#~tD zjluP+QLOm_)7_(-i-*axnCD2o&V1qB0Q_-s?F{&90r-A$+YI=90r)<0{S5dt{fB1J zzcYaU6xl7~+k|FrizR-ZrJHz*G2d&xA~k^j1bKc2eI`W-|4DKVxR<=4r}$V@h8^;= zydjvwDTfH5C?43H3KDC6HBcCEiZbg5nV@~miD4V`3+!|Hiv{rz4Bt=w$T^hYuqHBmAD-x7oF7a7p%c)5gxtVK5eXlo z2&aQlWK^Q!XY~wFe-_VjgiTRrqljGU6XcN@rNUOpRG!?$q*V;9$bq!1$La*eT&@(e zhGNVFXB{-9#1mBNQbQ+(@QG)LajMCtJ2AzlS1kN-* ztEq(lB%ZusJpeuqb_To(FC(4JaN+52A5)4;Vso?!|7J#7me$lDPU$!4Q)$WgUw@to zS&eVB@sOp?j!|-4+$t338jac6Mq@7O#>yz>@rggNx{-VFj4~_Rizk>K!ZTO##DMt3 zv`4Q!#!5@k%D0{Ka&sH(j?&nW)vH5dN~4prlKmF5-%nTAn*IKTxyIx?@lU=a6>hR)iN^=-jom#eLypv~o4QjnOLm}pH(v}(0hy3*d9 zm)C5wu}}L#t<8{b(`s$$1{;LQ{Y9Y%`hs{1lOWsE!2b2j5$4PtzmcBb(<2Vi^Ti=n zXSQ4F!YO`cj7-1E4{cw4)|@$Kwzr?jKHc+ja^|`D=ZUvL$^1|&*0SM!49BW`kmesw z`fIabH1;jvYxiz2k^&y!=MMY0uPudl0vmIq6e^>}UB0zFU!7wzITLp)%KNJ3uJaj- z<}R>MTc>ATSGz6Mk!J82=l6L0t4i!kTISX01|SP3>Zb#3mo#1k>?z;ZJ+(n;#!4=F zk4oM~lUu#1S~!iS=9x|IWK)UN>vdJRa-DgK(-b8=HFLVWdavGEWc2q(xYspe)|_hB znH-6OcDu!%pH;cq?OE*3D$foLvDMlOItn3c7Ig219KzTde235IqaJLSGHJ|+4bwg1 zjkNai<;%spUfQ*RzAWaC?)sj3P=gB8fbCF`*IeYO$&{X`O!4qrRBZ5LY-7o#Y~EmL z@M)?_cSfF0?@P}qiQHXC&lKNEOPFgfSd^b?u38?Ex2o8hmr-KPEHq@L(F-38Ve!{*K94_eCz6h6~0`Dx2K5)(Uk1O{B^Zu{S_lR zUwVdDhfkAF$FwL7A3w`l#J3wL24Symqwh=#bB0$>T+8Am%$F|#=V@3e^GPkvc=u25 zmtu>^Qu~7Kz{&%H5rJ!3TsK;s=FPDA^VT;ttZhg3 zc63Q&p5N=8HM&de9XGPO=dAN9cZL?&bILM=sJtpm!Mf7Yf%*k~6=@YGEy8$jWKz}Z z^CP%8J>ByZN+CIiiL<<~f=PPxw$*f$2{bQF=f#dH9k^nm#ikf3rY!ePD>Uk&(c7E< zP1lLP7mO*r^Czm;uV-!GocviZ0~5Bi8Q2<@OB=pWSM z^Ye)=-6`Hh4d;u8pWeBA`JO)dtXO(w+5@9|kb&!~6S*{OU#D!t&`1jFluO8CV&GCT zE9wO5omzAlW)XH^*mBVuitM&O-OM$*7qI{@6Z$t5S;w$!$$o%d(bB0Pr zYKyFe217w+5!MY*9zL9CNnYM?JeIs>x@JtnRC4P{BSpfWUsk4g<#JGRM%MLFD5<)z zuu4}zZLFA{`niK8tl;$}-_d46p|z-%mxzcBP7zU{m{_0Kv$JCx3eYDU~7W z$)k8`l0nL32v&;ltoRB*%4LX_wv#7>N8lZR4x@r+H*2srPsymTQ4ynG9sdm)_??XV z_1M3qWE8M-3%BQdIAbRF$BKAP?efZ!}Q6oGOWMQ<4l@{PBQ|6VG3KGZc zzVlb^m(wG>Mi`M5wiCJHeXvu+e@n7db74<_Xfsm&g3t6D*IA4;$x2zOrF#UcUdqPW!UY( zHlxwT62ncH+ymU*tR34hkxwW%wR5{DvKHr5gkZEnHJ3g<=>Xt5;c=d#-Wo-b%-{!Chb7uF^tp*i zIlAIie%Gq1nq|4P{*wU9C^>V|kEfJ__}D`#v^+RFwZYSqFvCXp{WB^<&ko{cC$qAX zPNw$HygH8+zSLHKBv5JA{)jicMEA1xADdCH zsrLVAnoo*nF&?Ay=o?J3z-0nu+QM!2qn1*$xzu7UGn>mEGnYvhR!bRN54;HlZ+v)2 zc%Ma^TKp=jAA9et9u*e%wJNLjmH2+oDJMHNYStudw4ZXSYfwXb&R)9I?ON1!&N*!@ z9(UW4v$1c$fPU`6dl00jhrmGx;#@`~D+|D|^zdanFBRuqy6e(Ug|{Y_32zIBCbC(& zW!p9ywskA`&`zF9_bS4<{vxOL=iNVVQtUXooAEf~UJU|Ibnot;cjG3L(B$RhHoVsW zF|0Npx-W~N@=Cjt6ALzmhLm>u(+u(J)AF=s{F$CC;J+a0{G`ZrzJ;wXW3R(k^gFsb zNJ-BXS&8^9Y@n+dH)G&`zM%UGJ0v(ShUK1uDZKEw}Tos>6>7cX%*mK2ZYx4GSI7etm{%yM2*7MZ{Ij?OiAUWEK@ zlTGweQ?Yd3z zM*oCjfN|;vhF8L<0jF%bO1(gtxNSg~=w}!SlNVt1`&{1M%-ZIi+cP*Z!Mq6Eq1W&` zj6UumrqA#9=bh6H90^N@cQO2#+fZP&$i3yGp5=MsZQU#Ka1*gxmKep^xC+b+kltr# zE%*@jNthJ4*pp265w>3%ddR5i0>qBFCsU9zql|2_g}#V)90fC5(`5zAS|k6Y3zse1 zwQ{9+_tK@iR;<`^hy2I*awE?hQ+dX)fzYGX^3S_~xohbt|D4K!@^gT%;P|lMtb{$w zmhF^jGTyzoA0gl8bnXsNKxvsm68xC&P%|bmm?$ICdl4fM;?I#I5kk`6@yDnDk6g*| zIF>JRG?Lw9<^N|}q0`T>6~Lzp$ypc&H?U|3#y2m4Hh_+AO?rhk- zHa~yu?gshWpO#W~QfR2I_ycwk7NRSTm~oe5(Qk^3ri2k=VX~vrG~@DkUMgfBq|w|i zC}vr3rD^uhU+0Cf@PRI+d`D{_sRCUOyJLWmAO1p{P}Qn)5v2)Dr&rrop~Pa_lrtllJH`m` z*j&S($0j!%O!p1ku%h924{jW}X_daHt)QkNRH07nE}Of^Si0C#SfSEr2JEUh173O& zS#!#=B^PWcs@~aVUusTp_C}=_WC%jMH7(6{+ z>gA38wT<=yU-YQ>quBxbYF;>6R=(+yw#D1Z;$oMm)zodR%+@(ll5GY0ECdjkXY_;c z12jv^o&)Wm(>{mFG`00lOM_)!1XWiB_7K96$3zal@n2XZo@Tc=S5{Okbj=y{ObvWG^Yw6cXRkh5IJzSxs$-)E1$pB~$Inrws`hNfFAIoDl-6kv zb9&!74|}j}=c;2@FV5__a_Q15dwQ;1vgFF1lCFY+u9C)$v75tO={iShszYbCg>R1C z*tp{K`Z;@6;Isa8<%(;1daqu-{OaDGYgU}<@2;&|=U>#IH|dIPwql)0U*Fc;^t%cVOG{Sy*SEJ9 zX3cfD=455faXIE@6~30C*P9!+hlYiRK#Nl7N<{)RP{ktEY`-TDdSed_i$nWVCaWfe zMzyZ}a?g^E?JGK}R||a$7Ks0((MYR5`9!?>AOHCDQ>Kk(ypIVpeAJYUKgZT_Y7Pqr z>K;pFW>%%eT4Bwsu&OgmY9#t+Q$>!g(qyW%8u4$~<$%xMpa4Hu{I`&ccN#*uTH;kcKE=>j z<3Ec$a3FF#>cD|0+KXhY_qWJQ&z+(mZUUKa!FeXe(F1t5ZSss560{iJvj*>Cf$4=Mf~`g1kw=kK^wiEP zmN#9}w{XYeTroJKt-#ef-|Q*di(Q2a(-wR37VA|DF6-~PxifF&Xj$oPCR3`{Tu{|O zFT7c=HhU-K%y-S=={}K@uF5EHkV35MGcuU>oPp$c|ZCTsg)|HEyt%2CtQ>lq; z@4^^X+t@T_DjtAmxY_!I$rmq2yi6&}u|lzE(C-^)8@u=3@$pTi`T3=r*7nTrrG@_0 zMHmd{_pDt@b%hQ`A-qhypCbqp59|bPfk&(&hlFN)E3m)*d!Y)YrXZ4x&VU;Ee5^9i ze=K3}ZA~yw?0rG9glWe5p_K!^*j=e*>*r^>otY;I>&0sX?Zl^oHe%!88R7a$|2bz> zbd>2!97XxA&VKs%;>CYnxe_(ZLJbRH1=*Vr+4>UVLDB@9)pBMRW3yT*3NbG^BR(b} zy0E8uUYAd?gXVcsovAUJXuXAYPJB%-Y)sB8&rZ!NC{3?i?JZhUVlPQ_WF+|uO7vL^ zO?@VkBWE6k9S_WV#SRs z@Fza{W8gtg7JHDR8;Ct1K#7{+=?g(41oINe7*vAk;*nvz7vM+<-ZqneE007pA!6~v zbR?pQ-XKLH7UNyDU(hdk%!o&Gq)^Tc3r^bFv~7FSc6_!q;d<*y_*}3JrPSjMx4#IP zxZ)!U)Bc$eJ@f(=CE%lEJ-z!4Irx|%e}B4h<1=ibk}Xrx{^^L6KpF`4HPPp!da&^> z7^#8YCbr;}f^C~OAKttf_Zo-?Z#9qRSQs6~Fl%LxsW9C3pL>7VA>n)Q@M#7$NtrM@ ztioHPKgL=pBFAHF;^|VYdgq;6-hMmp@CP3p#{JdP_q(uB1kNV?_~y6YzWE)702!~s zfcFofVlWoq$8pAi(_efQ?K-V#rz z+Zej|hi=p&8%>xbuy?;o??VGov)qQ+c!$di!{Q6{>+bHG=mzoP9UC{I{nJP@c9Z?6 zw9?BFq2Gjg=H+-BBwHCf3^;o;CG0qxvB~c=;-d!J21BPo;ATIJ zL0uuvy2F|jwaHM?V$~#T@ZFq=NdHgdNnsxSD|^>V7gj0JC!P>J!lEb7==lbvnaI<^ zsnBbT@Mr`64mZ=+r+j_JpKpAcelJGQ72b|83BXVQbEf# z1=AdRkhD(1=QB~lQ>t3IqbFh_8ePEsu}R= zSO(v@sKGbKV)PaH(k(_TZrOD?a~yP0gLke3G^ZOg{5D-ygB^8y1#`JN#kE+wnVQLA zhUHN)nX$Q?Ej(VMRxDMy7kcBv!CH-DzovYF#lPm1xeceR@mm&DX!eW$%&y2V6fShS z78DxH71=$;l%<=>7VKK#a;@04pls996l2c@P0gyJ{3WGEW9d?V(W)8^!VA*d^zK1B z1mkU`-~dZ98naQ6KobXP;=~v9%*VUgi{iSw5$FN8%+5arZ1kMzJpsnpuDQakbH~LW zg+)C*6SoSBCT<08?&S0I@4&?lnl_)Gg=USxnqZ?Q_s1X5$sVUc2qgL4R~~-titabp zeAI&+@so!XO^PjylQF**teC8-_(yiq8yAbT^2~}n3f!`O7$)zkbyT&JA{ug zhQNctx(Cb;YXMkwsT267BimMK>MS>fSkzgZHK(&6*=~*uN-y`un$$X9V)I}@ zV_pGWke(Ot;Av+5ewnE`?bLXBtT#2|8B%H9ag4Y1H+tr7ag1(sHQDV=E?1-7-so2A z;$rn`Y?+SJizUt`hXXg}I~;r$b(}t)-{5bi$yw;nXO36Ce__r_wIwyps#aUmQn5)q zCU=3qpeZ-EsldM=m)+7?a8+k zdrfdU?O#CqTPMlM=pW1I8u6;uUqqbd_rGM#wBW`Ex5L`ZLvUdB0WsYm<0S>-!Sze9#`2 zxIvd<&*I`$(HlndMS=E;dxc@~V%j6pg3T;2iO46oZ1b&h>l-tze-w6Y`m}zlNu~847mFNQ z+E;L|@7{vG>2PT0?s+U|de=AW3-A6*A-CiYb?v@$E zPvf!Hmu|YAhMAjg`j4FZeOB!4KAv{xX|?yf_mJ$|do zcN}%SEOLqZyxr5(@A_s#;a~19T>s5~;$5rqnPRcQ#dLg&GMUrR>u#A5Q|=519Whb} z{aEV9=?gqlkhZFrWM)(zLFxru<^}g0FZKL^*8co^eE*5IpV2m|Vm-&pg-Kofm$^}* zJ)>MMbn(aQXVK>Kv}5!fw4vl&Wn}JWuL9guzVy4L<>#Kuzs{SkgDjvwx%>LuclvI3 z_V+t)pIwt*D~-3V+_BKw$Fy_jX={DA;f<4y+kAI0g43nRdb;D>vZdcHEj#y|a(tDe zZYg99=1(iQ2hP^A5M~F}#0l}}#OBe>Ys8~R$Hp-A048RT)Gyo*?+IQDB58qnj%UVo zS+d!j48Qb>6tg)6Nhr)45OMRIe6HX^cp>HxKlQV%4 zx=66JFIdpt%&R2N=m zPs=oEVzr98uri?#PkL#qO112>gwtuJ+l0FyW5@zCq-{d;>eU>cM>Z>>m`qz{t(a}r zCOUeRs$xZyKQ2Cw2{pfz;fqJ$FTBd}XSIPcIWd1@h^j<9lBYLB_oTSB<@Fr@CmIGX z4Uyr6Q`=V&Q_$o|YX_#`q~zqJ(nZE1v$@D5{xm-}E-q$=pC&jgc)<|Mk0;>|BL>L4 zZ|*U(6&88Lg-Jl8RGwijH7A#0#^lM+r6fk1d%RzK zvUI1^FFvOOnESCAH)6%d_KVL0{X+N@?}@#9ww{05(bUw@!b=F;ouTKS&d~EOXtCn5 z|3c5du++$U?x>aY{7dNhi^ogzH}(8WuH(@4Vx6Ste0GYtDRzSl{jc@>Ye~bk_^Rak zsfeW86n)cru85TM9Pfbq|BoI<2_CF;+$~A2VuoGCbTVM8X|QaGUy%(p49yHBWY^3> zMBtR9vvDdEX3DS-f!y=BDTh^ePH7?{GO`s$MD8I(w>+oqqW`7-z6G$=7&mJv~#t4#7ESf0VC7Nhy6;z78kl@FOIe z5jfwgM81xs>B27gI*Q~eu9mLBxLv_~6YxOs-o_vnzh>9i_Zp;^ukp6tpaS_i2-hw0 zbug~`n|vKY5`zxN*P$dL=zaM*X1eZ>VMx%IGCUbLIPsJ7kV3+O zY4viO)-#x9G7M>eAR z|GIJDQx}d*8U*zbbISm1< z#VB(VFnf8q2GrM%dOPu51di4rH{-1j7&sOX_X?0axLSFFQkf+CkcPM%1|XGM{2E1_ z)}oxPT++XFKNmUXBF6y!ZRIlV#g!ye_B~skV>t9^OqS$Ks*=>EOSOaICe-Id`B@oj zAp_R3BPe%BZi$%`q}F1(&uk=bWunh4JlEn5-@u3g7W* z@(jkJXR(trl19;JjDguWM=pl4^DN`AODCQjq-vbg_B>84djTQP1UxBf!#SIY#6gp2 zGEPKH#ffJypfnBV66(o1$_(m@)QG1Wy2&dvotkiJ+Z{N8&4V||dx;O{_n9fqHK10U z_x20Tq*=sIvuO^^#lEyxsSRhW^^ilO5jr1TX^f(&an9cYobcC-Q$|~`b7K){ z!kK@IX&X+u{t&~%LVgzDa_op*fo8)wemLdrB(e=>`K=~blN~sVt_A17Eh4RWnx})V zA&Y4z&b&KH*WwACHk`}1j&|czxt)kRpNy09cHxx4^>hR6qy0EzZW$e*gLH^)gkfGm zzQ9xa571#cLRQjI@(IrG8^aMrTj@5O>UR>(`rFA*f;$E0w(Umnc@NHm8>eUBT)4Ba z_vdV!Rd_C5Nq#=gD7+A-6z-)L<5ajy$s;)T?n=Ci@ekO&qlT}TfO%;m)-jV2n@OdY z;XJ|L<4nRU=#}&;`bYXFoF;b-P7b^dZ(aNzrw06p(-3dK9;X|L0_V=%439S&UX>0f z{RQDHzI43T_%WOX7zrOK4rj97LT|;MzW>3S+$!O5MPOyO9Va4|<9$m{;4KaJ;MAFW zaZ2FLc;D8;@T9`9^n5!%$?h)tKlE<;7d+=}LWKGZye;>4c#hy~JVCRX9HIB%^t%06 zD?JU*hpXtl^gen&eSrRr>>-z6;Vla1=6!=VeHn0$pb_g-7vr5Z7vYU^9oQ#af%ltS zfwT4=!r6D1lk4G6U553uCvooHqd1B0F`UEq1bvb|MW4nQ9M8~a=|TD&eIBPPyhvZ7 zFXQ}{`{}FnHF^l=GvT{SNxd%gMLDf&`;@S^mDe_ zkNv}6W9{u+ybGp^oI~CtZ{Uq^Z{g&mH?d3oU2<4iv1U`(<}Ou5e@Ex0!2wmpVE5oa z*9KKZO-JYGNLN_Z+QE^I&d#oZ5oL8}2QcupX|Q8NS;O-wYdA2hCV-}@ktx;4ltu@7 zT{V?eDttR#`L)uw+Z|RH$P!e)rehNxRaVZCc$p(pm?Ke8&Kc?LTiYdN^yDe$an6+U zc*!!fGH4#iDI29*jWcd}eTtfaZe#a18s(xHSb1*wc7?K4Dxh^%0j+XPTBVuj$~I0vysfi$ zQ|D;^y1uS0p>1n>yEb(V_YN!Dx;J%f?h0QzeN(xVgCss`^OehZ_ON9EF)A0@hlibc z$_`129dg+nayxW%Nf|n)GpyxRQFieR$}avZtSfL|)g_bYn$?umQk{JT{M+UBgmnk9 z1ofaPmA#x`Xs^9*u(NMbbAzf^Ce$mpXfKz5(7RqDD{+bwh~(5Pclqi&tPsoXlVQ45sYc=oVu0f8zz zSfjebJNOOxnsddkV>+g3aX?hZRB19Ur_Zk=WQ~x2NZj)uVI8arat2-xey!^0l5r)~ z;Xjld&lBDqV8Ro@ySCfI?t7xAm4W|Oj+0-RnhOQeN-Nb<*!@XPhMd(1UjK?#q9T@Bn85tY2vkN&VyOeVByNvF@ zX#XaT#x7(ub}6B;E3T!^N~s$)?vzu(fM`1=82GZiMHHo5I<|=Dr*h#X$j#X#R8h zc7W;>M*i_MxRrIgT%ORb;Sm^(k*>8tHKUsbSykN5$_n|LTOhZyLPD2C;C8!w{JzVb z$G_c9{_S*D`cxg8HVuxA4oUY5{7`uO=Df+E{7?>BJ2*BVLkc7aaMQtuKNFf^{;66nYFh_g5F_jSfv0iQhR=Z?r#gx%hpWS0k-` zC&Uyx>4>=FBnxqyk`KKp867%&sFn-i1uo58lz*E`^Ig_rX|71M(q4Ja)M>haq_-$E ze5ln}50A-j_|VH;x&p-=ZINsExv?WGi4Pq<%rfLmm!NF|IXUNcSQXp2KyS1^ktb{O zM8@KiUJ<`BEPmt4_>B?q8<*>i_9wC$zwf-bjbT1`Xn~e6;re@8+o8~v;tj$G$C!%O3e5dzKE#7x{Ky z7`*DEvF+HB(z%ClA58g)H+U<3|H=P^p@WO&0tx2Jt;{rNg{dF)@&(Rt#Z-qGLm zw{uNi26Zax(!I-jT?g@%=KbBeb=&{*`Q5w!BC*FiJ#u^Gj~Rbfq({+NZ=O|jR-|XI zo*6yw?pg86J-vSD;~Dtq*^}hoZ%oFh{sjY85A4jp$G}T8rVN}i@Gkz3@?XpUt$`(j z_MoNm!NI}R95wCiABH%GWDFUJhGjI|jds)EsGELVANq#pQ@75bSA8A5D0;o5xseg> z!PKz%3=b`!e{~%-YZZOE9A@^NN-u94HBNeUS@g_4qBrfKw=bzoNJQ9$%^dHT|to^v?6?k6+Il^f%BO z_s|pnSEG=RR^Gx`#bkA-QKEiNe|jIi=;@3k%v3XtgY=l^8h-l2i}~XE6Y2@$kgl(X z=@G9qg3=deBw-_O0#{SM4QA9hViu`%)2I5FLDkO;s|@oS)!(d81K1vD)~i8gwHnO! z5W-9_)cjCg!}j&&1~uOFsEKAo{hL{)vdpM@%KTD2ZC27JR?NlV00|%wB!Og*0-V4F z+#uEbl9|1~G;Sp)lfYy!1x(}XnbXa%F$2s5v%vjeHt}=JppgaUf_dNp@F2MzY#v8* zv(3H6A+&iI1VIS=4SWe??5GM~$7k--h7mon9>31%(jDpa?aesr(Q zT*{J5S#l{$E@jE3EV+~=m$KwimR!n`OIemumZiq|W|^_T+-E!j9tDqqh2U|p2rLFm zz!P98SO%6OwH4qgkPSqNE5S2h6?hipfak#T;03T6tO0AmIWN|g)-A+aGyDHExUf&rt!Sa2iK zn}8JWBb)}ZSf2}{p5|CuFtp?V2_O+9fn<;ZoWKR#`ix=DCPy4$D;-8ztgM8QUvO>F zvoO&I69X{u8?F(7c_p-v>73&TdP|3&eM~=Gj=<$=j;ut-Esq!dQ9;M2oRC$yt4{l_`jcmB_ z0cQ@v;RZO|0EZjka047}fWr;Ozfn(k@5ZNhBL30Enm_IU8E zZXi~8*^O&@xK>niyf3w|AL|+B4sury&m)X7cjcOgxaJYA8ReRVa6Za)bJZBmay9ir zq&=Q_e8wRSQZdOp{=7Vhmqa@Li6lt`|0ge#SBr3hE@aTOm|sf^iz z60Q=~w%{tRa5Y!DfwN9Pw^oU^#!4htsb#>wJ$AYS=mftSI_7S~Tr@l#X$)D%B8#ZOJ~Q&arZ6hAe^PfhVt zQ~X%mqgdRdSlpvn+@o0BqsAd>^kEPLA@DcwC8z{dpc>SGuK?E42!o@b7JLnkfe2-- z1K)yr@ON+=G@_+skdCFcEUakOi)Jfgn)RXCApG&8S-6U(vtYr~)CXbyn{b40>|&F} zd$9O%5PodoEC)GDIcE`zE1rX}@NLdg13&%*3;nSg;D`NhY4%$@Dd7sM;7LAg%+<_K zX6)PGD&Jtg>p4Rmc6%Ro+sktfN6fE@jS^c)?t<(IuxB?l_9*vH7Qo;~z@y+Xun;^B z7Jz7(RsILl{0BgAd2x!!h`93_ct~XJK?EK3W+26vRG> zt@x5&%QifpBSspv+Q5Td&T<8K3S@()!AkH9SOuO1Ip8_)Ja_@D25Z1tunw#TF9IIP zr}v2W0Cs_oK_MstpMYYp8|(!opbRi~8y>IpsJ5`&&o_CLUM8Tk#+aUb#2vw7lXkua z%UMZ_?L(hCwY3ymV(Ii#_;C!qZbz?PJTmDMZ{yjJ@$fJO8}*&c!>{@h(~t5GWu}?Y z@M{eFI_NXE!GEqMe&0c^7KTA`HSq~P=e#9csSXc-e4R4YIq;?d-Za3Q26)o|ZyMlD z1H5T~Hx2Nn0p2vgn+AB(0B`6KfHhz(SO?aF7r{&5W#9q3z{j8v6oF4bG1v|Ef)Y>$ zj?nf*%)`|2!_@J^)bYdA@x#>d!|k1SAx`)Aax~3T?tZGg4C5DbtOn$2~t;rl(~j7*HGpf%3MR4YbbLKWv-#jHI%uA zGS^V%8p>QlnQJI>4P~yO%r%s`hBDVs<{HXeLz!!g4KVl>?9xWC3A_qC#P0$hgF;XQ zJ^{sGH`oJz_7awWGO(YPo4En+rsYh13EcM9;b4sXF zKCIF~yper)A^Y$`_EE>mu}a5y12O~FSU!NXs6kTJv)3nmLOAmXcoaMa7J|pYBCr@N z0Z)LXU>W#lc>F)b!;g9M+?(8k9nGLD1MxtH(6(nHmC<-4fzh zbzjYkuja#7^Wm%c@YQ_yYChvZa@ZHEGSK{9w=|X>#WqTR&L?&PFGTvO72KC@&%BZy zKu6FCbOs!a*U^aA(TLa4h}Y4G*U^aA(TLa4h}Y4G*U^aA(TLa4h}Y4G*U?DMkCXG` zx7k2syb?SER)J?h z4tNec4_*MP!5Xj@tOM)8i{K^jGS~piJ%qc!$Dj}tfloj&*bVlA5>N(cH~8M5)Ql)K zLp;ky&2wp6h3kXa&V=Xx0zc*$y=j}p3y7+fluh)_yOAIPB!VQ63{rp-xPTj^(h9T# zw<4uUU^18jrlIrc_&+niOfU=F4`!p=IoLMp9+E3Za^*;_9Lbf(tg_@x#v|%sUl?5< z)Vj_h?lp3^nUeM3YCf*!<7z&x=8IjelB-p6wMwp5$<->kQmbPMZFx^zwUVpuW~?Qh zv6P-%@hDe3$}=3N&;JPWh>*jUBOk(|2sw<9!w5Nyki$q!9*2>~VdQZbc^pO_hmpr& z>}DNyvktpihuy5h4~*gmM)3oq_<>RUz$hh&(ndsSBciksQQC+oZA6s1Bkf?kEd5&3 zR*$1x-9}080QZpQUVsnC<5{P#^@Ei1U@KaeQnuD3+m9}aDP=LGET)vjl(Lvo7E{V7 zrHoR_D5aE~*W+u3$$dRc5KI0YdO3zAub}qJ2$l47DqzLeO2#FmUnw4}&5o6nVjJAu z26wl?-EDAp8{FLncelaaZE$xR+}(!NsK;v5V>Rlr8ueI>daOo0R)ZP&_e*qr>56A2RAA>?r1U>=9U^mzcO2DV&w~WxsF@FW+U?13T9-!?$K-+zQ zw)+5W_W>+YDHf>|i}bzfgY~g`8TDAFVl*$~Ix;>f+^vtb;}vLMMx;vUVSEV-Jc_;| zEZC-QH2+Keme%cN@H;Sp{_bS^Rl}fa7*q{|s(-}#9crTNxG6n{cKr%=HPT&G=kc!=H2Y$^x zsFUq?unqfNL`^QCCYMl?OQ^{u)Z`LsatXP$?2e3GNRCB^c7Nsu_Kzp$69^|VGWt_m z7(co6W8*Ri57yF0%jV;uaAoeGq&q0-4obR%lJ20SJ1FT6O1guR?x3VQ zV9O@-unDVJ9@9l@-Em)WqEDW2s;#+OSx7vzt zwH00G!sa5_Tm+koU~>^{7Avp?J#RtJThQ|s^t=T<2mf zLC$`VvmYccek2k^B0(e)L?S^X(surMM~4w<2S@;kAPFRc6yO9d;0CGYM(Wr`UB_lq zV@ENHJDPE`v4rCoLldr8_hUB0lRux}$z3qvZqRg(ri`(&mgD7Zd0@-Y*#GtznTK

%3*eCj@W=vqWC1*~03KNYk1T*k7QiD5;E@IJ z$O3p|0X#CXIRPXUz{3jQVFmE80(e*fJgfj7RsatxfQJ>py9(&hw$EtSeBg6%05mc_ znhY|`^{PLk8UwIFazAYdV{V!B_kV+J8E0;WJIk;yf25r&!u#>^Om`ZdPJ4LU0dxeN zKxfc}_^#kgz;p84JIG{gIFqNTGwFL}@^o}2cWpAchn{Kl0=+>W(3fNTf&O3s+k?Q_ zU=%01twPIo|@T)g$0h@EBMK9tVrSVz2}}0hWSgU^#x$ z3Ltkiv%%9~C3ps`0?&dR@Emv^yZ}~%HDE1R2iAiZ!Asy}@Cv@vMz9II3SP&1`2ZAv z55Z3G7w{4AkbW2V7!-mc@ChgeyTM*i0?L4w^nV5AU?12|c|QX_@HsdD8nKhfARSB9 zk9wK`K8(Z1xzU0G-C|VAo^ zxsA5xcEURd@1YI47ffe;CYS}XVZo(npcW0(qJdg8P>Tj?(LgO4s6_*{XrLAi)S`h} zG*F8MYSBO~8mL7BwP>Ig4b-B6S~TE610FQsK?5FRD)!+va67mI+zIXizXx}Nd%(Tm zJ}`}zliZ=Le6*F1w(`-I+zW0?TeaMC$Ussa)d${Xfc|)21Gp4leGc4leG zc4leGc4leGckAw{~MCXye4MEywAk3{`Q)Q?2{NYsx+{Ycc0 zMEywAk3{`Q)Q?2{NYsx+{Ycc0MEywAk3{`Q)c;Sh&p*ZH#_XwnBI0y=@P+s?h18lL zwI)cd2~umM=iZuk+Ip{j6joL4t&PR%JK#58j^Zw`la_faI>@I+h(96sdW*5zZ(_06 zql33}iZ^3*#!Cw6-Q=-1o4xC)8%6lf+(+Q9!ugyf18-j1hJlR3WKyrP=vm1926;kF z?hn>dyW|NTu}M6S6}!5O_2-cmFPS?#UAPz6MGfE%&p_)YVM~d z@?98^2$DcDNC8gZ0&b9sU1qSQN&!+SKq>`DrGVO0 zhi+xWx{fiKI>uz`7?Y`EOs0+zjXI=Lhji+YP94&zLppUZ5=v& z50&Jhk~~zBhf4BLNggW6LnV2rBoCG3p%Qj}1v|eYFU?!RY4lg7(?ZSwGr=ryKbTE9 z=a4oF@Wc=K@sJ-6`SG-QcYxN7y50wA%UTLcc`Bq*=UqlxWrTGixzED3B(moydxFHs zT|@5hBjcO+jN4l3so~B^{gyX$d-FuVKjlZ?PXDMw{7kvm(d-91+x#JSgQr>e!36ip#EK>rx)=Vud^V*g?arFt_V?c`76BXBL>q` zwxY#P^k&6U-}%Msu`MZ(s>b|?nUeY%OPm4phg%?*VJc43dAkd>u>AjW@hVU z4Y`FRWGxJbk)_U2vH2$F3!8s37csVJ{nBG$ETC6qn4dL|lP&t*`WGt|PtITkPU~lt z$C5z29GV{-FBP+xT=JZb88yF`(#uchze2B7SPT^g*n4%7pR_Q4G9P}@>03>Vz0*JQ zo91DwiHVdNXdlyB8cSxP5$sy4KXWsjqMn%aa?S0MgiyG-6I&sI@IzM)_yDYf1U%Lu=>%T`K`TMYD;TBs~)$u=l?FQt-Q9K zBQ5_pD{R$j>RF3+ruiA{x-YTR%$Oyx(wH0YmJE$@%R04|t9W*q`^-HtD-yeE?6^jq zJF#f7dcs;;+K{&5L^;e&l1|&nNc@%TQp7A_n+&(p{ge>T+F+#Uq+fICoU}VGBEBte ztrfG&&X?6rXqF^CZ_Rd`w1E|_F?S-1Dzm|Aky#h*$TO7E4i$)=%&q1# zt!bv^>3Fl?r~aDWeQFI<9%H*B7*|baT=h!EXh$=S zp2<5<*D)R|Z$^z|l9!2cCxK@eF6B+A`HY_~;91j2`rX4hJQ@9(@d)ony~n$K`TUpa zx1^TwROxP>PTgzpOoDz7aUIX=afeO6hxob?VTAu}{q|Iz;+sai88wReOm;Af$ynZu zx{-IH{>(d3zcb!fw=vhqhw2XAiQ1{(iTX&t6ZKy*pNLT;^Mx?`i@d|Qhj~G=^?Q{U z>bJg7+XKFci zLXO9|qxBuq?53ruv>eaUay(1R@fTW-U9}w3k>efQF}V|I_SDksDf6`Oge^0*@U^Jv zylvK7zirl=*;-~XuiGNE$Y`hEIdf|Hc14P#w0xahw;g#(<1g>9b|#lH_X^)m)$g8N#+q;+#vGu=GQj5P`9W*M3jt+>$2%jEqP7}#0sz{L~HTeyGmI{#$N zUzgT|OKT!oYr=sZL%e5}qBYSWP7~a@;_uM!Tar#=V<$(aJBhR(__n(nD*dht^6j&3burS9Bw+ z?wj`d!dctc>y=v?ZgEE3w=rwUJ%-kHPs)`Ivj zJ8pZk{Z3j@Cw{5( zdw|cSLwj4oS`fcYI@cn}H=z|YZQJp7*w+4JYsZQ6wBuZzCB5`95~-art8Mu|sc*?F#a} zkhFgTUs?O4Ub_CS<<;mq77Oj|w!%}Sv(D^xxZ87fCy=l!$Z((S9!A(b7TVhq_KMp- z(tU}06nPy-+|A%>E3~(D_%Ct$A96qHUgBQiz9kmg+bzSk_TT2d+dadb<+jtW;(Dt& z{~3fY5q6A)_O^ttg6&`{crzB-+wtN1A`N$u`=d6(63)NWeZYOlUFj~jLVLSqc&hy; zr4MuE??5CL+S_&*i%(4?4{p-@V1@R!9i9|V`Q;~a(V@LUdy>V_IxaO1&fX-qcyC6Jnvg-7-AY{+8+IbDf1?UM#e??XYEh z%wC+Z&l@<7Hcr|r{Zs08W{qd*V8#{4JH#oz)+_55>G)$3qwd%1_e;FGU&o~D^&xsW zSnnOIkL{%QF8ZOGl#BJ=#S&vIlQhOM9fPdcJ6h5h+4|UvtaZJ&rz4rY7we-o>zENb z<|cjAbe(>hKL2#Rce;+(=T}R0OrtCvv;v%Gm`*=T$DgZ@I$OsK*Xx6Hn!$SSKpk_l z-g~o-d5!!j^$)%N4;}vxo&FNNeu<9nt=D_&b*pr}9mhGUH{aLedp$b+=d!Lo*YTh0 zm~nh5Ryig*x)Yyi{=jlAeGtXWo8NQIohr=wnF-8Bqk71(#$ritY?7t=t(?JFB4;y} z=)Irlm_7Q;a_54p>y*8uM8=YYPgyRu*7bSz%XOKvQO@(Mj`^F8kvA@t8mIF)LQCTU z9doXZ8K_G%Mwexvj$ecC$~-zc{yH6hu8!BUS~J66Yx zrQ?60W4b$r6W?9O43(4)zHms)Fxl(quhXp6F>CdC*6Nr{y`HJ#GbP6OR$`2AbmV=b9>Gjw2`WV)e>HS(Wx>!9NMGt-iG4||3!aSL=TY5MK zeNlljE+bUTLW<%N2=PUK}=rkC^da)n;z=;cd#IY%$I>g5M4lPG^X`o!J% z)BDm47$F+v>my=)XkOF+$HZpyHeIZHn(`&l&g_?&pb|JwGJRng6G%h)9ne%K_FA*C z+A}l#v7Vxr?eww(dz92A zs32=UV@*;kMi?*zdW|}v67*U())MvF&sh^rFf%`E$$AZIrL1$OQgbh4++&Yp0$&Y& z(y`Uyaa1JqO1LaxO2UkU`3X4*rHS1VFHF2G#mh8PS2!m+XFH#CZgg&U`Z*(~VU)wc z8}4J(FI6u_CH{?(x_|JcIa5r4a>(4#Dv1#oW{Q?MqM0B1ZPFcJ=A_sx(K0`@>a4n` zuGWmus+&C*w4Sy3Ms<^(y;x=~j?LSv{!?u~F)we6Idq$5&?Q%Ak~_)cX#Up7m4gwh ziO7F4|3pShm!S_CiR!4wpt@4`J;?QQ{%05!{Lj=QOWpLCQXl4*9$*Y)cIm;!AT^rj z_69TC^Ht1iJy}gLhN#;a(aU7+;;qbIEiHeUzRBTh9e;bH_oA?_u=f{0WTUU1vzz1j@LTXY7QTVkczOO%bz|Ety+OTMwOc zrRR)OI_FmEWNpJmnwCVZ(g>gJZL#Q5LOX@nce}*GJvsZ9*wrmLIEj-HAjyNncpWLp zwXA(^*2NNXlr={lR(lI^8;m^S>{J$)l`cn9oSZQcEl);^^2C$9$2w<*oRiUJIgjMn zp{`|ZB*4Bli?goeij_-p+Zjlh$jF*?oZ>uIxts65_{4te%+_(~XuT=-UG@3w+$AFm zq=_~&$Vt;V&nDJw^kPX0brIaSL1m~5bw~>jGcLB`Sa)!AKV4!urY|~{@myabk~LI~`_AN(c4DqmPh$%Up?xQoD5xm(t6)@B&gKYH3KxrCgFSnQ_pw z2)D?*hFZo7ot-F6!W3fN3GHChAm$*a-og$Y za2!)RV1buEqnJDqo5!f<2IgLyK+G0>$HQ9pP)`etmF&$^?>0N4fFr$(gTBTwIplhO z?CAI--fQy+<|AqKh}>pJ?B^PXPH~OxZ649qHS)1UO(j3XjQJBNp^WAh=<>&xU>ogj zQ`)v=^Pg~`DP3D<%WIY@Ugq)F{3Cp7I#+xuTQjdWOVOGp-f1(1EtNN$rD#pkG6#H9 zKH^i@=lD~z6qY1~QB9oLN;}+ij^?s{1FxiMUz2SAKpks}w`D1wbyKV@l`YhcrdZCe z>&iLUaJhHkfjc?qbUFO?z&BZMp1=FiNK-lw$LE~P0_vaxhL;gqR>gtcNNYLEe6tp^ z$;&Rpx0aU5`ks+ho6q1$PrLn{PKzUV`q)F;ca^kx(&Fe=&%T~`BMZobSeRuo%OYoz zc==kJ(rv9}i|lx@Z;G;g)grxoJ&jpXxvSPZ{a|9HEw`^JbE78Fat^V+@<4o&SV3&$ c0IXS4s-9S;`_=5$diLINZ);ELjc%easG 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 L)l*YfZ`=O?ZCSur literal 0 HcmV?d00001 diff --git a/public/fonts/dm-sans/OFL.txt b/public/fonts/dm-sans/OFL.txt new file mode 100644 index 0000000..4430b85 --- /dev/null +++ b/public/fonts/dm-sans/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2014 The DM Sans Project Authors (https://github.com/googlefonts/dm-fonts) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/jost/Jost-Bold.ttf b/public/fonts/jost/Jost-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3b1f2ecc02ec2be78b1b3b241fa59205ab8f36a0 GIT binary patch literal 61052 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�Tv8k6Y2CSL4BqOn&#D8Z@8yv_;S<3J{25g!DQ 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 literal 0 HcmV?d00001 diff --git a/public/fonts/jost/OFL.txt b/public/fonts/jost/OFL.txt new file mode 100644 index 0000000..85b6b99 --- /dev/null +++ b/public/fonts/jost/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Jost Project Authors (https://github.com/indestructible-type) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/manifest.json b/public/fonts/manifest.json index 66caf0b..dd0d9a0 100644 --- a/public/fonts/manifest.json +++ b/public/fonts/manifest.json @@ -1,6 +1,44 @@ { "version": 1, "families": [ + { + "family": "DM Sans", + "folder": "dm-sans", + "license": "OFL-1.1", + "licenseFile": "OFL.txt", + "fonts": [ + { + "file": "DMSans-Regular.ttf", + "weight": 400, + "style": "normal", + "sha256": "fae5cfcefb70eaa3bb8fe15d04bcc182c3684af679441d09149c4e4b28f8b909", + "fsType": 0, + "upm": 1000, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "capHeight": 700, + "xHeight": 504, + "hasRupee": true, + "hasTabularNums": false + }, + { + "file": "DMSans-Bold.ttf", + "weight": 700, + "style": "normal", + "sha256": "f43632dacd8210c8b546cfe7746a4996811c617e6d3d93eea28698016016c1fa", + "fsType": 0, + "upm": 1000, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "capHeight": 700, + "xHeight": 504, + "hasRupee": true, + "hasTabularNums": false + } + ] + }, { "family": "IBM Plex Mono", "folder": "ibm-plex-mono", @@ -205,6 +243,44 @@ } ] }, + { + "family": "Jost", + "folder": "jost", + "license": "OFL-1.1", + "licenseFile": "OFL.txt", + "fonts": [ + { + "file": "Jost-Regular.ttf", + "weight": 400, + "style": "normal", + "sha256": "8b458be71d5236e58ee7a9660ef6197116ea78c4120fae94305674f5029423e6", + "fsType": 0, + "upm": 1000, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "capHeight": 700, + "xHeight": 460, + "hasRupee": false, + "hasTabularNums": true + }, + { + "file": "Jost-Bold.ttf", + "weight": 700, + "style": "normal", + "sha256": "1c0db6c9f209c5f1f9ebfddee69dcb7c13b682a3f0a21c6ec9797ae1309ddfa1", + "fsType": 0, + "upm": 1000, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "capHeight": 700, + "xHeight": 460, + "hasRupee": false, + "hasTabularNums": true + } + ] + }, { "family": "Montserrat", "folder": "montserrat", @@ -467,6 +543,21 @@ "xHeight": 558, "hasRupee": true, "hasTabularNums": false + }, + { + "file": "Poppins-ExtraBold.ttf", + "weight": 800, + "style": "normal", + "sha256": "f2ab17c1a63a0ecc12c2461848fc8a469395e3cd2d641803e889c643d9f958e1", + "fsType": 0, + "upm": 1000, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "capHeight": 709, + "xHeight": 561, + "hasRupee": true, + "hasTabularNums": false } ] } diff --git a/public/fonts/poppins/Poppins-ExtraBold.ttf b/public/fonts/poppins/Poppins-ExtraBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..167667d203d98f5b27c3ff58d486eea9c5287fe4 GIT binary patch literal 154836 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%0ATH<@pmhBcb=7uojRlIwx=XWZ`}HIaUp?q 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 IWN+wy0G&?6&j0`b literal 0 HcmV?d00001 diff --git a/public/templates/citrus-split.png b/public/templates/citrus-split.png new file mode 100644 index 0000000000000000000000000000000000000000..87dfa377b7c404614e60ead6e68d766e4a97d303 GIT binary patch literal 79927 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 -8Pq41Oxy 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�o@0>4Z5sBD9*!bGo?KPf9lQ|7z>G{xRHKV{^M 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 literal 58960 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 gLVm%z|7%vqzC5Ox4U%DcR;{X5v diff --git a/public/templates/teal-swoosh.png b/public/templates/teal-swoosh.png index 3d3d2040c236982e68898b75c7920d5725cadc76..4b1304f6863a9dfc36e609725efb55cf3a354047 100644 GIT binary patch literal 66156 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 Dw3^}P literal 65534 zcmc$GWmHvP^eu{rk^&;qAl)Th0@B?LBHeN6R1}czE|Km_H%NDPcXv0ujlchUAKs_; z?JLDnS&;J+6T zL2;#5;LH7$!7uRo8AL%;5T{dF`v?R8nI^}#IO6{yYsi~cpSNTuh zg9t&y&3&52YWB?(w}{H?jTEqS=k)-GWe1Vgae{~?Tjb!`Bf8?&ZQy^|gh^?%oG(BTCx0G6G*^v) zfKVOg@qKPiD=#l^=1fZ>6WyB7y1u?aiXg71xA)p{TftM~GE#ik^0nz-xwD7)1Z9

uI5}mh!=;Y0FGvO6;3z383p+ZpajJ7hMMaf& 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�AOcuKaY@MuBkK|Il!e76+7MoKa-QcI=rRWNm|~% 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%0D=-l`2!PYit%7 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 J{@Bzl_J0p?XY>F7 diff --git a/scripts/templates/compare.mjs b/scripts/templates/compare.mjs index 5bc9ebe..82d3bd3 100644 --- a/scripts/templates/compare.mjs +++ b/scripts/templates/compare.mjs @@ -1,20 +1,20 @@ // Side-by-side review of the Canva-based templates: the Canva original (left) against our render (right), plus -// the multi-page, Letter, long-text and logo-variant samples. Run: npm run templates:compare [-- crimson-grid slate-band] -// Output: /tmp/invoice-c4/ (override with --out=DIR). With --numbers it also prints text baselines (Canva vs ours) for tuning. +// the multi-page, Letter, long-text and logo-variant samples. Run: npm run templates:compare [-- purple-pop citrus-split] +// Output: /tmp/invoice-c5/ (override with --out=DIR). With --numbers it also prints text baselines (Canva vs ours) for tuning. import { readFileSync, writeFileSync, mkdirSync } from "node:fs"; import path from "node:path"; import { CANVA_DIR, loadCanvas, loadRenderer, rasterize, textItems } from "./lib.mjs"; const argv = process.argv.slice(2); -const OUT = argv.find((a) => a.startsWith("--out="))?.slice(6) ?? "/tmp/invoice-c4"; +const OUT = argv.find((a) => a.startsWith("--out="))?.slice(6) ?? "/tmp/invoice-c5"; const SCALE = 1.6; const PDF_NO = { marble: 1, highlighter: 2, monolith: 3, linea: 4, monogram: 5, serenity: 6, "crimson-grid": 7, "cobalt-stripe": 8, "slate-band": 9, "teal-swoosh": 10, "tangerine-ledger": 11, "purple-pop": 12, "citrus-split": 13 }; -const ROWS = { linea: 7, "crimson-grid": 3, "tangerine-ledger": 3, "slate-band": 5, "teal-swoosh": 5 }; +const ROWS = { linea: 7, "crimson-grid": 3, "tangerine-ledger": 3, "slate-band": 5, "teal-swoosh": 5, "purple-pop": 3, "citrus-split": 3 }; const DARK = ["slate-band"]; const args = process.argv.slice(2); const numbers = args.includes("--numbers"); const ids = args.filter((a) => !a.startsWith("--")); -const targets = ids.length ? ids : ["crimson-grid", "tangerine-ledger", "slate-band", "teal-swoosh"]; +const targets = ids.length ? ids : ["purple-pop", "citrus-split"]; const LONG = "Unit 4, Third Floor, The Grand Heritage Business Centre, Plot 1187-B, Old Airport Road Extension, Opposite the Municipal Corporation Ward Office, Domlur Second Stage, Bengaluru Urban District, Karnataka State, India - 560071; Registered office: Level 12, Tower C, Global Technology Park, Outer Ring Road, Marathahalli, Bengaluru - 560103"; const TOKEN = "Supercalifragilisticexpialidocious-Pneumonoultramicroscopic-1234567890"; @@ -45,10 +45,13 @@ async function main() { const items = (hsn) => NAMES.slice(0, rows).map((description, i) => ({ id: i + 1, description, mode: "rate", rate: 100, unit: "hour", quantity: 1, amount: 0, sortOrder: i, ...(hsn ? { hsnSac: "998397" } : {}) })); const sample = (over = {}) => ({ name: `s-${id}`, items: items(over.registered !== false), signature: true, invoice: { poNumber: "", notes: "Payment due within 30 days.\nLate payments attract 2% monthly interest." }, ...over }); const render = async (spec, size = "A4") => { - const prefs = r.prefsFor(size, { templateId: id }); + // Purple Pop has no placeholder, so its logo samples turn the opt-in on (Linea's compare stays logo-free, like format.pdf). + const prefs = r.prefsFor(size, { templateId: id, ...(id === "purple-pop" && spec.logo && spec.logo !== "none" ? { logo: { show: true } } : {}) }); return r.renderFixture(spec, prefs); }; + // Templates with no Canva placeholder show a logo only when the user turns it on. + const OPT_IN = ["linea", "purple-pop"]; const withLogo = await render(sample({ logo: "real" })); await side(canva, await rasterize(withLogo.result.bytes, 1, SCALE), `compare-${id}.png`); const noLogo = await render(sample({ registered: false, logo: "none" })); @@ -61,8 +64,8 @@ async function main() { for (const it of b) console.log(` ours ${String(it.baseline).padStart(6)} ${String(it.x).padStart(6)} w${String(it.w).padStart(6)} s${it.size} ${it.str.slice(0, 40)}`); } - if (id === "linea") { - // The opt-in logo band (off by default so Linea keeps matching format.pdf). + if (OPT_IN.includes(id)) { + // The opt-in logo (off by default: Linea keeps matching format.pdf, Purple Pop has no placeholder). const shown = await r.renderFixture(sample({ logo: "real" }), r.prefsFor("A4", { templateId: id, logo: { show: true } })); writeFileSync(path.join(OUT, `${id}-A4-logo-optin.png`), (await rasterize(shown.result.bytes, 1, SCALE)).toBuffer("image/png")); } diff --git a/src/pdf/InvoicePage.tsx b/src/pdf/InvoicePage.tsx index cc4dc7f..2d337ec 100644 --- a/src/pdf/InvoicePage.tsx +++ b/src/pdf/InvoicePage.tsx @@ -7,6 +7,7 @@ import type { TemplateDefinition } from "./templates/contract"; import { AvailableWidthProvider } from "./blocks/AvailableWidth"; import type { DecorItem } from "./blocks/FirstPageHeader"; import { PageChrome } from "./blocks/PageChrome"; +import { Underlay } from "./decor/Underlay"; /** Height the footer strip takes inside the bottom padding: the text line, a 6 pt gap and the rule. */ export const FOOTER_RESERVE = 24; @@ -32,6 +33,7 @@ export function InvoicePage({ frame, model, template, children }: InvoicePagePro const ruleY = frame.page.height - marginBottom - chromeHeight(chrome.role ?? "footer") - 6.6; const bandLeft = `${model.docTitle} ${model.meta.number} · ${model.meta.date}`; const items: DecorItem[] = [...(decor.everyPage?.(frame, model) ?? [])]; + const under = decor.underlay?.(frame, model) ?? []; if (chrome.rule) { items.push({ x: pad.left, y: ruleY, width: frame.contentWidth, height: 0.6, children: }); } @@ -56,6 +58,8 @@ export function InvoicePage({ frame, model, template, children }: InvoicePagePro ...(decor.background ? { backgroundColor: decor.background } : {}), }} > + {/* Painted first, so everything in the flow sits on top of it. */} + {children} >; /** Height of the `headerTail` TableRows draws under the header row (a rule and its spacing); counted in the header height. */ headerTailH?: number; @@ -108,7 +110,7 @@ export function planItemsTable(input: ItemsTablePlanInput): ItemsTablePlan { for (const r of rows) if (r.length !== columns.length) throw new PlanError(`row has ${r.length} cells for ${columns.length} columns`, "invalid-plan"); const { widths } = colsDetailed(width, columns, gap); - const inner = widths.map((w, i) => Math.max(0, w - 2 * padX - (input.padRight?.[i] ?? 0))); + const inner = widths.map((w, i) => Math.max(0, w - 2 * padX - (input.padRight?.[i] ?? 0) - (input.padLeft?.[i] ?? 0))); const heightOf = (role: RoleName | TypeToken, cells: TableCellValue[], py = padY, bd = border) => { const hs = cells.map((c, i) => cellHeight(measurer, role, c, inner[i], input)); return { lines: Math.max(...hs.map((h) => h.lines)), height: Math.max(...hs.map((h) => h.height)) + 2 * py + bd }; @@ -144,10 +146,13 @@ export interface TableRowsProps extends TableLook { /** Content after the last row, inside the table container (the totals). */ tail?: ReactNode; headerStyle?: Record; - rowStyle?: Record; + /** Style of each body row; a function gets the row index (alternating fills). */ + rowStyle?: Record | ((index: number) => Record); + /** Style of one header cell by column (a filled cell beside an unfilled one). The cell is as tall as the header row only while the header is one line. */ + headCellStyle?: (column: number) => Record | undefined; borderColor?: string; - /** Text colour of the header cells. */ - headColor?: string; + /** Text colour of the header cells, or per column. */ + headColor?: string | ((column: number) => string | undefined); /** * Drawn under the header row inside the same fixed group, so it repeats with the header on every page * (a rule and the gap below it: nothing under a repeated header may depend on a first-page-only margin). @@ -167,6 +172,12 @@ export interface TableRowsProps extends TableLook { * width. The header group is fixed (it repeats), so the bleed passes the safe-zone audit. */ bleed?: { left: number; width: number; bg: string }; + /** + * Rounded "pill" rows (Purple Pop): `width` is the pill's outer width, the cells are laid out `rowInset` inside + * it on both sides, and the pill itself (rowStyle / headerStyle carry its fill and radius) moves `indent` right + * of the container's left edge. Plan with planItemsTable at width - 2 * rowInset. + */ + pill?: { indent: number; inset: number }; } /** Extra right padding per column that stands in for a grid's vertical rules, for planItemsTable's `padRight`. */ @@ -179,19 +190,20 @@ export function gridPadRight(columns: number, ruleWidth: number): number[] { * `wrap={false}` row per item. The container has no padding or border; those go on the rows, because * the repeated header is positioned against the container's top. */ -export function TableRows({ columns, gap, width, header, rows, roles, align = [], tailH, tail, headerStyle, rowStyle, borderColor, headColor, headerTail, grid, bleed, ...look }: TableRowsProps) { +export function TableRows({ columns, gap, width, header, rows, roles, align = [], tailH, tail, headerStyle, rowStyle, headCellStyle, borderColor, headColor, headerTail, grid, bleed, pill, ...look }: TableRowsProps) { const padX = look.padX ?? 0; const padY = look.padY ?? 4; const headPadY = look.headPadY ?? padY; const border = look.border ?? 0; const headBorder = look.headBorder ?? border; - const { widths } = colsDetailed(width, columns, gap); + const { widths } = colsDetailed(width - 2 * (pill?.inset ?? 0), columns, gap); const cellStyle = (extra?: Record, bd = border) => ({ ...(bd ? { borderBottomWidth: bd, borderBottomColor: borderColor ?? "#000000", borderBottomStyle: "solid" } : {}), ...extra, }); - const cells = (role: RoleName | TypeToken, values: TableCellValue[], color?: string, isHeader = false) => + const cells = (role: RoleName | TypeToken, values: TableCellValue[], colorOf?: string | ((column: number) => string | undefined), isHeader = false) => values.map((v, i) => { + const color = typeof colorOf === "function" ? colorOf(i) : colorOf; const edge = grid?.width ?? 0; const last = i === values.length - 1; const inner = isHeader ? (grid?.headerColor ?? grid?.color) : grid?.color; @@ -200,11 +212,11 @@ export function TableRows({ columns, gap, width, header, rows, roles, align = [] return ( {cellParts(v).map((part, li) => ( - + {partText(part)} ))} @@ -224,6 +237,21 @@ export function TableRows({ columns, gap, width, header, rows, roles, align = [] ); }); const rowAlign = grid ? ("stretch" as const) : undefined; + const inset = pill?.inset ?? 0; + const cellsWidth = width - 2 * inset; + /** One table line: a plain Row, or for pills an outer box (the fill) around a Row of the inner width. */ + const line = (key: string | number, id: string, flags: ReturnType, style: Record, children: ReactNode) => + pill ? ( + + + {children} + + + ) : ( + + {children} + + ); return ( @@ -233,30 +261,21 @@ export function TableRows({ columns, gap, width, header, rows, roles, align = [] {...pdfFlags({ fixed: true })} style={bleed ? { marginLeft: -bleed.left, width: bleed.width, minWidth: bleed.width, maxWidth: bleed.width, paddingLeft: bleed.left, backgroundColor: bleed.bg } : undefined} > - - {cells(roles.head, header, headColor, true)} - + {line("head", TABLE_HEAD_ID, {}, cellStyle(headerStyle, headBorder), cells(roles.head, header, headColor, true))} {headerTail} ) : ( - - {cells(roles.head, header, headColor, true)} - + line("head", TABLE_HEAD_ID, pdfFlags({ fixed: true }), cellStyle(headerStyle, headBorder), cells(roles.head, header, headColor, true)) + )} + {rows.map((r, i) => + line( + i, + `${TABLE_ROW_PREFIX}${i}`, + pdfFlags({ wrap: false, minPresenceAhead: i === rows.length - 1 ? tailH : undefined }), + cellStyle(typeof rowStyle === "function" ? rowStyle(i) : rowStyle), + cells(roles.body, r), + ), )} - {rows.map((r, i) => ( - - {cells(roles.body, r)} - - ))} {tail} diff --git a/src/pdf/blocks/slots.tsx b/src/pdf/blocks/slots.tsx index 204aa6e..dcb857c 100644 --- a/src/pdf/blocks/slots.tsx +++ b/src/pdf/blocks/slots.tsx @@ -103,15 +103,17 @@ export interface AmountInWordsProps { /** Without it the label and the words are one italic paragraph (Classic); with it the label is its own line in this role. */ labelRole?: Role; color?: string; + /** Text alignment; default left (Classic's italic paragraph is always left). */ + align?: "left" | "right"; } -function AmountInWords({ model, role = "body", style, labelRole, color }: AmountInWordsProps) { +function AmountInWords({ model, role = "body", style, labelRole, color, align }: AmountInWordsProps) { if (!model.amountInWords) return null; if (labelRole) { return ( - Amount in words: - {model.amountInWords} + Amount in words: + {model.amountInWords} ); } @@ -139,6 +141,9 @@ export const slotHeights = { /** Lines the place-of-supply slot prints at `width`. */ placeOfSupplyLines: (model: RenderModel, role: Role, width: number): number => model.client.posLabel ? textLines(role, `Place of Supply: ${model.client.posLabel}`, width) : 0, + /** The tax rows' label and amount texts as TaxRows prints them (pass the same `format`), for sizing the label and amount columns. */ + taxRowTexts: (model: RenderModel, format?: (label: string, rateText: string | undefined) => string): Array<{ label: string; amount: string }> => + model.totals.taxRows.map((r) => ({ label: (format ?? ((l, rate) => (rate ? `${l} (${rate})` : l)))(r.label, r.rateText), amount: r.amountText })), /** Whether the item has an HSN/SAC value to print (a code, not the "—" placeholder). */ hasHsn: (value: string): boolean => value !== "—", /** Number of tax rows (each is one body line plus the template's row padding). */ diff --git a/src/pdf/decor/Asterisk.tsx b/src/pdf/decor/Asterisk.tsx new file mode 100644 index 0000000..10e7463 --- /dev/null +++ b/src/pdf/decor/Asterisk.tsx @@ -0,0 +1,78 @@ +import { Path, Svg } from "@react-pdf/renderer"; +import type { DecorItem } from "../blocks/FirstPageHeader"; +import type { PageFrame } from "../engine/geometry"; + +/* + * Purple Pop's art, measured on the Canva A4 page (docs/templates/12-purple-pop.md): an 8-arm asterisk normalised + * to a 0-100 box (every arm is 16.5% of the size), a yellow dome, and the huge pale watermark asterisks. + */ +export const ASTERISK_PATH = + "M100 41.7H69.9L91.1 20.6 79.7 8.9 58.3 30.1V0H41.7V30.1L20.6 8.9 8.9 20.6 30.1 41.7H0V58.3H30.1L8.9 79.4 20.6 91.1 41.7 69.9V100H58.3V69.9L79.4 91.1 91.1 79.4 69.9 58.3H100Z"; + +/** The yellow dome in A4 page coordinates; its box is DOME_BOX. */ +export const DOME_PATH = + "M89.7,565.3 C107.7,565.3 122.3,579.9 122.3,597.9 L103.3,597.9 C114.5,603.1 122.3,614.4 122.3,627.6 L57.0,627.6 C57.0,614.4 64.8,603.1 76.1,597.9 L57.0,597.9 C57.0,579.9 71.7,565.3 89.7,565.3 Z"; +export const DOME_BOX = { x: 57.0, y: 565.3, w: 65.3, h: 62.3 } as const; + +/** A solid asterisk of side `size`, in the flow. */ +export function Asterisk({ size, color }: { size: number; color: string }) { + return ( + + + + ); +} + +/** The dome at its Canva size scaled so it is `width` wide. */ +export function Dome({ width, color }: { width: number; color: string }) { + const k = width / DOME_BOX.w; + return ( + + + + ); +} + +/** The two pale watermarks: 352.4 pt asterisks, one hanging off the top right and one off the bottom left. */ +export const WATERMARK = { size: 352.4, topRight: { overhangRight: 12.4, overhangTop: 51.4 }, bottomLeft: { overhangLeft: 58, overhangBottom: 21.55 } } as const; + +export type WatermarkCorner = "top-right" | "bottom-left"; + +/** + * A watermark as a decor item anchored to its page corner. The part that falls off the page is cut away + * with the Svg's viewBox rather than drawn outside the page, so the box always lies on the page (on Letter + * too, where the corner moves with the page). + */ +export function asteriskWatermark(frame: PageFrame, corner: WatermarkCorner, color: string): DecorItem { + const { width: pw, height: ph } = frame.page; + const s = WATERMARK.size; + const pct = (v: number) => (v / s) * 100; + if (corner === "top-right") { + const w = s - WATERMARK.topRight.overhangRight; + const h = s - WATERMARK.topRight.overhangTop; + return { + x: pw - w, + y: 0, + width: w, + height: h, + children: ( + + + + ), + }; + } + const w = s - WATERMARK.bottomLeft.overhangLeft; + const h = s - WATERMARK.bottomLeft.overhangBottom; + return { + x: 0, + y: ph - h, + width: w, + height: h, + children: ( + + + + ), + }; +} diff --git a/src/pdf/decor/CircledIcon.tsx b/src/pdf/decor/CircledIcon.tsx index 8dccacd..8ab3076 100644 --- a/src/pdf/decor/CircledIcon.tsx +++ b/src/pdf/decor/CircledIcon.tsx @@ -25,13 +25,16 @@ export interface CircledIconProps extends ContactIconProps { ring: number; /** The icon's share of the diameter, 0..1. */ glyph?: number; + /** A filled disc with the glyph knocked out in `glyphColor` (default white) instead of a ring. */ + solid?: boolean; + glyphColor?: string; } /** * An icon inside a ring (Slate Band's footer): one static Svg, ring and glyph together. The glyph sits in a * translated and scaled static group (verified to work as a static child, unlike inside a render prop). */ -export function CircledIcon({ name, size, color, ring, glyph = 0.5 }: CircledIconProps) { +export function CircledIcon({ name, size, color, ring, glyph = 0.5, solid = false, glyphColor = "#FFFFFF" }: CircledIconProps) { const icon = ICONS[name]; const [minX, minY, vw, vh] = icon.viewBox.split(" ").map(Number); const scale = (size * glyph) / Math.max(vw, vh); @@ -39,10 +42,10 @@ export function CircledIcon({ name, size, color, ring, glyph = 0.5 }: CircledIco const oy = (size - vh * scale) / 2 - minY * scale; return ( - + {solid ? : } {icon.paths.map((d, i) => ( - + ))} diff --git a/src/pdf/decor/Halftone.tsx b/src/pdf/decor/Halftone.tsx new file mode 100644 index 0000000..5e2ed0c --- /dev/null +++ b/src/pdf/decor/Halftone.tsx @@ -0,0 +1,109 @@ +import { Circle, Svg } from "@react-pdf/renderer"; +import type { DecorItem } from "../blocks/FirstPageHeader"; +import type { PageFrame } from "../engine/geometry"; + +/* + * Citrus Split's halftone chevrons. Read off the Canva content stream (docs/templates/13-citrus-split.md): each + * field is 19 rows x 4 dots on a lattice of 22.5-unit row pitch and 45.3-unit dot spacing; each row sits 22.5 units + * to the right of the one above it until the middle row, then back again (a '>'), and the diameter grows from 9.8 + * to 22.54 towards the middle row. The fill is an axial gradient from orange (right edge) to light grey (left) + * at 9% opacity; here every dot gets the colour of the gradient at its own x, which needs no gradient object. + */ +export const HALFTONE = { rows: 19, perRow: 4, rowPitch: 22.5, dotSpacing: 45.3, x0: 4.89, y0: 4.89, minD: 9.8, maxD: 22.54, w: 354.6, h: 415 } as const; +export const HALFTONE_OPACITY = 0.09; + +export interface HalftoneDot { + /** Local units (0..354.6 x 0..415). */ + cx: number; + cy: number; + d: number; + /** The gradient colour at the dot's x. */ + color: string; +} + +const GRADIENT: Array<[number, [number, number, number]]> = [ + [0, [0xff, 0x92, 0x20]], + [0.15, [0xff, 0x93, 0x22]], + [1, [0xf2, 0xf2, 0xf2]], +]; +/** The gradient axis in local units: orange at x1 (right), grey at x0 (left). */ +const AXIS = { from: 372.33, to: -13.03 }; + +function gradientAt(x: number): string { + const t = Math.min(1, Math.max(0, (x - AXIS.from) / (AXIS.to - AXIS.from))); + const i = GRADIENT.findIndex(([o]) => o >= t); + const [o1, c1] = GRADIENT[Math.max(0, i)]; + const [o0, c0] = GRADIENT[Math.max(0, i - 1)]; + const k = o1 === o0 ? 0 : (t - o0) / (o1 - o0); + return `#${c0.map((v, j) => Math.round(v + (c1[j] - v) * k).toString(16).padStart(2, "0")).join("")}`; +} + +/** The 76 dots of one field. */ +export function halftoneDots(): HalftoneDot[] { + const h = HALFTONE; + const mid = (h.rows - 1) / 2; + const dots: HalftoneDot[] = []; + for (let r = 0; r < h.rows; r++) { + const lead = mid - Math.abs(r - mid); + const d = h.minD + (h.maxD - h.minD) * (lead / mid); + for (let k = 0; k < h.perRow; k++) { + const cx = h.x0 + h.rowPitch * lead + h.dotSpacing * k; + dots.push({ cx, cy: h.y0 + h.rowPitch * r, d, color: gradientAt(cx) }); + } + } + return dots; +} + +/** Where one field sits on the Canva A4 page (595.5 x 842.25): page = origin + scale * local, x mirrored when `turned`. */ +export interface HalftoneField { + id: "bottom-left" | "bottom-centre" | "top-right"; + scale: number; + x: number; + y: number; + /** Turned 180 degrees: page = origin - scale * local. */ + turned?: boolean; + /** How the field follows the page when it is not A4: to the left/right edge, or the centre, and to the top or bottom edge. */ + anchorX: "left" | "centre" | "right"; + anchorY: "top" | "bottom"; +} + +export const CITRUS_HALFTONE: HalftoneField[] = [ + { id: "bottom-left", scale: 0.8424, x: -126.2, y: 517.4, anchorX: "left", anchorY: "bottom" }, + { id: "bottom-centre", scale: 0.7608, x: 142.5, y: 572.1, anchorX: "centre", anchorY: "bottom" }, + { id: "top-right", scale: 0.4776, x: 646.3, y: 178.3, turned: true, anchorX: "right", anchorY: "top" }, +]; + +const CANVA = { w: 595.5, h: 842.25 } as const; +const round2 = (n: number) => Math.round(n * 100) / 100; + +/** + * One field as a decor item: an Svg covering the part of the field that is on the page, with the dots in page + * coordinates (viewBox = that part), so nothing is drawn off the page. Anchored to the page edges, so it also fits Letter. + */ +export function halftoneField(frame: PageFrame, field: HalftoneField, opacity = HALFTONE_OPACITY): DecorItem { + const { width: pw, height: ph } = frame.page; + const dx = field.anchorX === "left" ? 0 : field.anchorX === "centre" ? (pw - CANVA.w) / 2 : pw - CANVA.w; + const dy = field.anchorY === "top" ? 0 : ph - CANVA.h; + const sign = field.turned ? -1 : 1; + const toPage = (cx: number, cy: number) => ({ x: field.x + dx + sign * field.scale * cx, y: field.y + dy + sign * field.scale * cy }); + const dots = halftoneDots().map((dot) => ({ ...toPage(dot.cx, dot.cy), r: (dot.d * field.scale) / 2, color: dot.color })); + const x0 = Math.max(0, Math.min(...dots.map((d) => d.x - d.r))); + const y0 = Math.max(0, Math.min(...dots.map((d) => d.y - d.r))); + const x1 = Math.min(pw, Math.max(...dots.map((d) => d.x + d.r))); + const y1 = Math.min(ph, Math.max(...dots.map((d) => d.y + d.r))); + const w = x1 - x0; + const h = y1 - y0; + return { + x: x0, + y: y0, + width: w, + height: h, + children: ( + + {dots.map((d, i) => ( + + ))} + + ), + }; +} diff --git a/src/pdf/decor/Underlay.tsx b/src/pdf/decor/Underlay.tsx new file mode 100644 index 0000000..c9d87b6 --- /dev/null +++ b/src/pdf/decor/Underlay.tsx @@ -0,0 +1,21 @@ +import { View } from "@react-pdf/renderer"; +import { pdfFlags } from "../blocks/pdfProps"; +import type { DecorItem } from "../blocks/FirstPageHeader"; +import { DECOR_ID } from "../engine/ids"; + +/** + * Fixed, page-anchored boxes painted BEFORE the flow, so the text of the flow sits on top of them: a panel the + * numbers are printed on, watermarks, halftone dots. PageChrome's decor is painted after the flow and would + * cover it. Render this as the first child of the Page. + */ +export function Underlay({ items }: { items: DecorItem[] }) { + return ( + <> + {items.map((d, i) => ( + + {d.children} + + ))} + + ); +} diff --git a/src/pdf/fonts/register.test.ts b/src/pdf/fonts/register.test.ts index fe8f135..85346ae 100644 --- a/src/pdf/fonts/register.test.ts +++ b/src/pdf/fonts/register.test.ts @@ -14,9 +14,11 @@ const goodFont = () => { describe("font manifest", () => { it("lists the bundled families", () => { expect(FONT_FAMILIES).toEqual([ + "DM Sans", "IBM Plex Mono", "IBM Plex Sans", "Inter", + "Jost", "Montserrat", "Noto Sans Devanagari", "Noto Sans Kannada", diff --git a/src/pdf/fonts/roles.ts b/src/pdf/fonts/roles.ts index 4f52589..fdc3da0 100644 --- a/src/pdf/fonts/roles.ts +++ b/src/pdf/fonts/roles.ts @@ -6,7 +6,19 @@ * TYPE_ROLES holds Classic's values. Every other template declares its own role table (see * defineRoles) from the faces below and passes those tokens wherever a role is accepted. */ -export type FaceKey = "IBM Plex Sans" | "IBM Plex Mono" | "Montserrat" | "Open Sans" | "Poppins" | "Inter"; +export type FaceKey = + | "IBM Plex Sans" + | "IBM Plex Mono" + | "Montserrat" + | "Open Sans" + | "Poppins" + | "Inter" + | "DM Sans" + | "Jost" + // Licensed faces of the Canva designs; SUBSTITUTES maps each to the bundled look-alike. + | "Now" + | "Gotham" + | "Open Sauce One"; export interface TypeToken { face: FaceKey; @@ -55,9 +67,15 @@ export function defineRoles>(table: T) /** * Licensed template faces (Now, Gotham, Open Sauce One, ...) map to the OFL look-alike that is - * actually bundled. Empty until those families are registered. + * actually bundled. A user-imported font replaces the licensed name through `faceOverrides`. + * Gotham runs about 4% narrower than Montserrat, so tokens that use it carry sizes already scaled by + * GOTHAM_SIZE (see templates/northline); a real Gotham import would need them back at 1. */ -export const SUBSTITUTES: Readonly> = {}; +export const SUBSTITUTES: Readonly> = { + Now: "Jost", + Gotham: "Montserrat", + "Open Sauce One": "Poppins", +}; /** The family name to register/look up for a face: user override first, then substitute, then itself. */ export function resolveFace(face: string, overrides?: Readonly>): string { diff --git a/src/pdf/templates/band/band.test.tsx b/src/pdf/templates/band/band.test.tsx index 1e28ebd..ba27ebb 100644 --- a/src/pdf/templates/band/band.test.tsx +++ b/src/pdf/templates/band/band.test.tsx @@ -51,7 +51,7 @@ describe("registry and catalog", () => { expect(catalogEntry(t.id).name).toBe(t.name); expect(existsSync(path.join(process.cwd(), "public", t.thumbnail)), t.thumbnail).toBe(true); } - expect(Object.keys(TEMPLATES)).toEqual(["classic", "linea", "monogram", "serenity", "crimson-grid", "tangerine-ledger", "slate-band", "teal-swoosh"]); + expect(Object.keys(TEMPLATES)).toEqual(["classic", "linea", "monogram", "serenity", "crimson-grid", "tangerine-ledger", "slate-band", "teal-swoosh", "purple-pop", "citrus-split"]); }); it("both are Montserrat throughout, and their slots are the measured Canva ones", () => { diff --git a/src/pdf/templates/catalog.test.ts b/src/pdf/templates/catalog.test.ts index c3af459..8f60121 100644 --- a/src/pdf/templates/catalog.test.ts +++ b/src/pdf/templates/catalog.test.ts @@ -8,7 +8,7 @@ describe("template catalog", () => { it("has one entry per registered template, in the registry's order, ids unique", () => { expect(TEMPLATE_CATALOG.map((e) => e.id)).toEqual(Object.keys(TEMPLATES)); expect(new Set(TEMPLATE_CATALOG.map((e) => e.id)).size).toBe(TEMPLATE_CATALOG.length); - expect(TEMPLATE_CATALOG).toHaveLength(8); + expect(TEMPLATE_CATALOG).toHaveLength(10); }); it("groups the C4 templates into the Ledger and Band families", () => { diff --git a/src/pdf/templates/catalog.ts b/src/pdf/templates/catalog.ts index 482f9d9..a7ca357 100644 --- a/src/pdf/templates/catalog.ts +++ b/src/pdf/templates/catalog.ts @@ -5,7 +5,7 @@ export interface TemplateCatalogEntry { id: string; name: string; - family: "classic" | "neutral" | "ledger" | "band"; + family: "classic" | "neutral" | "ledger" | "band" | "northline"; /** Static PNG from /public, written by scripts/thumbnails.mjs (sample data, not the user's invoice). */ thumbnail: string; badge?: "Matches your original format"; @@ -18,6 +18,7 @@ export const FAMILY_LABELS: Record = { neutral: "Neutral", ledger: "Ledger", band: "Band", + northline: "Northline", }; /** Picker order: Classic first, Linea (the vendor's original format) second. */ @@ -30,6 +31,8 @@ export const TEMPLATE_CATALOG: readonly TemplateCatalogEntry[] = [ { id: "tangerine-ledger", name: "Tangerine Ledger", family: "ledger", thumbnail: "/templates/tangerine-ledger.png" }, { id: "slate-band", name: "Slate Band", family: "band", thumbnail: "/templates/slate-band.png" }, { id: "teal-swoosh", name: "Teal Swoosh", family: "band", thumbnail: "/templates/teal-swoosh.png" }, + { id: "purple-pop", name: "Purple Pop", family: "northline", thumbnail: "/templates/purple-pop.png", logoOptIn: true }, + { id: "citrus-split", name: "Citrus Split", family: "northline", thumbnail: "/templates/citrus-split.png" }, ]; /** The entry for an id; an unknown id falls back to Classic, like getTemplate. */ diff --git a/src/pdf/templates/classic/classic.test.tsx b/src/pdf/templates/classic/classic.test.tsx index e76cf40..fc2a5dc 100644 --- a/src/pdf/templates/classic/classic.test.tsx +++ b/src/pdf/templates/classic/classic.test.tsx @@ -90,7 +90,7 @@ describe("classic plan matches the laid-out blocks", () => { describe("registry", () => { it("has Classic and falls back to it for an unknown or missing id", () => { - expect(Object.keys(TEMPLATES)).toEqual(["classic", "linea", "monogram", "serenity", "crimson-grid", "tangerine-ledger", "slate-band", "teal-swoosh"]); + expect(Object.keys(TEMPLATES)).toEqual(["classic", "linea", "monogram", "serenity", "crimson-grid", "tangerine-ledger", "slate-band", "teal-swoosh", "purple-pop", "citrus-split"]); expect(getTemplate("classic")).toBe(classic); expect(getTemplate("no-such-template")).toBe(classic); expect(getTemplate(undefined)).toBe(classic); diff --git a/src/pdf/templates/contract.ts b/src/pdf/templates/contract.ts index 03222d2..1766305 100644 --- a/src/pdf/templates/contract.ts +++ b/src/pdf/templates/contract.ts @@ -31,6 +31,11 @@ export interface TemplateDecor { * supplier contact lines (a footer band); decor is exempt from the audit, so regulated slots never go here. */ everyPage?: (frame: PageFrame, model: RenderModel) => DecorItem[]; + /** + * Fixed every-page art that must sit UNDER the flow (a full-height panel the numbers are printed on, watermarks, halftone dots). + * everyPage is painted after the flow, so it would cover text; the underlay is painted before it. Still page-edge anchored. + */ + underlay?: (frame: PageFrame, model: RenderModel) => DecorItem[]; /** Page-space boxes the flow must stay out of (audited as `keepout`); `page` limits one to a single 1-based page. */ keepOuts?: (frame: PageFrame) => Array; } diff --git a/src/pdf/templates/neutral/neutral.test.tsx b/src/pdf/templates/neutral/neutral.test.tsx index ee2f001..1497a6a 100644 --- a/src/pdf/templates/neutral/neutral.test.tsx +++ b/src/pdf/templates/neutral/neutral.test.tsx @@ -28,7 +28,7 @@ const nodes = (layout: LayoutNode[]) => { describe("registry and catalog", () => { it("lists Classic first and Linea second, then the Neutral rest, the Ledger and the Band families", () => { - expect(Object.keys(TEMPLATES)).toEqual(["classic", "linea", "monogram", "serenity", "crimson-grid", "tangerine-ledger", "slate-band", "teal-swoosh"]); + expect(Object.keys(TEMPLATES)).toEqual(["classic", "linea", "monogram", "serenity", "crimson-grid", "tangerine-ledger", "slate-band", "teal-swoosh", "purple-pop", "citrus-split"]); expect(TEMPLATE_CATALOG.map((e) => e.id)).toEqual(Object.keys(TEMPLATES)); }); diff --git a/src/pdf/templates/northline/CitrusLayout.tsx b/src/pdf/templates/northline/CitrusLayout.tsx new file mode 100644 index 0000000..f60fee2 --- /dev/null +++ b/src/pdf/templates/northline/CitrusLayout.tsx @@ -0,0 +1,471 @@ +import { Image, View } from "@react-pdf/renderer"; +import type { ReactNode } from "react"; +import { pinned } from "../../engine/columns"; +import { CLOSING_ID, TOTALS_ID } from "../../engine/ids"; +import { AvailableWidthProvider } from "../../blocks/AvailableWidth"; +import { BottomSpacer } from "../../blocks/BottomSpacer"; +import { FirstPageHeader } from "../../blocks/FirstPageHeader"; +import { IdText } from "../../blocks/IdText"; +import { TableRows } from "../../blocks/ItemsTable"; +import { Row } from "../../blocks/Row"; +import { SafeTxt } from "../../blocks/SafeTxt"; +import { Slot } from "../../blocks/slots"; +import { TableGuard } from "../../blocks/TableGuard"; +import { Txt } from "../../blocks/Txt"; +import { CircledIcon } from "../../decor/CircledIcon"; +import { META_ID, SUPPLIER_ID, TITLE_ID } from "../classic/ids"; +import type { PlacedLogo, TemplateProps } from "../contract"; +import { includesName } from "../logoName"; +import { CANCELLED_INK, CANCELLED_SENTENCE } from "../neutral/plan"; +import { atRate, BULLET, NOTES_FLOW_GAP, planCitrus, REVERSE_GAP, signatureOptions, type CitrusPlan } from "./plan"; +import type { CitrusVariant } from "./variant"; + +interface Ctx { + model: TemplateProps["model"]; + plan: CitrusPlan; + v: CitrusVariant; + logo: PlacedLogo | null; +} + +const WHITE = "#FFFFFF"; + +function Spacer({ h }: { h: number }) { + return h > 0 ? : null; +} + +// --- header ----------------------------------------------------------------------------------------------------- + +function Title({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const h = plan.head; + return ( + + {h.tax ? ( + + TAX + + ) : null} + {/* Left-aligned, so the negative tracking only shortens the line; the ink stays inside the box. */} + + Invoice + + + ); +} + +function PanelHeader({ ctx }: { ctx: Ctx }) { + const { model, plan, v, logo } = ctx; + const h = plan.head; + return ( + + + {logo ? : null} + {h.showName ? ( + + + + {model.supplier.name} + + + + ) : null} + + + ); +} + +// --- client block, meta row ------------------------------------------------------------------------------------- + +function ClientBlock({ ctx, inset }: { ctx: Ctx; inset: number }) { + const { model, plan, v } = ctx; + const r = v.roles; + const c = model.client; + const w = plan.client.w; + return ( + + + + Billed to: + + + {c.name} + + {c.addressLines.map((line, i) => ( + + {line} + + ))} + + + {c.poNumber ? ( + {`PO: ${c.poNumber}`} + ) : null} + + + ); +} + +function MetaCell({ ctx, label, children }: { ctx: Ctx; label: string; children: ReactNode }) { + const { v } = ctx; + return ( + + + {label} + + {children} + + ); +} + +function MetaRow({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + const r = v.roles; + const m = plan.meta; + const no = `${model.meta.numberLabel.replace(/\.$/, "")} :`; + return ( + + + + + + {model.meta.number} + + + + + {model.meta.date} + + + + {m.hasDue ? ( + + + {model.meta.dueDate as string} + + + ) : ( + + )} + + + {model.totals.totalText} + + + + + ); +} + +// --- totals ------------------------------------------------------------------------------------------------------ + +function Panel({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + const r = v.roles; + const k = plan.tail; + const t = v.totals; + const inner = plan.panelW - t.labelInset - t.valueInset; + const labelW = inner - k.valueW; + const barInner = plan.panelW - 2 * t.barInset; + return ( + + + + + {k.stack.map((row, i) => ( + + + {row.label} + + + {row.amount} + + + ))} + + + + + + + + Total + + + {model.totals.totalText} + + + + + {k.wordsH > 0 || k.reverseH > 0 ? ( + + + + {k.reverseH > 0 ? : null} + + + ) : null} + + ); +} + +function Tail({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const k = plan.tail; + return ( + // The gap is inside the block, so the totals' height is what the last row's minPresenceAhead (tailH) asks for. + + + + {plan.clientAbove ? null : } + + + + + ); +} + +// --- closing ----------------------------------------------------------------------------------------------------- + +/** Terms too long for the closing's left column: a block of their own across the width, each bullet unbreakable, the label held with the first. */ +function NotesFlow({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const r = v.roles; + const c = plan.closing; + const cl = v.closing; + const bullet = (line: string, i: number) => ( + + + + + {line} + + + + ); + return ( + + + + Payment terms + + {bullet(c.terms[0], 0)} + + {c.terms.slice(1).map((line, i) => bullet(line, i + 1))} + + ); +} + +function Method({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + const r = v.roles; + const c = plan.closing; + const cl = v.closing; + return ( + + {model.bank ? ( + + + Payment method + + + + {c.bank.map((line, i) => ( + + {line} + + ))} + + + + ) : null} + {c.termsBeside && c.terms.length ? ( + + + Payment terms + + {c.terms.map((line, i) => ( + + + + + {line} + + + + ))} + + ) : null} + + ); +} + +function Contacts({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const r = v.roles; + const c = plan.closing; + const cl = v.closing; + const iconCol = cl.iconGap + cl.iconSize + cl.iconInset; + return ( + + {c.contacts.map((x, i) => ( + + + + {x.id ? ( + + {x.lines[0]} + + ) : ( + x.lines.map((line, j) => ( + + {line} + + )) + )} + + + + + + + ))} + + ); +} + +function RightColumn({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + const r = v.roles; + const c = plan.closing; + const cl = v.closing; + const s = model.supplier; + const iconCol = cl.iconGap + cl.iconSize + cl.iconInset; + const opts = signatureOptions({ name: r.signName, designation: r.small, fine: r.fine }, v.signatureImageH, v.text, "right"); + const groups: ReactNode[] = []; + if (c.contacts.length || c.idLinesH > 0) { + groups.push( + + + {c.idLinesH > 0 ? ( + + + + {s.pan ? ( + {`PAN: ${s.pan}`} + ) : null} + + + ) : null} + , + ); + } + groups.push( + + + , + ); + return ( + + {groups.map((g, i) => ( + + {g} + + ))} + + ); +} + +function Closing({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + return ( + <> + + + + + + + + {model.cancelled ? ( + + {CANCELLED_SENTENCE} + + ) : null} + + + + ); +} + +// --- the layout -------------------------------------------------------------------------------------------------- + +export function CitrusBody({ model, frame, logo, prefs, variant: v }: TemplateProps & { variant: CitrusVariant }) { + const plan = planCitrus(model, frame, v, logo, includesName({ model, prefs })); + const ctx: Ctx = { model, plan, v, logo }; + const r = v.roles; + return ( + <> + + + + <PanelHeader ctx={ctx} /> + </Row> + {plan.clientAbove ? ( + <> + <Spacer h={plan.gaps.client} /> + <ClientBlock ctx={ctx} inset={v.client.inset} /> + </> + ) : null} + <Spacer h={plan.gaps.meta} /> + <MetaRow ctx={ctx} /> + </FirstPageHeader> + + <Spacer h={plan.gaps.table} /> + + <TableGuard {...{ minPresenceAhead: plan.guardH }} /> + <View style={{ marginLeft: plan.tableLeft, ...pinned(plan.tableW) } as never}> + <TableRows + columns={plan.columns} + gap={0} + width={plan.tableW} + header={plan.headerCells} + rows={plan.rows} + roles={{ head: r.headNum, body: r.tableBody }} + align={plan.align} + padX={0} + padLeft={plan.padLeft} + padRight={plan.padRight} + padY={plan.padY} + headPadY={plan.headPadY} + border={0} + headColor={(i) => (i === 0 ? WHITE : v.ink)} + headCellStyle={(i) => (i === 0 ? { backgroundColor: v.orange, paddingLeft: v.table.headInset } : { backgroundColor: WHITE })} + rowStyle={(i) => (i % 2 === 1 ? { backgroundColor: v.panel } : {})} + tailH={plan.tailH} + tail={<Tail ctx={ctx} />} + /> + </View> + {plan.closing.termsBeside ? null : <NotesFlow ctx={ctx} />} + <Closing ctx={ctx} /> + </> + ); +} diff --git a/src/pdf/templates/northline/Layout.tsx b/src/pdf/templates/northline/Layout.tsx new file mode 100644 index 0000000..8949c8b --- /dev/null +++ b/src/pdf/templates/northline/Layout.tsx @@ -0,0 +1,13 @@ +import type { TemplateProps } from "../contract"; +import { CitrusBody } from "./CitrusLayout"; +import { PurpleBody } from "./PurpleLayout"; +import type { NorthlineVariant } from "./variant"; + +/** + * The Northline family component. Purple Pop and Citrus Split share the Northline Group content model, the data + * blocks (slots, bank and terms lines, contact list, the table plan) and the type system; the page compositions + * differ (pills on cream, a split grey column on blush), so each variant has its own body. + */ +export function NorthlineLayout({ variant, ...props }: TemplateProps & { variant: NorthlineVariant }) { + return variant.id === "purple-pop" ? <PurpleBody {...props} variant={variant} /> : <CitrusBody {...props} variant={variant} />; +} diff --git a/src/pdf/templates/northline/PurpleLayout.tsx b/src/pdf/templates/northline/PurpleLayout.tsx new file mode 100644 index 0000000..c457e6f --- /dev/null +++ b/src/pdf/templates/northline/PurpleLayout.tsx @@ -0,0 +1,457 @@ +import { Image, View } from "@react-pdf/renderer"; +import { pinned } from "../../engine/columns"; +import { CLOSING_ID, TOTALS_ID } from "../../engine/ids"; +import { AvailableWidthProvider } from "../../blocks/AvailableWidth"; +import { BottomSpacer } from "../../blocks/BottomSpacer"; +import { FirstPageHeader, type DecorItem } from "../../blocks/FirstPageHeader"; +import { FitText } from "../../blocks/FitText"; +import { IdText } from "../../blocks/IdText"; +import { TableRows } from "../../blocks/ItemsTable"; +import { Row } from "../../blocks/Row"; +import { SafeTxt } from "../../blocks/SafeTxt"; +import { Slot } from "../../blocks/slots"; +import { TableGuard } from "../../blocks/TableGuard"; +import { Tracked } from "../../blocks/Tracked"; +import { Txt } from "../../blocks/Txt"; +import { Asterisk, Dome } from "../../decor/Asterisk"; +import { CircledIcon } from "../../decor/CircledIcon"; +import { META_ID, SUPPLIER_ID, TITLE_ID } from "../classic/ids"; +import type { PlacedLogo, TemplateProps } from "../contract"; +import { includesName } from "../logoName"; +import { CANCELLED_INK, CANCELLED_SENTENCE } from "../neutral/plan"; +import { atRate, BULLET, BULLET_GAP, CLIENT_LABEL_GAP, CLIENT_PILL_GAP, CLOSING_COLUMN_GAP, DOME_TOP, MARK_GAP, NOTES_FLOW_GAP, PILL_GAP, planPurple, REVERSE_GAP, signatureOptions, type PurplePlan } from "./plan"; +import type { PurpleVariant } from "./variant"; + +interface Ctx { + model: TemplateProps["model"]; + plan: PurplePlan; + v: PurpleVariant; + logo: PlacedLogo | null; +} + +const WHITE = "#FFFFFF"; +const ON_PURPLE = "#FFF4F4"; +function Spacer({ h }: { h: number }) { + return h > 0 ? <View style={{ height: h }} /> : null; +} + +// --- header ------------------------------------------------------------------------------------------------- + +function VendorBlock({ ctx }: { ctx: Ctx }) { + const { model, plan, v, logo } = ctx; + const r = v.roles; + const h = plan.head; + const s = model.supplier; + return ( + <View id={SUPPLIER_ID} style={pinned(h.leftW) as never}> + <View style={{ flexDirection: "row", ...pinned(h.leftW), minHeight: h.boxH } as never}> + {logo ? <Image src={logo.dataUri} style={{ ...pinned(logo.w), height: logo.h, marginTop: Math.max(0, (h.boxH - logo.h) / 2), objectFit: "contain" } as never} /> : null} + {h.showName ? ( + <View style={{ ...pinned(h.nameW), minHeight: h.boxH, justifyContent: "center", marginLeft: logo ? MARK_GAP : 0 } as never}> + <AvailableWidthProvider width={h.nameW}> + <SafeTxt role={r.brand} color={v.ink}> + {s.name} + </SafeTxt> + </AvailableWidthProvider> + </View> + ) : null} + </View> + <AvailableWidthProvider width={h.leftW}> + <Slot.Gstin model={model} party="supplier" role={r.small} color={v.ink} /> + {s.pan ? <IdText role={r.small} color={v.ink}>{`PAN: ${s.pan}`}</IdText> : null} + </AvailableWidthProvider> + </View> + ); +} + +function NumberPill({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const h = plan.head; + return ( + <View style={{ ...pinned(h.pillW), minHeight: v.head.pillH, justifyContent: "center", backgroundColor: v.grey, borderRadius: v.head.pillH / 2 } as never}> + <Tracked role={{ ...v.roles.pill, size: h.pillSize }} color={v.purple} width={h.pillW - 2 * v.head.pillPadX} align="center" style={{ marginLeft: v.head.pillPadX }}> + {h.pillText} + </Tracked> + </View> + ); +} + +// --- client and the wordmark ------------------------------------------------------------------------------------- + +function ClientBlock({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + const r = v.roles; + const c = model.client; + const k = plan.client; + const lineStyle = { marginLeft: v.client.inset }; + return ( + <View style={pinned(k.cellW) as never}> + <Txt role={r.label} color={v.ink} width={k.cellW - v.client.inset} style={lineStyle}> + Billed to: + </Txt> + <View style={{ marginTop: CLIENT_LABEL_GAP, ...pinned(k.pillW), minHeight: k.pillBoxH, justifyContent: "center", paddingHorizontal: v.client.pillPadX, backgroundColor: v.yellow, borderRadius: v.client.pillH / 2 } as never}> + <AvailableWidthProvider width={k.pillW - 2 * v.client.pillPadX}> + <SafeTxt role={r.clientName} color={v.purple}> + {c.name} + </SafeTxt> + </AvailableWidthProvider> + </View> + <View style={{ marginTop: CLIENT_PILL_GAP, ...lineStyle, ...pinned(k.lineW) } as never}> + <AvailableWidthProvider width={k.lineW}> + {c.addressLines.map((line, i) => ( + <SafeTxt key={i} role={r.clientLine} color={v.ink}> + {line} + </SafeTxt> + ))} + <Slot.Gstin model={model} party="client" role={r.clientLine} color={v.ink} /> + <Slot.PlaceOfSupply model={model} role={r.clientLine} color={v.ink} /> + </AvailableWidthProvider> + </View> + </View> + ); +} + +function Wordmark({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const r = v.roles; + const t = plan.title; + return ( + <View id={TITLE_ID} style={pinned(t.w) as never}> + {t.tax ? ( + <Tracked role={r.taxCaption} color={v.purple} width={t.w} align="right" style={{ marginBottom: 2 }}> + TAX + </Tracked> + ) : null} + {/* Negative tracking leaves the last glyph's ink |step| past the line's end; the padding makes that part of the box. */} + <Txt role={{ ...r.wordmark, size: t.size }} color={v.purple} width={t.w} align="right" style={{ paddingRight: t.pad }}> + Invoice + </Txt> + </View> + ); +} + +// --- amount due and dates ------------------------------------------------------------------------------------- + +function AmountBand({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const r = v.roles; + const b = plan.band; + return ( + <View id={META_ID} style={{ marginLeft: v.band.amountInset, ...pinned(b.amountW + v.band.gap + b.datesW) } as never}> + <Row widths={[{ fixed: b.amountW }, { fixed: b.datesW }]} gap={v.band.gap} width={b.amountW + v.band.gap + b.datesW}> + <View style={pinned(b.amountW) as never}> + <Txt role={r.label} color={v.ink} width={b.amountW}> + Amount due: + </Txt> + <FitText role={r.amount} color={v.purple} width={b.amountW} style={{ marginTop: 2 }}> + {b.amountText} + </FitText> + </View> + <View style={pinned(b.datesW) as never}> + {b.lines.map((line, i) => ( + <Txt key={i} role={{ ...r.date, size: b.dateSize }} color={v.ink} width={b.datesW} align="right"> + {line} + </Txt> + ))} + </View> + </Row> + </View> + ); +} + +// --- totals ----------------------------------------------------------------------------------------------------- + +function TotalsBox({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + const r = v.roles; + const k = plan.tail; + const inner = k.boxW - v.totals.labelInset - v.totals.valueInset; + const labelW = inner - k.valueW; + return ( + <View style={pinned(k.boxW) as never}> + <View style={{ marginLeft: v.totals.labelInset, ...pinned(inner) } as never}> + <AvailableWidthProvider width={inner}> + {k.stack.map((row, i) => ( + <Row key={i} widths={[{ fill: true }, { fixed: k.valueW }]} style={{ marginBottom: v.totals.rowGap }}> + <Txt role={r.totalLabel} color={v.ink} width={labelW}> + {row.label} + </Txt> + <Txt role={r.totalValue} color={v.ink} width={k.valueW} align="right"> + {row.amount} + </Txt> + </Row> + ))} + <Slot.TaxRows + model={model} + role={r.totalLabel} + amountRole={r.totalValue} + color={v.ink} + amountWidth={k.valueW} + rowStyle={{ marginBottom: v.totals.rowGap }} + format={atRate} + /> + </AvailableWidthProvider> + </View> + <View + style={{ + marginTop: PILL_GAP - v.totals.rowGap, + ...pinned(k.boxW), + minHeight: v.totals.pillH, + justifyContent: "center", + paddingLeft: v.totals.labelInset, + paddingRight: v.totals.pillValueInset, + backgroundColor: v.purple, + borderRadius: v.totals.pillH / 2, + } as never} + > + <AvailableWidthProvider width={k.boxW - v.totals.labelInset - v.totals.pillValueInset}> + <Row widths={[{ fill: true }, { fixed: k.valueW }]}> + <Txt role={r.grand} color={ON_PURPLE} width={inner - k.valueW}> + Total + </Txt> + <Txt role={r.grandValue} color={ON_PURPLE} width={k.valueW} align="right"> + {model.totals.totalText} + </Txt> + </Row> + </AvailableWidthProvider> + </View> + {k.wordsH > 0 ? ( + <View style={{ marginTop: v.totals.wordsGap, marginLeft: v.totals.labelInset, ...pinned(k.wordsW) } as never}> + <AvailableWidthProvider width={k.wordsW}> + <Slot.AmountInWords model={model} role={r.words} labelRole={r.wordsLabel} color={v.ink} /> + </AvailableWidthProvider> + </View> + ) : null} + {k.reverseH > 0 ? ( + <View style={{ marginTop: REVERSE_GAP, marginLeft: v.totals.labelInset, ...pinned(k.wordsW) } as never}> + <AvailableWidthProvider width={k.wordsW}> + <Slot.ReverseCharge model={model} role={r.small} color={v.ink} /> + </AvailableWidthProvider> + </View> + ) : null} + </View> + ); +} + +function Tail({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const k = plan.tail; + return ( + // The gap is inside the block, so the totals' height is what the last row's minPresenceAhead (tailH) asks for. + <View id={TOTALS_ID} wrap={false} style={pinned(plan.W) as never}> + <View style={{ marginTop: plan.gaps.tail }}> + <Row widths={[{ fixed: k.gutter }, { fill: true }]} width={plan.W}> + <View style={{ marginLeft: v.dome.x, marginTop: DOME_TOP }}> + <Dome width={v.dome.w} color={v.yellow} /> + </View> + <TotalsBox ctx={ctx} /> + </Row> + </View> + </View> + ); +} + +// --- closing --------------------------------------------------------------------------------------------------- + +/** Terms with more bullets than fit beside the signature: a block of their own, each bullet unbreakable, the label held with the first. */ +function NotesFlow({ ctx }: { ctx: Ctx }) { + const { plan, v } = ctx; + const r = v.roles; + const t = plan.terms; + const dotTop = (r.bullet.leading as number) / 2 - BULLET.dot / 2; + const bullet = (line: string, i: number) => ( + <View key={i} wrap={false} style={{ flexDirection: "row", marginBottom: i === t.lines.length - 1 ? 0 : BULLET_GAP, ...pinned(t.flowW) } as never}> + <View style={{ ...pinned(BULLET.dot), height: BULLET.dot, marginTop: dotTop, borderRadius: BULLET.dot / 2, backgroundColor: v.ink } as never} /> + <View style={{ ...pinned(t.flowBulletW), marginLeft: BULLET.textAt - BULLET.dot } as never}> + <SafeTxt role={r.bullet} color={v.ink} width={t.flowBulletW}> + {line} + </SafeTxt> + </View> + </View> + ); + return ( + <View style={{ marginTop: NOTES_FLOW_GAP, marginLeft: v.terms.labelInset, ...pinned(t.flowW) } as never}> + <View wrap={false}> + <Txt role={r.termsLabel} color={v.ink} width={t.flowW} style={{ marginBottom: 4 }}> + Payment terms + </Txt> + {bullet(t.lines[0], 0)} + </View> + {t.lines.slice(1).map((line, i) => bullet(line, i + 1))} + </View> + ); +} + +function Terms({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + const r = v.roles; + const t = plan.terms; + const opts = signatureOptions({ name: r.signName, designation: r.small, fine: r.fine }, v.signatureImageH, v.ink, "right"); + const dotTop = (r.bullet.leading as number) / 2 - BULLET.dot / 2; + return ( + <Row widths={[{ fixed: v.terms.labelInset + v.terms.labelW }, { fill: true }, { fixed: v.terms.signW }]} gap={CLOSING_COLUMN_GAP}> + <View style={pinned(v.terms.labelInset + v.terms.labelW) as never}> + {t.beside && t.lines.length ? ( + <Txt role={r.termsLabel} color={v.ink} width={v.terms.labelW} style={{ marginLeft: v.terms.labelInset }}> + Payment terms + </Txt> + ) : null} + </View> + <View> + {(t.beside ? t.lines : []).map((line, i) => ( + <View key={i} wrap={false} style={{ flexDirection: "row", marginBottom: i === t.lines.length - 1 ? 0 : BULLET_GAP, ...pinned(t.fillW) } as never}> + <View style={{ ...pinned(BULLET.dot), height: BULLET.dot, marginTop: dotTop, borderRadius: BULLET.dot / 2, backgroundColor: v.ink } as never} /> + <View style={{ ...pinned(t.bulletW), marginLeft: BULLET.textAt - BULLET.dot } as never}> + <SafeTxt role={r.bullet} color={v.ink} width={t.bulletW} wrap={false}> + {line} + </SafeTxt> + </View> + </View> + ))} + </View> + <View style={pinned(v.terms.signW) as never}> + <Slot.Signatory model={model} width={v.terms.signW} {...opts} /> + </View> + </Row> + ); +} + +function Footer({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + const r = v.roles; + const f = plan.footer; + const ft = v.footer; + const iconCol = ft.iconW + ft.iconGap; + const phoneMail = f.contacts.filter((x) => x.icon !== "location"); + const address = f.contacts.find((x) => x.icon === "location"); + const icon = (name: "phone" | "email" | "location") => <CircledIcon name={name} size={ft.iconW} color={v.ink} ring={0.9} solid={name !== "location"} glyph={0.62} />; + return ( + <Row widths={[{ fixed: ft.contactLeft }, { fixed: ft.addressLeft - ft.contactLeft }, { fill: true }]} width={plan.W}> + <View style={{ marginLeft: ft.ruleLeft, ...pinned(ft.bankW) } as never}> + {model.bank ? ( + <> + <Txt role={r.label} color={v.ink} width={ft.bankW} style={{ marginBottom: 4 }}> + Payment method + </Txt> + <AvailableWidthProvider width={ft.bankW}> + {f.bank.map((line, i) => ( + <SafeTxt key={i} role={r.bank} color={v.ink}> + {line} + </SafeTxt> + ))} + </AvailableWidthProvider> + </> + ) : null} + </View> + <View style={pinned(ft.contactW) as never}> + {phoneMail.map((x, i) => ( + <Row key={i} widths={[{ fixed: iconCol }, { fill: true }]} width={ft.contactW} style={{ marginBottom: 1.5 }}> + <View style={{ marginTop: ((r.contact.leading as number) - ft.iconW) / 2 }}>{icon(x.icon)}</View> + <IdText role={r.contact} color={v.ink} width={f.textW.contact}> + {x.lines[0]} + </IdText> + </Row> + ))} + </View> + <View> + {address ? ( + <Row widths={[{ fixed: iconCol }, { fill: true }]} width={plan.W - ft.addressLeft}> + <View style={{ marginTop: ((r.contact.leading as number) - ft.iconW) / 2 }}>{icon("location")}</View> + <View> + <AvailableWidthProvider width={f.textW.address}> + {address.lines.map((line, i) => ( + <SafeTxt key={i} role={r.contact} color={v.ink}> + {line} + </SafeTxt> + ))} + </AvailableWidthProvider> + </View> + </Row> + ) : null} + </View> + </Row> + ); +} + +function Closing({ ctx }: { ctx: Ctx }) { + const { model, plan, v } = ctx; + return ( + <> + <BottomSpacer closingH={plan.closingH} /> + <View id={CLOSING_ID} wrap={false} style={{ paddingTop: v.gaps.termsAbove, ...pinned(plan.W) } as never}> + <AvailableWidthProvider width={plan.W}> + <Terms ctx={ctx} /> + <View style={{ marginTop: v.gaps.ruleGap, marginLeft: v.footer.ruleLeft, marginBottom: v.gaps.ruleGap, ...pinned(plan.W - v.footer.ruleLeft - v.footer.ruleRight), height: v.rule.w, backgroundColor: v.ink } as never} /> + <Footer ctx={ctx} /> + {model.cancelled ? ( + <Txt role={v.roles.small} color={CANCELLED_INK} width={plan.W} style={{ marginTop: 10 }}> + {CANCELLED_SENTENCE} + </Txt> + ) : null} + </AvailableWidthProvider> + </View> + </> + ); +} + +// --- the layout ------------------------------------------------------------------------------------------------- + +export function PurpleBody({ model, frame, logo, prefs, variant: v }: TemplateProps & { variant: PurpleVariant }) { + const plan = planPurple(model, frame, v, logo, includesName({ model, prefs })); + const ctx: Ctx = { model, plan, v, logo }; + const r = v.roles; + const decor: DecorItem[] = []; + // Beside the table's header and first rows, page 1 only: it is a child of the first-page header, never a page-level absolute. + if (plan.asteriskY !== null && plan.asteriskY + v.asterisk.size < frame.page.height - frame.pad.bottom) { + decor.push({ x: frame.pad.left + v.asterisk.offsetX, y: plan.asteriskY, width: v.asterisk.size, height: v.asterisk.size, children: <Asterisk size={v.asterisk.size} color={v.purple} /> }); + } + const rule = ( + <View style={{ marginLeft: v.rule.left, ...pinned(plan.W - v.rule.left - v.rule.right), height: v.rule.w, backgroundColor: v.ink } as never} /> + ); + return ( + <> + <FirstPageHeader pad={frame.pad} decor={decor}> + <View style={{ marginLeft: v.head.nameInset, ...pinned(plan.head.innerW) } as never}> + <Row widths={[{ fill: true }, { fixed: plan.head.pillW }]} gap={12} width={plan.head.innerW}> + <VendorBlock ctx={ctx} /> + <NumberPill ctx={ctx} /> + </Row> + </View> + <Spacer h={plan.gaps.client} /> + <Row widths={[{ fixed: v.client.colW }, { fill: true }]} width={plan.W}> + <ClientBlock ctx={ctx} /> + <Wordmark ctx={ctx} /> + </Row> + <Spacer h={plan.gaps.rule} /> + {rule} + <Spacer h={plan.gaps.band} /> + <AmountBand ctx={ctx} /> + </FirstPageHeader> + + <Spacer h={plan.gaps.table} /> + + <TableGuard {...{ minPresenceAhead: plan.guardH }} /> + <TableRows + columns={plan.columns} + gap={0} + width={plan.tableW} + header={plan.headerCells} + rows={plan.rows} + roles={{ head: r.tableHead, body: r.tableBody }} + align={plan.align} + padX={0} + padY={plan.padY} + headPadY={plan.headPadY} + border={0} + headColor={WHITE} + headerStyle={{ backgroundColor: v.purple, borderRadius: v.table.radiusHead }} + rowStyle={(i) => ({ backgroundColor: i % 2 === 0 ? v.rowGrey : v.yellow, borderRadius: v.table.radiusRow })} + pill={{ indent: plan.tableLeft, inset: v.table.inset }} + tailH={plan.tailH} + tail={<Tail ctx={ctx} />} + /> + {plan.terms.beside ? null : <NotesFlow ctx={ctx} />} + <Closing ctx={ctx} /> + </> + ); +} diff --git a/src/pdf/templates/northline/citrus.tsx b/src/pdf/templates/northline/citrus.tsx new file mode 100644 index 0000000..c194045 --- /dev/null +++ b/src/pdf/templates/northline/citrus.tsx @@ -0,0 +1,123 @@ +import { View } from "@react-pdf/renderer"; +import { CITRUS_HALFTONE, halftoneField } from "../../decor/Halftone"; +import { defineRoles } from "../../fonts/roles"; +import { catalogEntry } from "../catalog"; +import type { TemplateDefinition } from "../contract"; +import { slotFor } from "../slots.optin"; +import { NorthlineLayoutFor } from "./layoutFor"; +import { gotham, type CitrusRoles, type CitrusVariant } from "./variant"; + +const DM = "DM Sans" as const; +const G = "Gotham" as const; +const INK = "#060605"; +const TEXT = "#231F20"; +export const ORANGE = "#FF9220"; +export const LABEL = "#F96300"; + +/** + * Citrus Split's type (docs/templates/13-citrus-split.md): the INVOICE wordmark in Now Bold (drawn in Jost 700, at + * the design's -0.081 em), DM Sans for labels, names and the words line, Gotham (drawn in Montserrat through + * gotham()) for the table, totals, client lines and the closing text. + */ +export const CITRUS_ROLES = defineRoles({ + title: { face: "Now", weight: 700, size: 47.94, leading: 52, tracking: -0.081, caps: true, minSize: 30 }, + taxCaption: { face: DM, weight: 700, size: 14, leading: 18, tracking: 0.15, caps: true }, + brand: { face: DM, weight: 700, size: 17.13, leading: 17.1, minSize: 12 }, + metaLabel: { face: DM, weight: 700, size: 12, leading: 16 }, + metaValue: { face: DM, weight: 400, size: 12, leading: 16, minSize: 8 }, + metaStrong: { face: DM, weight: 700, size: 12.36, leading: 16, minSize: 8 }, + billedLabel: { face: DM, weight: 700, size: 12.4, leading: 17, caps: true }, + clientName: { face: DM, weight: 700, size: 14.87, leading: 19, caps: true }, + clientLine: { face: G, weight: 400, size: gotham(10.5), leading: 15.5 }, + headService: { face: G, weight: 700, size: gotham(15.17), leading: 18, tracking: 0.15, caps: true }, + headNum: { face: G, weight: 700, size: gotham(14.17), leading: 18, caps: true }, + tableBody: { face: G, weight: 400, size: gotham(12), leading: 15 }, + tableSub: { face: G, weight: 400, size: 9, leading: 11.5 }, + totalLabel: { face: G, weight: 700, size: gotham(12.5), leading: 17, caps: true }, + totalValue: { face: G, weight: 400, size: gotham(12.5), leading: 17 }, + grand: { face: G, weight: 700, size: gotham(14.7), leading: 18, caps: true }, + grandValue: { face: G, weight: 700, size: gotham(14.7), leading: 18 }, + words: { face: DM, weight: 700, size: 11, leading: 14 }, + wordsLabel: { face: DM, weight: 700, size: 11, leading: 14 }, + sectionLabel: { face: DM, weight: 700, size: 12, leading: 16, caps: true }, + bank: { face: G, weight: 400, size: gotham(11), leading: 15 }, + bullet: { face: G, weight: 400, size: gotham(12), leading: 16.5 }, + contact: { face: G, weight: 400, size: gotham(12.77), leading: 18, minSize: 7 }, + small: { face: DM, weight: 400, size: 9, leading: 12 }, + fine: { face: DM, weight: 400, size: 7, leading: 10 }, + signName: { face: DM, weight: 700, size: 9.5, leading: 13 }, + footer: { face: DM, weight: 400, size: 7 }, +} satisfies CitrusRoles); + +/** + * Canva A4: content x 73.3, the stripe 298.8..535.6 (right margin 59.68). The title's cap top is y 75.6 and the + * footer text ends near y 750, so the bottom margin is 40 plus the footer reserve. + */ +export const CITRUS_VARIANT: CitrusVariant = { + id: "citrus-split", + roles: CITRUS_ROLES, + ink: INK, + text: TEXT, + blush: "#FFF7F7", + panel: "#F1F1F1", + orange: ORANGE, + label: LABEL, + icon: "#F39322", + stripeW: 236.8, + margins: { top: 58, right: 59.68, bottom: 40, left: 73.3 }, + marginFloor: { top: 36, right: 36, bottom: 24, left: 36 }, + signatureImageH: 40, + chromeLeftW: 150, + head: { panelInset: 38.6, markGap: 20 }, + client: { inset: 12.3, gap: 8, labelGap: 5, nameGap: 4 }, + meta: { inset: 14.6, noMin: 86.2, dateMin: 90, dueW: 108.2, panelInset: 16.7, labelGap: 6 }, + table: { left: 10.9, headH: 47.2, headInset: 31.7, bodyInset: 15.7, padY: 12.15, padYMin: 8, descRight: 8, cols: { qty: 66.8, rate: 80, amount: 90 } }, + separator: { color: "#FFF7F7", h: 1.5 }, + totals: { labelInset: 22.1, valueInset: 30.6, rowGap: 7, barH: 47.2, barInset: 1, barGap: 8, sepGap: 14, wordsGap: 12 }, + closing: { methodInset: 8.4, bankInset: 9.9, bulletInset: 15.9, bulletText: 28.8, bulletGap: 4.3, sectionGap: 18, labelGap: 6, iconSize: 15, iconGap: 11.6, iconInset: 11.6, contactGap: 5, signW: 150, clientTop: 16, termsBesideMax: 110 }, + gaps: { + client: { nominal: 14, min: 6 }, + meta: { nominal: 75, min: 10 }, + table: { nominal: 17, min: 6 }, + tail: { nominal: 20, min: 6 }, + }, +}; + +export const citrusSplit: TemplateDefinition = { + ...catalogEntry("citrus-split"), + version: 1, + roles: CITRUS_ROLES, + margins: CITRUS_VARIANT.margins, + marginFloor: CITRUS_VARIANT.marginFloor, + decor: { + ink: INK, + background: CITRUS_VARIANT.blush, + // The grey stripe runs the full page height on every page and the halftone fields sit on it and beside it, all + // under the flow. The stripe is anchored to the right margin, so it also follows Letter and the margin presets. + underlay: (frame) => [ + { + x: frame.page.width - frame.pad.right - CITRUS_VARIANT.stripeW, + y: 0, + width: CITRUS_VARIANT.stripeW, + height: frame.page.height, + children: <View style={{ width: CITRUS_VARIANT.stripeW, height: frame.page.height, backgroundColor: CITRUS_VARIANT.panel }} />, + }, + ...CITRUS_HALFTONE.map((field) => halftoneField(frame, field)), + ], + }, + chrome: { + color: "#6f6f6f", + rule: null, + role: CITRUS_ROLES.footer, + leftWidth: CITRUS_VARIANT.chromeLeftW, + }, + logo: { + box: { w: 144.5, h: 34 }, + stackBelowTextWidth: 0, + defaultOn: true, + slotWidth: () => 144.5, + slot: slotFor("citrus-split"), + available: () => ({ w: 144.5, h: 34 }), + }, + Layout: NorthlineLayoutFor(CITRUS_VARIANT), +}; diff --git a/src/pdf/templates/northline/layoutFor.tsx b/src/pdf/templates/northline/layoutFor.tsx new file mode 100644 index 0000000..bd8661b --- /dev/null +++ b/src/pdf/templates/northline/layoutFor.tsx @@ -0,0 +1,11 @@ +import type { ComponentType } from "react"; +import type { TemplateProps } from "../contract"; +import { NorthlineLayout } from "./Layout"; +import type { NorthlineVariant } from "./variant"; + +/** The family component bound to one variant's tokens, as the TemplateDefinition's Layout. */ +export function NorthlineLayoutFor(variant: NorthlineVariant): ComponentType<TemplateProps> { + const Layout = (props: TemplateProps) => <NorthlineLayout {...props} variant={variant} />; + Layout.displayName = `NorthlineLayout(${variant.id})`; + return Layout; +} diff --git a/src/pdf/templates/northline/northline.test.tsx b/src/pdf/templates/northline/northline.test.tsx new file mode 100644 index 0000000..a51ad49 --- /dev/null +++ b/src/pdf/templates/northline/northline.test.tsx @@ -0,0 +1,463 @@ +import { existsSync, readFileSync } from "node:fs"; +import path from "node:path"; +import { describe, expect, it } from "vitest"; +import { ASTERISK_PATH, asteriskWatermark, DOME_PATH, WATERMARK } from "../../decor/Asterisk"; +import { CITRUS_HALFTONE, halftoneDots, halftoneField, HALFTONE } from "../../decor/Halftone"; +import { CLOSING_ID, TABLE_HEAD_ID, TABLE_ROW_PREFIX, TOTALS_ID } from "../../engine/ids"; +import { walk, type LayoutNode } from "../../engine/layoutTree"; +import { measureToken, getMeasurer } from "../../engine/measure"; +import { resolveFace } from "../../fonts/roles"; +import { SLOT_ID } from "../../blocks/slots"; +import { frameForPrefs } from "../../render/invoice"; +import { loadCanvas, pagePng } from "../../testing/rasterize"; +import { catalogEntry, TEMPLATE_CATALOG } from "../catalog"; +import { marginsFor } from "../contract"; +import { buildFixture, ensureSetup, FIXTURES, prefsFor, renderFixture, type FixtureSpec } from "../harness"; +import { getTemplate, TEMPLATES } from "../registry"; +import { SLOTS } from "../slots.generated"; +import { OPTIN_SLOTS } from "../slots.optin"; +import { citrusSplit, CITRUS_ROLES, CITRUS_VARIANT } from "./citrus"; +import { planCitrus, planPurple } from "./plan"; +import { purplePop, PURPLE_ROLES, PURPLE_VARIANT } from "./purple"; +import { gotham, GOTHAM_SIZE } from "./variant"; + +ensureSetup(); + +const NORTHLINE = [purplePop, citrusSplit]; +const nodes = (layout: { nodes: LayoutNode[] }[]) => { + const out: LayoutNode[] = []; + for (const p of layout) walk(p.nodes, (n) => out.push(n)); + return out; +}; +const onPage = (r: Awaited<ReturnType<typeof renderFixture>>, i: number) => nodes([r.result.core.layout[i]]); +const imageBoxes = (r: Awaited<ReturnType<typeof renderFixture>>) => nodes(r.result.core.layout).filter((n) => n.type === "image" && !n.decor); +const textsOf = (r: Awaited<ReturnType<typeof renderFixture>>, page = 0) => r.pdf.pages[page].items.map((i) => i.str).join(" "); + +/** The colour of pixels of page 1, at 4x. */ +async function colourAt(bytes: Uint8Array, points: Array<[number, number]>): Promise<number[][]> { + const lib = await loadCanvas(); + if (!lib) return []; + const png = await pagePng(lib, bytes, 1, 4); + const img = await lib.loadImage(png); + const c = lib.createCanvas(img.width, img.height); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0); + return points.map(([x, y]) => Array.from(ctx.getImageData(Math.round(x * 4), Math.round(y * 4), 1, 1).data).slice(0, 3)); +} +/** Items with short names, like the Canva sample: the narrow Purple Pop table and the one-page Citrus Split layout both need them. */ +const SHORT = ["Consultation", "Logo design", "Web design"].map((description, i) => ({ id: i + 1, description, mode: "rate" as const, rate: 100, unit: "hour" as const, quantity: 1, amount: 0, sortOrder: i, hsnSac: "998397" })); +/** The same without an HSN/SAC code, so every row is one line tall. */ +const PLAIN = SHORT.map(({ hsnSac, ...rest }) => ({ ...rest, ...(hsnSac ? {} : {}) })); + +const near = (c: number[], hex: string, tol = 6) => { + const want = [1, 3, 5].map((i) => parseInt(hex.slice(i, i + 2), 16)); + return want.every((w, i) => Math.abs(c[i] - w) <= tol); +}; + +describe("registry, catalog and fonts", () => { + it("lists Purple Pop and Citrus Split last, in the Northline family, with their thumbnails on disk", () => { + for (const t of NORTHLINE) { + expect(getTemplate(t.id)).toBe(t); + expect(t.family).toBe("northline"); + expect(catalogEntry(t.id).name).toBe(t.name); + expect(existsSync(path.join(process.cwd(), "public", t.thumbnail)), t.thumbnail).toBe(true); + } + expect(Object.keys(TEMPLATES).slice(-2)).toEqual(["purple-pop", "citrus-split"]); + expect(TEMPLATE_CATALOG.map((e) => e.id)).toEqual(Object.keys(TEMPLATES)); + expect(TEMPLATE_CATALOG.filter((e) => e.logoOptIn).map((e) => e.id)).toEqual(["linea", "purple-pop"]); + }); + + it("Gotham tokens carry the Montserrat size factor, and the licensed faces resolve to the bundled look-alikes", () => { + expect(GOTHAM_SIZE).toBe(0.96); + expect(gotham(12)).toBe(11.52); + expect(PURPLE_ROLES.label.size).toBe(gotham(12)); + expect(CITRUS_ROLES.headNum.size).toBe(gotham(14.17)); + expect(resolveFace("Gotham")).toBe("Montserrat"); + expect(resolveFace("Now")).toBe("Jost"); + expect(resolveFace("Open Sauce One")).toBe("Poppins"); + // A user-imported font replaces the licensed name before the substitute applies. + expect(resolveFace("Gotham", { Gotham: "user:Gotham" })).toBe("user:Gotham"); + // The wordmarks: Poppins 800 at -0.08 em (Purple) and Jost 700 at -0.081 em (Citrus). + expect(PURPLE_ROLES.wordmark).toMatchObject({ face: "Open Sauce One", weight: 800, size: 94.07, tracking: -0.08 }); + expect(CITRUS_ROLES.title).toMatchObject({ face: "Now", weight: 700, size: 47.94, tracking: -0.081 }); + }); + + it("amounts are never set in Jost (it has no rupee sign): Jost is only the Citrus wordmark", () => { + for (const t of NORTHLINE) { + for (const [name, token] of Object.entries(t.roles)) { + const face = resolveFace(token.face); + if (face === "Jost") expect(name, `${t.id}.${name}`).toBe("title"); + } + } + }); +}); + +describe("page geometry", () => { + it("template margins", () => { + expect(marginsFor(purplePop, "template")).toEqual({ top: 70, right: 52.48, bottom: 40, left: 54.8 }); + expect(marginsFor(citrusSplit, "template")).toEqual({ top: 58, right: 59.68, bottom: 40, left: 73.3 }); + }); + + it("Letter keeps the physical margins and takes the missing height from the gaps", () => { + for (const t of NORTHLINE) { + const a4 = frameForPrefs(prefsFor("A4", { templateId: t.id })); + const letter = frameForPrefs(prefsFor("LETTER", { templateId: t.id })); + expect(letter.pad).toEqual(a4.pad); + expect(letter.heightDeficit).toBeCloseTo(49.89, 2); + } + }); + + it("the cream (Purple Pop) and blush (Citrus Split) page fills are the Page background, free of any page-level block", async () => { + const purple = await renderFixture({ name: "p", items: 3, logo: "none" }, prefsFor("A4", { templateId: "purple-pop" })); + const [a] = await colourAt(purple.result.bytes, [[20, 60]]); + if (a) expect(near(a, "#FEFFEE"), `cream ${a}`).toBe(true); + const citrus = await renderFixture({ name: "p", items: 3, logo: "none" }, prefsFor("A4", { templateId: "citrus-split" })); + const [b] = await colourAt(citrus.result.bytes, [[20, 300]]); + if (b) expect(near(b, "#FFF7F7"), `blush ${b}`).toBe(true); + }); +}); + +describe("decor primitives", () => { + it("the asterisk has eight arms of 16.5% and the dome fits its box", () => { + expect(ASTERISK_PATH.startsWith("M100 41.7H69.9")).toBe(true); + expect(DOME_PATH).toContain("M89.7,565.3"); + expect(WATERMARK.size).toBe(352.4); + }); + + it("each watermark box lies on the page (A4 and Letter), anchored to its corner", () => { + for (const size of ["A4", "LETTER"] as const) { + const frame = frameForPrefs(prefsFor(size, { templateId: "purple-pop" })); + const tr = asteriskWatermark(frame, "top-right", "#FFF7F7"); + const bl = asteriskWatermark(frame, "bottom-left", "#FFF7F7"); + expect(tr.x + tr.width).toBeCloseTo(frame.page.width, 6); + expect(tr.y).toBe(0); + expect(bl.x).toBe(0); + expect(bl.y + bl.height).toBeCloseTo(frame.page.height, 6); + } + }); + + it("a halftone field is 19 rows of 4 dots with the chevron's diameters, and every field lies on the page", () => { + const dots = halftoneDots(); + expect(dots).toHaveLength(HALFTONE.rows * HALFTONE.perRow); + expect(Math.min(...dots.map((d) => d.d))).toBeCloseTo(HALFTONE.minD, 2); + expect(Math.max(...dots.map((d) => d.d))).toBeCloseTo(HALFTONE.maxD, 2); + for (const size of ["A4", "LETTER"] as const) { + const frame = frameForPrefs(prefsFor(size, { templateId: "citrus-split" })); + for (const f of CITRUS_HALFTONE) { + const item = halftoneField(frame, f); + expect(item.x, f.id).toBeGreaterThanOrEqual(0); + expect(item.y, f.id).toBeGreaterThanOrEqual(0); + expect(item.x + item.width, f.id).toBeLessThanOrEqual(frame.page.width + 1e-6); + expect(item.y + item.height, f.id).toBeLessThanOrEqual(frame.page.height + 1e-6); + } + } + }); +}); + +describe("Purple Pop", () => { + it("the watermarks are fixed under the flow: two decor svgs at the page corners on every page", async () => { + const r = await renderFixture({ name: "p", items: 40, logo: "none" }, prefsFor("A4", { templateId: "purple-pop" })); + const frame = frameForPrefs(r.prefs); + expect(r.result.pages).toBeGreaterThan(1); + for (let i = 0; i < r.result.pages; i++) { + const wm = onPage(r, i).filter((n) => n.type === "svg" && n.decor && n.fixed && n.box.w > 250); + expect(wm, `page ${i + 1}`).toHaveLength(2); + const tr = wm.find((n) => n.box.y < 1)!; + const bl = wm.find((n) => n.box.x < 1)!; + expect(tr.box.x + tr.box.w).toBeCloseTo(frame.page.width, 1); + expect(bl.box.y + bl.box.h).toBeCloseTo(frame.page.height, 1); + } + }); + + it("a short invoice uses the narrow table beside the asterisk (page 1 only); a longer one the full width, without it", async () => { + const frame = frameForPrefs(prefsFor("A4", { templateId: "purple-pop" })); + const short = await renderFixture({ name: "s", items: PLAIN, logo: "none", registered: false }, prefsFor("A4", { templateId: "purple-pop" })); + const head = onPage(short, 0).find((n) => n.id === TABLE_HEAD_ID)!; + expect(head.box.x).toBeCloseTo(frame.pad.left + PURPLE_VARIANT.table.narrowLeft, 1); + const stars = (r: typeof short, i: number) => onPage(r, i).filter((n) => n.type === "svg" && n.decor && !n.fixed); + expect(stars(short, 0)).toHaveLength(1); + expect(stars(short, 0)[0].box.w).toBeCloseTo(PURPLE_VARIANT.asterisk.size, 1); + const long = await renderFixture({ name: "l", items: 12, logo: "none" }, prefsFor("A4", { templateId: "purple-pop" })); + const head2 = onPage(long, 0).find((n) => n.id === TABLE_HEAD_ID)!; + expect(head2.box.x).toBeCloseTo(frame.pad.left + PURPLE_VARIANT.table.fullLeft, 1); + expect(stars(long, 0)).toHaveLength(0); + // Every continuation page repeats the header at the full-width position. + for (let i = 1; i < long.result.pages; i++) { + const h = onPage(long, i).find((n) => n.id === TABLE_HEAD_ID); + if (h) expect(h.box.x).toBeCloseTo(frame.pad.left + PURPLE_VARIANT.table.fullLeft, 1); + } + }); + + it("header and rows are pills: purple head, then grey and yellow rows, flat colours", async () => { + const r = await renderFixture({ name: "s", items: PLAIN, logo: "none", registered: false }, prefsFor("A4", { templateId: "purple-pop" })); + const head = onPage(r, 0).find((n) => n.id === TABLE_HEAD_ID)!; + const rows = [0, 1, 2].map((i) => onPage(r, 0).find((n) => n.id === `${TABLE_ROW_PREFIX}${i}`)!); + const sample = [head, ...rows].map((n): [number, number] => [n.box.x + 8, n.box.y + n.box.h / 2]); + const colours = await colourAt(r.result.bytes, sample); + if (colours.length) { + expect(near(colours[0], "#530895"), `head ${colours[0]}`).toBe(true); + expect(near(colours[1], "#EDEDE8"), `row 1 ${colours[1]}`).toBe(true); + expect(near(colours[2], "#FFD80B"), `row 2 ${colours[2]}`).toBe(true); + expect(near(colours[3], "#EDEDE8"), `row 3 ${colours[3]}`).toBe(true); + } + // Pills are flush: each row starts where the one above ends. + for (let i = 1; i < rows.length; i++) expect(rows[i].box.y).toBeCloseTo(rows[i - 1].box.y + rows[i - 1].box.h, 1); + expect(rows[0].box.h).toBeCloseTo(PURPLE_VARIANT.table.rowH, 1); + expect(head.box.h).toBeCloseTo(PURPLE_VARIANT.table.headH, 1); + }); + + it("the INVOICE NO pill and both dates are explicit lines; TAX sits above the wordmark on a tax invoice only", async () => { + const tax = await renderFixture({ name: "t", items: 3, logo: "none" }, prefsFor("A4", { templateId: "purple-pop" })); + const text = tax.pdf.pages[0].items.map((i) => i.str.replace(/\s+/g, "")).join("").toUpperCase(); + expect(text).toContain("INVOICENO:AP/2026-001"); + expect(text).toContain("INVOICEDATE:15SEPT2026"); + expect(text).toContain("DUEDATE:15OCT2026"); + expect(tax.pdf.pages[0].items.some((i) => i.str.replace(/\s+/g, "") === "TAX")).toBe(true); + const plain = await renderFixture({ name: "t", items: 3, logo: "none", registered: false }, prefsFor("A4", { templateId: "purple-pop" })); + expect(plain.pdf.pages[0].items.some((i) => i.str.replace(/\s+/g, "") === "TAX")).toBe(false); + }); + + it("the wordmark's ink stays inside its box, whatever the page size", async () => { + for (const size of ["A4", "LETTER"] as const) { + const r = await renderFixture({ name: "w", items: 3, logo: "none" }, prefsFor(size, { templateId: "purple-pop" })); + expect(r.result.issues.filter((i) => i.code === "overflow-x"), size).toEqual([]); + } + }); + + it("the logo is opt-in: off by default, on in the opt-in area, a mark keeps the name, a wordmark replaces it", async () => { + expect(purplePop.logo.optIn).toBe(true); + expect(purplePop.logo.defaultOn).toBe(false); + expect(purplePop.logo.slot).toBe(OPTIN_SLOTS["purple-pop"]); + const off = await renderFixture({ name: "o", items: 2, logo: "real" }, prefsFor("A4", { templateId: "purple-pop" })); + expect(imageBoxes(off)).toHaveLength(0); + expect(off.pdf.pages[0].items.filter((i) => i.str.trim() === "Arun P" && i.bottom < 130)).toHaveLength(1); + const on = (logo: FixtureSpec["logo"]) => renderFixture({ name: "o", items: 2, logo }, prefsFor("A4", { templateId: "purple-pop", logo: { show: true } })); + const wide = await on("real"); + const [img] = imageBoxes(wide); + expect(imageBoxes(wide)).toHaveLength(1); + const slot = OPTIN_SLOTS["purple-pop"]!.lockup!; + expect(img.box.h).toBeLessThanOrEqual(slot.h + 0.01); + expect(img.box.w).toBeLessThanOrEqual(slot.w + 0.01); + expect(img.box.x).toBeCloseTo(frameForPrefs(wide.prefs).pad.left + PURPLE_VARIANT.head.nameInset, 0); + expect(wide.pdf.pages[0].items.filter((i) => i.str.trim() === "Arun P" && i.bottom < 130)).toHaveLength(0); + const square = await on("square"); + expect(imageBoxes(square)).toHaveLength(1); + expect(square.pdf.pages[0].items.filter((i) => i.str.trim() === "Arun P" && i.bottom < 130)).toHaveLength(1); + }); + + it("the dome and the TOTAL pill travel with the totals; amount in words sits under the pill", async () => { + const r = await renderFixture({ name: "t", items: SHORT, logo: "none" }, prefsFor("A4", { templateId: "purple-pop" })); + const totals = onPage(r, 0).find((n) => n.id === TOTALS_ID)!; + const inside = (n: LayoutNode) => n.box.y >= totals.box.y - 0.5 && n.box.y + n.box.h <= totals.box.y + totals.box.h + 0.5; + expect(onPage(r, 0).filter((n) => n.type === "svg" && !n.decor && inside(n))).toHaveLength(1); + const words = onPage(r, 0).find((n) => n.id === SLOT_ID.amountInWords)!; + const pill = onPage(r, 0).find((n) => n.type === "view" && Math.abs(n.box.h - PURPLE_VARIANT.totals.pillH) < 0.6 && n.box.w > 300 && inside(n))!; + expect(words.box.y).toBeGreaterThanOrEqual(pill.box.y + pill.box.h); + }); + + it("long terms flow as a block of their own and never make the closing block taller than a page", async () => { + const spec = FIXTURES.find((f) => f.name === "long-notes")!; + const r = await renderFixture(spec, prefsFor("A4", { templateId: "purple-pop" })); + const closing = nodes(r.result.core.layout).find((n) => n.id === CLOSING_ID)!; + expect(closing.box.h).toBeLessThan(260); + const plan = planPurple(r.fixture.model, frameForPrefs(r.prefs), PURPLE_VARIANT, null, false); + expect(plan.terms.beside).toBe(false); + expect(r.pdf.pages.map((p, i) => textsOf(r, i)).join(" ")).toContain("Note 18"); + }); +}); + +describe("Citrus Split", () => { + it("the grey stripe is a full-height underlay on every page, anchored to the right margin, on both sizes and every margin preset", async () => { + for (const size of ["A4", "LETTER"] as const) { + for (const margins of ["template", "narrow", "normal"] as const) { + const r = await renderFixture({ name: "p", items: 40, logo: "none" }, prefsFor(size, { templateId: "citrus-split", margins })); + const frame = frameForPrefs(r.prefs); + expect(r.result.pages).toBeGreaterThan(1); + for (let i = 0; i < r.result.pages; i++) { + const stripe = onPage(r, i).filter((n) => n.type === "view" && n.id === "decor" && n.fixed && Math.abs(n.box.w - CITRUS_VARIANT.stripeW) < 0.01 && n.box.h > frame.page.height - 1); + expect(stripe, `${size}/${margins} p${i + 1}`).toHaveLength(1); + expect(stripe[0].box.x).toBeCloseTo(frame.page.width - frame.pad.right - CITRUS_VARIANT.stripeW, 1); + expect(stripe[0].box.y).toBeCloseTo(0, 1); + // Three halftone fields on every page. + expect(onPage(r, i).filter((n) => n.type === "svg" && n.decor && n.fixed), `${size}/${margins} p${i + 1} halftone`).toHaveLength(3); + } + } + } + }); + + it("the numeric columns fill the stripe exactly, so amounts always print on the grey", async () => { + for (const size of ["A4", "LETTER"] as const) { + const r = await renderFixture({ name: "p", items: 6, logo: "none" }, prefsFor(size, { templateId: "citrus-split" })); + const frame = frameForPrefs(r.prefs); + const stripeX = frame.page.width - frame.pad.right - CITRUS_VARIANT.stripeW; + const plan = planCitrus(r.fixture.model, frame, CITRUS_VARIANT, null, false); + expect(plan.cw.qty + plan.cw.rate + plan.cw.amount).toBeCloseTo(CITRUS_VARIANT.stripeW, 1); + expect(plan.table.widths[0] + frame.pad.left + CITRUS_VARIANT.table.left).toBeCloseTo(stripeX, 1); + // Every body amount starts inside the stripe. + for (const t of r.pdf.pages[0].items) if (/^₹[\d,]+\.\d\d$/.test(t.str.trim()) && t.top > 250) expect(t.x0, t.str).toBeGreaterThan(stripeX - 0.5); + } + }); + + it("the header: SERVICE on an orange cell, the numeric headings on white; zebra rows span the left part", async () => { + const r = await renderFixture({ name: "s", items: 3, logo: "none", registered: false }, prefsFor("A4", { templateId: "citrus-split" })); + const frame = frameForPrefs(r.prefs); + const head = onPage(r, 0).find((n) => n.id === TABLE_HEAD_ID)!; + const row1 = onPage(r, 0).find((n) => n.id === `${TABLE_ROW_PREFIX}1`)!; + expect(head.box.h).toBeCloseTo(CITRUS_VARIANT.table.headH, 0); + const stripeX = frame.page.width - frame.pad.right - CITRUS_VARIANT.stripeW; + const colours = await colourAt(r.result.bytes, [ + [head.box.x + 3, head.box.y + 3], + [stripeX + 3, head.box.y + 3], + [head.box.x + 3, row1.box.y + 3], + [head.box.x + 3, row1.box.y - 3], + ]); + if (colours.length) { + expect(near(colours[0], "#FF9220"), `SERVICE cell ${colours[0]}`).toBe(true); + expect(near(colours[1], "#FFFFFF"), `numeric heading band ${colours[1]}`).toBe(true); + expect(near(colours[2], "#F1F1F1"), `zebra ${colours[2]}`).toBe(true); + expect(near(colours[3], "#FFF7F7"), `row above is blush ${colours[3]}`).toBe(true); + } + }); + + it("the client block sits beside the totals when the invoice fits a page, above the table when it does not", async () => { + const short = await renderFixture({ name: "s", items: PLAIN, logo: "none", registered: false }, prefsFor("A4", { templateId: "citrus-split" })); + expect(planCitrus(short.fixture.model, frameForPrefs(short.prefs), CITRUS_VARIANT, null, false).clientAbove).toBe(false); + const client = short.pdf.pages[0].items.find((i) => i.str.toUpperCase().includes("ACME"))!; + const headY = onPage(short, 0).find((n) => n.id === TABLE_HEAD_ID)!.box.y; + expect(client.top).toBeGreaterThan(headY); + const long = await renderFixture({ name: "l", items: 60, logo: "none" }, prefsFor("A4", { templateId: "citrus-split" })); + expect(planCitrus(long.fixture.model, frameForPrefs(long.prefs), CITRUS_VARIANT, null, false).clientAbove).toBe(true); + const client2 = long.pdf.pages[0].items.find((i) => i.str.toUpperCase().includes("ACME"))!; + expect(client2.top).toBeLessThan(onPage(long, 0).find((n) => n.id === TABLE_HEAD_ID)!.box.y); + }); + + it("the contact list carries three icons in the closing block, right-aligned beside the stripe's right edge", async () => { + const r = await renderFixture({ name: "s", items: 3, logo: "none", registered: false }, prefsFor("A4", { templateId: "citrus-split" })); + const closing = onPage(r, r.result.pages - 1).find((n) => n.id === CLOSING_ID)!; + const icons = onPage(r, r.result.pages - 1).filter((n) => n.type === "svg" && !n.decor && n.box.y >= closing.box.y && n.box.w === CITRUS_VARIANT.closing.iconSize); + expect(icons).toHaveLength(3); + const frame = frameForPrefs(r.prefs); + for (const i of icons) expect(i.box.x + i.box.w).toBeLessThanOrEqual(frame.page.width - frame.pad.right + 0.5); + const text = textsOf(r, r.result.pages - 1); + expect(text).toContain("9738284459"); + expect(text).toContain("arunakira113@gmail.com"); + }); + + it("the logo stays inside its measured lockup box; a wordmark replaces the name, a mark keeps it", async () => { + const slot = SLOTS["citrus-split"]!.lockup!; + const withLogo = { name: "o", items: 2, logo: "real" as const }; + const wide = await renderFixture(withLogo, prefsFor("A4", { templateId: "citrus-split" })); + const [img] = imageBoxes(wide); + expect(imageBoxes(wide)).toHaveLength(1); + expect(img.box.h).toBeLessThanOrEqual(slot.h + 0.6); + expect(img.box.w).toBeLessThanOrEqual(slot.w + 0.6); + const frame = frameForPrefs(wide.prefs); + expect(img.box.x).toBeGreaterThanOrEqual(frame.page.width - frame.pad.right - CITRUS_VARIANT.stripeW); + expect(wide.pdf.pages[0].items.filter((i) => i.str.trim() === "Arun P" && i.bottom < 130)).toHaveLength(0); + const square = await renderFixture({ ...withLogo, logo: "square" }, prefsFor("A4", { templateId: "citrus-split" })); + expect(square.pdf.pages[0].items.filter((i) => i.str.trim() === "Arun P" && i.bottom < 130)).toHaveLength(1); + const none = await renderFixture({ ...withLogo, logo: "none" }, prefsFor("A4", { templateId: "citrus-split" })); + expect(none.pdf.pages[0].items.filter((i) => i.str.trim() === "Arun P" && i.bottom < 130)).toHaveLength(1); + }); + + it("the totals label column never wraps ('TAXABLE VALUE', 'UTGST @ 14%')", async () => { + const r = await renderFixture({ name: "t", items: 3, logo: "none", vendor: { vendorStateCode: "04", vendorGstin: "04AAAAA0000A1Z5" }, invoice: { placeOfSupplyStateCode: "04" } }, prefsFor("A4", { templateId: "citrus-split" })); + const totals = onPage(r, 0).find((n) => n.id === TOTALS_ID)!; + const labels = nodes([r.result.core.layout[0]]).filter((n) => n.type === "text" && n.box.y >= totals.box.y && /TAXABLE|UTGST|CGST/.test(n.text ?? "")); + expect(labels.length).toBeGreaterThan(2); + for (const l of labels) expect(l.lines).toHaveLength(1); + }); + + it("long terms flow as a block of their own", async () => { + const r = await renderFixture(FIXTURES.find((f) => f.name === "long-notes")!, prefsFor("A4", { templateId: "citrus-split" })); + expect(planCitrus(r.fixture.model, frameForPrefs(r.prefs), CITRUS_VARIANT, null, false).closing.termsBeside).toBe(false); + const closing = nodes(r.result.core.layout).find((n) => n.id === CLOSING_ID)!; + expect(closing.box.h).toBeLessThan(300); + }); +}); + +describe("the GST slots and the closing", () => { + it("every GST slot has a home on a tax invoice", async () => { + for (const t of NORTHLINE) { + const r = await renderFixture({ name: "t", items: 2, logo: "none", signature: true }, prefsFor("A4", { templateId: t.id })); + const ids = new Set(nodes(r.result.core.layout).flatMap((n) => (n.id ? [n.id] : []))); + for (const id of [`${SLOT_ID.gstin}-supplier`, `${SLOT_ID.gstin}-client`, SLOT_ID.pos, SLOT_ID.taxRows, SLOT_ID.amountInWords, SLOT_ID.signatory, SLOT_ID.reverseCharge]) expect(ids.has(id), `${t.id} #${id}`).toBe(true); + const flat = r.pdf.pages.flatMap((p) => p.items.map((i) => i.str)).join("").replace(/\s+/g, "").toUpperCase(); + for (const word of ["SUBTOTAL", "TAXABLEVALUE", "CGST@9%", "SGST@9%", "HSN/SAC:998397", "PAN:CPOPP7388K"]) expect(flat, `${t.id} ${word}`).toContain(word); + } + }); + + it("an unregistered invoice carries none of the GST slots", async () => { + for (const t of NORTHLINE) { + const r = await renderFixture(FIXTURES.find((f) => f.name === "unregistered")!, prefsFor("A4", { templateId: t.id })); + const ids = new Set(nodes(r.result.core.layout).flatMap((n) => (n.id ? [n.id] : []))); + for (const id of [`${SLOT_ID.gstin}-supplier`, SLOT_ID.pos, SLOT_ID.taxRows, SLOT_ID.reverseCharge]) expect(ids.has(id), `${t.id} #${id}`).toBe(false); + } + }); +}); + +describe("long text", () => { + it("long names, addresses and unbroken tokens raise no audit error", async () => { + for (const t of NORTHLINE) { + for (const size of ["A4", "LETTER"] as const) { + for (const name of ["id-tokens", "long-address", "long-client"]) { + const r = await renderFixture(FIXTURES.find((f) => f.name === name)!, prefsFor(size, { templateId: t.id })); + expect(r.result.issues.filter((i) => i.severity === "error"), `${t.id}/${size}/${name}`).toEqual([]); + } + } + } + }); + + it("a long invoice number shrinks inside the Purple Pop pill and the vendor name keeps its room", async () => { + const r = await renderFixture({ name: "n", items: 2, logo: "none", invoice: { number: "AB/2026-27/0012345" } }, prefsFor("A4", { templateId: "purple-pop" })); + expect(r.result.issues.filter((i) => i.severity === "error")).toEqual([]); + expect(r.pdf.pages[0].items.map((i) => i.str.replace(/\s+/g, "")).join("")).toContain("AB/2026-27/0012345"); + }); +}); + +describe("plan matches the laid-out blocks", () => { + for (const t of NORTHLINE) { + for (const size of ["A4", "LETTER"] as const) { + for (const spec of FIXTURES) { + it(`${t.id}/${spec.name} on ${size}`, async () => { + const prefs = prefsFor(size, { templateId: t.id }); + const frame = frameForPrefs(prefs); + // Logo-less (Purple Pop's logo is off anyway), so the plan made here is the one the layout made. + const r = await renderFixture({ ...spec, logo: "none" }, prefs); + const find = (id: string) => { + const hits: number[] = []; + for (const page of r.result.core.layout) walk(page.nodes, (n) => n.id === id && hits.push(n.box.h)); + expect(hits).toHaveLength(1); + return hits[0]; + }; + const plan = t.id === "purple-pop" ? planPurple(r.fixture.model, frame, PURPLE_VARIANT, null, false) : planCitrus(r.fixture.model, frame, CITRUS_VARIANT, null, false); + expect(plan.tailH - find(TOTALS_ID), "tail prediction vs layout").toBeGreaterThanOrEqual(-0.01); + expect(plan.tailH - find(TOTALS_ID)).toBeLessThanOrEqual(20 + plan.gaps.tail); + expect(plan.closingH - find(CLOSING_ID), "closing prediction vs layout").toBeGreaterThanOrEqual(-0.01); + // A wrapped footer or contact line is estimated at most a line or two high (never low). + expect(plan.closingH - find(CLOSING_ID)).toBeLessThanOrEqual(24); + }); + } + } + } +}); + +describe("measured fit", () => { + it("the Purple Pop wordmark and the Citrus title take about the design's width in the substitute faces", () => { + const m = getMeasurer(); + // Canva: 'Invoice' 292.2 pt wide (Open Sauce One 700); 'INVOICE' 189.7 pt (Now Bold). + expect(Math.abs(measureToken(m, PURPLE_ROLES.wordmark, "Invoice") - 292.2)).toBeLessThan(16); + expect(Math.abs(measureToken(m, CITRUS_ROLES.title, "Invoice") - 189.7)).toBeLessThan(16); + }); +}); + +describe("design docs", () => { + it("each Northline doc records its implementation notes", () => { + for (const f of ["12-purple-pop.md", "13-citrus-split.md"]) { + const text = readFileSync(path.join(process.cwd(), "docs/templates", f), "utf8"); + expect(text, f).toContain("## Implementation notes"); + } + }); +}); + +void buildFixture; diff --git a/src/pdf/templates/northline/plan.ts b/src/pdf/templates/northline/plan.ts new file mode 100644 index 0000000..563e710 --- /dev/null +++ b/src/pdf/templates/northline/plan.ts @@ -0,0 +1,553 @@ +import type { ColSpec } from "../../engine/columns"; +import type { PageFrame } from "../../engine/geometry"; +import { getMeasurer, measureToken } from "../../engine/measure"; +import { textHeight, textLines } from "../../engine/textplan"; +import { DOME_BOX } from "../../decor/Asterisk"; +import { fitSize } from "../../blocks/FitText"; +import { planItemsTable, type CellPart, type ItemsTablePlan, type TableCellValue } from "../../blocks/ItemsTable"; +import { signatoryHeight, Slot, slotHeights, type SignatoryOptions } from "../../blocks/slots"; +import type { TypeToken } from "../../fonts/roles"; +import type { RenderModel } from "../../model/build"; +import type { PlacedLogo } from "../contract"; +import { bankLines, CANCELLED_SENTENCE, elastic, rateCell } from "../neutral/plan"; +import type { CitrusVariant, PurpleVariant } from "./variant"; + +/** How both templates print a tax row's label: "CGST @ 9%". */ +export const atRate = (label: string, rate: string | undefined) => (rate ? `${label} @ ${rate}` : label); +export const leading = (t: TypeToken) => t.leading as number; +const round2 = (n: number) => Math.round(n * 100) / 100; + +/** Space between the client label and the name pill, and between the pill and the address lines. */ +export const CLIENT_LABEL_GAP = 9; +export const CLIENT_PILL_GAP = 6; +/** Gap between a mark and the vendor name beside it. */ +export const MARK_GAP = 8; +/** Gap between the stack's last row and the TOTAL pill. */ +export const PILL_GAP = 8; +export const REVERSE_GAP = 4; +/** Width of a bullet dot and the space after it. */ +export const BULLET = { dot: 3.8, textAt: 12.7 }; +/** Rows of the bullet column are this far apart on top of their line height. */ +export const BULLET_GAP = 3; +export const CLOSING_COLUMN_GAP = 12; +/** Space above terms that flow as their own block (more bullets than fit beside the signature). */ +export const NOTES_FLOW_GAP = 14; +/** Top of the dome below the totals box top (Canva: 565.3 against the subtotal row at 541.5). */ +export const DOME_TOP = 22; + +/** The notes as bullet lines: one bullet per note line. */ +export const termsLines = (model: RenderModel): string[] => model.notesLines; + +export interface ContactEntry { + icon: "phone" | "email" | "location"; + lines: string[]; + /** Identifiers (phone, e-mail) shrink instead of wrapping; free text wraps. */ + id: boolean; +} + +/** The supplier's phone, e-mail and address as an icon list. */ +export function contactEntries(model: RenderModel): ContactEntry[] { + const s = model.supplier; + const out: ContactEntry[] = []; + if (s.phone) out.push({ icon: "phone", lines: [s.phone], id: true }); + if (s.email) out.push({ icon: "email", lines: [s.email], id: true }); + if (s.addressLines.length) out.push({ icon: "location", lines: s.addressLines, id: false }); + return out; +} + +export function signatureOptions(roles: { name: TypeToken; designation: TypeToken; fine: TypeToken }, imageHeight: number, color: string, align: "left" | "right"): SignatoryOptions { + return { roles, align, rule: { width: 0.75, color }, color, imageHeight }; +} + +/** Lines an identifier takes in IdText: one when it fits (shrinking to the role's minimum), else the chunked row, over-estimated. */ +export function idLines(role: TypeToken, text: string, width: number): number { + const f = fitSize(role, text, Math.max(1, width)); + return f.fits ? 1 : Math.max(2, Math.ceil(f.width / Math.max(1, width)) + 1); +} + +/** Plain shrink-wrapped width of a one-line text. */ +export const widthOf = (role: TypeToken, text: string, size?: number) => Math.ceil(measureToken(getMeasurer(), role, text, size ? { size } : {})) + 1; + +export const priceOf = (rateText: string | null) => (rateText ? (/^(.*) per (second|minute|hour|session|unit)$/.exec(rateText)?.[1] ?? rateText) : "—"); + +/** The table's description + HSN/SAC sub-line, qty, rate (amount over its unit) and amount cells. */ +export function tableRows(model: RenderModel, rateW: number, body: TypeToken, sub: TypeToken): TableCellValue[][] { + const hsn = Slot.HsnSac(model); + return model.items.map((item, i) => { + const rate = rateCell(item.rateText, rateW, body); + const rateParts: TableCellValue = typeof rate === "string" ? rate : ([rate[0], { text: rate[1], role: sub }] as CellPart[]); + const desc: TableCellValue = hsn && slotHeights.hasHsn(hsn.values[i]) ? [...item.descriptionLines, { text: `${hsn.header}: ${hsn.values[i]}`, role: sub }] : item.descriptionLines; + return [desc, item.qtyText, rateParts, item.amountText]; + }); +} + +/** Width of a numeric column: the design's, or wider when the widest value or the header needs it. */ +export function numericColW(base: number, body: TypeToken, head: TypeToken, texts: string[], headText: string, pad = 6): number { + const m = getMeasurer(); + const widest = Math.max(0, ...texts.map((t) => measureToken(m, body, t)), measureToken(m, head, headText)); + return Math.max(base, Math.ceil(widest) + pad); +} + +// --- Purple Pop --------------------------------------------------------------------------------------------- + +export interface PurplePlan { + kind: "purple"; + v: PurpleVariant; + W: number; + head: { + innerW: number; + pillText: string; + pillSize: number; + pillW: number; + leftW: number; + showName: boolean; + nameW: number; + nameLeft: number; + boxH: number; + linesH: number; + h: number; + }; + client: { cellW: number; wordmarkW: number; pillW: number; pillBoxH: number; lineW: number; clientH: number }; + title: { size: number; tax: boolean; h: number; w: number; pad: number }; + rowH: number; + band: { amountW: number; datesW: number; dateSize: number; lines: string[]; amountText: string; amountSize: number; h: number }; + mode: "narrow" | "full"; + tableLeft: number; + tableW: number; + columns: ColSpec[]; + headerCells: string[]; + rows: TableCellValue[][]; + align: Array<"left" | "center" | "right">; + padY: number; + headPadY: number; + table: ItemsTablePlan; + guardH: number; + tail: { gutter: number; boxW: number; valueW: number; stack: Array<{ label: string; amount: string }>; slotRows: number; stackRowH: number; stackH: number; wordsW: number; wordsH: number; reverseH: number; body: number }; + /** `beside`: the bullets sit next to the signature in the closing block; otherwise they flow as their own block before it. */ + terms: { lines: string[]; beside: boolean; fillW: number; bulletW: number; bulletsH: number; signH: number; h: number; flowW: number; flowBulletW: number; flowH: number }; + footer: { bank: string[]; contacts: ContactEntry[]; bankH: number; contactH: number; addressH: number; textW: { contact: number; address: number }; h: number }; + gaps: { client: number; rule: number; band: number; table: number; tail: number }; + tailH: number; + closingH: number; + /** Page-space y of the first-page asterisk's top, or null when the table is full width. */ + asteriskY: number | null; +} + +export function planPurple(model: RenderModel, frame: PageFrame, v: PurpleVariant, logo: PlacedLogo | null, includesName: boolean): PurplePlan { + const m = getMeasurer(); + const r = v.roles; + const W = frame.contentWidth; + + // --- header: name (and the opt-in logo) at the left, the INVOICE NO pill at the right ------------------- + const innerW = W - v.head.nameInset - v.head.pillInset; + const showName = !(logo && includesName) && model.supplier.name.trim() !== ""; + const markW = logo?.w ?? 0; + const nameLeft = markW > 0 ? markW + (showName ? MARK_GAP : 0) : 0; + const label = model.meta.numberLabel.replace(/\.$/, ""); + const pillText = `${label} : ${model.meta.number}`; + const pillTextMax = Math.max(40, innerW - 12 - nameLeft - v.head.minNameW - 2 * v.head.pillPadX); + const fit = fitSize(r.pill, pillText, pillTextMax); + const pillW = Math.ceil(fit.width) + 2 * v.head.pillPadX + 2; + const leftW = innerW - pillW - 12; + const nameW = showName ? Math.min(v.head.nameMaxW, leftW - nameLeft) : 0; + const nameH = showName ? textHeight(r.brand, model.supplier.name, nameW) : 0; + const boxH = Math.max(v.head.pillH, nameH, logo?.h ?? 0); + const s = model.supplier; + const linesH = (slotHeights.gstinLines(model, "supplier") + (s.pan ? 1 : 0)) * leading(r.small); + const headH = Math.max(boxH + linesH, v.head.pillH); + + // --- client column and the wordmark ------------------------------------------------------------------------- + const cellW = v.client.colW - v.client.colGap; + const c = model.client; + const pillNatural = widthOf(r.clientName, c.name); + const pillW2 = Math.min(cellW, pillNatural + 2 * v.client.pillPadX); + const pillLines = textLines(r.clientName, c.name, pillW2 - 2 * v.client.pillPadX); + const pillBoxH = Math.max(v.client.pillH, pillLines * leading(r.clientName) + 2 * ((v.client.pillH - leading(r.clientName)) / 2)); + const lineW = cellW - v.client.inset; + let clientH = leading(r.label) + CLIENT_LABEL_GAP + pillBoxH + CLIENT_PILL_GAP; + for (const l of c.addressLines) clientH += textHeight(r.clientLine, l, lineW); + clientH += slotHeights.gstinLines(model, "client") * leading(r.clientLine) + slotHeights.placeOfSupplyLines(model, r.clientLine, lineW) * leading(r.clientLine); + + const wordmarkW = W - v.client.colW - v.client.wordmarkInset; + const tax = model.docType === "tax_invoice"; + const wmPad = Math.abs((r.wordmark.tracking ?? 0) * r.wordmark.size); + const wm = fitSize(r.wordmark, "Invoice", wordmarkW - wmPad); + const titleH = leading(r.wordmark) + (tax ? leading(r.taxCaption) + 2 : 0); + const rowH = Math.max(clientH, titleH); + + // --- amount due and dates --------------------------------------------------------------------------------- + const bandInner = W - v.band.amountInset - v.band.datesInset; + const dateLines = [`Invoice Date : ${model.meta.date}`, ...(model.meta.dueDate ? [`Due Date : ${model.meta.dueDate}`] : []), ...(c.poNumber ? [`PO : ${c.poNumber}`] : [])]; + const widest = dateLines.reduce((a, b) => (widthOf(r.date, b) > widthOf(r.date, a) ? b : a)); + const amountMin = 150; + const dFit = fitSize(r.date, widest, bandInner - v.band.gap - amountMin); + const datesW = Math.ceil(dFit.width) + 2; + const amountW = bandInner - v.band.gap - datesW; + const aFit = fitSize(r.amount, model.totals.totalText, amountW); + const bandH = Math.max(leading(r.label) + leading(r.amount) + 2, dateLines.length * leading(r.date)); + + // --- table: the narrow variant (beside the asterisk) or the full width --------------------------------------- + const t = v.table; + const rowsFor = (rateW: number) => tableRows(model, rateW, r.tableBody, r.tableSub); + const headerCells = ["Service", "Qty", "Rate", "Amount"]; + const align: PurplePlan["align"] = ["left", "center", "right", "right"]; + const padY = (t.rowH - leading(r.tableBody)) / 2; + const headPadY = (t.headH - leading(r.tableHead)) / 2; + const priced = model.items.map((i) => priceOf(i.rateText)); + const build = (left: number, base: { qty: number; rate: number; amount: number }) => { + const tableW = round2(W - left - t.right); + const inner = tableW - 2 * t.inset; + const cw = { + qty: numericColW(base.qty, r.tableBody, r.tableHead, model.items.map((i) => i.qtyText), "QTY"), + rate: numericColW(base.rate, r.tableBody, r.tableHead, priced, "RATE"), + amount: numericColW(base.amount, r.tableBody, r.tableHead, model.items.map((i) => i.amountText), "AMOUNT"), + }; + const columns: ColSpec[] = [{ fill: true }, { fixed: cw.qty }, { fixed: cw.rate }, { fixed: cw.amount }]; + const rows = rowsFor(cw.rate - 2); + return { tableW, inner, cw, columns, rows, descW: inner - cw.qty - cw.rate - cw.amount }; + }; + const plan = (b: ReturnType<typeof build>, tailH: number) => + planItemsTable({ + columns: b.columns, + gap: 0, + width: b.inner, + header: headerCells, + rows: b.rows, + measurer: m, + roles: { head: r.tableHead, body: r.tableBody }, + padX: 0, + padY, + headPadY, + border: 0, + tailH, + contentH: frame.contentHeight, + }); + const narrowB = build(t.narrowLeft, t.cols); + let mode: "narrow" | "full" = "full"; + if (model.items.length <= 3 && narrowB.descW >= t.narrowDescMin) { + const probe = plan(narrowB, 0); + if (probe.rowLines.every((n) => n <= 2)) mode = "narrow"; + } + const fullB = build(t.fullLeft, { qty: 46, rate: 100, amount: 108 }); + const b = mode === "narrow" ? narrowB : fullB; + const tableLeft = mode === "narrow" ? t.narrowLeft : t.fullLeft; + + // --- totals: the stack, the TOTAL pill, amount in words --------------------------------------------------------- + const tt = model.totals; + const stack: Array<{ label: string; amount: string }> = [{ label: "Subtotal", amount: tt.subtotalText }]; + if (tt.discountText) stack.push({ label: "Discount", amount: `- ${tt.discountText}` }); + if (tt.taxableText) stack.push({ label: "Taxable value", amount: tt.taxableText }); + const slotRows = slotHeights.taxRowCount(model); + const gutter = round2(W - v.totals.boxW); + const boxW = v.totals.boxW; + const taxTexts = slotHeights.taxRowTexts(model, atRate); + const valueTexts = [tt.subtotalText, tt.totalText, ...(tt.discountText ? [`- ${tt.discountText}`] : []), ...(tt.taxableText ? [tt.taxableText] : []), ...taxTexts.map((x) => x.amount)]; + const valueW = Math.max(100, Math.ceil(Math.max(...valueTexts.map((x) => measureToken(m, r.totalValue, x)))) + 2); + const stackRowH = leading(r.totalLabel) + v.totals.rowGap; + const stackH = (stack.length + slotRows) * stackRowH; + const wordsW = boxW - v.totals.labelInset - v.totals.pillValueInset; + const wordsH = slotHeights.amountInWords(model, wordsW, { role: r.words, labelRole: r.wordsLabel }); + const reverseH = slotHeights.reverseCharge(model, wordsW, r.small); + const boxBody = stackH + PILL_GAP + v.totals.pillH + (wordsH ? v.totals.wordsGap + wordsH : 0) + (reverseH ? REVERSE_GAP + reverseH : 0); + // The dome in the left gutter must not make the row taller than its totals box. + const tailBody = Math.max(boxBody, DOME_TOP + DOME_BOX.h * (v.dome.w / DOME_BOX.w)); + + // --- closing: terms and signature, the rule, the three footer columns ---------------------------------------------- + const lines = termsLines(model); + const signW = v.terms.signW; + const fillW = W - (v.terms.labelInset + v.terms.labelW) - signW - 2 * CLOSING_COLUMN_GAP; + const bulletW = fillW - BULLET.textAt; + const bulletsH = lines.reduce((h, l) => h + textHeight(r.bullet, l, bulletW) + BULLET_GAP, 0) - (lines.length ? BULLET_GAP : 0); + const sOpts = signatureOptions({ name: r.signName, designation: r.small, fine: r.fine }, v.signatureImageH, v.ink, "right"); + const signH = signatoryHeight(model, signW, sOpts); + const beside = lines.length === 0 || bulletsH <= v.terms.besideMax; + const flowW = W - v.terms.labelInset - 7; + const flowBulletW = flowW - BULLET.textAt; + const flowH = beside ? 0 : leading(r.termsLabel) + 4 + lines.reduce((h, l) => h + textHeight(r.bullet, l, flowBulletW) + BULLET_GAP, 0) - BULLET_GAP; + const termsH = beside ? Math.max(lines.length ? leading(r.termsLabel) : 0, bulletsH, signH) : signH; + const bank = bankLines(model); + const bankH = model.bank ? leading(r.label) + 4 + bank.reduce((h, l) => h + textHeight(r.bank, l, v.footer.bankW), 0) : 0; + const contacts = contactEntries(model); + const contactText = v.footer.contactW - v.footer.iconW - v.footer.iconGap; + const addressText = W - v.footer.addressLeft - v.footer.iconW - v.footer.iconGap; + const phoneMail = contacts.filter((x) => x.icon !== "location"); + const address = contacts.find((x) => x.icon === "location"); + const contactH = phoneMail.reduce((h, x) => h + idLines(r.contact, x.lines[0], contactText) * leading(r.contact) + 1.5, 0); + const addressH = address ? address.lines.reduce((h, l) => h + textHeight(r.contact, l, addressText), 0) : 0; + const footerH = Math.max(bankH, contactH, addressH); + let closingH = v.gaps.termsAbove + termsH + v.gaps.ruleGap + v.rule.w + v.gaps.ruleGap + footerH + 1.5; + if (model.cancelled) closingH += 10 + textHeight(r.small, CANCELLED_SENTENCE, W); + + // --- gaps: the elastic ones give back Letter's missing height, or an overflow within their slack ------------------------ + const ranges = { client: v.gaps.client, rule: v.gaps.rule, band: v.gaps.band, table: v.gaps.table, tail: v.gaps.tail }; + const table0 = plan(b, 0); + const tableTotal = table0.headH + table0.rowHeights.reduce((a, x) => a + x, 0); + const tailNominal = ranges.tail.nominal + tailBody; + const notesBlock = beside ? 0 : NOTES_FLOW_GAP + flowH; + const nominalTotal = headH + ranges.client.nominal + rowH + ranges.rule.nominal + v.rule.w + ranges.band.nominal + bandH + ranges.table.nominal + tableTotal + tailNominal + notesBlock + closingH; + const slack = Object.values(ranges).reduce((sum, rg) => sum + rg.nominal - rg.min, 0); + const overflow = nominalTotal - frame.contentHeight; + // Everything on one page when the gaps can give back the overflow; failing that, keep the items and totals together + // on page 1 and let only the closing block move to the next page. + const overflowBeforeClosing = nominalTotal - closingH - frame.contentHeight; + const fits = overflow > 0 && overflow <= slack ? overflow : overflowBeforeClosing > 0 && overflowBeforeClosing <= slack ? overflowBeforeClosing : 0; + const deficit = Math.max(frame.heightDeficit, fits); + const g = elastic(ranges, deficit); + const tailH = g.tail + tailBody; + const table = plan(b, tailH); + const guardH = table.headH + 1 + Math.min(table.firstRowH, frame.contentHeight * 0.4) + (b.rows.length === 1 ? tailH : 0); + const asteriskY = mode === "narrow" ? round2(frame.pad.top + headH + g.client + rowH + g.rule + v.rule.w + g.band + bandH + g.table + v.asterisk.offsetY) : null; + + return { + kind: "purple", + v, + W, + head: { innerW, pillText, pillSize: fit.size, pillW, leftW, showName, nameW, nameLeft, boxH, linesH, h: headH }, + client: { cellW, wordmarkW, pillW: pillW2, pillBoxH, lineW, clientH }, + title: { size: wm.size, tax, h: titleH, w: wordmarkW, pad: Math.abs((r.wordmark.tracking ?? 0) * wm.size) }, + rowH, + band: { amountW, datesW, dateSize: dFit.size, lines: dateLines, amountText: model.totals.totalText, amountSize: aFit.size, h: bandH }, + mode, + tableLeft, + tableW: b.tableW, + columns: b.columns, + headerCells, + rows: b.rows, + align, + padY, + headPadY, + table, + guardH, + tail: { gutter, boxW, valueW, stack, slotRows, stackRowH, stackH, wordsW, wordsH, reverseH, body: tailBody }, + terms: { lines, beside, fillW, bulletW, bulletsH, signH, h: termsH, flowW, flowBulletW, flowH }, + footer: { bank, contacts, bankH, contactH, addressH, textW: { contact: contactText, address: addressText }, h: footerH }, + gaps: g, + tailH, + closingH, + asteriskY, + }; +} + +// --- Citrus Split -------------------------------------------------------------------------------------------- + +export interface CitrusPlan { + kind: "citrus"; + v: CitrusVariant; + W: number; + /** The stripe's left edge from the content edge. */ + Lw: number; + panelW: number; + /** The client block above the table (an invoice longer than a page), instead of beside the totals. */ + clientAbove: boolean; + head: { titleW: number; titleSize: number; tax: boolean; titleH: number; showName: boolean; nameW: number; nameLeft: number; nameH: number; boxH: number; h: number }; + client: { w: number; h: number; nameW: number }; + meta: { noW: number; dateW: number; dueW: number; amountW: number; spacer: number; hasDue: boolean; h: number }; + tableLeft: number; + tableW: number; + columns: ColSpec[]; + headerCells: TableCellValue[]; + rows: TableCellValue[][]; + align: Array<"left" | "center" | "right">; + padLeft: number[]; + padRight: number[]; + padY: number; + headPadY: number; + cw: { qty: number; rate: number; amount: number }; + table: ItemsTablePlan; + guardH: number; + tail: { leftW: number; valueW: number; barValueW: number; stack: Array<{ label: string; amount: string }>; slotRows: number; stackRowH: number; stackH: number; panelH: number; leftH: number; body: number; wordsW: number; wordsH: number; reverseH: number }; + closing: { + bank: string[]; + terms: string[]; + /** Terms in the closing's left column; otherwise a flowing block before the closing. */ + termsBeside: boolean; + flowW: number; + flowBulletW: number; + flowH: number; + leftH: number; + bankH: number; + termsH: number; + bulletW: number; + contacts: ContactEntry[]; + contactTextW: number; + contactsH: number; + idLinesH: number; + signH: number; + rightH: number; + h: number; + }; + gaps: { client: number; meta: number; table: number; tail: number }; + tailH: number; + closingH: number; +} + +export function planCitrus(model: RenderModel, frame: PageFrame, v: CitrusVariant, logo: PlacedLogo | null, includesName: boolean): CitrusPlan { + const m = getMeasurer(); + const r = v.roles; + const W = frame.contentWidth; + const panelW = v.stripeW; + const Lw = round2(W - panelW); + const c = model.client; + const s = model.supplier; + + // --- header: the wordmark at the left, the mark and name inside the panel --------------------------------- + const tax = model.docType === "tax_invoice"; + const titleW = Lw - 8; + const tFit = fitSize(r.title, "Invoice", titleW); + const titleH = leading(r.title) + (tax ? leading(r.taxCaption) + 2 : 0); + const showName = !(logo && includesName) && s.name.trim() !== ""; + const markW = logo?.w ?? 0; + const nameLeft = v.head.panelInset + (markW > 0 ? markW + (showName ? v.head.markGap : 0) : 0); + const nameW = showName ? Math.max(60, panelW - nameLeft - 4) : 0; + const nameH = showName ? textHeight(r.brand, s.name, nameW) : 0; + const boxH = Math.max(logo?.h ?? 0, nameH); + const headH = Math.max(titleH, boxH); + + // --- client block ------------------------------------------------------------------------------------------- + const cw = Lw - v.client.inset - 8; + let clientH = leading(r.billedLabel) + v.client.labelGap + textHeight(r.clientName, c.name, cw) + v.client.nameGap; + for (const l of c.addressLines) clientH += textHeight(r.clientLine, l, cw); + clientH += slotHeights.gstinLines(model, "client") * leading(r.clientLine) + slotHeights.placeOfSupplyLines(model, r.clientLine, cw) * leading(r.clientLine); + if (c.poNumber) clientH += textHeight(r.clientLine, `PO: ${c.poNumber}`, cw); + + // --- meta row ---------------------------------------------------------------------------------------------- + const mt = v.meta; + const hasDue = Boolean(model.meta.dueDate); + const noLabel = `${model.meta.numberLabel.replace(/\.$/, "")} :`; + const noW = Math.min(Lw - mt.inset - mt.dateMin, Math.max(mt.noMin, widthOf(r.metaLabel, noLabel) + 8, Math.ceil(measureToken(m, r.metaValue, model.meta.number)) + 10)); + const dateW = round2(Lw - mt.inset - noW); + const spacer = mt.panelInset; + const dueW = mt.dueW; + const amountW = round2(panelW - spacer - dueW); + const metaH = leading(r.metaLabel) + mt.labelGap + leading(r.metaValue); + + // --- table ---------------------------------------------------------------------------------------------------- + const t = v.table; + const tableW = round2(W - t.left); + const priced = model.items.map((i) => priceOf(i.rateText)); + const amountNeed = Math.ceil(Math.max(0, ...model.items.map((i) => measureToken(m, r.tableBody, i.amountText)), measureToken(m, r.headNum, "AMOUNT"))) + 14 + 4; + const rateNeed = Math.ceil(Math.max(0, ...priced.map((p) => measureToken(m, r.tableBody, p)), measureToken(m, r.headNum, "RATE"))) + 14 + 4; + const qtyNeed = Math.ceil(Math.max(0, ...model.items.map((i) => measureToken(m, r.tableBody, i.qtyText)), measureToken(m, r.headNum, "QTY"))) + 6; + const amount = Math.max(t.cols.amount, amountNeed); + const rate = Math.max(t.cols.rate, rateNeed); + const qty = Math.max(Math.min(36, panelW), round2(panelW - rate - amount)); + const cwid = { qty: Math.max(qty, qtyNeed), rate, amount: round2(panelW - Math.max(qty, qtyNeed) - rate) }; + const columns: ColSpec[] = [{ fill: true }, { fixed: cwid.qty }, { fixed: cwid.rate }, { fixed: cwid.amount }]; + const headerCells: TableCellValue[] = [[{ text: "Service", role: r.headService }], [{ text: "Qty", role: r.headNum }], [{ text: "Rate", role: r.headNum }], [{ text: "Amount", role: r.headNum }]]; + const align: CitrusPlan["align"] = ["left", "center", "right", "right"]; + const padLeft = [t.bodyInset, 0, 0, 0]; + const padRight = [t.descRight, 0, 14, 13.6]; + const headPadY = (t.headH - leading(r.headNum)) / 2; + const rows = tableRows(model, cwid.rate - 14 - 2, r.tableBody, r.tableSub); + const planTable = (padY: number, tailH: number) => + planItemsTable({ columns, gap: 0, width: tableW, header: headerCells, rows, measurer: m, roles: { head: r.headNum, body: r.tableBody }, padX: 0, padLeft, padRight, padY, headPadY, border: 0, tailH, contentH: frame.contentHeight }); + + // --- totals panel and the tail row ---------------------------------------------------------------------------- + const tt = model.totals; + const stack: Array<{ label: string; amount: string }> = [{ label: "Subtotal", amount: tt.subtotalText }]; + if (tt.discountText) stack.push({ label: "Discount", amount: `- ${tt.discountText}` }); + if (tt.taxableText) stack.push({ label: "Taxable value", amount: tt.taxableText }); + const slotRows = slotHeights.taxRowCount(model); + const taxTexts = slotHeights.taxRowTexts(model, atRate); + const valueTexts = [tt.subtotalText, ...(tt.discountText ? [`- ${tt.discountText}`] : []), ...(tt.taxableText ? [tt.taxableText] : []), ...taxTexts.map((x) => x.amount)]; + const innerTotals = panelW - v.totals.labelInset - v.totals.valueInset; + const stackLabels = [...stack.map((x) => x.label), ...taxTexts.map((x) => x.label)]; + const widestLabel = Math.ceil(Math.max(...stackLabels.map((l) => measureToken(m, r.totalLabel, l)))) + 4; + // The amounts take their own width; the labels get the rest and never wrap (the row height is one line). + const valueW = Math.min(innerTotals - widestLabel, Math.max(64, Math.ceil(Math.max(...valueTexts.map((x) => measureToken(m, r.totalValue, x)))) + 2)); + const barValueW = Math.max(valueW, Math.ceil(Math.max(measureToken(m, r.grandValue, tt.totalText), 0)) + 2); + const stackRowH = leading(r.totalLabel) + v.totals.rowGap; + const stackH = (stack.length + slotRows) * stackRowH; + // Amount in words sits under the TOTAL bar (the design's tagline slot), right-aligned. + const wordsW = panelW - 2 * 13.1; + const wordsH = slotHeights.amountInWords(model, wordsW, { role: r.words, labelRole: r.wordsLabel }); + const reverseH = slotHeights.reverseCharge(model, wordsW, r.small); + const panelTail = v.separator.h + v.totals.sepGap + stackH + v.totals.barGap + v.totals.barH + (wordsH ? v.totals.wordsGap + wordsH : 0) + (reverseH ? REVERSE_GAP + reverseH : 0); + const tailLeftW = Lw - t.left; + const leftTail = v.totals.sepGap + clientH; + + // --- closing: method and terms at the left; words, contacts, signature in the panel column -------------------------- + const cl = v.closing; + const bank = bankLines(model); + const bankH = model.bank ? leading(r.sectionLabel) + cl.labelGap + bank.reduce((h, l) => h + textHeight(r.bank, l, Lw - cl.bankInset - 8), 0) : 0; + const terms = termsLines(model); + const bulletW = Lw - cl.bulletText - 8; + const termsH = terms.length ? leading(r.sectionLabel) + cl.labelGap + terms.reduce((h, l) => h + textHeight(r.bullet, l, bulletW), 0) + (terms.length - 1) * cl.bulletGap : 0; + const termsBeside = terms.length === 0 || termsH <= cl.termsBesideMax; + const flowW = W - cl.methodInset - 8; + const flowBulletW = flowW - (cl.bulletText - cl.methodInset); + const flowH = termsBeside ? 0 : leading(r.sectionLabel) + cl.labelGap + terms.reduce((h, l) => h + textHeight(r.bullet, l, flowBulletW), 0) + (terms.length - 1) * cl.bulletGap; + const leftH = bankH + (termsBeside && bankH && termsH ? cl.sectionGap : 0) + (termsBeside ? termsH : 0); + const contacts = contactEntries(model); + const contactTextW = panelW - (cl.iconGap + cl.iconSize + cl.iconInset) - 8; + const contactsH = contacts.reduce((h, x) => h + (x.id ? idLines(r.contact, x.lines[0], contactTextW) * leading(r.contact) : x.lines.reduce((a, l) => a + textHeight(r.contact, l, contactTextW), 0)) + cl.contactGap, 0) - (contacts.length ? cl.contactGap : 0); + const idLinesH = (slotHeights.gstinLines(model, "supplier") + (s.pan ? 1 : 0)) * leading(r.small); + const sOpts = signatureOptions({ name: r.signName, designation: r.small, fine: r.fine }, v.signatureImageH, v.text, "right"); + const signH = signatoryHeight(model, cl.signW, sOpts); + const parts = [contactsH + (idLinesH ? 4 + idLinesH : 0), signH].filter((x) => x > 0); + const rightH = parts.reduce((a, b) => a + b, 0) + (parts.length - 1) * 12; + let closingH = cl.clientTop + Math.max(leftH, rightH) + 1.5; + if (model.cancelled) closingH += 10 + textHeight(r.small, CANCELLED_SENTENCE, W); + + // --- gaps. The client block sits beside the totals when the invoice fits one page, above the table otherwise. ------------- + const padYn = t.padY; + const n = rows.length; + const run = (clientAbove: boolean) => { + const tailBody = Math.max(panelTail, clientAbove ? 0 : leftTail); + const ranges = { + client: clientAbove ? v.gaps.client : { nominal: 0, min: 0 }, + meta: clientAbove ? { nominal: 24, min: 12 } : v.gaps.meta, + table: v.gaps.table, + tail: v.gaps.tail, + rowPad: { nominal: 2 * padYn * n, min: 2 * t.padYMin * n }, + }; + const table0 = planTable(padYn, 0); + const tableTotal = table0.headH + table0.rowHeights.reduce((a, x) => a + x, 0); + const nominalTotal = headH + (clientAbove ? ranges.client.nominal + clientH : 0) + ranges.meta.nominal + metaH + ranges.table.nominal + tableTotal + ranges.tail.nominal + tailBody + (termsBeside ? 0 : NOTES_FLOW_GAP + flowH) + closingH; + const slack = Object.values(ranges).reduce((sum, rg) => sum + rg.nominal - rg.min, 0); + return { tailBody, ranges, nominalTotal, slack, tableTotal }; + }; + const faithful = run(false); + const clientAbove = faithful.nominalTotal - faithful.slack > frame.contentHeight; + const chosen = clientAbove ? run(true) : faithful; + const { tailBody, ranges, nominalTotal, slack } = chosen; + const overflow = nominalTotal - frame.contentHeight; + const overflowBeforeClosing = nominalTotal - closingH - frame.contentHeight; + const fits = overflow > 0 && overflow <= slack ? overflow : overflowBeforeClosing > 0 && overflowBeforeClosing <= slack ? overflowBeforeClosing : 0; + const deficit = Math.max(frame.heightDeficit, fits); + const g = elastic(ranges, deficit); + const padY = n ? g.rowPad / (2 * n) : padYn; + const tailH = g.tail + tailBody; + const table = planTable(padY, tailH); + const guardH = table.headH + 1 + Math.min(table.firstRowH, frame.contentHeight * 0.4) + (rows.length === 1 ? tailH : 0); + + return { + kind: "citrus", + v, + W, + Lw, + panelW, + clientAbove, + head: { titleW, titleSize: tFit.size, tax, titleH, showName, nameW, nameLeft, nameH, boxH, h: headH }, + client: { w: cw, h: clientH, nameW: cw }, + meta: { noW, dateW, dueW, amountW, spacer, hasDue, h: metaH }, + tableLeft: t.left, + tableW, + columns, + headerCells, + rows, + align, + padLeft, + padRight, + padY, + headPadY, + cw: cwid, + table, + guardH, + tail: { leftW: tailLeftW, valueW, barValueW, stack, slotRows, stackRowH, stackH, panelH: panelTail, leftH: leftTail, body: tailBody, wordsW, wordsH, reverseH }, + closing: { bank, terms, termsBeside, flowW, flowBulletW, flowH, leftH, bankH, termsH, bulletW, contacts, contactTextW, contactsH, idLinesH, signH, rightH, h: closingH }, + gaps: { client: g.client, meta: g.meta, table: g.table, tail: g.tail }, + tailH, + closingH, + }; +} diff --git a/src/pdf/templates/northline/purple.tsx b/src/pdf/templates/northline/purple.tsx new file mode 100644 index 0000000..aadd400 --- /dev/null +++ b/src/pdf/templates/northline/purple.tsx @@ -0,0 +1,129 @@ +import { defineRoles } from "../../fonts/roles"; +import { asteriskWatermark } from "../../decor/Asterisk"; +import { catalogEntry } from "../catalog"; +import type { TemplateDefinition } from "../contract"; +import { slotFor } from "../slots.optin"; +import { NorthlineLayoutFor } from "./layoutFor"; +import { gotham, type PurpleRoles, type PurpleVariant } from "./variant"; + +const DM = "DM Sans" as const; +const G = "Gotham" as const; +const INK = "#060605"; +export const PURPLE = "#530895"; +export const YELLOW = "#FFD80B"; + +/** + * Purple Pop's type (docs/templates/12-purple-pop.md): DM Sans for names, amounts, dates and the table; + * Gotham (drawn in Montserrat, sizes through gotham()) for the labels, client lines, totals and footer; + * the "Invoice" wordmark in Open Sauce One 700, which is Poppins 800 here at the design's -0.08 em. + * Leadings are the design's pitch, tightened where a Voiced invoice carries more lines than the sample. + */ +export const PURPLE_ROLES = defineRoles({ + wordmark: { face: "Open Sauce One", weight: 800, size: 94.07, leading: 84, tracking: -0.08, minSize: 48 }, + taxCaption: { face: DM, weight: 700, size: 14, leading: 18, tracking: 0.15, caps: true }, + brand: { face: DM, weight: 700, size: 17.77, leading: 21, minSize: 12 }, + pill: { face: G, weight: 700, size: gotham(13.39), leading: 17, tracking: 0.13, caps: true, minSize: 8.5 }, + label: { face: G, weight: 700, size: gotham(12), leading: 16, caps: true }, + clientName: { face: G, weight: 700, size: gotham(14.39), leading: 18, caps: true }, + clientLine: { face: G, weight: 400, size: gotham(10.16), leading: 15.5 }, + amount: { face: DM, weight: 700, size: 32.74, leading: 36, minSize: 20, tnum: true }, + date: { face: DM, weight: 700, size: 14.05, leading: 19.5, caps: true, minSize: 10 }, + tableHead: { face: DM, weight: 700, size: 14, leading: 18, caps: true }, + tableBody: { face: DM, weight: 400, size: 11.83, leading: 15 }, + tableSub: { face: DM, weight: 400, size: 9, leading: 11.5 }, + totalLabel: { face: G, weight: 700, size: gotham(13), leading: 17, caps: true }, + totalValue: { face: G, weight: 400, size: gotham(13), leading: 17 }, + grand: { face: G, weight: 700, size: gotham(13), leading: 17, caps: true }, + grandValue: { face: G, weight: 700, size: gotham(13), leading: 17 }, + words: { face: DM, weight: 400, size: 10, leading: 13 }, + wordsLabel: { face: DM, weight: 700, size: 10, leading: 13 }, + termsLabel: { face: DM, weight: 700, size: 13, leading: 17, caps: true }, + bullet: { face: DM, weight: 400, size: 11, leading: 14.2 }, + bank: { face: G, weight: 400, size: gotham(11), leading: 12.5 }, + contact: { face: G, weight: 400, size: gotham(10.14), leading: 15, minSize: 7 }, + small: { face: DM, weight: 400, size: 9, leading: 12 }, + fine: { face: DM, weight: 400, size: 7, leading: 10 }, + signName: { face: DM, weight: 700, size: 9.5, leading: 13 }, + footer: { face: DM, weight: 400, size: 7 }, +} satisfies PurpleRoles); + +/** + * Canva A4: content x 54.8..542.8, so the left margin is 54.8 and the right 52.48. The pill's top is y 77 (the + * row starts there) and the footer ends near y 772, so the bottom margin is 40 plus the footer reserve. + */ +export const PURPLE_VARIANT: PurpleVariant = { + id: "purple-pop", + roles: PURPLE_ROLES, + ink: INK, + purple: PURPLE, + yellow: YELLOW, + grey: "#E5E5E5", + rowGrey: "#EDEDE8", + cream: "#FEFFEE", + watermark: "#FFF7F7", + margins: { top: 70, right: 52.48, bottom: 40, left: 54.8 }, + marginFloor: { top: 36, right: 36, bottom: 24, left: 36 }, + signatureImageH: 40, + chromeLeftW: 150, + head: { nameInset: 4.7, pillInset: 11.9, pillH: 33.2, pillPadX: 20, nameMaxW: 240, minNameW: 110 }, + client: { inset: 12.3, pillH: 33.2, pillPadX: 12.3, colW: 183.4, colGap: 8.4, wordmarkInset: 12.4 }, + rule: { w: 1.5, left: 10, right: 9.4 }, + band: { amountInset: 17, datesInset: 23.1, gap: 12 }, + table: { + narrowLeft: 122.1, + fullLeft: 4.7, + right: 3.4, + inset: 15, + headH: 46.6, + rowH: 32.7, + radiusHead: 23.3, + radiusRow: 16.35, + cols: { qty: 40, rate: 90, amount: 100 }, + narrowDescMin: 100, + }, + asterisk: { size: 71.5, offsetX: 2.2, offsetY: 19.5 }, + dome: { x: 2.2, w: 65.3 }, + totals: { boxW: 369.4, labelInset: 18.6, valueInset: 20.8, rowGap: 3, pillH: 41, pillValueInset: 13.7, wordsGap: 8 }, + terms: { labelInset: 17, labelW: 118, signW: 190, besideMax: 90 }, + footer: { ruleLeft: 12.6, ruleRight: 6.8, bankW: 143, contactLeft: 163.7, contactW: 158, addressLeft: 325.9, iconW: 11.2, iconGap: 9 }, + gaps: { + client: { nominal: 35, min: 10 }, + rule: { nominal: 18, min: 6 }, + band: { nominal: 18, min: 6 }, + table: { nominal: 20, min: 8 }, + tail: { nominal: 14, min: 6 }, + termsAbove: 8, + ruleGap: 7, + }, +}; + +export const purplePop: TemplateDefinition = { + ...catalogEntry("purple-pop"), + version: 1, + roles: PURPLE_ROLES, + margins: PURPLE_VARIANT.margins, + marginFloor: PURPLE_VARIANT.marginFloor, + decor: { + ink: INK, + background: PURPLE_VARIANT.cream, + // The pale watermarks sit under the flow, on every page, anchored to the page corners. Nothing is printed + // over them that needs a clear ground, so there are no keep-outs. + underlay: (frame) => [asteriskWatermark(frame, "top-right", PURPLE_VARIANT.watermark), asteriskWatermark(frame, "bottom-left", PURPLE_VARIANT.watermark)], + }, + chrome: { + color: "#6f6f6f", + rule: null, + role: PURPLE_ROLES.footer, + leftWidth: PURPLE_VARIANT.chromeLeftW, + }, + logo: { + box: { w: 200, h: 34 }, + stackBelowTextWidth: 0, + defaultOn: false, + optIn: catalogEntry("purple-pop").logoOptIn === true, + slotWidth: () => 200, + slot: slotFor("purple-pop"), + available: () => ({ w: 200, h: 34 }), + }, + Layout: NorthlineLayoutFor(PURPLE_VARIANT), +}; diff --git a/src/pdf/templates/northline/variant.ts b/src/pdf/templates/northline/variant.ts new file mode 100644 index 0000000..ee96a91 --- /dev/null +++ b/src/pdf/templates/northline/variant.ts @@ -0,0 +1,169 @@ +import type { Sides } from "../../engine/geometry"; +import type { TypeToken } from "../../fonts/roles"; +import type { GapRange } from "../neutral/variant"; + +/** + * Gotham (commercial) is drawn with Montserrat, which runs about 4% wider at the same size. Every Gotham-derived + * size is multiplied by this when a token is defined, so the substitute takes the width the design has. A real + * Gotham imported over the licensed name would need these tokens at factor 1. + */ +export const GOTHAM_SIZE = 0.96; +const round2 = (n: number) => Math.round(n * 100) / 100; +/** The size a Gotham design value takes in Montserrat. */ +export const gotham = (designSize: number) => round2(designSize * GOTHAM_SIZE); + +/** Type roles of Purple Pop (DM Sans, Gotham -> Montserrat, the wordmark in Poppins 800). */ +export interface PurpleRoles { + /** The oversized "Invoice" wordmark. */ + wordmark: TypeToken; + /** "TAX" above the wordmark on a tax invoice. */ + taxCaption: TypeToken; + brand: TypeToken; + /** "INVOICE NO : 012345" in the grey pill. */ + pill: TypeToken; + /** "BILLED TO:", "AMOUNT DUE:", "PAYMENT METHOD". */ + label: TypeToken; + clientName: TypeToken; + clientLine: TypeToken; + amount: TypeToken; + date: TypeToken; + tableHead: TypeToken; + tableBody: TypeToken; + tableSub: TypeToken; + totalLabel: TypeToken; + totalValue: TypeToken; + grand: TypeToken; + grandValue: TypeToken; + words: TypeToken; + wordsLabel: TypeToken; + termsLabel: TypeToken; + bullet: TypeToken; + bank: TypeToken; + contact: TypeToken; + /** GSTIN and PAN under the vendor name. */ + small: TypeToken; + fine: TypeToken; + signName: TypeToken; + footer: TypeToken; +} + +/** Type roles of Citrus Split (Now -> Jost for the wordmark, DM Sans, Gotham -> Montserrat). */ +export interface CitrusRoles { + title: TypeToken; + taxCaption: TypeToken; + brand: TypeToken; + metaLabel: TypeToken; + metaValue: TypeToken; + metaStrong: TypeToken; + billedLabel: TypeToken; + clientName: TypeToken; + clientLine: TypeToken; + headService: TypeToken; + headNum: TypeToken; + tableBody: TypeToken; + tableSub: TypeToken; + totalLabel: TypeToken; + totalValue: TypeToken; + grand: TypeToken; + grandValue: TypeToken; + words: TypeToken; + wordsLabel: TypeToken; + sectionLabel: TypeToken; + bank: TypeToken; + bullet: TypeToken; + contact: TypeToken; + small: TypeToken; + fine: TypeToken; + signName: TypeToken; + footer: TypeToken; +} + +export type NorthlineId = "purple-pop" | "citrus-split"; + +interface Common { + margins: Sides; + marginFloor: Sides; + signatureImageH: number; + chromeLeftW: number; +} + +/** + * Purple Pop: y values are design distances measured on the Canva A4 page (docs/templates/12-purple-pop.md) + * converted to flow gaps; x values are relative to the content edge (the left margin, x 54.8), so the same + * tokens serve every margin preset and both page sizes. + */ +export interface PurpleVariant extends Common { + id: "purple-pop"; + roles: PurpleRoles; + ink: string; + purple: string; + yellow: string; + grey: string; + /** Alternate item row fill (the grey at 68% on cream, flattened). */ + rowGrey: string; + cream: string; + watermark: string; + /** Header: inset of the vendor name and of the pill's right edge from the content edges. */ + head: { nameInset: number; pillInset: number; pillH: number; pillPadX: number; nameMaxW: number; minNameW: number }; + /** Client column: label inset, pill padding, the column's width and the gap to the wordmark. */ + client: { inset: number; pillH: number; pillPadX: number; colW: number; colGap: number; wordmarkInset: number }; + rule: { w: number; left: number; right: number }; + /** Amount due / dates band. */ + band: { amountInset: number; datesInset: number; gap: number }; + /** Table: left offset of the narrow variant, the right inset, the pill paddings and the column widths. */ + table: { narrowLeft: number; fullLeft: number; right: number; inset: number; headH: number; rowH: number; radiusHead: number; radiusRow: number; cols: { qty: number; rate: number; amount: number }; narrowDescMin: number }; + asterisk: { size: number; offsetX: number; offsetY: number }; + dome: { x: number; w: number }; + totals: { boxW: number; labelInset: number; valueInset: number; rowGap: number; pillH: number; pillValueInset: number; wordsGap: number }; + terms: { labelInset: number; labelW: number; signW: number; besideMax: number }; + footer: { ruleLeft: number; ruleRight: number; bankW: number; contactLeft: number; contactW: number; addressLeft: number; iconW: number; iconGap: number }; + gaps: { + /** Header row (or its GSTIN/PAN lines) to the client row. */ + client: GapRange; + rule: GapRange; + band: GapRange; + table: GapRange; + tail: GapRange; + termsAbove: number; + ruleGap: number; + }; +} + +/** + * Citrus Split (docs/templates/13-citrus-split.md). x values are relative to the content edge (the left + * margin, x 73.3 on the Canva page); the grey stripe is anchored to the RIGHT margin, so on Letter the extra + * width goes to the left column. + */ +export interface CitrusVariant extends Common { + id: "citrus-split"; + roles: CitrusRoles; + ink: string; + text: string; + blush: string; + panel: string; + orange: string; + label: string; + /** Orange of the icon glyphs. */ + icon: string; + stripeW: number; + /** The header's panel cell: inset of the logo from the stripe's left edge, and the gap between a mark and the name. */ + head: { panelInset: number; markGap: number }; + /** Client block: inset of its text from the content edge and the gap to the stripe. */ + client: { inset: number; gap: number; labelGap: number; nameGap: number }; + /** Meta row: inset of the first cell, minimum cell widths, panel-side start, gap between a label and its value. */ + meta: { inset: number; noMin: number; dateMin: number; dueW: number; panelInset: number; labelGap: number }; + /** Table: left offset from the content edge, header height, the SERVICE text inset, body text inset and row padding, columns. */ + table: { left: number; headH: number; headInset: number; bodyInset: number; padY: number; padYMin: number; descRight: number; cols: { qty: number; rate: number; amount: number } }; + separator: { color: string; h: number }; + totals: { labelInset: number; valueInset: number; rowGap: number; barH: number; barInset: number; barGap: number; sepGap: number; wordsGap: number }; + closing: { methodInset: number; bankInset: number; bulletInset: number; bulletText: number; bulletGap: number; sectionGap: number; labelGap: number; iconSize: number; iconGap: number; iconInset: number; contactGap: number; signW: number; clientTop: number; termsBesideMax: number }; + gaps: { + /** Client block above the table (only when the invoice is more than a page). */ + client: GapRange; + meta: GapRange; + table: GapRange; + tail: GapRange; + }; +} + +export type NorthlineVariant = PurpleVariant | CitrusVariant; diff --git a/src/pdf/templates/registry.ts b/src/pdf/templates/registry.ts index 52ad90e..2ebc0b5 100644 --- a/src/pdf/templates/registry.ts +++ b/src/pdf/templates/registry.ts @@ -5,6 +5,8 @@ import { crimsonGrid } from "./ledger/crimson"; import { tangerineLedger } from "./ledger/tangerine"; import { slateBand } from "./band/slate"; import { tealSwoosh } from "./band/teal"; +import { citrusSplit } from "./northline/citrus"; +import { purplePop } from "./northline/purple"; import { monogram } from "./neutral/monogram"; import { serenity } from "./neutral/serenity"; @@ -18,6 +20,8 @@ export const TEMPLATES: Record<string, TemplateDefinition> = { "tangerine-ledger": tangerineLedger, "slate-band": slateBand, "teal-swoosh": tealSwoosh, + "purple-pop": purplePop, + "citrus-split": citrusSplit, }; export const DEFAULT_TEMPLATE_ID = "classic";