From 5f63dc876b0ab66670a956af983a1fd9b9470242 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Wed, 13 May 2026 09:26:38 +0200 Subject: [PATCH] feat: new template (scizor) --- .github/ISSUE_TEMPLATE/1-bug-report.yml | 1 + .planning/codebase/CONVENTIONS.md | 2 +- .planning/codebase/STRUCTURE.md | 2 +- README.md | 4 ++++ docs/changelog/index.mdx | 2 +- docs/getting-started/index.mdx | 2 +- docs/guides/choosing-a-template.mdx | 4 ++++ docs/guides/exporting-your-resume.mdx | 4 +++- docs/guides/json-resume-schema.mdx | 3 ++- docs/images/templates/scizor.webp | Bin 0 -> 63274 bytes docs/spec.json | 3 ++- packages/schema/schema.json | 3 ++- packages/utils/src/resume/docx/builder.ts | 21 ++++++++++++++++----- skills/resume-builder/SKILL.md | 2 +- skills/resume-builder/references/schema.md | 2 +- 15 files changed, 40 insertions(+), 15 deletions(-) create mode 100644 docs/images/templates/scizor.webp diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.yml b/.github/ISSUE_TEMPLATE/1-bug-report.yml index 83319a1b9..d7ea3a564 100644 --- a/.github/ISSUE_TEMPLATE/1-bug-report.yml +++ b/.github/ISSUE_TEMPLATE/1-bug-report.yml @@ -53,6 +53,7 @@ body: - Onyx - Pikachu - Rhyhorn + - Scizor validations: required: false diff --git a/.planning/codebase/CONVENTIONS.md b/.planning/codebase/CONVENTIONS.md index 78e207b5d..c58addda7 100644 --- a/.planning/codebase/CONVENTIONS.md +++ b/.planning/codebase/CONVENTIONS.md @@ -147,7 +147,7 @@ When changing resume data shape, propagate in this order (per `AGENTS.md`): 1. **`packages/schema/src/resume/*.ts`** — Zod schemas and types (entry point). 2. **`packages/api/src/dto/*.ts`** — API DTOs that re-use those schemas. 3. **`packages/import/src/*.tsx`** — importers (`json-resume`, `reactive-resume-json`, `reactive-resume-v4-json`). -4. **`packages/pdf/src/templates/**`** — PDF rendering for every template (`azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`). Shared filtering: `packages/pdf/src/templates/shared/filtering.ts`. +4. **`packages/pdf/src/templates/**`** — PDF rendering for every template (`azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`, `scizor`). Shared filtering: `packages/pdf/src/templates/shared/filtering.ts`. 5. **`apps/web/src/`** — builder forms and any consumer hooks. Adding/renaming a template requires changes in `packages/schema/src/templates.ts`, `packages/pdf/src/templates/index.ts`, the template directory `packages/pdf/src/templates//`, and static previews under `apps/web/public/templates/{jpg,pdf}/`. diff --git a/.planning/codebase/STRUCTURE.md b/.planning/codebase/STRUCTURE.md index 9f5d58221..461b7f57e 100644 --- a/.planning/codebase/STRUCTURE.md +++ b/.planning/codebase/STRUCTURE.md @@ -176,7 +176,7 @@ reactive-resume/ **`packages/pdf/`:** - Purpose: React PDF rendering — the same code paths used by the browser preview and the server-side PDF download. -- Key paths: `packages/pdf/src/document.tsx`, `packages/pdf/src/context.tsx`, `packages/pdf/src/section-title.ts`, `packages/pdf/src/hooks/use-register-fonts.ts`, `packages/pdf/src/templates/index.ts`, `packages/pdf/src/templates//Page.tsx` (14 templates: `azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`), shared primitives under `packages/pdf/src/templates/shared/` (`filtering.ts`, `rich-text.tsx`, `sections.tsx`, `primitives.tsx`, `picture.ts`, `page-size.ts`, `columns.ts`, `metrics.ts`, `meta-line.tsx`, `contact.ts`, `contact-item.tsx`, `level-display.tsx`, `section-links.ts`, `rich-text-html.ts`, `rich-text-spacing.ts`, `styles.ts`, `types.ts`, `context.tsx`). +- Key paths: `packages/pdf/src/document.tsx`, `packages/pdf/src/context.tsx`, `packages/pdf/src/section-title.ts`, `packages/pdf/src/hooks/use-register-fonts.ts`, `packages/pdf/src/templates/index.ts`, `packages/pdf/src/templates//Page.tsx` (14 templates: `azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`, `scizor`), shared primitives under `packages/pdf/src/templates/shared/` (`filtering.ts`, `rich-text.tsx`, `sections.tsx`, `primitives.tsx`, `picture.ts`, `page-size.ts`, `columns.ts`, `metrics.ts`, `meta-line.tsx`, `contact.ts`, `contact-item.tsx`, `level-display.tsx`, `section-links.ts`, `rich-text-html.ts`, `rich-text-spacing.ts`, `styles.ts`, `types.ts`, `context.tsx`). **`packages/runtime-externals/`:** - Purpose: Vendors `bcrypt`, `sharp`, `@aws-sdk/client-s3` so they stay runtime-only (Vite externalizes them in `apps/web/vite.config.ts:55`). diff --git a/README.md b/README.md index 102a08f85..60e4cef53 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,10 @@ Built with privacy as a core principle, Reactive Resume gives you complete owner Meowth
Meowth + + Scizor +
Scizor + diff --git a/docs/changelog/index.mdx b/docs/changelog/index.mdx index 59dec74c7..e13591577 100644 --- a/docs/changelog/index.mdx +++ b/docs/changelog/index.mdx @@ -89,7 +89,7 @@ rss: true ## Highlights - **PDF generation moved fully client-side.** `@react-pdf/renderer` now produces the exported PDF directly in your browser, and the in-builder live preview is rendered with `pdfjs`, so what you see in the preview is exactly what you'll download. -- **All resume templates re-ported.** Azurill, Bronzor, Chikorita, Ditgar, Ditto, Gengar, Glalie, Kakuna, Lapras, Leafish, Meowth, Onyx, Pikachu, and Rhyhorn have all been re-implemented on the new renderer with section-by-section parity. +- **All resume templates re-ported.** Azurill, Bronzor, Chikorita, Ditgar, Ditto, Gengar, Glalie, Kakuna, Lapras, Leafish, Meowth, Onyx, Pikachu, Rhyhorn, and Scizor have all been re-implemented on the new renderer with section-by-section parity. ## Resume Builder diff --git a/docs/getting-started/index.mdx b/docs/getting-started/index.mdx index 6d1dce69a..129320ef5 100644 --- a/docs/getting-started/index.mdx +++ b/docs/getting-started/index.mdx @@ -40,7 +40,7 @@ description: "Welcome to the documentation for Reactive Resume, a free and open- Choose from a variety of professionally designed templates including Azurill, Bronzor, Chikorita, Ditgar, Ditto, - Gengar, Glalie, Kakuna, Lapras, Leafish, Meowth, Onyx, Pikachu, and Rhyhorn - each with unique layouts and styles. + Gengar, Glalie, Kakuna, Lapras, Leafish, Meowth, Onyx, Pikachu, Rhyhorn, and Scizor - each with unique layouts and styles. diff --git a/docs/guides/choosing-a-template.mdx b/docs/guides/choosing-a-template.mdx index 9a2580a64..2f31986ae 100644 --- a/docs/guides/choosing-a-template.mdx +++ b/docs/guides/choosing-a-template.mdx @@ -147,6 +147,10 @@ Reactive Resume includes a variety of professionally designed templates. Each te Rhyhorn template preview + + + Scizor template preview + --- diff --git a/docs/guides/exporting-your-resume.mdx b/docs/guides/exporting-your-resume.mdx index 967a11ac0..f4d199de8 100644 --- a/docs/guides/exporting-your-resume.mdx +++ b/docs/guides/exporting-your-resume.mdx @@ -931,6 +931,7 @@ The exported JSON follows the Reactive Resume schema. Here's a high-level overvi "azurill", "bronzor", "chikorita", + "ditgar", "ditto", "gengar", "glalie", @@ -940,7 +941,8 @@ The exported JSON follows the Reactive Resume schema. Here's a high-level overvi "meowth", "onyx", "pikachu", - "rhyhorn" + "rhyhorn", + "scizor" ] }, "layout": { diff --git a/docs/guides/json-resume-schema.mdx b/docs/guides/json-resume-schema.mdx index 38a68f131..b70e498d1 100644 --- a/docs/guides/json-resume-schema.mdx +++ b/docs/guides/json-resume-schema.mdx @@ -1758,7 +1758,8 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "meowth", "onyx", "pikachu", - "rhyhorn" + "rhyhorn", + "scizor" ] }, "layout": { diff --git a/docs/images/templates/scizor.webp b/docs/images/templates/scizor.webp new file mode 100644 index 0000000000000000000000000000000000000000..d8cde89656971a1cf1ceb83fbd7a7c27114772e3 GIT binary patch literal 63274 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

%XYdX0C9DNcY) zFT|3A6$7*v1aKD|LveI-SxLn&qx`x0L#&lA2L}8m@j&*fN3sHK=&w=qcsN6$Sv<}H z8oQ33Fih>_W!J&GOAJ!dvJ30s<|YS?d!=2m1>Jnz#PcRMD$)(>ff=rP2OT;LXkV6! zIFP^Nr-*?R-zV>oIFYj1zm|(Y50f|Dj7|rHKX+K8Ii}sLnEl36(1ffU)ba6t)%z^| zww=0?@o;z3bLaqd=ouiY{#q`B=jLlQ07QQ8T3Kwyx$a%(YmrA4j}HJi|cZ~ zdOorymu@*dE+{#Qnaw%+^R#f7kYA~Sr`^yj>wkv_2&=z2obET>iWud~H^9o3NAmja|6x z8t$vs?hlvvZ1kA!*nX*fuHN!e7C<^s}8v?Wz}7 z#sC3BVuzCtn_-1>0D)JImO{gc{A&C7RAR9DCo&_;jm?V*#MVxA8sYK2MYrSZ8xgy$ zCk+}~uSXEndh9}0+$%Ct6C)xlIVnE6>I?7TeTCZ7$SB!j(@yI$< zn$}HJ>bw`>)mu<3u%g4#SV@iQl`0nZnJlRQrbzZ?famk*i#Yo_lLiWj66fLN0Bd9E z2W?|eNmZE+4as9*(jJlhF9J`=6{ZOZQyP27)oGxkrJ)-Yt`>B%2xeV)an;WQEUhb?3;>KG zj4LRI>~3MHcHju`_Rgm0YC3erfmIat7Xe=D1dglR(0d&}?Xwt3d#pC}>GK~!39i15 zF`dB#(sGga`HND?=6o-s+wex_ueey+h{1g;lF3ZFuSb5v6z@elrk#&$55Hu=Te8K$ z+3+XHw;1QD&^FCbPPXc5!A$V+uF2nSx$`;Vn|FR15 z#ZVg#*t%Q=Ec#{ z8W*pmb2;5B*>*uiZL`P@G_><(t^_HeO0OT7u;zoT2R54<)e)V6m6p}dCi5-&{Zwx8 zAxP-tMfEiU0bykk%9Pf`UE2X?f$hVVEWs>W5n73fIVV^h6%NvnLY=E+gnN!0bYq*o z>CZFaA(yGik40_gyNPUq@cqLWuA5+Ja6$K?W~c|rKJiB6F#2L_l*@y1HCR#a8)7#eW;v%R^C>1mQ0({*2ewxotmlVYtg1MYxC1&|z3X(DOc zBU^V_3ndg4(U}PN9hkxw%vltD?Xger%DR7ty%*&1B}tTk0E**oA93*!cm#gB=IqbH z{jeXq2POOWG!wP8A(At!ZkV;(xSGOb zE5?3J+sF`tQB5(Iu>L`1mtSKOo-BApQrFliNp{d&{mq4OECe5$y#qVzXy`3g9TzWp17g4pP;x4V~yr|Hm^E$8B2wDtp>(j29eg8 z%fY;x6DMZ4)=|y))e;U4MM$03=YOzFMK3vQ|76-7k}KV1gdR8{J#=_)IX$ED5BT34 zsAk#cuLqEn_w=TjZg9VBM9|74z>16H&AG2p0WCf2Rp_!Zb9L8TJ9sHwi90+@cXl1B zoX~*0l35dr$cC7?p%Qj|vB=c+qbo00@(qCCz&e{dRX|Zf^mUp_|T@ z-~vhtZ|BZ;ImqR7PGw>+qlTX!oYM(5p>^__u4{~J>fOlnPf^x}nmg{`PW_L_Oe*)b z2HJEh$O2NlmQ9s#qDQp_-PcVI=*e)rSHn-CJ+}&jK3MY*1F8$W-evwff)-2_Jf5x{ zpjaQDv%JzeSnaqx4y$({T_SSbH~PqjjadtjWPwE^o(rzQz_T%#-Kd2X|LD7u885Hvk>#Gr`Hv4= z)bDWuv`56<GlTx!z&=?5XL?Mu<9M(UQp*ry4|FY-H1^dX0GtrwiONee2n z;q*NS0-xeFtd&9w!{MLAWFs}F-En4M;%>WL?4pY%UA#JYF*^RZ? z60pU3mMvTwidT?;1zl^zv#67;(~CcXDIRDXy3mtpsXF-Z!hzrQ6koGy`=n&K1wWIn#$sE0eGJ^VgifD?xDCiYt!m?-Q!&HMas z?!N1P*q54y`Iw&IDGRQcMSJQ}5qCEqqpw;1LkoevZMrefE_H6EGm+viA0~og3LZCh zHq?7xYZ4b}l#kgbUfP#HL93p-C_r2{!OwljqB~RwdtC+AL-sFq2J{r2*GAf)Db{a; zR8JU=D`9slluI>5tt(0vytW*OiGeMbdpe@WRMLhotD?COc`ROVBW!SRUrHoC@`A$G zJqVCIQDq9jmNUcPhD26rpZ4LMXM9)^uIDMBoZp7+J7)Sp;5pEcv_4X%9pH5+h4pFrML`N^w94Z{z^ z%vbP3HDjro1AbwOfb-^+{AxY`T*C%0riNbifw=fC1^h)p2B`#fza?NuQ(1!`gHl#C zuhn&Ytp9~JEi;c8o!~^~^p}*Z-%i<}+B`g)RQiOKI`DbbK>^~95ydQa3@}UQbKuW> z*`yM^U@xM5VhM2<5&hRWcU^e#F82<2C42ER2(_YPkIy46ghxh@re9THArdYN$=+0Vf z!@qM9f?jG(CcVt}UHVyl4&p7S8bf{K5(_&vOh?OXK>u}1b4wW7*XW7dmv}pL67!Dr zR3kRO_)dc--dWqy3>67GpbbNRpQ{B{?9JN`p^wM}flQGm_+(~k=n=r%H&UiltzJ+d zDF$)!sW@IGya*FL9$bPV^79{1W}PKBS0ICjWnl0f08t66F1)@|CkjB;T}ods zq%byUX0Fx@ArNl#bC&cqMZ%J96iZq<{K)zGo0ueOM>LWs*R9qUbejG59htI31<<=)EF==PezUDHRs3)!*W|`ci)% z*{&E;Jfh4E#yH6830ULohSYm$|s)Z}5a?S)#(JrDRNHy%0#5=Sx01Vh@}z=mh! zSTWc8rVBQvmX9bH8YUfGhFeE$t&``yT-Szyj?Lq9Ls0U^3NME$vpb((R#Ti#VCgU5H>}$M|slSHZmge5)8qGtw z$GuOHDeM!fDPRH;^d%4~7 zQJXv_L+@&}iL!xrSJ1C5HR7-ew!o|4P5PnK#{;Co98Lq$%mh0|>=l~}$(OS$jU~kQ zE>jqS6D5p<5+f~!6PS)86NwSNL@=4x5H#uUmyhcp%u6R!_x8CO#;<=ah8UvhW8Y1V?hyhHS${#& z>^2Y)GdJYFcjH{vh}oX?Kk6H+50w(#P=`CdU8S zT>-vzg0W@X@s6<@*eh*EZW*5E56|;k-`p7Ez);`lNt|YWsJ7MpiM61kD@sW4qc)D( z`_L8CaJ9uKEE5Y7PtcVzBCV@-OYqH7CL9F=h4ieq3b!5YqajKoUQCE(PD=U)8i3u} z_8vpq?G%5FkNk3xbHQiq&Typp&0eG}3V;j=*JvcZ8&WAL2Et$SUho#Csk}*Ud?K zj&!j#0m2shs5YyGWMcpU*F6c%H+w#WA&X?~LxP#?03X(LD45V63fPvg7&7RAABQMa zR5z$Z)UudM8}CGfw-lFz*(M~x7GgK4Gty|9Ho=iu>ewgP4b7*iib+~Y2S`Z`fjJSx z!a2YKzwaMkh;TK0u|5{mTUu^bqn+1(?*(+_S3v}ahKD#loP8#B<^UeTx zcKh>);+JoCu=UI&MXLBrsO5cdfJ!*M_EvQj)OI zGW=O0KkN6jpwFSnNACL(DD(BDE(E7P0A#Y}17Gt@gZhyAstZMx8!viabT%G-KxsWb zg4LpajSuFD`D#s<@4NbP3@betl2B5?YlC2==I$8>HYF((3NHYATZxTgT+FX$M zV-(Y?U#2jF$agI{TzWDHQ_SN=%8RTf9B9blI5>w95IMwS)Ts;-V^W8r87SO_>`CmF z`?S9a94<#%(q=<7L7ZuaX!{dd#%X)mJZEx7x9ii-)Gm0dHCBVH#lKyn?pr@I9p=YB zs_GVnK{7y-%nu}@y$ zb#ZH1bayAR;mWiS@QGfBzebL$32j`VwaH#;0ud`6rmxiuF{NSENpH7PJ~5QCt3e4w z5T*XW^M%p`Fk=RV zKvQC;t$}eRC+j}=NJ7UO8^IisAVo=GF)U8iV7WQ>z6hsm;T=Ayda03hV|GBBOhhxX zr@%r|%FT|`6O20T_~at5%g>CNg;=DZ09C6>p{I8xFWiiK(&G1w=rHnKT2-UYdy}K; zYRNccK)MrSs-|<-Y=Y_};D7uT?J@}8!b*%WL{d{Y0~a%J2&8l(&9{|y1~dCVV6V-{ z(Jp_^&O&#m_k6EIIOuo{52_xb<;JVynyE)<5dh(W3fOY@|r@TZUWDWPsvO4~$+n;YRl zXG;kMsceXZia$PrjHFD+G8N10e;noS9e8Fe<}CnEgkKIEO9az_ooU3im@`j@k0+(x z;`n!izC(P%9uEv4ktQ<)b1oBl_HNS8A*$gn!VxRYM;{s=RKC_AP%VvIGtq==vR?WI zWCc|pZ*Lim>ZhmH6gzK(#8lQyC0iI9RFSYao7t+)dI4<5>K8V_I%%#0MXwzDvp+azT~|c%4luKz9C*v z_4AQ%kL`_Ik$7|V{3{;Ql7SH*jR(!Hpr6?X^GEERPzH*wL8sG&p?Dc(SQ_cwM?4#} z<>1Mjq79fD9OE;xtN{UIbzXV|x~#45f{GWyt(i52(o9G+uBz!P`ws*44u;}rEQ*^q zX8pjS3@RqLoXO&C^(@CoEu(}gOL&vSvhi8RANL(`&lnjj8N&hKPY&^ST?c~{zBkn5 zp3EL@S@N2(NHI!jP}|CrY0CDt=uCzZP=V zC=)~2DSP0q(%|MFuS1%evBrjq5`ayp6XpJCNg?c#Af$6o=l%j8+)ov;N2R$rX|(hw zutQMNK-XL$7)_qtR9&s50u~z6!M$p-i3{B>-GaBkTN@~A8`zp%JpC`90xf?b+%5c> zt*g&7r7+6py0I<{VBbi2ubnbV?d^E%yXxZ z8ivPf8nBI+q?S{d48#Jaf&%5$5Ea>GR2BU2#jr ze|t*W_YLwF3G7)w2abqT3#*At_|0F%PI3>}CLVQvA4naa-r;~|bXIAs;;XGGsZ5dS zy_>Is{UCHydjpsJb?^yYfP80DJ=^BwMiI?j_Vyo7o&cFZqLa`urU)BOD(;a*qdAcq z0z;XkpSDSv{fK!Q@gDPRGLbNzsJax1(ZiNnr8Ip@88P`)j97$rq`wlyYwH7=_2V*M zaJ&N8qKD6DV2^Yg0hbB>0rsNY6|!=J#=9L|Ic&_a>#T!D;K+jtOD zz;J7eqrS)|kpa3cyIu3eIj_wX_0a>*zp4yG+j;u1NUK;Ng56BQA<`=;iN=cjw`uTqTaU%!iy9D94IiPQV zR}?e8_KT;3B76RV0Y38X9?1F4*>%HT7y0|Pyym!^=76*fQQin`dFd+Vxf~o}4@i&< zSJ&huzyQoN=!TcR8FG@@Hg~T}@${tBZ~h-IAUk!}XpJo0QRiEta@4yToFSOJQs3mB zS;dil9^>tHW=FJxoE3S{)sSn3&w9>xKml^K^>A#SUJWvQELomk$=ISBR~_)LQBVK( za-{HQU0*f1HZS4S-Zp-4M>=b7W^6d{$uf17u*fmPtFnNW&hzg>;yM%{NE$9B1XtIv z2*1Qg2)%%f)rJ|jII92_qhPpe!`<23t3i@{b9e`&PTHpF{E+^awf1IgFG9LGCQNgc zV7lhw-M{xC8D2=5p0D#QOn977-L_n}m z_!_Q(*iB?)oN}(V_680eTYE%L^|xqXVK1HN_{CTzEC{mrNU2UA$gxnKLe0?wt0-Zc zMbMIhEv06*Qx-n?!X5Ee?%BT@4tGHn+D%~d3M3jQ;L8QpGk)CxAamxH zKtVQ85Ljt_|C`a^C?1MhsYQA|>G$iaC`;(xvA2)*Hq_O<=6i%)!hPuN&Y(psl?pFf z+FoR61YDolvK%c;M@owCdL4ig(M6m~O~nfx;9~Yc3~OyyUp^YJGN7<|Kxm8Cq1=NR zd41Q&+}Z&SAtvv*^io{&uy;SAb80 z3Hf$mVEqA zBWJY?1c^>a4*Vw~9w&Spxc=uTU$%LP{fMw~DAq)!r5p960CMt7aPZKv5`3r^m6mh7 zZf(6OwXU6?z2^+atlYzlP1BP4If$B23!Pc=3hqb@0Ft@d*y&vLL*=!!ppYRjnsM8n;@tSw91u6ujBh|6H(F5^VJ<-63BoZPH zzS6{ZeUD_ApBpbb)7`E^{9o~O-Qxy?#Y+cb)NK*aFVyG$BU$FUZ_6;?G&1&IG8O{6 z)pH-lqbxxE>bt%xD#C(L+c{K@AJ+7-@F)4k)O@HVgxWvAH5W-AjhJ_`zOL`a-yKB! zSyj`7S7d^X5R{&(CckBVK6eQ*U91o(m(#)#NJ#lEdlK*&Fw{SbDPBWeuUh?*uE_Be zW0p!7ZQZ_EMFKo3>5Ex!{(ij!(5Pl32RLju`>iRegmRJEbRnMZ@HTRysF%Y)n+rBs zF>ut`r|!Zl9s6B?w1C0~aeIOPSkFzZltrLk6>q^RW`=JMwwId2ZY*^P_}b7im0xx% zMwqURinqKLT^JtGUqS2l zSXl-(7d`RtrT0EHl`XU*+B(3I;L2JyuX)*s(VNmTl^Kr;ZNpG(VwL=%m&oy)CtPn& z0KfoF*qzn#Bi6RSFq(cc2KNv@J!Ni);Ek6v;2gKC&T&JXegIVnvBkk{V!oiNi}_d{ z`m)Xjh3JRK-XazN01&YVAxm)dW3S)2?Kea*cXTb@z;4xBZ#NUfJ+oM`kpy51g{SLM z$`|l+ytJ|QemKH9mPtJc(G(+bTvaYjBM(%KmkGm_{-ezXG z!Lm=~&o?TbC)X-$*V<|akixB$qhD(2YXNr~9VzX-J6>BeMM+W=ukVlSA=1mgsOK#k zWru6>6R9peeunuFFzFJ2VWqaXHMLRP;MCCT&uAw$NN|Za7QZAqS!60>e@ z=+;+{UixE^cy}Jqxs@$ga;4KugqIdEh;DyMY{*liigu~O6R4c#{qS&j{ z{OG}aZMP$;LIs1&1hMRs$OW_KjP@xNmk{gvE-!}{jsW5t8;43PDsGhK0N_|@?m54* zx!D4PY;1wIN5dMH=LlSFCl14nhohx6nO(U}WY$seZ^h_lymlbtLM0`9fO9P#5I$Fx zlvF|XhP&hfKf)Ub&HDmw$D|`Made^S5bjhv8se5Uzbmb=9cHUq$Bi^mqVM zlWE|eW-s}8v3hH!$5AF6ex>le1%&oTlG=t>#|Ou^9;`zfR020d_;*amm&a0vm6wc!-3DAez*HE>m=MJ6?40O+d)*YA#> zr81_EΝ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 z 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 literal 0 HcmV?d00001 diff --git a/docs/spec.json b/docs/spec.json index fd76521e4..70ef332f4 100644 --- a/docs/spec.json +++ b/docs/spec.json @@ -1533,7 +1533,8 @@ "meowth", "onyx", "pikachu", - "rhyhorn" + "rhyhorn", + "scizor" ], "type": "string", "description": "The template to use for the resume. Determines the overall design and appearance of the resume." diff --git a/packages/schema/schema.json b/packages/schema/schema.json index 55a57ff97..fee293484 100644 --- a/packages/schema/schema.json +++ b/packages/schema/schema.json @@ -1620,7 +1620,8 @@ "meowth", "onyx", "pikachu", - "rhyhorn" + "rhyhorn", + "scizor" ] }, "layout": { diff --git a/packages/utils/src/resume/docx/builder.ts b/packages/utils/src/resume/docx/builder.ts index 539fccb37..d3822bcef 100644 --- a/packages/utils/src/resume/docx/builder.ts +++ b/packages/utils/src/resume/docx/builder.ts @@ -1,4 +1,5 @@ import type { ResumeData, SectionType } from "@reactive-resume/schema/resume/data"; +import type { Template } from "@reactive-resume/schema/templates"; import { BorderStyle, convertMillimetersToTwip, @@ -76,14 +77,14 @@ const NO_BORDERS = { interface TemplateConfig { /** Which side the sidebar appears on */ - sidebarSide: "left" | "right"; + sidebarSide: "left" | "right" | "none"; /** Sidebar background: "solid" = full primary color, "tint" = 20% opacity, "none" = no background */ sidebarBackground: "solid" | "tint" | "none"; /** Where the header is rendered */ headerPosition: "full-width" | "main-only" | "sidebar-only"; } -const TEMPLATE_CONFIGS: Record = { +const TEMPLATE_CONFIGS: Record = { azurill: { sidebarSide: "left", sidebarBackground: "none", headerPosition: "full-width" }, bronzor: { sidebarSide: "right", sidebarBackground: "none", headerPosition: "full-width" }, chikorita: { sidebarSide: "right", sidebarBackground: "solid", headerPosition: "main-only" }, @@ -94,9 +95,11 @@ const TEMPLATE_CONFIGS: Record = { kakuna: { sidebarSide: "right", sidebarBackground: "none", headerPosition: "full-width" }, lapras: { sidebarSide: "right", sidebarBackground: "none", headerPosition: "full-width" }, leafish: { sidebarSide: "right", sidebarBackground: "none", headerPosition: "full-width" }, + meowth: { sidebarSide: "left", sidebarBackground: "none", headerPosition: "full-width" }, onyx: { sidebarSide: "right", sidebarBackground: "none", headerPosition: "full-width" }, pikachu: { sidebarSide: "left", sidebarBackground: "none", headerPosition: "main-only" }, rhyhorn: { sidebarSide: "right", sidebarBackground: "none", headerPosition: "full-width" }, + scizor: { sidebarSide: "left", sidebarBackground: "none", headerPosition: "full-width" }, }; const DEFAULT_TEMPLATE_CONFIG: TemplateConfig = { @@ -301,7 +304,7 @@ function buildTwoColumnTable( sidebarParagraphs: Paragraph[], sidebarWidthPct: number, gapXTwips: number, - sidebarSide: "left" | "right", + sidebarSide: "left" | "right" | "none", sidebarShadingHex?: string, ): Table { const mainWidthPct = 100 - sidebarWidthPct; @@ -314,10 +317,18 @@ function buildTwoColumnTable( ? { fill: sidebarShadingHex, type: ShadingType.CLEAR, color: "auto" } : undefined; + const margins: { right?: number; left?: number } = {}; + + if (sidebarSide === "left") { + margins.right = gapXTwips; + } else if (sidebarSide === "right") { + margins.left = gapXTwips; + } + const sidebarCell = new TableCell({ width: { size: sidebarWidthPct, type: WidthType.PERCENTAGE }, borders: NO_BORDERS, - margins: sidebarSide === "left" ? { right: gapXTwips } : { left: gapXTwips }, + margins, children: sidebarChildren, ...(sidebarShading ? { shading: sidebarShading } : {}), }); @@ -325,7 +336,7 @@ function buildTwoColumnTable( const mainCell = new TableCell({ width: { size: mainWidthPct, type: WidthType.PERCENTAGE }, borders: NO_BORDERS, - margins: sidebarSide === "left" ? { left: gapXTwips } : { right: gapXTwips }, + margins, children: mainChildren, }); diff --git a/skills/resume-builder/SKILL.md b/skills/resume-builder/SKILL.md index 80b230be2..a4ba215e6 100644 --- a/skills/resume-builder/SKILL.md +++ b/skills/resume-builder/SKILL.md @@ -45,7 +45,7 @@ For each section the user wants to include, gather specific details. Never inven Ask about preferences: -- Template preference (13 available: azurill, bronzor, chikorita, ditto, ditgar, gengar, glalie, kakuna, lapras, leafish, onyx, pikachu, rhyhorn) +- Template preference (15 available: azurill, bronzor, chikorita, ditto, ditgar, gengar, glalie, kakuna, lapras, leafish, meowth, onyx, pikachu, rhyhorn, scizor) - Page format: A4 or Letter - Which sections to include and their order diff --git a/skills/resume-builder/references/schema.md b/skills/resume-builder/references/schema.md index 2a8664265..5b4a2dd6b 100644 --- a/skills/resume-builder/references/schema.md +++ b/skills/resume-builder/references/schema.md @@ -248,7 +248,7 @@ Icons use @phosphor-icons/web names. Common icons: `linkedin-logo`, `github-logo ### Template Options -Available templates: `azurill`, `bronzor`, `chikorita`, `ditto`, `ditgar`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `onyx`, `pikachu`, `rhyhorn` +Available templates: `azurill`, `bronzor`, `chikorita`, `ditto`, `ditgar`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn`, `scizor` ### Layout Configuration