From df77b8d5119dfff0d349bf7b635cb12f1ffb46d2 Mon Sep 17 00:00:00 2001 From: Teemu Taskula Date: Thu, 8 Sep 2022 16:34:24 +0300 Subject: [PATCH] Allow fetching png images --- example/package.json | 65 +--- .../tokens/assets/adaptive-icon-staging.png | Bin 0 -> 17475 bytes example/tokens/assets/adaptive-icon-test.png | Bin 0 -> 14882 bytes example/tokens/assets/adaptive-icon.png | Bin 0 -> 11677 bytes example/tokens/assets/icon-staging.png | Bin 0 -> 23950 bytes example/tokens/assets/icon-test.png | Bin 0 -> 19959 bytes example/tokens/assets/icon.png | Bin 0 -> 17964 bytes example/tokens/assets/splash.png | Bin 0 -> 18270 bytes example/tokens/colors.ts | 116 +++---- example/tokens/sizing.ts | 5 +- example/tokens/tokens.json | 322 +++++++++--------- example/tokens/typography.ts | 108 +++--- src/api.js | 5 +- src/codegen.js | 22 +- src/download.js | 21 ++ src/main.js | 2 +- src/tokenizer.js | 28 ++ 17 files changed, 362 insertions(+), 332 deletions(-) create mode 100644 example/tokens/assets/adaptive-icon-staging.png create mode 100644 example/tokens/assets/adaptive-icon-test.png create mode 100644 example/tokens/assets/adaptive-icon.png create mode 100644 example/tokens/assets/icon-staging.png create mode 100644 example/tokens/assets/icon-test.png create mode 100644 example/tokens/assets/icon.png create mode 100644 example/tokens/assets/splash.png create mode 100644 src/download.js diff --git a/example/package.json b/example/package.json index 58664ff..ba68397 100644 --- a/example/package.json +++ b/example/package.json @@ -10,42 +10,6 @@ "author": "Teemu Taskula", "license": "ISC", "figmage": { - "outDir": "tokens", - "tokenize": { - "tokens": [ - { - "name": "colors", - "type": "color" - }, - { - "name": "typography", - "type": "text" - }, - { - "name": "spacing", - "type": "width", - "nodeId": "22:582" - }, - { - "name": "radii", - "type": "radius", - "nodeId": "22:641" - }, - { - "name": "icons", - "type": "svg", - "nodeId": "1:1887" - } - ] - }, - "codegen": { - "defaults": { - "filetype": "ts", - "tokenCase": "camel" - } - } - }, - "figmage2": { "outDir": "tokens", "tokenize": { "tokens": [ @@ -61,11 +25,6 @@ "name": "shadows", "type": "drop-shadow" }, - { - "name": "icons", - "type": "svg", - "nodeId": "102:2" - }, { "name": "spacing", "type": "width", @@ -76,15 +35,20 @@ "type": "height", "nodeId": "102:7" }, - { - "name": "sizing", - "type": "width", - "nodeId": "136:188" - }, { "name": "radii", "type": "radius", "nodeId": "102:8" + }, + { + "name": "icons", + "type": "svg", + "nodeId": "102:2" + }, + { + "name": "assets", + "type": "png", + "nodeId": "643:618" } ] }, @@ -93,12 +57,9 @@ "filetype": "ts", "tokenCase": "camel" }, - "icons": { - "filetype": "svg", - "sprite": { - "writeIds": true, - "spriteDir": "assets" - } + "assets": { + "filetype": "png", + "tokenCase": "kebab" } } } diff --git a/example/tokens/assets/adaptive-icon-staging.png b/example/tokens/assets/adaptive-icon-staging.png new file mode 100644 index 0000000000000000000000000000000000000000..58e468ddcd55f29d0f1a3d522ebd652c30b36003 GIT binary patch literal 17475 zcmeIZcTm&a_dj?;m#%=I4@DmfO&}^tCjkqJN^eqw1(1#u>4_quAYh?cC<=&lPys<8 zQ3RCUi%19QCG-%I_uf3u=exTzJHOriYiD-mlNn0hx1DqDxu?9&eLphL)8XOV&j|qF zxp?8M5dbXkUlzc@2LIs2WW(T}U7i=NdIP{E!1zIdm#;d&$Fm~WTOaoJR2y^(x3Co*?D$BMA{F#M_O@q#bWw|~XPmX^&o#Hl8YdkDmLs^; za9(%A#r9b|i+Q~pE&kC*>8bp0rejB5kZgkVHU}<0pIywEEr=}}TBV{CaxR{xrsq_& zwIb?MD!U<>|NZ<|0{@l3|C0nr$4Zz$k}NHhnC!l{qa-8<@B3w-Bwu5srog;6*<;gh zhmtwl`U*enToQ-^O*|+7x(rMwB%<@js%>m2t#|freDu>O{dPBaAWG)&g;CNv0M6&& zswd+(Y1U0s-{^N|PunfLH-CyZ7&jCo^cfm1_a}wx!uKCMT_lRPT-wKzp zGgSdlrw!MPFcG5Z*O`4KYP^pnPrq}Kvq=m`0Z(N(p)x@&lCFp52?!!Nb1;JuEVO*+ z!{_k%KG$Wri>?6h;4lCLl+oz$qkOH<#y3^O7_;lSvN$ffPpd;+qp~O z$Zc1ijX9PpJ(qeT4*DH7G;%D&8mV*gM#X%z8O6_E?Y4ZcDJ)}|a&98C1 z{N=SNzbbwfV88(CT(2x%34>&0IJI0L6!L z05nxq&JxoHiDGDRIMuJc0Ba2QD#;}q-MBzk>MRjO?`xc?Fw^J-IQM=gK(fv;yRn*s zm&64I&ZxSd24M99I{@C2Ldd0=KbBJT7u9~#YyhVR*-iSZ+ZItzrWqwIx6V&Y4XJ!Y zfh46;xEI1kZ+sO?IT1f>$XbVQMYnT4E9iO+$#*VvE^CoP76^g2vgV8eV+vUQ^IW!U zr@kkRm`T|Fl2TC5&B2len?RRQN!hlp#kynl+BI30&*H$~B%IzrEqlw3R}N{)@^ekz zQ?v&@RR!REe2%B802*m2v&`>Afl~(oNZXr3qf;IdC7EB=Si{B706=OorP5Y+<8_!{ zW+fJkLq&6d`a-(AZ$sx`;6WCEtK&wo;2ey|spdOENL-qjRSilF1x~(Y280)VhC2!@ zaW~7moo%>5(g`sDF5CDvrH-W<<-be4Ym5TM?_js=oJfQV_1dk(QWie>8|s_0AhOH` zmwI;|E@dJ`x7TNUfj^}0(scU+kWv9j*zK(mnHc9T&x(Es=}(e^+95Fh9wYLC9}pfv zCy3siz2%Yh%H_>ggkfIRoIfY3fE_%30hO#cHxj8_8Ro^AsIVv}XcKG!Nd)eXNUq5a zR7Xb3NLpZV_pUZBAoBbW3XI3I(@U6@ANy6vo8H|I9)~mLxLDgj@#)-!6J6oIQt!xw zKF!$3y-?B@l^pNgvMMZ4S1d5MnNu5Tv4yP7QA3_MXHw*5DzYk?@$O5vuRcww{y0On z+69ykL&_r(BJ1^Bd1%)^+}=GLoqr9#svACf>G-+s_864|)8BhIeXDA^nB8Dih3F+CBqpUaHOiUlB{px!G# zG3k?w*fkmPl#3SZtnI!)+|T;{8$p!iSVY0o8s+4alT*y#JhUFT8yhqUU8VgMzc7(9 z*bX62G$p`0*tYB;K&vqUa6Tcj%%%7gEqTxcvTvAYFX;_AAn zny{4)=LrkmgbEZm!w;Jkb?7{q!q5)Yj*xQpp#s9ch|OmSmqO!u*b1(s+r2%^yYXD| zqlEE}glz?%d1rhXYaR>rRzyAk+!x{DWxhp|kkY@7xg|rrVbV$rp12{|7sY7IfZA$r zy=&vy04-LUE-5)!R;7OScvXOEX$)yRT0SG~#zBCSfb4E$uH*Hq`kXg0e_cLTQK(dA z@x3Rcb>WviG@Q(R&}yXQ^vt=;eE8u1rQ0X@w7;8QhxbY0FS1{gebPaZBs?hdlEPOb zk%8ofsUBInWA1FF^1f1*-!s;LBo0MTl>6!1%T{}$pzBBmIip z`Y#HCdB(vhFtU%&qL+o`30oQW1Zgdp9K`bG#;{#gC@p20jsYBgA6NlF=>lu_Z7F)$ zB(1An5Lq|XI8BKIxkFaJW&&lv2rsk~pQ96I2l5`+_ zj$`fvT63zi@`&z}h&!r#`3VElQ1SNG(+59X-C_5>BuSEsDlG&>SD;+gR5tXN4*g%>^ddg?&7vkODt?jf7Sg!ostCMbB0YDoHklsBr=LmYUUmDQaNFyQ)hoaZ|ZxPns(vY5Ht=EfP6K z6rCw<@fO$9DNo@9k@SAao?yH%7ZX4-OvFxf+#7O8M!!PEB25i}>HP|mpoVkekD}WzIr%2sAfD>o>>?CpktHR(o!nH*fgEK=MmDr8v&B>4l1MutLP*OS<7Z5W>v#= z0m6x6=k^8On%ro|GW4l8r_b&)W2(!IvnRwbvq%vj52Ks|11{^S zUX88UMlmd(c;FM*vDv&qVf_Je+%KGmS$#iHdpmAkTB>r7~nhIC|Xk}#au&@nn12i-hjQZ!7F+n24BQY0z^VR+r?dbcK=S#N z{(rDk#|~(rb{tqS5hf0jHA7&nm)e6pb|q;*n!KTCNb1h)O$Nka%>HJ0BArAa3#)5y zDZijdznzY=1#MDri~r1=TPeEa zm3EgQR5NW*WKiNz^Bvj}wRwac*TU$!;2ifRuE*6OOW-C1h=5?LW z$mB-mGJ8370F&ZtC=TvHsWVyo``9APG!hfixd;Dat)Weqx>=j>bMCB)ZodqRfnq&i z68t;gfv!Gy?Ck2K9A8v-54&>Fy_mM9Me<4JHijr044cp-9}OW-4j8`2+>S&F#w60X zA)&Y96i2BhG9$Xvez@DZ`=!eF13@i#uws6r3>suokCSah6zEgu_&o1=)P~NO5B{u zVDgZLS^X?>JMN|_oLU^7z8CU30WGFy_(%0J-5&ik`%iEYXGUK+Kyr`EOfEQyQp+%K zI@0iKGj+Ygg#=HZvIDd(GD4b?9nF?;Q~olc65?2hT>V*fMCO3K+ra2^}JOBKElL`<=mxOeCT3Xx_WLTo^X2x4z~De z1Nvu7IO0VJf(jZ-iRr)jf6QY34XN^GnWVgUu?hOD%KHT~e{JIB8$P|;VwZXa4eYas zyEZwT+MEWyl@o^$T@7BNdM+%(Lx<-c9lMi$c>yLrx^f(so)6Fm4BySg(3!E&F#4Tt zh%ZCM{n}&uSa2mT<5i|qVmBTzvfE2CPj0*TNH+MM&VN$C5^XGmIKH*6TKjFw4I-gk zBDfv7gSz3Eqy3aE`zSrpddCswv2WmWF&~txrCx645x(=TkJo}1zxT8epIxP~k1%#} z-Xu^MTl$i-UNWrQOpNR=ZLtfyhk7w`x&pYj??Pwgj1ecs>7|oDk$NT|1GVCF=g$LH zrvz|xlOUKTStT$7KWLaeUwyjP$EEYY?WBljj7cpL&WOop94Y4ki5F(1%WT%c_`>Ls z0&|Ej;Mdnu+lm<3g4u%_n1SL`Gl)}BzHmx9n1`wjsK@!2{T6&|yf2T;XV#|)Sk=%4 zk+P55e54d8@_A{YJurOSJ0Dkunh;=WVLfTMu-RIRSL@53o7M#z*SX*fC-^<>s@mK& zPMJ31Q&xs|`CVU@08|*VlB#p=5*)(@KXv+c8s2@LxHxY752&*Fc3pyS7djtwoC#qv zVNS0o(RP|mL@k$oW+roL@ERZiC@>K-agNX8^O<5+gFravZTy)ZR{A+Dk(IOzf%z$a zK!TVO;Lfz{FBQTSP5Rgr%Z-fW_#xI?sk_+PA^B}EjK&=pQY0tB;wgh=*;LnaGxI^6Ly{X zV}#DJtw_1pYdPaK&`o|;-i={Dw16|o>hPX^0TW;7T41J4N{-5BiV3@VrMK4PyKnjd z(^tr&zL)Vu{G#8T1BYI71CggtyP31iJiQw?+DFh3a7ry`yt2UgK1DVl6LTlV=U&Zp z`1nzjG7RAXyP4RXJ92pwF_)BVT-pg}Y&+(7R3sko!my9@CW#$=9D)GM1@CfSMOIt# z+2(Q5fAidaTd}}0?l6o25zzmSv>A~TTV3pS9i0hu_2rnr9*{u%G#uW~(x)@#?iwuX z*HG4yQh9+g3taB{Q_gR{S&IZO8}p(9yBDJSRQDGs73?MF{1~?F$6xY&Rk%QOR4vG= zUxU!XL1^+tqHQg;!uVqsb{!z~+DbM+$Tk_!r4KMd2xd85$}`?Z1c zd+VK49w2fO(kJkgGii0y2`dsmCP8>~oQ0q8Xm*q82%*Lriz~IrPe9lOqZG84G>gR* zC4IIcVR!`oL78OkgQBdt>@Cb*fVPJQ4=t2Ux~iun%-koP`qE1s;5eZgU5@4l?wwb9 z$!p%l;sDJGIe3@DiE3ewlUt&gL+VW#PvnI(vTA;UxJD8NIA}xKFPk_f7ea*W9GQ=l zrwr5a7yr_P-Dj3F!u4;Trc8dE^q}>HUTy5jWZhZ>GIJ90n6}r5qfJlAyrY}fDMo$5 zLs|%W7T^FQ0IVAa$|=d#Rcy7F3%p020jT%UIR>hGV|Lx3`*!+XCi7vFp~Ah750 zRAvKj2D0c}4(F1u4OFF27B7%rwkV_5!_GvB>J zC8eMnM%;BhIYhV(Ah20?dD1`4 zU`%0>%YMe43xpXk09Hj-{z=-ABv?#%r)IL@%)U z5Cv01t$GAWjc5Zb52Nd8hEqi~UlWIG9$x<$+4XTV;@kWmM{ISgwtYeZk=h;Dz-wk7=oAg>}Qw&E{D-6z8iTn zanJLVjmu2MaedZn-EzygiiB&j+)nIN2D;P*H9Scs7YS-O7b?GHZmi{hYX9FFLn_=B zys;Ep9~3~Jf>L=`H;WY99=)S!)2dj`kta^ot7y4jKu}{WBg0rGx*Hh~G~8M`s==3V zhQFvYFp&4R0JH;)u}6hM1J;RRH)TtgiN=AN6Z|74$`=n<>9$5RqJV(UVQ3k0Oo#pA z@?RBPFCQF8S^C6T+`SQctdvbWVG&CCJ~V%j)NQIp5`ys=b2kE4ed6+; zYkx?GlN^Tf9`oZS$QmlxB%4fV3d~CnVgjtbUvnL_%T(PB&{_;aMzf`i6>REX`Q!~B zHXYnu-|4H-aN{p%@?Zpp+n?}Oy{b=!9`v=%?>=xbObHJq4#PB>pJ5YCg%lU0E-45i z>#kJ)@{oUwv9it8oM;WTO?ASoNYwp*k63cvdMf_h_HGsPeHSMugr#aHggXG4SIGqjyD3QP5 zV&fZFMJuKE&l}rap>*rc!^J*B6ys&}n7T(ryDQAZk24Oh`xU$5F1pu@*8)xxVrzqrGuoQC_3g4>(Maom$CeLhA zD_{_$$e_Dx;_q|p*k~vrTg3q@Ccq2bJgAvr_3fQ_@+Sol&OnQd)?09r7X$0P6ZMRG z8>8Go7+t$pF~%@_z(s7m;){EWUhTvrC8cyE1Z;~W#N zWrrN5Uy`i4k4XyEYCVUvgQQAPChOscW=dm;=DlO(wlG$Pmhe=f`4)1uk}`dMXXR{Q zziniGdSN}u$^QR|)+zvM1&HbQ-+8!Nw z`j;&SCGh?T>=HfEO+Vz-o4vNO6ZcjkNypTYR2$uAQE~;O*)kR@D)~ix3YlY0Q!(pw z8Mvwiuo}==I7kW8Y163}%_YIhOZ>oq8DekyEFvR*>5Tn&Q8dOEca9&RVG=@+{!lN0 z>+JXVUS`fj$cBF4^2L%?L|eIz59e)x!<^PDsP!KFH+B<9FsE60_38$G4Uqw#o6oPc z>g){mmrO%&n-Lf#rDghWO+S5j$-Y|xr*Eo6^7@DZN9QiUYXh?(km5}}G9|ZX(_nOHe;5tqokhWj|ScfI^p+mI+fee`ueKsb6 zyL}(JKv+&tW~s%HCU&7f9rR3|SO|*E>}CR@DKIYwf(Ym=6Jn|ib(O1_Ly>;Ouz*7@ zwNEd-*eMnJ~Bkv$%jhlZ+`ukEaTfh~}tL;mXG zD)Espsf6)9|40Z?$OFHQ`L2%_0o={pfN;>1O7~y`zD3o$5&vMh>N^@hBogL1XDlLH zv`?+^5dtloY74C!3R_Vm132Fqr&=3X`)LVm{-@J+iTJ_NV}yh7mJFIC@jX2`y02)P z&%k)*)b^I8dM^*Gk~0GwVJ&Jh9Hf<6dQIHR2Y^xC+93O@SMGrzi?f^utMZ;Z8bV;c z5eil#X`2si-lKGFybq4&0)C9~eA!z{7M!@yWB!9|eGrTw*jUimll0k`nC4;4nIxb0 zH>xSi>{DeZGXt$6iRICmo0Mz-_(F9=k=*j=HU5NEuLyYGZDqFY`RmwmJQU*Lm5bSaVo>7n~G4a@l)mgk+QpI?q#N~72>`DW5 zI$kHk!LTZEuem(^COSxkL?MRK*F%P<8ndbehXeoICf(1+AF2+~hf^2>AcN9w!yhJ3qU%s6M&Uw=}Y9)&V4DiY-LWg=L?-15Ea z_Xit@bYuQlth(>tbqC85rw*irthsrOt|dO8<5jR*$pT9QtHY~)VFio#-c+6Vp1?hD zI%#hWK)Fjo;4-sBu$}MSxI%%3T9-5Vy|{+&wU0bBF3DD&b^2yj;pn6I*hR{cf)D-} z5Yghj9NIyf3;Ci_V7(JciaREEZt9ag0Wj#eKtHGcG71UD$*eRWha(ZUfE3bCZwWq! z@qWST`O*gD*R~5ee6p3V`v|!H%(fT5-~@``jSlRDFA_~&dvnr2zNNl&#ClRMYS6?*3^5o)$Pb*w{N&vbt6VRx}+&s5pD zSK&h!BFIXN{i9M8P9yS5tHe9x{8#5D)zp^uZ5`Kqt=aoxvGc2|k2#ST@YQv4!NyCK zG0CyoGYe=MUS_3wIcQ*WfvQ=4Wykwc>Z4Taknsjuqe5o)_}XUq`zDDw0bxy{&4pF+ zQ2fvoRLNu&zMC!>alTu?hH$pZ6N*E zQ}=C!E)6<>2Zp|^(L*p(EzY#ceQEtQAj+##%Jt+}TGdy*1BYobnRZ?K$YlO;^&q1TjuLkz5)VHim?DY2H zivy_IoETf(;a=s~hQ?ItosN*T0`}pMxz*|fO}oX?X&XeJobM=499HN*-7DC}o6lvkWFI9MXnTTCr1;I~bBgZw1cBnynYt_n*s|PyYT0PDFSAf%y zePr)W)l_U*kXH4&%IfJyJDTQZ#8l4q!rz=sY=ipnOPM2BzOe02b!+aMt8N@PbDr{= z5)wffy6u&se^j|C;{Ui_BkIAAH3uzuLQ263-ZZyYJ*QXtgBhE z7>%CAu!}$5G!QG+h&&;2Hx{|K7&fCYQ=2-Mtt@dav?WCyiSP6J9Y2yM#K z>wct0{k)Z#c1K#3%cb3hk8tk=3J5OXBO`IcSnWvs@jlK& z?BHeW1mUgQ_osg7Q#E>Kr_-Uk0F>CpANKnfQ6q%1L~ceItywc63Yk~V+l76h#C zxXSqB9dFT(!rP-%tuw>Ce+&PK($@3t@ry)Yku39PoY!^_!D)BRVGKhnz)$cW-A?AH}T~!7elkuZ-y#`nYFGWjj0&CMAaPT%lav9W6wW#{Q}SlD%((w9-a#lf9KR3j!!X4 zjinDrNAOGduWXLh$gaB~!_pDjc6O9mhqRAk4_#BO(U%RL4BsiFdi5Qcq^zlLugu_S z59&{1vR1BprEVZEXB1elqm1%M&h2*JzM1I&Rwdy;l?z*A%?cjXHWAlyX(W1Xm7V5# zW=Je=lK{fby1(3WaDAyW~@8@}nye1Mo zQi$ry*XMgj(M_krJW}kUS~WIa*hsVn%hamBerNEqnil{ufbE~(l^kvDL?7$!t^0sc zEwrAxMWr-^5BIi&-fZ1Vx%kC%`_e1(MN5B|?TW>~#=%#)8x)tOP-y>{G3OWe_&d&5 z-K#QhD>g?L8Oy&eD-)ZiXwDS>96-$m?mttFuTH71qfJ~Fz&tS<-Fy{ZWbP6gTFDl& zL~;4-xsCkZ46*H>7u}aX5dPEo+$DBk0B;;&N1>X^4(rx#BOkVk{X^ZBaU}c6QQuVJ z#(dMJ%@p{1iK|t%qc!U-rttGp>1_3@FMP@*5271)KRSH1RP=3EckhE~gC7H;E1Wbf z?$zIvUr%iIU}j>f&xJo)3FH%mfxTc$O54?j+>F$qdHwOuhH#nDBf#HdXb{@+%B(C!V!Pg#idf@AUghg z15^enWwjI4LN~utPY<*$X@2+elWaxoWtcp8T?10zEi8b5Lb}z`a77iv1LU?uBv)Xj zr-`o)4e{aQIeTlw!<2T_un823p-G<$e-#ub24kvEd>f*Nu|a@x7X+@H58Yw$F-QEo zA6h0vjSYt`4|W&3rL!_oLiAIp{;yT&K25sx{VUjV>yfEKyiph@yHI}rd#wvYCk)eNVhFaPNm88hge4neG*jR0N`1L}z7AIK0!3M9O9P$wO(b--)fS;R$@apFDI9>%v3{>yasKLDl(G8m17%}V*M}E1 zaJdNApoG4w^G?+nR{`AGUPNoLz>wo?9{aziL+17z-G=(feCpOrx?W1_LLVbqlWfHY zw{HGq?F-o)7FHlCQmXpOwU+#A=XvgWbl9~RZq zY%u1`?dDadBi+)FHhOm<-6P8Ix1@iz0KD0!4u3wIZHE_0Tpki|)T~(AHs2)-Ad11|od(}Z?h3giXdkeyt z2*Jb&YCvC6j*Zh3BOTiGCR3UxEcTppp@e%nv+>V23yH1Ob7S!x}q+)VLDsuB9m zFTU|6GDbXzOmu6bQHL^V#OmbRPpzCsRj2!^e;c0Ay>nJvdl&FM2tZ^{?;h1tVH>j& zc61suPjh4aJP-Z%^VIK}@1=Hr^%s6e^H!|TzY+RTlyTlKB?mmtNOcc$9}gR?an#&j z^J9}D^_A;+cO<;t9uCu*b1t>JiTrv$R}=9?OT?-8Zu`wPkH&MGz5u^Sm{=P;Z&9){>#6M!c7ynx`X)2BUFWvum_7gAE(qJc-02VS3{{M2eUkaQnlph6e`0H z)c2ZI?@{vjefi+Gp7s!8^0&u)>Xfg=g3%QE!ZCzSI*lB|>rM z=?2gLu4k`a+F11=#+uI3ER7l=2_J0Y8{R1j_+Ev0n4I(P+;VyVm$9{J!+91slr^V(5l!guKX?L!n|{ zer_%yf%DG~4HE+Hf@BCwhOUee9?I#zgsDEz(BF zrb1`Pog|R{XeH!1JN6INA?fZjn1xmLZxn77CWd}usRH&K2e5gyzqZH8o(fg{yzge? zKaIVP%Kd#Wb@S`gquHhTO2=s=HR|K5UZm6EYx3rZgx^vS-7>|Fs-<4M@-&1PlmFG- zV`z2w_ME>XC5$|6EV&`}DRJ^1c}~_&OgV2k?e?8B)hoSTOSDZlah;?HmOq6j*_q2n zhymk{5!FjC<%jhH=5&W_$uPI53c&oyKR{{Nyk1Q|s*x}tX=Wfno3?9Zwqqt#9^oX^ zk3aRE>HTi3CFd%f3nThufiCaSmxYP$JFXL>A?ZIPg^p=1zw$_0)|{PcM)2gjwaxdu zvaHdXcnW)oT;=N1`}*_V86)t3W!~EgM)why@Gir6L^xmP-o@Ee#M9%2khKz~)Op2he^` zvyzTNjBH|Z}-lss{VF0!yb7wkON!AUl2uz5F zk0}qo(lKJbnDlvn*+@`Nc)+ODA-{!V;IX zzJ;!M-Mu1jZAA;lRN`ByvlA4|<8giZP_@K(^(?*m4v9uHcfoKR&61#X!&d{~eFQ)M zW8&2bwj!}?O>ZPyf)D50;(bP_ljHMr=X&r>RHSm9Ugo~HYDu(hJ5}S$4rQ9RoJlkG zw#5oWDa5xz%X9yh5PP9-*hj&yw$<}NYf_-qq^EL$l3p9j`rNPtQD6gQ5LNVp;Fjid zcQd9x219JiQ@zz_&v*o_D{Z;z7pbG4{P5zo&(zF$kIbYJ2vOQbP07Pyu<~70bAD&` zr1W1ld`V{l(8H-P{7j0o-obBgbsFB|$|5SZyYbptQ6k6iA6Di*kK(}{e`Da;7)2f% zM$C5Z5EF*xS(@IgBRi{G?UNF9?Gbcpa}2@jXXh-kb|y8(oKuy)gwTE=0?0ZB@#tJ1 z{{9)(wUE%jQ$3oSOZOgaD8a_vGQiAc2s-o@-5mJCo(ueJ9A~Hycm=J4+tYwXtU=zO4^Ym!kYCs!nqM z2%l}NN>q{@AU@$VJ%ahkcn0i&m7DBFE|HUK0nQGFF5GRg@GeGLDeSHeM1DXl5oP-r*-FLB4$*TU z>bU-K_g}Iu>|-HMn0oUbV~7&fk^elnB5$Py0hXFYQqa2IIsZ{hwbCk>a7@mt3FQn=93kbPNWtx6P`kCJRhe`$VJqL zs*|({=_rzk+gT*ol7fuGSEnF_qF4+)*O>MYqPbmb>8ZANkVOdn9neDo<+Mx-OXWR? zr(9KBDKp{GFY#^1VGQZ(41|c&N-V5~`(9%QmmoNuzQr!W2XCB3d=lgW4GOh!DYKyxWFr5|7ns z$+WZ4X9et^inpWv7jFQxnFlARo5g&`?<}f~xk=l*L2&S?>-V~bO#ek6fcAsCx6A){ zXy7`8!~e>ExOwi=UM7N8549cdB$om&5nYB9;Ixf6malQ5&6k#cPr#jX!(b|!yynkf!>r9H<8X{)n0)+4M_Q>$n%&j z<|KG=l@zBT&L@|ZIDB%(nH_6y)IJPfFs-74P8hx=JKc$A(82y z>qAX<@tn-pE;_=(#@ww;Wc%sElF&~*f;6zI1#2}C;!%7WNugxTm!agvwL`yDSqML8 zH#-WWd#&1+-W^y8#LyQXY=jahkQgUI=Jc^oW4#g=6y~_B?6LTRd;;?xL+;gmWz0A} z=?n9d17@E(-0)Q;lqveQ!uXHqhrL0OA^()N|G)hOHU7V!|4QKhml6RpeUdQ zf@0{9AcIj*z@bFx0!j@%^yGPW^#8u=e!BO5x@+CFCTq>$bDr~@eRkjbch2n-7G{eV zty+W-T72a2fs+V{z&}Nhgc$rGt7wM8A4$?-TOWj^mI?pEp$937Fo^RxX|@k#*C_W3 z=ez7R-;2&_&7y zmi;?V59eXs!;LBRyj}HA=ZXirv!-YHlnS@&e{T4zF)B#VYfyU|HuUfBUkUsxf&Zff z;$7ts>uAz(b@MF@0ppQ zCy2i__44L7D1MPb#7z)na!k23f*hJ&3tRn)f%2j~O`8ykSceeBz)eb!f1xOstTXp2 z*W?&u9dS7xhY}5e`o|M3|CmJf%aFIsBzNw4H+EsQwhSVw!)l}>9-lFb<5Ggqz1Kdz z%cO-nU0W-SDAh|4Vu_agHYpo=Fq2L2-v^;fVJ#5RIXM|nwK3h1auJV6hwupLAKbJM zzFnm!e@XLv@$VYx=W((Gq#qC5MAr>ZdA(yEAI+G5=VY|e-RulPArIk&%&V3TB|{k6 z%i4%2*I!DICM!Jq1Dgw zM(KtE^SdAPVPyRV7+G=4B+FX@j}9M#j}~!PV$&4|$o4yBAhaHlK&Vf*g0G+EZJWG7 zVrD%`&Bzu(lP5MUB)=X`kX5_YMXlF$GNRFw=9(o@-x?K!CXa4vZ>p+rwjH_8kSA?# zak{4cQ;|k%5K7f+_Q#3_J4Ec-^*@TER5N89B7Sc?kL~9Q%vqOrI&t;ok*NbvwQ+r> z{gNxNtZJ4>jEQ<}?C#)>a$XCkZ(ta{_T!KhbM(7kdnPVMtj+)65UXlaCH852)OMr5 zwnW{RfO4LIdT5bTH1fk5fp_9)?RW#Hecl;fxcyutZlAkR`YrOZI+gC%!_s1*;W(s{ zK|qum_m(X8Y8c;QZmX8S>9aAteI*X_Gj%TcnIB2;&T`*py~ zkwb0V5$!6GqlD_VN5iPWvzZQwEf_6bJw0FKvMBP6ltF0svn?sZVze@DIgzA+QrE%$ zeD?*nGwsKwElkOYQpnUr$am3H3Awb(%P5un&Z$ifk8&=9hU2SpO#V^~mqU~dIwEqE zXPYX?ZDVH^V)rhq|3;~R(a#`)lggU~9Q>89iqc}TcqD&Z91{5%~01s>6;p4+DH4EXxu<+sZ zCV^Lccnm>5ss$WF6CA^*`-O?V9_ZBvJczjU=vYTwcvH1_vN=ll9LMuk z%EYmbgIE%iPSP$Xggc_#6XCxX884$Gd5gfp8!IvEzyc+$X8YoSx&rUwDVb|_*9;V; zr!3~on;-t@&>U=>dUc&?aN+Ac`;y@A9bTHK^Dp4V?(8O2aJxBnNaNb;%j++Y$@kxm zM%biIxv^KtNnb45fBwv}kI92LT)|FYGvPuPX4m)!=6F0p@cBsuKiAEHKu_?~NiR2D z_VGb74*i;S@(xquacA-~t72o@#^TNvQ=(0ip`-fWT2U8Q;fF+#9R*||!-a7hSS^7Z{ADQ%gwEUjX` zOJn=yQTyY?c>QAUL~+D2I4_Cx!>3xAUD(her^Uw}`|lsa{QMM(Y3IIIxI1x0TpDlA zDxs8EFxwiM2cNt&rE=rY4E5ans$i4!GmEYit<$ zk!jd!PWsDRe-UD>G{D2_H(3}A>`vkrbz$RG9p5Z$c{VI-(qHPzqNp>{7r5S>g=M^` z|KgQYWvs>>q}v-9NJn>XL?}b(*S32WMW1Tn(=`RX84GREgL0MQ-ySB~-(Yjvw(b3J z7O^BjohgS0u~+Z5drUJGv<}P`x0_s8QqK&wZ@8HT@7_W%j&97eCtJrqtW@B}`LR10 z-#5`eogMNN-BurkXT1_`;;*xpHVGWw*p6hKS=e@_CD2<_S@P=Fc^qQb!7lDq$+(w> z^Se7)1+=J>SB+(Mr*Tg{*V+7_lNFY{5$Qwvp{%?A_JsxC>kl{O`b~q~sXonesbQxF z_v%LXTcNfksN4}E!>I1F)MklF>_*U|xuPy+aWgqN=osbv$n$jCG#=SMfdHiN`}6DN z7K&5(C#A(hvdf(5fm}Q(5fovcx8x4y#?E0j*2{>uE*coM;NbD2c!;=rdYhTOQxO=^ zsbA#k@Plqmq%7RDV>bWP!t@^&lwMyP8cl&ErWnPT<=Xu4XQU9rzNqn{>&!iu4|(#$ zBCOEeNAO5=d=4bn;4j-@|5k=1-+#b#zy3>@4nfG)TF`q8&kUkNB z(fje}{V{Q5df}N|^Pee|nEsU!k&LEx=^UlmhBR5&%u*py8%bmwkrMlvzH%<%oZd=@jXdYgvAaQO94321fF$-aiSCM~1PEK01?AYNNqZuJ@*GBy5s zmK;!J(Hlxx7RPy?xo7CW))5i(Tpy3_9{VK0R@v98*bwOeHL zfg=S4_JNq5ddzyPjZvvIacPu)+j7rr@$U9T=pP6rJ%43=*X#BT*xDPKI2`HnY6*G@ zVfww3V&E5kZ|hQj94+5W4IKstzI)*96uB6)`z?JdVgrxhEj{<1^E-x36ykHFh>GZG zr#zyp|H~ZHo24E*;=hh%KN}LLi~5Yf@+9LfI2(;G$NaIvH+fP-jVm_pF%q~sA3UNc zw@2>r$2)h&zOPV56cO-JgVsppcTT-i-Yn@j&Oe!ZBG*DZuL~B=4ZBxi&ARNgQmk*c z>Cd@F2}76ZZDi-Hvh>$>l6{KEv=%bP+_viEpb9Lp@KOch5GeN08csUI>+xg>Kh{-i zv$S&ep?_A1pweBNo?ru`On2xOjiVkNh<>@#!J}C9S9xL--?xBmB$oNF6^HIJ=r|a$ z7u`&z8B5C7BB+1Dp}y^)7v|zLY)UM2Z@f;k){(%dsI_bl1RGTqQal%?H<3oE{Bm0$ ze1Zg*nxP*1;cSoM*>pbj;D$(tMH%Bf_+LA5u(ThO`bUldy^Qo^%MK zulZ^JbI(U~5J=^Q42plEBBCFCy;|E$WVH(H(M0#N*Bx?v)(E{EcKvgNS4LP(EPVIb zC-y@R1Ern;vPP%c-{^fN??yIx-jf|Kai(h`)qvhYcYQ8V~+skoCDm`lxtAArMdtCTFUxLg*LtD z>q5;$f;h{LS6>EWtTCe{N z+fjzduf`2U|43!X#~KA@%Geo#o` zfgB~mRtnjy`CkZoZ$o`6Kwj7+-@F(~ul=wI9UviCf>;-z*3divDfNZ$0o=Q9rEq2+ zqE!C=q(dmapMq!?N3kCcNSG=p;w4x|VQZ7M3ZKbLg`5x}9bqOq-5{d%`O*&Cn4bpv zQw;Aulg(LIobi?)qM^V}h)lJK-u9$T% z+EU?8QbvVNFd zRhiFG6nX#GB?+{{cM0yNCq15;%l4k6UPM~I8KRt#@>8Yw6Obijh2cW8LTM%+FRxiK zORh9AwGKvTnGsqVyr0PE#Ica$C@%N!?EuL#5Ba+A-BbGM)sY{jXJYg@)qf+TRAvQt{7q ze~t7bk`mJ4l%+p-zoxqG1m%s;ia72455K$7wG0_r7V+Q6-Q$e6E5OS%AU`-RH;`_* z;X!icy1TBsq9}?=g`?kM-><8V-ZG&Vx#zX=3jEPgui3t!S&(*J1MaITOnIkHY-6d{@lcTB1%aD!6;e1#_RrqF_E)Y~h|i z_xR#So{|Ar0G_f_nArb$6hSXewyj|g;ydmB;tJ02CN3(Yr>T&9@8!w0M+xUULt_?c zSBV`Slf4@O%D!~;o{pAm%vy!wl$6X6`<>hQCBLtYi5d^Q*KZ?d8U*{jdGysp%X=T` z)E#}1%kJ0Sp8xK+?n+?em?Fgv`pEaLhF4a`<42rXOPbrTsP|50uy727hYZWL)ajNr ze~!MsY za48;&#Kt&3lfzldF&?AifU)5nGNnW)oA?5$)S^?19!KI12YvTrE(zSfx)?*Z`$5Ds zF8;l~ckhDy@x#!&XZ_YhV(`slx!X<7N zJ?RmpddPmdN~Yhs&d_6wtT(OQVcjIBFStB~RyMR^U^^vfKWo1H z*qy>b|10W22D?_LD-$?v3`98vS*VjX zV9F}()Hgp~j2q5BsF`pg=FyvnD|j;>wDmtk0j4GFT-CWXd1)x4W#izzi#P>N-aO|m z=1E$Wg`t!r$XY28X{Z+fAVITE9z|}-OCRS#c@7m!CDaGNo%+=o*rNA zWw&0mYx1|HPBJu8uVpnn6f_&`kluPxIXhXT^AB)4JDcFPHWx>Y0P90eMv?*t+rooH9Z(E^&)rn%ilS6^+Jao2l)j@zxBsM{;R6)YFx2iA9(K@RiQ z+Lp!JxpJ8|OiKkGdhwZDfnq!_Xyc56WAQ?Aha@ThKo03xEqdE5O46};x(XlJ!mhm- zq}zJcdP|qbJ#tPi77WOyxJk{0p?GrrAPyz02iQfuS$=f4Y^r1tk$%2gpZepOS-iV) zm;k4}4y56n-nKnkkFXPGXT6w|ttr4I-Ur}D=O6jaUhFp{+}7UsE;WiRh(r4nm$bX0 zs`E--RqsC)h_X^R=JSm7RdNlo`)!K=8nd5RPT@w;kNyR#g zl-w@>!GUlMz+bcjHi&%LBs(HPQm!;XK9EF+Yi=SEt?lH3gDgta(E%Ll&y$^(L6~530Z=e?305Ps^UUSm_ePsr$hhQ*)ss&`z(wB~yl9ijq~P zrdOlXP%s$ZvxW+t-LIPnMefQq^MpF@XrScENZtIhM)b>~zVzL>Zv)9_x3K5dthk4E zr{^tnY`%qoLRLT`qujSzlw}oIVAW*7x)ODvXplZ5PIQ8T)MgX+9tE(QqIb9mKkdF+ zSi>4trriJS4*g+b7|QwGK?KoO3&nnf%SAD7_n`QT6@FwygBlmnKuIb&r|iSe2@6mm z>4RgI>{cadG2wtI#Gk4Y3-wk3MpeaiQEZFnq z8A3E3?XHqDMb_o)$1@r8#-4_!QEKc@-Zy0qd>wE!oo=+a52tvj2pS|)7Y2t`s*tn$ zL83nmnf4|^p47PCMK((B6*#W&kQECx1n~<4K#l9UOzxA{RlBMOuj+u9A!-89N_xTJ zFD6*G*xPc1?G#ES2*)>Z3o%F5fT7}|0(k%_AO`kD=JBv2rc8jpOf^7aeUVF1Ll;xB zkE*mm1PUFkdl064_qEJ*h)mXBGs7X9T_72)hfU zVmYStct#_p7%XWmn5AoT6Ipagl63Xpbsa>M6r#+oN7wiQ#3Iu3`b-l809OS#et^B$ z-0`0#uUkzGQep+;kW@M__bg}LL@#(-*4Qx<6XPzXYxK<3tn=pDLRiB_AHsqZKs?8k z5*RJU(QrIc9k@J>%jcQf(it&+S^3p%QwsT~1*OBl#-Bo$$(<)}Wu$g^a58D^^Ub=R z6)BwRRquAnDT=u~lY;j`W={BHwNK@5!a;)8;Kb?8axI=W^s0+i)@!FqT09X>0v?5v zVopaaoE;sB`(xC5^1$qLwj=A%jGjsKR-v3hdwf{N|Hhd|BxFbk9<15*3X4J%8{5OhRRh*?k zxN}6T6tJPhmwBnKYZJUT3bxT?4r>i^$G?TXXKzR7hfp#lPD%njnM#b-5I=L7joSq* z9S{yLUKbO@pmvcDHNRZyuEEkDC&7tPAxK+WkIQg2?|JoXhMF}sk{gDC?}c9k++7&H z0)uqMzj!xxgv2p9LDHS}J@>qSS4UFX5-2hD!=>?!SCnyz;Z0cKvB{tp55|M$)*@mU zID)pqGn;b}dnz9^VU-0d0;BPLctrdGzWA|P`-d5$mH+1cg%z#u{gkNZ0a6stN>wF6iZ;XkCF`?Fu)zTP4k@2RaA`2=I52au+Oa&y1d z!SB#npr2Ab#9S#N@oQrYPFlyIy$K;p`9d>s7H;b7GJeyvO7Cf%JJ;Ru$XTcj8t)qW zX~1z zYCACTX1vrtBgu1>8Tr5I#LtzSdd_FI%(Xsz46z{z3M}no=939+nCIXG({kB=_IN}b zRsSU30+v!fCG6!yr7=Og#~@M&NjDI+Nx+zmE665w+s&Pb1ZSft z#Z#H~^Dm?b_(_62{NExY(0G^%XaD=rzk>LMmHlfG{{apE6~zBu5Rmh%TYmgFyD%JJ zZdY2Q8vDWBNq4&7Mx<<4>U6 zhi1e^7yD+ib1ceBx;lAWuUcu6H@WUG~i0;-Y+lONww>&puY>2#b8 z;-%iirTr>@&+lmCc4(=UD%`nFTw&fTzGtIDwZHN*)F%%muR=qcpuF?p_`AS$Xzs#} zueV)lhb8f-XfKpW#~GtB1?QTy(cDovR0pFJr!TFStCGJJ`!C%14VuPd&=uLNcUi!_ z2p;iCO#c8y) z(+!b~g?sh#5<}IaWVVtQtuliuxQIwwf!M^1U|O$QrlAcHlLR{jGcn9aOwd7=2Lxj! zLN2Fk`6k!q)}y{ZN@oUMDvhP7amA3!1u;0HzU-OJmE{vsHJdJI&s@a@b&$(iKwTm- zEc2!LgucYx%SXTJuwSDZ;c;PoYnhQ&M>Ai%FIx$;l?K2Kv;-D9imkG!$bCoQ$VSBK zhg_>scy}I7 z7H~8TAIjv;%ht)#OUB(UdqKxvTe=i202|y@ue@f&$#T_i=3hEgwu4x3c6Id`Blmw! z0^5;MlHPS;hvXIaGG5lz$xyYwcjyL;EJB@EcI^j%46g$-glt!mm!Zk>W&y_!J%Ynp z5>fjqd)UO6JvV|~FX4rguMXA5kSCI_j#^^NNwj`#mK7X715`uYQMl67g+`uldBy7` zUx!(OUTircy)N%`zUJjULZ z{7j3R4y)j=6KAh@|A{%PHy@*i^~Fr7xo@|N=-SOmmH)1AT558xwIXlSq`z>GZg7H1 z9vs004Vv?AW8{ArWHTd<6|+oC6>cGDE6(hem4j&UTf5@xrEcX|PkZSX!Ek_On~KR0 zF=OGg>~*=3lpQZSH~O)e#xDF3_e_!zGjfmqwK0%i~iw0I42JQ7sC6J%b zxNNxGUa*A9Z*(y7Vle*<-M6r(c!)7WzeR4FWzyyrc(tTQqj={Z0Ze!NY6t{(TkdO` zo3b0bFg_U@xo8dX$aX(vo;;@TO2GAE(;9|vtlHQoLi{Ec$|3yx;Gy14-?LldTx=KA zGS{%mBPrbt280a$gNV#Eri{ON#d%Twa>jX1Jj^Yw=U z2dSa61zrpN)JHQNZCLyC1>fmm0of-m_oLL8*{`)z)MATy`hX87S#rQCG}eE1@Gh%J zrsKruES+461*>G5iOI+=3$f+<#5DIB4HcNkelS-zN9!TmT$u>FEA!HDG~?lH$3nkl zcj)IncN4*fZP%Af3%;pYT+XLg1{t+DklUoqEjM=S*ggu#%+3!Vtb6uGt_Jzv(!iIra)n-0emPpN`G_{Sq4p zxsjIQe~2kRr(rZ*j&&R<9?KAw*1ib4g7eb%pO&EAFXY)8Tmh$PzJAf@3;E7`!SG15 z(NR)PJ^8AJpp$KRiu~z_=yiT!J~ly)=2TJB!j?G1k6?LxoMF(dm5Gb)lVlU=`8)a@8IwfF#_ZoLa8f)DGhXDiY z58QuPBMTFZP-iA$YHe*exEpMP7j4YpFVtPfy?pc|HKvETwM*)1Y8Q?2R1XVLG2c4y zLt9UA{lSrZFa)*PZeC)!w+>#W;o_o}4*u}O2q)DMT&SH)JH>Yx)&iggG7wTZ)iP*l z7-~|jGR^S1KJi|St|K;Z`VW^RaZ;+-;(5o4$NiYDh*73rC+07zPJsKKxq4f2ZU%q~-v3_E=q# zh|($+>WwslW+tfYDCTT3KMCbZ;0IbMwSocqO$1lg(0Ug!VCbW3{q$h1mw$DaLv#X9{>Cb?l6K=qy2~?}!wj!$nq?cm;Xgi%-Ue~)ZhHZZM~QyU>3jIw z;eh9)cIFhFM$kKH-#56_);l@` zCxIwEVxe&7<1HooxeD@A36M^eXEF{md9l=#xnK|eEOmtXi5|WA-JmZ9mKKzaJzXcE zODUMBr@nJ-Dx3YZj4T-ad}HDTIeu=M)FgMaC);kx%ukQ$@#hU}Oii;eRC0*H?U^f= zjc#+KS5Es&N)FgA#11Ks?a5Ht`$bu1I`md|LvQ1u^G?JIW&nRet@ZGU zUKzVdYy8rybCVJ1u%{gQ+E&JI8Rwp5Z8&~?reYbntT1?b-~M@-MXmJ>f0PcVkAPz` z975EN|1ilyWT9cSkmvIq=Evqbj0yur8n7}|wM-`a+dctryhJxepUcd8C@y|RO7)ql zK_({KYlW%WZFzssc%g3Iezg&pb*qSJc%wX4E9fTgVI*d+DG!A3X+yG8B73~-xIWqU z_j$n!`F@5{XUTw1$9ybq+L!<5U9V@C`l_3047< zbd2XfEzHb*D6T7#X(qZ=$y9mIv~2`N;3*z3iY8h632-Hy0nBBS_?v4e=+sEr{Cf3R z_0B(j=!%TK?-)GS(M%n32q*#^wlk+_&|ZVjd4i2?Bd=6AP0cs%HS{X+{&9ZF)+pe# zxYVPmR^F_tpi9A}NcG-M|LzJ|x;Pv=P_DtE*Co*|g7xt>ZnjIiY*B@MB`@jXC|zq8M#oOxmO3z7StF1;gYi2HQz1hi;Ki+){Sza2I`Bo zf}46EBi5zyBdAX8O!klns)Ybg`oe9Y-uHq_PmSq(wN7`y_DcHT_LMkO`%+K>gqMz2 ziGOb?Ma28u%3K$9j8Jj_3a2kq{#yk3@R4rPo=7$9sxm4ug@Ww0s{%qV2fpS)>Cb_! z+FKVRJ4uP02kNmZaO7wPP?GZZfyScXOY(3V1anld$duUgi&6AcE|pInW0My!HgVJiXUg$-N1n6H77+ByS0nwe+?JTC{0fwsJTQ!z zshyWX7Clgsxt7fhSfIM|wU62)kOj0d`k!L1zd7fha1)`nH%_B!tgjG_N!D<#;2Y6I zrue`$Cz3V24y{yBCQ!_`2eM6zya=^p21A>u5Y8VCp3x)jtq)}Mi`6ZBXP zm{lO6ZC+P}EY^WK?LcU~y#9=sV-hE7Q=nLk&{e#g(1l@=s0K14CF1J$`*3N?6XhH( z_T~*hPqD8Rc43vA>^?U1)n$9qPUwnMr1?I>YMpOE8+Hv-Q}$nP7cCJULL{m|pLDzr zp#s{cPw6GwuRUFch%(DDqyu>`Q51TZp-s@{2y0f`FYT)A#+RH5qAA7pYm`?=cM&u* z{;=Z5=Hihu2mh>H1WLq8Y5%TpladwaV?!e%<{9%R)w(SOPp|KkMm6r5#tWksa99V1 z95^#s&)y(1Q!;b`>dW@Ci1eUzTz8`O=oq#dB}#$LNwi+FNk~ij3Le~)gTvh7o6wRM-S;W+2(*kbyK4_#x>u1qOp9Bgz@J+UEJMfhKTnDcn8}K&A zl&BlkRdt{HT2*raS9DO=bk}E7@~h00oU+7C&ny<}UTQZyM2|5B^t*38(B3?gpxx=* zCynCi!$TwSyqx8H*%f^BQrJ}AX}>o8X*|8yUsSruWBjT4{m-Z6A-%?$<77@TqFj50HM%r5)D=SHD-aPp~sAO=8GA`nx;V rpeFc#{R1WZ`}+|H1eAey_)MS>~K`-{-zx=ibhJT-&>Q2T4d;2q8q; zX>MYJ5E1?)A^|@5MVD0zfnS0?=60tM5?;pr#?ak+QZR^}w%M^AWxkjB$zAVeWMzcV zizwlF7hZ(aH|{hs+J6ok`m*3BQTdUd-JZbkCCVw1P1t`CjEPlC8A{n#S*M6s1=jCi ziDRdTayw``mtKDvtP*$-6_Y2wZD0NA-ANxN=Qvl6`MnILQe`pNT$ zru3-?EV_7F_ZtIw>bb86t456J9t$he8YmQqHA@j<-H$%ZREr9*>#Xd3$PD+Gksyi; z7~2I2^6utAtvcZHgRCcqnFa&6m+uz3?R(>krgn58UPPON5S7jQgq>8`dzhJ7Th7sa zugAOl@N$9m1k}0?=sa23Ww`6Q=`9{h(`(eoWHBp=dvuv|)w;VmJsQ#OAxsu|9N}jF8t~2r<+| zjOU%MOw7CPbK|=gt-z)t_&l3w`FGDpM+liMVG4+G4PrBSrx1PknV1nm%Roq)jReQj zTpqZtH3QMsh`7ynhQ3Xz>o;D4SSItDi1zMymvi&nxGR;)I_7s&HqL)AE60fsMZ}9D zWcEzLl^QT_-#o$iqN6cT=czrwgUq;$o<_gLtpiFl1`gOo5vIO9P46Vad0zumKKQ&( zs`%w%fRK_RLdgNf#dP)gUTjE5ec*~0LiTO~3dl;WoPP2*E_I#WKKVFZcg-jnCA;V% zDd~rb=&>Ccb<{8C4UvXoA zE-*3Aa`Ir-3cNkRB`EdiYqBI_oCLec_6=Pq4f*A=RRK9Dz}AmKyP5ZYj}Qv73@!sr zJnV48dcMpov0Rn7m4sT+E1+5WWIAhzGkKS(!LWLITI*}^+9eDtE*c@Ea^?vREl~7W zZd);8@WTe93fJkaD_0{V)(y7v``~rF_rY`+Rp+b>VuUpS&Fj{gu-6|1;SZQE*i>#f zn79Nn^uVZml&{m>L%AQoW3yk{%=^DkWL7zT8`(F-P3B!j5FuKooe`@pa{HKA#=zm_pDNT?tbkaT<|A)Zz9t%X)Q+ZCXl{`pMY{fNedHqWzC$cJlpS<&6h zm-BQH`-8%>Z_*pP0(=+d8gkiXgJIr>m-Br}N^(4RAGa)aiuPx(L2Lp90%!6Vb7zoU z_@U)W#P^aXpN>@S+roo=(m}}^J?Fx(pJoby97zq9QiH$ zfHiUGwebWkY1U^GLXrU2^d1#<|2y2aG_#3t()!@ZHjb+*@8=}~^GnhwG`S*+sjkN* zdo&3M;9;>En2Bko!Rpgdk1ob?sOv@!k$6P6OJ$!hjQc&X4w>(PH8X{H`>c2N=PC8W z2Y&52mWmrx>-~03f6M4C)zDWP`K*Y{tso$%S8#;%az5`DUMS+3OPFYNmVTQm&G$(( zTB9}Apq6Km*UfvUafbt8GqQ1$ySw~~$2H{M^;5MjpVH&b?}k{@y4UA5N&BRAvx~}0 z1ERlntf8emjhPzm*3J|iI{`6o^`)91V!^+Iz~CjyxdLS zH=84BVLfR%#?+bY%;6-&%G0kmF*k_W@(1HX zAz!;F<0aWD6J70l(BHm9q_8prUv*kMZQ@f<_NKBqhhkgNOJP0|NMSXGC>x(Jo)0nk zOM@m~9RJpj19g^yH690cBf`XKPW zjr<9Y)xxyhe_?3T(R6c9g4Hw@1n=*)X?F37&w*T>e27nz&zBMPBR^rv$vRW`PJ z+=?u1ylXD2l-i`WUJ_$H1~kOinOduJifPn*_1Quy?t5wt+iCWYU(r2Ybh}3YvEGqF z@FE&D$bCjWzssDG=tY-KPg5H>fXE&Y;nvpf?n_j!KJOxVMz`86S&pClGkDwNYx>{< zf4l}r)p&Nvb=*(3N$fQ%mFZoKP zmr*E;YacO0rZR~Gd*_wO^O1C+<}Po3mdQ^@5DLZkiGB0Rn?%abj4TYD!I0%mQN-}b z3Gvq}r*H4^50=rzV6^~?$XzW3tF7miQyjR|V|(4)^@TJVd0__7NGTQl(j>YZPfsgROYP|jy_z<&if3`g%&T=F zt2b`QKKSQji8Gpn;inf;g4Ls1N{@ExTJVs)fVje2?mAvGn`1fO`{uYLMc#2r6-jM| zGf=WUt2WSvYZO!!(&diC^N(&Qcsk56Y=%vpfX*ykLZ#k#jNW#uJ1I>12iB)JV>6_6 zekF>Cg{a+eVI^)OA6oEYHN-{LC{v#g6Nr{4gCQvuTb%0Qbp53mwyJv_E5=b!fNaAR zqh=V7i(HO-w);o`#(kBD77d6+M0e4h`&{$Y+W0*W&7?Qwj^qm`3#*nP%*+CgMIh$V z5xMKP!a;e@n!SA-iF;`mufiEDh1wzF_7q+}Ym@w1xbm#Y27q6o-SG)D!GQk3~IWT~BB~Bd#xq?z-^-)CHW8Ww!W-$6XdII-vz4Xzhj|@hvnrzbzcU z(w%gWWICegvtKaTmw*^kLGm*Ed39vUtJO#g;&_8WFRo-j%*zlZ)PCg{h@rcX8{M6! zy6oF=kFP!=3Ug$Za+y96Nkg&berRSRH5?ywej3G7QMx&Xu#1rb5vTn}P2Lo}qHF`& zwCfMO!_>3(c6{ZHE-9ABcWq$GC3ct+WemDKUzs#GG6+gGuZQoPs~z`asZE1=&m*eH z#F3<`47H@sOdiG$@H+SXDr$x?^OWJ4em5x2Fyn3(6BHlYo%F)q#EXg=)OQ$Y8#wZHAtrI8mI=gOZKlWVHQm#UaMCs(Fn8(ETQqrdHJNP5hQ+owr() zY%xL}6od`&<4+31JI)~T^0v+%ZyrVpWcKz(Q?DQvvG!Q5!Kp?JHAsQXfi_8r>ZbdC zy!1#(jVh^yf;0jcZu3HnpM6SM8p!=R_v4+<$La|wPohe=>OHtC0+7gcj|YQeFAa0Y?J@OiI!E1)w(oHy6=&Ms?CLf;LDr>TsA>b z*oj$IoGP3LSwp$wNE}=YdD_aO1_ZSc>ujN@7-KE)Loas$#WD~@%eBx^HJWD60q0uW zvXe+&ncFr9h6XH>w*>)NC@6+rzI(9(*(-A8ptACS$Kn>Wz>WMU2sKD>MW3xo6OLa2 z&aPz)1lilbvi`&5dlRoEw+{ca1<+rR3`pcfR$O=h>%rKKo2lQq_P&Vt9j2B)*7(uX z>A#FQH%f{C;f|(Qtn%)rr{ z6EB>^DEqkQai{LsW<(ZPQlaS=e}EIaAiH=14JiiW{e+YU;U#%EkCr(cDh%A^w>18t zgiF_GVHHSsY!Lr<70jXDmTM&RG zy#|!pH>FwM7Oq^OIp-G(5pHo=a+_!Kj$zG)35IXN4lg?2ABRYbDiI+Z8MF~Y>sP1z z*BfFMq!>CV!bULbhYM0bB*+GNYIAXY0j#Y@4RKA_AR11E+U8A&=Z|Qds5-e68HFFi zD7Qm5jp8O=ow~bfTchi}7CMd@5JvMZc==%<0_gB4^zD|wu{l@P)vY-G(>tzPKG_?qK58R&TS(psmxc7)Kb5J#SeU$R8mNvL7X(#&{qp#whRNUIJi!HSr~^7EwtQ9&~Gp3-dEO#HwL$}6c-zc;IKuy(leNrjo-TnP4S z|LflP79pAhDD`c02YHLg&E{zT9JQzr+S0|qP8QA2Z=U&mRi3B)@N{Q&7~FILkfmgP zwjqDnUK95#k5qcR_sy(o;zxCWLPVI_%Y$WTsNmyeaWmP=UGyeJbZLVRNr7cvAUbN8 zNqj7r$(f59z>(Q@$j9a)yd#PYye#NX;ERJMaIx12Pd|;!&v(Xb_MqpcF%4Z&WVRC& zw>ir1wKPp-I$cVjs$%8*?-gq zJ7zZLzUXOj_Sfp(wBVOTY{fD_*AjHQN;1tHD0uTJW>TAtL3g0|#D6B?GDHr3|1EeZ zK!xqZ-(ei!FIxTWfX^MJ9Z0Dc)FVb;>In*{4GBN)|1LMj^=FYuv-Z8YtfW+pf~TT* zpbUz*3%2Fq^B23N-|=!Ml~g6G!pVXgY6Q3BAcU%6bLwHIoN^u+KHA zOyYjF(@2X=UmcHzR4AuVd;EOmbvolGw{l)xguHr=A&zS|o-vy}Cq`BQ@YkA1vNGO# z^YvZ&B!QoJ0izqZqh^vU``PT=JF(q#^`PkpWEsh2zp@B*2>9e?rvKK(#;xbG>V^&f zToaz!^nKD`XcX*}KdaNYcRnjabKvKawFL5N;FU6v%GRd#5zURp=*nRrj0g8};_{^L z8E?IQft7Q!@GBn6+uiu?*>Rn7GRX38E?}F4Y1^pjx|kE+ZJXfKJ=Nb_*Ku0>q>v@I zqJCSw`|Csf$Pm9z4$C5Um7bHb+&)8b((B% zd~;%#k7N|-9Wh=TvdpqAA``ko!`*(bO-p@PW6v(Okmt6K(YNg2q6JC)=H(OE$djlh zlQSnjD3R~|#y7Lc{2=VGlfrMW)J2gox)t`zkAvZ8EYVnud%uQ*tzDL zpO1WyU47opS4X#|jA=Xi2RK*uB(4x8tbsIX{*J=Bac-YbN*Qe=l!~8k?wq?|=+}Zj z+bgUf1~rHH%JvIGQ`>4a%NQ)>Qm0S!IhO|KA$RNf&dvwj@(Pk5yAHkj+CZpi>;#oAcg*_hXE%(Z3Vv`|hPUGUVVmG6q5D+Boz?_H) z4duPAm}bZgRXk-Pr~eFnh?DSWQeHs?;-}3MbSS#gI$MRBo+%9>}If(Gx<86862cy%$SFRTH-1rc9LnAI=%4Wd$GR+TvbM?V?-Aob z{7qd=;IGw40c3VOEJxWldx)11p2P9XH>SA{KrdOAqv3w>G>$G9K{;bZ#Yn2d{>DqF`K{ZdvTYY?Sl8&>CdP4e+^IKK^hQ_eV*71Ha$WUwDs=~FBjUs zko}zb&Fjsz14futxr4MG`oZ_fP9HLuEC^R&J!GpHN^WJN~;w z0+%PCmt6f13Su<%p!Bs1zcJ)+SOB`Gnuj zNJCFG=|<56eFe%s3bviSugr&a-k2hJ(^h?2j5NnXiv!abyjO_Uw8Tw9>me0GdXU?Y zo^8Eu++@N0If{~xHZ9sxZo&fSpHmAI%U`|@k&>TA)4cMSOa^_(Xy7X zSUQqUhF*wzZ1kzs~!MgwGLxd?w#Ls(vQsE39l~kkZr%lbmLnkaLZ1I5DaTohEOwj zK;>#A`uqasrEl(&PutDN zg;9_=`*fL3UldlD7>(Gbh!we&fLOap8TCy5(F9~X*> zXq5bt<8LIq*u$>D7aaY6(hZC9+{;QmwF4#5C<5oyKHR#{!eOoovP&(?&9rCZcFl%I z7aWAjb6anAsTM&yTY}rp9y>BOJ02J$^B z=BqNwiM*yVvSUc#=|z@NpXj-DRCqs207K+gDW`tvS=d&PR+LM3Y~HETXJ8_3EH$cn zhOeXLVToov0S$8lXh`&>;h=)q5sl+r^!?4=uAU>E(OvNrQdF>@5sSJ_ZREWoVn>2( z9S$npMdQLGjo2`Yn7Vid30le>^-v`3!digDS zs=OK0c0EPDY+od=E4OL+al_d6&dxLtfo3+T`Eju zH@5NGJ{xJ1$IuBVX;_J*D|fo_6G7?r@Dj9YZ!vb*Zw-4*LG{3Yf~h={7}suYM<*co`q-Y8F&r=+W9~B+7}eO?3;%ubXLus{xheA{zVNhc#4&67&R$VQ zJ_Mgb4s9OkxAEd+-Tm_;l?}eu{5(@eJzOHNWgkgHVw11RcDnG?F#+dbA=OGC2!~@W z&TcGd_X}P&NEO6Z^!Q5bf2*_j)=5(@6aA*&Fxwd`UGb|_AF)@!xioJUJ3hb^{6$*% z1KTQ;tjEvT%-y&p>S8m_2ZhIqTMn-rHJHMG-hceIUF(R<=WMas`e+wF!vR(nH2H80 z15q-|GhTzS=Ld$ia6KwA;QO)PbeWtmtqFKE;xgPZrB)Fvd^c5?-6+G@0cmk@S?v&> z`XpPQRMEZeRE=CS=EDOAJWwTrj%co{{9$b8cB=*ClmZ9rIaN4g>9TfEa*UA5k{hc2(Jwj7maqD&(!lt1K#Yi}F zYj2y*St1SEWB7>~7FEYSram1pgXX6RXcZKE7W=blYmqWh2G_1+H=+3J2Jmk|u)JCt z&9Abws@Pkpj?e{YUa|b%T)Q_*J3dI%^a1FVjDzmxZ2O}#uVVQ&#mpgcV)nX z;DlMG1hf`9PQjAM=ORMLU>UO9CyyAg>4~HFFu)J3h0YYq&vGe0ieCadlKph`7VA3J zFDN&;{NUN?68Gny<`%r{fVzKLVDL*2YzvlQKnWGD0{16__=kwW{qQdly7?~<|60WV xTGt?2CjFoF<3+{({qZjX|03{z1_8$0v>|l&J4t89A9I!3X}a4ab35(Q{{wU2eE|Rf literal 0 HcmV?d00001 diff --git a/example/tokens/assets/icon-staging.png b/example/tokens/assets/icon-staging.png new file mode 100644 index 0000000000000000000000000000000000000000..293a30f4736ad421ad9a5e06b1d8ad895c97d8b7 GIT binary patch literal 23950 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 SJZSw0jW<7NMJO|Jjrt!9^RyrU literal 0 HcmV?d00001 diff --git a/example/tokens/colors.ts b/example/tokens/colors.ts index 4564f2c..34fb798 100644 --- a/example/tokens/colors.ts +++ b/example/tokens/colors.ts @@ -1,69 +1,69 @@ /* eslint-disable */ export const dark = { - "muted4": "#3a3a3c", - "pressHighlight": "rgba(150, 150, 150, 0.2)", - "focusRing": "#009a48", - "errorMuted": "#3e1c1d", - "error": "#ef4444", - "muted3": "#48484a", - "elevated": "#333333", - "success": "#10b981", - "warnText": "#ffc93d", - "primaryText": "#1cff87", - "warnMuted": "#40351a", - "errorText": "#ff7070", - "muted2": "#636366", - "primary": "#009a48", - "primaryMuted": "#24392a", - "muted1": "#8e8e93", - "muted6": "#1d1d1f", - "text": "#ffffff", - "surface": "#222222", - "backdrop": "rgba(0, 0, 0, 0.5)", - "background": "#111111", - "info": "#3b82f6", - "infoMuted": "#1b2940", - "successText": "#1ee8a5", - "muted5": "#2c2c2e", - "textMuted": "#999999", + "border": "rgba(150, 150, 150, 0.3)", + "warn": "#fbbf24", + "successMuted": "#193328", "infoText": "#81aef7", "hoverHighlight": "rgba(150, 150, 150, 0.08)", - "successMuted": "#193328", - "warn": "#fbbf24", - "border": "rgba(150, 150, 150, 0.3)" -}; -export const light = { - "muted1": "#8e8e93", - "error": "#ef4444", - "primaryMuted": "#d6ebdb", - "warnText": "#8a6200", - "textMuted": "#666666", - "muted4": "#d1d1d6", - "muted6": "#f2f2f7", - "muted3": "#c7c7cc", - "text": "#222222", - "surface": "#ffffff", + "textMuted": "#999999", + "muted5": "#2c2c2e", + "successText": "#1ee8a5", + "infoMuted": "#1b2940", "info": "#3b82f6", - "elevated": "#ffffff", - "success": "#10b981", - "muted2": "#aeaeb2", - "infoText": "#0a45a6", - "infoMuted": "#cfdef7", - "successMuted": "#cee8df", - "successText": "#06734e", - "errorMuted": "#f3d2d3", - "background": "#f3f4f6", - "primary": "#009a48", - "warnMuted": "#f3ead1", - "primaryText": "#015227", + "background": "#111111", "backdrop": "rgba(0, 0, 0, 0.5)", - "pressHighlight": "rgba(150, 150, 150, 0.2)", - "border": "rgba(150, 150, 150, 0.3)", - "errorText": "#8c0606", + "surface": "#222222", + "text": "#ffffff", + "muted6": "#1d1d1f", + "muted1": "#8e8e93", + "primaryMuted": "#24392a", + "primary": "#009a48", + "muted2": "#636366", + "errorText": "#ff7070", + "warnMuted": "#40351a", + "primaryText": "#1cff87", + "warnText": "#ffc93d", + "success": "#10b981", + "elevated": "#333333", + "muted3": "#48484a", + "error": "#ef4444", + "errorMuted": "#3e1c1d", "focusRing": "#009a48", - "warn": "#fbbf24", + "pressHighlight": "rgba(150, 150, 150, 0.2)", + "muted4": "#3a3a3c" +}; +export const light = { + "muted5": "#e5e5ea", "hoverHighlight": "rgba(150, 150, 150, 0.1)", - "muted5": "#e5e5ea" + "warn": "#fbbf24", + "focusRing": "#009a48", + "errorText": "#8c0606", + "border": "rgba(150, 150, 150, 0.3)", + "pressHighlight": "rgba(150, 150, 150, 0.2)", + "backdrop": "rgba(0, 0, 0, 0.5)", + "primaryText": "#015227", + "warnMuted": "#f3ead1", + "primary": "#009a48", + "background": "#f3f4f6", + "errorMuted": "#f3d2d3", + "successText": "#06734e", + "successMuted": "#cee8df", + "infoMuted": "#cfdef7", + "infoText": "#0a45a6", + "muted2": "#aeaeb2", + "success": "#10b981", + "elevated": "#ffffff", + "info": "#3b82f6", + "surface": "#ffffff", + "text": "#222222", + "muted3": "#c7c7cc", + "muted6": "#f2f2f7", + "muted4": "#d1d1d6", + "textMuted": "#666666", + "warnText": "#8a6200", + "primaryMuted": "#d6ebdb", + "error": "#ef4444", + "muted1": "#8e8e93" }; export type Token = "backdrop" | "background" | "border" | "elevated" | "error" | "errorMuted" | "errorText" | "focusRing" | "hoverHighlight" | "info" | "infoMuted" | "infoText" | "muted1" | "muted2" | "muted3" | "muted4" | "muted5" | "muted6" | "pressHighlight" | "primary" | "primaryMuted" | "primaryText" | "success" | "successMuted" | "successText" | "surface" | "text" | "textMuted" | "warn" | "warnMuted" | "warnText"; diff --git a/example/tokens/sizing.ts b/example/tokens/sizing.ts index 750feed..f79a37b 100644 --- a/example/tokens/sizing.ts +++ b/example/tokens/sizing.ts @@ -2,13 +2,10 @@ export const buttonHeightLarge = 60; export const buttonHeightNormal = 44; export const buttonHeightSmall = 32; -export const buttonPaddingHorizontalLarge = 28; -export const buttonPaddingHorizontalNormal = 24; -export const buttonPaddingHorizontalSmall = 16; export const focusRingOffset = 2; export const focusRingSize = 1; export const iconSizeLarge = 32; export const iconSizeNormal = 24; export const iconSizeSmall = 16; -export type Token = "buttonHeightLarge" | "buttonHeightNormal" | "buttonHeightSmall" | "buttonPaddingHorizontalLarge" | "buttonPaddingHorizontalNormal" | "buttonPaddingHorizontalSmall" | "focusRingOffset" | "focusRingSize" | "iconSizeLarge" | "iconSizeNormal" | "iconSizeSmall"; +export type Token = "buttonHeightLarge" | "buttonHeightNormal" | "buttonHeightSmall" | "focusRingOffset" | "focusRingSize" | "iconSizeLarge" | "iconSizeNormal" | "iconSizeSmall"; diff --git a/example/tokens/tokens.json b/example/tokens/tokens.json index 930ad4f..1f3123c 100644 --- a/example/tokens/tokens.json +++ b/example/tokens/tokens.json @@ -1,120 +1,112 @@ { "colors": { "dark": { - "Muted 4": "#3a3a3c", - "Press Highlight": "rgba(150, 150, 150, 0.2)", - "Focus Ring": "#009a48", - "Error Muted": "#3e1c1d", - "Error": "#ef4444", - "Muted 3": "#48484a", - "Elevated": "#333333", - "Success": "#10b981", - "Warn Text": "#ffc93d", - "Primary Text": "#1cff87", - "Warn Muted": "#40351a", - "Error Text": "#ff7070", - "Muted 2": "#636366", - "Primary": "#009a48", - "Primary Muted": "#24392a", - "Muted 1": "#8e8e93", - "Muted 6": "#1d1d1f", - "Text": "#ffffff", - "Surface": "#222222", - "Backdrop": "rgba(0, 0, 0, 0.5)", - "Background": "#111111", - "Info": "#3b82f6", - "Info Muted": "#1b2940", - "Success Text": "#1ee8a5", - "Muted 5": "#2c2c2e", - "Text Muted": "#999999", + "Border": "rgba(150, 150, 150, 0.3)", + "Warn": "#fbbf24", + "Success Muted": "#193328", "Info Text": "#81aef7", "Hover Highlight": "rgba(150, 150, 150, 0.08)", - "Success Muted": "#193328", - "Warn": "#fbbf24", - "Border": "rgba(150, 150, 150, 0.3)" - }, - "light": { - "Muted 1": "#8e8e93", - "Error": "#ef4444", - "Primary Muted": "#d6ebdb", - "Warn Text": "#8a6200", - "Text Muted": "#666666", - "Muted 4": "#d1d1d6", - "Muted 6": "#f2f2f7", - "Muted 3": "#c7c7cc", - "Text": "#222222", - "Surface": "#ffffff", + "Text Muted": "#999999", + "Muted 5": "#2c2c2e", + "Success Text": "#1ee8a5", + "Info Muted": "#1b2940", "Info": "#3b82f6", - "Elevated": "#ffffff", - "Success": "#10b981", - "Muted 2": "#aeaeb2", - "Info Text": "#0a45a6", - "Info Muted": "#cfdef7", - "Success Muted": "#cee8df", - "Success Text": "#06734e", - "Error Muted": "#f3d2d3", - "Background": "#f3f4f6", - "Primary": "#009a48", - "Warn Muted": "#f3ead1", - "Primary Text": "#015227", + "Background": "#111111", "Backdrop": "rgba(0, 0, 0, 0.5)", - "Press Highlight": "rgba(150, 150, 150, 0.2)", - "Border": "rgba(150, 150, 150, 0.3)", - "Error Text": "#8c0606", + "Surface": "#222222", + "Text": "#ffffff", + "Muted 6": "#1d1d1f", + "Muted 1": "#8e8e93", + "Primary Muted": "#24392a", + "Primary": "#009a48", + "Muted 2": "#636366", + "Error Text": "#ff7070", + "Warn Muted": "#40351a", + "Primary Text": "#1cff87", + "Warn Text": "#ffc93d", + "Success": "#10b981", + "Elevated": "#333333", + "Muted 3": "#48484a", + "Error": "#ef4444", + "Error Muted": "#3e1c1d", "Focus Ring": "#009a48", - "Warn": "#fbbf24", + "Press Highlight": "rgba(150, 150, 150, 0.2)", + "Muted 4": "#3a3a3c" + }, + "light": { + "Muted 5": "#e5e5ea", "Hover Highlight": "rgba(150, 150, 150, 0.1)", - "Muted 5": "#e5e5ea" + "Warn": "#fbbf24", + "Focus Ring": "#009a48", + "Error Text": "#8c0606", + "Border": "rgba(150, 150, 150, 0.3)", + "Press Highlight": "rgba(150, 150, 150, 0.2)", + "Backdrop": "rgba(0, 0, 0, 0.5)", + "Primary Text": "#015227", + "Warn Muted": "#f3ead1", + "Primary": "#009a48", + "Background": "#f3f4f6", + "Error Muted": "#f3d2d3", + "Success Text": "#06734e", + "Success Muted": "#cee8df", + "Info Muted": "#cfdef7", + "Info Text": "#0a45a6", + "Muted 2": "#aeaeb2", + "Success": "#10b981", + "Elevated": "#ffffff", + "Info": "#3b82f6", + "Surface": "#ffffff", + "Text": "#222222", + "Muted 3": "#c7c7cc", + "Muted 6": "#f2f2f7", + "Muted 4": "#d1d1d6", + "Text Muted": "#666666", + "Warn Text": "#8a6200", + "Primary Muted": "#d6ebdb", + "Error": "#ef4444", + "Muted 1": "#8e8e93" } }, "typography": { "native": { - "Body": { + "Body Large": { "fontFamily": "Inter", "fontWeight": 400, - "fontSize": 16, + "fontSize": 18, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Body Small Bold": { + "Body Small": { "fontFamily": "Inter", - "fontWeight": 700, + "fontWeight": 400, "fontSize": 12, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Body Large Bold": { - "fontFamily": "Inter", - "fontWeight": 700, - "fontSize": 18, - "textTransform": "none", - "letterSpacing": 0, - "lineHeight": 1.172 - }, - "Body Bold": { + "Title 1": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 16, + "fontSize": 48, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Subtitle": { + "Title 2": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 16, + "fontSize": 32, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Overline": { + "Caption": { "fontFamily": "Inter", "fontWeight": 400, "fontSize": 10, - "textTransform": "uppercase", - "letterSpacing": 0.5, + "textTransform": "none", + "letterSpacing": 0, "lineHeight": 1.172 }, "Title 3": { @@ -125,76 +117,84 @@ "letterSpacing": 0, "lineHeight": 1.172 }, - "Caption": { + "Body Large Bold": { "fontFamily": "Inter", - "fontWeight": 400, - "fontSize": 10, + "fontWeight": 700, + "fontSize": 18, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Title 2": { + "Body Small Bold": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 32, + "fontSize": 12, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Title 1": { + "Body": { "fontFamily": "Inter", - "fontWeight": 700, - "fontSize": 48, + "fontWeight": 400, + "fontSize": 16, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Body Small": { + "Body Bold": { "fontFamily": "Inter", - "fontWeight": 400, - "fontSize": 12, + "fontWeight": 700, + "fontSize": 16, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Body Large": { + "Overline": { "fontFamily": "Inter", "fontWeight": 400, - "fontSize": 18, + "fontSize": 10, + "textTransform": "uppercase", + "letterSpacing": 0.5, + "lineHeight": 1.172 + }, + "Subtitle": { + "fontFamily": "Inter", + "fontWeight": 700, + "fontSize": 16, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 } }, "web": { - "Title 2": { + "Body Small": { "fontFamily": "Inter", - "fontWeight": 700, - "fontSize": 32, + "fontWeight": 400, + "fontSize": 12, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Body Large": { + "Title 3": { "fontFamily": "Inter", - "fontWeight": 400, - "fontSize": 18, + "fontWeight": 700, + "fontSize": 24, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Caption": { + "Overline": { "fontFamily": "Inter", "fontWeight": 400, "fontSize": 10, - "textTransform": "none", - "letterSpacing": 0, + "textTransform": "uppercase", + "letterSpacing": 0.5, "lineHeight": 1.172 }, - "Subtitle": { + "Title 1": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 16, + "fontSize": 48, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 @@ -207,34 +207,34 @@ "letterSpacing": 0, "lineHeight": 1.172 }, - "Title 1": { + "Subtitle": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 48, + "fontSize": 16, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Overline": { + "Caption": { "fontFamily": "Inter", "fontWeight": 400, "fontSize": 10, - "textTransform": "uppercase", - "letterSpacing": 0.5, + "textTransform": "none", + "letterSpacing": 0, "lineHeight": 1.172 }, - "Title 3": { + "Body Large": { "fontFamily": "Inter", - "fontWeight": 700, - "fontSize": 24, + "fontWeight": 400, + "fontSize": 18, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "Body Small": { + "Title 2": { "fontFamily": "Inter", - "fontWeight": 400, - "fontSize": 12, + "fontWeight": 700, + "fontSize": 32, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 @@ -242,52 +242,52 @@ } }, "shadows": { - "Shadow Small": { - "boxShadow": "0px 2px 6px rgba(0, 0, 0, 0.12)", + "Shadow Large": { + "boxShadow": "0px 16px 32px rgba(0, 0, 0, 0.12)", "offset": { "x": 0, - "y": 2 + "y": 16 }, - "radius": 6, + "radius": 32, "opacity": 0.12, "color": { "hex": "#000000", "rgba": "rgba(0, 0, 0, 0.12)" } }, - "Shadow Normal": { - "boxShadow": "0px 4px 16px rgba(0, 0, 0, 0.12)", + "Shadow Medium": { + "boxShadow": "0px 8px 24px rgba(0, 0, 0, 0.12)", "offset": { "x": 0, - "y": 4 + "y": 8 }, - "radius": 16, + "radius": 24, "opacity": 0.12, "color": { "hex": "#000000", "rgba": "rgba(0, 0, 0, 0.12)" } }, - "Shadow Medium": { - "boxShadow": "0px 8px 24px rgba(0, 0, 0, 0.12)", + "Shadow Normal": { + "boxShadow": "0px 4px 16px rgba(0, 0, 0, 0.12)", "offset": { "x": 0, - "y": 8 + "y": 4 }, - "radius": 24, + "radius": 16, "opacity": 0.12, "color": { "hex": "#000000", "rgba": "rgba(0, 0, 0, 0.12)" } }, - "Shadow Large": { - "boxShadow": "0px 16px 32px rgba(0, 0, 0, 0.12)", + "Shadow Small": { + "boxShadow": "0px 2px 6px rgba(0, 0, 0, 0.12)", "offset": { "x": 0, - "y": 16 + "y": 2 }, - "radius": 32, + "radius": 6, "opacity": 0.12, "color": { "hex": "#000000", @@ -295,6 +295,34 @@ } } }, + "spacing": { + "Xxsmall": 4, + "Xsmall": 8, + "Small": 12, + "Normal": 16, + "Medium": 24, + "Large": 32, + "Xlarge": 48, + "Xxlarge": 56, + "Xxxlarge": 72 + }, + "sizing": { + "Icon Size Large": 32, + "Icon Size Normal": 24, + "Icon Size Small": 16, + "Focus Ring Size": 1, + "Focus Ring Offset": 2, + "Button Height Small": 32, + "Button Height Normal": 44, + "Button Height Large": 60 + }, + "radii": { + "Full": 24, + "Large": 999, + "Medium": 16, + "Normal": 8, + "Small": 4 + }, "icons": { "lightning-outline": "", "lightning-filled": "", @@ -351,35 +379,13 @@ "language": "", "camera": "" }, - "spacing": { - "Xxsmall": 4, - "Xsmall": 8, - "Small": 12, - "Normal": 16, - "Medium": 24, - "Large": 32, - "Xlarge": 48, - "Xxlarge": 56, - "Xxxlarge": 72 - }, - "sizing": { - "Icon Size Large": 32, - "Icon Size Normal": 24, - "Icon Size Small": 16, - "Focus Ring Size": 1, - "Focus Ring Offset": 2, - "Button Height Small": 32, - "Button Height Normal": 44, - "Button Height Large": 60, - "Button Padding Horizontal Large": 28, - "Button Padding Horizontal Normal": 24, - "Button Padding Horizontal Small ": 16 - }, - "radii": { - "Full": 24, - "Large": 999, - "Medium": 16, - "Normal": 8, - "Small": 4 + "assets": { + "splash": "https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/5f26f7e6-e85f-415c-b28a-1a7f01fbb330", + "adaptive-icon-staging": "https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/0891764d-1ad2-4764-bdd0-3f35f90a9a84", + "adaptive-icon-test": "https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/39b11424-5e08-47a6-a55d-4530e5e541cb", + "adaptive-icon": "https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/26a47853-e8e9-4e49-ab27-614449592523", + "icon-staging": "https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/4e802422-3908-4f82-884b-d94f428f8aea", + "icon-test": "https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/d27924dc-9822-40a9-b35a-c7820dcd6394", + "icon": "https://figma-alpha-api.s3.us-west-2.amazonaws.com/images/3ed7f6c5-7d49-4ac3-8e2a-ddf0a18db2b3" } } \ No newline at end of file diff --git a/example/tokens/typography.ts b/example/tokens/typography.ts index 4432d71..e70ff52 100644 --- a/example/tokens/typography.ts +++ b/example/tokens/typography.ts @@ -1,51 +1,43 @@ /* eslint-disable */ export const native = { - "body": { + "bodyLarge": { "fontFamily": "Inter", "fontWeight": 400, - "fontSize": 16, + "fontSize": 18, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "bodySmallBold": { + "bodySmall": { "fontFamily": "Inter", - "fontWeight": 700, + "fontWeight": 400, "fontSize": 12, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "bodyLargeBold": { - "fontFamily": "Inter", - "fontWeight": 700, - "fontSize": 18, - "textTransform": "none", - "letterSpacing": 0, - "lineHeight": 1.172 - }, - "bodyBold": { + "title1": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 16, + "fontSize": 48, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "subtitle": { + "title2": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 16, + "fontSize": 32, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "overline": { + "caption": { "fontFamily": "Inter", "fontWeight": 400, "fontSize": 10, - "textTransform": "uppercase", - "letterSpacing": 0.5, + "textTransform": "none", + "letterSpacing": 0, "lineHeight": 1.172 }, "title3": { @@ -56,76 +48,84 @@ export const native = { "letterSpacing": 0, "lineHeight": 1.172 }, - "caption": { + "bodyLargeBold": { "fontFamily": "Inter", - "fontWeight": 400, - "fontSize": 10, + "fontWeight": 700, + "fontSize": 18, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "title2": { + "bodySmallBold": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 32, + "fontSize": 12, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "title1": { + "body": { "fontFamily": "Inter", - "fontWeight": 700, - "fontSize": 48, + "fontWeight": 400, + "fontSize": 16, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "bodySmall": { + "bodyBold": { "fontFamily": "Inter", - "fontWeight": 400, - "fontSize": 12, + "fontWeight": 700, + "fontSize": 16, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "bodyLarge": { + "overline": { "fontFamily": "Inter", "fontWeight": 400, - "fontSize": 18, + "fontSize": 10, + "textTransform": "uppercase", + "letterSpacing": 0.5, + "lineHeight": 1.172 + }, + "subtitle": { + "fontFamily": "Inter", + "fontWeight": 700, + "fontSize": 16, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 } }; export const web = { - "title2": { + "bodySmall": { "fontFamily": "Inter", - "fontWeight": 700, - "fontSize": 32, + "fontWeight": 400, + "fontSize": 12, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "bodyLarge": { + "title3": { "fontFamily": "Inter", - "fontWeight": 400, - "fontSize": 18, + "fontWeight": 700, + "fontSize": 24, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "caption": { + "overline": { "fontFamily": "Inter", "fontWeight": 400, "fontSize": 10, - "textTransform": "none", - "letterSpacing": 0, + "textTransform": "uppercase", + "letterSpacing": 0.5, "lineHeight": 1.172 }, - "subtitle": { + "title1": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 16, + "fontSize": 48, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 @@ -138,34 +138,34 @@ export const web = { "letterSpacing": 0, "lineHeight": 1.172 }, - "title1": { + "subtitle": { "fontFamily": "Inter", "fontWeight": 700, - "fontSize": 48, + "fontSize": 16, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "overline": { + "caption": { "fontFamily": "Inter", "fontWeight": 400, "fontSize": 10, - "textTransform": "uppercase", - "letterSpacing": 0.5, + "textTransform": "none", + "letterSpacing": 0, "lineHeight": 1.172 }, - "title3": { + "bodyLarge": { "fontFamily": "Inter", - "fontWeight": 700, - "fontSize": 24, + "fontWeight": 400, + "fontSize": 18, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 }, - "bodySmall": { + "title2": { "fontFamily": "Inter", - "fontWeight": 400, - "fontSize": 12, + "fontWeight": 700, + "fontSize": 32, "textTransform": "none", "letterSpacing": 0, "lineHeight": 1.172 diff --git a/src/api.js b/src/api.js index 4db2fbf..deda0e2 100644 --- a/src/api.js +++ b/src/api.js @@ -64,10 +64,11 @@ export default class FigmaAPI { /** * @param {string[]} ids + * @param {string} format */ - async fetchImages(ids) { + async fetchImages(ids, format = "svg") { const res = await this.api.get(`/images/${this.fileId}`, { - params: { ids: ids.join(","), format: "svg" }, + params: { ids: ids.join(","), format }, }); return res.data.images; diff --git a/src/codegen.js b/src/codegen.js index bac8e06..2516bf8 100644 --- a/src/codegen.js +++ b/src/codegen.js @@ -5,6 +5,7 @@ import camelCase from "lodash.camelcase"; import kebabCase from "lodash.kebabcase"; import snakeCase from "lodash.snakecase"; import log from "./log"; +import { downloadFile } from "./download"; export default class Codegen { constructor({ config }) { @@ -47,10 +48,10 @@ export default class Codegen { return camelCase(name); } - write() { + async write() { const outDir = this.config.outDir || "tokens"; - Object.entries(this.tokens).map(([name, values]) => { + for (const [name, values] of Object.entries(this.tokens)) { const config = { ...DEFAULT_CONFIG, ...this.config.codegen.defaults, @@ -155,7 +156,22 @@ export default class Codegen { }); } } - }); + + if (config.filetype === "png") { + const dirname = `${outDir}/${config.dirname || name}`; + + if (!fs.existsSync(dirname)) { + fs.mkdirSync(dirname); + } + + const promises = tokens.map((token) => { + const [name, url] = token; + return downloadFile(url, `${dirname}/${name}.png`); + }); + + await Promise.all(promises); + } + } } } diff --git a/src/download.js b/src/download.js new file mode 100644 index 0000000..d555df3 --- /dev/null +++ b/src/download.js @@ -0,0 +1,21 @@ +// @ts-check +import axios from "axios"; +import { promisify } from "util"; +import { createWriteStream } from "fs"; +import * as stream from "stream"; + +const finished = promisify(stream.finished); + +/** + * @param {string} url + * @param {string} outputLocationPath + */ +export async function downloadFile(url, outputLocationPath) { + const writer = createWriteStream(outputLocationPath); + return axios({ method: "get", url, responseType: "stream" }).then( + (response) => { + response.data.pipe(writer); + return finished(writer); + } + ); +} diff --git a/src/main.js b/src/main.js index 261306b..29931ce 100644 --- a/src/main.js +++ b/src/main.js @@ -38,7 +38,7 @@ export async function main({ options, config, env }) { try { spinner.text = "Generating code from design tokens..."; const codegen = new Codegen({ config }); - codegen.write(); + await codegen.write(); await sleep(2000); spinner.succeed("Codegen complete!"); } catch (error) { diff --git a/src/tokenizer.js b/src/tokenizer.js index 99cece8..aa65d6d 100644 --- a/src/tokenizer.js +++ b/src/tokenizer.js @@ -25,6 +25,7 @@ export default class Tokenizer { this.handleHeight(), this.handleDimensions(), this.handleSvg(), + this.handlePng(), ]); } @@ -283,6 +284,33 @@ export default class Tokenizer { } } + async handlePng() { + if (this.hasTokenType("png")) { + const nodeIds = this.getAllTokenNodeIds("png"); + + for (const nodeId of nodeIds) { + const tokenName = this.getTokenNameByNodeId(nodeId); + const current = this.tokens[tokenName]; + const _nodes = await this.figmaAPI.fetchNodeChildren(nodeId); + const nodes = _nodes.filter((n) => !current[n.name]); + + if (nodes.length === 0) continue; + + const images = await this.figmaAPI.fetchImages( + nodes.map((n) => n.id), + "png" + ); + + const pngs = Object.values(images).reduce((acc, url, index) => { + acc[nodes[index].name] = url; + return acc; + }, {}); + + this.tokens[tokenName] = pngs; + } + } + } + // Helpers ------------------------------------------------------------------ hasTokenType(type) {