diff --git a/api/package.json b/api/package.json
index 1119bff0518..013b98b2819 100644
--- a/api/package.json
+++ b/api/package.json
@@ -1,6 +1,6 @@
{
"name": "@librechat/backend",
- "version": "0.6.9",
+ "version": "0.6.10",
"description": "",
"scripts": {
"start": "echo 'please run this from the root directory'",
diff --git a/client/package.json b/client/package.json
index 84b37c7db77..6adc99043cf 100644
--- a/client/package.json
+++ b/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@librechat/frontend",
- "version": "0.6.9",
+ "version": "0.6.10",
"description": "",
"type": "module",
"scripts": {
diff --git a/client/public/fonts/Inter-Bold.woff2 b/client/public/fonts/Inter-Bold.woff2
new file mode 100644
index 00000000000..0f1b157633c
Binary files /dev/null and b/client/public/fonts/Inter-Bold.woff2 differ
diff --git a/client/public/fonts/Inter-BoldItalic.woff2 b/client/public/fonts/Inter-BoldItalic.woff2
new file mode 100644
index 00000000000..bc50f24c873
Binary files /dev/null and b/client/public/fonts/Inter-BoldItalic.woff2 differ
diff --git a/client/public/fonts/Inter-Italic.woff2 b/client/public/fonts/Inter-Italic.woff2
new file mode 100644
index 00000000000..4c24ce28152
Binary files /dev/null and b/client/public/fonts/Inter-Italic.woff2 differ
diff --git a/client/public/fonts/Inter-Regular.woff2 b/client/public/fonts/Inter-Regular.woff2
new file mode 100644
index 00000000000..b8699af29b0
Binary files /dev/null and b/client/public/fonts/Inter-Regular.woff2 differ
diff --git a/client/public/fonts/Inter-SemiBold.woff2 b/client/public/fonts/Inter-SemiBold.woff2
new file mode 100644
index 00000000000..95c48b184ea
Binary files /dev/null and b/client/public/fonts/Inter-SemiBold.woff2 differ
diff --git a/client/public/fonts/Inter-SemiBoldItalic.woff2 b/client/public/fonts/Inter-SemiBoldItalic.woff2
new file mode 100644
index 00000000000..ddfe19e839c
Binary files /dev/null and b/client/public/fonts/Inter-SemiBoldItalic.woff2 differ
diff --git a/client/public/fonts/roboto-mono-latin-400-italic.woff2 b/client/public/fonts/roboto-mono-latin-400-italic.woff2
new file mode 100644
index 00000000000..75d29cff8e3
Binary files /dev/null and b/client/public/fonts/roboto-mono-latin-400-italic.woff2 differ
diff --git a/client/public/fonts/roboto-mono-latin-400-normal.woff2 b/client/public/fonts/roboto-mono-latin-400-normal.woff2
new file mode 100644
index 00000000000..53d081f3a53
Binary files /dev/null and b/client/public/fonts/roboto-mono-latin-400-normal.woff2 differ
diff --git a/client/public/fonts/roboto-mono-latin-700-normal.woff2 b/client/public/fonts/roboto-mono-latin-700-normal.woff2
new file mode 100644
index 00000000000..92fe38dd414
Binary files /dev/null and b/client/public/fonts/roboto-mono-latin-700-normal.woff2 differ
diff --git a/client/public/fonts/signifier-bold-italic.woff2 b/client/public/fonts/signifier-bold-italic.woff2
deleted file mode 100644
index cebb25db24a..00000000000
Binary files a/client/public/fonts/signifier-bold-italic.woff2 and /dev/null differ
diff --git a/client/public/fonts/signifier-bold.woff2 b/client/public/fonts/signifier-bold.woff2
deleted file mode 100644
index b76fecbacb3..00000000000
Binary files a/client/public/fonts/signifier-bold.woff2 and /dev/null differ
diff --git a/client/public/fonts/signifier-light-italic.woff2 b/client/public/fonts/signifier-light-italic.woff2
deleted file mode 100644
index dc144f106c8..00000000000
Binary files a/client/public/fonts/signifier-light-italic.woff2 and /dev/null differ
diff --git a/client/public/fonts/signifier-light.woff2 b/client/public/fonts/signifier-light.woff2
deleted file mode 100644
index 1077c6b9e9c..00000000000
Binary files a/client/public/fonts/signifier-light.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-buch-kursiv.woff2 b/client/public/fonts/soehne-buch-kursiv.woff2
deleted file mode 100644
index 8d4b03588c2..00000000000
Binary files a/client/public/fonts/soehne-buch-kursiv.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-buch.woff2 b/client/public/fonts/soehne-buch.woff2
deleted file mode 100644
index b1ceb94fa0d..00000000000
Binary files a/client/public/fonts/soehne-buch.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-halbfett-kursiv.woff2 b/client/public/fonts/soehne-halbfett-kursiv.woff2
deleted file mode 100644
index f7fd3c64b00..00000000000
Binary files a/client/public/fonts/soehne-halbfett-kursiv.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-halbfett.woff2 b/client/public/fonts/soehne-halbfett.woff2
deleted file mode 100644
index 19ed66001ea..00000000000
Binary files a/client/public/fonts/soehne-halbfett.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-kraftig-kursiv.woff2 b/client/public/fonts/soehne-kraftig-kursiv.woff2
deleted file mode 100644
index 669ab6920f2..00000000000
Binary files a/client/public/fonts/soehne-kraftig-kursiv.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-kraftig.woff2 b/client/public/fonts/soehne-kraftig.woff2
deleted file mode 100644
index 59c98a170f6..00000000000
Binary files a/client/public/fonts/soehne-kraftig.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-mono-buch-kursiv.woff2 b/client/public/fonts/soehne-mono-buch-kursiv.woff2
deleted file mode 100644
index c20b7426345..00000000000
Binary files a/client/public/fonts/soehne-mono-buch-kursiv.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-mono-buch.woff2 b/client/public/fonts/soehne-mono-buch.woff2
deleted file mode 100644
index 68e14f30396..00000000000
Binary files a/client/public/fonts/soehne-mono-buch.woff2 and /dev/null differ
diff --git a/client/public/fonts/soehne-mono-halbfett.woff2 b/client/public/fonts/soehne-mono-halbfett.woff2
deleted file mode 100644
index e14cbdc5361..00000000000
Binary files a/client/public/fonts/soehne-mono-halbfett.woff2 and /dev/null differ
diff --git a/client/src/components/Chat/Footer.tsx b/client/src/components/Chat/Footer.tsx
index 0e28415f308..66d91e34d01 100644
--- a/client/src/components/Chat/Footer.tsx
+++ b/client/src/components/Chat/Footer.tsx
@@ -17,7 +17,7 @@ export default function Footer() {
rel="noreferrer"
className="underline"
>
- {config?.appTitle || 'LibreChat'} v0.6.9
+ {config?.appTitle || 'LibreChat'} v0.6.10
{' - '} {localize('com_ui_new_footer')}
>
diff --git a/client/src/components/Chat/Messages/Content/Markdown.tsx b/client/src/components/Chat/Messages/Content/Markdown.tsx
index ef438a15212..1a80449ba8e 100644
--- a/client/src/components/Chat/Messages/Content/Markdown.tsx
+++ b/client/src/components/Chat/Messages/Content/Markdown.tsx
@@ -41,7 +41,7 @@ export const p = memo(({ children }: { children: React.ReactNode }) => {
return
(store.LaTeXParsing);
diff --git a/client/src/components/Chat/Messages/Content/MessageContent.tsx b/client/src/components/Chat/Messages/Content/MessageContent.tsx
index 42f06373f0d..540bb001ff8 100644
--- a/client/src/components/Chat/Messages/Content/MessageContent.tsx
+++ b/client/src/components/Chat/Messages/Content/MessageContent.tsx
@@ -57,6 +57,7 @@ const DisplayMessage = ({ text, isCreatedByUser, message, showCursor }: TDisplay
))}
- {config?.appTitle || 'LibreChat'} v0.6.9
+ {config?.appTitle || 'LibreChat'} v0.6.10
{' - '}. {localize('com_ui_pay_per_call')}
>
diff --git a/client/src/style.css b/client/src/style.css
index 37129ec7b6d..0d17e880306 100644
--- a/client/src/style.css
+++ b/client/src/style.css
@@ -10,37 +10,111 @@
@font-face {
font-display: swap;
- font-family: Signifier;
+ font-family: Inter;
font-style: normal;
font-weight: 400;
- src: url("$fonts/signifier-light.woff2") format("woff2")
+ src: url("$fonts/Inter-Regular.woff2") format("woff2");
+ size-adjust: 94%;
}
@font-face {
font-display: swap;
- font-family: Signifier;
+ font-family: Inter;
font-style: italic;
font-weight: 400;
- src: url("$fonts/signifier-light-italic.woff2") format("woff2")
+ src: url("$fonts/Inter-Italic.woff2") format("woff2");
+ size-adjust: 94%;
}
@font-face {
font-display: swap;
- font-family: Signifier;
+ font-family: Inter;
font-style: normal;
- font-weight: 700;
- src: url("$fonts/signifier-bold.woff2") format("woff2")
+ font-weight: 500;
+ src: url("$fonts/Inter-SemiBold.woff2") format("woff2");
+ size-adjust: 94%;
+}
+
+@font-face {
+ font-display: swap;
+ font-family: Inter;
+ font-style: italic;
+ font-weight: 500;
+ src: url("$fonts/Inter-SemiBoldItalic.woff2") format("woff2");
+ size-adjust: 94%;
+}
+
+@font-face {
+ font-display: swap;
+ font-family: Inter;
+ font-style: normal;
+ font-weight: 600;
+ src: url("$fonts/Inter-Bold.woff2") format("woff2");
+ size-adjust: 94%;
}
@font-face {
font-display: swap;
- font-family: Signifier;
+ font-family: Inter;
font-style: italic;
+ font-weight: 600;
+ src: url("$fonts/Inter-BoldItalic.woff2") format("woff2");
+ size-adjust: 94%;
+}
+
+@font-face {
+ font-display: swap;
+ font-family: Roboto Mono;
+ font-style: normal;
+ font-weight: 400;
+ src: url("$fonts/roboto-mono-latin-400-normal.woff2") format("woff2")
+}
+
+@font-face {
+ font-display: swap;
+ font-family: Roboto Mono;
+ font-style: normal;
font-weight: 700;
- src: url("$fonts/signifier-bold-italic.woff2") format("woff2")
+ src: url("$fonts/roboto-mono-latin-700-normal.woff2") format("woff2")
}
@font-face {
+ font-display: swap;
+ font-family: Roboto Mono;
+ font-style: italic;
+ font-weight: 400;
+ src: url("$fonts/roboto-mono-latin-400-italic.woff2") format("woff2")
+}
+
+/*
+
+The default ChatGPT fonts, according to OpenAI's brand guidelines, are proprietary and require appropriate font license according to your use case.
+
+They can be purchased here: https://klim.co.nz/buy/soehne/
+
+The fonts in question are (9 total):
+
+> - Söhne (Buch Kursiv, Buch, Halbfett Kursiv, Halbfett, Kraftig Kursiv, Kraftig, Mono Buch Kursiv, Mono Buch, Mono Halbfett)
+
+If you have purchased a license, you can use the commented-out `@font-face` declarations below to include them in your project.
+
+Step 1: Buy whatever license applies to you and allows use of `.woff2` font files (likely web font license).
+Step 2: Place them in ./client/public/fonts/ directory.
+Step 3: Replace the current `fontFamily` config in ./client/tailwind.config.cjs with the following:
+
+```
+ fontFamily: {
+ sans: ['Söhne', 'sans-serif'],
+ mono: ['Söhne Mono', 'monospace'],
+ },
+```
+
+Step 4: Uncomment all Söhne font-face declarations below.
+Step 5: rebuild frontend code: `npm run frontend` (or rebuild docker).
+
+*/
+
+/* @font-face {
font-display: swap;
font-family: Söhne;
font-style: normal;
@@ -110,7 +184,7 @@
font-style: italic;
font-weight: 400;
src: url("$fonts/soehne-mono-buch-kursiv.woff2") format("woff2")
-}
+} */
/* * {
box-sizing: border-box;
@@ -1311,25 +1385,6 @@ html {
animation: spin 1s linear infinite;
}
-.result-streaming {
- -webkit-animation: blink 1s steps(5, start) infinite;
- animation: blink 1s steps(5, start) infinite;
- content:"⬤ ";
- margin-left: 0.25rem;
- vertical-align: baseline;
-}
-
-/* .result-streaming>:not(ol):not(ul):not(pre):last-child:after,
-.result-streaming>ol:last-child li:last-child:after,
-.result-streaming>pre:last-child code:after,
-.result-streaming>ul:last-child li:last-child:after {
- -webkit-animation:blink 1s steps(5,start) infinite;
- animation:blink 1s steps(5,start) infinite;
- content:"▋";
- margin-left:.25rem;
- vertical-align:baseline
-} */
-
.form-input,
.form-multiselect,
.form-select,
@@ -1870,3 +1925,74 @@ html {
--tw-shadow: inset 0 0 0 1px rgba(0,0,0,.25);
--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);
}
+
+.result-streaming>:not(ol):not(ul):not(pre):last-child:after,
+.result-streaming>pre:last-child code:after {
+ display: inline-block; /* Add this line */
+ content:"⬤";
+ width: 12px;
+ height: 12px;
+ font-family:system-ui,Inter,Söhne Circle,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
+ line-height:normal;
+ margin-left:.25rem;
+ vertical-align:middle;
+ font-size: 0.5rem;
+}
+
+.result-streaming>pre:last-child code {
+ background: url('path-to-circle-image') no-repeat right center;
+ padding-right: 1em; /* Adjust as necessary */
+}
+
+@supports (selector(:has(*))) {
+ .result-streaming>ol:last-child>li:last-child>ol:last-child>li:last-child:after,
+ .result-streaming>ol:last-child>li:last-child>ol:last-child>li:last-child>ol:last-child>li:last-child:after,
+ .result-streaming>ol:last-child>li:last-child>ol:last-child>li:last-child>ul:last-child>li:last-child:after,
+ .result-streaming>ol:last-child>li:last-child>ul:last-child>li:last-child:after,
+ .result-streaming>ol:last-child>li:last-child>ul:last-child>li:last-child>ol:last-child>li:last-child:after,
+ .result-streaming>ol:last-child>li:last-child>ul:last-child>li:last-child>ul:last-child>li:last-child:after,
+ .result-streaming>ul:last-child>li:last-child>ol:last-child>li:last-child:after,
+ .result-streaming>ul:last-child>li:last-child>ol:last-child>li:last-child>ol:last-child>li:last-child:after,
+ .result-streaming>ul:last-child>li:last-child>ol:last-child>li:last-child>ul:last-child>li:last-child:after,
+ .result-streaming>ul:last-child>li:last-child>ul:last-child>li:last-child:after,
+ .result-streaming>ul:last-child>li:last-child>ul:last-child>li:last-child>ol:last-child>li:last-child:after,
+ .result-streaming>ul:last-child>li:last-child>ul:last-child>li:last-child>ul:last-child>li:last-child:after,
+ .result-streaming>ul:last-child>li:last-child[*|\:not-has\(]:after {
+ content:"⬤";
+ font-family:system-ui,Inter,Söhne Circle,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
+ line-height:normal;
+ margin-left:.25rem;
+ vertical-align:baseline
+ }
+ .result-streaming>ul:last-child>li:last-child:not(:has(*>li)):after {
+ content:"⬤";
+ font-family:system-ui,Inter,Söhne Circle,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
+ line-height:normal;
+ margin-left:.25rem;
+ vertical-align:baseline
+ }
+ .result-streaming>ol:last-child>li:last-child[*|\:not-has\(]:after {
+ content:"⬤";
+ font-family:system-ui,Inter,Söhne Circle,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
+ line-height:normal;
+ margin-left:.25rem;
+ vertical-align:baseline
+ }
+ .result-streaming>ol:last-child>li:last-child:not(:has(*>li)):after {
+ content:"⬤";
+ font-family:system-ui,Inter,Söhne Circle,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
+ line-height:normal;
+ margin-left:.25rem;
+ vertical-align:baseline
+ }
+}
+@supports not (selector(:has(*))) {
+ .result-streaming>ol:last-child>li:last-child:after,
+ .result-streaming>ul:last-child>li:last-child:after {
+ content:"⬤";
+ font-family:system-ui,Inter,Söhne Circle,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
+ line-height:normal;
+ margin-left:.25rem;
+ vertical-align:baseline
+ }
+}
\ No newline at end of file
diff --git a/client/tailwind.config.cjs b/client/tailwind.config.cjs
index c436e2d6362..d2c48aa7909 100644
--- a/client/tailwind.config.cjs
+++ b/client/tailwind.config.cjs
@@ -10,9 +10,13 @@ module.exports = {
// 'gpt-dark-gray': '#343541',
// },
fontFamily: {
- sans: ['Söhne', 'sans-serif'],
- mono: ['Söhne Mono', 'monospace'],
+ sans: ['Inter', 'sans-serif'],
+ mono: ['Roboto Mono', 'monospace'],
},
+ // fontFamily: {
+ // sans: ['Söhne', 'sans-serif'],
+ // mono: ['Söhne Mono', 'monospace'],
+ // },
extend: {
width: {
'authPageWidth': '370px',
diff --git a/e2e/jestSetup.js b/e2e/jestSetup.js
index 9ddfc532e32..64f5bc40a1e 100644
--- a/e2e/jestSetup.js
+++ b/e2e/jestSetup.js
@@ -1,3 +1,3 @@
-// v0.6.9
+// v0.6.10
// See .env.test.example for an example of the '.env.test' file.
require('dotenv').config({ path: './e2e/.env.test' });
diff --git a/index.html b/index.html
index 4f3c2db66bd..c0b1b0117b8 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-
+
diff --git a/package-lock.json b/package-lock.json
index 3560ff5b8ab..4630faac920 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "LibreChat",
- "version": "0.6.9",
+ "version": "0.6.10",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "LibreChat",
- "version": "0.6.9",
+ "version": "0.6.10",
"license": "ISC",
"workspaces": [
"api",
@@ -38,7 +38,7 @@
},
"api": {
"name": "@librechat/backend",
- "version": "0.6.9",
+ "version": "0.6.10",
"license": "ISC",
"dependencies": {
"@anthropic-ai/sdk": "^0.5.4",
@@ -135,7 +135,7 @@
},
"client": {
"name": "@librechat/frontend",
- "version": "0.6.9",
+ "version": "0.6.10",
"license": "ISC",
"dependencies": {
"@headlessui/react": "^1.7.13",
diff --git a/package.json b/package.json
index 9ba9d300b61..fbe29e5f3fd 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "LibreChat",
- "version": "0.6.9",
+ "version": "0.6.10",
"description": "",
"workspaces": [
"api",
diff --git a/packages/data-provider/package.json b/packages/data-provider/package.json
index db0f4f3917a..eeebf1f7c76 100644
--- a/packages/data-provider/package.json
+++ b/packages/data-provider/package.json
@@ -1,6 +1,6 @@
{
"name": "librechat-data-provider",
- "version": "0.4.1",
+ "version": "0.4.2",
"description": "data services for librechat apps",
"main": "dist/index.js",
"module": "dist/index.es.js",
diff --git a/packages/data-provider/src/config.ts b/packages/data-provider/src/config.ts
index 1864cd7ddd7..a0fad47a394 100644
--- a/packages/data-provider/src/config.ts
+++ b/packages/data-provider/src/config.ts
@@ -357,7 +357,7 @@ export enum Constants {
/**
* Key for the app's version.
*/
- VERSION = 'v0.6.9',
+ VERSION = 'v0.6.10',
/**
* Key for the Custom Config's version (librechat.yaml).
*/
diff --git a/prettier.config.js b/prettier.config.js
index a2c8ef261cb..9f1e18e9ab9 100644
--- a/prettier.config.js
+++ b/prettier.config.js
@@ -1,4 +1,4 @@
-// v0.6.9
+// v0.6.10
module.exports = {
tailwindConfig: './client/tailwind.config.cjs',
printWidth: 100,