From f8a26a7214f5493f5082f118c747e4dde0a9fa21 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Thu, 9 Nov 2023 17:33:54 -0500 Subject: [PATCH 1/8] Added status badged to readme. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5766a2d..9cbee9b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@
# [Lucid Creations Media Website](https://lucidcreations.media/) From 56b16608219769c0edc8c8d3a94bb89962fa3ef1 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Thu, 9 Nov 2023 17:35:06 -0500 Subject: [PATCH 2/8] Update website link in readme. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9cbee9b..43a4f72 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@D&BMn2(~N|Gyokf67&FqY8-;OK+v5-kQdiFhhPj4>^g(0%W+1_ zV3Z!d*XE4;`o)PDP)zz6-3t%vqS}c#3j(lkp1|`&sG(!THFfL}Ke=&35guOYl1)W) z>apzvzRZyQ;DS@9@@I4%kwn<}eJwm!xZ6wRKq!Fu{O|Al52O1kQNUpQ8aNL7gXPrm zeDpMgg~@(N@X^{#brU-&rakZ|>ck^$kpx9B2JLt7#vK~M1bnLkY&99j$rOuHbYCJ0 zbnE>mB?#dW#7Qt*1Q6n)PuqVyom6Sjj(7eai)}F|>iG2k0Vva=+b#bez;XcCapOOL zb;48+DRDe*7Df1rNQ)M?O!}YD12!?}@ImZ9gfalgJ`(>Qz*Yd*_vk+WZ2(X>@*f3? zk~uP6h^Hs6qE-=DW)5Nhj{*V!`OW_UOyCrz@jS@Yq!vH<(pw=s&Y#lR9hT%w0BE)P ze-s4Fk;9v)|5?u(5ZYV*L$HN$B08VKwS=s@ILmAUp3D~A;b>?K+OieTXp4GA>Qj&-Q z)ymky8ZN!R!G}d~RWI^S!H5E#s+gY|cUc3L?Wi-xTycdR2z=h+Oi=BjbjM;)=UB8p zle_!#!2AGpCX7o=@=v0`3EIH_hQPXPE!L&NrJW~4?U$p5o?U_l*4k^anx$nWSeBrM zhA(Lb>Ry@zb5^`57|$vhg`k-8XkQMOwXO;+I*{eRc?tSFQD8zD>yhL_zZIrJc{C8^ z?&CF7dwX%_6m4-It-kzZ{}eQ7Cs(Pbm1xnPR0ESGXkdMmY9O{WgjySq+V9{3>p}G< zXQp%I@YzaWcC-8=xpLfwf;lL`{7vA>u}_$arl1qaTxe*2n4v8H2Fn0>JeeMa7U+>O zHoK(#SN!CQ7D%!Mm(xE&R5TV 5cWEOtD#s))}>hVs2`V>m@UB~f|{{}tB^{>x>=-BuAIh1b0mOH$>(Z2loW$f zC771nO-`BdlUXVl-DZ&y+gylB+lEMHaXCS`Cd8qtBHTT0R--8ikZtw2j6;BNI5ne$ zEA#{~u4a*5a~bzS5*?>e!ju*@5CDx=l@d0R$R#Z=&Z;ma+m 69?8nF9p* z$)Bu|jVrjEQzTgxV&v9iTxfe+0`ohIRKQiXfrdHKBf-3A&)vm&ezK1>!c<&>29MHX zks_8hX~|D6aX^^Ix!X`vqEQY~(Fv|C0+z*~ohlebmdhHnT_H+F(z#A#Kr% XFEE$>QZj%8T9imf?aebd{#ZT_FLo8gEpoz4B(^QnYWNEJ$)LxQFSn`_9 z60Au>GD7B>r&iJ&$&p|Zu5<0NnZTM !{fhJ7R_vRqK#ZZ`<^p3uU6PW0CaSJ*~Qu(Z4O60y*l8tUp@g1no)Qpfsa z$@P`xK38+~VZqdwz-(GU-hAt9e$u$)&u){-C}N=+Ec_^HKjBJXed6X(_C|hk9f8>s zUOn(ln)PW(VVi}hVMMIvhyUQ&bd8B%hmfV+Tp+4$Cf6n_>d&jk{4XDvJV+JZAjzCH zC=p! #jI4H-$An6xx+-^PCSPHzIME(&M?QO% zzZ!sb;^KVUq-GOHEleLc>mq*?TJJGujptr7SJ(h@m^E4d-A!KGi6;EWCO}@Z=_gXR z+vh^Yde-FpcXxTcgpBQ6A}=(XVlohzuFl>Z5#R33%|uut)!a6S%2*j5Hz39_fLDw9 zDwd@x)^n`V2)WGhgPehUXM*Gv)VJu>XvG#- JP~L@)eFKd*2UzVwd}AvZ|D^L7J}1Llf$)Tf5zwZ30XVmP(0G z4-l9EmOY!-(;hFjGeMHTw~jvGoc~OI73=U~e!NGcnzv@N{MU=C?ZlmdqlcH)mBgbu zRD*0<$W2Ms^j413-ADpR1(v_DSko<;Y@?4-Ln$ZhE2XK>Aq~dY=TEI^^o+XWqEY5~(;#OrZcHuO03&-1 zW80}zeGliwbg}~%`VM`dJAXpn U(zge$dsLyLO8V@-GSY53)b5&xRH4Ja ^Iwe>wzJ0?SuK483|OjO3aH5Z@lb$^0t`@U_JX8CLDqzD8AR3t?k9^2n+eqZn9 zBmc^+truXyWq+KP6J7QShv|=WBP@aVaT(Ph=OP5!Row?IIHB5{X|fwXS%f|iajRTZ zMw3O1*QB$@gT+CV+fnFqjoDEkhcw_SnmT=tKEU23??oHPy!H0Vg!V#nAkq-{qAV%) z^w{V+EJ2z&LBzg}Qi4N|UP0$QZZeXtu)hV#0I5I`a^`+9;44g>Nx?Te7A%WT$Dq&0 zUA%IViI@W(1~XxAANh;3dWl%ztZ&%Yk;h%pecP2dW%f|n7_J8uszJ@He3@uli3D?q zvjMjs_y#1&neT4rw!M?%Cued3?<+ t-*w=)) z)ny~ayPxz#n#en688!vCYRvz;i|kfH5VJ#u^lcECVwQgzM|lgnZitMz@p@pgog6W# z3r;qSGdDhlPp^ULjt5kRvl7;18IX0kAha7q4K<(|G%$7P3-ar+r_(> xQhd{-CE Cgta$$> zr@!rNX8T;hpzB^{TB}A`M^7e|91$zcj-(Hq%yO-pIT|( G+mR zg)quZhP{Jk6Lp5)yjP99y18zoX|!hKkGcCI?)^CqJ^V8rUDbAtuVBjx`Oe6@t%M)e zNb|RERVU_hMlOt%k*TKk#jO#~2aFim>SZaoX!4(wCKAxTHs%QFU}=bTc;X?4g|~|G z`S&}nYu4oQoV!)Tu&>?%91-(gF>-Cg557L4N_@GEhM#qV&@QMuk0qL@p}elDzle}| z=T{n&dQ@|>$0dU|_~a0nBEsxBI8f+p{$0C)baGiI^mdlX?02lm4KW7# jxVOnFmEX?|fxmjZJnvv*GNyzMOfZhT#UGF9M{` z<=KjZV+F$ND*mn2(s*iq-!Q(QR{vSKU4eYnPHARSDt(eQX_9Rle*W=T`R3A2)2w9! zkFS1yy1(Q6pIgqwP6ma!ITWfhp4}gbqseSG(fhLTZ2t4@9cnL|KxKLKf!{*xIZ>U) zHoXH`XLakYZmDDI^SZX#xXTR}&3)RXECbD>6^)&WZ`hd{dMNI(_`<~S*8#Ee!t#!v zs+yl=O1hu-C@RR8R(D1!mdR&}6}8O!UTFTVui50bo#XHwxN(%=dM`rd;)iF6<%6?c z)w2H{P>Ij6T}a&I$$DnTz|_k+Jf({8z+;Lt#~FjGU1yuCN(Xm46#i~0nkZyo!0sI5 zJb>+yDoP%pembB|WoVf !`fGhg*P2V2)o^YweuS zS}hiG?!b=ukXzCQk07-jPG %t$4<1@%)yQN5 o(oZ(AOWZo+5!Er?grA z3ck-D2$hK5RVK+9xH(ainKZV AjHEhr7H)>9QYZB>@PZ`sPaTSm70`HbgIj>bVapb yc^r}}H)aI-^1)(!|2Hr QJV2DPhqqpX61QK{7o&Tbjd( zi0^XU2G8q_fa+ZUnT$vqqfv-P#Y{_RXx!vD88BiC2;&u;u^xbKI y}7eG?$XV#NB3sKBiXBU>jB_nG=Cric(52fFZzatmte zM|?(@4X3P2^j8$TRWi;|NI>1q2svt4^Os}OB4%NJC88bTj;-4KQ*T+5p|vz#mU8^- zOk#Z&DzM?#ui^bSUx+xi7V=LWr=l&NdZ3=|ej=8=%?N-l66Z5ffiVBjm9se`W{GuE z(01JxHlNcVBhw!zvAG^8i5Gm1t)u)?IV_T(*umvS-#V&lP!PlAm5ickWYD%I(z!1y z%|Fi{@gvKhF&V$w_AoqbSBx|A_3wcOCG_Dt8x0-fS3z5)_MDt1u44AWQR>0wp4j1w z>V;2Q!f8z;(m#TtuiItA x=~car=PmW63r>d5I>s zBULzsCJ_l0`izl~H=)VR=LXF1kOUlCw^<2O$q0|9c++~ltw4tdO;JC3xerM2WqyAW zOd-6^pUETk9cnXQkKIkxki7W*j@R|*!*sUT9>v;~lg`*nZ@?-WP&;My<>l>X9-@wO zJNq5ZBvDLD^j>(vQq+C GTjItAq|dOOK{eR*fjZX1&QrV#JMqtlua^Zl%7)g>!o}Pq89mcej7U zcana_t6qbTz;s)WOH&Q_bzfC&KeI^tAEPX4hE{LRgp$~nuU58gF!gj5OqCk!5`>GH zLYqRs_Zj)SSme^5XyJi0&S*X;Ih+UXVM>%OaB|;uhr47-o^=w#lrfiQxcM$dY-%Ef z8(ho_>$lk$#q7Qlmwn8Lh`H>0FHI%4D%49dk@wNWLOyE7t8FV`#yv9VrtC$c>PB*_ zs OdQ`_LPPSdL&1eUmq9>^ZI}G38vWzH5ZY@+^4$BU4LtiU3MG4vH(LhJg*KPgq zIN4XOZN_vO<+M1ik?`wsZyqw8a_#kIpsTedSVdGI zq%F}<$Oh^7Hyg};{Mjfe^~+dL#lKpa^sPuouY24m+%w7d%`J?(L^;guwmIW&b7tVy z3mU3=ev1 OBJt db{m0Hqp8jyVM1bpf5E8cu7_2Mu4KA?WFiM)wLQaULP(8u}&e}|pF zm^3(Zvulqw5fk 2m^WxzRk>%ahpAuTk7&b7c{Iuf zXHAgL@wGPZ$%u?TnUAJ1p0?BssZJp(*>-RBPP5g^&KOfObWebbNnRb7AoLU$7@RgM z*P&+YJpsCs%o>-t^z^>Q?xY2SztWRY)huruGV6MPnW9NAZSZILRzp>?t V{$2Z){jL4oZMgnAkX{BhyJb*2e0KbGOkUm9KFK7{pC3nW zg}TGN+nt@jE2Zi8?kDGrT^p~szn$soQ#je>Kl3?|nlYV*Z!6`qjfUx&M^TBZC!YUk z9sL5nesJd012rY=@khEB()~ieBk!$O?4iSCTm9#yz-xoi+=;KzUZUL(+B*DhTB%?o zPY&W1xu_6N@vwd;%GkXg8+m>b^#1tCX<-k)b2*WyVl-N~vj~^vwMv`9i$*a%w;-}@ zjV~_1W=)ovNZmVRJJNAy&?1 aEXVHwnS7L!|Ow}p6j#{c kwLc@w_I;56w z-B !)ho=MCbxbOn6me$yT#a0vD$OPKvUg*4WVTb>MhT`r zGk{QYVC`viMU?Hl1_o`w@s9>H*R#Av$Tlt0y}aQDy@?a$aCMd9ev*vT7>Kf+QdH;u zxqcw>uVvNW+X`}9w VX3=oAB$hiP>7{=U5u ztj0H@dEd_pR)T2J*W*S_bnn4OhbZ-V!{52Tjel-b#wd9@esi9potH0PKgHucb2IhJ ztDs}rvw9|EM1~>DD*Y}lBFA&!%tpK9&^I&2&kn$S=CF?b{FIXpzZ30m%F~tpiDDhm zcR#tRB+)61t*Kg)hxC6jrj^(trUX}=+4IRT`|_DIJ1x9W;q;f{b>EK!qYRc#$3Oml zpY^Hex?VRWUqk=i;q_&d`ztG0#m~PBD@rnVjT|M&6m)HW)V0z-ojIPiptsGX^M32w zZ3uIP{qo9o@5Agd0fP^3gFF+Neu{^J!Y;tg>HEEeKkBSh>wTj<6$|+SlZ`f$LQ+sn z`mOQa{TJO;WW(E{H*D*^J>u~F`iV@qwmni5(>=Ut! qU)NM@y9#pI|zQ$@i{e#pz5mugvCY zST-c#M9XvVE8N#V#5XQx0z%mPim;t@%$CL7oVZTnJ^0gK>Vfi3gjwd>W6?YMJq_mP z^mxB)KL4t%qpzPScGr|v@{UgFcBztPQ>W!bUYjCkes36G8A+Z=qwQglbp5*&*iNfU zJmEXSU0VNFm^syxMhDObuQ%`-uHHHW$L>9G? ZkBTm%GvXLR3KNqr#Ow%Z@WcSIAUVc%KQQtgj9W|Ff#|4UO1VJY_D71} z1DI8zDJhU^FQQoP^W~MX!Im(Ft6Ug2K3^VC92*>yu}1-RnMWIdR*hdK_(FG@usz)T z!D|7SSmUn^k(9y^ku5R~-bdu;V6Fj5aDf<*Vf>~0HZL^4IG}_fEzx~2;}zwY14o9d zf#z=DCqm}P$wh#wH2|Qp%=K7qR!-BTG8O&vfCTKU{mmXht>}KBP`!rcI<9g$DjpL5 zi_SemMxaEcyDjE!wLBZot`wpk8_WL8bfr^<8~-Hw{!D!DArA!uF%4BPQNi*gFN?jB zo~2c;TTY1>_a9SZk%A8IASl+JnAQ+sR{~_j#$Vf_%<8`$p0h_RywU^$iuX}nRUdtP zCPV$%`5HbnY&jsuDy_e3b#6dDi-?6<&DTpYU;KR&H%NH6?zjs-RrZ@dT)ro56Jt}a zggV<-S=fpR7=K!a TSK_7gaBaut(A zyNPSW)B0%E)`+@ti3AGTvevx!gkq(ETr!lpLv6EjO(aCsg0Ok7ep*~do; c`-IP>1LtLY29Q5ftZcp*dxk3>C+I&{wugFw7UyF2JW||$;jM< zj*L6Tyg_eXshxGGAo;;4>C@QM^sisFsbAQ`DyG-wjjzs!^$dK}Pps*9MPN3bJ1EK0 za#m7^9g_Y2!zX@VFt($-$h0ka{+vVMxVTvIyezpE65vWVIWRZx^oKsFrlASr^i7d| z63j*~?Y9=7Vb@znmc5xdeW?^$eS?vgM7^*?EeNP_ h@du$8$x<6H|D zx<`govFOdfwY2_tDS^*tEKc;?9yqbw-mo0*OQTM{y`ImIp`y<3uMvHNE1s_iSO_z0 z621CO0y W 8+sZ z`wqWTGE+#76hHPcUE?2j!G(d@-|d6<#{*1^R=hV%OON!sb4~x878%)lSC4i`KYmp> zZMJLFJAo`u{m|5&lU BAe(3DRC@>KM%( >&U%* z0e<4Otdn_}mr((yfbqP0O#PqbiP aeSl zc1J?4%+<)c>^@s7V=0zipPeg@yKdw-bqlES)uuq&&OyJR9@Sr7e+qdUoS*#B;r%F( z+zV-|Wa14`yW>H^s?{Z9?`X3|E^Rs;tzQh!kHnz@dXADT(auU~^VXZ9 ?{L%7FAogk%2OKb3Yd}p&SkE!`tO~%Q5&W-9=QH9`+n#b z9OAbR3)J0U#{*Z0eAn-v{&avGmMC9!Pepl()(=g!hs-8Tme#w}>~0l<^US|Wa;zGJ z_^$gEtdD74gGImnw}ha$_xDrj`H%gtNF@@0i5%HE< z_U!3jU&F$-_;+9NrcrYLena&Awk*I;j`ewe* z(@$7RHVYlYDKo|T9|wAKvcIkpGz|ao@z~8D!IjUV&%$B `O*P@cQuS8X#lc@5x~R~^ zbXLF9oncMr&t$NsBEvkltgfD&ZESm5{D*!`R0|-!lr!%g?N9t;)2>3 Iy|l-6gLlcPmA43YfeM01&RL6^|Sk*Y+t`AfBr zOvkx;(yxo6AY$#Nm>G{N3oX+1IZn$53YkvviYYz?2JXuv#rvlkp?|vcFkN#?%lBkJb1cAltq>!BR8s?2#W59BTokL)=Maq49~YaWvY42-~M_&rOWA@Il_0Q zRGM{j;D&HP7tb3Brr8N^`F}J!66{4pJ9(=>zUfW`niK BXrgVF z4C7Q7e;D2*IL0#yA!Jau`X5b@ZLcJ=@lvNKJ2oUy`$lXqPZx|Us)g82g3#mexq(+( z^eEF@>yEv)K>Xp0H{zGT$-l#!qMp(y9-&7HaNa~H1*DPV7Z}}oycIN5z~E(v0-Nn2 z-{?X``!TH;_zERJ0I3Zq#YEptVb2~IMRl-9jatZU{#5i=);5@Xe$Gs3(Aa zW3QT8u9yo2tisGMoR$CrHb^pgM82VT)hU3VGTrNFVtu+{%AZsOtW+^x?W!Y$8Y5?~ zm;9u4WW@i179P)0ziE^x&2NmYK2P~cVA@@jr?}J};Z!vDWg6ZLG**KEE5cTSM@99~ zDN$G82;BsTc7P~-Ql3@nL|;yR0X|=Gs}$6lkgp|)E45J|?4VL)FWAm!8^Y&vql>8R zM2}7aq?O<99m(&uMuN7&yw4cutmYnj)pIjJKoYG6eeX}q-VU$UK;+Z6tns5x^^s*Q zHVEIRW62!ZK-U$wx8Ut}6m(){d|LzqDs2#Wxxy 2J+|B214HRk9qJ@C(uJGk}kw!C60U@6@Trw0ghmh~$&qP#UyT^HA^;V>c zi1Gf3Ql6e~_ipS1JY|& pL9cbXvZ{dologJTA}r{KrA<8b5gDjqw^)gb*5hf*vctcFY=pftr;Ihp46m zlSf|mh!}iR6m_Pf0>iC+oFI_^=a4@kj{Au$5VyZ0gxl5!Fq;qXL#Jz|3dRrA!WB#u z0q>2v{GB7P2&l^Z;wq?RygT7%bd?Z0RzK0CEH=2&5bo4Sr7_T!6O{oY*9kJC2Ru9X zRl#@#HoaL NTS=$z z%oiWQBN UDtibcr_r^5zM+`Yi(Y>)6&T+=a$oa_E|!bI!loZpyW!24HHkIIvk ze;&!O76jr>(n>TjKZS Rh%ayRU4-U>_#^DiFMbdtXRbtX-EVNVLFZ$%OXlzuItYOBvnepSjv zKqPFvK{Tl~oL|)+K @3fggOozhe8a1&6VzBAS$Z-y$?=FdVl7tppuD zq^|-8uT)DReP4_53TYg`kM}?lUS#nRoNiQlH 2C8= zuW>M{#n=8J?Gyv}T(V~ov*r7oKRft&{3vQTH~dK6->H~GB2`&%>L6Uf4NMO?zR;)A z-v2vLze$w>g1>ws#|pW77mP-^I_O;g-aiL~yQ2_0qgSN-v)*+ZQ@O_OVW>LB+v0nJ zSpW2ybN2qLcK4$)StOnWVfI&!uh5{`_J{8w&1(>NX2<7GHm{XWA$j1wT`a`bvwav9 z3~DY@rFoKt`LrQB!vFO6N)qNX!GEgKW<4YXRKT-J;6rfR8U%U ~I8N`pdfr?U2-^u!J9V3HG0&C&^9ot>R(E^5hyIM@wIJAa36>?$tbqvi zu_s8rEhxBhByJX-Tk>|pTcX=w`PCC+vACDTWGGxce;K0OV}DFWd&YTj{3pCpoIfmK z1$9136<)4+N<4y^#Pdvu`j?l46-1`lo*1 Ylr;g#;`)lYSrNIZF0cF&tSq5T&ow;UIT{}05oW1GEY*;bF3{{uH8nN9!z literal 3255 zcmai1XFMBP8%Mc{QmR&rwy52NQfk&-u|jO3c(rCJi5Zu2D>2#_wKZ0amY_9SyO)p_ zHG)Q~s8ta)V#W5RU*9k9hvz)MbN=I;-}&&I=Oo)$nQ*cL*cliYIL%BAZRr{NCocX) zAA6rR#?TX6h^ccJ0|UpEKfy?x`TK-{;gX-3p&m4{X#J&Yn*F2@;ofLQtI}vI`_O!j z+)E2Sy*E6zI9&-p$ QPSdzZlgYmKa3r=TAF7(YbaHz^s2q9Ef+uY`@81?O9k(_b0OCWn%gUg(hDW zmP9Fw^#l;=eB)#kV9(JKqE55$+ }W) z;J-O~X5-Y6wpa$oFZc*MR!H!J+CM0WQiqN1N~iR~cYkp2xfh@Oi*x^Ky5^_~IW7aJ z-3wu<13R9HAWLGT4oW+BXQPgmh@Xl`lz?C3&zpmGok(8o*KFf26RA%& ZHSX^& z=|q9XOsY@{aRZb{ad#p9`h*B;7)N$pCh55w@I2kUM|u_ASNQpix5CMTbT7JaR!eL% z!18Ay{Zy8TzO1DSp+9#K(q&i-ktbEn@`tZL{2_L|dZp$Mo~iPkWhyON2W+A+D`{5l z9*?VDX{Q69P1+g8As`OAMEcq~lZA0-t*J?r04S)5Ly>3iouufpdq>k4P&Z;?umJwz zAr)%W&fpFKr4k|7K0Cg3Cb(f|t+`1Q-{#19S1o;y>a=L*oafszVtb8)_qN4Fmo2qs=-yJ4WiyR|tVpRccU@w2uG*>$2o($T zxK<@Fx2k+)ooRp1LbdB~)?mG-ey|+=;tqAoKr75AE#-nYv`q=7b0hrGRt{udPL>nH z;W1JJU#f|$V{>@+?B%oF-;0C#9wUwLrM5^x@%l@%Wmt}06^*l}Sqb)u6{-E|)CN>^ z?cJ+uO}VLg>2 hLQ&n0jPJMXIc5CEy^jyFI*14QPc%p=dd!B86NQV1fAV@|`D`yEkU%VQQ}W z_ |*e!<-Cfdo-!#IEUtdTy>^ZI%obi@-0tV-Rd75{9u zS?R#1sq_5y+I5S8Vk0fcx?I&6c~e}`t!J{Q@8Lh;Oy6>lIuqkKXCn8J%iB2UVRsc^ zB?4$MxB}*>suq!Zvoy=nF?Bl;IZYyW%g? M{@$~uZ{vKp5l}Pu5B!6HBmWCX>6iYUdYVh}-?NU_4N4@Nk?VVRb{m5R4LoSF zM9(h%9NT1$r2B^Viq;g(q=4pUdvmF8x#A7l1iFGN-Da*H3~kcf%140DM#<}|VM1n_ zz><$}+OLGyVQn$DZ;08l790Pz_KN&s{wkFtX*6pEwc0zomN9}F8p!3OVh>|6TZj!G z{bi=H)ALo#Rc-@X*mTa?nb>JJK!*~~0ajy^>nJ|{${tNQbC@T24%3bZj!ki5n|%iD z?-ZTdT1(((htdxJhyj?$l#-Z=wa!R#0hBWbShTG^gTkX~U^>4Y44MwKx0L+QY;8;~L>qy*`Z0<%3*_qj1%eYyKvc0V7UrOImyPBg3}J0fpYt zAlPI7YM<4mkN#>3lpBnvV}9C%o1Ofiyu=3h>XdliT5RR&hgYP9QYAHTE|#;VCq}k> zzLl$^YsJgQ^%g?Fsjcbfaes(wZRQPh V)b1mf!pB*;_F z#=N;zr?E`T!dp1yV !F^#Kf8)$m7j(#yI4ey#NWcwQnp*d-K3r-_m=+uNla_JhT8|FWsfjEwnFp|IO0 zx+dB|>yN1WT<0p+_0keG9~U@#q5J5ByYg5{A&xpqWqny8=0wz`0sTt8_7_;BpdX@A zG8aAyic&<=(n1(z{+iUr|8@79rV$N68FIU{XTdhL=tjSnp`Gj;7y7F *OV(mD ag$}P2Q`sLM3J97DFU#Q1C17E9h?Gywrv?L!S`DFaQ!onf< zs$50+>$8w<^++9i!>C0kza+TI S(-Tt>SjE zwqwOC?;Ncw>w>)pI4mAOvxge&X?JOi0kM~f*&|}UWLoO6I5c?16FoVpF(m2Ix8t*S z^owdsHj{67 D#mSvY)@ACc3o_VxFdarrE -M;^g-vl!x$7ar3^NAd`hjOfO4@ zC|8CQ&liCRb3>bx1oXz@%)97}ujObB8@XBVX6(i@xRYp#oPBt05couhnkroY^4bO| zi)`>2Y8u+)dvH(7@YO%OztPcev|8qXlF5AW+R=c?QN;uKV4R5GOlEG9NhoU>CUgc? zEPUB$o~I -JAJq-y`?gYmUcW7p?Xy+=6x~I<5#{ }W)Px~NhT#ao z<{2qvk2G`LMFBi*Vaj6mw;g9Km(eP3{-kHox@!KR7nBJgAaZO4#E&;?;E|BMa91c( zH0q(|RnH~;j_TdyA&R1ZmrUafzcgb|SymR?Z4j*JDa}yzn`5Q_X*1T4SPI?`jO( zr-Mvbc%V{@>$md->YaRqLAnnRf>nZc54z9>zdXmRROv{o^W?B`IHI~nu+cIEk!8X3 z9dR2Z7B2qAomtur3x$aW$o1nDQ|95S@7R1vpOGNYiEczNaMV@WTtzXukg`!^?b=pQ z!5q~seL}g(*OzxUVEUUI_}aczUEpJ2FCnw)?owH@hy!k<1q43Tkx=VxXQ-xIo{W-G zvLu(npGzA|Jq>mKW~s=Qn#*u$B#&U9aAUs;Q;DgJ>it}|S(jL;Q(PqU>WC#`^eEdh zf1qBdr?YNTCtlrK4CD`CyWISLd-DHj*%>EgV-CiYjc*(g&KYr?Eb^b46qo2f5e73O LE5kbd`w9OAfE9NH diff --git a/public/images/logo.svg b/public/images/logo.svg index 295413e..84cfb1a 100644 --- a/public/images/logo.svg +++ b/public/images/logo.svg @@ -1 +1,212 @@ - \ No newline at end of file + + + diff --git a/src/components/buttons/data/links.ts b/src/components/buttons/data/links.ts index 834cea3..9835682 100644 --- a/src/components/buttons/data/links.ts +++ b/src/components/buttons/data/links.ts @@ -8,18 +8,13 @@ type Links = LinkObj[]; const links: Links = [ { - href: "https://docs.google.com/document/d/1hrerGKHTO3iach8A-CabtfIB4lyZWlgO8EGTyOCrI2Y", + href: "https://docs.google.com/document/d/1y1tbTG6TYoLMEde4XHzInByyHQ0T6Aw2RF6Y4Z7Yabs", name: "Roadmap and Progress", type: "secondary" }, - { - href: "https://lucidcreations.media/lcm-potty-chart/", - name: "Official Announcement", - type: "secondary" - }, - { - type: "ko-fi" - }, + // { + // type: "ko-fi" + // }, { href: "https://t.me/LucidCreationsMedia", name: "Dev Updates", diff --git a/src/components/calender/CalenderNav.tsx b/src/components/calender/CalenderNav.tsx deleted file mode 100644 index 94a46e9..0000000 --- a/src/components/calender/CalenderNav.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import React from "react"; -import { useAppSelector } from "../../redux/hooks"; -import { useRouter } from "next/router"; -import { HStack, IconButton } from "@chakra-ui/react"; -import { Icon } from "@iconify/react"; -import { format, isSameMonth, addMonths, subMonths } from "date-fns"; -import findValidDateRange from "../../../lib/findValidDateRange"; -import DatePicker from "./DatePicker"; - -interface CalenderNavProps { - isLoading: boolean; - title: string; -} - -/** - * @param {boolean} isLoading is the component loading? - * @param {string} title the title for the current date. - */ - -const CalenderNav = ({ title, isLoading }: CalenderNavProps): JSX.Element => { - const selectedDate = useAppSelector( - (state) => state.calender.selectedDateInfo - ); - const { date } = selectedDate; - - const selectedDateObj = new Date(date); - - const validDateRange = findValidDateRange(); - const { start: validStart, end: validEnd } = validDateRange; - - const router = useRouter(); - - const handleNavButtons = (direction: "next" | "prev") => { - if (direction === "next") { - const newMonth = addMonths(selectedDateObj, 1); - - const year = format(newMonth, "y"); - const month = format(newMonth, "L"); - - router.push(`/calendar/${year}/${month}`); - } else if (direction === "prev") { - const newMonth = subMonths(selectedDateObj, 1); - - const year = format(newMonth, "y"); - const month = format(newMonth, "L"); - - router.push(`/calendar/${year}/${month}`); - } - }; - - return ( - - - ); -}; - -export default CalenderNav; diff --git a/src/components/calender/DatePicker.tsx b/src/components/calender/DatePicker.tsx deleted file mode 100644 index 459a852..0000000 --- a/src/components/calender/DatePicker.tsx +++ /dev/null @@ -1,284 +0,0 @@ -import React, { useRef, useState } from "react"; -import { useRouter } from "next/router"; -import { - Button, - FormControl, - FormErrorMessage, - FormLabel, - Heading, - HStack, - Input, - Popover, - PopoverBody, - PopoverCloseButton, - PopoverContent, - PopoverHeader, - PopoverTrigger, - Skeleton, - VStack -} from "@chakra-ui/react"; -import { - Formik, - // FormikHelpers, - FormikProps, - Form, - Field, - FieldProps -} from "formik"; -import { format } from "date-fns"; -import findValidDateRange from "../../../lib/findValidDateRange"; -import FormValidateEmoji from "./FormValidateEmoji"; - -interface DatePickerProps { - isLoading: boolean; - title: string; -} - -/** - * @param {boolean} isLoading is the component loading? - * @param {string} title the title for the current date. - */ - -const DatePicker = ({ title, isLoading }: DatePickerProps): JSX.Element => { - const router = useRouter(); - - const [valid, setValid] = useState} - onClick={() => handleNavButtons("prev")} - /> - - } - onClick={() => handleNavButtons("next")} - /> - (false); - - const validDateRange = findValidDateRange(); - - const validateDate = ( - dateString?: string | undefined - ): string | undefined => { - let dateError; - - if (dateString) { - const dateArr = dateString.split("-"); - if (dateArr.length !== 3) { - dateError = "Please select a date."; - setValid(false); - } else if (dateArr.length === 3) { - const date: UpdateCalenderPropsDateLayout = { - year: parseInt(dateArr[0]), - month: parseInt(dateArr[1]), - day: parseInt(dateArr[2]) - }; - - if (!/^(19|20)\d{2}$/.test(`${date.year}`)) { - dateError = "Please use a year between 1900 and 2099"; - setValid(false); - } - - if (date.month < 1 || date.month > 12) { - dateError = "Please use a month between 1 and 12"; - setValid(false); - } - - if (date.day < 1 || date.day > 31) { - dateError = "Please use a day between 1 and 31"; - setValid(false); - } - - setValid(true); - } else { - setValid(true); - } - } else if (dateString.length === 0) { - dateError = "Please select a date."; - setValid(false); - } else { - setValid(true); - } - - return dateError; - }; - - const handleSubmit = (formInput?: { date?: string }): Promise => { - return new Promise((resolve, reject) => { - if (formInput.date) { - if (!validateDate(formInput.date)) { - const dateArr = formInput.date.split("-"); - const date: UpdateCalenderPropsDateLayout = { - year: parseInt(dateArr[0]), - month: parseInt(dateArr[1]), - day: parseInt(dateArr[2]) - }; - - return resolve(router.push(`/calendar/${date.year}/${date.month}`)); - } else { - return reject("Error validating date."); - } - } else { - return reject("Date not provided."); - } - }); - }; - - // Field theme - const fieldTheme = { - width: "auto", - bg: "gray.900", - borderColor: "white", - _placeholder: { - color: "white" - }, - _focus: { - bg: "#000", - color: "#FFF", - borderColor: "#63b3ed", - boxShadow: "0 0 0 1px #63b3ed", - zIndex: "1" - } - }; - - const initRef = useRef(); - - return ( - - - ); -}; - -export default DatePicker; diff --git a/src/components/calender/Day.tsx b/src/components/calender/Day.tsx deleted file mode 100644 index b5e5245..0000000 --- a/src/components/calender/Day.tsx +++ /dev/null @@ -1,262 +0,0 @@ -import React, { useState } from "react"; -import { Provider } from "react-redux"; -import { store } from "../../redux/store"; -import { Box, Skeleton, VStack } from "@chakra-ui/react"; -import { - add, - getYear, - getMonth, - sub, - getDate, - isBefore, - endOfDay, - isToday as isTodayFun -} from "date-fns"; -import router from "next/router"; -import AddUpdateSticker from "./modals/AddUpdateSticker"; -import DemoStickers from "./stickers/DemoStickers"; - -interface DayProps { - isLoading: boolean; - isOverflow?: boolean; - overflowDirection?: "next" | "prev" | null; - currSticker: StickerVal; - date: string; - selectedDate: string; - currDate: Date; - tutorial?: "add" | "edit"; -} - -/** - * The individual days in the calender component. - * @param {boolean} isLoading is the component loading? - * @param {boolean} isOverflow is the current date being given before or after the current month. - * @param {"next" | "prev" | null} overflowDirection the direction the overflow is. This will navigate the calender forward or backwards 1 month. - * @param {StickerVal} currSticker the sticker for this date. - * @param {date} date the date for this day. - * @param {date} selectedDate the date for the selected month. - * @param {Date} currDate today's date. - */ -const Day = ({ - isLoading, - isOverflow, - overflowDirection, - currSticker, - date, - selectedDate, - currDate, - tutorial -}: DayProps): JSX.Element => { - const selectedDateObj = new Date(selectedDate); - const currDateObj = new Date(date); - const isToday = isTodayFun(currDateObj); - - const handleNav = (direction: "next" | "prev") => { - if (direction === "next") { - console.log(overflowDirection); - const newMonth = add(selectedDateObj, { months: 1 }); - - const year = getYear(newMonth); - const month = getMonth(newMonth) + 1; - - router.push(`/calendar/${year}/${month}`); - } else if (direction === "prev") { - const newMonth = sub(selectedDateObj, { months: 1 }); - - const year = getYear(newMonth); - const month = getMonth(newMonth) + 1; - - router.push(`/calendar/${year}/${month}`); - } - }; - - // This handles the modal for the day. - const [isOpen, setIsOpen] = useState- - -- -- -- {"Choose a Date"} - -- - -{ - handleSubmit(data) - .then(() => { - actions.setSubmitting(false); - actions.resetForm({ - values: { - date: "" - } - }); - }) - .catch(() => { - actions.setSubmitting(false); - }); - }} - > - {( - formProps: FormikProps<{ - date: string; - }> - ) => ( - - )} - -(false); - - // The step the modal is at. - const [step, setStep] = useState (0); - - // The current selected sticker. (To be added or updated) - const [selectedSticker, setSelectedSticker] = useState (null); - - /** - * TODO: Add logic to remove the onClick within overflow dates. - * Do not give dates for the next month an onClick. - * Do not give dates in the past an onClick there is nothing before that month. - * (Creation date of a chart) - */ - - // TODO: When the valid date range is created, disallow pointer cursor outside of the date range. - - return isOverflow ? ( - - selectedSticker !== null ? handleNav(overflowDirection) : "" - } - spacing="0.5rem" - alignContent="center" - justifyContent="flex-start" - > - - ) : ( -- {`${getDate(currDateObj)}`} - - {isLoading ? ( -- - ) : ( -- -- - - )} -- { - setStep(0); - setSelectedSticker(null); - setIsOpen(true); - }} - alignContent="center" - justifyContent="flex-start" - pt={2} - _hover={{ - cursor: isBefore(currDateObj, endOfDay(currDate)) - ? "pointer" - : "default", - bg: tutorial - ? tutorial === "add" && isToday - ? "gray.600" - : tutorial === "edit" && - !isToday && - isBefore(currDateObj, endOfDay(currDate)) - ? "gray.600" - : "transparent" - : "transparent", - border: "1px solid #FFF" - }} - > - {isToday ? ( - - ); -}; - -export default Day; diff --git a/src/components/calender/FormValidateEmoji.tsx b/src/components/calender/FormValidateEmoji.tsx deleted file mode 100644 index a231114..0000000 --- a/src/components/calender/FormValidateEmoji.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React, { FC } from "react"; - -interface FormValidateEmojiProps { - type: string; -} - -const FormValidateEmoji: FC- {`${getDate(currDateObj)}`} - - ) : ( -- {`${getDate(currDateObj)}`} - - )} - {isLoading ? ( -- - ) : ( -- -- - - )} - {tutorial ? ( -- - {tutorial.toLowerCase() === "add" && isToday && !isLoading && ( - - ) : ( -- )} - {tutorial.toLowerCase() === "edit" && - !isToday && - isBefore(currDateObj, endOfDay(currDate)) && - !isLoading && ( - - )} - - {isBefore(currDateObj, endOfDay(currDate)) && !isLoading && ( - - )} -- )} - = ({ - type -}: FormValidateEmojiProps) => { - interface Validations { - [key: string]: JSX.Element; - } - - const validations: Validations = { - Required: ( - - ❗ - - ), - Error: ( - - ❌ - - ), - Valid: ( - - ✔ - - ) - }; - - return validations[`${type}`]; -}; - -export default FormValidateEmoji; diff --git a/src/components/calender/index.tsx b/src/components/calender/index.tsx deleted file mode 100644 index 01f9dda..0000000 --- a/src/components/calender/index.tsx +++ /dev/null @@ -1,166 +0,0 @@ -import React, { useEffect } from "react"; -import { useAppDispatch, useAppSelector } from "../../redux/hooks"; -import { updateCurrDate, updateMonth } from "../../features/calender"; -import { Box, HStack, SimpleGrid, Text, VStack } from "@chakra-ui/react"; -import { isSameDay, format } from "date-fns"; -import CalenderNav from "./CalenderNav"; -import Day from "./Day"; - -const Calender = ({ - date: newDate, - isLoading -}: UpdateCalendarProps): JSX.Element => { - const dispatch = useAppDispatch(); - - // * Month * // - const currDate: string = useAppSelector((state) => state.calender.currDate); - const selectedDate: SelectedDateInfo = useAppSelector( - (state) => state.calender.selectedDateInfo - ); - const { layout, title, date: currentSelectedDateStr } = selectedDate; - - const currDateObj = new Date(currDate); - - // * Stickers * // - - const stickersMonth: StickerDays = useAppSelector( - (state) => state.stickers.stickersMonth - ); - - useEffect(() => { - if (newDate && newDate.year && newDate.month && newDate.day) { - const { year, month, day } = newDate; - - if (year > 0 && month > 0 && day > 0) { - const generatedDate: Date = new Date(year, month - 1, day); - const currSelectedDateObj = new Date(currentSelectedDateStr); - const dateString: string = generatedDate.toJSON(); - - if (!isSameDay(currSelectedDateObj, generatedDate)) { - dispatch(updateMonth(dateString)); - } - } else { - console.warn("Invalid date format: ", newDate); - } - } - }, [currentSelectedDateStr, dispatch, newDate]); - - useEffect(() => { - // console.info("Check to update date."); - - const currDateObj = new Date(currDate); - - if (!isSameDay(currDateObj, new Date())) { - // console.info("Updated date."); - dispatch(updateCurrDate()); - } - }, [currDate, dispatch]); - - // Simulated user settings. - const userSettings = { - theme: "default", - startOfWeek: "Sunday" - }; - - const currMonth: WeekLayout = - layout[`${userSettings.startOfWeek.toLowerCase()}`]; - const { month, weekdays } = currMonth; - - // TODO: Move the weekdays into it's own component for responsiveness. - - return ( - - - ); -}; - -export default Calender; diff --git a/src/components/calender/modals/AddUpdateSticker.tsx b/src/components/calender/modals/AddUpdateSticker.tsx deleted file mode 100644 index 60f2146..0000000 --- a/src/components/calender/modals/AddUpdateSticker.tsx +++ /dev/null @@ -1,271 +0,0 @@ -import React, { useState, useRef } from "react"; -import { useAppDispatch } from "../../../redux/hooks"; -import { addEditSticker } from "../../../features/calender/stickers"; -import { - Button, - Modal, - ModalOverlay, - ModalContent, - ModalHeader, - ModalBody, - ModalFooter, - Heading, - HStack, - Text, - VStack, - SimpleGrid, - Box -} from "@chakra-ui/react"; -import { format, isSameDay } from "date-fns"; -import { Icon } from "@iconify/react"; -import StickerSelector from "./StickerSelector"; -import DemoStickers from "../stickers/DemoStickers"; - -interface AddStickerProps { - isOpen: boolean; - updateIsOpen: React.Dispatch- - -- {weekdays.map((weekDay) => { - return ( - -- - ); - })} -- {weekDay} - -- {weekDay.substring(0, 3)} - -- {weekDay.substring(0, 2)} - -- {Object.keys(month).map((week) => { - const thisWeek = month[week]; - - return thisWeek.map((day: MonthDay) => { - const { date, isOverflow, overflowDirection } = day; - - const toDateObj: Date = new Date(date); - - let sticker = null; - - let id = ""; - - stickersMonth.map((stickerDay) => { - const { date: stickerDate } = stickerDay; - - if (isSameDay(new Date(stickerDate), toDateObj)) { - sticker = stickerDay.sticker; - - id = stickerDay.id; - } - }); - - return ( - -- ); - }); - })} - >; - stickerDate: string; - currSticker: StickerVal; - step: number; - updateStep: React.Dispatch >; - selectedSticker: StickerVal; - updateSelectedSticker: React.Dispatch >; - currDate: Date; -} - -/** - * Handles adding and modifying the stickers for the given month. - * @param {boolean} isOpen Tells the component when the modal should be open. - * @param {React.Dispatch >} updateIsOpen Used to close the modal. - * @param {date} stickerDate The date for which the sticker will be added or modified. - * @param {StickerVal} currSticker The current sticker for the date. - * @param {number} step A numerical variable that represents the page the modal should be at. - * @param {React.Dispatch >} updateStep Used to navigate the pages of the modal by updating the step the modal is on. - * @param {StickerVal} selectedSticker the value of the selected sticker. - * @param {React.Dispatch >} updateSelectedSticker The react state function to update the selected sticker that will be added or updated. - * @param {Date} currDate the current date. - */ -const AddUpdateSticker = ({ - isOpen, - updateIsOpen, - stickerDate, - currSticker, - step, - updateStep, - selectedSticker, - updateSelectedSticker, - currDate -}: AddStickerProps): JSX.Element => { - const dispatch = useAppDispatch(); - const stickerDateObj = new Date(stickerDate); - - const [modalVariant] = useState<"add" | "edit">( - isSameDay(stickerDateObj, currDate) ? "add" : "edit" - ); - - const handleClose = () => { - updateIsOpen(false); - }; - - // TODO: Validate that the provided sticker is not the current sticker. Throw an error if the same sticker is attempted. - const handleSubmit = (sticker: StickerVal) => { - dispatch(addEditSticker({ stickerDate, sticker })); - handleClose(); - }; - - // The first sticker to have focus when the modal opens. - const initialRef = useRef(); - - // * Double check that the submit button is disabled if the selected sticker is the same as the current sticker. - - const variants = { - add: [ - { - header: `Which sticker did you earn for ${format( - stickerDateObj, - "LLL d, y" - )}?`, - body: ( - - - ), - footer: ( - - ) - } - ], - edit: [ - { - header: `Which sticker did you want to update for ${format( - stickerDateObj, - "LLL d, y" - )}?`, - body: ( -- {"Select a sticker"} - -- - - ), - footer: ( - - ) - }, - { - header: `Are you sure you want to change the sticker for ${format( - stickerDateObj, - "M/d/y" - )}?`, - body: ( -- {"Current Sticker"} - -- -- - {"Select your new sticker"} - -- - - ), - footer: ( -- {"Previous Sticker"} - -- - {"New Sticker"} - -- -- - -- - -- - - - ) - } - ] - }; - - return ( -- - - -handleClose()} - motionPreset="slideInBottom" - scrollBehavior="inside" - size={modalVariant === "add" ? "xl" : "2xl"} - > - - ); -}; - -export default AddUpdateSticker; diff --git a/src/components/calender/modals/StickerSelector.tsx b/src/components/calender/modals/StickerSelector.tsx deleted file mode 100644 index 63b5199..0000000 --- a/src/components/calender/modals/StickerSelector.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { HStack, Button } from "@chakra-ui/react"; -import React from "react"; -import DemoStickers from "../stickers/DemoStickers"; - -interface StickerSelectorProps { - stickerSet: "Demo"; - currSticker: StickerVal; - selectedSticker: StickerVal; - updateSelectedSticker: React.Dispatch- - -- -- -- {modalVariant && variants[modalVariant][step].header} - - -- {modalVariant && variants[modalVariant][step].body} - -- {modalVariant && variants[modalVariant][step].footer} - ->; - initialSticker: React.MutableRefObject ; -} - -/** - * Handles displaying a list of dynamic stickers to be selected. - * @param {string} stickerSet The name of the stickers that should be displayed. - * @param {StickerVal} currSticker The current sticker for the date. - * @param {StickerVal} selectedSticker The selected sticker for the current. date - * @param {React.Dispatch >} updateSelectedSticker TThe react state function to update the selected sticker that will be added or updated. - * @param {React.MutableRefObject } initialSticker the sticker that should have be in focus when the modal opens. - */ - -const StickerSelector = ({ - stickerSet, - currSticker, - selectedSticker, - updateSelectedSticker, - initialSticker -}: StickerSelectorProps): JSX.Element => { - const stickers = { - Demo: ( - - - - - - ) - }; - - return stickers[stickerSet]; -}; - -export default StickerSelector; diff --git a/src/components/calender/stickers/DemoStickers.tsx b/src/components/calender/stickers/DemoStickers.tsx deleted file mode 100644 index e7d60f3..0000000 --- a/src/components/calender/stickers/DemoStickers.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import React, { FC } from "react"; - -// TODO: When themes are made import the theme from user settings store. Refactor to use whatever those SVGs are. - -interface DemoStickersProps { - stickerVal: StickerVal; -} - -const DemoStickers: FC= ({ - stickerVal -}: DemoStickersProps) => { - // If sticker is null return an empty space. - if (stickerVal === null) { - return ; - } - - interface StickerToEmoji { - [key: string]: JSX.Element; - } - - /** - * ? Temporarily using values -1 to 1. - * ? In the full app the values will be between -2 and 2. - */ - let key = "0"; - - if (stickerVal > 0) { - key = "1"; - } else if (stickerVal < 0) { - key = "-1"; - } - - // Link value to an emoji representing a sticker. - const stickerToEmoji: StickerToEmoji = { - "1": ( - - ☀️ - - ), - "0": ( - - ☁️ - - ), - "-1": ( - - 🌧️ - - ) - }; - - // Return the appropriate sticker. - return stickerToEmoji[`${key}`]; -}; - -export default DemoStickers; diff --git a/src/components/tutorial/CalenderExample.tsx b/src/components/tutorial/CalenderExample.tsx deleted file mode 100644 index 3c8531d..0000000 --- a/src/components/tutorial/CalenderExample.tsx +++ /dev/null @@ -1,210 +0,0 @@ -import React, { useEffect } from "react"; -import { useAppDispatch, useAppSelector } from "../../redux/hooks"; -import { updateMonth } from "../../features/calender"; -import { Box, HStack, SimpleGrid, Text, VStack } from "@chakra-ui/react"; -import { format, isSameDay, isToday } from "date-fns"; -import Day from "../calender/Day"; -import { setCurrentWeek } from "../../features/tutorial"; - -interface CalenderExampleProps { - type: "add" | "edit"; - isLoading: boolean; -} - -const CalenderExample = ({ - type, - isLoading -}: CalenderExampleProps): JSX.Element => { - // TODO: Check if the current date is the start of the user's preferred start of the week and use the previous week for the edit example. - - const currDateStr: string = useAppSelector( - (state) => state.calender.currDate - ); - const currDateObj: Date = new Date(currDateStr); - - const dispatch = useAppDispatch(); - - // * Current Month * // - const selectedDate: SelectedDateInfo = useAppSelector( - (state) => state.calender.selectedDateInfo - ); - const { layout, date: currSelectedDateStr } = selectedDate; - - // * Stickers * // - const stickersMonth: StickerDays = useAppSelector( - (state) => state.stickers.stickersMonth - ); - - // Simulated user settings. - const userSettings = { - theme: "default", - startOfWeek: "Sunday" - }; - - // * Week Names * // - const currMonth: WeekLayout = - layout[`${userSettings.startOfWeek.toLowerCase()}`]; - const { month, weekdays } = currMonth; - - useEffect(() => { - const currDateObj: Date = new Date(currDateStr); - const currSelectedDateOj: Date = new Date(currSelectedDateStr); - - if (!isSameDay(currDateObj, currSelectedDateOj)) { - dispatch(updateMonth(currDateObj.toJSON())); - } - }, [currDateStr, currSelectedDateStr, dispatch]); - - // * The current week * // - const currWeek = useAppSelector((state) => state.tutorial.currWeek); - - useEffect(() => { - const getCurrentWeek = (): MonthDay[] => { - let foundWeek: MonthDay[]; - - for (const week in month) { - const currWeek = month[week]; - - currWeek.forEach((day: MonthDay) => { - const { date } = day; - - if (isToday(new Date(date))) { - foundWeek = currWeek; - } - }); - } - - return foundWeek || ([] as MonthDay[]); - }; - - if (currWeek === null) { - dispatch(setCurrentWeek(getCurrentWeek())); - } - }, [currWeek, dispatch, month]); - - return ( - - - ); -}; - -export default CalenderExample; diff --git a/src/components/tutorial/data/aboutApp.ts b/src/components/tutorial/data/aboutApp.ts deleted file mode 100644 index e6fcd35..0000000 --- a/src/components/tutorial/data/aboutApp.ts +++ /dev/null @@ -1,10 +0,0 @@ -type AboutApp = string[]; - -const aboutApp: AboutApp = [ - "The Potty Chart is an app that mimics a potty/star chart commonly used while potty training toddler or child.", - "The app can be used to track behavior, habits, diaper training, potty training (good luck), daily chores/tasks, or anything else you might want to track in a fun and visual way with colorful themes, stickers, and even receive encouraging messaged from your big/dom, followers, and friends.", - "The final app will have settings to disable any mentions and references of ABDL to allow a more general audience to use, such as for a master and pet relationship.", - "This is a beta build of the app. Some functionality may not work as intended, is not fully functional, and may be missing entirely." -]; - -export default aboutApp; diff --git a/src/components/tutorial/data/appFunctionality.ts b/src/components/tutorial/data/appFunctionality.ts deleted file mode 100644 index 9c62325..0000000 --- a/src/components/tutorial/data/appFunctionality.ts +++ /dev/null @@ -1,9 +0,0 @@ -type AppFunctionality = string[]; - -const appFunctionality: AppFunctionality = [ - "The app will generate stickers to display from the 1st of the month to the day before today. This is to simulate previous and continued use.", - "Ability to add a sticker to the current date.", - "Ability to add edit a sticker from a previous date with a confirmation prompt." -]; - -export default appFunctionality; diff --git a/src/components/tutorial/index.tsx b/src/components/tutorial/index.tsx deleted file mode 100644 index 3ad41b0..0000000 --- a/src/components/tutorial/index.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import React from "react"; -import { VStack } from "@chakra-ui/react"; -import TutorialCalender from "./sections/TutorialCalender"; -import TutorialLinks from "./sections/TutorialLinks"; -import TutorialHeading from "./sections/TutorialHeading"; -import TutorialAboutApp from "./sections/TutorialAboutApp"; -import TutorialSubmitButtons from "./sections/TutorialSubmitButtons"; -import TutorialAppFunctionality from "./sections/TutorialAppFunctionality"; - -interface TutorialProps { - isLoading: boolean; -} - -const Tutorial = ({ isLoading }: TutorialProps): JSX.Element => { - return ( -- - {type === "edit" && ( -- {weekdays.map((weekDay) => { - return ( - -- - ); - })} -- {weekDay} - -- {weekDay.substring(0, 3)} - -- {weekDay.substring(0, 2)} - -- {currWeek && - currWeek.map((day: MonthDay) => { - const { date, isOverflow, overflowDirection } = day; - - const toDateObj: Date = new Date(date); - - let sticker = null; - - let id = ""; - - stickersMonth.map((stickerDay) => { - const { date: stickerDate } = stickerDay; - - if (isSameDay(new Date(stickerDate), toDateObj)) { - sticker = stickerDay.sticker; - - id = stickerDay.id; - } - }); - - return ( - -- ); - })} - - - )} -- { - "Not being able to edit within this tutorial when the current date is the start of the week or month is a known bug." - } - -- {"This bug will be fixed in beta v2."} - -- {"You can skip the tutorial and try again tomorrow."} - -- - ); -}; - -export default Tutorial; diff --git a/src/components/tutorial/sections/TutorialAboutApp.tsx b/src/components/tutorial/sections/TutorialAboutApp.tsx deleted file mode 100644 index 5017de0..0000000 --- a/src/components/tutorial/sections/TutorialAboutApp.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from "react"; -import { VStack, Heading, Divider, Text } from "@chakra-ui/react"; -import aboutApp from "../data/aboutApp"; - -const TutorialAboutApp = (): JSX.Element => { - return ( -- - - - - - - - ); -}; - -export default TutorialAboutApp; diff --git a/src/components/tutorial/sections/TutorialAppFunctionality.tsx b/src/components/tutorial/sections/TutorialAppFunctionality.tsx deleted file mode 100644 index c4f5b1c..0000000 --- a/src/components/tutorial/sections/TutorialAppFunctionality.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from "react"; -import { VStack, Heading, Divider, Text } from "@chakra-ui/react"; -import appFunctionality from "../data/appFunctionality"; - -const TutorialAppFunctionality = (): JSX.Element => { - return ( -- {"About the App"} - -- {aboutApp.map((string: string) => { - return -{string} ; - })} -- - - ); -}; - -export default TutorialAppFunctionality; diff --git a/src/components/tutorial/sections/TutorialCalender.tsx b/src/components/tutorial/sections/TutorialCalender.tsx deleted file mode 100644 index 4a110e7..0000000 --- a/src/components/tutorial/sections/TutorialCalender.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import React from "react"; -import { Divider, Heading, HStack, Text, VStack } from "@chakra-ui/react"; -import CalenderExample from "../CalenderExample"; - -interface CalenderExampleProps { - isLoading: boolean; -} - -const TutorialCalender = ({ isLoading }: CalenderExampleProps): JSX.Element => { - return ( -- {"App Functionality"} - -- {appFunctionality.map((string: string) => { - return -{string} ; - })} -- - - ); -}; - -export default TutorialCalender; diff --git a/src/components/tutorial/sections/TutorialHeading.tsx b/src/components/tutorial/sections/TutorialHeading.tsx deleted file mode 100644 index 852f065..0000000 --- a/src/components/tutorial/sections/TutorialHeading.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react"; -import { VStack, Heading, Divider } from "@chakra-ui/react"; - -const TutorialHeading = (): JSX.Element => { - return ( -- {"How to Use The Calender"} - -- -- {"Add a Sticker to Today's Date"} - -- -{"Select the date with the"} -{" green "} -{"border."} -- - -- {"Add a Sticker to Previous Dates"} - -- -{"Select a date with a"} -{" green "} -{"border."} -- - - - ); -}; - -export default TutorialHeading; diff --git a/src/components/tutorial/sections/TutorialLinks.tsx b/src/components/tutorial/sections/TutorialLinks.tsx deleted file mode 100644 index a0cb1a0..0000000 --- a/src/components/tutorial/sections/TutorialLinks.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react"; -import { Divider, Heading, VStack } from "@chakra-ui/react"; -import Buttons from "../../buttons"; - -const TutorialLinks = (): JSX.Element => { - return ( -{"Welcome to Code Name: LCM Potty Chart"} -- {"A Lucid Creations Media Project"} - -- - - ); -}; - -export default TutorialLinks; diff --git a/src/components/tutorial/sections/TutorialSubmitButtons.tsx b/src/components/tutorial/sections/TutorialSubmitButtons.tsx deleted file mode 100644 index 4c619d4..0000000 --- a/src/components/tutorial/sections/TutorialSubmitButtons.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import { HStack, Button, VStack, Checkbox } from "@chakra-ui/react"; -import React from "react"; -import { useAppDispatch, useAppSelector } from "../../../redux/hooks"; -import { - setTutorialCompleted, - setTempTutorialComplete, - toggleRememberCompleted -} from "../../../features/tutorial"; - -interface TutorialSubmitButtonsProps { - isLoading: boolean; -} - -const TutorialSubmitButtons = ({ - isLoading -}: TutorialSubmitButtonsProps): JSX.Element => { - const rememberComplete: boolean = useAppSelector( - (state) => state.tutorial.rememberCompleted - ); - const dispatch = useAppDispatch(); - - const handleComplete = (): void => { - if (rememberComplete) { - dispatch(setTutorialCompleted()); - } - - if (!rememberComplete) { - dispatch(setTempTutorialComplete()); - } - }; - - const handleSkip = (): void => { - dispatch(setTempTutorialComplete()); - }; - - const handleUpdateCheck = (): void => { - dispatch(toggleRememberCompleted()); - }; - - return ( -- {"More Info"} - -- - - - - ); -}; - -export default TutorialSubmitButtons; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 2eed775..e4eb060 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -13,7 +13,7 @@ function LCMPottyChart({ Component, pageProps }: AppProps): JSX.Element {- - -handleUpdateCheck()} - > - {"Remember completed?"} - -- diff --git a/src/pages/calendar/[...date].tsx b/src/pages/calendar/[...date].tsx deleted file mode 100644 index a174e88..0000000 --- a/src/pages/calendar/[...date].tsx +++ /dev/null @@ -1,209 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { Provider } from "react-redux"; -import { store } from "../../redux/store"; -import { Box } from "@chakra-ui/react"; -import { useRouter } from "next/router"; -import { - endOfMonth, - getDate - // getMonth, - // getYear, - // isAfter, - // isBefore, - // isSameMonth -} from "date-fns"; -// import findValidDateRange from "../../lib/findValidDateRange"; -import ErrorPage from "next/error"; -import Calender from "../../components/calender"; - -const DateRoute: React.FC{"LCM Potty Chart"} +{"LCM Website"} - + - + - + - + - + - + - + - - - + += () => { - const router = useRouter(); - const { date: slug } = router.query; - - const [date, setDate] = useState (null); - - const [error, setError] = useState (false); - - // const dateRange = useRef(findValidDateRange()); - // const validDateRange = Object.assign({}, dateRange.current); - - const validateDateInput = ( - dateArr: number[] - ): UpdateCalenderPropsDateLayout => { - if (!(dateArr.length >= 2) && !(dateArr.length <= 3)) { - return { - year: 0, - month: 0, - day: 0 - }; - } - - const date = { - year: 0, - month: 0, - day: 0 - }; - - if (/^(19|20)\d{2}$/.test(`${dateArr[0]}`)) { - date.year = dateArr[0]; - } - - if (dateArr[1] > 0 && dateArr[1] <= 12) { - date.month = dateArr[1]; - } - - if (date.month && date.year) { - const lastDay = getDate( - endOfMonth(new Date(date.year, date.month - 1, 1)) - ); - if (dateArr[2] && dateArr[2] > 0 && dateArr[2] <= lastDay) { - date.day = dateArr[2]; - } else if (!dateArr[2]) { - date.day = 1; - } - } - - return date; - }; - - /** - * ! This function does not work as is. It is causing infinite loops whe used within the useEffect. - */ - // const validateDateRange = ( - // slugDate: Date - // ): [Date, "after" | "before" | "valid"] => { - // const { start: validStart, end: validEnd } = validDateRange; - - // // Check if the slug date is beyond the valid end date. - // if (isAfter(slugDate, validEnd)) { - // // router.push("/calender/now"); - // console.warn( - // "Slug date is after the valid date range for this calendar!!!" - // ); - // return [validEnd, "after"]; - // // Check if the slug is before the valid start date. - // } else if (isBefore(slugDate, validStart)) { - // console.warn( - // "Slug date is before the valid date range for this calendar!!!" - // ); - // return [validStart, "before"]; - // // router.push(`/${getYear(validStart)}/${getMonth(validStart) + 1}`); - // } else { - // console.info( - // "Slug date is within the valid date range for this calendar." - // ); - // return [slugDate, "valid"]; - // } - // }; - - useEffect(() => { - // Checking if the slug exists and is an array. - if (slug && Array.isArray(slug)) { - console.log(slug); - // Grabbing the slug length - const length = slug.length; - - // Parsing the slug to convert it from strings to numbers. - const parsedSlug = slug.map((e) => { - return parseInt(e); - }); - - // Checking if the slug has 2 to 3 numbers within the array. year/month/day. - if (length >= 2 && length <= 3) { - // Validate that the date is valid. - const newDate = validateDateInput(parsedSlug); - - // If anything is invalid the year/day/month would be set to 0. This checks for the invalid condition. - if (newDate.year === 0 || newDate.month === 0 || newDate.day === 0) { - setError(true); - // Set the date to the valid date. - } else { - // TODO: Make sure the date is within the valid range using the validateDateRange function. - // const validDate = new Date( - // newDate.year, - // newDate.month - 1, - // newDate.day - // ); - - // const validDateWithinRange = validateDateRange(validDate)[0]; - - // setDate({ - // ...{ - // year: getYear(validDateWithinRange), - // month: getMonth(validDateWithinRange) + 1, - // day: getDate(validDateWithinRange) - // } - // }); - - setDate({ - ...newDate - }); - } - } else if (length === 1) { - // Checking if the slug is not "now". - // ! Update this to include a check for "today". - if (slug[0] !== "now") { - setError(true); - return console.warn("improper date input:", slug); - } - } - } - }, [slug]); - - /** - * ? Pushing into the router within the use effect does not create the infinite loop. - * ? The way the validate date range or the way it is being used within a useEffect is what is creating the infinite loop. - */ - - // useEffect(() => { - // // Check is slug and date are valid. - // if (slug && date && date !== null) { - // // Check if the slug is an array and has a length of 2. - // if (Array.isArray(slug) && slug.length === 2) { - // const dateState = new Date(date.year, date.month - 1, date.day); - - // const parsedSlug = slug.map((e) => { - // return parseInt(e); - // }); - // const slugDate = new Date(parsedSlug[0], parsedSlug[1] - 1, 1); - - // if (!isSameMonth(dateState, slugDate)) { - // const validDateWithinRange = validateDateRange(dateState); - - // if (validDateRange[1] === "after") { - // router.push("/now"); - // } else { - // router.push( - // `/${getYear(validDateWithinRange[0])}/${getMonth( - // validDateWithinRange[0] - // )}` - // ); - // } - // } - // } - // } - // }, [date]); - - if (router.isFallback) { - return ; - } - - /** - * TODO: Update to disallow navigation in the future and too far in the past. - * Update so that a date given in the future take the user to /now to today's date. - * Update so that a date given beyond the last valid date will bring the user to the - * last month that has stickers within it (When filter is enabled) or to the creation date of the chart.. - */ - - return error ? ( - - ) : ( - - - ); -}; - -export default DateRoute; diff --git a/src/pages/calendar/index.tsx b/src/pages/calendar/index.tsx deleted file mode 100644 index ad0dc52..0000000 --- a/src/pages/calendar/index.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React, { useEffect } from "react"; -import { useRouter } from "next/router"; -import { Box, Heading } from "@chakra-ui/react"; - -const DateIndex = () => { - const router = useRouter(); - - useEffect(() => { - if (router) { - router.push("calendar/now"); - } - }, [router]); - - return ( -- -- - - ); -}; - -export default DateIndex; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 4c5825e..9b2d53b 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,130 +1,15 @@ -import React, { Fragment, useEffect, useRef } from "react"; +import React from "react"; import { Provider } from "react-redux"; import { store } from "../redux/store"; -import { useAppDispatch, useAppSelector } from "../redux/hooks"; -import { updateLoading } from "../features/calender"; -import { - clearTutorialCompleted, - getAndSetTutorial, - StorageState -} from "../features/tutorial"; import { Box } from "@chakra-ui/react"; -import { format, isAfter, isBefore, startOfDay } from "date-fns"; -import Calender from "../components/calender"; -import Tutorial from "../components/tutorial"; -import LoadingOverlay from "../components/loading/LoadingOverlay"; -import versionStringToNumber from "../../lib/versionStringToNumber"; + const IndexPage = (): JSX.Element => { - const currDateStr: string = useAppSelector( - (state) => state.calender.currDate - ); - const isLoading: boolean = useAppSelector( - (state) => state.calender.isLoading - ); - - const currDateObj: Date = new Date(currDateStr); - - // * Tutorial * // - const completedTutorial: boolean = useAppSelector( - (state) => state.tutorial.completedTutorial - ); - const tutorialCompletionInfo: StorageState = useAppSelector( - (state) => state.tutorial.storageState - ); - const dispatch = useAppDispatch(); - - // Get the completed tutorial cookie or have it set to false. - useEffect(() => { - if (completedTutorial === null && tutorialCompletionInfo === null) { - dispatch(getAndSetTutorial()); - } - - if (completedTutorial !== null) { - dispatch(updateLoading(false)); - } - }, [completedTutorial, dispatch, tutorialCompletionInfo]); - - // Checking the exp date of completed tutorial cookie and if the version completed is out of date. - useEffect(() => { - if (tutorialCompletionInfo !== null) { - const { exp, version } = tutorialCompletionInfo; - const currDateObj: Date = new Date(currDateStr); - - /** - * Checks if the completed tutorial cookie is expired. - * @param {Date} expDate the date when the completed tutorital cookie expires. - * @returns {boolean} true if the cookie is expired, false is otherwise. - */ - const expDateValidator = (expDate: Date): boolean => { - let flag = false; - - const startOfToday = startOfDay(currDateObj); - - if (isAfter(startOfToday, expDate)) { - flag = true; - } - - return flag; - }; - - /** - * Checks if the last time the completed tutorial is before an update to the tutorial. - * @param {number} lastVersionCompleted the version number the tutorial was last completed. - * @returns {boolean} true if the version given is before the changes to the tutorial, false otherwise. - */ - const versionValidator = (lastVersionCompleted: number): boolean => { - const lastVersionWithChangeStr: string = - process.env.NEXT_PUBLIC_NEW_TUTORIAL_VERSION; - const lastVersionWithChange: number = versionStringToNumber( - lastVersionWithChangeStr - ); - - const lastUpdatedDateStr: string = - process.env.NEXT_PUBLIC_LAST_UPDATE_DATE; - const lastUpdatedDate: Date = new Date(lastUpdatedDateStr); - - let flag = false; - - if ( - lastVersionCompleted < lastVersionWithChange || - (lastVersionCompleted === lastVersionWithChange && - isBefore(currDateObj, lastUpdatedDate)) - ) { - flag = true; - console.error("Completed cookie version is out of date."); - } - - return flag; - }; - - if (expDateValidator(new Date(exp)) || versionValidator(version)) { - console.warn("Version outdated or cookie expired."); - dispatch(clearTutorialCompleted()); - } - } - }, [currDateStr, dispatch, tutorialCompletionInfo]); - - // Current date - const currDate = useRef- Loading - -({ - year: parseInt(format(currDateObj, "y")), - month: parseInt(format(currDateObj, "M")), - day: parseInt(format(currDateObj, "d")) - }); return ( ); diff --git a/src/theme/AppTheme.ts b/src/theme/AppTheme.ts index 2d2321f..140f5b8 100644 --- a/src/theme/AppTheme.ts +++ b/src/theme/AppTheme.ts @@ -29,8 +29,7 @@ const AppTheme = extendTheme({ footer: "#0097a7", footerText: "black", content: "#2d3748", - kofi: "#FF5E5B", - twitter: "#1da1f2" + kofi: "#FF5E5B" }, loading: { overlayBg: "#171923cb", diff --git a/src/theme/layout/Header.tsx b/src/theme/layout/Header.tsx index a204165..2cb4bbb 100644 --- a/src/theme/layout/Header.tsx +++ b/src/theme/layout/Header.tsx @@ -14,7 +14,7 @@ import MobileNav from "./MobileNav"; import appLogo from "../../../public/images/logo.svg"; const Header = (): JSX.Element => { - const appName = "LCM Potty Chart"; + const appName = "Lucid Creations Media"; const appVersion = process.env.NEXT_PUBLIC_APP_VERSION_HEADER || ""; // Add transparency while not at the top of the page. From 651e39e5a55708f403b8f4b694947c2c2f1ed201 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:04:10 -0400 Subject: [PATCH 5/8] Added fonts to the app. --- package.json | 5 ++++ src/components/buttons/Custom.tsx | 6 +++-- src/components/buttons/KoFi.tsx | 4 ++-- src/pages/_app.tsx | 6 +++++ src/theme/AppTheme.ts | 18 +++++++++++++- src/theme/layout/DesktopNav.tsx | 6 +++-- src/theme/layout/Header.tsx | 10 ++++++-- src/theme/layout/MobileNav.tsx | 5 ++-- yarn.lock | 40 +++++++++++++++++++++++++++++++ 9 files changed, 89 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 4a36c79..f324fe7 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,11 @@ "@chakra-ui/react": "^2.8.2", "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", + "@fontsource/anonymous-pro": "^5.0.12", + "@fontsource/anybody": "^5.0.19", + "@fontsource/kalam": "^5.0.12", + "@fontsource/montserrat": "^5.0.17", + "@fontsource/tilt-neon": "^5.0.4", "@iconify/react": "^4.1.1", "@reduxjs/toolkit": "^2.2.1", "date-fns": "^3.3.1", diff --git a/src/components/buttons/Custom.tsx b/src/components/buttons/Custom.tsx index b96adae..af13ec8 100644 --- a/src/components/buttons/Custom.tsx +++ b/src/components/buttons/Custom.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { Box, Link, Button, BoxProps } from "@chakra-ui/react"; +import { Box, Link, Button, BoxProps, Text } from "@chakra-ui/react"; import { motion } from "framer-motion"; interface CustomButtonProps { @@ -14,7 +14,9 @@ const CustomButton = ({ text, link, type }: CustomButtonProps): JSX.Element => { return ( - {isLoading === true ? ( - - - ) : completedTutorial ? ( -- - - ) : ( - - )} + - + ); diff --git a/src/components/buttons/KoFi.tsx b/src/components/buttons/KoFi.tsx index 82b596d..aff4415 100644 --- a/src/components/buttons/KoFi.tsx +++ b/src/components/buttons/KoFi.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { Box, Link, Button, BoxProps } from "@chakra-ui/react"; +import { Box, Link, Button, BoxProps, Text } from "@chakra-ui/react"; import { Icon } from "@iconify/react"; import { motion } from "framer-motion"; @@ -14,7 +14,7 @@ const KoFi = (): JSX.Element => { rel="noopener" > }> - {"Fund The App"} +{"Fund The App"} diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index e4eb060..37894a9 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,3 +1,9 @@ +import "@fontsource/montserrat/500.css"; +import "@fontsource/tilt-neon/400.css"; +import "@fontsource/anonymous-pro/400.css"; +import "@fontsource/kalam/400.css"; +import "@fontsource/anybody/400.css"; + import type { AppProps } from "next/app"; import React from "react"; import { ChakraProvider } from "@chakra-ui/react"; diff --git a/src/theme/AppTheme.ts b/src/theme/AppTheme.ts index 140f5b8..ed7e54d 100644 --- a/src/theme/AppTheme.ts +++ b/src/theme/AppTheme.ts @@ -1,5 +1,10 @@ import { extendTheme, ThemeConfig } from "@chakra-ui/react"; // import { createBreakpoints } from "@chakra-ui/theme-tools"; +import "@fontsource/montserrat"; +import "@fontsource/tilt-neon"; +import "@fontsource/anonymous-pro"; +import "@fontsource/kalam"; +import "@fontsource/anybody"; import buttons from "./components/buttonStyles"; const config: ThemeConfig = { @@ -15,6 +20,14 @@ const config: ThemeConfig = { // "2xl": "100em", // }); +const fonts = { + heading: `'Tilt Neon', system-ui`, + body: `'Montserrat', sans-serif`, + mono: `'Anonymous Pro', monospace`, + brand: `'Kalam', cursive`, + LCM: `'Anybody', system-ui` +}; + const AppTheme = extendTheme({ config, colors: { @@ -22,6 +35,7 @@ const AppTheme = extendTheme({ main: "#3138dc", primary: "#0068ff", secondary: "#0086ff", + cosmic: "#314a9e", hover: "#00aec1", warning: "#ffbd48", danger: "#FC8181", @@ -46,8 +60,10 @@ const AppTheme = extendTheme({ }, components: { Button: buttons - } + }, + fonts // breakpoints, }); export default AppTheme; +export { fonts }; diff --git a/src/theme/layout/DesktopNav.tsx b/src/theme/layout/DesktopNav.tsx index ddafe4c..7c6ef1f 100644 --- a/src/theme/layout/DesktopNav.tsx +++ b/src/theme/layout/DesktopNav.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { Button, HStack, Link } from "@chakra-ui/react"; +import { Button, HStack, Link, Text } from "@chakra-ui/react"; import navItems, { NavItem } from "./navItems"; const DesktopNav = (): JSX.Element => { @@ -18,7 +18,9 @@ const DesktopNav = (): JSX.Element => { {navItems.map((navItem: NavItem) => { return ( - + ); })} diff --git a/src/theme/layout/Header.tsx b/src/theme/layout/Header.tsx index 2cb4bbb..485d2c3 100644 --- a/src/theme/layout/Header.tsx +++ b/src/theme/layout/Header.tsx @@ -12,6 +12,7 @@ import { Icon } from "@iconify/react"; import DesktopNav from "./DesktopNav"; import MobileNav from "./MobileNav"; import appLogo from "../../../public/images/logo.svg"; +import { fonts } from "../AppTheme"; const Header = (): JSX.Element => { const appName = "Lucid Creations Media"; @@ -117,7 +118,7 @@ const Header = (): JSX.Element => { >- + {appName} @@ -151,7 +152,12 @@ const Header = (): JSX.Element => { }} > - + {appName} diff --git a/src/theme/layout/MobileNav.tsx b/src/theme/layout/MobileNav.tsx index e0a604f..5016e2b 100644 --- a/src/theme/layout/MobileNav.tsx +++ b/src/theme/layout/MobileNav.tsx @@ -4,7 +4,8 @@ import { Link, MenuDivider, MenuItem, - MenuList + MenuList, + Text } from "@chakra-ui/react"; import navItems, { NavItem } from "./navItems"; @@ -42,7 +43,7 @@ const MobileNav: FC = ({ updateOpen }: MobileNavProps) => { updateOpen(false)} href={navItem[1]}> {index === 0 ? : } diff --git a/yarn.lock b/yarn.lock index d6866bc..eb6ad92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1494,6 +1494,41 @@ __metadata: languageName: node linkType: hard +"@fontsource/anonymous-pro@npm:^5.0.12": + version: 5.0.12 + resolution: "@fontsource/anonymous-pro@npm:5.0.12" + checksum: 10/3604c041821d7b26664323a5d5a269ee096486e5f66168d37188093eadf57b95064cc2dde1c381134d9661125e911c00d4dee4a61c5441006aead8e0f80c81c2 + languageName: node + linkType: hard + +"@fontsource/anybody@npm:^5.0.19": + version: 5.0.19 + resolution: "@fontsource/anybody@npm:5.0.19" + checksum: 10/e39d4311232eb92e4189eb8e1e345b19414e6c0706d8d000ba0e3a4411feeb50c17897c57d22405e895a7f40fb04f22faf2ebc1716b96b305ed7803b56c6003d + languageName: node + linkType: hard + +"@fontsource/kalam@npm:^5.0.12": + version: 5.0.12 + resolution: "@fontsource/kalam@npm:5.0.12" + checksum: 10/dc4fbd2ff38593c233330dea4d82ec62fd585c05883155a3615c3bb7b78ba62c6ecc3fa4336ee57bd995c475e1921efb01c306a54afdf1d14cbcdb46df52de76 + languageName: node + linkType: hard + +"@fontsource/montserrat@npm:^5.0.17": + version: 5.0.17 + resolution: "@fontsource/montserrat@npm:5.0.17" + checksum: 10/8d91c3b94eaff379396403b3859f0e8a3b4ab2e44808f6a036c410c8d19d031b7442ee587d1cca38e7389b4f3587af358bf41bf70ec8c62dc4dcb2cb27637a43 + languageName: node + linkType: hard + +"@fontsource/tilt-neon@npm:^5.0.4": + version: 5.0.4 + resolution: "@fontsource/tilt-neon@npm:5.0.4" + checksum: 10/07b5fac6457b2b14792ba84403f9943b995608d7e3113f9647ffc1635422a2dcd9745585404251cf2cbd9017c35fbeeaa32e38c43551cb1e2a3af159c6564292 + languageName: node + linkType: hard + "@humanwhocodes/config-array@npm:^0.11.14": version: 0.11.14 resolution: "@humanwhocodes/config-array@npm:0.11.14" @@ -4078,6 +4113,11 @@ __metadata: "@chakra-ui/react": "npm:^2.8.2" "@emotion/react": "npm:^11.11.3" "@emotion/styled": "npm:^11.11.0" + "@fontsource/anonymous-pro": "npm:^5.0.12" + "@fontsource/anybody": "npm:^5.0.19" + "@fontsource/kalam": "npm:^5.0.12" + "@fontsource/montserrat": "npm:^5.0.17" + "@fontsource/tilt-neon": "npm:^5.0.4" "@iconify/react": "npm:^4.1.1" "@reduxjs/toolkit": "npm:^2.2.1" "@types/node": "npm:^20.11.20" From 408ec04a5893a4cd5e73a52a54b01d7df5f8fd0d Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:04:28 -0400 Subject: [PATCH 6/8] Added hero with temp placeholder --- src/components/hero/WhatIMakeBanner.tsx | 82 +++++++++++++++++++++++++ src/components/hero/index.tsx | 30 +++++++++ src/pages/index.tsx | 5 +- src/theme/components/BrandText.tsx | 29 +++++++++ 4 files changed, 143 insertions(+), 3 deletions(-) create mode 100644 src/components/hero/WhatIMakeBanner.tsx create mode 100644 src/components/hero/index.tsx create mode 100644 src/theme/components/BrandText.tsx diff --git a/src/components/hero/WhatIMakeBanner.tsx b/src/components/hero/WhatIMakeBanner.tsx new file mode 100644 index 0000000..b756d0c --- /dev/null +++ b/src/components/hero/WhatIMakeBanner.tsx @@ -0,0 +1,82 @@ +import React from "react"; +import { Flex, HStack, Text, VStack } from "@chakra-ui/react"; +import BrandText from "../../theme/components/BrandText"; +import { Icon } from "@iconify/react"; + +const WhatIMakeBanner = (): JSX.Element => { + return ( + + + ); +}; + +export default WhatIMakeBanner; diff --git a/src/components/hero/index.tsx b/src/components/hero/index.tsx new file mode 100644 index 0000000..835a8f2 --- /dev/null +++ b/src/components/hero/index.tsx @@ -0,0 +1,30 @@ +import { Heading, VStack } from "@chakra-ui/react"; +import React from "react"; +import WhatIMakeBanner from "./WhatIMakeBanner"; + +const TempHero = (): JSX.Element => { + return ( ++ ++ + ++ ++ + ++ ++ ++ + + ++ ++ + + ++ + ++ ++ ++ + + ++ ++ + + ++ + ++ ++ ++ + + ++ ++ + + + ); +}; + +export default TempHero; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 9b2d53b..0a6bbe6 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -2,14 +2,13 @@ import React from "react"; import { Provider } from "react-redux"; import { store } from "../redux/store"; import { Box } from "@chakra-ui/react"; - +import TempHero from "../components/hero"; const IndexPage = (): JSX.Element => { - return (+ + ++ {"Placeholder section"} + +); diff --git a/src/theme/components/BrandText.tsx b/src/theme/components/BrandText.tsx new file mode 100644 index 0000000..5eef939 --- /dev/null +++ b/src/theme/components/BrandText.tsx @@ -0,0 +1,29 @@ +import { Heading, Text } from "@chakra-ui/react"; +import React from "react"; +import { fonts } from "../AppTheme"; + +interface BrandTextProps { + type: "Heading" | "Text"; + text: string; + headerLevel?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6"; + size?: string; +} + +const BrandText = ({ + type, + text, + headerLevel, + size +}: BrandTextProps): JSX.Element => { + return type === "Heading" ? ( + - + + {text} + + ) : ( ++ {text} + + ); +}; + +export default BrandText; From b425c6a226f31cd26c9274d47e887fd1ecfa0abf Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Mon, 11 Mar 2024 18:24:06 -0400 Subject: [PATCH 7/8] Update logo on hero banner. --- src/components/hero/WhatIMakeBanner.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/hero/WhatIMakeBanner.tsx b/src/components/hero/WhatIMakeBanner.tsx index b756d0c..a4db451 100644 --- a/src/components/hero/WhatIMakeBanner.tsx +++ b/src/components/hero/WhatIMakeBanner.tsx @@ -68,7 +68,7 @@ const WhatIMakeBanner = (): JSX.Element => {From 7de6e2908691da40c49431b741d7347c446c3c68 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Sat, 16 Mar 2024 18:14:46 -0400 Subject: [PATCH 8/8] Added an about the project section and env files. --- example.env | 17 + example.env.development | 0 example.env.local | 14 + package.json | 20 +- src/components/hero/AboutProject.tsx | 27 + src/components/hero/index.tsx | 4 +- yarn.lock | 811 +++++++++++++++++++++------ 7 files changed, 721 insertions(+), 172 deletions(-) create mode 100644 example.env create mode 100644 example.env.development create mode 100644 example.env.local create mode 100644 src/components/hero/AboutProject.tsx diff --git a/example.env b/example.env new file mode 100644 index 0000000..40ef6ec --- /dev/null +++ b/example.env @@ -0,0 +1,17 @@ +# Environment variables declared in this file are automatically made available to Prisma. +# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema + +# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. +# See the documentation for all the connection string options: https://pris.ly/d/connection-strings + +# This is for local/dev. Make sure to update ./prisma/schema.prisma to use the dev config. +DATABASE_URL="postgresql://postgres:randompassword@localhost:5432/dbname?schema=public" + +# These are values from Vercel. Make sure to update ./prisma/schema.prisma to use the vercel config. +POSTGRES_DATABASE="dbname" +POSTGRES_PASSWORD="randompassword" +POSTGRES_HOST="region.postgres.vercel-storage.com" +POSTGRES_USER="postgres" +POSTGRES_PRISMA_URL="postgres://postgres:randompassword@region.postgres.vercel-storage.com/dbname?pgbouncer=true&connect_timeout=15" +POSTGRES_URL_NON_POOLING="postgres://postgres:randompassword@region.postgres.vercel-storage.com/dbname" +POSTGRES_URL="postgres://postgres:randompassword@region.postgres.vercel-storage.com/dbname" \ No newline at end of file diff --git a/example.env.development b/example.env.development new file mode 100644 index 0000000..e69de29 diff --git a/example.env.local b/example.env.local new file mode 100644 index 0000000..cafda3b --- /dev/null +++ b/example.env.local @@ -0,0 +1,14 @@ +# This section is only applicable during the beta and will be removed when the app is completed. +NEXT_PUBLIC_APP_VERSION="0.2.0" + +# Auth Secrets +NEXTAUTH_URL=http://localhost:3000 +NEXTAUTH_SECRET="" +# Used when sending emails to users +EMAIL_SERVER_USER="" +EMAIL_SERVER_PASSWORD="" +SMTP_SERVER_HOST="" +SMTP_SERVER_PORT="" +EMAIL_FROM="" +GOOGLE_ID="" +GOOGLE_SECRET="" \ No newline at end of file diff --git a/package.json b/package.json index f324fe7..8ed1094 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ }, "dependencies": { "@chakra-ui/react": "^2.8.2", - "@emotion/react": "^11.11.3", + "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.0", "@fontsource/anonymous-pro": "^5.0.12", "@fontsource/anybody": "^5.0.19", @@ -26,29 +26,29 @@ "@fontsource/tilt-neon": "^5.0.4", "@iconify/react": "^4.1.1", "@reduxjs/toolkit": "^2.2.1", - "date-fns": "^3.3.1", + "date-fns": "^3.5.0", "formik": "^2.4.5", - "framer-motion": "^11.0.6", - "next": "14.1.0", + "framer-motion": "^11.0.14", + "next": "14.1.3", "react": "^18.2.0", "react-dom": "^18.2.0", "react-redux": "^9.1.0", "sharp": "^0.33.2" }, "devDependencies": { - "@types/node": "^20.11.20", - "@types/react": "^18.2.58", + "@types/node": "^20.11.28", + "@types/react": "^18.2.66", "@types/react-redux": "^7.1.33", - "@typescript-eslint/eslint-plugin": "^7.0.2", - "@typescript-eslint/parser": "^7.0.2", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", "eslint": "^8.57.0", "eslint-config-next": "<13.4.9", "eslint-config-prettier": "^9.1.0", "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "^4.6.0", "prettier": "^3.2.5", - "typescript": "^5.3.3" + "typescript": "^5.4.2" }, "packageManager": "yarn@4.1.0" } diff --git a/src/components/hero/AboutProject.tsx b/src/components/hero/AboutProject.tsx new file mode 100644 index 0000000..08bffca --- /dev/null +++ b/src/components/hero/AboutProject.tsx @@ -0,0 +1,27 @@ +import { Button, Heading, Text, Link, VStack } from "@chakra-ui/react"; +import React from "react"; + +const AboutProject = (): JSX.Element => { + const description = `This project and website is a replacement for the current Lucid Creations Media Website. It is going to being designed to be faster, more user friendly, and better accessible compared to Wordpress. This platform is being built on React and Next.js`; + + return ( + - + + + ); +}; + +export default AboutProject; diff --git a/src/components/hero/index.tsx b/src/components/hero/index.tsx index 835a8f2..2086484 100644 --- a/src/components/hero/index.tsx +++ b/src/components/hero/index.tsx @@ -1,6 +1,7 @@ import { Heading, VStack } from "@chakra-ui/react"; import React from "react"; import WhatIMakeBanner from "./WhatIMakeBanner"; +import AboutProject from "./AboutProject"; const TempHero = (): JSX.Element => { return ( @@ -13,9 +14,10 @@ const TempHero = (): JSX.Element => { alignContent="center" >{"About This Website"} +{description} + + + ++ diff --git a/yarn.lock b/yarn.lock index eb6ad92..df19b24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1316,15 +1316,6 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^0.8.2": - version: 0.8.8 - resolution: "@emotion/is-prop-valid@npm:0.8.8" - dependencies: - "@emotion/memoize": "npm:0.7.4" - checksum: 10/e85bdeb9d9d23de422f271e0f5311a0142b15055bb7e610440dbf250f0cdfd049df88af72a49e2c6081954481f1cbeca9172e2116ff536b38229397dfbed8082 - languageName: node - linkType: hard - "@emotion/is-prop-valid@npm:^1.2.1": version: 1.2.1 resolution: "@emotion/is-prop-valid@npm:1.2.1" @@ -1334,13 +1325,6 @@ __metadata: languageName: node linkType: hard -"@emotion/memoize@npm:0.7.4": - version: 0.7.4 - resolution: "@emotion/memoize@npm:0.7.4" - checksum: 10/4e3920d4ec95995657a37beb43d3f4b7d89fed6caa2b173a4c04d10482d089d5c3ea50bbc96618d918b020f26ed6e9c4026bbd45433566576c1f7b056c3271dc - languageName: node - linkType: hard - "@emotion/memoize@npm:^0.8.1": version: 0.8.1 resolution: "@emotion/memoize@npm:0.8.1" @@ -1348,9 +1332,9 @@ __metadata: languageName: node linkType: hard -"@emotion/react@npm:^11.11.3": - version: 11.11.3 - resolution: "@emotion/react@npm:11.11.3" +"@emotion/react@npm:^11.11.4": + version: 11.11.4 + resolution: "@emotion/react@npm:11.11.4" dependencies: "@babel/runtime": "npm:^7.18.3" "@emotion/babel-plugin": "npm:^11.11.0" @@ -1365,7 +1349,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/f7b98557b7d5236296dda48c2fc8a6cde4af7399758496e9f710f85a80c7d66fee1830966caabd7b237601bfdaca4e1add8c681d1ae4cc3d497fe88958d541c4 + checksum: 10/e7da3a1ddc1d72a4179010bdfd17423c13b1a77bf83a8b18271e919fd382d08c62dc2313ed5347acfd1ef85bb1bae8932597647a986e8a1ea1462552716cd495 languageName: node linkType: hard @@ -1747,10 +1731,10 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.1.0": - version: 14.1.0 - resolution: "@next/env@npm:14.1.0" - checksum: 10/8651faab7827026fe9df32f32f3dc743ca93707fabe6ec8e75ee60bd94781afee8093514e2108d2b2f03198d0a74fc6152d9e73ea01125e89402f068a8516915 +"@next/env@npm:14.1.3": + version: 14.1.3 + resolution: "@next/env@npm:14.1.3" + checksum: 10/b95c55530f5fb8cfb2a48a23485fd4cb584bff8620637785d7dd068c0d72d4dc0869023ed509f52fead558839f2efae4f7370a2c2fd87540201629fc39a421a5 languageName: node linkType: hard @@ -1763,65 +1747,65 @@ __metadata: languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-darwin-arm64@npm:14.1.0" +"@next/swc-darwin-arm64@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-darwin-arm64@npm:14.1.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-darwin-x64@npm:14.1.0" +"@next/swc-darwin-x64@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-darwin-x64@npm:14.1.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-linux-arm64-gnu@npm:14.1.0" +"@next/swc-linux-arm64-gnu@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-linux-arm64-gnu@npm:14.1.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-linux-arm64-musl@npm:14.1.0" +"@next/swc-linux-arm64-musl@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-linux-arm64-musl@npm:14.1.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-linux-x64-gnu@npm:14.1.0" +"@next/swc-linux-x64-gnu@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-linux-x64-gnu@npm:14.1.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-linux-x64-musl@npm:14.1.0" +"@next/swc-linux-x64-musl@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-linux-x64-musl@npm:14.1.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-win32-arm64-msvc@npm:14.1.0" +"@next/swc-win32-arm64-msvc@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-win32-arm64-msvc@npm:14.1.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-win32-ia32-msvc@npm:14.1.0" +"@next/swc-win32-ia32-msvc@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-win32-ia32-msvc@npm:14.1.3" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-win32-x64-msvc@npm:14.1.0" +"@next/swc-win32-x64-msvc@npm:14.1.3": + version: 14.1.3 + resolution: "@next/swc-win32-x64-msvc@npm:14.1.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1936,12 +1920,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.11.20": - version: 20.11.20 - resolution: "@types/node@npm:20.11.20" +"@types/node@npm:^20.11.28": + version: 20.11.28 + resolution: "@types/node@npm:20.11.28" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/ff449bdc94810dadb54e0f77dd587c6505ef79ffa5a208c16eb29b223365b188f4c935a3abaf0906a01d05257c3da1f72465594a841d35bcf7b6deac7a6938fb + checksum: 10/b03f69213ac6e7cd5f7efa86139f24e23ff70a12fed04adeac5413b62d6982343ce94906f74c401c5afefda48d36ae0efd6a575240996b15a5cf80b456ab4221 languageName: node linkType: hard @@ -1982,14 +1966,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^18.2.58": - version: 18.2.58 - resolution: "@types/react@npm:18.2.58" +"@types/react@npm:^18.2.66": + version: 18.2.66 + resolution: "@types/react@npm:18.2.66" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 10/ec5e1a7d8acc55551efec7a3d63441d24c7e94b66bf8039944541a8408048668e51b7b4b0b6e8303cdea271b7c6da242cdc7bb8ca501eedf822956edbdbfc67e + checksum: 10/8a82bda6c254681536fa8348dc15d52345d8203d5d322406feef865f74ebfe2475ebde0be4e2f9a18ffbb587dac946dfb5d0974b598779ff282259aff7e8209a languageName: node linkType: hard @@ -2014,15 +1998,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/eslint-plugin@npm:7.0.2" +"@typescript-eslint/eslint-plugin@npm:^7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.2.0" dependencies: "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:7.0.2" - "@typescript-eslint/type-utils": "npm:7.0.2" - "@typescript-eslint/utils": "npm:7.0.2" - "@typescript-eslint/visitor-keys": "npm:7.0.2" + "@typescript-eslint/scope-manager": "npm:7.2.0" + "@typescript-eslint/type-utils": "npm:7.2.0" + "@typescript-eslint/utils": "npm:7.2.0" + "@typescript-eslint/visitor-keys": "npm:7.2.0" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.4" @@ -2035,7 +2019,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/430b2f7ca36ee73dc75c1d677088709f3c9d5bbb4fffa3cfbe1b7d63979ee397f7a4a2a1386e05a04991500fa0ab0dd5272e8603a2b20f42e4bf590603500858 + checksum: 10/c50366021d63dc0f31fbd4673679d41eeaf53e1d411330742ea6e36bc854d5d9d52531df9efe708078e5c798fb9a6fca45473a451c197f46ac04050d47c9a9d2 languageName: node linkType: hard @@ -2056,21 +2040,21 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/parser@npm:7.0.2" +"@typescript-eslint/parser@npm:^7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/parser@npm:7.2.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.0.2" - "@typescript-eslint/types": "npm:7.0.2" - "@typescript-eslint/typescript-estree": "npm:7.0.2" - "@typescript-eslint/visitor-keys": "npm:7.0.2" + "@typescript-eslint/scope-manager": "npm:7.2.0" + "@typescript-eslint/types": "npm:7.2.0" + "@typescript-eslint/typescript-estree": "npm:7.2.0" + "@typescript-eslint/visitor-keys": "npm:7.2.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/18d6e1bda64013f7d66164164c57a10390f7979db55b265062ae9337e11e0921bffca10870e252cd0bd198f79ffa2e87a652e57110e5b1b4cc738453154c205c + checksum: 10/2236acd9f794ccb34062309f3d6fa2a0e34ac6560262213807a11fb42592011cd13ff3290a2fdbdf441fb3d248cbe23383e6c7e6c744d1cacc916159d885204f languageName: node linkType: hard @@ -2084,22 +2068,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/scope-manager@npm:7.0.2" +"@typescript-eslint/scope-manager@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/scope-manager@npm:7.2.0" dependencies: - "@typescript-eslint/types": "npm:7.0.2" - "@typescript-eslint/visitor-keys": "npm:7.0.2" - checksum: 10/773ea6e61f741777e69a469641f3db0d3c2301c0102667825fb235ed5a65c95f6d6b31b19e734b9a215acc0c7c576c65497635b8d5928eeddb58653ceb13d2d5 + "@typescript-eslint/types": "npm:7.2.0" + "@typescript-eslint/visitor-keys": "npm:7.2.0" + checksum: 10/9b1d43c87b0fc269df1820ebcbdb08e1c5c8cc719a6af8298d87077ca78cf5ebbfa8caa6eb5141f4dfb4cbb3a641291c50c73a213faab90bc43d34abfc68a1fe languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/type-utils@npm:7.0.2" +"@typescript-eslint/type-utils@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/type-utils@npm:7.2.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.0.2" - "@typescript-eslint/utils": "npm:7.0.2" + "@typescript-eslint/typescript-estree": "npm:7.2.0" + "@typescript-eslint/utils": "npm:7.2.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.0.1" peerDependencies: @@ -2107,7 +2091,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/63bf19c9f5bbcb0f3e127f509d85dc49be4e5e51781d78f58c96786089e7c909b25d35d0248a6a758e2f7d5b5223d2262c2d597ab71f226af6beb499ae950645 + checksum: 10/1c4efcd068987ed5bbf6f3dda1fed313eec84fc0840af6e00593338cc2605c96ab760bf83f868271a6b5fcde8a44d00e21b70a8607474a4df9d43d29775bb235 languageName: node linkType: hard @@ -2118,10 +2102,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/types@npm:7.0.2" - checksum: 10/2cba8a0355cc7357db142fa597d02cf39e1d1cb0ec87c80e91daaa2b87f2a794d2649def9d7b2aa435691c3810d2cbd4cdc21668b19b991863f0d54d4a22da82 +"@typescript-eslint/types@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/types@npm:7.2.0" + checksum: 10/d70cbd77f21caddbb1c3519bb523b5217a300d52682e9acfa9ff645d7250f7f07653f48930f531675216e848b5f83cb9b14cf63db76239cec1159550a989e16d languageName: node linkType: hard @@ -2143,12 +2127,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/typescript-estree@npm:7.0.2" +"@typescript-eslint/typescript-estree@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.2.0" dependencies: - "@typescript-eslint/types": "npm:7.0.2" - "@typescript-eslint/visitor-keys": "npm:7.0.2" + "@typescript-eslint/types": "npm:7.2.0" + "@typescript-eslint/visitor-keys": "npm:7.2.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -2158,24 +2142,24 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/307080e29c22fc69f0ce7ab7101e1629e05f45a9e541c250e03d06b61336ab0ccb5f0a7354ee3da4e38d5cade4dd2fb7bb396cd7cbe74c2c4b3e29706a70abcc + checksum: 10/77a81dc903da1ccb302c96bf7f845f297d87ab7871849bfabdddee51583646a1147923fc23c550c6c783229bc7bda37a3ea147478fa08b3847d0440a34587198 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/utils@npm:7.0.2" +"@typescript-eslint/utils@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/utils@npm:7.2.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" "@types/json-schema": "npm:^7.0.12" "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:7.0.2" - "@typescript-eslint/types": "npm:7.0.2" - "@typescript-eslint/typescript-estree": "npm:7.0.2" + "@typescript-eslint/scope-manager": "npm:7.2.0" + "@typescript-eslint/types": "npm:7.2.0" + "@typescript-eslint/typescript-estree": "npm:7.2.0" semver: "npm:^7.5.4" peerDependencies: eslint: ^8.56.0 - checksum: 10/e68bac777419cd529371f7f29f534efaeca130c90ed9723bfc7aac451d61ca3fc4ebd310e2c015e29e8dc7be4734ae46258ca8755897d7f5e3bb502660d5372f + checksum: 10/4852d43f1e0ca7e4914fef6cb5984a472d77af6fafcfad18905c0ba2ac5539a7ba8e72a4b3f7cbff712733f9cf8e8af790b4875f944aae1006ca297f8e041d32 languageName: node linkType: hard @@ -2189,13 +2173,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript-eslint/visitor-keys@npm:7.0.2" +"@typescript-eslint/visitor-keys@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.2.0" dependencies: - "@typescript-eslint/types": "npm:7.0.2" + "@typescript-eslint/types": "npm:7.2.0" eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/da6c1b0729af99216cde3a65d4e91584a81fc6c9dff7ba291089f01bf7262de375f58c4c4246e5fbc29f51258db7725d9c830f82ccbd1cda812fd13c51480cda + checksum: 10/e0c9c7a9bb1ae93149e7a4816aed12651fd7374d0eb17e1f45348dbfddd8ee7014d3de35b40bc46b9df73cc1c9053aaf5d82b43270d93a0b551ed14e8afde37a languageName: node linkType: hard @@ -2319,6 +2303,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.5" + is-array-buffer: "npm:^3.0.4" + checksum: 10/53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + languageName: node + linkType: hard + "array-includes@npm:^3.1.6, array-includes@npm:^3.1.7": version: 3.1.7 resolution: "array-includes@npm:3.1.7" @@ -2339,6 +2333,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.findlast@npm:^1.2.4": + version: 1.2.4 + resolution: "array.prototype.findlast@npm:1.2.4" + dependencies: + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.3.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/1711e48058cabbad24cb694fa3721b760e56004758142c439880a19b9b206e3584b94bbad41e5f68e0da8785db1d09250061a46769baa90a0d2e09c05987c82d + languageName: node + linkType: hard + "array.prototype.findlastindex@npm:^1.2.3": version: 1.2.3 resolution: "array.prototype.findlastindex@npm:1.2.3" @@ -2376,6 +2383,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.toreversed@npm:^1.1.2": + version: 1.1.2 + resolution: "array.prototype.toreversed@npm:1.1.2" + dependencies: + call-bind: "npm:^1.0.2" + define-properties: "npm:^1.2.0" + es-abstract: "npm:^1.22.1" + es-shim-unscopables: "npm:^1.0.0" + checksum: 10/b4076d687ddc22c191863ce105d320cc4b0e1435bfda9ffeeff681682fe88fa6fe30e0d2ae94fa4b2d7fad901e1954ea4f75c1cab217db4848da84a2b5889192 + languageName: node + linkType: hard + "array.prototype.tosorted@npm:^1.1.1": version: 1.1.2 resolution: "array.prototype.tosorted@npm:1.1.2" @@ -2389,6 +2408,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.tosorted@npm:^1.1.3": + version: 1.1.3 + resolution: "array.prototype.tosorted@npm:1.1.3" + dependencies: + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.1.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/9a5b7909a9ddd02a5f5489911766c314a11fb40f8f5106bdbedf6c21898763faeb78ba3af53f7038f288de9161d2605ad10d8b720e07f71a7ed1de49f39c0897 + languageName: node + linkType: hard + "arraybuffer.prototype.slice@npm:^1.0.2": version: 1.0.2 resolution: "arraybuffer.prototype.slice@npm:1.0.2" @@ -2404,6 +2436,22 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.2.1" + get-intrinsic: "npm:^1.2.3" + is-array-buffer: "npm:^3.0.4" + is-shared-array-buffer: "npm:^1.0.2" + checksum: 10/0221f16c1e3ec7b67da870ee0e1f12b825b5f9189835392b59a22990f715827561a4f4cd5330dc7507de272d8df821be6cd4b0cb569babf5ea4be70e365a2f3d + languageName: node + linkType: hard + "ast-types-flow@npm:^0.0.8": version: 0.0.8 resolution: "ast-types-flow@npm:0.0.8" @@ -2427,6 +2475,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab + languageName: node + linkType: hard + "axe-core@npm:=4.7.0": version: 4.7.0 resolution: "axe-core@npm:4.7.0" @@ -2509,6 +2566,19 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.1" + checksum: 10/cd6fe658e007af80985da5185bff7b55e12ef4c2b6f41829a26ed1eef254b1f1c12e3dfd5b2b068c6ba8b86aba62390842d81752e67dcbaec4f6f76e7113b6b7 + languageName: node + linkType: hard + "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -2687,10 +2757,43 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^3.3.1": - version: 3.3.1 - resolution: "date-fns@npm:3.3.1" - checksum: 10/98231936765dfb6fc6897676319b500a06a39f051b2c3ecbdd541a07ce9b1344b770277b8bfb1049fb7a2f70bf365ac8e6f1e2bb452b10e1a8101d518ca7f95d +"data-view-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-buffer@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10/5919a39a18ee919573336158fd162fdf8ada1bc23a139f28543fd45fac48e0ea4a3ad3bfde91de124d4106e65c4a7525f6a84c20ba0797ec890a77a96d13a82a + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.0": + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10/f33c65e58d8d0432ad79761f2e8a579818d724b5dc6dc4e700489b762d963ab30873c0f1c37d8f2ed12ef51c706d1195f64422856d25f067457aeec50cc40aac + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "data-view-byte-offset@npm:1.0.0" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10/96f34f151bf02affb7b9f98762fb7aca1dd5f4553cb57b80bce750ca609c15d33ca659568ef1d422f7e35680736cbccb893a3d4b012760c758c1446bbdc4c6db + languageName: node + linkType: hard + +"date-fns@npm:^3.5.0": + version: 3.5.0 + resolution: "date-fns@npm:3.5.0" + checksum: 10/d37eff45f97e6c6745072ff2733c63fffa89e91d4bf407c368641b83c05eaa5222f3f1ba2d7f88862c4fc26fbcf4ad2ffac4526ae6a6414c10fcaea411ab71c3 languageName: node linkType: hard @@ -2740,6 +2843,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10/abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae + languageName: node + linkType: hard + "define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" @@ -2872,6 +2986,75 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0": + version: 1.23.0 + resolution: "es-abstract@npm:1.23.0" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + arraybuffer.prototype.slice: "npm:^1.0.3" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + data-view-buffer: "npm:^1.0.1" + data-view-byte-length: "npm:^1.0.0" + data-view-byte-offset: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + es-set-tostringtag: "npm:^2.0.3" + es-to-primitive: "npm:^1.2.1" + function.prototype.name: "npm:^1.1.6" + get-intrinsic: "npm:^1.2.4" + get-symbol-description: "npm:^1.0.2" + globalthis: "npm:^1.0.3" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.0.3" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.1" + internal-slot: "npm:^1.0.7" + is-array-buffer: "npm:^3.0.4" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.1" + is-negative-zero: "npm:^2.0.3" + is-regex: "npm:^1.1.4" + is-shared-array-buffer: "npm:^1.0.3" + is-string: "npm:^1.0.7" + is-typed-array: "npm:^1.1.13" + is-weakref: "npm:^1.0.2" + object-inspect: "npm:^1.13.1" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.5" + regexp.prototype.flags: "npm:^1.5.2" + safe-array-concat: "npm:^1.1.0" + safe-regex-test: "npm:^1.0.3" + string.prototype.trim: "npm:^1.2.8" + string.prototype.trimend: "npm:^1.0.7" + string.prototype.trimstart: "npm:^1.0.7" + typed-array-buffer: "npm:^1.0.2" + typed-array-byte-length: "npm:^1.0.1" + typed-array-byte-offset: "npm:^1.0.2" + typed-array-length: "npm:^1.0.5" + unbox-primitive: "npm:^1.0.2" + which-typed-array: "npm:^1.1.14" + checksum: 10/b66cec32fcb896c7a3bbb7cb717f3f6bbbb73efe1c6003f0d7a899aecc358feed38ec2cad55e2a1d71a4a95ec7e7cc1dbbca34368deb0b98e36fe02cc5559b31 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: 10/f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + languageName: node + linkType: hard + +"es-errors@npm:^1.1.0, es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 + languageName: node + linkType: hard + "es-iterator-helpers@npm:^1.0.12, es-iterator-helpers@npm:^1.0.15": version: 1.0.15 resolution: "es-iterator-helpers@npm:1.0.15" @@ -2894,6 +3077,28 @@ __metadata: languageName: node linkType: hard +"es-iterator-helpers@npm:^1.0.17": + version: 1.0.18 + resolution: "es-iterator-helpers@npm:1.0.18" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.0" + es-errors: "npm:^1.3.0" + es-set-tostringtag: "npm:^2.0.3" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + globalthis: "npm:^1.0.3" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.0.3" + has-symbols: "npm:^1.0.3" + internal-slot: "npm:^1.0.7" + iterator.prototype: "npm:^1.1.2" + safe-array-concat: "npm:^1.1.2" + checksum: 10/a4fd067e148736fbe6a9883f449e0de88be14a4dff9065c457572ede10ba02a4a15c4ae18b9b7baa5c868860d2be9a6764906c3308135e57ec5bfd386bbd2836 + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.1": version: 2.0.2 resolution: "es-set-tostringtag@npm:2.0.2" @@ -2905,7 +3110,18 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0": +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: "npm:^1.2.4" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.1" + checksum: 10/7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: @@ -3076,7 +3292,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react@npm:^7.31.7, eslint-plugin-react@npm:^7.33.2": +"eslint-plugin-react@npm:^7.31.7": version: 7.33.2 resolution: "eslint-plugin-react@npm:7.33.2" dependencies: @@ -3102,6 +3318,34 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react@npm:^7.34.1": + version: 7.34.1 + resolution: "eslint-plugin-react@npm:7.34.1" + dependencies: + array-includes: "npm:^3.1.7" + array.prototype.findlast: "npm:^1.2.4" + array.prototype.flatmap: "npm:^1.3.2" + array.prototype.toreversed: "npm:^1.1.2" + array.prototype.tosorted: "npm:^1.1.3" + doctrine: "npm:^2.1.0" + es-iterator-helpers: "npm:^1.0.17" + estraverse: "npm:^5.3.0" + jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" + minimatch: "npm:^3.1.2" + object.entries: "npm:^1.1.7" + object.fromentries: "npm:^2.0.7" + object.hasown: "npm:^1.1.3" + object.values: "npm:^1.1.7" + prop-types: "npm:^15.8.1" + resolve: "npm:^2.0.0-next.5" + semver: "npm:^6.3.1" + string.prototype.matchall: "npm:^4.0.10" + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 10/ee059971065ea7e73ab5d8728774235c7dbf7a5e9f937c3b47e97f8fa9a5a96ab511d2ae6d5ec76a7e705ca666673d454f1e75a94033720819d041827f50f9c8 + languageName: node + linkType: hard + "eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" @@ -3342,24 +3586,23 @@ __metadata: languageName: node linkType: hard -"framer-motion@npm:^11.0.6": - version: 11.0.6 - resolution: "framer-motion@npm:11.0.6" +"framer-motion@npm:^11.0.14": + version: 11.0.14 + resolution: "framer-motion@npm:11.0.14" dependencies: - "@emotion/is-prop-valid": "npm:^0.8.2" tslib: "npm:^2.4.0" peerDependencies: + "@emotion/is-prop-valid": "*" react: ^18.0.0 react-dom: ^18.0.0 - dependenciesMeta: + peerDependenciesMeta: "@emotion/is-prop-valid": optional: true - peerDependenciesMeta: react: optional: true react-dom: optional: true - checksum: 10/f18f5d40045029238b9d05e646ff950856bc7d0b0d9210fca59e8419c7e42eabf96e4481f8a753c13a13f306626515d8bf746e456d8d246df2060b02ab320926 + checksum: 10/5f23b3d6465f05245b476972270dc8a4a8754d1e5ebf90820b832842d97f92ebe7ee0cae7b03eda3175b5781f38ad6217d3868e9ad3216f2f859517e6cf80efb languageName: node linkType: hard @@ -3417,6 +3660,19 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: 10/85bbf4b234c3940edf8a41f4ecbd4e25ce78e5e6ad4e24ca2f77037d983b9ef943fd72f00f3ee97a49ec622a506b67db49c36246150377efcda1c9eb03e5f06d + languageName: node + linkType: hard + "get-nonce@npm:^1.0.0": version: 1.0.1 resolution: "get-nonce@npm:1.0.1" @@ -3434,6 +3690,17 @@ __metadata: languageName: node linkType: hard +"get-symbol-description@npm:^1.0.2": + version: 1.0.2 + resolution: "get-symbol-description@npm:1.0.2" + dependencies: + call-bind: "npm:^1.0.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + checksum: 10/e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + languageName: node + linkType: hard + "get-tsconfig@npm:^4.5.0": version: 4.7.2 resolution: "get-tsconfig@npm:4.7.2" @@ -3574,6 +3841,15 @@ __metadata: languageName: node linkType: hard +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10/2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2 + languageName: node + linkType: hard + "has-proto@npm:^1.0.1": version: 1.0.1 resolution: "has-proto@npm:1.0.1" @@ -3581,6 +3857,13 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.0.3": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: 10/0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a + languageName: node + linkType: hard + "has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -3597,6 +3880,15 @@ __metadata: languageName: node linkType: hard +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe + languageName: node + linkType: hard + "hasown@npm:^2.0.0": version: 2.0.0 resolution: "hasown@npm:2.0.0" @@ -3606,6 +3898,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.1": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + "hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" @@ -3674,6 +3975,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.0.7": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.0" + side-channel: "npm:^1.0.4" + checksum: 10/3e66720508831153ecf37d13def9f6856f9f2960989ec8a0a0476c98f887fca9eff0163127466485cb825c900c2d6fc601aa9117b7783b90ffce23a71ea5d053 + languageName: node + linkType: hard + "invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -3694,6 +4006,16 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" + dependencies: + call-bind: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.1" + checksum: 10/34a26213d981d58b30724ef37a1e0682f4040d580fa9ff58fdfdd3cefcb2287921718c63971c1c404951e7b747c50fdc7caf6e867e951353fa71b369c04c969b + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -3752,6 +4074,15 @@ __metadata: languageName: node linkType: hard +"is-data-view@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-view@npm:1.0.1" + dependencies: + is-typed-array: "npm:^1.1.13" + checksum: 10/4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 + languageName: node + linkType: hard + "is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -3809,6 +4140,13 @@ __metadata: languageName: node linkType: hard +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: 10/8fe5cffd8d4fb2ec7b49d657e1691889778d037494c6f40f4d1a524cadd658b4b53ad7b6b73a59bcb4b143ae9a3d15829af864b2c0f9d65ac1e678c4c80f17e5 + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -3858,6 +4196,15 @@ __metadata: languageName: node linkType: hard +"is-shared-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "is-shared-array-buffer@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + checksum: 10/bc5402900dc62b96ebb2548bf5b0a0bcfacc2db122236fe3ab3b3e3c884293a0d5eb777e73f059bcbf8dc8563bb65eae972fee0fb97e38a9ae27c8678f62bcfe + languageName: node + linkType: hard + "is-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" @@ -3885,6 +4232,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" + dependencies: + which-typed-array: "npm:^1.1.14" + checksum: 10/f850ba08286358b9a11aee6d93d371a45e3c59b5953549ee1c1a9a55ba5c1dd1bd9952488ae194ad8f32a9cf5e79c8fa5f0cc4d78c00720aa0bbcf238b38062d + languageName: node + linkType: hard + "is-weakmap@npm:^2.0.1": version: 2.0.1 resolution: "is-weakmap@npm:2.0.1" @@ -4111,7 +4467,7 @@ __metadata: resolution: "lucid-creations-website@workspace:." dependencies: "@chakra-ui/react": "npm:^2.8.2" - "@emotion/react": "npm:^11.11.3" + "@emotion/react": "npm:^11.11.4" "@emotion/styled": "npm:^11.11.0" "@fontsource/anonymous-pro": "npm:^5.0.12" "@fontsource/anybody": "npm:^5.0.19" @@ -4120,27 +4476,27 @@ __metadata: "@fontsource/tilt-neon": "npm:^5.0.4" "@iconify/react": "npm:^4.1.1" "@reduxjs/toolkit": "npm:^2.2.1" - "@types/node": "npm:^20.11.20" - "@types/react": "npm:^18.2.58" + "@types/node": "npm:^20.11.28" + "@types/react": "npm:^18.2.66" "@types/react-redux": "npm:^7.1.33" - "@typescript-eslint/eslint-plugin": "npm:^7.0.2" - "@typescript-eslint/parser": "npm:^7.0.2" - date-fns: "npm:^3.3.1" + "@typescript-eslint/eslint-plugin": "npm:^7.2.0" + "@typescript-eslint/parser": "npm:^7.2.0" + date-fns: "npm:^3.5.0" eslint: "npm:^8.57.0" eslint-config-next: "npm:<13.4.9" eslint-config-prettier: "npm:^9.1.0" eslint-plugin-jsx-a11y: "npm:^6.8.0" - eslint-plugin-react: "npm:^7.33.2" + eslint-plugin-react: "npm:^7.34.1" eslint-plugin-react-hooks: "npm:^4.6.0" formik: "npm:^2.4.5" - framer-motion: "npm:^11.0.6" - next: "npm:14.1.0" + framer-motion: "npm:^11.0.14" + next: "npm:14.1.3" prettier: "npm:^3.2.5" react: "npm:^18.2.0" react-dom: "npm:^18.2.0" react-redux: "npm:^9.1.0" sharp: "npm:^0.33.2" - typescript: "npm:^5.3.3" + typescript: "npm:^5.4.2" languageName: unknown linkType: soft @@ -4216,20 +4572,20 @@ __metadata: languageName: node linkType: hard -"next@npm:14.1.0": - version: 14.1.0 - resolution: "next@npm:14.1.0" +"next@npm:14.1.3": + version: 14.1.3 + resolution: "next@npm:14.1.3" dependencies: - "@next/env": "npm:14.1.0" - "@next/swc-darwin-arm64": "npm:14.1.0" - "@next/swc-darwin-x64": "npm:14.1.0" - "@next/swc-linux-arm64-gnu": "npm:14.1.0" - "@next/swc-linux-arm64-musl": "npm:14.1.0" - "@next/swc-linux-x64-gnu": "npm:14.1.0" - "@next/swc-linux-x64-musl": "npm:14.1.0" - "@next/swc-win32-arm64-msvc": "npm:14.1.0" - "@next/swc-win32-ia32-msvc": "npm:14.1.0" - "@next/swc-win32-x64-msvc": "npm:14.1.0" + "@next/env": "npm:14.1.3" + "@next/swc-darwin-arm64": "npm:14.1.3" + "@next/swc-darwin-x64": "npm:14.1.3" + "@next/swc-linux-arm64-gnu": "npm:14.1.3" + "@next/swc-linux-arm64-musl": "npm:14.1.3" + "@next/swc-linux-x64-gnu": "npm:14.1.3" + "@next/swc-linux-x64-musl": "npm:14.1.3" + "@next/swc-win32-arm64-msvc": "npm:14.1.3" + "@next/swc-win32-ia32-msvc": "npm:14.1.3" + "@next/swc-win32-x64-msvc": "npm:14.1.3" "@swc/helpers": "npm:0.5.2" busboy: "npm:1.6.0" caniuse-lite: "npm:^1.0.30001579" @@ -4267,7 +4623,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 10/1db512c5c82f7ea423a2651a28950d398f49f03df6213630aefdf083d5260edeeed8d995b90c3c8742c0a2346025e748d28078a6261d316fcdade4c5c788e986 + checksum: 10/6e77d5d35161b1e9337112ce7864527029f5c8e25ddd29e07e8a730c83f7241dd241e7eb0bdcd006e813b610274e960e0af18c167ab8a2deeeb7776121a7d770 languageName: node linkType: hard @@ -4304,6 +4660,18 @@ __metadata: languageName: node linkType: hard +"object.assign@npm:^4.1.5": + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" + dependencies: + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + has-symbols: "npm:^1.0.3" + object-keys: "npm:^1.1.1" + checksum: 10/dbb22da4cda82e1658349ea62b80815f587b47131b3dd7a4ab7f84190ab31d206bbd8fe7e26ae3220c55b65725ac4529825f6142154211220302aa6b1518045d + languageName: node + linkType: hard + "object.entries@npm:^1.1.6, object.entries@npm:^1.1.7": version: 1.1.7 resolution: "object.entries@npm:1.1.7" @@ -4338,7 +4706,7 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.1.2": +"object.hasown@npm:^1.1.2, object.hasown@npm:^1.1.3": version: 1.1.3 resolution: "object.hasown@npm:1.1.3" dependencies: @@ -4470,6 +4838,13 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: 10/8ed3e96dfeea1c5880c1f4c9cb707e5fb26e8be22f14f82ef92df20fd2004e635c62ba47fbe8f2bb63bfd80dac1474be2fb39798da8c2feba2815435d1f749af + languageName: node + linkType: hard + "postcss@npm:8.4.31": version: 8.4.31 resolution: "postcss@npm:8.4.31" @@ -4726,6 +5101,18 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.5.2": + version: 1.5.2 + resolution: "regexp.prototype.flags@npm:1.5.2" + dependencies: + call-bind: "npm:^1.0.6" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + set-function-name: "npm:^2.0.1" + checksum: 10/9fffc01da9c4e12670ff95bc5204364615fcc12d86fc30642765af908675678ebb0780883c874b2dbd184505fb52fa603d80073ecf69f461ce7f56b15d10be9c + languageName: node + linkType: hard + "reselect@npm:^5.0.1": version: 5.1.0 resolution: "reselect@npm:5.1.0" @@ -4760,7 +5147,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^2.0.0-next.4": +"resolve@npm:^2.0.0-next.4, resolve@npm:^2.0.0-next.5": version: 2.0.0-next.5 resolution: "resolve@npm:2.0.0-next.5" dependencies: @@ -4786,7 +5173,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^2.0.0-next.4#optional!builtin ": +"resolve@patch:resolve@npm%3A^2.0.0-next.4#optional!builtin , resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin ": version: 2.0.0-next.5 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin ::version=2.0.0-next.5&hash=c3c19d" dependencies: @@ -4838,6 +5225,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.1.0, safe-array-concat@npm:^1.1.2": + version: 1.1.2 + resolution: "safe-array-concat@npm:1.1.2" + dependencies: + call-bind: "npm:^1.0.7" + get-intrinsic: "npm:^1.2.4" + has-symbols: "npm:^1.0.3" + isarray: "npm:^2.0.5" + checksum: 10/a54f8040d7cb696a1ee38d19cc71ab3cfb654b9b81bae00c6459618cfad8214ece7e6666592f9c925aafef43d0a20c5e6fbb3413a2b618e1ce9d516a2e6dcfc5 + languageName: node + linkType: hard + "safe-regex-test@npm:^1.0.0": version: 1.0.0 resolution: "safe-regex-test@npm:1.0.0" @@ -4849,6 +5248,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.0.3": + version: 1.0.3 + resolution: "safe-regex-test@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.1.4" + checksum: 10/b04de61114b10274d92e25b6de7ccb5de07f11ea15637ff636de4b5190c0f5cd8823fe586dde718504cf78055437d70fd8804976894df502fcf5a210c970afb3 + languageName: node + linkType: hard + "scheduler@npm:^0.23.0": version: 0.23.0 resolution: "scheduler@npm:0.23.0" @@ -4890,6 +5300,20 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d + languageName: node + linkType: hard + "set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": version: 2.0.1 resolution: "set-function-name@npm:2.0.1" @@ -5034,7 +5458,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.8": +"string.prototype.matchall@npm:^4.0.10, string.prototype.matchall@npm:^4.0.8": version: 4.0.10 resolution: "string.prototype.matchall@npm:4.0.10" dependencies: @@ -5286,6 +5710,17 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-buffer@npm:1.0.2" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.13" + checksum: 10/02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + languageName: node + linkType: hard + "typed-array-byte-length@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-length@npm:1.0.0" @@ -5298,6 +5733,19 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "typed-array-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + checksum: 10/e4a38329736fe6a73b52a09222d4a9e8de14caaa4ff6ad8e55217f6705b017d9815b7284c85065b3b8a7704e226ccff1372a72b78c2a5b6b71b7bf662308c903 + languageName: node + linkType: hard + "typed-array-byte-offset@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-offset@npm:1.0.0" @@ -5311,6 +5759,20 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-offset@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-byte-offset@npm:1.0.2" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + checksum: 10/ac26d720ebb2aacbc45e231347c359e6649f52e0cfe0e76e62005912f8030d68e4cb7b725b1754e8fdd48e433cb68df5a8620a3e420ad1457d666e8b29bf9150 + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -5322,23 +5784,37 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.3.3": - version: 5.3.3 - resolution: "typescript@npm:5.3.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10/6e4e6a14a50c222b3d14d4ea2f729e79f972fa536ac1522b91202a9a65af3605c2928c4a790a4a50aa13694d461c479ba92cedaeb1e7b190aadaa4e4b96b8e18 +"typed-array-length@npm:^1.0.5": + version: 1.0.5 + resolution: "typed-array-length@npm:1.0.5" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + possible-typed-array-names: "npm:^1.0.0" + checksum: 10/f9a0da99c41880b44e2c5e5d0d01515c2a6e0f54b10c594151804f013272d837df3b67ea84d7304ecfbab2c10d99c3372168bf3a4bd295abf13ac5a72f93054a languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.3.3#optional!builtin ": - version: 5.3.3 - resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin ::version=5.3.3&hash=e012d7" +"typescript@npm:^5.4.2": + version: 5.4.2 + resolution: "typescript@npm:5.4.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/c93786fcc9a70718ba1e3819bab56064ead5817004d1b8186f8ca66165f3a2d0100fee91fa64c840dcd45f994ca5d615d8e1f566d39a7470fc1e014dbb4cf15d + checksum: 10/f8cfdc630ab1672f004e9561eb2916935b2d267792d07ce93e97fc601c7a65191af32033d5e9c0169b7dc37da7db9bf320f7432bc84527cb7697effaa4e4559d + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.4.2#optional!builtin ": + version: 5.4.2 + resolution: "typescript@patch:typescript@npm%3A5.4.2#optional!builtin ::version=5.4.2&hash=d69c25" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/ef4fc2994cc0219dc9ada94c92106ba8d44cbfd7a0328ed6f8d730311caf66e114cdfa07fbc6f369bfc0fc182d9493851b3bf1644c06fc5818690b19ee960d72 languageName: node linkType: hard @@ -5468,6 +5944,19 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.14": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + checksum: 10/c3b6a99beadc971baa53c3ee5b749f2b9bdfa3b3b9a70650dd8511a48b61d877288b498d424712e9991d16019633086bd8b5923369460d93463c5825fa36c448 + languageName: node + linkType: hard + "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2"