From 6ffc0718647555a5144c45c21c1452c09d435812 Mon Sep 17 00:00:00 2001 From: LiuLiu Date: Mon, 13 Jan 2025 13:17:48 -0800 Subject: [PATCH 1/6] wip --- .../ExistingConnections/Item.tsx | 19 +++++-- .../ExistingConnections/index.module.css | 53 +++++++++++------- .../ExistingConnections/index.tsx | 14 ++++- web/renderer/public/images/database-icon.png | Bin 0 -> 1746 bytes 4 files changed, 59 insertions(+), 27 deletions(-) create mode 100644 web/renderer/public/images/database-icon.png diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx index ea35d2ad..7488a223 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx @@ -2,6 +2,7 @@ import { getDatabaseType } from "@components/DatabaseTypeLabel"; import { Button, ErrorMsg, Loader } from "@dolthub/react-components"; import { DatabaseConnectionFragment } from "@gen/graphql-types"; import { IoMdClose } from "@react-icons/all-files/io/IoMdClose"; +import Image from "next/legacy/image"; import cx from "classnames"; import css from "./index.module.css"; import useAddConnection from "./useAddConnection"; @@ -13,17 +14,25 @@ type Props = { export default function Item({ conn, onDeleteClicked }: Props) { const { onAdd, err, loading } = useAddConnection(conn); - + const type = getDatabaseType(conn.type ?? undefined, !!conn.isDolt); return ( <>
  • - {conn.name} - +
    + DatabaseIcon +
    +
    onDeleteClicked(conn.name)}> - + {conn.name} +
  • @@ -37,5 +46,5 @@ type LabelProps = { function DatabaseTypeLabel({ conn }: LabelProps) { const type = getDatabaseType(conn.type ?? undefined, !!conn.isDolt); - return {type}; + return {type}; } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css index e065b050..33dd965a 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css @@ -1,7 +1,16 @@ -.whiteContainer { - @apply max-w-xl w-full border rounded-lg py-10 px-16 bg-white mx-auto; +.outer { + @apply max-w-5xl; } +.text { + @apply max-w-md text-base my-4; + a { + @apply text-[#FF8964]; + } + a:hover { + @apply text-coral-400; + } +} .options { @apply my-6; @@ -11,15 +20,35 @@ } .connection { - @apply my-3 border rounded py-1.5 px-3 flex justify-between; + @apply my-3 border rounded flex w-80 h-24; button { @apply text-base; } } +.left { + @apply w-24 flex justify-center items-center rounded-l; +} + +.dolt { + background: linear-gradient(#0dc1a0 0%, #29e3c1 100%); +} + +.mysql { + background: linear-gradient(#084550 0%, #00758f 100%); +} + +.doltgresql { + background: linear-gradient(#d34f26 0%, #ff8964 100%); +} + +.postgresql { + background: linear-gradient(#286288 0%, #367faf 100%); +} + .right { - @apply flex; + @apply relative; } .err { @@ -37,19 +66,3 @@ .label { @apply text-sm w-24 rounded-full flex items-center justify-center mr-5; } - -.mysql { - @apply text-[#00758f] bg-[#00758f]/20; -} - -.dolt { - @apply bg-mint-50 text-green-500; -} - -.doltgresql { - @apply bg-orange-50 text-orange-500; -} - -.postgresql { - @apply bg-[#0064a5]/20 text-[#0064a5]; -} diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx index edb82b15..06b4d97f 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx @@ -6,6 +6,8 @@ import { useRemoveConnectionMutation, } from "@gen/graphql-types"; import { useRouter } from "next/router"; +import DoltLink from "@components/links/DoltLink"; +import DoltgresLink from "@components/links/DoltgresLink"; import { AiOutlinePlus } from "@react-icons/all-files/ai/AiOutlinePlus"; import { useState } from "react"; import { newConnection } from "@lib/urls"; @@ -32,8 +34,16 @@ export default function ExistingConnections(props: Props) { }; return ( -
    -

    Connections

    +
    +
    +

    Connections

    +

    + Connect the workbench to any MySQL or PostgreSQL compatible database. + Use or to unlock version control + features. +

    +
    +
      {props.connections.map(conn => ( diff --git a/web/renderer/public/images/database-icon.png b/web/renderer/public/images/database-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6c0ec4e9b60c41821fffc9396eb36c779b58af10 GIT binary patch literal 1746 zcmV;@1}*uCP)K1&)It*1r@b31u(PRFqv56py~HqKRrTe#-j= zZq1>{F%*|EQ*E&@et`c9Z6$3n6c^G3YfM+hO|pQ}mIAJ~5g`(WTFVS>U7~bj>L*Qm zk+ztRP*QOxIY>0dkjmen>y%V1X`K0G-$7DgERHPA{8bpU+*a(73Kv>DoV*gQei$rNrk8`W6T(A z#87ukH+Z|px#Yl@!T%c7eiJ1gLvblRSS*b9L|sC~X@jA-?!{LY@TNa?Vanl&Q47hX(q zd>bd`oSI^%8JS(*yK9MjYY$usHS1 z7-y)GGHhnWXoEpj`5{9_xc$=8|HIoM*S>Up3KMvs_%u{ff`D&vp-X8>TVm>W4)poL zrr~!;gpt0{zW(>lMh=8y#JaJR>*Cw43PUQaoJT9%m@_8$f97#ypCB>9^tBDcP&~n9 zj2PufHva|WiOUR;W8V;Cj0A&f5%w~4f1e6lW&hwzQ8RSd$d!vQn}lpetLbQ;iE`Rv ztDI?5I3cD;_-lHu!Zg7`86P26*lJok=_y~Bt!8#%ip~NQsPd-u#xV)Ai;$Ji`1_{z z`2TyJ`vL3I>H^jDx^-97m9YpjI&=@_5u?IniVBk{Dom!RFqxvlWQtT610@xr-wxGO zK0N76$*y`MC$f0njYu$=-!8W z16}JdC7dAV+eGn0K^o}A=ECFHEwZqu1v_INtfMYA;0$)dFit%Nj z4VTU0arQ}i`rEpm=QZ^iOoNuTSpRKeq1f(|t|<>oxEvNwd87TzwzfsGk5kJA9X-po zGL%oTZh*)MgGz|b#&Wx{Z?&&;{stXq91X8uHZ_tIE5Mg~)Pa+iM~cVV^>))ri{Y20AlP`+%r z>SpTeA}&9mT00G9G(T2hVli7DAFQHdITc}!4t4t29!e@iMoFouyo56$DBWNm-a>Mq_!Otrtr%S~h%mCmxczz1V$ZUUH}S0e z-Z6fIsOhrLvwQ)UUs#dBbro&-YVFpbuI-8nPQqD0X~Lj`&8zhSlQ-e0p}Z09^6z&U z%O#}oH$k^#ATne5K9UI&@D7<7s(i|0h6M=5@)8M2E=-+~ie%tgMshLg^eRjpTV0TW zgN+Wy;`%qJIedn)*bXMlCU!lIe1S@=L!GA&{^lR~I&nao)xm_>hFy35bMXB$tfx$r o8q3Yb?O-r}LnXv2a`U-;2TKO6F Date: Mon, 13 Jan 2025 15:46:24 -0800 Subject: [PATCH 2/6] connecting lines --- .../ExistingConnections/Item.tsx | 22 ++++-- .../ExistingConnections/index.module.css | 67 +++++++++++++++--- .../ExistingConnections/index.tsx | 15 +++- web/renderer/public/images/dolt-logo.png | Bin 0 -> 27699 bytes 4 files changed, 84 insertions(+), 20 deletions(-) create mode 100644 web/renderer/public/images/dolt-logo.png diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx index 7488a223..76879e55 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx @@ -17,8 +17,10 @@ export default function Item({ conn, onDeleteClicked }: Props) { const type = getDatabaseType(conn.type ?? undefined, !!conn.isDolt); return ( <> -
    • -
      +
    • +
      +
      +
      DatabaseIcon
      - - onDeleteClicked(conn.name)}> + onDeleteClicked(conn.name)} + className={css.delete} + > - {conn.name} +
      + + + {conn.name} + +
      +
    • @@ -46,5 +56,5 @@ type LabelProps = { function DatabaseTypeLabel({ conn }: LabelProps) { const type = getDatabaseType(conn.type ?? undefined, !!conn.isDolt); - return {type}; + return {type}; } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css index 33dd965a..51222268 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css @@ -12,15 +12,46 @@ } } .options { - @apply my-6; + @apply my-6 flex items-center; +} - ul { - @apply mb-8; - } +.outerEllipse { + background: radial-gradient( + circle, + rgba(239, 242, 243, 0.3) 0%, + rgba(25, 46, 61, 0.12) 100% + ); + @apply w-32 h-32 rounded-full z-10 flex justify-center items-center mr-10; +} + +.innerEllipse { + background: radial-gradient( + circle, + rgba(239, 242, 243, 0.6) 0%, + rgba(25, 46, 61, 0.24) 100% + ); + @apply w-24 h-24 rounded-full z-20 flex justify-center items-center; +} + +.dLogo { + @apply w-16 h-16 z-30; +} + +.dLogo::after { + content: ""; + @apply w-[46%] border-t border-stone-100 inline-block align-middle relative; +} + +.connectionContainer{ + @apply flex relative ml-10; +} + +.line{ + @apply border-l-2 border-t-2 border-white w-16 h-36 rounded-tl-3xl absolute top-14; } .connection { - @apply my-3 border rounded flex w-80 h-24; + @apply my-3 border rounded flex w-80 h-24 ml-16; button { @apply text-base; @@ -48,7 +79,15 @@ } .right { - @apply relative; + @apply relative w-56 bg-white rounded-r; +} + +.delete { + @apply absolute top-2 right-2 text-coral-400; +} + +.delete:hover { + @apply text-[#FF8964]; } .err { @@ -56,13 +95,19 @@ } .newConnection { - @apply flex items-center px-4; - - svg { - @apply mr-2; + @apply flex items-center px-8 h-10 bg-coral-400; + &:hover { + @apply bg-[#FF8964]; } } +.typeAndName { + @apply pl-6 h-full flex flex-col justify-center items-start; +} + +.name { + @apply text-sky-400; +} .label { - @apply text-sm w-24 rounded-full flex items-center justify-center mr-5; + @apply text-sm; } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx index 06b4d97f..7567c993 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx @@ -45,6 +45,18 @@ export default function ExistingConnections(props: Props) {
    +
    +
    + Dolt Logo +
    +
    +
      {props.connections.map(conn => ( -
    ); diff --git a/web/renderer/public/images/dolt-logo.png b/web/renderer/public/images/dolt-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ddf53c11cd08bcf8a2427310cd9e88f83d34b59 GIT binary patch literal 27699 zcmV({K+?a7P)a z*^KOUCKd+>vNQ<|43_p8CG}>b&=B zc9Y%B=AR?6fA8IU?m2bpRDJc;x#!;J_I9}||7sprJnV_X&{Lo8zS(&ke^IvYA;;4f4%;6NupRPo>^Qw0jP1K; zl^D%xyYbR?@cLHky4iZ;((=%A-@bnBn!R1_sJ!g}uTX};-+Xdi{fW))u5Jc+WjEGg zlU3B%ZP@!^u`ql~U58z)^nmqGpY0a)rMXBsp4*OI^JRH<-5lhF>(_4B+vURYwgXIM zH~5#$uH3wN^HaX~ll!6DF~+^@sJ(3U)^&|#SvnPxEVQmpGA@CyhNheNoS{EWU+X9S?!sdmo8mg37M*U?F@6mhQ2vt`ORUfe!Cv-qW_-fD^TTfza9;%qka zYc?6-xdOvAp&uxxuzqqeDyl(>!3}2-gHE66A;@IqCmS{~`k5+?gNIw%(b_maj?Rv8 z#?z2b+*rcC_-Ehv+L!GuP~OxIup9o5)|WrG`10G^#O}+K*4fA~a+1KZrAqoed7F`A^7rJ9v(I@I1^ng(-hS?|j7XHuu)pe84 zBxHB+->a_cg{x1qLF@6;G@&8?lvnh;z+`2~7`5WdZ&pWmQ#rtH_&a;l$XPcvmh6q+N>zscw?DQI8UjZMs z6PayJnkDo#N>%7^=*FIUvpK?>!U1-w^OJS`+%`?Wz0KjH)9DuSFGSSMV75gc*TtRV zqrp;p8i2?kt3+}98Ai_B!P*jJbGF^yLKlzJ+(}Tfc15BS$jMt ziP>|kg$tLUQT+^-LarYD_JMVoo7ZU9fzBAcY?5W%m>bKzHYd{;M+Ka}v7P(UcmL$8 zziV&c@`iPQT+aOcZF(+Gr#RP2UwBqHxfNYX z;rE_@&fXy94G{r8u&wTR-2DA*3a-wa*rw3j0Ue3oIDLKs-Gx!id?A+%7e7a7(&WQW z^@uGJx?) z>}eVG1kKxX2s7f#J%zc?rXS=4XfAW`FFm|0UwlwE+dYsDaNNmV*RO24ygb>KPE<$r zy=d0wX-F{qq{W@Yh&7TLEDq{i+jVMrQJtc-Fg`~Gp-^W*CAk@9rtA&QJMJrFi}0_m zp7P@2NYn}1&0%XIOFBg+1$s6aJ(B1XM-izt0oD)bvpJR7jVE%tzw4}J8L zpZ>{u^N%;RJ#Is|%Jf-O4|>*zUd~V-8+s21LBN~Wu@cQ+48FOB&~x)zg&AyU**u0VxXZNyur7{jdc8YEOAji_URI0f zhpU$0RO>WaKfL|(eg>(|aeZ}=RXHq6p?SaRV-zxm*CCP82|=aX)V9exreCZDhMh@;$CU+3ibbxVRjbmi)mC00## zE%+3n>-NS3btH4vJYf-@?nnl*zVp_rw|MQH>mFy_q|ao!iDiS_S|t-crwrl^;LRon zDhi}=gU}oKdE@|KENQQeR`GzPvzGCvz=koldjoVg`lz)lknjg|RpUG=1*!a~J94nn zL-cDJkcGx$(GSW2fFJrdfAxyJPUUrp03W*Yt5;&Z^uKS~c<*%Tbb&rOdZ#v((DvAx z)7=oY+7TWQM=lD$>&q$)?E}uySrsedsIz~Ak#`=S)<+58DM?wl{Mqo-)Rp955|!I2 z(eE6`DLGFoF7lLUZ9Ni1NhBOk0N)Y0c%8^lALERO@#3=F{A+)9{qNuRn`ZYt0_@A2 zoAG}o#+%eo;?SS+io_`JjYPyEtda*9k*E-uj&!U96)GK*vkYV0)|uFavsXd;@kx-* z((=5hmq>{|DogdT>NAC$Y7ovd3DE^Ao9AWJ4$wHzZ^K`z$_eMqRaiP8ZAmzaNgVIfJdQmY@z5WC=*lNQZTGp{*9fp1|8{5h%QMKE4Re$UfDx;V z&%MS4hWshqyiXm|3IBg5|C#J1%m;!B8tq zKi4O6RF0lwXn*C8;#fUO6=!GDjCQ7hEYD4Ho=0*-x}Gq!s8WeX^lN)LFm6MP&%SW| zt54Z|D)-F+cFrFM=Wj)q%m@-`v>L6wQy~D6m4Q?e2_By)59@HB&6Sp*4q1Ud$}F3A z!KyO34H~f05*IR0`a|C-BA3^k7&Y&lRoEG0UgKn`Hd)Rw!ZkSwm5BPMj>N+pS}Dy7=2mxkA^bwhbJ89?sniOY^XkQ$Inq&Ua=6OoXu74QyF#A)lSMp`9HtD3+L`Xo9qRx`b%7^!wX-BgPn3S6pinKr+_6w9TL-RmXNd+GpV zAOHH5t&_`g_>6(M`2|K)bzLb$)pHl)w7Lynl&8-STP|O4d@HjF5HV7ei9*3BBl`0R zVwi|#WrZ#)t>TDffMyymh6hoOz-TA>a^h0Dno9-Xvo6~Rr78%*2Rm6n+J~oIp^~-s zs|_rIf#&v0PAF2F`>cOsbAo$%pWvQ3z<3+m%|G5o|F}>6NI3K~is>O2+D_3JK!ZCj zGO1tY>8EjlN6J|!M<#~Hu_dFC+^90)_c7(c$N|RZrM*qTrn($&dSd48B8nY%wSl51 zOQM?mPW?C>MI4~Xnzs~~+qWWimokY%QSbv?)~KWzfepqiHeK&mGOpf1*}ZFa+M+{q zg6*>Xj`7Ft)wYRymILg2dp6-OTYD|$TsjxzQJ252!0mMrxU(zLGXNa(KK=uBa-)x+ z5?zgi-FTxaOZDt%VD!7R#6?;ot9BZ=TXhd$tSCmSguF%X%NBNOlq@N04DE0<7uFcayl#RRSJqro619YG_7?8Ec0(l)~qPbflt=B}^GH#ApTJ*T~ z%mk*fHCuA82#~8aythhcbhRayXxAmCofjIG3M4;)jB*=S8>(nzROpQQj7<5p2V5x4 z-6Xs^Bc3=x7#|5$k(24n4XbobjcwrN@p1K$$1dOa!3%fyfqS>RSaQW@U+aJL%;}cU zI$^o^E)gbGruA{qCd)=!p<5RS=cF{{dXS~APw3LK;PhB7&7-)$z4&U@<)y(eqD#IP z=sCwFt1@!m;6x^Tuca5Cc{^k?O5D0|FtC&SqQ!yeT_SHN+4$X6LBGFqG;0{z2|Y<_xAJi~GqtajYT(N;J+=vw03@Y*3G3 zA8qz??w0Xf?$H3@Xwr<>BGbN;sE`es0GrNZ*_`ekRo6_z?naSIuRKp94bYG1Oh)hU zQcf8!&Z)rzh}sftu&sg!WUk^c;*c&XI*xZn6QZaxb~6A30qON#GW z68z(J{rvXlvL4GU-e*U4!6owEF)3BtJ5TgFZq}@EWW3gNosaH;bI`ylXfp~c9Raa2 zQUd7*e?bhqAI5kNLx`My9S)40@*@LDYb)wD>>&Jv8ngtl0Kq3ZWkol0FOp$InZF8) zG{{`->TxhP4aQEQhp(kORa;gw-4$I7(HpCx zIFy35-Jl@}HRiPhvKA`Yw3QxbnzW^Azi~Hy^zSu0z?qv}jVoJynR=!rH4=ci9#m*J z1S<>EOoYcWV5c|YQYQq&o57sT7rhkTWk_EGTufSEjJB8h@m(;{QBtVwtg zhK6p9T3MqIvdR{x=c`^jKGCdG$C!_kz0eD?O(+S{BrsJR24#9gK%5>TyuAwve;@U` zaDU)6ErWhwqduFgUtkjCBzz2Yq$9#O!Aa8sYFDP2n2Jo$;>l!X^Os<>fN4<_oTfLK z(xGuw?I4UdxAJj;b5E8kB4_=4RM5FdPGB5@!N<#Q#fSmcB#*d>K1O%xS zCR`z4vOZTe)ehEK$L)dz3N+SpsgpgW8;%uU3vMv19K`unNtq_<9ut&xD0Ex=7#GHb z0sz{}?|JO;@Bi?HZ~X&%mBsB<7Cg_piFNr9c)VJiE^M5v$^~3(FAs=)nuZQ}&ev?# zpb3j5H%jheMTbJ=sM8#BoYZUUA`Ka*Mx8{a??1d;`pBzY6?)Ya=%7BE@$a9B^5e_UEnr9Hwf!-HedGGyF{&g6d3pp- zvBV%X;Cut6h)O9_ZBCQ_vQH->VhrV=iR>ZaAHp|4_6+|f0G%R~)3t7*o@xLOYGr3XcS9$h4XCMgH>*VIxSPLjx@P8o76qX911 z6|RW_8NzkOc>}%X&&f6(eJxuh++Icb;FYUS#(MJ)7_uzy0QM47AfCFVk3_TOQQ5FQ z4-L*r!8}C4I>Wl&^l@smt}`{{JQmeFBbO>%;=zPiZ7Tr4i}*Ssh4EaEX}p5V+!;04 zHk1WgWx5hDx~b&SbXzl{kFmcfafRPE^v&zpd|qZc@`?tTz=c>kWgHV!59ClPmxZEg zJtRpUlFDxuRDg#9WNHqvw|;*8g@63@Yj%g_RYibU*S~FyR`uqw{2rjglDL#bt$3kUDW7lrnJFVuNHENW|)j+DB7Svnvk>4D$JCGUA0*~+J zT#xqxKB~qX*TYJQ&CpYD?1dW{>JlPNjo-O~OOQb?qa8#bD_=4*Z!vG=P26NRX#+~b z(&(WzcdLG)-MH^rPmT&s<7xaHtdBQ-WP4y`W<54goK3y|gT0D!$4T&GAN}P1V|4$8 zb9PD>66-@JPqg3$gx+(8x<+uCp)jw>8=Cya57Z~n0S}-v4|e>5yYy4&kBAZ4Kk@?1 zxX35PO$@U!KCP4gg{mUY5!o01NJkm!R6EM4L@RWBMjwZEN<+}k0$~GqG6`E3^=q-l zlsUXscPiP`2r@*dZJ=SV>1zff)!+)v>t%q`xQGP%=lA~f`+wek_`PpEYj;rmPAcQA z&0D{hTO)mT6Vd7!Uzgu^Cd}!up^IqCMFD==mngFjH&v(%2tUSBvPsB|@RlrcngzM<PpVG;0M2zPKgCzi=lB z@f}g1{Wo~GZXf5myqy?-+BdfSy7+kW_4=Nn0_*%H20F4O=q(7UE&9m%Fq}mkh(_f} zS1iBDBr_VAtf4Cv$^Ko?H4vNIRGG}~^x0Yhx41?TsUKqe0pp)xKgR%rPunv(_mXSI z8oM}hNG*)hok1ahUI-Ko=(8^7AV;T2hpEdL8)Te0=8U+*^}@=-WolK>QQ4Ze=j>#E zp}C~(KbQO4b_d08w_?7-^P3l-{qb218Kz%w9LVq!)sK^N0%?NWqWSEqXi$@0`KirI zqNF`t~VTcf?PUD?B%+b4916nj`67eJ|vgwK&oWZ;x85sj!khnG>tE25(%;o@){sIrxX!m$QTOb!fF&jB5_9*spDb-e)0Dg zW4ZKi-|ija+l~NZ+4Cafuj3B0qxWak1SMQJDnltbod6f&tRjEEv`m4aJjD2kXezJE zOR7p51Lx1HD*42;j(_2x@Cc+ZN1qW*A{*8Ck6sI-rIS+w`Dw1Ob5`0B(Bx04v+6$wniL_kY#7}B>SG@u$7rQ!g3$#H~6 zmQqiRBX!)2ax3rMZPjkG`0Z2z`kxBZF>MTN+)2er)|4nABWTY8B+qCvAsEXID>m&K z5fcwn$=s`~i*wla>{iR35qkHSFn+W*aq{RGTJkCIGB$X^`q`_r)Y@c-BNW9n`H57F zU8FZ$cM=tjI*H1V(@TAV-d?RLS7+QxJ8t=c<_e4)L>(?;CY3dI$R>wF1bBW=c-Ssf zuSnlgB4g9-^A-g@aywDrwj#iCaQ|a+qLrazKq0p$Vw9zA0gfCo6d<@c6quh4t2ZTv zS4tqpT~s(KZ!k7OG^8;wLesz?<8Z)XElEWKQZp(v80^c@sP8QxA~9a92P7&-IDQ=# z7RgBCZpAJOn*}K8miQ6^SOP6$tM#!0g)zEJRb3KYLsfxcGUcvOdwzyZM9nCo>mrfZ z7}7#UQFlg8)MXL`&L|Z6Ti4IoZIoAx06Y3Gv3|2PUh&r?2{9fsiGl_2X8n_iF;a12r2j-SQq`+VCU_91?`lHlu-5%HXDmoz;XH*8XIO z2S774DXS>rU^YoUj*j+Dxp=E3T2|A-GD;9{JCdf#3-x9DhjdXv!DM*yVqFf)kYk7* zDoP`C67eOeqnV3rIpFvHXnpw=qrh!YAit`EOYem7`GlIWl+kwp zON{Xf>((NP&+UmaaoPpUkID-*Fxu+k=T0M+U+M->Lo-abN)C@w7;8m{PzB+uHB;C(gBV)JVaa; z!F@&mhFf~8Be^o5E+r3|3LY?4-l$ogDvQ^V=lantFTNCW~7Z$ojvm7_2p07 zEy^t&V0HU^i9fy4+g;SE!{kvP0tLMpd&|u zE&>ctU#7=fM5?hA6%YqnDvEic1uFoFL!7W)L^HSMIDjoOq?O& zOP!;Me49oJ=7U<5kJ-7fMYk^PLKYf+XcRxWy5!7D4^04&>JS=E^kTM5MR0x2Cy#J5 z+rp7-xPe4G(7~+^2Kry6{5Izn?x=whh zXL^K@sA}p%OXfj|j-g=f&EbPOM^r2Garxsln(UAOpb(fa<~m=gE39~8j1CPV&K%9w zkCnjtqT_zan~FbVi4)MOoy8-e;R#Hmul^~!pqzE>e8~4-ThCNLNWJl z=ikgQ@6(qT)GpjK)_I^IKxWK!>ZXf^YufjaV{ptdabAvE;!ns{t+K6ts3zX=HaNy( z*M+;|JKw#-rO-4Qj4z@aQLyY@di>iB#iy(20~N)Bt6aK}2aRA6DMHPZAm8k0 zA0OJp>)s6tuX|w($}8^gB=5`4xy;E?$;#4f>}a&ULl4J?3!fT$$j+3%ym|AM< z_})WJ^90;Ybe$;7Z@62#xU4N2JnkPCwAZ`i#1wcDZ5%DJj`dxc_&yu>h`=;oxPkI& zqHlCrbAU^YJrBCIH&Z0+2UP=8VN`Q-O$4#x6TkFxZol|*uw}YrD~^!%Cqj=2wxpko0+{N6Ii&+7&_wZx+GZD% z@xxPOj1x#;9O(ckjCgzf5C0Xr`8WSlxA*;wHHGg^@V{L*`@??}r38chxR`4G_+>$K zAv%;@;ZzV`Zvy5`LCb$r&7!BF0E)uRa>r*E?vj8%ro_E|-f1v4#FC^xE3b7Zv{>pS9(Wu2&oiJYO((E?8=Gc*EV*2*n?@Hxs~ZR7%dD(2NtMq@kPXGXz<) zXj{Nex)f{DuS9?9h!G~RPb)yj7(EbX`}o+$MuXlv)1Z?i_|narSF@>#PJU`I^~B$p zOXmQsR>4r8u`fSIDyWh=lh!IU&`=mYal9FSjaBZv8zO~R>Ql*t%%FTJL$A{k+GwnHBHV281 z{}THwFU#-ljG#Iu@^G_8bq21}k#I)m=(M;o7MsQN){QaCdCVoUx?mB(&P?Bgoijo( z4Rlp5xHJLzInG!~#7Wid*m`nL;LI|pKPjQDQx5lTrtUSEXiEVFB_i{vO3?Cz7fxCX zoQj$mBg&SamrPFhRqvO*LOBoR9Bp^x(TkUp<#uk36OCe(S6JP5%UOcVmhv;1)})?P z5C5U5$A9*`v7IUL_+L2z3PwYzrso$YuZNLkefeKPM*%`0YS6*VG}nN{vK5Mz-n701zijWZJuE>)dX~Y^EHsA)z1~ zCsSob%t#|?$!^2dWMpWkVu;_i@z+Qa{ZHgf2c!BcOcYfd1E`)gQb*Jtse0FkVSdm& zb5H>iBe;Qdn$bR>?@$Uw0JWM^_*x1pqjW*bP*1?~=2{IPC-+o_Ek63AmtSr_zuF_f zvV1Cts0Djgs7VX7oYG#UEJTz86UE$=ROMe46>~B*R7B_FZZJwOgXJ@)DK#QS0!}K} z(s|~PDCNR4^zqL5JXd=pTN}Z7bhY1a@UGkGWwF=P3brs z186_6XncXPSg#z^<`Z(}#uX($ng=@P zOO!Vo*Cv;#gDa{~(HW9&k2ZShW*At2mZ!HIYs@a&pBc|$idPnu?TpW~qeQm~FL}q4 zd&)zNmqSlih3}@!QDk&jk)nNS^ceq=F9>b(k`5=xMe)b(PI6WO2G$4aQwjBRLU-T- z1rm%#20|^)iwNt@ZioKzD8@eYfENOUaVMyD>OEXEiDY#x1n&wEG#k!HjlR;h%HB%s zvKxTN>^))d)Ec&N&Xl_94ZfBK&;j=4&#nC{r9XAnAo9zL6-@c92}HKx`_PJ_I4#Is z@8wodqrzP&L{cZ9XK=g~weWjm+<=+iU96x-OduNK3b{-UJZsS>hhcHTia!Kpi#9o> zzC;lViKuzXdke(PLQMR=9ZJX^~@ib)Mrxi;l0wc(6$0)#|-Nq_24* zMUgvAFqWFwgf~9$fNFWiu=bD8#&d36rAWoGFGd~I2z@gh8ki!1RlB8P=~vaSD~ux= z&` z37mhZuB|7(Ts;A!VAvH#fkhRUo&{-(5u`&8SE}SMdA3!UZf@hz(6PVlxn)Al!%4c;E*+W zf%D>^)KthCtJ;~>YG8o6Y`n<)$F??Rzl2BCF1PS@fwty^Aj~sZrY%-0l_M2?>I5C zX=G429*73LG}q@?ApacF-56`Dd)K6~0~6aZ;!m3xFQ^MM zE;soXdbXCA6{zcLdX0T?=D4*W08F7L+=2k`aaL^=pEV@87nYo8o8G)4xO zO4@vsTJoRZ5hrcPCXC1_t`%({G1C|?=NE@)WA9Oh!Th}a!N-e3OZ|p{gIG?}#w}nP z91Z@OGm$MMDeQ>-N=1T5frpE=(h&qXb!@qGoK}K)Pk9Pp`~? z5VT%ckS#L`QaeqU#tbqxkKvTPjIZNMaOtnQFz1*@88*CqU)P&g_XC*&EFb9{&6Be+ zv0|gqHe5P>Aj;NZ5#xGfw<)M&R))RUQeLDJHW^}p1D-?8#4aPKwK;LOiLIpHHD`gD zP|S1mLFa)=Gw<)-f&Db)?z8b%KVH*KS z0T&JYk$2xaCgvx}_=900F>3^MLku|W*sx5R18_60ijka3zmQ6s3IRU!Q5id#Saa*3 zLqK&QTcAh93Qrhm>8s@%oR-V`zrz81=l{ad;A->Fz7U{GLkX_}#vN5b2@HtuTw`|* zektp&n$|+%4AzKo#V962Oyh+AB2V*7n;iC1S49U@FG*bf$w@M@jDbP%iy!ivpZa%g z-5kKoZr`9^MR9~8L8B0Uw*MdAnLF>>(r!0e=qsrb2c8BBj5bmdhoQ^V=kYS?0@Kz6 z`=_iimPH)6IU0-JlkvI2biABIBYiMCb=edI&fqB*hIiz=59O6ty5F|zbr+?sd|+@< zvoid0arY)wX$POhWoWF`E-)4zXZZwIT|8P?st4t#HVp+7DWAA<=I+&FJ)#+Av)c>m zX9a0id`kp&bF7 zcn8C%5mjUGX(A`?_oxvwvO0O1AbX#la%(Gx4)q(CYB`9ZMsH~foG?1x$0XO3lQGhI z4Jox7c#$h!`R*eBmiTX+KW^timU~cg4Afc}>4NpZDI%Wt9@aBwO#n(-(I|OP&?vN=^mkv_VJfx^#M4k#ouvrAKntH9Dx&+nn zZWuVt2E`$MncPfDr%NC z868W7=WgybbA_~xEImgWCUiEt8%|hDq0P)X=m|x(Y{FG-oB!Rsyh*UUR|Itz zPXP^RO}qO!_l)W=yGT9PV#H}l;L(QCvADm-s1}H?)@-2^XgH`z;=Z@H$h3h41Foi2 zK-a4(*Q%aG0qbA=;441Ed(VqZ>EJI&V8DzBm`2iAT(I0HqV9R5Z$lgVKy_uUrYP^67Os>FdJA3c)s7)kF{wx?mte3iAP<*A4w4ItOYk zpArRoAG&cOGkL-_eW782PNQJ88jT{P#6m{Yn%LoBPC!YGR!E8n)qh*Jk({BNp_l+W z${AJ!JZd)cs*k`zJ{P`S^e8sN5%=c7>B$Ira6GxdE)0JYz>ntzaJ$xVZAQ%KjX~i~ zhYO1~Uv&MjmeH@{p#&>%9+fLF#e^cY#*opd#~^{w`fiFM(T55B6l zk{^oW$wd~0(=#^^<8vd$AreKmH3Qpi7r7#xEO?rTSd?pgXD1Tbx-&};5&=S@8Dh3z znHNSB^`lDGc=VyIkIOo-=-qp-SP^n+#=UsAmB+Y=<&%sT(jLgNXyDXcg9Rc;H1|?( zbYmbXd0mFf5s(O-Sw=;_Hr;uq)3~;Zz!CDf_xsA_(*N@vTmI>H489F;yIx7K=}A~9jz3=SkV&f7iQFu zZ5k>=nOqPAO^1~aA4OeY5w*qJ^9GwF$YY?^?sj{<1P?b~FFyoah391lM2Z+Ab>SDs z85f|DX)x5vrr>R2bN=Q)BJefl3IrsgB86!?8va z`%4TX>e=c-M4~Iv|yrbV!H%4 zGZSVz;KfU#(APi8H0-;bEgn_C^Rl8S-VR)K>j3E(GI^EY(PWF!t;U7mfUKgo^z|U< zWF&Bk7x=aHp*Rc9&IHZkrG3dQ>c+^F_XQ_hR#_uRyP_nz{i4PXe(WTpciI|rqT-dJ z-tyz35)hw>ZsdyvDyb~p0P0-r(7p_{AA*TOBEUT)RrVCksn139L!EdJ zP3ea-fO`!*Vf49$M;_)oJr78X<=?x0=9++YbQN#f-*t{mzY_fz-v;6Rdi@ z8E>t&9FXc54aUP{(a2iB8-JR~*Eyt@NU$V!l%dmMgZ-P>z?3t>I}oqb2Mc|@eiDg^ zK=x7}n*z!y$MHuNIe_KZQIV>9g(qfXgnGC9c-F-N#oL{H-VP7Jr4Xh5Y`B125QlcKIpW8ehACM6t%Ra7;3 zBeV|O@X{&>jZ-HER80dE29FJsXH~2;?xsN8-=p9%pyPbbl^}lIH3*F-%g|Q6zMBRd;#1j9y86*Y$>RF|WG)0dK^)9Q?JcPV2GM!Wt}X=$SU{Wr zwjed3H$bBSPEgloNDbwg;@2h?8A;7>+`YY+((O)i05Tr=Zo}D3BiZd1m!WnI=6D_I zb}^XZT-wyQs3HM#s%%eCaM)Sp@feG?Zzn@%M|t1T8hZ*%5mq^*LAbOX&=fbcu7nipV(I!H<3BwJ6AJj<>n&OFJi@t)|32{)m zyu)ttTpF3FIp-MqA29&j{j9`g#PM)zsSkC+amHkJw^1}iL*D%Cci5C>dpvZs#b|E4 zsbWgx8OjPV_RoBu&=f)}Q;p1j+NMCOv9#yXqw=i!6A)>rRrxZg5(Lf?QH_^N2e&)sj^~1`)yRj=_JRpye;%7=|ME zBtmv?B5E5SL!nRM+F&LdR-ebu zt?(k}E-0hr;#%p$sC*GUk7n4xL^%4Va`hd4MrtI@7)RimCemu|sAPI&(ekt^b|)oF zcQpov64}ogh9l-4{3rDgq(5LyEvzuiT1Aj*Se?3)19Zcly*bRN-IiY`7^VXw%$txi zCySupdg((0H8*xfRNWRdmhHofCSH*>ig8fw5|Hu;*qO#dRu?s3b-^{yhme@c?u|9gVkT3e?FkF1ZXy_Rjo}m`H^>)fjxrUa4VS~YR~m2HoRu|K z)u9MR!p3Ofy!)RQHwxt6S47DG36yP)VeMeyHhn$%EKL_uLosK5w7dG#f=@L(Gz$Hi z;DUo+npq3+j0$-OO$6sgJOl!H^L-N|vW6_TSDF&S6!`Bn08prEe2ABmkZw^HG(PIP zSv7-?k=r;$6e0)6&BOT8@u77AL_CS59p>VTn$ zVfrL0bOh+-rKPoFoDfGiRXwzGWP>_`i3?sBd?>_`?zkYnj3_j)W?w6ma0-;d|5eq+ zFS8B&i8k;9@mhqN{ZT{-WAu^e=6+}Sz*NvK_y& ze8Y4yijGBhaV#jfwnR@TxDncxc{tvQlmRRXq9TI<(Zjg>hxaVx=Zz9^$rYd?u!uIe)dqx2q+y^Fj~Mi5jZ-L*dG>N3 zgp3<|{CUZmRoC+O2#=x!8Jy8sCr0BkCq5q_Mp>G!n`!USzct|AWmvdxbc{jY6sJ8D za(E$ZuJBM3K2I#^Y-!O`5BTP!eRmQ8q%BijcksBq5?1$PqF}U=c+e98meITLE-UDu z2V@cizp#_14TmwWGjwD`u#hNO`y*v)$IFIO0|E%DfZU#OQXFGLbzq5H9X{EaT-z(6 z>vhXR*Wm!6Bh`!R#5{9OKhMvc01Zru@XE_lF`S!_e@*Ny5CgNR^t77O{m;5iY|*+^ zWz()-AWWOIj7yk#UhXp1RKlHMzYNW+_;m`sz6wto#TksuupAL|_kApDwAph>{40hG zXBop@hj8u^onSmsK+^yRQM|b_?+BX^7WM@BtN|dWdvb!13XI^!VVlhk6SS3ToK|yy zdJ4PopDhA}YXtBjZj7t_4wJZsk9KQwDpod3` zk~P^}ZiA5|Q6=?&&4P&Y=gTrk0b6PF*5UZO&~_j}H>i1^v-5wnmSItcA-y zlP2QW;!{!IpWl<<=amXb{yKMlChD+%V2n#>R?x|tOVNGD${v$~1ZY~)D&R&omu=!& z$NOHa@fNkWL@vB#0_fwD{=#TbWsmY{7)ay{j5)e}!yWZYaS+VLlBL~I5P)qIj9OA= zYZDXd+~oki<57w9@q zXXach5>aEMM@8SB8&p_{*$1yv=LYWMj)_0yikfu_ua45(EYNK>h1Pz44z2?d!3%6+EYp@7fM97}*Eo|5 zmEsKD;&<1=@JQ#Vr)qXAn=Y3&3Uuk_^JdEV+{N{sdbSdPITw(=MJz5e(@KW{W514s zQ(2xdMeqWS;~#VZBIjVdL6mAi%NsK0rDPP^pAae9$q8j0KTTpdo9Y>hJ#12r;|5ebV(InoH@ zOuG$`;LR>Wft@t2eAM~LjpZHo&KnrJ$kIrh7YM==oFqGggiAIF&rg7JBvnUf7;B>5 zm(7fQMsw<@{tQk~uel?}a8i^Kg{p+;jsMG)!$B+3p^e(TCD7Lc)Fw z1~$DFAeK21H6nRwRY@rrJP_*ykW%@pIA}yYj9ugkronATS=nq}$ws4|5LUTH4Jkjn zHl$$&HYIk7M<6XOKqesmbUJq1f9S^bYcGB9qo3Fl;YYUwVfK_sys%1+D`nw#pou|YqA9AbePML-CYrMyM$W9I0LSo~7Qe+jeSf$8gky-A zu`tiAZ8Oq{NQ(~QSQmEwlva*gRgFowGum!9|AUVn|J}7x#vfv~2HQbIfZaKDBRNj0 zt_-mv0R}Aj)2LMdsL*HD*SZsZk4D&TN&!qkByPaMhqst{(J?cO(5ed@4~?&Rv}~aa z6cj9l4RJCrFc@~0*InQL<_pICIVhrseDhP1K?_4~F7b~QXON2uyf!O8!2<)(8&5;J zYyq|0n=lfFt;BG%*-`<)qARNweE4OHG|3Z!Lne^f>siVGyhdP&pk|1l;Jy&|Sk4vg z5Nu$~!iA(svw2ehbWZP3brc0kgF>@GMRR8PZ%6y2S#IrSgNz-1p3%d-Nz0Fk;R<|S z#v=}3>o-O8X(VQnRGt~Bg?8-p*BZ?fg`$1e7C~PWGOTEl*y1$aNHJvc!pt>Ds!%zO z{d%xkgl+a0z(j^Rc|J8>KOYFSh7=y2%@0JW@dqXsO-tOQR;A}V21OR}kjlYSLB9cD zg8#}hAT}v&gaeTOfMnBwemEXjLy)2bPi2Lo44ope+~y&mi1XHXiV>ek?G*7 zAp=r7A68LK1>ptB$1or-x?SVe6@lb?Ce4U*Il289SpkPh1hEN`qRGx@0geetdJtU@ zj1e&_#A*^t{?!lc^(g+Y{=#g6=_ap*B687#VL|RaDo%6PjNKHyf@Z;E-XbpNGoT@z z;L}Q^1Nc6QTjR26jU|%w0bVWRA=>*XP0di2i#M?d1=_P=wh(<|eD*6LcK~D5Ku+jJ zqz50L*ZPIRp{#t&&g6{*LFGG^8S{Mh>5}O~PO}w1TVJ!qa|ldzs)Y+tS%i4wOusZL z)!p0ezvUnOGkZOX|LLEl#v>Y&p#Ph-*qs=KBcTeEW(9W|;4yl#lQ6v290UYy)D`pf z@^{Qfvrf-B7N@CAaXBspWO88R=UN>C%B#CffoE^~h3j9xwtqexV9$oPF0O+llio5>nL%mN9TT&go6BfYLc54yWg7uknu%Oo5_4geii=%pa>q zt&?JII{JTqv>D^K?S2;j^S?0vr{B(TICel*a+32lL>D7)dCb!$G*w=E7mkl2)~v$3CdVWh1Qb4t3Uq)a>^Z5F%dw#-h&6m` zxl+b2fdSoYgf*|?b`Y9*0cNjxGHImikFTBht zjkNuUV-+Ryo)KBL2(bLo^>ZL~*UR3Q{~!Nk@^3*7n?B}nartqG++=t$vm3>kYGQax z&4A2=&2&k&Pn@WO)N!y1@P#QjP|+q)EMta@cEn&!FsymQ{-YolR~_KC-GsV^?{t87 zT)OmhZ+70|T4SbHX7Fm^E@KQraC#GIUfMlhgAo#^$G;P3jG>HXIuglRa93zoE+-j= z&J*ss>8l>nHaM5SPRiyZY0fci|6iW|hwk6{mv%49PJJ%@oxewG=EHI_?xZm;Vblq& zgnoQs?67IdN9e~?m?@Q!=o^N48?A&_h&jE_XO-`{P&1t{27r=`0WC#Na%AR{lhAAl z(239*2j$OxKjAuct71O((NBDH`*YcSmZd%u%}shXrPI?LTX!MflX2U4wfX^7%c-Z9 zkWNE{5XS9mMm>z{^gE))xU)W^0hW|RLUfqSti3w0w$&JQO-mMQ=!fnc73eAWc)I*N44j^``lMQhVz%SpZC1~@<+Bmzv9K2Og@i>U`0wj z%Q?pPvNSB7ur0=9SsOmWRt-Lug?DIkw*?)5`ED|?@_-=S8A^)rtU!cpXg8t*j-_Kr z)|ES1-8?jZH#hQY7d4>xH=Z~D`ad~-IO90+$WPm=Ej!{LhW|f(&6fY=|1$f@%j$U4 zIb~5fjSf+u!BrfYM{BQFH8FlmASafjt_dQ2-mUKHCo~VF7Yqw*Re;AR6SXPm3)O8- zo>EEQ)I&_6T6L*BdJN+afAGC;J%a-ewXT=-XssKxNmP38w{eTJS#?_tz=G$rzOeyD#AP1vNH z(%UZMa_Jd8w&<64*+bX2PQGtbQ6n*(hH6=kijA6ab!H?$RX6#!Ko}sZe9!4iC*mmN zxrVAadd}BQf6G8prfLxN1n&$RS%v|Lf*rCK7tXxSHF{R~R#>8;bfc-ZgAE#ezV=F? zZNs-I1v1w}02fK6F;Dq9mp`&Qj?D~n)TkuGZ=wQ+mkIXaAuUHQDXFCFF~9&SuQ3T; zL-L$tkT@V7I*4KfK>$*9eCPVLr{!yRfc<{JzA-L>Vw5l|Zhny7b<>125{nX>J*|^l zTvg#}F=$`LXaIu}W_(_G{~+@|{O0UvJG_M|PH%}@$dWR7E$4;G)f5PW_P+E0n+hPn z@#>W{f@30?Z07;2H0gF@F?>2cQh1+hu%b|lu$li_ce;$mf-`e zJS)|5F^v`7(YlGygwrS&k%d?*l!zH7>KV|mkm{k&373(L{%hNb;vt&M24TB!JoZ>) z&ncm+V}d*>B}bq*=U%$g^l+%rtU;K|XZ}gq1J2AqM?mK&I$~!O6@P_Pu8%)jMI}(< z*34*VwP@(SmlFqgcv+rmVmNeC))Wfg@+A~Hz2!M)e1@v4pi%~DN{4gAR2a_J#eu7Z z0+JM&dKQlX`5MlqvzrUQkB0hc&tADkl!G)1a;Dvx7gGkq;DlpicvIG~W;5`T;dJhoK_e5M`nu zrwlVxvE$7Q)vxFdU&e^t=E*jJ>?kCRjJ=2s*28)ldxSOdDUf9zU^)X+vJP+piok|N zJZP>t)*1A2iADDx6lcV(q0ohn6zcv31`=Eh<0U7472pua3wC@M-{vpX7NO4mYC zWXzCNj#bzRLk`oP${8v=s8P^WuDx*m+KpM5Qwp@VyV_Gd@)!w*w(2GbmX+M6!Ff4G z;g`Z*A|uyv0#~K_OCdGLHg80w=uDH*vy5I4m0_d#Rgblk85(K0? zWqA~jPnpl!rp_?w5h5Y*nTTl3hy2WeI6Z2*?O_;Zbg+^!PtF_NF{K*74H$xX4KvYc zA*w-R^eREIJeTNSfpvId4R7`{nTMln1pX;IQ_ecTyT)DNmlW+?JZzqH={8?fMfgy` zbh2uKQ!U&SCoqS;PN-1o28om#)0MuyY_2O4GC%be2??mVmRfA3Vg=Mag4>?J0;nd3 zJSoV=GC1H)_|ZJ577SgCFUpB1J)tn=0zPX3XoL)eiYQH&tIJWVRx1)%>ca^_#9$e& zkrGjTO$)iwSD;244r$4im16h;ar_=V8kL|syI)VDX4@3^;ydip3IE^ASqC^)gCf3c z6Dpc@LKJ7fXQcgQc$f?XqBZmh2nW*VQUN~6i(}kmpis>K_b7BU(}aqXBHmNRFs@PK zFmm3s%~8)`^bkhEll5p~g=5x`XRP)}4g~m$KorO^m{1AEE$b!dcvh2d!WdV>Q3SL=|)qvW$y7h1NrD>drL!M?5mrW85sS`bL5d(l5Ju+$65$AQZZf9x=s zKYz_>B1Ia?JGW>=zYfL*-4P1TqN9j82boin#4UapO%Kv^7=%O8N|B zVg>H9am@5~_dHfnLMGIXIyRAK7M(_%I)|Q?W*d6&AB%FZdoM!;SAg_tlTs1?9pBkgYspfCvp)sWTUQ z7GxgvqQxwb8B{atdI6rc%v=eT*%nw6}FWN22Egj(D<Da^SLac0xF1ju(`?D7q&Lx;`~4G>IxOWIrb8wj zlICBp5vIB0%OWV?iq3SD2)8*5r9;d!=tKe>ruRq8Nv>72Xdd79z!aKCNDoHR*CGTY z7KKWlAd$;NasibPdF7{fQ?NuqUIcQN-+h*XUKwH(5;V*hv76~y4gHm&mK{{nEnw=-hzg^N>EACEzt)t zEk?iID${%+rY?h`o&rF0#ieIKQy3FXah&#&t2tA-T>gjO+lBIRUm(GW+Zm#S34xU2 zG>#xFVb5yoOzNi1ULN$C+nV#bKVjGG70U8T72dTx^t)IR1$P9TPu@sWUK(xriu;+YZ7k>3iU$j>!ujl|{NmOql04b=b0w2R{ zYdqtrVXzWGa4a~x!5$2gqI|;3$3TIiye?Fb5LMWGz{?57oYC>x?Y>g%gk=^r!t7F_ z0^y&iR36Z4h1U@#LY2q8N5|lEwG+Xivdb2|lKGhytj%qJ@+4GY@{&%w2`Ubyl1Jw7MH5WUxgKTFP`Pvz5J9FwrOQ?-5JVy? z;sj?~sRvq?eJ76A(4RcJK+r0(Ca9ZM;VN{P6{TuURM*zH(r9zswe5x!iPyk#qkK96 z$;@Om3A)Mqjx=Fi=o1s9)@_my^A!qLbv|&9C~%|EW(rnVMi4Qd77$^GuZ;eCxh)6S zJ!xz9%QC16ZGsq-6!1Z7NP847DO;9@I&!k~_p2nbs3N@}D-uAW>UQxR%edV&i)Izj z(unwX(25?##D^)Hv33c6J{IWSYBmDE6gH!C*>RjsleMIbeBR|Ib9#5XC`ychEX#6R=)afS za)7-gpL$8`94s+cgYdw6o;#q7FUU0_vC(@oteXT$*r||1vu67FW`?Zfj1=BtPd8#1 zFWt5BO5`+N6e0+TQO2V3utggBg!U$46zW!_%B#JMy@3b6jU`Fac0>hryeQ|FPOUkV zJ=qY&w<32(1s->*B59D*+{n-H=+jM zyAci2!DdW%Wer|ALg>+YLQ)Fe^ zB~v@z%)X25N=4mgrr4%PoV6BgYdldpv_?IkQQpAAJe!#&tvRH81CI1R<}M=|j6kE7 zmjS^s7!3^ih=4`N*a);%y8rTa#2p{a@V2Yg9l){XAnRHhzgI*Ikrk+%y5tbja2TOD0M!rZ9CdZ72LvpgV(OmGf%zB{cigBe z{pf=}j2IP#0*SL#a+47~<%+Y4gu+B0vP^}(ZmhS-{ZVc^0_^3b7jFFMJ&#@fsja79 zvz)k-Xn-Y_I-wq_FIoybWoGHu=`3V6UXC90b@E_xp3Z%o$S*Ka&=J#aiabA1%8LpK zOme7#X=&8DZywE!DXi$AhVP&?<>E>R>ff2}$X_^1=?#9FW}xTm;q;0ml?T+nUfLTv z%I|nsr5wHIFb$0f;<&b-H~0*vnwEe`2n@0pVYiMV1~`cAPiXJUx3%PiCzq7x4W&0;IH3%+u(QVHzWJt<72P zMq7@lyK+pN7+isdTE?pa`H4o=R?3c)>e*>yb(lmW$RWejjwbVFg(%$|j<-f#-{fh1 z7o!OtR0bF6|1WwNA)xyDacFuAaZLCBA~*`|t*F@3k(^K((TBMQVG zZ?2!UX~LMh$RYXc=5_Oh4AMwrfMvoB6gTJz<38HjX%Dz(OSphCp?Qjkp)E>$kk*BHF@K8?>M{f%tKon6{g)9?Gx`^>dzum+UWdFeG*_GMF95*7 z8mCY5=cHON?)}_&4x)^oNS@aQK!d7`VxDUJgTsOz!63@7gatvNc8WGu^4q@8{&(zE zlvm{dFZ|=LU)yAUdNz8A2*Xg!rnh(v%cfrs+-jTZB8YpOB~c`z0M;6F-8i~YyPe=L zaO=#eVPOt=Rq-`4vD}m>n4G{*igO1Ix`vS+pZ!SJq%+l8$&#{2Lymmz)B(r$l4qcj`Jhnc)?ZH5XY%e@m>e?H?$FR#NY(2_>BNSR`o0a z&I;IUfYnNm&7HVb)2m==6VVH{^OnsxJCjV zO9)JQf84A%{w~N*BV;+$S^{C@%>BKjVMR*i-J-lq;AhwZ1j?x2L~JLkodfCcG5>NP z%pJy@IE_$SwkgybqDA25kVv{NW)=O-ycR z1-Ej{G)D|0Kc}}+C7In*SLp;}v~DLEyiNcdivl-;TP z9uTCAbDuFcXl2(aDj~sW{Ams81Zw=CLu1f(!(IdRL3zy%aO}BQmd`>sB@-ueRf?V6 zgPYExSJpLaSD+6<3VL&_sqvR*baI)%(v8@6G@+t-7ev9#=jurQ%Vf81_Hc}x)65MD z0i!u)Uv)|}V3>4OT65}vjspfAxZ`ZFNTC$QxNfUT$)}Z80~ifUI|N6J)4K zEL(#B5DEobbP`CfpmNR%Dp(2a^;J9Yh4Pvs0LsJ55sq${b>j-S`CcNd zfgh+vj}~AH%2_o7N(N}47LK@px+iow2#ml(l_BID4V~SE?0oECSz`g%dW{3vRsWR? zHqr)XWSH7@FkE&*6H>@_x`0Fn(h<-vi)x~xMj5}GNL=h>)U(qNVNA(=J{BTZoP-ji zOm=D`rOH*_02n9HV88PDhnI)GV0Wpw-No{OD_1Ws>&-vj^zkS=IFk_KxYf*R5HD)LOQA)T5b!8=#G+>z7SD>Tu53)OYI-o<`I*=qFoOx z%xm^5UfPyCKXx~$56WGkKq&i;(Vu?o@$YTpdUF4+Mm{@$^@A{ItUQ#_2W)qyGTvb* zxVNY+m8Jk*32w8>qDvIEzwWO^73Ty)W|ACOo{Y^V+fTs-*yU!FpBiM2n-uc+3N|>o zwHRp{qw^UE(46WK<1oGe|R&+<*H3sbK(R!jo#}3pkbH{A5L2)PpW+<;!KWz z6Gct|9-H52$R(0B4)3V!u8ck9?5N$MjI^hHi!GlkiFj$I%sWCFD?_I&<|o^k?abKb zsL=h>=#0T+B1}M`Xp8}&Ga$I|eVdYwE~wE%@>I*U&e0>tv|RGP_1)`Vo1aX4&Bg5= zmF@n(A8Z5sR9bXV9cv!$Sf7(bjEx^=vDaWRGk2aK3+yqVmuf;|hHnFJzrlz(PEC5(che@;k}II3?SM zb8Km+N@Z9jF+C*F#-_c9BF_%_k3daevT;G571c}p19W#W7RYuk)HCe zlWXJzMpUk!LQKZb+BE*Ohds|ps^o1VbCu&p+R{BK_bdYJWlxGd)~{@xT*iP86vF3T z{VXN1lc;gbIhWBII3}Q-OE_jjQM)i2Qsj5 zGAV5X#@*OL_^;p1q<1d&)B*N#tPI8a$J>A&IiWeE`z*8ZMphdkIG-|M=&W=>Q{1+v zXadRho_Tx%??rW^<%lr?p%BfKpZnwwX$lPaT_v+o(*bjtuUe6H9nhXr6fbq2b(FHp zqmr)Hm~bQcrN*pM^n`$%Qn~9>ScdDWKYr}gNb4WFSu35JqQv1k&xc>Sr^at~9~@vW zAG-3ZS0Wzz$~LY?t)2lM0-OS=z=PY^hm)C?pVW~y#{?Q>yU)7)~t!>=Dn(ku893AW>-;Dpyu3x)u_qf~_2iVKu1nZ@*#D0$; zK?gEaPBvC%bd^s$rD9`Jsb~&hGMAw%M^eNFy(o|?1HyEM3O9wEg7|I#6vKPim#Cr$ zo(2s=HqnE&SnxiEFx|j1Y` zCWW2DIv6@efSiEFe{zNCM!R`w7}Uw89$lRqmDNFXO1C4w_1!=D>K#4T`&!CS_I;W(dBg*X~FS>f&Z?E3%@5;sNFX z*C9i-&fDB71ZA#ft?yRh0I%nX!d3jRs4jyD4BLMpKT>?viT`Wo7oBNmQazMk5d#$X@{oCgA@5cy5% zJ$^e}TDG>TlQq>(NBgxONFs=7;$Fb7MqE$ISX*M8OSM5KaBr|KXQ$ZObAY|zzJO{@ z0*9~}G|@iSHus3BtHU8S<6nOLesTV}ylxJ#7u+YS6~{ z3Y~z;XU9bLWhK)k4ss{6$wN%9p%qpVI&ob>s5mOdQTN;=VLe@aJepiXmtck}RCWs1 zvT5s)fWyn{!fc981q5ZqE-O%=N7-em22K-ajC?MV^xlZ&-Y<3Ds=TfauopT(#AS^F zCMM90zUYezuPnkEs+tv3FIoYDV~EiAfa*cS3)xqE?dLX@@97M)h7RJ}Ok@ z4u|1Lq$|A)DsM8@&{oReX!dM;QpEldul=c&9W!gZP$LqBXwFh!O&w_F`&w@o<(}W< zx}9>*wnE%)*%k1xFCW`9!`G}#NfKT=PPnweFC&kSqldw?JqB^k_#-6jM--PGU&nvr z=|op4T)|>^+jy5ybmYrJiI$LQ^qxj-7|ytc2Xb`dds?`gAo3X7O2y#24=*U~I7V(< zR!eVB=QH-%XjjXbE3gCwkl(inl?emEQ*j|a(#u%wv#0ktf4zNw%EGF9YN*R zFTU_6U;lzVAmzR;gT7Mv;rG7vY%Y^t-E{V@JWPdxepHe?-NMql%;4nK4A-VWo|l=j z0u-iro*9LlVQWQu5W36Eye8tESeX{;mP2MiQf4?>291e z?UMobC5(PE$uve_btIP@+fu2W;mBs=M=xcI1m&}SFJg)f2GRtik7-+{2|vMCE>$Xp zIUQ~gw#_7(kiI~`3c8KX$T~r96Nau4Li&6DLE!u6$^#VvQ1&Ow-uKu?p4wFRQ=6*) zy;>9+wpPY4zUsA3=9}4~H*SM#<~z)V@Y!^($~cy~U3j(ht8P^w+TzH`SF|0?+f26~ zG<6iy87Fi5aZvEI)T!g?tsK!-y_$hGU4*7f$Kc(1!``lo-d-U-ZxQ_7!^`rU-@bnB z1$zL?0~rCdeBhTq@tIARpWj5ijIeuVwdg4Acv2u)5#%b)m|fj-C$2I6ju2wCl9T7s zeos24)rMWLRI4|=j22eg*eql}&q*vnUeS^gab70ayiSq2(i1cC^|truWSthr)u8K_ zC~M2JT6(|EUb5AG>(#!q^L~{FG6HD%;lKFS^>;t^3(qVO@7=y$(Mj`BShpb@6X?oB z{VW3_oy|u9^Lp#Vq>QtFPP-}29|h|L-J}oR_&@W9AWsAJnOulI7fRQ(Ry6;t!*!eFVEH5&Qk0(i^r*0Xdp7*ifAZZw`RYHg2fRG+5kN~tgYCwd&OLdj zu$Yi%e%)sZ&Oi}yp1I;TU(|G#|j-BJ^ zC1vSA6ZIBz+NzOWA5&O?KZVd9dvR;^i<{y9uDwCZ10MmjR5Y;nZuW7-5{V|tp~uQ2 zgchNm8m%-?wix8rCpV;8{xF}aFlEyJNs?}6^%M+PemyDZT>mVi_m)f>w??#R{oJ$9+8e06p(22mpTBbT$(Prgf7_;L za8W^?*XT-1i{l)3FPrj{yUE}jXQ&my5tk`=vWcSIv+=1p)6h+fwGvPoxqgl@{ zFL+TZb`#vgS5eeD{VMKX$8T(R$9`-7%?Nt~mN%>epgi``kAH6CD!;uAor|elHQyr1X+((V zZ11J*?C*Z(PrmvEdjpp@6a_k0wwq`F@ZFDnMmbi-M{!C-q3orb zZnS4sXF~S=Xh*l26tpXLZzY1<*SH1cnWc~d$7N<{>} zYNrq0oXZJ>UU=I9p*f|UM|p7)Nq?hn3vT`Qh@o=HhO?fKYFjvAcFR*k*hea4)F?2G@4_LKJ}YM z-PjrhLX?@7Zb$YSXAoSSq3G7AW)~&i=Y$_OudZ$3_C-lD?s+XiaPN0}Vrm2%aij{9^&!YXOb6(w~ZGjW_aHC%N7P?xaEqTQ-}6S>8a zc3yAKZ8hIA6z7%7+YWH1eDKOAp0w4U+_dw=W<1B13!IZAH@7Qvl%A91H2jmu5HrW` z32ix8TNiD2WzSL@n<!F9PzisrryzKz5P>z)(yLly6|Fz8)uckxL zF!dh8INWa``<-dHEdZHK+ZwDK5Kh!qg+_(zTO_-7bBX8P%GBm|%i9j{D#{1`t&d;5 z^pIa!SHB#wKCvvzl|7-Js?D7JmifgwM4$P-)E$Yd*=Fqi+-mmCWqJA8ci1~`ylwDz zR^E1iyHxh1`Y-J#m%}b?|Jh| Date: Wed, 15 Jan 2025 16:40:26 -0800 Subject: [PATCH 3/6] center --- .../ExistingConnections/index.module.css | 9 +- .../ExistingConnections/index.tsx | 92 +++++++++---------- .../NewConnection/index.module.css | 2 +- .../ConnectionsPage/index.module.css | 6 +- .../pageComponents/ConnectionsPage/index.tsx | 22 ++--- 5 files changed, 60 insertions(+), 71 deletions(-) diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css index 74117a22..5bbd268e 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.module.css @@ -1,5 +1,5 @@ .outer { - @apply max-w-5xl py-10; + @apply max-w-5xl mt-16 mb-10 flex items-center relative w-fit; } .text { @@ -15,9 +15,6 @@ @apply text-coral-400; } } -.options { - @apply my-6 flex items-center relative; -} .outerEllipse { background: radial-gradient( @@ -25,7 +22,7 @@ rgba(239, 242, 243, 0.3) 0%, rgba(25, 46, 61, 0.12) 100% ); - @apply w-32 h-32 rounded-full z-10 flex justify-center items-center; + @apply w-32 h-32 rounded-full z-10 flex justify-center items-center flex-shrink-0; } .innerEllipse { @@ -119,7 +116,7 @@ } .newConnection { - @apply flex items-center px-8 h-10 bg-coral-400 ml-28; + @apply flex items-center px-8 h-10 bg-coral-400 ml-28 min-w-40; &:hover { @apply bg-[#FF8964]; } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx index 399d35eb..01b24945 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/index.tsx @@ -34,55 +34,53 @@ export default function ExistingConnections(props: Props) { return (
    -
    -
    -

    Connections

    -

    - Connect the workbench to any MySQL or PostgreSQL compatible - database. Use or to unlock version - control features. -

    -
    -
    -
    - Dolt Logo -
    -
    +
    +

    Connections

    +

    + Connect the workbench to any MySQL or PostgreSQL compatible database. + Use or to unlock version control + features. +

    +
    +
    +
    + Dolt Logo +
    - - -
    -
      - {props.connections.map((conn, i) => ( - - ))} -
    -
    + + +
    +
      + {props.connections.map((conn, i) => ( + + ))} +
    +
    ); } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.module.css b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.module.css index 74eb0720..3ae3ec75 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.module.css +++ b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.module.css @@ -1,5 +1,5 @@ .container { - @apply py-20 bg-stone-50; + @apply py-20 bg-stone-50 mb-16; a { @apply text-[#FF8964]; } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/index.module.css b/web/renderer/components/pageComponents/ConnectionsPage/index.module.css index ff56adeb..32cd718c 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/index.module.css +++ b/web/renderer/components/pageComponents/ConnectionsPage/index.module.css @@ -1,7 +1,3 @@ .container { - @apply max-w-6xl py-16 bg-stone-50 mb-16; -} - -.inner { - @apply flex justify-between; + @apply py-16 bg-stone-50 mb-16 w-fit max-w-none; } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/index.tsx b/web/renderer/components/pageComponents/ConnectionsPage/index.tsx index 3bfc37af..2f734e53 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/index.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/index.tsx @@ -9,18 +9,16 @@ export default function ConfigurationPage() { const res = useStoredConnectionsQuery(); return ( -
    - - data.storedConnections.length ? ( - - ) : ( - - ) - } - /> -
    + + data.storedConnections.length ? ( + + ) : ( + + ) + } + />
    ); } From 20cb150b522b67541dc0bf90a861a170074c9326 Mon Sep 17 00:00:00 2001 From: LiuLiu Date: Thu, 16 Jan 2025 11:19:07 -0800 Subject: [PATCH 4/6] db list --- .../components/CreateDatabase/index.tsx | 3 +- .../DatabasesPage/index.module.css | 33 +++++----- .../pageComponents/DatabasesPage/index.tsx | 61 ++++++++++--------- 3 files changed, 48 insertions(+), 49 deletions(-) diff --git a/web/renderer/components/CreateDatabase/index.tsx b/web/renderer/components/CreateDatabase/index.tsx index 1106b18b..4194777c 100644 --- a/web/renderer/components/CreateDatabase/index.tsx +++ b/web/renderer/components/CreateDatabase/index.tsx @@ -8,7 +8,6 @@ import { import useMutation from "@hooks/useMutation"; import { database } from "@lib/urls"; import { AiOutlinePlusCircle } from "@react-icons/all-files/ai/AiOutlinePlusCircle"; -import { AiOutlinePlus } from "@react-icons/all-files/ai/AiOutlinePlus"; import cx from "classnames"; import { useRouter } from "next/router"; import { SyntheticEvent, useState } from "react"; @@ -56,7 +55,7 @@ export default function CreateDatabase(props: Props) { onClick={() => setIsOpen(true)} className={cx(css.createDB, props.buttonClassName)} > - {props.showText ? : } + {!props.showText && } {props.showText && Create database} -

    Choose a database

    -

    - Choose an existing database or create a new database to get started. -

    - {res.data?.databases.length ? ( -
      - {res.data.databases.map(db => ( -
    • - -
      - {db} - - Go - -
      - -
    • - ))} -
    - ) : ( -

    - No databases found. Create a database to get started. +

    +

    Choose a database

    +

    + Choose an existing database or create a new database to get started.

    - )} - - + {res.data?.databases.length ? ( +
      + {res.data.databases.map(db => ( +
    • + +
      + + {excerpt(db, 32)} +
      + +
    • + ))} +
    + ) : ( +

    + No databases found. Create a database to get started. +

    + )} + + +
    ); From 39d95b0b19d3e0b3b2c215f34539755c34c3fa7f Mon Sep 17 00:00:00 2001 From: LiuLiu Date: Wed, 22 Jan 2025 16:26:21 -0800 Subject: [PATCH 5/6] connect lines ui fixes, tab, color, size --- .../ExistingConnections/Item.tsx | 8 ++- .../ExistingConnections/index.module.css | 19 ++++-- .../ExistingConnections/index.tsx | 59 ++++++++++--------- .../ConnectionsPage/NewConnection/About.tsx | 16 +---- .../NewConnection/Advanced.tsx | 40 +++++-------- .../NewConnection/Connection.tsx | 31 +++------- .../NewConnection/context/config.tsx | 1 - .../NewConnection/index.module.css | 33 ++++++----- .../ConnectionsPage/NewConnection/index.tsx | 37 +++++++----- .../DatabasesPage/index.module.css | 2 +- 10 files changed, 121 insertions(+), 125 deletions(-) diff --git a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx index da41a4c6..f7b826c1 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/ExistingConnections/Item.tsx @@ -12,19 +12,25 @@ type Props = { conn: DatabaseConnectionFragment; onDeleteClicked: (n: string) => void; borderClassName: string; + shorterLine: boolean; }; export default function Item({ conn, onDeleteClicked, borderClassName, + shorterLine, }: Props) { const { onAdd, err, loading } = useAddConnection(conn); const type = getDatabaseType(conn.type ?? undefined, !!conn.isDolt); return ( <>
  • -
    +
    -

    Connections

    +

    Connections

    Connect the workbench to any MySQL or PostgreSQL compatible database. Use or to unlock version control features.

    -
    -
    - Dolt Logo -
    +
    +
    +
    + Dolt Logo +
    +
    + +
    +
      + {props.connections.map((conn, i) => ( + + ))} +
    - - -
    -
      - {props.connections.map((conn, i) => ( - - ))} -
    { setActiveTabIndex(activeTabIndex + 1); }; - const onCancel = () => { - const { href, as } = connections; - router.push(href, as).catch(console.error); - }; return (
    @@ -58,11 +50,9 @@ export default function About() { hideSelectedOptions light /> - - - +
    ); } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/Advanced.tsx b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/Advanced.tsx index edf8a1c0..d8d609bd 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/Advanced.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/Advanced.tsx @@ -1,11 +1,10 @@ import { Button, - ButtonsWithError, Checkbox, + ErrorMsg, + SmallLoader, Tooltip, } from "@dolthub/react-components"; -import { connections } from "@lib/urls"; -import { useRouter } from "next/router"; import css from "./index.module.css"; import { useConfigContext } from "./context/config"; import { getCanSubmit } from "./context/utils"; @@ -13,12 +12,6 @@ import { getCanSubmit } from "./context/utils"; export default function Advanced() { const { state, setState, error, onSubmit } = useConfigContext(); const { canSubmit, message } = getCanSubmit(state); - const router = useRouter(); - - const onCancel = () => { - const { href, as } = connections; - router.push(href, as).catch(console.error); - }; return (
    @@ -38,23 +31,20 @@ export default function Advanced() { description="Hides Dolt features like branches, logs, and commits for non-Dolt databases. Will otherwise be disabled." className={css.checkbox} /> - - - - + Launch Workbench + + {state.loading && } + + ); } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/Connection.tsx b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/Connection.tsx index 02e3613a..da34066b 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/Connection.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/Connection.tsx @@ -1,29 +1,18 @@ -import { - Button, - ButtonsWithError, - FormInput, - useTabsContext, -} from "@dolthub/react-components"; +import { Button, FormInput, useTabsContext } from "@dolthub/react-components"; import { DatabaseType } from "@gen/graphql-types"; import { SyntheticEvent } from "react"; -import { useRouter } from "next/router"; -import { connections } from "@lib/urls"; import css from "./index.module.css"; import { useConfigContext } from "./context/config"; export default function Connection() { const { state, setState } = useConfigContext(); const { activeTabIndex, setActiveTabIndex } = useTabsContext(); - const router = useRouter(); const onNext = (e: SyntheticEvent) => { e.preventDefault(); setActiveTabIndex(activeTabIndex + 1); }; - const onCancel = () => { - const { href, as } = connections; - router.push(href, as).catch(console.error); - }; + return (
    - - - + ); } diff --git a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/context/config.tsx b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/context/config.tsx index a2b14785..e0bb7d65 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/context/config.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/context/config.tsx @@ -23,7 +23,6 @@ export function ConfigProvider({ children }: Props) { const router = useRouter(); const [state, setState] = useSetState(defaultState); - console.log(state); const { mutateFn, ...res } = useMutation({ hook: useAddDatabaseConnectionMutation, }); diff --git a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.module.css b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.module.css index 44959eb6..ae5eda83 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.module.css +++ b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.module.css @@ -1,11 +1,5 @@ .container { @apply py-20 bg-stone-50 mb-16; - a { - @apply text-[#FF8964]; - } - a:hover { - @apply text-coral-400; - } } .panel { @@ -17,7 +11,7 @@ } .tab { - @apply w-32 text-[#9AA5AD]; + @apply w-32 h-10 text-[#9AA5AD]; button { @apply flex items-center w-full; } @@ -39,8 +33,13 @@ } .databaseForm { - @apply w-full max-w-2xl mx-auto; - + @apply w-full max-w-2xl mx-auto mt-8; + a { + @apply text-[#FF8964]; + } + a:hover { + @apply text-coral-400; + } h3 { @apply mb-4; } @@ -110,6 +109,15 @@ @apply mb-3 text-sm w-full; } +.form .checkbox { + svg { + @apply text-[#FF8964]; + &:hover { + @apply bg-coral-400; + } + } +} + .instructions { @apply mb-8; } @@ -120,10 +128,3 @@ @apply bg-coral-400; } } - -.buttons button:last-child { - @apply text-[#FF8964]; - &:hover { - @apply text-coral-400; - } -} diff --git a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.tsx b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.tsx index 502eaa50..8c2c50a7 100644 --- a/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.tsx +++ b/web/renderer/components/pageComponents/ConnectionsPage/NewConnection/index.tsx @@ -10,24 +10,31 @@ type Props = { showWelcomeMsg?: boolean; }; -export default function NewConnection({ showWelcomeMsg }: Props) { +function Inner({ showWelcomeMsg }: Props) { return ( - -
    - {showWelcomeMsg && } -
    -
    -

    Set up new connection

    -

    - View instructions for connecting to local and Docker installed - databases here. -

    -
    - - - +
    + {showWelcomeMsg && } +
    +
    +

    Set up a new connection

    +

    + View instructions for connecting to local and Docker installed + databases here. +

    + + +
    +
    + ); +} +export default function NewConnection({ showWelcomeMsg }: Props) { + return showWelcomeMsg ? ( + + ) : ( + + ); } diff --git a/web/renderer/components/pageComponents/DatabasesPage/index.module.css b/web/renderer/components/pageComponents/DatabasesPage/index.module.css index baaf097b..662940e7 100644 --- a/web/renderer/components/pageComponents/DatabasesPage/index.module.css +++ b/web/renderer/components/pageComponents/DatabasesPage/index.module.css @@ -11,7 +11,7 @@ } .database { - @apply bg-white w-full h-14 border my-2 px-8 py-2 rounded flex justify-start items-center text-sky-400; + @apply bg-white w-full h-14 border my-2 px-8 py-2 rounded flex justify-start items-center text-sky-400 min-w-56; &:hover { @apply border-stone-300 text-link-1; From 8df872ec1aeef44728eddb926766c37264e903a1 Mon Sep 17 00:00:00 2001 From: LiuLiu Date: Thu, 23 Jan 2025 10:59:00 -0800 Subject: [PATCH 6/6] db list width, margin --- .../components/pageComponents/DatabasesPage/index.module.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/renderer/components/pageComponents/DatabasesPage/index.module.css b/web/renderer/components/pageComponents/DatabasesPage/index.module.css index 662940e7..fa0c36b8 100644 --- a/web/renderer/components/pageComponents/DatabasesPage/index.module.css +++ b/web/renderer/components/pageComponents/DatabasesPage/index.module.css @@ -3,7 +3,7 @@ } .desc { - @apply text-lg text-center mb-10; + @apply text-lg text-center mb-8; } .dbList { @@ -11,7 +11,7 @@ } .database { - @apply bg-white w-full h-14 border my-2 px-8 py-2 rounded flex justify-start items-center text-sky-400 min-w-56; + @apply bg-white w-full h-14 border my-1 px-14 py-2 rounded flex justify-start items-center text-sky-400 min-w-80; &:hover { @apply border-stone-300 text-link-1;