From d1eabfb69069cb610487df8841ce8d62b07f588b Mon Sep 17 00:00:00 2001 From: Felipe Canin Novaes Date: Sat, 14 Mar 2026 15:07:55 -0300 Subject: [PATCH] Add CatIcon component and update app icon - Introduced a new CatIcon component in TypeScript using React Native and SVG. - The CatIcon supports customizable size, color, and optional background. - Updated the app's icon image located at mobile/assets/icon.png. --- mobile/agent.md | 37 ++++++ mobile/app/(auth)/login.tsx | 18 +-- mobile/assets/adaptive-icon.png | Bin 5336 -> 13287 bytes mobile/assets/cat.svg | 17 +++ mobile/assets/favicon.png | Bin 178 -> 5336 bytes mobile/assets/icon-template.svg | 99 ++++++++++++++++ mobile/assets/icon.png | Bin 5337 -> 13287 bytes .../presentation/components/icons/CatIcon.tsx | 107 ++++++++++++++++++ 8 files changed, 264 insertions(+), 14 deletions(-) create mode 100644 mobile/assets/cat.svg create mode 100644 mobile/assets/icon-template.svg create mode 100644 mobile/src/presentation/components/icons/CatIcon.tsx diff --git a/mobile/agent.md b/mobile/agent.md index 9ac03b4..ec4419e 100644 --- a/mobile/agent.md +++ b/mobile/agent.md @@ -392,6 +392,7 @@ Base: `EXPO_PUBLIC_API_URL` (padrão: `http://localhost:3000/api/v1`) - **Arquivo**: `app/(app)/inventory/[id]/edit.tsx` - **Mudança**: `onSubmit()` agora chama `updateFilamentUseCase.execute()` em vez de apenas atualizar o store local - **Código**: + ```typescript const onSubmit = async () => { try { @@ -415,6 +416,7 @@ Base: `EXPO_PUBLIC_API_URL` (padrão: `http://localhost:3000/api/v1`) } }; ``` + - **Impacto**: Edições de filamento agora persistem no servidor #### 4. **Custom Color Picker — Hex Input com Validação** @@ -473,6 +475,41 @@ Base: `EXPO_PUBLIC_API_URL` (padrão: `http://localhost:3000/api/v1`) - Refresh: `listFilamentsUseCase` → `setFilaments(result)` - Create: `createFilamentUseCase` → `addFilament(result)` +#### 6. **CatIcon com Fundo Turquesa — Design Integration** + +- **Arquivos**: `src/presentation/components/icons/CatIcon.tsx`, `app/(auth)/login.tsx` +- **Mudança**: Implementação de suporte a fundo turquesa no ícone CatIcon conforme design Paper +- **Novas Props**: + ```typescript + interface CatIconProps { + size?: number; // tamanho do SVG (padrão: 48px) + color?: string; // cor do ícone (padrão: #14120F) + withBackground?: boolean; // ativar fundo (padrão: false) + backgroundColor?: string; // cor do fundo (padrão: #38BCC2 — accent turquesa) + } + ``` +- **Implementação**: Quando `withBackground={true}`, o componente envolve o SVG em um `View` com: + - Tamanho: 80×80px + - Background color: `#38BCC2` (accent turquesa) + - Border radius: 24px + - Flexbox centered + +- **Uso na tela de Login** (G3-0): + + ```typescript + // Antes: + + + + + // Depois: + + ``` + +- **Remoção**: Deletado `logoContainer` style antigo do `StyleSheet` +- **Resultado**: Ícone agora exibe com fundo turquesa arredondado, alinhado com design do Paper +- **Impacto**: Visual correto da tela de login (G3-0) sincronizado com mockups + ### Arquitetura Mantida - Todos use cases injetados via `container.ts` (Dependency Injection) diff --git a/mobile/app/(auth)/login.tsx b/mobile/app/(auth)/login.tsx index 3f4ced2..cdc43d3 100644 --- a/mobile/app/(auth)/login.tsx +++ b/mobile/app/(auth)/login.tsx @@ -11,6 +11,7 @@ import { Button } from '@presentation/components/ui/Button'; import { colors, typography, spacing } from '@shared/theme'; import { loginUseCase } from '@infrastructure/container'; import { useAuthStore } from '@store/authStore'; +import { CatIcon } from '@presentation/components/icons/CatIcon'; const schema = z.object({ email: z.string().email('E-mail inválido'), @@ -64,9 +65,7 @@ export default function LoginScreen(): React.ReactElement { {/* Logo */} - - - + MeowSpool Gerencie seus filamentos com precisão. @@ -78,7 +77,7 @@ export default function LoginScreen(): React.ReactElement { name="email" render={({ field }) => ( ( } @@ -149,15 +148,6 @@ const styles = StyleSheet.create({ paddingBottom: spacing[10], gap: spacing[2], }, - logoContainer: { - width: 80, - height: 80, - borderRadius: 20, - backgroundColor: colors.bgSurface, - alignItems: 'center', - justifyContent: 'center', - marginBottom: spacing[2], - }, appName: { fontFamily: typography.fontFamily.ui, fontSize: typography.fontSize['2xl'], diff --git a/mobile/assets/adaptive-icon.png b/mobile/assets/adaptive-icon.png index f7d0f266545de252f3f659c31298f1183ff10e80..109969b07eaa8e2751239ccc8cf756342ee7efee 100644 GIT binary patch literal 13287 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 + + + + + + + + + + + + + + + + diff --git a/mobile/assets/favicon.png b/mobile/assets/favicon.png index b4e51436dee2c5bed6dc8ca285103c7a8d6080eb..f7d0f266545de252f3f659c31298f1183ff10e80 100644 GIT binary patch literal 5336 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7&w@K)Q9>#R~Q&X=6kw0hE&XXd)-iwK|$ca zhUu*pYEvFEwLQ~g+EsSVj)B49NR2*F`8-1)A&>+l6pjE1hYm&th6Vv)3b!e|d^v;#TXZ5|yg p7#$)3juVYG3rCxUgqwwW9Z|D3oZUU^HZa97c)I$ztaD0e0stZQ83NZkcv5P&j)fcD2N<5Anq*i zM*gxuoy?&G#=PQhzji%rV%xHSQ8&YZTj~N8nR2^#EEn(*c00!jbOeK^tDnm{r-UW| D2$(ko diff --git a/mobile/assets/icon-template.svg b/mobile/assets/icon-template.svg new file mode 100644 index 0000000..2f8e210 --- /dev/null +++ b/mobile/assets/icon-template.svg @@ -0,0 +1,99 @@ + + diff --git a/mobile/assets/icon.png b/mobile/assets/icon.png index b2b798906a0268650254c11020411645b1b62c99..109969b07eaa8e2751239ccc8cf756342ee7efee 100644 GIT binary patch literal 13287 zcmY*gbyOU^*WSgQ#ogWAZE<&s`-{6fEN;c!okH;<#oZ}dytuTuyMO%t{LY+APBN02 zo12^G-aLs>Q;|hQB18fJ0I2eEQW~Fm-~SQ<+~-+i-2whH1G;O-N&r{KnIWGA7;AB5 zaRA^)BJ!&l>}Q$$KRFF$0KktH00<5T0G>aqf)4=zPj&#{*c1Q|%mM)LT=F{9g+DLA znJdal0Y3hB6m?gme%2tm$mzKQ0IXF1OF*A;F|W@`cn^7HY4~GkG)x$tE5xIM&qe_9 zQsP=Zf6k1oO|ic$2c0{x9p%qLNyWlyfwa<$rNE-F80FDO2**sZ!A8vFQ05i74PC)! zuo$qmzwKdQq{<_~elr;kTkTtktCOcGsH+>);FOowaVsw`uls4=X_13<_Zf;dg*n@) z9E29ZQ$ohn7FcN^kQ*w6jf}WQxCRMq2|@@OxdOYPxEg#pJsp^VrYtWwLo-%M%?}BN zE_yBSw-r~uAg4ptj$N0(Tg&>`nb=2-_jjrejL;tPGByM!7=%%nn&QjwZ_pmd;Gcbt z8;y|dzTYyc!RNj2ghy(T8#5T3IhgA*0D{ysnLgM)RE3A&QMZWs+r9JtuwR7eK$+J* zPhaMDR+W)>*kLt^A}h+dEIPOqa6^X1!?JB5u2Wy)!wqUGfGTLaLq(~LsE=7(Oj*YkOSSdZd>LT{&mp4g}NYd!*6c^<^yzcr8p(#^XPM0-Qv$M)-RmIFtX{Q5U0D z0dsi0mN3l;iwj-Gs zyX+1hdC$;xj5zB!e{YsXWdcgFxxdA?OGKdm=led_3>1O%Fe19#{4RHsR#gv5I~< z3kkX-)zFc^euP-J#R~sNx9&0a9wNfGMDTg-u^Ty^;U^}P2$5@KbrLM@ zuGbyv2nSjgARn@kLaDjJ!^#_q(mKyyto`hN6J=c4@DFkTttJy zl#PCl;w7uoSt0}ulwuxWg&M40axNfaf;?hu>jOKrm5Q8lf1<-t*z5U0ONzM1GSGK> zLp}=ZC20E`tNDi82fxtiniENicp}6)sJBDtQ&Fch)2mbvnWuBexS0xw*6!8(Zq`)=uf{zKc?ni&HIE8xwAAwra8(?=tY z<^#e__?6V#%xO5SMd6P<8eKaCC&>lyirXYPL+F>kqAE_QJuY&##r(C&`WGK{^YqYD!}b(pQY4M!FKCtty1Pr1-h zsgdzSAn1lS8Rok69z3HnG)nn*Zg2VbU>WCR*M)I9?^ zHtFr&z~Qp4hOSS%xI3~`YAFL%=8*o`3AS&(NKEJbKt1j4o{6ZB2_d1vQ9y!$3XH1u z(^qk)OD)Ppxu=I}d>&JgCxs!mIu=&cQ$4Tx(XD8vabp$zsgivZOb+oxx zy`J?8SEI~no9798H6CZ}GoE!^p=;5nhUts+R$aB`U8cMs8*I*RV(@!)8!iNKMZ)Mv zeU2?uFJ}TS|E%~52mm${7_%<46UD`^SrAmR)e3Y#(Qp?mx#3;Qs8Z+sLN>!bZ*CIb zg<~E8AKY;Da%k(Sx+Mz?(mtEsdbAZF+!ecK)=@6hlC%G8^c4u?Ufv+@(xL}(y>5cJ zF&Z}mn!H+a2NOb7MfiY~2crv%r^7;G!FS6T>geQ%7EYF9{OLE&xtb%98}8tOtBJKmK_7kCZrU zm&YEcP>o@VJgr&?_r)A)KL$~)yg9N;&z(Lc1-zeGAk8fMA+?kzke+fSL8)QOfE^ZRcuRr6XF2HW2L|JEVas0z`mf(ih6V)0>!om zAw5=Vk&1Ezr6};aQqF~t#HSNyItBBRhNi)!4dCyEW>`*>;yb9x|MjccN;?xZYW>AJ zfpS4^LZ0u%XG<=YOe&?8Fs5zI_jII|dQZw9LrD>`;M5$bY*FH5$%~Nl=LB$)Ky<>o zA$H&m&tw#OgvAL~JF&7!F05k|8USD&0uhTuMz{Wa1xy~RmL;{C_hRU3zpGIcA)M;30m64-%t4+dEVcYTU^djUl(K2b6pG(~0Y#Om{P@gpudWdNa1O$10k z`emYtBE0DDYebTCq?M$QTVvA4j>O8m>I*U7#aetDq9$mw+N5O};lzt5jqE4DL<1#T z<=`Q2{Q*z=$v5yp2p@HMwf|CE1nE!%?|Z;Q?KWb;Jm$AuWZehO0E~_B1V&(j>#YCtT(;O}-Obt~QgdI(O-oUqVZ;sPA3m zLSeom;qy5o90xcX`rQ3h{P#43MmGIFq1Jp5<7r}~jmxW5JTKwUi}?T|Oqdb%)T(n~ zYd&6aZV!|?y$1?hi|sVYDN(K;!(|?rvk|eOka`{^0yZrEpqK!8a+5x;B*>H%u@#0A z0%6R&@8Nd%@qaqXT=D$^8x`aHVo_Z~w{+tg8yKwKpd(*TB@iGBa2a7jTPu(NSjcYIt+?o6Z>)b-=wr%QyM1zzOg#B9t zpSLc|Y)=rB5GE`N{6i#2(RBf?)c<)cHf7J9$sHJN7cjx@idj3gu z2qcVIsL|4D`{rjAOA`zzk_cp=i={uIiX+>*Ys>VOTHPw7d{w9JO#ndHz?B= zX1$IG$pyUgBx-h)%IK9gUdq|jbpkZp3UMC>4SU-#}FfAroX#j8YRgi0@r8z4Rm z1sfBNaxR#!85{B@P&pNON!kr)#fqFFQoEfxpxBZe>Z6Dz;WDPLkYhk03KHMZDg4S6 zYkR;eb=!%2{PT=v;P5V30*$|1%gHi;nDY77abYGEgM5WSb0H&r3eU3fLnC_Ouf$bs zy;|39H6f(8%93d)z7U|mpr8XuY*_Or->oZds3?qZjnb+rcNnafyQK^^J*VHPBL`5} zh&qe<7bum5E#Px-l)Rb{pCymdh36sQ(JwfzL5KIH{6rt#Vu^BH=H2m$ItfrNrizl< zl8n8l@0x7APm1_al@$l*x7*gP9bS$+%Vm-d7;vgzb5O8rinY+BrjcB`q6GxMP#&xq z85=YFNT}4>wLfb)TN(VE8c09&A*Mcljmeo2@j`_BkmSps1U`xRo#)_bo{Fi6eYp=n8GsPky^bkwPT``f6b2 zt?IEmyyDdD?kX&290gPxW3r{n;Z7?IG!l?YNugqED>JCRo!7<(x)57nBrh7%ISpV% zJ7N7Hy`S`P^CHl?8ea1ER}vqDH&!R;Oy@C10?{|m*%N+~ z;V&)6OCbiig%mmjyzopTR$q%flPN7jv2%1#6<<%pTN}3iU+g6=a%|5t@dPfztY;^Q zRB;Vw3q?bAxh9R~WM@u3GiQp3oJ=qXUbz-mNBjG)_|s*RTIS$oPpQ|m@0qvo#0OkS zPp?{eh1Uqv%J|TqKmFPBA!l)Fr6%r!@v~lC9A*9}Cwc-ss%HhAMxdOd&~K8NkFzfjv6jQE)c&8ZU-dv8g#XF3VX9N_I=%ism33jx|ahl zw(T*PP1#5#%gae}mCZi%e0A8CJ39B;gXZR!*FDNMF75^QnNY*QC<2JTavssz44CID zfcFG7NP`tsG3Ikm(90sbSgSdAx}gfly)-XL#Q9Mqv zI=%YcQmy`Y_E0pvt&f5cfg<%C%ET#zwgo3=#>i#-#t8O_-RXnm+nGT?K(J}CisRSH z;s=T4JKo-l8*QfPI1(zEDveD81WR`r057y5GrbHIYZp7oy)c^@HK0O690QBWO0#2% zwoUQZHfQ!wJV)rgcj+(@+u)g7|NX_*B6>goRLKPdG)F}m{I;&An?M}-_mP92bGqM= z_lq)jJ8@MS@9g?4;MY}jiHd)Nh`vc00{NN&xiDYRs_ykK6_j4xY_1v z(_d`}Mw@EO$T-10m3H84HG(D)LH2~L2c_dl+HoMjl+A6^2;mr)yO&uhaY<3^Mn3XC zQ+09x_$tlqLXW4L?#w3nSG>;w<3co5oR-lnjyZYgRjs2+~5!!_c>06BlT|l+i{Y>K<0Wtr3qHPN|YLSl;pVRd;dC~X- zt*IOer*-^8!3{$?6^_5Y!QNkeMGk01;bea_Akw;C??oT370Ubk#~U(f`=Wk1Z0&-Z z3AH%8zH_vD&UmvSqZ@SEX0pTbal#Mg_o?p`R8$C@{$XuJc~UDtjzmD|{~*5pC>x=G z)>7WhKP`L1=X+&oq2#Z9DXCp&3S(14o76;3c9f_Jz8AXLX1>M=QmKs;Rzhz#My5>t zQk5>bAv_VJ$MkmL7ABZiWQ?<%H#|I`@IxokdV1jLOC70Z1yMN>-_GqJyxDD&=Z~L7 zcB_~Z)D%;zmhAn>se{yAKeEB)_S(fR!wQ8e=MzIPL-Azrfd>sU5MhKiaqo}3OjWr2N_~E8f!(XM9!h~ z_FM8^76qg2-)9iE=6P|Z4!Q=*x_*GjFG?RwFaK25Ic;Jqn?R5o0fL2^1*1<#Gkpcg zdR)1jj8Jof@93~5foFTxHua9^zqUSNKbQsvXRpH&kIR@|vZF=^967^4p$q9u_EOx( z9wo1)gv_$&Ve^MYy>DohYh}FnP-8g>Bx2Q@A4m$xLJ!LL4@jOuh!mgTQ)@^yfY>m& zSWW_g@);Gt!q=A(#Jb;+-!+vGezk`&*NKPH`@w1))v7<|@lPqs3lZk;85(}8gOpV7 z`?j4gZPHN-I~g|bGL``RS<7;iNB*@K`rd1^wdr~{{LfnyUDbk6vtPLQkgf2`b8mz% z71`)6f0IQ%9P!afF@lmLLehp6K}&Db$6BJSO8Id&AKBq0^b{c;LRLtFcZMn-vH^p&@-4=H4vpLE%QBUaN9Q2g8Y9?4dG;IT_c>Tv;U^^MxVv#Vo0v>Uc zU+tT@0G^%6cN4!#GVHEzA$D3v;I%6m?%WsA{TTT%zcXomw?+U!p368`m~jA$!;Ru$ z@BxOaRMlkYb&Gvw3UE-N3a$Qq*4!zAmyTZd2h@3^h7>9(lIPcdq!qs-x*oP7N^H5P zh3}&u-<}k4!~UGL@QRv=yu`ZMt~Byg&JcQCAf6Jm`CNLzbA{BwAc=lxp%@(3^^%%- z-&Q`E+O){!TycIv0dnhUdvnLBj2paI{pn`sUfpO$uUp;996Em`0;<@aC&Evd2wJUZ z9i1u~^E*KWfN$DwhNPMHLb%(0DPZ_6Z>aG)Qf85`l0GToEgJhI?hR4%%LWB)|4UqC ztVx5H0FdvCTE_u+f;(%lBc}|cI>ny8FevvYdjbPoRJECEgyD9$og^`HBD_8u#n?9uTB zC~!;e^J)86lB$ea(B=m#Hsk^I6B@rcdI!4@PoN`ne0*b5jBrt8#ncMa8Sff5q4cm@ z*rdm4WqG~T1c00HXl}l{3?n6O8&S#RRQ@8l-Tl%sLDjctb;siv)=}5gkc6@AR_wFL zm}mvPOX{mM`<}ZDjUCKLroU3f0*SyV z>InJg>nfcwZ$plpcUH3zT)yqt$yg6+$ zy-?>Vi`YCAUv+14<`Z=et&_DGx#UifQt~8EMq_;d04W8ztjT{LYFoIRjD<+of&b3w zQ^O3@n2oz*F^cNU1pK5H%sW&_VEdmA`1788qYs4|mU`Ka3tqM-aS$pT{t#cU@UOf- zDT1_Adqe=R<8X-XUytbBf0aEZrcR)1wA(x%_4+Q zijR3TzXuZkQQ=$M*!FSMjv@9VyKVK#+^k+%Q)KuY(b=LXpIRMpJXfHkdh7v6d%i`h zV-Eqy@kHmbs?+lr53xI>{AtLjc?L!rb%NWsk8!0@i4tgMRB+DxHthzp5fil(LmSRp z;qOFX3z^MfD!E>^{)YZyUf4MBkeJ}`>@*YehWl(D-UD^*D0R$$9iBi{G!l8fP~yt_ zSJ;GgrmXbKB=^KO4b-5M?^sErBZF?Isypla3{;Ehg>(p=d}hRGiGxQ^EJfxQAuBJk zatXJr6jH~$X(cY@Y7R_KM-^eDy$x&UQkwMYm z|Nchn6;^!<1zpoZ^T*Q`o%#Na`knN4tduo>-~S~Eee?+>t?r#vuU-jV;DNSAR+a7M zly59G#dKyYc+Ej3Ygx%`g>j#mVRx@fiIl>t&f(~y@^oa~v<|Wga37P5j)+#TOw5o0W?;RU1nd$6M3y46s^7R5FtdPoToip_f6 z+BI~mTv`t}oiiuj*7pv}rSRVf7&VZJAnAMu|6cLGsGj3LcIqKe{-%QS!T08hKjLUm zB`o%|YAbFec2SB>06ZRgpP9fkIT4W<{Jt1X%2D- zu+#_3-Ur*s*s3@+wcOuO#cL7MK0NaGe>?4(9c{>8X&QuFfNCPmA>u#6(Lf1=~zMaT{1KTFh$*}R-LqlZ+FlW47%*>4c zq(w`(a`-@mda)$vKiLFWWdGv=bZKk7MUdzEYg9pVj>f~S%;b0P3v3eI=S$Nxyr1<} zE6?K@BiYHJ5G`>*E$~W(P$1YT{3I5`HBB2wl$G&21daDT12{RwB4|4IgMng!4oT)9={h z_0Iyfj;DL~2B-?SEqS5ftf%JHXlZ!KPw!Ic8e51V^zc@Duv8X9zg(ON=t#&XN1sPl z7}*KF3;$TK`r@{Y9AB4$DHHq$?kWp|d+ZpxO9Y{bHhci?R%0Gm`~?#AVDKJxnbPCx0h~PP^2&X_UUlutw7p!#Jtwu|Sz&R27Dy^- zF262Kt-~MTZFig>h!k={cNlJ)=D7BE^GF+NRzN4LG1mspWF8>nEZe-Z5VYJ;i z%!A8z6od5tE~DF2R+7;sRrFXlEDC=4z6`^wDJ2!DTbA*NQu-MUWTqU@x$JJ?>kePt zQ+BQw&OdySg_R8^5h|;O#pkVE(MJMU=JI~|XT$!EVF^>|IaXRa)Q@Uak#_#g0P45# zPVqNQf0%R^VzBR}HjxF#54@-0pzsZoZ{@{ddV zhvNl}NBPUUQdBjQjr5yedv`gMPqr0lVllXUU96DlHt87u$`bH8pu7sY$pq_1bp*n* zK@lS#H*rwOO0JezE?$T|vRh#E3-u*X+Oj!Fa~S)2plGoe^tZWJNNqlbE94lRbEG=Z zsrm`*gd+YkvZ8hx7}^fsGRJTPNgFDu72cuY`&1MFf~ledd#_jUKh-1hyyIjD-d>1k zJrt*6j`FE|x!7rKrzAT^@-`YCV~&mcX0*X79-HQ936(P+jRg;aNSRsckgAnpxU77r z@Zb7r|#oF&er(&xwt020*p_9u!@;5mdmpD zN1F8rYHT_CnC*A$G$DcWh$?d0iJaktc6*=Py}vbT7g@+=U=rtBUaRSFor9i8ymhP7r$ z?_o^j)+(1Amx=<%59>U?xGzDgKWJiz*a6*xT24uaCt#g8*6tI;y5*p9aQ)2;Ywe6ec; zOsz1~U}g=&sE`o>Y~mUo-DIhw7xffxg2?SIL06u|6_mL@HLX7ben>2-Typ!}4+;1! z9KPkc)f)Q2g82>kxWs?fz02coF+{?7m4DtGNGmfYVsmrdP4s8l!rqj=l8xUdbR86I zpMJ1Wzlgoh$%eiM;^e*n`!cc#Jl1FjFr-j>qA-f4DaC8of_)?$v=fVLgfM7btA+n zi9-7irqX`M?-&>Y_4GCTts*%rvM<{gh^u-wO(^j5$(R25-v037l!nwjZzlL}eQER| zih5kW!EjxAzbA6V-xZS9JNW zk)>-%MIML$pPoY|u3Zx`HF>WVfqr=!1B}tO2HPW-a z-3}WaNuw-g*LxBo>YwfqH?lDO%HqOQ>EkGw@LUv!OL}_I>A^=tz{Y^3;?CrR)b0X- zIm)KjJ@@3x1Nkwjc&^a3oAi|OzFV+&Smi=ADG%;}iI4HZc8+~LECT$oOP^zn3oBv? z90G^ip2~QPO2DyL1L+&qlDme^$XL)DRL{k!cbS*+6~&*Oh^;`p-v=cZ1fgR+Z|a5W z7YLv^=c24$<1T%W&!?NPOD7Vsd!aMnc004p-8&faDt$57WlfjztrtbwJSEE12|KU{ z|Cx28s9U{K%GK9Tz_cnvg>smu7ARpVa9vUM zBV8dlb#EY7Bal?30+BywfCxq7U6kU}8Ye$NEI5ba z2xA7EwSxsW#!T)BFiEokZ?zj3R}Us*ANwNQCT*2}Y_kPV*&WtG8%=_sc6_;g?^rmb zfdB=_Gce&)iCUBnq3Lc5(iI*rxsc>9%oPGb1aJzK1SEEkk-YHk66BX8 z3Jt`h6G?~;dYc20*C+Ckh}?dtb=mPex-p@gKqS}4)VDqShC~Dr^R$tzop>$2XFA<} zF4uRuSXfeaT>zv|36VPKEOvGJ(BBb6%-F;eAYd@iof4W&+({Oq_-f*Jtf#k zqZGEsO@QDyy0YJ)ISX229)kD}=QzI#K?Lxhla`@$`K~X+S3LOi;Ujv+j_5@#`tGqC zmrg@=GJcqw5Xq#7qdD_)q4a3enaRj%=F15mDOTBEu*gLYOT?(KcTKA7J4v?-n!8*x zSsX^fq&M6Am73KTZYhuJUv1vs&85(ZcBo!|LO#Sd;cqZJx8%aN7{ZyGHhrKMSjq_8 zkp#@oNp>*$ps+vapGd}MM36yfmIjchUly1=R!w{`viuh!3|)jbeRBKEy5z~n?-*)u zdiU%#H!Q&X1K#XUju)L;ms@-NeIYN8X>EP)lT}&Ji%}Tn`?KOFPxVvFY&S3g+mpX! z`!h`z9&<+W4U$D(aKblMiRK0)@^$}(L5f~0o8c**?v{ZPU=pu9|A5AYjdE$^!_G}O zyH+a59Nq4dy7v}ri57+Xl6_IZ)VUOE)aOd_C5{MyAMFzjzy|hS?Tx^mp8)9fTL|^) zk;>H?jROUWDzg~{5FIlDWA^b(s?dO_s$sev%A0cZwXI z@ZY$pcfBg6k%>mHTwx7k+gclwHf{y2FR*RV0-@1&HSs`ugOx zsgTdxVu%GnO$vDrUN4*MdggRr(KcEsY?w-nZvX)$i?DCm*S#P8pAqfnGEuD__K^EO zXf~XVgcdu=He;2`Fx%XO+=2GIoYs>7*rbQ^PJk?E^XzA^sPo$kTiSagVTKsGuiS#s>y>DCF*NnxL(KkGS*J1{7ZFA^~XBmu2*^QVKJg<~D)GL8)Ul7GA7AcQn z7$k5IBxdpZfD7t{kl=5gMAV`jdTC+nu*hnJ;9sN@H}nRra1&*;azT!~In&1ENWD+n z;$^Bq>(*HQ)iXW8cU!6aJkR1}^Ax^I)k)H$+owaL+syQsGtSS)OxqU3zv)y`_EP~; zr4p<6`8`lai-;p`w+Iuw4v|kKBTFM&e0!5+qi<`xEtp1oNzYqu1 z?Pf2Q0eA(b-=9Mlz0I&lrJ`-F*I}c+g*Os!Mj{>KVRJ_0`@8^OqIy=wB0xxzv?H1^s%r{SXkb!2m;@D3F- z+v{oLK%TPdtoUg$I_}LT>w-xl1WaD7r8 zj+?H;;f8B!L8(k^cm!P5eP=E1aUk$wBkZkFr}$zGL9{lqw=2gaq^v)q0BEhQ-Z#K# zoU{}OBregWa(aBDH-6w+FNbrL2{kmXe)Gk-`eD=ZI6oo_P)JO!%k@5|fobKfAsZ>R z8FovnF*3NY`(k`gFQ>$$9cRh0 z4z7-VHd2_`Xx)pI_kQJo1_cojVMfYWe)wAyKm+{S&ER3z9dz*tqn@BMI~Q6EsQZ%5 z22qMU(1{2mWz60Iox(l!%~Ww3HKvk-vvS`6uFjQmfT;3Ye}(Vq@o19Jd=Lk>C|ge& zC}INMNq|Itb#Z?I$g>(8p6ydA}e#ko(FGC}`C@6QDufCsr<}JRW8BxfEHp4pn^MguhTF@|DQgOlF*Q)T36c_-Y zbDk3md)NVm;JD&iHhJDIU`M0EFa;nBhsx-7^UDA8zqn#i!gt{rF)y33q}?P$004q= z*q#7&(S%`HY5nJ8<9{Ufy7T5>Vna>acO``%iSdk*BI@t9(sUChNc-!-OeO1$wwj6q z-+v>>5fhn5R_k2NLrtF_H(s2J;z0?BZG)`!Ki&ztu)^reX?Z76biV)N>p$yZQrkg~ z1pqEbjYQC{x1-eirXzEA7_lJmuwt)$!JAQGPg=8I4I#HDE$P>i{9_(FL%fHKsWoTX@K0j>)oC)jq0G_Df%t{W$?}bwGOOmE zRBLmP2zq->!gSj2?$ht=hO|>3QNPZ+TD}dKFu?$VB_*FNJASL)772d{x+f4Et6ekD zf0$kM{yT?OXKB`NJlL^e$%hqbMe!nyPfPV9< zjaW-Tnt+U1K}YJ(Jqy3FSvPuCI_}h`5)`F`p*V3+91avvOI|7zl2UZN#Js)vFK0va zDmuG=Ki>(Ltv20hU*4)W#NVTY*uQC}UGMR9wtChn?$qB9^uhoCT@egiT1$`oD(hJn zlaJnii{(=dGxvnpAdoJ-Cb{J`KU8X%J$m*uP>ES$k9zK-Hq@&ULytg%_Zr+}j;9`< ziP0Qfa{f|HjG8@FR2Wq$1I-3vNM4N8e;~g$gyPQry9CY%k6O{t@<(n5&dlos0(Fp15MMUK_SaQTW@Kt;FHoTos#R~Q&X7I?ZihE&XXd;K6MgMz?; z4bsj6cj|q%UvOuZTyX!~O>PE;jv4P+85j;2vjH_Z@c@Yy2_V5?2qXlOfP}&kAmPx# z$iUDbzzk$6jw&1tp3y`xniWP%iqZ0Mv{o3cG)J2XqYb3dX5nb7d9<%E+Cv)cKmv2Y sXtQv%SvcA(9BmekHVX+h3s0~f<@5gdXs^>HU|=zLy85}Sb4q9e0HTo`pa1{> diff --git a/mobile/src/presentation/components/icons/CatIcon.tsx b/mobile/src/presentation/components/icons/CatIcon.tsx new file mode 100644 index 0000000..251c798 --- /dev/null +++ b/mobile/src/presentation/components/icons/CatIcon.tsx @@ -0,0 +1,107 @@ +import React from 'react'; +import { View } from 'react-native'; +import Svg, { G, Path } from 'react-native-svg'; + +interface CatIconProps { + size?: number; + color?: string; + withBackground?: boolean; + backgroundColor?: string; +} + +export function CatIcon({ + size = 48, + color = '#14120F', + withBackground = false, + backgroundColor = '#38BCC2', +}: CatIconProps): React.ReactElement { + const containerSize = 80; + const borderRadius = 24; + + const svgElement = ( + + + + + + + + + + + + + + + + + + ); + + if (withBackground) { + return ( + + {svgElement} + + ); + } + + return svgElement; +}