From 6a967db711f5eff42af762f127444d1b3d2c0183 Mon Sep 17 00:00:00 2001 From: QuietRocket Date: Wed, 17 May 2023 22:43:22 +0200 Subject: [PATCH 1/6] fix: type field adapted for computers (#6) --- src/components/Send.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Send.tsx b/src/components/Send.tsx index e2eb5087..9d9efe9d 100644 --- a/src/components/Send.tsx +++ b/src/components/Send.tsx @@ -72,7 +72,7 @@ export default () => { onKeyDown={(e) => { e.key === 'Enter' && !e.isComposing && !e.shiftKey && handleSend() }} - class="absolute inset-0 py-4 px-[calc(max(1.5rem,(100%-48rem)/2))] scroll-pa-4 input-base" + class="h-full w-full absolute inset-0 py-4 px-[calc(max(1.5rem,(100%-48rem)/2))] scroll-pa-4 input-base" />
Date: Thu, 18 May 2023 14:10:01 +0800 Subject: [PATCH 2/6] [add rsync code workflow] (#31) Co-authored-by: GH Action - Upstream Sync --- .github/workflows/sync.yml | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/sync.yml diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml new file mode 100644 index 00000000..1bccddeb --- /dev/null +++ b/.github/workflows/sync.yml @@ -0,0 +1,40 @@ +name: Upstream Sync + +permissions: + contents: write + +on: + schedule: + - cron: "0 0 * * *" # every day + workflow_dispatch: + +jobs: + sync_latest_from_upstream: + name: Sync latest commits from upstream repo + runs-on: ubuntu-latest + if: ${{ github.event.repository.fork }} + + steps: + # Step 1: run a standard checkout action + - name: Checkout target repo + uses: actions/checkout@v3 + + # Step 2: run the sync action + - name: Sync upstream changes + id: sync + uses: aormsby/Fork-Sync-With-Upstream-action@v3.4 + with: + upstream_sync_repo: anse-app/anse + upstream_sync_branch: main + target_sync_branch: main + target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set + + # Set test_mode true to run tests instead of the true action!! + test_mode: false + + - name: Sync check + if: failure() + run: | + echo "::error::由于权限不足,导致同步失败(这是预期的行为),请前往仓库首页手动执行[Sync fork]。" + echo "::error::Due to insufficient permissions, synchronization failed (as expected). Please go to the repository homepage and manually perform [Sync fork]." + exit 1 From 7e446f111489552b044004e90a77fb0ffbef3104 Mon Sep 17 00:00:00 2001 From: yzh990918 <251205668@qq.com> Date: Thu, 18 May 2023 14:34:06 +0800 Subject: [PATCH 3/6] docs: update README --- README.md | 7 ++++++- README.zh-CN.md | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 144874e8..369824c3 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,11 @@ Anse is a fully optimized UI for AI Chats. ## How to deploy For more details, please refer to this document: https://docs.anse.app/self-deploy +## Enable Automatic Updates + +After forking the project, you need to manually enable Workflows and Upstream Sync Action on the Actions page of the forked project. Once enabled, automatic updates will be scheduled every day: + +![](https://cdn.staticaly.com/gh/yzh990918/static@master/20230518/image.2omctdf8bbk0.webp) ## Frequently Asked Questions Q: TypeError: fetch failed (can't connect to OpenAI Api) @@ -69,7 +74,7 @@ This project exists thanks to all those who contributed. Thank you to all our supporters!🙏 -[![img](https://contributors.nn.ci/api?repo=anse-app/anse)](https://github.com/anse-app/anse/graphs/contributors) +[![img](https://contrib.rocks/image?repo=anse-app/anse)](https://github.com/anse-app/anse/graphs/contributors) ## License diff --git a/README.zh-CN.md b/README.zh-CN.md index f920a97e..4863179e 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -47,6 +47,12 @@ Anse 是一个极致优化的 AI 聊天 UI. 获取更多信息,请参考部署文档: https://docs.anse.app/self-deploy +## 开启同步更新 + +Fork 项目后,您需要在 Fork 项目的操作页面上手动启用工作流和上游同步操作。启用后,每天都会执行自动更新: + +![](https://cdn.staticaly.com/gh/yzh990918/static@master/20230518/image.2omctdf8bbk0.webp) + ## 常见问题 Q: TypeError: fetch failed (can't connect to OpenAI Api) From e6f476896e6df8a7f2bfc6dea3b2294c682f10c5 Mon Sep 17 00:00:00 2001 From: yzh990918 <251205668@qq.com> Date: Thu, 18 May 2023 20:42:05 +0800 Subject: [PATCH 4/6] feat(openai): add models, adjust maxTokens limits --- src/providers/openai/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/providers/openai/index.ts b/src/providers/openai/index.ts index eb9c6db8..8464e50f 100644 --- a/src/providers/openai/index.ts +++ b/src/providers/openai/index.ts @@ -30,6 +30,10 @@ const providerOpenAI = () => { options: [ { value: 'gpt-3.5-turbo', label: 'gpt-3.5-turbo' }, { value: 'gpt-4', label: 'gpt-4' }, + { value: 'gpt-4-0314', label: 'gpt-4-0314' }, + { value: 'gpt-4-32k', label: 'gpt-4-32k' }, + { value: 'gpt-4-32k-0314', label: 'gpt-4-32k-0314' }, + { value: 'gpt-3.5-turbo-0301', label: 'gpt-3.5-turbo-0301' }, ], default: 'gpt-3.5-turbo', }, @@ -39,7 +43,7 @@ const providerOpenAI = () => { description: 'The maximum number of tokens to generate in the completion.', type: 'slider', min: 0, - max: 4096, + max: 32768, default: 2048, step: 1, }, From 52310e3945f20945cd16e3c0f5a829ed08671d8c Mon Sep 17 00:00:00 2001 From: Diu Date: Sat, 20 May 2023 15:25:12 +0800 Subject: [PATCH 5/6] feat: modern UI (#34) --- astro.config.mjs | 4 +- public/apple-touch-icon.png | Bin 6237 -> 7761 bytes public/icon.svg | 1 - public/logo.svg | 10 ++++ public/pwa-192.png | Bin 9347 -> 3574 bytes public/pwa-512.png | Bin 29264 -> 9374 bytes public/robots.txt | 2 + src/assets/zag-components.css | 4 +- src/components/Main.astro | 1 - src/components/ModalsLayer.tsx | 2 +- src/components/Send.tsx | 13 ++--- .../conversations/ConversationEdit.tsx | 7 +-- .../conversations/ConversationEditModal.tsx | 2 +- .../conversations/ConversationSidebar.tsx | 27 ++++++---- .../conversations/ConversationSidebarAdd.tsx | 13 +++-- .../conversations/ConversationSidebarItem.tsx | 12 +++-- .../header/ConversationHeaderInfo.tsx | 6 ++- src/components/header/Header.tsx | 2 +- src/components/main/Continuous.tsx | 2 +- .../main/ConversationConfiguration.astro | 17 ------ src/components/main/ConversationEmpty.tsx | 22 ++++---- src/components/main/MessageItem.tsx | 9 ++-- src/components/main/Welcome.tsx | 2 +- src/components/ui/Button.tsx | 45 ++++++++++++++++ src/components/ui/EmojiPickerModal.tsx | 2 +- src/components/ui/Modal.tsx | 2 +- src/components/ui/SettingsApiKey.tsx | 4 +- src/components/ui/SettingsInput.tsx | 2 +- src/components/ui/Sidebar.tsx | 2 +- src/layouts/Layout.astro | 6 +-- src/locale/lang/en.ts | 6 ++- src/locale/lang/zh-cn.ts | 6 ++- unocss.config.ts | 50 ++++-------------- 33 files changed, 159 insertions(+), 124 deletions(-) delete mode 100644 public/icon.svg create mode 100644 public/logo.svg create mode 100644 public/robots.txt delete mode 100644 src/components/main/ConversationConfiguration.astro create mode 100644 src/components/ui/Button.tsx diff --git a/astro.config.mjs b/astro.config.mjs index 10584f64..58852168 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -40,7 +40,7 @@ export default defineConfig({ name: 'Anse', short_name: 'Anse', description: 'Anse is a fully optimized UI for AI Chats.', - theme_color: '#212129', + theme_color: '#101010', background_color: '#ffffff', icons: [ { @@ -54,7 +54,7 @@ export default defineConfig({ type: 'image/png', }, { - src: 'icon.svg', + src: 'logo.svg', sizes: '32x32', type: 'image/svg', purpose: 'any maskable', diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png index 23cd324e158221d8a96ff336edd15093a70a6410..b7d55ece9aa3996748270f219ea122e1998c65cf 100644 GIT binary patch literal 7761 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 Gf&T}&Q0l(` literal 6237 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 diff --git a/public/icon.svg b/public/icon.svg deleted file mode 100644 index 6b1e17f2..00000000 --- a/public/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 00000000..071ce80b --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/pwa-192.png b/public/pwa-192.png index 636c9251c39ea0d54e61f4632e10d0fdd1e0c798..319d9c0be8dc4c671125dfb8237abaf995a468cc 100644 GIT binary patch literal 3574 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

ryu)S zJgMPs20yhXAqPn-wg88vW>GPsFaf$5jpY4d}Zu=#ngUDRy%<)F4 zFlT_D7VEv^qTn5lHU@Y%ZMpjY!Z-r9AEKkxRHlM8nFKS?DNcW@9Kh!qn3tWd3cUCB zJPUi?V{f z7LU|BMT;Q^6*$-3ehEgIXmRqxGe*dh7F%I>OPcnx#K-qree!A(UW`Z`{OD?6UsJv2 zX6_U4R8{dI7~&fFnZ~*m z=7{-$U5ZLxo(u?Vf>kHvKr%5tDi3FIS`?m{?FjrP-W<7CXbXWdf}1RDV+@QezKe~m)f8=o#(^Vx&Bkg1i7*@pEgXfe%2sk zTtMS7(E{hF#qK*FFy?vmOHf={WQ^qg*lb?G=-mPR8xnw+v3-P?`B1bm|1?=_Zjk!uM^-M%xHI`0R^{|y!f4m#%rFKP4BlAY z4*u=-=-XW}7^BMuoJRJOxELJ%Zv#&M=x5WgPqRO-6%wFCeoDNeJNI2hfQIU0m2xFy G=>GuAxEKNe diff --git a/public/pwa-512.png b/public/pwa-512.png index cab76357e68f3d50458bbb2d04218147071d1807..7b29ff60d886ed50717a52a655443fd0c06f3713 100644 GIT binary patch literal 9374 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 QK@k9}ZKzdv!T#2N0h+q+x&QzG literal 29264 zcmYg&2RN1Q8}RcU2gk@BS>f1am27crWk&WaR5HuVJff^JG7DJ|iI6>yO~}j$QIx$h zGmh`|`~Cjk_g&YyuGe+F?{nYxbKm!K??;55j`}%LW>Nsax$7D#`T!u{KM?>$1V46s zMh@Wzt8bnh8zFYIR?=Wc)4DL|jq&M&gTUdBir`!F zN4z6?Msn16p?KMPu+P7#=5+W(a{rVQh=T_#f4^;hiaeC}+_m;RJ!hQ=JTjhrJUn`I zLPLF$_yVbcLm&<*iCIWuv4IN)@0qYP;GFgD{-I%gv++ql|DmMk$+N~EmoTx>RH(5i z0wF31|2~8sk&O`6b64b~A+X5d;3E2P#)&(27s(IG0!e*nvHBO;F?HvxilB1jKz7{6 z!xw2neyICDN=R|bYK_I9r2GdD+HfM|*{i!`5GmG)$$|1$LBa#V%sHZu6uTLpCr6up ztb9E5l3^h+QN<|u4m`0jJ#m!4wgU$7dKJ4|!!P&4kZBwkXclRIsF8xzzoAh0ofMON z&MF;ZwK#p&FP$o??bQpQ1_>py5K2f8hz5m>$x#m~+~b0{P@6FY)UC0Wiu}3Xz+z={ zAtQEuS0teD%?o7x4UB?Wioxk?5*uNx!funQ%IWhLNLDTw)A{99_qPelNSn!XR+C`S zvMFEq2rFt!GkyhXaC_)`vLXpelfwnMrD#e*03nv`)~DXPCr|3wz~a~*I3!pkz=*Wj zazQj2F<2{X{?leV(1bWpZK@W%d@aA;_r&Us1dT=t<^)ln4z1ogmB|aF^lOnAkAuZS zgQ$&eK>~vnYlVlL**q4XI#7g|QF6~e5f^iJl4>khtiuQvi7|{>w_)(2@mS%G9U-hY zbewOE&aRRvi^I*J^njaw8*1cZ;|v=%@LYb-r?JAV2@NcAO54V&f&YLR=Y7~djat8; zSD5_{ltjMmS>?}tjTo=PSMXu4fs&W$JsojBUSdd*9z5-?z~A)rP)WsuP_DAYH0bFv4oH{a z+jS2vTyV`(LoiSec%$Us2Led9P&iAnT;&waf_{X@E%R=`SXV-vu0jncmB7EJCH z48~Z@pB<+HHX_31zsB_uz)&sZ!*2*!5}&dIB52^!?uoE&#E*DDlA_6>-_$zG23#Y$ zXxx?U?Y3Ypv~k(Z_9yCFLacju(V$`>)%)! z-iRi2^Emk&kgW1W^g0$<7K&rseHy_V9xl%l*XM?y14NX10TI)*fV?;;&(*D*96n80 zBp#hPMploURZS9<@HWx|=cOdzZDTjM0bkjlH^BsLvG7MUJefW8O_{KW7-`CwRImtK zY_r}CPsr^eHV9gD&@dqnIfL~9ElP&_1l~}`5gIY&rjNkPdHdzd%S(y+zPtD(u#+X@ z1oN6Z_8ig*+Dr&voJKk^!Su&Mn>Pv&;2tDJi>qWp1q;K}Yv7QGVIT+1UZyU%%9-gD z8H~U+4;tOrMYsuL-NC%<;_G4D2fMydNTm`21(DC&tX(ZA& z!MG^t?&N_Q7(ihEVUq@jC&CO&bvuU^5IC*gAO&QvF6L4IH`9~batvm90%tI~d=a(P z1Lvv#O08TsLBePdu{R2)frY7c-WVe4sv_cS^8=`065v7`$F9MD4VH<+rojzQA~)@m zq{gd)Tl!~UID)xJ-hiri-yyMPwk-O}grwgglxKyePSOV@Wd5vN!Bsp5Yph9&6a1X_m%-I0N9+ zVkA((jx7aV<&?5Qu+qZ-q%>?UVsE4Wyb6(j;jIdlG*b!W788qpKDcR%J>wPzQ9w2O z4SO#CCIEUjmV^Q*5mHi#Ozn>U(q^GNO8}Hr?V=sgl>!4F7{QGK+Fhm*@cLU@%H1<9 zg2_kg5zS6HePoIKiolYc^d7#jyLtwBRy6p76-P=U0weJC0xlj9$;eGCMxU+FzzHHY z2+pI?n!Thw`1@r#U}R%0h!n$jv^7NV@2<&Eg23%{xc|>5CPHMF3z1m;WkGO=6p;9r zqcr0QI8*c=pGuoO5Jx(P{>0DGPYQAqtmgMg zvC~3#RK@;qPY;H-peurZ2}(NdHMY zV{DG!3>X;XeCDD250+VH1R2CCfL3@cpsh;+<7k{drNAaxF?0V``sah#hloNz4!dL% z9BrQ%0_%!@lMJkGb~&J(B7_t6+=-yjfnDu;$?Xhr=$sv$Y0DOCA`-J;-OIPb{?b zUsd%c4I0Uezf9{#+T5LXOGU?EF_^7(^b8 z3CL^;7rZQvdsaP#2E5DJWO=Q2{{OD!2D1UwmjjbuZ^5c4PJ~10{9{aDU2vlgzKniU z)4jzk1XIHY`Fyv-!VdmSMX^X`PPdog^)?sTYzeXY?}d^wkcPe?*5tkkA}pRGwS3-hB&i#FEnH))Tjh|AE!wb!!NpvN6MUz+xW> z1Qw-XL*>nOa{toWK{KwaA}=N&LraLe1!P|%BTCP#0Q|$eM&?C!eR23!vhyeh3961w zWh$@!r?L!CP9+gD7cf~K`(XO{{=f7)ak^!O`#VMb;(qa(8w8F_^1OVWG5znE)xc>Z z1L@+XwNT?I2xoZ8t3}xHk1^n$rGmJ;2<{w7Mkx<0J^POzS{x+};aWX*9K0y3 zBy=nmPqmo(-z!$$&Af2drIP*^Q}(w&$!HL7*qg?GFPJ;naPJjNOtJs z*wdbi&?0OQ*qn5&myQ4ONdxDGpjDYS;j{ICY5(37udHePuP}tUW*4O)9Wv}bU|lYQ zZdd=OPqWD22=t>A+URo1PS`R%;J`-c@Te*L@2wIdEVAoJr)}*mIH1BQ>Ts*F|L>JP zB3@-9kH7wh_2#^8CE;3SEHB}W34zlRS*CA%|ItoK<)f(*T_Q_4 zd8UdA*pF*Ep?m+6q%!g_s!P)A_gpCOp}=)}@hVRK58Y)%e^i%%*KfN*SPyp*qQhU1 z_x~p|xf_|u;k}iYBUTz%Aw%^)Saj5`beT%3w_uyANzj-vmG&G(H-g=@9>)=-_baD)q$o zXba~v$tr^Hm0UL8{K258P)%?@vc9K3_`m*>$eEhENVu^4jREdyzyn-PI+A{^MHMYqmFLEno=X zj1X(sJV=q5r>nl$!IF8m51D zo4@D=a{R`tj_Wv4#2`OfS1x)}nerQR%IT^*mDG_FZlUU{ZW0qa8a-FkHE{#V%s5#Q z2TlxBdSZDwE^R2A?mJ{3oSRkZyt--v$nEOZR(F+GU~TW93U553Q1YIlNJyMuj;EvJ zaGTTKT&rp-3M}hAI6^!#?J?E+X40u+2X?vL*mS)WRVJ5ikE`6{Lx{Tk_)`$dLIF4V}xN5=v0)0H? z9{&6*pMdPxPBsoFz3^x-+P!Nj0?EpkdGR7u?eUd-S6JR5Q&(P(AB5q7yY^~QUD2|f_l^yiw$_;5C6Wbu4hJv) z!c3cCp7MhsCW|csGvs^)!fcNqa%bUOgszX&@`3B=4@PJZ=!(Hmpqu8UbcDQ~aSrW=8k%+hlHd{xy zpAk4SOR)ylfz$rGoDhWgi+QMN!DAI%8>DPB!!ahthb*UdN&#!j^XyVo!RD@2 zJ^qywCt4~)7w2ClorQSz=?))NdMj@_3eIdA%-Pb{T$w<4&k!h7t#V5sD+))OwnY4i zO(Y5Qw)*WgdPV)5h{L7Gs9QmR@l4`!C%tuTuF`4V?fk_V;zHPg1sXy0LY`*?b zhLM1mtauC0reb&f{qG@qumF6d3>WHMY!O+7#Tbt}cVqNXX1ASS&nELiZs@F(>Z{FpxBdOoADrQe zd~YoEGg{{-75^f+ll$cXJV*9}P|Qx)M%Eak{p#N!Ws8~`RCEn(W5eEW6I10`A!=!~ zp@9Gy$h}1i=wS~jYe2yikqXR%*7QLp9$&SFL-`_J{>*+;z=i?(PiD z+%dyix*)$TuMG;EI*4)7_SlBk9|^bQ6ce;C1zOOfIDAg{4~VupN}q=KmxtFUMK&Y^ zX(s5`daauNi)hy5?~D*R)^*aE+JEmc#b6$?B@yS{icOqZiGSVIse(Av!8~-ei6IW2 z`pv7BQks&T5%^@2o-1p4=k_Ber$Y){Usa1Y75kWp6lqLkxK&KDho(B{B^cmwh^f!K zi7?Aj|L!lA6AGJ9mdV1NN(eex3c`o(_Mc3U^KoE0TgPTd2E>u$caX48;_~PgU06Pq z?6}59++4T*%vF~my29g-{S z!(Dd;g40#)9+WW{(1XL+L)n*}9r%Z+kYQ%V`Kzfhd-skT!?_y>d6#6t4FREo-7ELy zZ9d)BT5erh}+%G&Ok2qbD;^X|G&e!;W2%6mRaga6gBJ~beK>?$oRuQ1gXZTwWt zuiHfAKlXi*>#i;1rLwtR8hhbdn)@=5?xzdHc{3Z&G??a|A$ORdYdVCLHK7&~9D3e( zy?pX?BK`nx^)Fn$+viiYkwlSQ#NFdMs$hzAHqtJw#FYm2xGGi$lr7%Vui8|Xyw6$4 zAn>$0^NJXj?B~z0?83xJfobwKW^QjVJ=4M0*xkQ>Y`(xnJEJ@g`|C6-@|5@xT%vJn z(0m-x@WX)nRgqnW-F9)2aQ0;ra|ZtpvL*QiW_~VaRpEva5+6dLG`sh9EQUKHVX}C@ z?^NNGQBS_pIZn(<8^eCy12`r+Uu7Eopg29?o^@BIF0Xy;6C;9B4&^ZM(tTJS5wFT! zP$Y64PK$0CfR)v#j3gFR{=_Hh3zu03pOQI0MK|~sHSNwcHWUR~ILO_i&|*f8Jp5eu z=$Nz$LE)3Q3nZB2!~7T=nve5UEUWC~@j zNZ$2ga>#yF(~zOBr*Mp|bzc>#JYVn1>hHHsvUu@<6ALXW5!zr!s9dS{em(b+84A!C zz>5&n3WG^CB)VTAX48^lYIplD-uQ5=)7F+X<=H7!oHxyG{D^fx?uau`<9(2JGQ>x9 zg7*t`ts!~PjL>8!UNnD*znzQ=I>_7!*?IrejZkz6mFZPsEVkoi<$Gxs{}B;5iWv9E z+%3h$5qGqYvP?`M?qv|1GTlQoXQsQ{KMF#^b*)RZgfBmU0~*|$2j&Q(%+Bsu zW|A5mUeCts2!@rS7fe0^N|`#u2kJ9EFLuKNHFhJ#bU0K ziU(PJ(6^a?^^W%Rsq-{ZaB~PJ0TFJjf`$I^73H$cb2gtnyDgds@&^UnJ-np6GoI}6!b+iOWXl*dONH+sO5UB%k;tT41`jY@RA6cBr#rF4Oo!d zd{Bjkv|b}yjIATO{5E*(R23E|r##%10wx@25i55Q)){>v*eQw2k6uH5*C0AiZ}WMk z7m_m0%;*?}XZgYmbT>-!EkseL3NhgU%gH+FSC|#jJ5d&b=zX3RG!wLm#x_Tsw`V_s zYqjJ3Qoj|)5C^xpOODCHSchKlAkEf^b{fdK1WMa1Dw#;E-RaRAjj4Lyj~(ECJbzB<_z<&B?)Hx2vy2ReBJ&cNYdP= z#t)|Cd{g+)mbBd*oM)-vQ7E^TH6%MW+U2#2; zT!?UABBvq5$m~3?mdFYTrh#of7Ai)I-LV)WR)l6ZZSql@od&q)#KHOB9a`_QLe^A^ z0r*1$@bq2cJ281Wurwg{^IM^c3j0)5ds05Ifiiu#+3?bY*j8LconHH4PVmC=ZplRg zXuv)Pxx*6J*&4hiLj2^gi>A^8F5$mb?hkjQy@*Q42Lnfn2(`EE96rPxIqn>!$5%;B z4k$8x_&9Qu2WO{}2|T1p$A3KFYS~hvq65Y3?Xlr)MZs*wunROJD9KbwSP5oM1RKE4 zO=>3_6Tmpz&xozn*X+OFWn;ANkv>MV_=tSqgf8$;l^aq32!_6rHYifHi;CK(r3Mxt zr3P{u5hKJrBUV)nu4p1?nmPC3@N#RjUBMB9EWxA|BEhNi9-cuLA_Y;wcRMVmo?;_V zAmA`Vo-nqL1Flm)BUhW2vDvD_MY@i<(vEl|(E>^O;@mv8t((6PHGSBZ@|dHL;8DMa zg&Eo*s*nw>$-Ta4x;WX&`76}WCITD!o>V&3+{-Tqh&mk8XX;XXFeCqvUTTHuA9RkYMbWz|wGFSnq^o>G&l-Z>o&*h%+0>l{k(aG*E; z63S;#;<4<~(h$;}psSk%ox-A`<3bgTWtVTF3~UnF`?^58xKcj~_kS*Dd!ozQKc!Sj zxhLuqf{Sv&EwdytxFrYL@I}pYKH!5a`4o~^QsqPq4$oOGNuIo>G7_ zwe1@os$bIRKlk5zgAPba0peTzDGGfg#d_w_n>6}}zrW;2HQ2xWSbgTlD^+hJn((4a znyXXr05{8c47$wxJpvySX zq=5tMu$-2u7V4Q=v6=V6Wz7jCj0k!pifGcyDdGuw8{ei6eD3lZMTA@RHcgB!GQ(c^ z9@xGX(rg=1Z3q?#11iKlODB(W3qRi>J092IFeeGu9r&PXP`)VmfaLT*x74H>>0ILd;cg@>9}npYpLtj5H}U-@a9lGs_2`fdi=4F z%e2n0!JT9Sz}?Z!(?CHR7tu|Mr3M|<+|3`zhP4qG*U91jeMWrE^P`L9#+nahL4J{Pn+CfSW)ndP*m3COlktdB3VMR~)Q> zs}*7wzv-l7yAhfG&OAv%W({})1-NpLF++NAW>uz}WjkEYiK-bcYpRKYO^o{M>me&D zZ@F)u+3=U{ro3Ev8$z_AF!#Tn9OkZUe>xipP{w2^4CL98mAlML#i_%5AAO#xX!I?- zD^h!IVwDZ9F#}-DL?@>_5sGy{V48l2SeDQfCVl*+r0~UvrX(0^#WIlXN%GCpA;Lz~ zCM4|i)muu4S%^YcWuvdG9(Mzcm?xZyTEczOMBL1o@Lf)t#5u%VpOx4{Haca;N^PqpM^c#}vC zsn0h#;ocz?6og~Cx2VB;tK_!wO_C^Xqe zf?WsrO}oPjH!jk`dSOZb`-?@}HT;Fw>RRoxNRJ|Haf57TzSPMRMLO{P6(ft?kfjQK zO7s)FkO274ckf(FNEk+7#&$9!9WT!uU%MKX61k6BJOq}$mCD0+pE~fUL$M6<1|sqp z75NB0phLX*wtz{rco&&Q2M*8ANDtS1jd71bPGLCsM8YpjdZ<~&rzN!J0u840ZpJsl zXx(;NkOM4SA2B@dlZMaFet&w+`Py;Hvk?)vqjX2nvdSf9s($25kg^@p-TdkiU5h>l zOwi$&H#APpJKM$v8a`VG{rSjWcqIj?3@gAmYw(k7-o-|3zQqctTY?m87g3Xa8jpUY zCI^*JVbqP^#}FGeo>1Z6>3IUg|tSa5&hxRNG{Q zdqner9f@GI7!oh#qzS5=X+)-zHsS9tW-Sf)3DH+6Irm5oPUM}w7G8t3h9{AW5Tjo` zH6(oz%`#2#ZAuvYN^&Zb){!N|XnV5V#mh0qp$d=fw^?o1zjI`&;znhip4J~vh0+`c9*Neal+RV9Uu&;N=i{#87q=;FH5S$&2O`70hb8n4< zUO);&UL32{tfJ8h;=CXlY(D$`D8PeU~9+10zk$V8ckwT04xK_tqE*^`( zecJwwqJCU>84{(#5xmi!R*od+@lP_}zakN>4K$j+Ga8D}1xY*(mgJ zI}dEGwlQ5qQ^J^Bh};tY!DK`R8pclhnLcc9WC^s~(wKEc(p(dPo_xR!jpHHldCJw5AZeCO4>l@{}6(sSa@OV|&j6Np4~ZM`7D_Cu>{6C>9W z&U(Th4>A<|BElA7QaFNzs28Vl*vu*g9LmWEvG*4G7tm#{w*S=G|J?u&Xvq@A9|UkZ z!sNTaYr@qznnWq5k361Oov*G@gQ#LM9fRaGRVrPyKmvir2J7{)M-Po>jYzQKu!G9L z=iD3(dNf9EQ_dYL16fjHj8P*|2mzqKu-I~`M|J+A;;ExRzW#fFc}hn6`EzU$4fqt8 z9u`@){K2m4?RAb+5;}>#7-zD#psUtYj{{vw`(1(#Tm!vdWaxyo$4Q|QFHb^zT64C7 za5{oK6*Ni3=chsgDz=Xh377F|znrc*km(sV z>z)dqcX_6PsH7TDC)yvc6x(?Wu}F{tbGOtx9kLQqN^OPBOUiaE;s2@KzfZQPL(Y5r-u$P*~K=5@P z>!qXw-*A)xY!Ee`VpjJ021^}TNU^tOYqnpLsc;)@dAEw69rlec{$(P|9!Shpn)Y7n zg{;~#i6h))TUb^vP*(-IqSzQ$Co|9bU9z4bv~h=mJz(=Umm$Ba z%V_s^pKA9N;bEyNH;p1Ub1+^q;mP;5^GEV~Y%C<>s+c?K%N_F4OCQmjN5`8-Cj(W( zwAWn5iWl`OChxs-fy29_v0rqc;H5{q=YCX|YAPv~5v0vVZZdHXQG@NfB8p3-`>cls zMpn-V$rkQx4YiwC*3uMe8n;{JI^MWxVDLguD%6di?&$r~W?xR68e)_tykX+#1V!`& zg$ybE`1rB*K)tDZ`Tg&tLa(dB1J=f~Xlp%|BU=#r3AY>uYtO?L6rO+b`keA$jgVT} z!2sHXup!znQXV>MaTr2WBn-k+YIW?ER?j4o(8#&*vHJ)OCyrEF;_)bc}=QRok2 z^L@mjFouIl#YIQhYs%%`&WbFUbgkneC5wC>Z9X$Jp5-cne1bPgt0%D8bIWC#CPrUz zgYj@-Er+i5_OPL2-vfS2!)K4h7-i|~f4c0v+so}?u>Df6usNqYb9-6DK<{P&nL$|` zwvL33f#LSMHSgwP*?r~xqS_qGNeVUji;I<>>Ivl*BDdhI@Y=#p6$MolujyN$mv~@e z*ujs#<`yiic+1UB{l(TGEr*-*?XJT??P2UqVH56m@2u5|qn;||g?375;I1H=ZK!zK z`vyMw!F3W`)_8G0g&IjPgY%7nTy~b9 zB0bEQT_(5P9`yOrXVIgWR|m84`?D6BGvkxMg%5)C~-y9b(BW)n9otgb-M6@;9$3I0`;^d`mR(^vz**co5`{ChOSDE|CbGZ ze;IckD5F2d#oV*?@jVLVWS!Cqv*-#NQS6%c#&vjnaqGGCH$#=Yt0*i1r1jZ^-y`j6 zupJ?0etBhUl5WA}&&bHgY-a(SnViZ;d@VHQO=lP32zKHdC{w+Z=KGUr+`hB1tH<5N z8CO~75qA3fCR`(TQBs~&@TWpZPN(TvdtG^k3r7EW7y_h-aF;qlJ1{?KG>pJ4i$}1X zEafk@yd<+&$xDc+s4T+;IOWNf+I!D zk84$MNUbDms}oHfXUu}cQ2|{$K{^?o*BCg$|0SJlvxGQOh%h!XnvL6<+uW_P=1!*- zfqT5;a>16~%Te23s?YQA_%>8F6a_38-T&J)O$YYwd@0`*QHZ z(g|P}@3E#91|Z_^67XRihavHH?QEBvNgOh*`1rcH6w z%AHa@l0V|-{6q&xZeJ-HHb$2jhkyeToKBu1T5@=l+Q% z{)1@fw;uNN9l5HMlO<2%#ykJ0hcVyJHLS(JGddh%NK!J=ht1NhrITMy1j#V$q;I{U z`Ji0~C5iubJb@l6R0M)V1K-P0Oflkc%pMa^vT3cHl|9OOP;Iw_o_aLKFKFJFpbXCg z#ok6ZPnNeDCPynBd9evasIaSyEKLyW9rP`bOyvAaUsAY67!g!Lf%#4OR^nV-^A`6f zRLO^#?=%TmPD`8bO|FG{Pvm?xzutvnmE?lRI$)5>qP-p1R@$J2nijTfr#-h7M+(205}KeS&_Wz`b( zQGNqI=N|y&V<@Q3DYtM2@Ozm#`IJtgPzeg);5hdF`EZju%%}tNA;_AGk!L#H@1GNt zzEM3VHm7%dVoZ{&2*pzI4$C}M<>rSwCW!1j)lMHcL}7wTDmSc5{Fnbaa24hAciN9x z&41f9ocmW+R#ZfKd=%hW;ud$|_U{CHnwOGbd*ixb zNmYMzA+uUaD5HM-A%d+Oj57mc59u%Rs$p@c?BP64|JM8YH9@>~+|%m7{+E6A$r~0? z_r0CaWBc0p&kj$@8r5z4nw7Jj)Ch!e#fe5X29Wg0KW_2NKpNrGb`#b4A|$&Z3VFD)=vI1z38+=1MH?!Zm6sSN^v_K^j&+ z?@XSPyT)qkDg?X;H$%eWceEZnm^M>6J+fBe)xw%39t<|ZB}n$5LyCPlH`xadEH|Aj z{Q0k~-bvW-qRXyf_z+GJrgtzrd4KEo+6rS-DU&YdufK_B@BLdYK~xC}DPHxB-)_(a z?a|$6^kEKv-DGi5M3S;qq#9ATIwJXNDxMx(R)73>lT!Xd@a^QctI3QqH*6$@z#d_& zNjtH+ZO*52B>8%%xJeh~`3jQjA=lNxVmd)pOarxo)?W#Srf6%9CuP$y&C6WHC8HJk z{C^Jy$I}7-_6+!-{oQ`FE$r)QJ*)jmbcKXl?!a>5ir&Gtitz`s3FqX%^U|wk8j;=# z`ZQp-?c`{c?3B%xLt1(?8Y(i?wowoQ6vUg+Uy~gAWe^X#X;d!w!X2gWI^FkW5VK=5 zK^@xO7AujDnmpGkJO0qRs#iZ1C%h>Ux>hKlUYK00iq{HoB1(-zs_4~BH=8_O&EGYb z6LOL6!DCVvgcWUG{3R?o4pbWdb*si6*V8)2shw4*a5DDK8}bS~!cO&KJS z!#|nElF5$>37Y&O)%$I3DouEqU%D3x&LaHN^@mlqkDd@JI=!WuDMuw``18F#T+PYQ z=-9|mqHMTW-{+pJ)H0g!K1E5Y-i{XGyVf}*#;)odCcjs5lT@3p3CplC@sZfxLYC>gaoWM+?8dF9Z@%I_6*`hs45D{8*ix z;J~BroJ1>%d=P=rEDs|m6I^M%`9l=$_(XT*P`>L!!^PP4v5cS1ot8Q$mjdgpLoS&uzh3+S{H?WZQBlRj#0aee(~zpZVH6@_`Z`hXtvEWkP}_r z`Jh?i9n{c!spf7X*j$>1_NR#*98asclR5neq;$!!QP6W9ichF~>p;cDGR-U_-o|fD zrR4hbz?Qw9z*-02D=3;8!D}%@(W4UtvXauBW4;<&MtjAiKTZ1;G`=21LBppv)=0^a zv0u)Wan&;yH`@OKli7PLYwNc=!`S-F>Wx&_;Tw4P$XU2j%x0e6!MRgQ2C|Ap1>ZIU zixUt1&K*84?4Z2N04XXxT#yq13-@3rSIbuZ}trrE2A!wRnzIw~aWDh#TLoQf5# zAj$*rSFXO=PUpf8c|O{D%vG|FJ&C_!TL8f9q@ycx<2-F4J?<`f@JczTCc%B}2u=7E zoL}KceLgAtGEm>2$9B0e*$L+JJS^a@-*-Py~wfuU`BJ5H>gq_(B zFXIBd6FLls#)i~$3D$Tts{YtH-3W`=f-Qb5==i+P&ZLMwrI`2Cwx+sRAaquDmr*Z0Nx06K` zB^$W;t2KbYWQfKeG;kh;d^V%}aY+sRr}-#pA>%p7FDz{D^NwzD9WE+Rw0V3b^|Hp< zO*Z!c_<|C9>RROlWNazJ?0XG^?h}S)Cp{&R>~jp?R620M@*DS|OtQZ1H_r*m=W0;t z4`s3yPUt?G4=L!Xfm>s@Z09{0ZM%osuOD@f5dPB=d1g(DJ(wG4v{au8Y&E&s?MTxk z2I`R5oyFj^*rV=uB<(nzO4-xK1rKtmbdJ$Es2C2%WYu9r+#QOarW<~x>X zG$FRe{aZvAKlo`tfkgQDPi^xHYB*6gS~>!_3b94pQ*+@{IY^e!d0a{e~){_$)>}li2YBEFIW-<(t`w5CTcy{z9;wMaB~n zSRn}9MxUN4@zXszr%MXP$P2cdc22eY1?oOOOWXOet zx#^iDGZonX;^6O?Krs{F|HqcvZHl^|e{PR)obO#V1u#cDKQ~{?w0{1Igi{sD`2F* zzH3jXJvF`~sS5memX3TpjtSuOv>2la%|_lX6ViY$bLE^PdUDo5*ykH_o{B+ za#=UYgUe&`877bUCEqPS8P}!;pB8#s^397e&Xz@F`4B9c^SqN!-h%NfW(}JgqbnOq z@1iYfE)bAnLvPm9*w!$BUx4Nk)!Oe{mQ-~Dh|Ih^=2o>gQHHter^izUkO*jGxxc01t}#UjATX_8V}Sg@fu*rq9&l?H zonYW5#3c=0sNUd|+USjn|EUYb(g|026%WBJCV%IjqvZ8;RoCGTEL`D>cC-vmM&RgM z?aX6gjB0)pC5{8GWBBV^?|=qrvbn6WBcw;bF;>LnBj6Gb*BS8&tC8C!k8+FYoW0;V z1wa4Q=x9Xd!{24<77j zqutF-Pv=T~2T+){IF6`5pL0UiO@w-%se?Sq>=74JqUb|hmA*D1yzp%f27mon8Zzng@hxGrsgmMFV_l zsgs|NF1#>Qe~$G3qBWPju|f#=fmRCr#n=$TPKy{gOqHRDW&lOjwM2i1Y|#D;yu5 z!!%J#4MsNk5W&&pLg=MK4J`H#v7YaNTf*99sk4wHPVbyqlN;fmdx5VSFS7`-2K5R^ zt>@Dk{DE(S(nwTU(tSm6km6qXy>n@ubF0rI0qOYTr`w``YHy>$lqrTarYt>Urb~Z@ zPEtGn)Vfyqdt*B4r$~mj9A>XP8GBGte7eQY=26fPxLkDf;Pc?`8tSgpqZ}^0{zHBJ zDRS@cauhu61%{8|4Lz-0DZU9`jeYSd0)d%(yt(DKwRMmEyvl<)JtZNT+Y?P2%GIiT zleW*N@d1HIm|puj5gCm%jCOK*$t8`ye#_9xev2owpKBtB7j1Mck4{hVu;*s; ze(>1}?%}8{52g%u6LrTGa4m)Y0NOE&+(99^N+#0n&-zh$MkovRo%Y& zmj^9gUDOSB`b{+;3o%&WC9?k(1pL(IjejyDe-^`p1=88vah%AeFTQYDreLTk^|vBq z^RvtBg25^^V1&%Rh>M5hkz(I3U!3whEgEPK)^c9ilc&!m5GfDf!wkDxsYF$Eq(pL( zYYzB;|NbvP;hdT0h#~*RQINz8ptUZ}N7;JQkyZ8PlxFk6O_&KJ_~Yqb2OLmQnM?M-qgxr2 zjucWXj{7W#@LiTvZi}kGlgaZQIxnyZ#+c0PjZG?O2kbR@_RCkVN2bQ5#s}KN;b+ggmsh@pD=v`=Y{{RlIMPIvc zd$E>$@4t25_w58#1`85@!?tZ_^@~8Ia`uOAj!@b?4Rjq4F|`R#y<1Sm9YDJ z-E*h}VF?LcqERWR;k@2QlKiQ4T*BzngZHEDMn@~@?7U5X_m>;R)hL=M+O>-&5!azu z`X*EQGmrM+OM+exX3nT5h>56 z%C%|yL2aAz0tU`4FpT)y?jq1H%Irr+Avb02OQ9dDlB6?o#)&@ZS;+j`<~L~f#aoSU zrab?AGG!f6gP*gl13Z0@^z-Uh6WF1_lQH7rEl!a=@MzBl>A(uqp>TwHu(G2@<8J;o zlj*(h#*5m$0KKtF;udXlMFqZ5R|@^pXB#5sPty|J<38ERyzV_@_U&O$^@i_-K)w_s zl^Y>?J;Er)Dz)-Vri6ppsF7ytMrM2&Tsf2{mX3PI6|^^2dMeg%4&M}i$ME!tq9dh8 zE)Wfv7mE0(MTQjzAL_jAu3Jnvw80d`#4EH5- zIM9_t!LDOb4984=|2`lPC7(_TcqH=G?`=n=jyaGr;rs#!qYRiWh;bE1Di40}mR z+1;@=(kJXbz4qmBtP=!8^TnzpKTUCkRKk#rhPsz$mT7`?fQ6fzDj0GYwF}%!{XgN{ zx4^iz5RKnjHJeo9!ntbKDF%()twJs@ac)|S5LIXPRH_>!kMZLAO3!XHTMdZ4`}nog zvVpsz^-z}Vi@1K>JjflNMo%*a7Nppj46L9aCTJySKAuar$~A&Ge8gus-@~#4a*$0~ z>DraYUmt@ybxVvDH17qUXeqn1FNy9`rkqYjM#5?*(Nx^NpZ<&$>;%-Z?xJK)c~Ka$ zK5N|X1|MY{z+|H;qqp|@4M?Ai%HCT%U4`1?-j;)}yK=Cm3$M~*Y^bYUhuMQ8NJ%86 zk+{VBRQNc@O4T^~8lbPx)-o{Y{S<%5Sj#9J!}H!pDIWfK&T*h{{a5CCi?&sR#^Xm% zVDFNVo$O^~x5(RG%wgY)FumQ-a6u$kv*N<30IEOD?0`Km*6C$Z&6|rTGFnB3m|$vMOEY zX{07WgJ%Akm0i**&c471jIV{`OO@rWc6^SslKoXB(VdmWy}4K;xwonaOm2@uRww;2 z*o_(aqNIM1?TMs*E5D0NDx3o&p#ZqR2i^(CUkFBZAQ*<2N?U6cv-v)JP zK1)q~QCrKd;IB|rQWn$lIFDDNG6^#b+g#mqkfCa5X!zP~MLKu>e5BOa;460%zojvF z3|vP{ObmJXGC%YPGt94q20bPhhSL2uo7e#pfD_jtwg3XvX@MRXn6-%jvAtPl#a#E6Xr|x!7q) z5GE9TwNgEn>`UXuuhurcjH(B#v-}je1!luSsK8k%0m^@+blo667cg)CD=FxK%%UUk zpFHzffxFCa!Qv1Ya*Y>mOxAslc~^*!3Px0pmrgJbAaH|`UKuO^$I!fT2sx!y4RD?! z==^V_?d}jCB}|~~ePAlm@5*uIjSSG*yyl|L0}3Z7de;|hAWG)&W#v~I9|TxDn1DTI zOgJk(|t58J8tjFo_~AW`L>JP`;2kJPY$; zA0L2*ETpS9WTu0*KmFH-B7MF|Y9a$>UN5vZZqtnkxC9yN_$$tp!w1Lwp!h`8=Q9Au z4hqjJJPx}O41kbejXNI^`G8C)hLeZpHVw$HUdGLnI4>t7LB6-pBPbF?z%w#^6vUn< zCn@~H@<Q ze3dYbYPs)z(12MD8pu-#V8I?xKjx`|PlEKZK+uQ(Z`xzRK)$EV? z66%?tsM&v@L-Oe}N)&z&w!#9m?YFnp&D-Um=W)N^AHzrbP9fhIKzBUS`o*s?sa&gQ zudW3tI+I8A@yjp}DzB{k_0Ub0FyHZ)vMU!Y@J>+#@VjGzI5m)3KDYCVeo1<3oXLFl1S%72l)+`C;Ql3Fe7!fGFfs!t_Z< zbEe9h04p2+e0d08<7x`q!6}n_EpZ+-Z-6wYgY!p~lKf#G9HaGYAAD_Gw?>0b zAK7Q}+EA;@cryr?=chC$wYxoYNn)&luY*zhHlYAYfCHlSd_lbrispK?7QXxDrAXHa zS&;AQ1JpFP=^+wu42ht{RDbxi)Nwvi+ny;YS&erEnyp2DN>!-FS5G=FN4Eq{ko?8E+f>+X^wWG)!&l4}UomksI(0 zEM_E_4zfUyaDx-+Dq!K%HN7%k0|LKpnh+5ndf<5nxA~?FpZ(BlLsQ z8t~!Av!4ZkJ`I<&0Jc;(5d^NT*IYahtibp!B-Vh^3q1ie_EF$HK2r2f6T@>JP5Aag z+}xAVpl?E6)(#1^GU5}4Fj3WjIaU(c2pw9!nv{lvMl#hBW9=u7kL zvHoBzQSprA>u2GxJYINZx?x@cWm19&|K1Eo-q9|_xgICbtR+(=gV%)nu%EP;x$Ym6 zj#Rr;xxfrhNLnf&=oXLnVE$Jk_7N1*iMjobbl5tlEfN;}m8(LlJ8jzK6X-qWH2k6u zonvw_1a@nu7+SO#V=72M-VF);t4Ye2<#5{6p;7|-iUCvvVW3_3R!mrzKpwhR6U@P6 zK16TqMMZDgVkfMNmfT7w-|(^@x))hN0KfqS7&Py!mT5O#ZbcuI(gL95J~=7t@^o1(ZdTf~NAxSat-RQFoqxpUwC zOvc;4b=$g9YTHQZK2mmB{>&eFRuF22{@iV9HgKxUy7o&zSO7A-#V(=?&4MipuF?Bz z{#hjElVvHtPgUGOjgix!9gr( zS%|~=mhHlWvj>da)iW<#X37O4+w%NlUB&N!r~$&b(0PSS)hj`4zc0FL_&_Y0y^ zp5Fz}tAMctrlh(vh+`vM^~Txt78o!&yQ|=CaACXcLYhK|islbfbkv3KAu>$bJ8R88 zKgK`y7x>$Je6{5j1frbJPTFe!F8l&Rx&tHJn(J2KYXLWH-UCVB z%k_P}b!EYX?{ZR_b!G1xWrBAe7(xg~7d(WbMg-p7tAZj)g=X(3PGzQoYq^b|Zf3Nexv=;k60WC^Sm z<;DmMDCYn{EcnHzu{zGRETFMxTi5-vg{Tg^6omMd8#1I^Xhm4uyw>yO#{+Jx(V7GL z@?1J93Cbt;-E(^{KQ4>e1c-DZ?WLbDODgqd)T=VEhz{@J5{isEw+=+2udNuY_^-|rqr(1rh!!Zz zdi*$NMW_;e<20Bt;!#L9K}p<<;Asb4dAjV1EW7iLdcS5wJ*yMPb-l-3ty3TML-VW* zXaUA<44c449a}Ys$nOBQiKZJ?+21CHXD>kT0tws3QIl&8WUR{LCj#)U&+QeZh<53zAr&}*O z75tu5r35+*|9fDNGi@z`W}3J#do;W{1^kpCo$X7$zZA> z86A4{E*4CXp0t9FKKg2OlC`w#5xR-yz!pC`)0N)B^g^Y4wfgbf+K@v@3qsvu>%^kK zvZr@lHv^~tY?)PWn=ydR;|22xG%sI8s803OR>6#!ljad%I;&NiMb8&K?*Qhavht5B zGwgZgDbD?qpDicD7XIuL`<>S($zAc*&%97tkEg53iOL4<-HTdyYb5%6cK&32GDz*s ziIykUPVT@2)N<)~Vvxg*i0$fsWYA?Nd=(lL@^d+8>0kTT54zC8>`?Zjy9-wpgYy=f zM3fgAY&l@Q(C8m$p`JRwz2|Y>=D6@zAjd9V8Ax&2jNWakB_aQEZBGDef= zoj$)^b8W@OvIv9YBs(=2f5|ng_daYXQUqH6M$xw2d7d`a^;TCO`lwGZ;CsG+GfC015O?c@pESdD$A?YYS|LI?VxhbCJE0eq$CDS z`o>BHOutvd1f?6;n}auNzX`3%Ya%%yx7d&-MhPc*egqj{J(yODUGxN zaLM1_KWO1$$R7}{qw-6}plL`q_XVLCm+B$?m#EWhmFI;n(<0=rP!l5g ztn;)@FPn}>O=UN)hXe)$%%KkLLwv@%{_sp4ZvR;=E)V>^7@jjvx_@SdbcLFz*It==aGEC3kIG}L+HN#_&uw+QQFXES z%GIO%hspj^3c158>1wIQ??37V#t+~IIXXru93Op^iV~FwzeE~S1kBk6qG*mhes7%dbC%}xZE{pm66Zf?$(-2I?I>&1D z2X|^1HVUoy``OcvbNBh9+l8`o4mn*N6`-ZGmQT#o+BY}3-*nOWEZ4Q3Ho*!@&Q4hz zyp~c5d}D3XAe{Y082^_f|Lj`XuM2V^9i|FTpMfP}2lmZ8rJf6m`0Se2nX5GztE(H* zWN~g>fY0pU)%W%!?T7ncrH$U29+@bpyLl9FxG3yhJS+dy6NxVbH2&!PO@~xMKAy_i zyCcVSZ>cMZ1>p7lTXTw1CwYlUX=2dE3PHfPX!&P#i*HeHZfz~Tc);6NRyPCQQ36M< zX)pFHu4LtRf<=9$RMv0RR9B}+9iibXzNGy#Kn`^!n=YXl9pKa)2=t_E`Z$VFYcHF7 zj%;@~ChA}1i_Yt|QCzek{V`JC8#5W6?3}{1?H($U40@FeI;Z_&(1w@nBqh7FQ-9t$ zmqRLilWlG5oH=f?Yy=$4LJATL$|`UbaXSF+B2O`8#3|yYckU1)uXXwJ5(}5VDNnlH z4P)JM)ZNS3r7ZJ(?fqL)vO*tCOax8O#IN0N>!?z2rLAhc_)()xr9C~pwd>M?;!lSJ zrpN>?causiYxYab3@-dDK!f+hOn)E}hS2TDX9A&ny zOaxE$82sSzj2^|xWEj8%V-jn?-_3Taap_R2sgB>>ap-t`kK;%Oy&a{Cz%1fwe@pqD zQ7grdJW;K2>^2`MpI5n@_X&zFu=-o*`ej92*j&tGVX)g{OxU61%0EqNbzG1_9dfke zMbuRA+(U(>**kdX*0~parkO~0zx~#zNm5PQ9nu1i9M|31Qa1!9S3g*1+o>R?hPu?Y z0i|lmmB%joR430AdaWSP?TDs|mJQK%9Tt8IU2&%4@PqEDf1rviF=Jn3ASB7~rWPZILo+u!Q-N@``q z#{$qH)bOKI|`eQ z$R*{LB|@)td$j8(-FOZJ@$*M3;N}vp^R@Qo;;VW+`pP{+{*L-s#{*D*8p8~g%PpJI zHvI6Bv~jxPhovbnLIBFUyukEnM=HkTRQ1nM_hH{?9k-2P-)eU31bkv*((mWvxwk9c ztA6*De+9^uxNT2cvtV`%_RQ>HF3z4%n~N)bdkQx0st;c=Bl!ZMRbk&r+!4i{=BC)4 z%<q}Ya~Q)hPf8)x~VYTa6Y2HW|oHhpWt=V9^@e+-Rsrp0q1iQv+YxC5)x zZ`6EuH?p`47XQW4-tRu(FH!(kZfr+=K1dp2cN#8YtZYnYl5_1#Uni^Y4Fs?iHIxB_ z+6}aS%eShvOz_)rnH{uM2?a|JRPtkx%&^d6`_`>XZhj%mANXTmz%{(lycO(4BQOFB zD$v|UseSgE!{~Oi_1`XCcG_>wJN<6398p5uK1Y^}L2`i+vS1gQnl^4b9Bbtc?Gtwm ztcmfxsR0jdAe7(8tae(?38h4qFe3@dkchcU-u;Ft`;zSn{jTU6CQD{u`NwenXg#6q z8w{Nrx~Db!z7@W&_U^@Q2rwx_l{q*sIhL}w`taBvDX+Jm%Ou66H#dEAl6Wwj41^jF z4A)%$@b(|8l3!kOfy|Vi>R3U3*M1rU+x1VWkTrLW6aLlug z_6=WI%igcqyJ)MN5IHAkssYJe8l5?C{%Y^K*8;|fDBXsVfq0x>;y>Vu?^V~yg6xUP zfXuz%k~7xUJe&eLd{I!zGRX`D?~H=pjI6ei{`_cI=mE)6u4FO56US%@}=8biGg4&FXDCODzDW2|45UxX+b4g9Jx|MKS_ zJ5ltT9Kp0-4iYTb(*{h6dN;{+KCnr_X|epBX90McAis!J10ZZe9PT{EuT{b#<_y+;if+qw`S|KNNQF9Kn09H|wHNSy>Y? zbxlQ4-7{KK~F`zp<1g{Z%=0#B&g|g0nObE+}=rAi;ij@X(XgaBc8S zqV>CTeG;xs>1WFevHl>C#frL(gK`5NIdIa#vhUR$&yhC-sGDLxoq&8w-o zQN>}H+WTi_V4#l_Q#j^Ud_|vNEEl5HeCMLyRy0#NZgV(TV!r7owIAAfMFk5A|> z{h_yhR~X<;9O^5hR(U@LZFyFCiDB%$YvJ~q3SJ+3EAV3fuoxlYk4c(RxomC3_g#j6 zz7dMBSmxcl^sqNqU(~Z;8gL^D6P!KL5AbVe_p2RO&HrUX%-PTDAIliL*d2o+<_bhfwb;lxwW4d)75TyLp zzp8zjW|uDfmukED+@JLi&Z< z@T!=ln+MJ0P^kD-W^zz=2GX#~{;b_Le{y#8#V?h1*Plbbf*L9ko3pG<)o~)}<5(rP zcu7bc55;$Z#j|(i<7K}|_-wjV1iw#k17E5W4PglkXBVWTDU;^S@L+(>n8*I#2VS`X ztyiiO_uopVs;4*T&fG#SsUM*tC0cLQ%edBqL8iC?E&8EP`ypEF_NH2zwX zbQ+R8F<~vy$T*cL@2NT4Im5B)sKtlIzDCcjPkw&)IRnrRgqZ7Fa~mv+!LSgh#x4B% zDelF!tAT+gvr||tD#nt1Ql&a3!YTr7sAO8kHMgmGmqIJQ_6y2`{v!p6BB&L=M7U`e^GVY`>|ftCRhP zw^zEY<)8$K;F_`Ta`*J?FM1kKli)R4bk)<1cdFomldk*q_M&g=V@xiQ_!{)~&fSqr zZD=KOpz5w7?i~{nfE-`2pmH``g_l>3^_Kya`gz>+n{@N)aPNo z>MyVJv-}tUO3i1gi8bh2DX;%!ECh*LgQ^L;qQ27?sDU&f;T0j`v-D=Mhe64PfQHy& zF3v^%j=%{S3)YhT=ycb)4wyqzei`n|v;1Ug1bHX`s|07blEE|D716GE{w<6z_!Pka zwr|$vLCtqUnu+J=UeT(_HaqM`i2|aiJ3l!uYGnp7 zl>#RU(!yEmhr6b8Zr^kj0-Ozkl{)yuxK4(Qq-pxz#e1M03YowFzN|9#!zP5M-(?&LKC;AJBaXkeY8>o9~p9tzn5Tf0#8c+kyv zf(Gv{G?i=aGZc05_Xyv>P2k58t9fKQ{*Gj8UGMn>eN&!ledp&_QyC&Dpe+HFa?8!HeT^TtuM$g2ysQe1{iDZ!bSv4z=?)G9lA8F^zSVVBRy6#W29?GVwTqBC1Op z$|MX)Fi?@~=E;*f5s?{t(D$w${f3^)C7otapPc+pqnCQ1DxN1AUxqCHd&pRrl}=ux zPjfzF>h?Q6pJOEypt}j)@Vc*H(yst7g$Ncn<8E4})nhUwA0^g4ef+VLm}srQyEGt6 za1lEukk5BAVurL&dAj=80s7ztJpEY28akB;r~acDeCyEB^l{NDc5M*^MvTT%YVn{H z+s|`C>c(X0h2|LX33YpbR)!G&CGjTv-E=#1J^F-wq0kWFY)5pKIEvSmfwAU4J1!Mj5PLw+etC{OaJ_|@NbZXv ze=8prGW(H9@HK_1*H(-&(lmGvRDym+roZXL1M;}0Zs5OzIH!+)DV6vwK;BbLx&wz+ zRIkI1#r>N7YuEKw!7WWM7ILp<1N4IM&+ErxA)A`#=zwd8rLvN5H_3`ZJdGM1Vv`j8 zj~2z_ox4`napEfJX1=L_HVWU3E7y;WHanp%LJ`n%AVoph{5 z0nPEy9W>uP(G^DJyT7mW_(BPCuss8;vq-yE$B7=E5+@c3ftTC}o+tM*$)+B{={_X!Vl6(uhA*{lSdT% zv}Dd;S~+)Zb*bcoyL~mtA_;~>Op@L;wGuB{O0&yC;&1@3z;13A!gP-m1R?9_5*yL^ zFm?WZ(Toq4Ly_Dd_x!?S7pLWVP49j3=&ta!q)oKkq{VftrYLZj&93RNig{_*_K9pc zK1nBbHXOR&5z~P(P0>5BwOLm%JkqV%KyQDPRemmYJR?B@7f$N@HD`nb zSq1SV1hMA!^c^(UH}th{uspErKDB+~X3{%vMPu__^D_~j4{((j@}dVU3J zgFouzRQSw6d=X}mK3?~Tcd3s#MT0y6gix5yz`r{!oN;GCzKUV-_fQdc&=Lkr%a!~% z;1q#||EB07;!dkr954BM5#ArY-4Xf4+}BbFXitn`>Pgz{#Tl1bB_ocF{W~$D1d3Ot zimGa?9$oVg=0N?A>BAOI<9q4T7k0*sole$oUV+&?yKP%1+ zzHX@b63g+~xTBG-9K*Va&=FmzsZ(nV)3iv(jDYR+UvIdd9=D0dpF@qNgx!oNs}=%k z9_h5}CBVy{51BbLXB~Iamxj#EH@Q$60sl;ifr)~ ztNYdIWhIB#dwd`)7|!x2rVr^j4XMRn{## z@sPHO2Lr4ZZt>V$r*1=lE`;|&ZEj*`$ntoJkJztXLC?_uHc+q)O&$Y|I!kgf3>Qkx z558mc3xVa|hU){ktuVVq{%AxP{gMlB@~z?PWKF(pMaawN5(?|?%IUbL z^>|2;1tYSFrgjXK_ajc>QsiIITqkSi?aKsLlt$LNh@5I-4CV7T^g@8q+A33ID=*PF zmPxTeu!x6z%+zZQbc0*@-#GdItNMg?ol5BW&nIrqQ-_yNIew z8=t7BeVw%jPHm~qV5N&GvRAOua3B}uW>6|XOEy6`wuL0W%ysnKuibH3u*bv~J)FPG zF|86rc9eIDpJQz1l|gckSm>ohzs7a7$=qF z@;)qFpd)v6#u05hOQYJFgadw8u4_`$2_HVpHxO=CdBERy8{}#%UJKVEy4c#~;eSE% zoC&KCpuE1!^dZZopluWtEZK>eZ_;wrfR3{hX9G!k1Gcy|`6~KxFR3yvV+<@0IjTq9 zCd%<%$vXb)s9>5!9+4Ujfn^91yjS++!Xh57d&#K|WuZ;ozk?FH`xsr+#Pq=xCza@D zS6zoLx-Snleka~1v3TTS?}cvtik5S|@d|ADgm&)t0n-OD)V%IKuYrn$s8L}$sPs*E z6Jd4ERmQaOq~9g^v1qzPK)#VG<9Y=3i)#ZVFAv$SYU0mEifmC03nae8kYd*DcaKI| z))~{sr&*T^i{q&if!q0l8B_60krDq|+%*x?Q=0TvV{-z^j(b zbWw>pg_<}QEq8(dFZ0Iwqf1(8GC>*hV82u!!iTEVd`&bjuxef8L>C&4_<&=-jE^;uIznMZH?cyPa7X;qSDzP1h|tB){7HOSs=3S;oQ3^#urTzz!F9>IRz)AX?-;dpQ+lNhSe4Y(gSTn#B9m zc1jNR0*kj%2$qs(k<4E!Fs*U(_M0u2hFdeo-yg(kcUGMTwP$u(++|XeT24q3_xswJ zR^$MxpR^s3Y2H^!LkHm)6LGy!O)?&+!iCaK-9XpE1we%cCv`3Jy)J80P#L7po9#5-8Nj>2|ZsSeV;or}c%9fhW_+}Uyo`$>J^+vt2lf>JPZe=_zc ztTrDZbXM9Gy}4*0Ud7LpiVsI+3VA-=X6xrT3`RZA<{@?CJ$;pWq_&)h3q<92hi+H~8Oagz` zPgkx#4d3py#huGV&t0nG2hUCx%z!-<_#_PSmXz}}`8UmFl5@npK9aKaz}v=(K>}&6 zeb-s9dWRIcQrO!_@UPL%9X?PSddt&tscw5JHCTOnzU|1f$SLgRo+D~XD|DOG(^`MX znd?1$DPf8#ykY-s%la}&Uale+JkZau?q14vsdcEgspkU!A`(F97;BenIz;{-1XoG( diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 00000000..c2a49f4f --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / diff --git a/src/assets/zag-components.css b/src/assets/zag-components.css index db0bd7e9..2df5a667 100644 --- a/src/assets/zag-components.css +++ b/src/assets/zag-components.css @@ -83,10 +83,10 @@ * -----------------------------------------------------------------------------*/ [data-scope='select'][data-part='content'] { - @apply border border-darker + @apply border border-base-100 } [data-scope='select'][data-part='trigger'][data-expanded] { - @apply border border-darker + @apply border border-base-100 } /* ----------------------------------------------------------------------------- diff --git a/src/components/Main.astro b/src/components/Main.astro index a51a8bfc..77e2ef6e 100644 --- a/src/components/Main.astro +++ b/src/components/Main.astro @@ -10,7 +10,6 @@ import Conversation from './main/Conversation'

-
diff --git a/src/components/ModalsLayer.tsx b/src/components/ModalsLayer.tsx index 2c160407..885096dc 100644 --- a/src/components/ModalsLayer.tsx +++ b/src/components/ModalsLayer.tsx @@ -13,7 +13,7 @@ import Modal from './ui/Modal' export default () => { return ( <> - +
diff --git a/src/components/Send.tsx b/src/components/Send.tsx index 9d9efe9d..7474bf4b 100644 --- a/src/components/Send.tsx +++ b/src/components/Send.tsx @@ -6,9 +6,10 @@ import { addConversation, conversationMap, currentConversationId } from '@/store import { loadingStateMap, streamsMap } from '@/stores/streams' import { handlePrompt } from '@/logics/conversation' import { globalAbortController } from '@/stores/settings' -import { useMobileScreen } from '@/hooks' +import { useI18n, useMobileScreen } from '@/hooks' export default () => { + const { t } = useI18n() let inputRef: HTMLTextAreaElement const $conversationMap = useStore(conversationMap) const $currentConversationId = useStore(currentConversationId) @@ -56,7 +57,7 @@ export default () => { inputRef.focus() }} > -
Enter Something...
+
{t('send.placeholder')}
) @@ -65,7 +66,7 @@ export default () => {
-
-
-
Temperature
-
-
-
-
-
diff --git a/src/components/main/ConversationEmpty.tsx b/src/components/main/ConversationEmpty.tsx index ff5c4877..fe35e3f6 100644 --- a/src/components/main/ConversationEmpty.tsx +++ b/src/components/main/ConversationEmpty.tsx @@ -1,5 +1,6 @@ import { showConversationEditModal } from '@/stores/ui' import { getBotMetaById } from '@/stores/provider' +import Button from '../ui/Button' import type { Conversation } from '@/types/conversation' interface Props { @@ -9,17 +10,20 @@ interface Props { export default (props: Props) => { const botMeta = () => getBotMetaById(props.conversation.bot) || null return ( -
-
+
) } diff --git a/src/components/main/MessageItem.tsx b/src/components/main/MessageItem.tsx index 737d3b3a..1315e3b6 100644 --- a/src/components/main/MessageItem.tsx +++ b/src/components/main/MessageItem.tsx @@ -9,6 +9,7 @@ import { scrollController } from '@/stores/ui' import { globalAbortController } from '@/stores/settings' import StreamableText from '../StreamableText' import { DropDownMenu, Tooltip } from '../ui/base' +import Button from '../ui/Button' import type { MenuItem } from '../ui/base' import type { MessageInstance } from '@/types/message' @@ -98,7 +99,7 @@ export default (props: Props) => {
@@ -135,9 +136,9 @@ export default (props: Props) => { class="op-70 bg-darker py-4 px-[calc(max(1.5rem,(100%-48rem)/2))] w-full inset-0 scroll-pa-4 input-base rounded-md" /> -
-
setIsEditing(false)}>Cancel
-
handleSend()}>Submit
+
+ +
diff --git a/src/components/main/Welcome.tsx b/src/components/main/Welcome.tsx index 57da60de..a4461a35 100644 --- a/src/components/main/Welcome.tsx +++ b/src/components/main/Welcome.tsx @@ -17,7 +17,7 @@ export default () => { {instance => (
currentConversationId.set(instance.id)}> {instance.icon ? instance.icon :
} -
{instance.name || 'Untitled'}
+
{instance.name || t('conversations.untitled')}
)} diff --git a/src/components/ui/Button.tsx b/src/components/ui/Button.tsx new file mode 100644 index 00000000..88090890 --- /dev/null +++ b/src/components/ui/Button.tsx @@ -0,0 +1,45 @@ +import { Show } from 'solid-js' +import type { JSXElement } from 'solid-js' + +interface Props { + icon?: string + text?: string + size?: 'sm' | 'md' | 'lg' + variant?: 'normal' | 'ghost' + children?: JSXElement + onClick: () => void +} + +export default (props: Props) => { + const buttonSizeClass = { + sm: 'px-2 h-7.5 text-xs', + md: 'px-3 h-10 text-sm', + lg: 'px-3 h-10 text-sm', + }[props.size || 'md'] + const buttonVariantClass = { + normal: 'bg-base-100 border border-base hover:(bg-base-200 border-base-100)', + ghost: 'bg-transparent border border-base hover:(bg-base-100 border-base-100)', + }[props.variant || 'normal'] + const iconSizeClass = { + sm: 'text-xs', + md: 'text-sm', + lg: 'text-sm', + }[props.size || 'md'] + return ( +
+ +
+ + +
{props.text || props.children}
+
+
+ ) +} diff --git a/src/components/ui/EmojiPickerModal.tsx b/src/components/ui/EmojiPickerModal.tsx index 151c14cf..dc81bf98 100644 --- a/src/components/ui/EmojiPickerModal.tsx +++ b/src/components/ui/EmojiPickerModal.tsx @@ -23,7 +23,7 @@ export default () => {
{ diff --git a/src/components/ui/Modal.tsx b/src/components/ui/Modal.tsx index 62002c52..4c201ef6 100644 --- a/src/components/ui/Modal.tsx +++ b/src/components/ui/Modal.tsx @@ -44,7 +44,7 @@ export default (props: Props) => {
api().close()} />
-
+
diff --git a/src/components/ui/SettingsApiKey.tsx b/src/components/ui/SettingsApiKey.tsx index 286df043..e5a62796 100644 --- a/src/components/ui/SettingsApiKey.tsx +++ b/src/components/ui/SettingsApiKey.tsx @@ -18,11 +18,11 @@ export default ({ settings, editing, value, setValue }: Props) => { return (
{editing() && ( -
+
setValue(e.currentTarget.value)} />
{ setIsOpen(!isOpen()) }}> diff --git a/src/components/ui/SettingsInput.tsx b/src/components/ui/SettingsInput.tsx index 6bc02ccc..508f0ed6 100644 --- a/src/components/ui/SettingsInput.tsx +++ b/src/components/ui/SettingsInput.tsx @@ -17,7 +17,7 @@ export default ({ settings, editing, value, setValue }: Props) => { setValue(e.currentTarget.value)} /> )} diff --git a/src/components/ui/Sidebar.tsx b/src/components/ui/Sidebar.tsx index 677a729b..51776a8b 100644 --- a/src/components/ui/Sidebar.tsx +++ b/src/components/ui/Sidebar.tsx @@ -8,7 +8,7 @@ interface Props { export default (props: Props) => { const containerBaseClass = { - left: 'w-[300px] h-100dvh border-r', + left: 'w-[260px] h-100dvh border-r', right: 'w-[300px] h-100dvh border-l', }[props.direction] diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index d0e14010..f4832157 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -11,10 +11,10 @@ const { title } = Astro.props; - + - - + + {title} diff --git a/src/locale/lang/en.ts b/src/locale/lang/en.ts index 24229c7f..2cd7ee7b 100644 --- a/src/locale/lang/en.ts +++ b/src/locale/lang/en.ts @@ -20,9 +20,13 @@ export const en = { }, conversations: { title: 'Conversations', - add: 'New Conversation', + add: 'New', recent: 'Recents', noRecent: 'No recents', + untitled: 'Untitled', + }, + send: { + placeholder: 'Enter Something...', }, }, } as language diff --git a/src/locale/lang/zh-cn.ts b/src/locale/lang/zh-cn.ts index decee665..66c3cd64 100644 --- a/src/locale/lang/zh-cn.ts +++ b/src/locale/lang/zh-cn.ts @@ -20,9 +20,13 @@ export const zhCN = { }, conversations: { title: '对话列表', - add: '创建新对话', + add: '新对话', recent: '最近对话', noRecent: '暂无最近对话', + untitled: '未命名对话', + }, + send: { + placeholder: '输入内容...', }, }, } as language diff --git a/unocss.config.ts b/unocss.config.ts index 7fe52918..db08cef1 100644 --- a/unocss.config.ts +++ b/unocss.config.ts @@ -43,22 +43,21 @@ export default defineConfig({ ], transformers: [transformerVariantGroup(), transformerDirectives()], shortcuts: [{ - 'bg-base': 'bg-light-100 dark:bg-[#1c1c1c]', - 'bg-base-100': 'bg-light-200 dark:bg-[#222222]', - 'bg-blur': 'bg-light-200/85 dark:bg-[#222222]/85 backdrop-blur-xl backdrop-saturate-150', - 'bg-sidebar': 'bg-light-400 dark:bg-[#191919]', - 'bg-modal': 'bg-base dark:bg-base-100', + 'bg-base': 'bg-white dark:bg-[#101010]', + 'bg-base-100': 'bg-light-200/50 dark:bg-[#181818]', + 'bg-base-200': 'bg-light-400 dark:bg-[#202020]', + 'bg-blur': 'bg-light-200/85 dark:bg-[#101010]/85 backdrop-blur-xl backdrop-saturate-150', + 'bg-sidebar': 'bg-white dark:bg-[#101010]', + 'bg-modal': 'bg-white dark:bg-[#181818]', 'bg-darker': 'bg-black/4 dark:bg-white/4', 'fg-base': 'text-dark dark:text-[#dadada]', - 'border-base': 'border-black/8 dark:border-white/8', - 'border-b-base': 'border-b-black/8 dark:border-b-white/8', - 'border-lighter': 'border-light-600 dark:border-dark-300', - 'border-darker': 'border-black/50 dark:border-white/50', - 'placeholder-base': 'placeholder:op-50 dark:placeholder:op-30', + 'border-base': 'border-light-700 dark:border-[#2a2a2a]', + 'border-b-base': 'border-b-light-700 dark:border-b-[#2a2a2a]', + 'border-base-100': 'border-light-900 dark:border-[#404040]', 'hv-base': 'transition-colors cursor-pointer hover:bg-darker', 'hv-foreground': 'transition-opacity cursor-pointer op-70 hover:op-100', 'input-base': 'bg-transparent placeholder:op-50 dark:placeholder:op-20 focus:(ring-0 outline-none) resize-none', - 'button': 'mt-4 px-3 py-2 text-xs border border-base rounded-lg hv-base hover:border-darker', + 'button': 'mt-4 px-3 py-2 text-xs border border-base rounded-lg hv-base hover:border-base-100', 'max-w-base': 'max-w-3xl mx-auto', 'text-error': 'text-red-700 dark:text-red-400/80', 'border-error': 'border border-red-700 dark:border-red-400/80', @@ -68,35 +67,6 @@ export default defineConfig({ 'fi': 'flex items-center', 'fcc': 'fc items-center', 'fb': 'flex justify-between', - - // TODO: remove below - 'fie': 'fi justify-end', - 'col-fcc': 'flex-col fcc', - 'inline-fcc': 'inline-flex items-center justify-center', - 'base-focus': 'focus:(bg-op-20 ring-0 outline-none)', - 'b-slate-link': 'border-b border-(slate none) hover:border-dashed', - 'gpt-title': 'text-2xl font-extrabold mr-1', - 'gpt-subtitle': 'text-(2xl transparent) font-extrabold bg-(clip-text gradient-to-r) from-sky-400 to-emerald-600', - 'gpt-copy-btn': 'absolute top-12px right-12px z-3 fcc border b-transparent w-8 h-8 p-2 bg-light-300 dark:bg-dark-300 op-90 cursor-pointer', - 'gpt-copy-tips': 'op-0 h-7 bg-black px-2.5 py-1 box-border text-xs c-white fcc rounded absolute z-1 transition duration-600 whitespace-nowrap -top-8', - 'gpt-retry-btn': 'fi gap-1 px-2 py-0.5 op-70 border border-slate rounded-md text-sm cursor-pointer hover:bg-slate/10', - 'gpt-back-top-btn': 'fcc p-2.5 text-base rounded-md hover:bg-slate/10 fixed bottom-60px right-20px z-10 cursor-pointer transition-colors', - 'gpt-back-bottom-btn': 'gpt-back-top-btn bottom-20px transform-rotate-180deg', - 'gpt-password-input': 'px-4 py-3 h-12 rounded-sm bg-(slate op-15) base-focus', - 'gpt-password-submit': 'fcc h-12 w-12 bg-slate cursor-pointer bg-op-20 hover:bg-op-50', - 'gen-slate-btn': 'h-12 px-4 py-2 bg-(slate op-15) hover:bg-op-20 rounded-sm', - 'gen-cb-wrapper': 'h-12 my-4 fcc gap-4 bg-(slate op-15) rounded-sm', - 'gen-cb-stop': 'px-2 py-0.5 border border-slate rounded-md text-sm op-70 cursor-pointer hover:bg-slate/10', - 'gen-text-wrapper': 'my-4 fc gap-2 transition-opacity', - 'gen-textarea': 'w-full px-3 py-3 min-h-12 max-h-36 rounded-sm bg-(slate op-15) resize-none base-focus placeholder:op-50 dark:(placeholder:op-30) scroll-pa-8px', - 'sys-edit-btn': 'inline-fcc gap-1 text-sm bg-slate/20 px-2 py-1 rounded-md transition-colors cursor-pointer hover:bg-slate/50', - 'gpt-toggle-wrapper': 'inline-flex rounded border border-gray-100 bg-gray-100 p-1 cursor-pointer', - 'gpt-toggle-item': 'inline-block rounded font-semibold px-2 py-1 text-xs text-gray-500 focus:relative', - 'gpt-toggle-active': 'bg-emerald-500 text-white', - - 'icon-base': 'md:(w-6 h-6) w-5 h-5', - 'icon--off': 'group-hover:hidden inline-block', - 'icon--on': 'hidden group-hover:inline-block', }], preflights: [{ layer: 'base', From 76c2b01935e75169e52975de58f08174b9a64eff Mon Sep 17 00:00:00 2001 From: yzh990918 <251205668@qq.com> Date: Sat, 20 May 2023 19:07:06 +0800 Subject: [PATCH 6/6] chore: release v1.1.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 331b74e3..3dacb9ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "anse", - "version": "1.1.3", + "version": "1.1.4", "packageManager": "pnpm@7.28.0", "scripts": { "dev": "astro dev",