From 0021db1c58ef8869b8a50cb7c35bbb70b9060a8a Mon Sep 17 00:00:00 2001 From: Danny Morabito Date: Thu, 28 Nov 2024 22:17:47 +0100 Subject: [PATCH] - implement stamps. - fix #2 --- bun.lockb | Bin 68686 -> 81448 bytes package.json | 10 ++-- src/app.html | 1 - src/components/AnimatedQRCode.svelte | 41 ++++++++++++++++ src/components/Dialog.svelte | 30 +++++++++++- src/components/MailboxFolderItems.svelte | 5 +- src/components/Tooltip.svelte | 1 + {static => src/lib}/base.css | 58 +++++++++++++++++++++++ src/lib/letter.ts | 13 ++++- src/lib/stores.svelte.ts | 6 +-- src/lib/utils.svelte.ts | 7 ++- src/routes/+page.svelte | 14 ++++-- src/routes/compose/+page.svelte | 52 ++++++++++++++++++-- src/routes/letters/[id]/+page.svelte | 57 +++++++++++++++------- 14 files changed, 256 insertions(+), 39 deletions(-) create mode 100644 src/components/AnimatedQRCode.svelte rename {static => src/lib}/base.css (89%) diff --git a/bun.lockb b/bun.lockb index c27c0affcc8338aab463ae1a6100d23741c8f4c6..be51bbb1ddf36badb88ee584a299b43f0da299c6 100755 GIT binary patch delta 20410 zcmeHvcU)9Q_xIkFRhA+}%2E_iP(f)+2U!~`2o`K>gM_l+BE8sk!Pqq_j=f_^6vc){ zjf$ei-g~bxQ520PF&f+ZJ$LT~k|*Z($NT%d??2Dg@0>Yv&di)S)9&8O+%pRe*1b2F z?d6`cQMVxM#mt7$Z!a9&UM07jm$fyb*M&n(_w1k0{%6A<9xe>$By^oGRy*lT&+>5u z8422Sis$4eWhHAQl936ysd?aEL)%&+DSQNK0eS`04DJmu5mWolDWB$E7* z+3=%8(jH2rmrM+<1JFYeg~)^Uzm^Vz5o{zSNV&FJH&jpk`{Th_Uf(a=87cSG;=o3DIQo?)GN(Da$B}49m zl7W{5dJL3WwpXCrK*>Yv1e%nWhtZ+Y%tdXKFC#hAGdUqYfrhkat|l3g+)Q|^3TOhk zE?F}|OPzEKpo-J-619j*k`l9WsVhdqd^EN&u^=TylPi&EH5yG&fWIW(QJ+W#`;-OAGMGnVwZ?rFiEe+u1f86RZjXmnF*O$S_~3RUSfeZJz0|4RPUTv zQ23`XOrUN8H52HcE_&zv1PVVCUJz)7KuZNWU!da!nyII{!hu3U7tls1z+a#)0&OVJ z_s;qWQYFx90zD$o?E=lsN>9f`mISntNZ^M;J5czm@RNr`Vh{QNl+urb+DUYh!VQQ} zcT5I#1x*D-S%pzTdUMcb;0-|0=)yzWP^u_HNRJixKu{Woqa^y? z636EhB_pOv4GuFcEO$j#7ZV7Ofo}m`2j2jouOAphigd2Bmp3 zBq1+rI0kxAxIX`BJ_o_^M+8XXcxHK zPG4Z>Q9<=~&7XBUeP6x2hn+9E&U*TwG^p_TJH`EV`+wTM!Rg1_u}8JljpH|KH(Wl| zsKO>Z^<46p$!V^~13#5`C2ImE%jUGa8FusLRpUutmEK=v@gbetlC5hRabsha@AmZP zNz0!l5A1up&4Gx~+ua z6=znzk#XjM2lqSPZ1Cs!vVC7vkL|Q#Ei-KJCUQm7HQ)4J(L7|va{p?>Dce{7?7SrK zTw=GJY16F-g+Gnc{16o}qvfc|SrhseeC*{E@kZTispR8}KTnMO^82ols^osbaYk*r z|9++A9K)97?F@(1vuMRhB+F2mO-Z9g6m8i@=MrOn^tV4liUzodn8)2msUZtAnf36SXrYmc^+b+NSCp# z7D2KyaP3$|!!VO-iXk0axP)cfw&raZ0InYr>+!X22B!jN$aB@;FeD4>vz&%Oaz7YP zoQ&tPz)@j(Yd3=n1ZTi}q4^FRm14k`5>j8!!5p+}I5^B7y{2q4xImU+8zz5*80IsT z*ChpPefujb2gKPmfed#&2L9z$nI#BcEUbtf*`#6?k79>vt=K~HFnFPrf zgQN2FHk_)_giLBEXQjp}X>U2J00m|f*2UHDv(9S%)?YAy=~0W zKtfGeDaaTTRt0j=gn2YnNli^z8c26jRthrClvRNoFl8QQDrpsDAk7=HQZtpj4`#C7 zfn>zohRnlUB|n11*07WJs`M2!%~et_Ggf7;l6`?0t72uQVe(~&^{mmVHe;n0Dyfq> ztFlnZXPWE1AfcX+o-k)=mMVEYEK^t$;F_(*K~j|ktFlzd3XmAW$}GZUn@G$&8-~fA z@G+!GT`gH@BbD?EOXgvvk}tK?*N9QlC`kGYGAos|Nh4NerIK~UQWV58EW_kQh|z$Q z@^v3<#7eDIvJXfMV`XMx(qJp*VWX1fS+O*bzSgW1%hyXvs)-?S_{u6Dwv0zO1=h( zc=!<@2;h-O(G~)>-;*6I~fW(Jon1-2FAVwn+Q%nMX(Tp}Wl>LI# zP*!apCiigEuNw8qURf$Q%oA9#%#oEgR>`j-ftn*{zL*5I*pGWKPb)um&%xX}1st~8 zLX^y3v%$Ay_rG#r_nMh-ZBa}ct_e$XRLQzy+r<#D36o9cW1co)(o;=XRb!R3krVT1 zqLPkwVrd}dPOP+vO74@FS88HS+(c9$5>~&2{)m+q@gcwE)*-{g;Y$2xg zuZb;3EP~g2P!nt3QcO#$iER>NQqG;Fxv6Bma6dGNWw?dO$`BjC$LeF!_GQ)XZ4406 z3%^6GH!qZXN+fZ7ECn$wA3KX!0w4475~W`wmdeUd2qGF@IKUgfc=*_^nwTw?HGOgU zi0SJ;jhJ4qwXc{q5ivF8l|MtQ9gQ^_?G_y|>~Kd^D8t~80!HHKlrurp;7X|;ApDz%cFcDICxH2Q|^Joe{f`h zB1As{^-FO~2ut%(NvDReQXiH4B4pj6sb76uP#M)AW7w+YYH(;R)nF4OpAIfeMR7nlPnTH=76)u`Wj+zOs1G4hH zBs&K#l+R#enh~fSrWyjwST~E5I1Q z^1)yKL}@6x2=afTRE{gjnJmajM-fbZegI?o@)uEBZZTnbik}TU#ahT;M5z=^J)WZH zc{yeWPci!W>)$9@iQd)m&4G`21KNYu2f6@s5hX(+iNQsb_$Xp<5j6n15rc~;@v+3< zB1#qY7HD6AV!-g_^hf=C3kC@ZgF)#cN)^QsgX`a@A>uDX;K$YMTKPl=ze=XHFf0hnci!aq?ec!ePUH%bPr0%#1a z1E``hfbwq!NWKlAi>L|trGjVmloTojzAm*z+BG5lf0a_d{I3@Hneu4icqTNUE~Wba zQSkpLT_>Tw{}nK$8fj$F1xkG;6?mc)ttU_eA)P2iWdf})q!Xq5^lXzZqBKp-L1}%k z64I?Ww4dVELIP1U@UEa#Kyx9zE~PQzE~Nk8P#Ts8--y{$L= z+F|tD7L8<^N3UtzYkk-4h1U+OxzIZ*+Pzuq`*$fUqk}@HeR%V5$kK$Yity5+Eh{D` zw9l5`eB(Lj_Hy&w7nLE;UbWnO_DsJwF&ia6Shc(Vi|-+8hfiVGcFuj1Zhq}dwd}Vy z*n&98N3)NhvU%kH0E$Q?&AaeHb&`%R0J@%}6 zTgN(D-^9zn%%#VzMs05wU2J!6uJ?QYkmBic%) zR^j&_w7gsB)M2szMs3skr>0DO*Z<JC(aGR&p9Pacyrn5|29RKrBc^&I$f{B;G z+2o2rm*3qnx9SyH5%glfP;LA9Pu~9#yfVyX!`6-C+#^B{tlgC|alM^IVY0ndvjc_? zP26pc*!cG;abc(YlD3Y_W@951I`1sYn8u?ojIoI>yEOB9L~ys;^Dar&u2QFToO0!% zOc(S=nZvA6+>ORhl_Os){K0JglUC|UTKzPjuex}y_&RxX+bYB0riz|Y$| zR^%1`#uZIC_DsXdYn7v3ecUm6X6f#GuiD-^yynVrjn6*Ur_-9}(RdTBqu=}DWpLL0o1dRnY-wdV z$oa#%E6cx*J7n{wgZuHW!&+Y(GSAD=EGS~v&FA@>?Cgif8Rl%hV5f4QS?MEBAMjvT z?Bh_2_yrx)U@)aGp&tgoma`9 zUVS-f=i{Y!n)W_zX0Rv!wqLyEQ2FIv2@@XIv5voO7tAwA(piVQ+$wE9)TlVMHt3SH@gp7DJy^h|u+TGuOfR2#Li;=u{~<%*V%%X=+3V{mE9;6^8d!eZQqx#k^r z%KI=sO4-|H|G28)pFXU;pz&>QMECHb@917$ybL^=7DXRu(LX`y9qMHLc5^GExVE9I zPR38)*Wkq6R-eYkzN;TT{F8jRottYxi>kXt7U3KA_Ho_hQDLyRY|YFOJDN;p;awCu z72CpHYMa>i+>JNyhmIK2)T86>35j(TS%+_0}Fy&lw{$;o1Eh3T}F4caD8iHT^8PW?!L-clg8TBbhuc>cE+1#B zEwj#8Vb?0P;dVtq_Au8DM}D=AKlY}ph5Pe`JG&Y^W6L5Hx=)|lEbKd{g_GOi*1zOS zxR^Pw{oIPKW-WJ_dCFwpoOQbkiyzE=y)ky*&^gD0f4bGT`5Ft8UFuu2r5+Y*JNIle z=xH76tp8%&)U#Zl1HIdgH5;e1@Alm7)4RAy=kh#UBEQY5XK4|6&BZ3Z$&3Dd?N@3m z157^Tq%1gGJ>_Z#W?cQy_vVY08$$~?);-Erw{xSz_#4vrU;MV+Iaf3$Dsgr7g{KB% zcbONwiwNI#^25m&kMj;c>hHa-RiU$gexNMm`pwXdgFQCYU*rG%QA?jCWp&J>2L|G0 zuz7utY>Ta$k&$`s6ZULtaoEqLAj8PaK6-pnbguE@a`VM4ew*pC)X*+qL)YKFX}jao zqD_Oh1h4h)8TC# zZcWNI%NZ4TYf#)=>GJ$lmv;NUDSSNf;v<`7-`$k8Yds}Cd9I~p9qaHarsgu}WFb`@ zdpGUH%dEvl2`6QZJ+xNWpUwI>ETqqQ_X@wZi(7ml>vT6D#colkY4*=YjPDgUTyWw; z_c8Z>b-sI~i@e0mot1S}=<=Uc+%lejyKGCqcU_u3v|AhGJY(qe-tUUM-z~{09vd?3 z(CVXi@4Zm=Ti#yRWkvMK2_@4)HWcMlUkML2s2?wB-L8&x4mGx6;JL0#i+N_bX?43x zS3>5su5J;#p}t$o{PN~5OQuf=oDs2N)pqqbiFJhC%j~4kS2o^N7uKCS_+tFQ$N_7! zeh-da?&8Mcq7}M_5jKw|tu?rMZuQdQ#35U%XZ#tnYTo7%qyE^(T`yAI{>^=BYOBof z9;X)ij#xI<)T-HpBPZHSpOJLp2kr1Si>JA%>sZ&gu63oZYZuz@dt<)L(Cp;HZ?j*< z?7O2Ka^%p3Ecs7Adz@G?^pvXg-d4`7?TURzoq432H9KZo(xha+XV2DM`g6$5r~6#T zFw+0!#2b&AG|l_%hWdz!Ltouj!{Y*A-5dkpRaI8PSUMa>q*nzFJk(VRDX z3of#kDT|AY=6u=uNHu!{&NM2T^J4>|)NEaEQ??IW0F!rBv;KWdSw`1rE{N?0XV}-2 zHI9zvLYOvM&31vC*e#k1V|FoWHl&{^8ygeNg|p+}6lzm;8k%jHOEN-oP3?j9fvX1Bg@yD)`v#(YJ)^lO_5@t;Aha(wnu}(O zV%1y>dx@|ci|U2e4MyvFMRPsaTX2zaXkG7UE|#tDt>$_$u8*4Q%?2Rs!?q&q%jA94 zTtAk8P|bED?9VLvsks46i*O*TL^z1qsny(ImV+>k9Y+|?T>7hZU(_82T!Wj*%Z6NP z(Djes_w_yeN*Uu`)x4i+vbj2W(x_$I3g@}TTv*8^K@Nk$_Rg}o)m+)!#WrW##Am%s-tYIgU8mrLx&^=3^Z4HSUX^bSx(rup zI>k?)I;`m0ovqHx6Izex{k!|Y)}z<{uxP`{EjI^QcV76*iruR%y+2KT(4%{JOs6l8 zF8;ZoGnZ7m$0pV-*iNesn$h%Z^z8wf%HI1r?mL}!d*zUGW6Cy2?3U#e9C+4j-StEL zO|w$_*YoN1sC3FeHnwlakdmpBAIQh`jB0VCu#Uk=%y*!gOJ-9MYS{gOYF$d*nr^e{$nc)5{CQ-P1rs~W(tPjS`MJU+-#g^eo7epf2R-g~{>lD~ zl(ttrZ0_BE_syGc*MDE9rqsISR=2z2Tr_sVlolGNNpHWJ|^b{^qm=ANwPrm!M}Q`vQd)0nSD%}r-h5zb)u z5q`}=QqHRd z#yz9&UYc215$c`k+WvXlVB5Znd<#YuII&ris++axdARcK>8%@!OHw**s+uV;it3p< zk?k9yV5ifgxe{iVfwgF)X-ufq>|MEkEb3z4Zp4w%KbSaFZgd^rC1J*I3;oGPxkxbJYsb6uv!We)r$p|a@xZ!aq*nv{2a9%WW{4_nQSqtKS4Oqpk9G`E(G z%*2ug?l!n@nR^zNw9#1Hv!c26>^ivMF#OCWQwk_<~DwQR)?=hiY%(^%;NA-fd}m_KBran$fmzCA9F zdQ);~=E1AKcWc1ByWiJb>Gb@k_hWkEd8>G%yp=7=Rdd_eON8YtDo@RAXC(-Cu(t@m zW3l;aZYNuha2MkW)ZA`10O9v+E5bcYK1|K+WeEuPvE2wOn8k24x1VVd9$=LSE1BI0 zHFuEZAUwp5BRtGpMyk0V*hqv&*m;CUnfoX;cZ?MwJkG8oJi&ZNtGSbGD#BCjKEl&1 zWQ>|S!-^4}Wls>EW9`Q#;cq?+OvOLhcEQ9mD!>2LS&rSCc&prTT)Kg*k3Ify4}ZGR zo7WWotaUqXHH?sYm-YY3S!(FS?tImO6xe~U3~hXz^?%bxPo>4bMa^|Czw^}{PWq~4 zdBwz0oa~k_UMlbfP%h^whB6u6zEesnUr~o3{U0R8fSQ)$FGo1GWuiV^sEAJ zSNZD)gp`k758!n>e;q+cY4p?p@1*(bC_>`tQ4qbk<>=+uDLx|M-_pb*P70@mG>8;=(-4Sa3%j*Xb31(c8L-J zdcoNNpn@+0l(vp)qw5koQWmeHAAaTlz1E<|OXMIAfc}QCH9$WSZ2((90oVf$fFsZt zXaYC^&VV6c1Q-LR0KKjH4fq{+4g3MT0p0@dfcNye^#dZG0D9S04Lk>40Oi1TUQBQ>dZGdn9e}o{J1JLhCOP~=zFM8V1YpwQ( zbOO8qUqA`mfWl4S7H}K51Kb7f0r!Ciz(e3i;1Tc>@H6ljcmh-bPXT%lM-Nb10`#iP z4ah(`s^#B2%jm^iB`ev~NKPY-M%FP_u*oToI*En=bvbo0^(gh=72qmB?_v)CtARDZ zT3{Kl9EbywfVMz8fQC;FkOx=+*6jQy2c08gje#Zry;KVT0)Zm%?SYO!1kefS4A6UP z51L4XhW4%e60_0*_MfuB;vE|l5p z&LV{-D@@;)SAN&yGJ1~3O20A_#@AP4FL zGQa?+2N;qMNXZnS8Ep(S1ZaTLK&3&-cNeHFKzdY|LZHOk0ro%?K!$YzsI#cksPo7l z?E#t?G(iFYf4~{=qfzLB2sxWNfO>~|mU^@)Ks`pi>QLznVj7i29uawpPY3dVY#<9@7Uj0gx!kbpr(AF}smbDL zz*JxgFd3KxOavwXUjgHRBA^gJpG(F8V}UWiXg06hNk@L5@|OWifhE9VU=ctI?gC&w zFb|juFklW)49o^*0W*QGff)ex!?(aU09m;PSOJi4sGsWkcr_WNMq(_m3Mc`nL#R{x z04ssI8PFODPfnqVcLP)iW&REz zt9Jq0fvo^#q{676a$p;<6Cm9kz)9c)PytK_wg5+gBLEro1F#>U$`6880tbLYw4NLW zs2h$0#{g2I%pyH4$jGIq05Ve4qkLpMRd@~{BWGVnfGhGHOWV=6o}ZU5JGjHQaj+N0 zZzR$kF&^fvT5X%Kx877kF5chE$4kk~zq1YY_wv;bWE*HyX>Rl!`m3!H8h&1WUP=r{ z;jGrv`S(*pzn-svB*07QFcSSVEF`rLo#Nd3Y;GsA8|6 zn)6w9e|ldZwcTtyFA4C%f;`Xw5BWtr6eynVfFuB(L!-s>kK#!d$`b&W`AWnCh2qH&NXXmBBOXZ<50~g53e=0l z(~aUe6+RR1UGV^=coc>zLIG2_?zEE@%UR4$g`;>rR6I5XJzp;j4J^fSR=86k z-6LmXYNw2@1+!9HeE-cg0Az7_n!&6w<>+tp0ALG|HF_-lK37Pw`&A(S686OZTs8 zi`{O*GIuMa2Ta%$sGl%ldw0i3+nbgfeecLoYRf$}g@^}dTi*;x)Ks-EMIkYcgEy0c@XYcnar0M4D4)nxxqT?Q4kBmJ!%tp%5T7YsS6U>?AUZtaW1ovvF zN9%E?R11YpfD4z)*_V42fuC0pPw9$>)&7>%It0~x-p+rPU=Pr@Kq*E2KKoJv#iO{9 zYcn@pbE@9}uApU;hOm`>6%MiQo_5}%bl?0y1OTyFTlsk4?i*?X$Xnqn?mF5`!^OrB23-)R&!1& z0>uNzl9YY4Hl0kk9@h~+Re6m$LZ_z@(sq}Wp=K@rb&QAJhl8~RFZMi zseNg&73}6!6oJdIv)ZEeCDuEu>?iIWDwKhZ`7@;}{Usl5Sd;w<$ImP1t2glB+ivXy zFNvqA-&$yfe)K=R2-OI)=aLm$xnChAFY%h6ag^TE&-W`G#q-gvF0al#KXlt*z9@dR z6{-!;yPOrCG-u-u7&(5XM7VyN6kQ<+glxBb2E0LLXqk<)<&lF9eR_ zIcf2XBkwAV4}SQXA5_?h2dc%xkWdKW_W?G&(xIn#99uj}DcFrANPMy-9=3#pMnDMe z(}g45;&DtVN4{p4%=sG5Ag6 zbt8;;Iqsk&k`d-C{-8oyzX`ilsc`(yIfioh(U0k2eo*;87W6-rprCoS@u1?L7Xp4r zW68M(i}ZSp{$V{}0}j0mR6FVS!D8=$UpL z(pm)<7rp(f){jejZs>NQR^so%mLqEyLBY^M)oK?v_f)Ndcmn=dgPsdIKh8K}ah* zSX1^3$`-#JkpAVWPgja}x35(Yzbvr2OE4$;V6DQ zAgD!Iu=3rx&b11YJ=koNEq-mF&z=1xlYc9+uT{{0kU&z{wn1!4?v&%nwUP%O><+Su zUoaRSy<+Io^+qwZ3gR~o%pRQgZT1jKl9NKgl{PHtvK%`rL{wJmJYH z*^v`X9K}QX$E#l7eKn)x613^Q7>kvDH~ic_>+8#Z5CQez0j&FJ8+PoJqx9zh z_S2~t$Dgq*D^UO6f6$t9+Cb(I#6Kdm1N@&lpJ^gW2mdN-OcZ3}cEb2R1n1 zyiCd+3ubN3h6bAB5f<(6^+L|R2Yyk~j}Tvp_{D_jZkbE^Y)O6!Nud6wCNzv~ zJR1`zern;+)reI&E0N$d7{>lMxsKSeL`wur1K<(uSQlr<4|jvyb5Z?QVd6M$(Y-XFV@? z7|q1PIIQ{jDg-M$@8Md@>eti%w7jA%J9Azky>G=HpI1t8_vU!v^LKB4LN%^O+v=St ze#}J`FWr0Tg(2<(J+K+m#doJtdbb_Ba6xIb@SQ$2_&weUS+S-Uz4}pt_!*vNSEf~# ztQj*rQJd*SANFar^~TNSSGjp=V|_KNuI@13deL!QCV2cWEWWvWvE$OIRwKdCHdnpD z&@w0E(YqPOY}G}T{edR>U2j5gz$tD-!;eGW>uaAK&i=gkqkX%C+!5Xd`P%fncBu)O z$>|9xN?-59B+r6e_To~M97cHa4bd5fDc0z8RCN~xONeSucnq1EmEkaFBfi_p;nT#MQKPz{nn1F9RWqLLsmCS?; zvbfb>B!WN#+x{Va!I^qo3wKdaQ+6HYnlw+0&jsx`&c*F-mO=S%DNyxcCDkrob=y

wGBHWj(Q{;SLWrQEIklLS~*;laZCC#rK9%@pYj*&y<4nbiUg>`Ogq#XK6F@ z7bF;Pj>>dP4_!15) zdE)3$%jO|t9nRBV-_AN&p-_iI=aD0<#RoH#UHD9xr$4i}!%OIEVR`|@(3yTT8Z7wl zhwe~Ga8Rs?Lz$LS(W!a)Bhxk1JRjbX zJWI{1!@)PSA0tOnR(e)0hDGKuO>RC_;q#XivZt;F4M_bOp-&cOuR{&Tk8nN*M6~Ys zvi5(vn9>tVltl#Y>G5MTGyb_Jl6We3(@tES(#YOg#?u#BT-l1t7Ui1D28L|f9Tzt3 z_Et9So+V4Y-Hc`5sXynACF^#_y?pDP1%?Zn*W(;w|GrA1M1Hj-oAB(H8s9D1nFSe%np~{w^t;Y8Z)9c?d8aY`mP1KIJo#U7`~cG? zdebIAi)thOcOX=F%FoTf1@{d&XN6dfAmht~F+SuVw(s$r1)Vw0p>f@+$>chgc!n_D z12?bF*bL>rHo}u00Qr?i{2b4f_jt0ckrYqVr5`GAi-tj1{@_Ef0T-~-0Y65K{tq}^ B=Y0SG delta 12919 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 - %sveltekit.head% diff --git a/src/components/AnimatedQRCode.svelte b/src/components/AnimatedQRCode.svelte new file mode 100644 index 0000000..be374ed --- /dev/null +++ b/src/components/AnimatedQRCode.svelte @@ -0,0 +1,41 @@ + + +{#if displayedData} + QR Code +{/if} + + \ No newline at end of file diff --git a/src/components/Dialog.svelte b/src/components/Dialog.svelte index 0b4a51b..e27beb8 100644 --- a/src/components/Dialog.svelte +++ b/src/components/Dialog.svelte @@ -4,7 +4,8 @@ let { open = $bindable(false), children, - onClose = $bindable(() => console.log('Closed')) + onClose = $bindable(() => { + }) } = $props(); let dialog: HTMLDialogElement; @@ -15,7 +16,7 @@

onClose()} + onclose={() => { open = false; onClose(); }} use:appendToBody >
@@ -62,6 +63,31 @@ width: 100%; padding: var(--spacing-md); + > :global(.title) { + position: fixed; + display: flex; + width: calc(100% + 2 * var(--spacing-md)); + margin: calc(var(--spacing-md) * -1); + padding: var(--spacing-md); + background: color-mix(in oklab, black 50%, var(--accent)); + z-index: 99999; + + > :global(.close-button) { + position: absolute; + top: var(--spacing-md); + right: calc( + var(--spacing-md) * 2 + 1.5rem + ); + } + + :global(& + *) { + margin-top: calc( + 1.5rem + + var(--spacing-md) * 3 + ); + } + } + > :global(*:not(:last-child)) { margin-bottom: var(--spacing-sm); } diff --git a/src/components/MailboxFolderItems.svelte b/src/components/MailboxFolderItems.svelte index 7842029..7a60191 100644 --- a/src/components/MailboxFolderItems.svelte +++ b/src/components/MailboxFolderItems.svelte @@ -119,7 +119,7 @@
{#if letter.stamps}
- + {letter.stamps} sats
{/if} @@ -148,7 +148,6 @@ moveFolderDialogOpen = false} >

Move Letters to Folder

Select a folder to move the selected letters to:

@@ -172,7 +171,7 @@ {#if letter.stamps}
- + {letter.stamps} sats
{/if} diff --git a/src/components/Tooltip.svelte b/src/components/Tooltip.svelte index de1ff2b..5683fa5 100644 --- a/src/components/Tooltip.svelte +++ b/src/components/Tooltip.svelte @@ -1,5 +1,6 @@