Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
open-webui
Commits
ea06036b
Unverified
Commit
ea06036b
authored
Nov 08, 2023
by
Timothy Jaeryang Baek
Committed by
GitHub
Nov 08, 2023
Browse files
Merge pull request #78 from ollama-webui/dev
feat: ui update
parents
6f422c2d
aa304165
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
355 additions
and
333 deletions
+355
-333
src/lib/components/chat/SettingsModal.svelte
src/lib/components/chat/SettingsModal.svelte
+6
-4
src/lib/components/chat/Suggestions.svelte
src/lib/components/chat/Suggestions.svelte
+52
-28
src/lib/components/common/Modal.svelte
src/lib/components/common/Modal.svelte
+1
-1
src/lib/components/layout/Navbar.svelte
src/lib/components/layout/Navbar.svelte
+15
-9
src/lib/constants.ts
src/lib/constants.ts
+2
-0
src/routes/+page.svelte
src/routes/+page.svelte
+279
-291
No files found.
src/lib/components/chat/SettingsModal.svelte
View file @
ea06036b
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
import sha256 from 'js-sha256';
import sha256 from 'js-sha256';
import Modal from '../common/Modal.svelte';
import Modal from '../common/Modal.svelte';
import { API_BASE_URL as BUILD_TIME_API_BASE_URL } from '$lib/constants';
import {
WEB_UI_VERSION,
API_BASE_URL as BUILD_TIME_API_BASE_URL } from '$lib/constants';
import toast from 'svelte-french-toast';
import toast from 'svelte-french-toast';
export let show = false;
export let show = false;
...
@@ -212,7 +212,7 @@
...
@@ -212,7 +212,7 @@
</script>
</script>
<Modal bind:show>
<Modal bind:show>
<div
class="rounded-lg dark:bg-gray-900"
>
<div>
<div class=" flex justify-between dark:text-gray-300 px-5 py-4">
<div class=" flex justify-between dark:text-gray-300 px-5 py-4">
<div class=" text-lg font-medium self-center">Settings</div>
<div class=" text-lg font-medium self-center">Settings</div>
<button
<button
...
@@ -752,12 +752,14 @@
...
@@ -752,12 +752,14 @@
</div>
</div>
</form>
</form>
{:else if selectedTab === 'about'}
{:else if selectedTab === 'about'}
<div class="flex flex-col h-full justify-between space-y-3 text-sm">
<div class="flex flex-col h-full justify-between space-y-3 text-sm
mb-6
">
<div class=" space-y-3">
<div class=" space-y-3">
<div>
<div>
<div class=" mb-2.5 text-sm font-medium">Ollama Web UI Version</div>
<div class=" mb-2.5 text-sm font-medium">Ollama Web UI Version</div>
<div class="flex w-full">
<div class="flex w-full">
<div class="flex-1 text-xs text-gray-700 dark:text-gray-200">v1.0.0-alpha</div>
<div class="flex-1 text-xs text-gray-700 dark:text-gray-200">
{WEB_UI_VERSION}
</div>
</div>
</div>
</div>
</div>
...
...
src/lib/components/chat/Suggestions.svelte
View file @
ea06036b
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<div class=" grid sm:grid-cols-2 gap-2.5 mb-4 md:p-2 text-left">
<div class=" grid sm:grid-cols-2 gap-2.5 mb-4 md:p-2 text-left">
<button
<button
class=" flex justify-between w-full px-4 py-2.5 bg-white dark:bg-gray-800 dark:hover:bg-gray-700 outline outline-1 outline-gray-200 dark:outline-gray-600 rounded-lg transition group"
class=" flex justify-between w-full px-4 py-2.5 bg-white
hover:bg-gray-50
dark:bg-gray-800 dark:hover:bg-gray-700 outline outline-1 outline-gray-200 dark:outline-gray-600 rounded-lg transition group"
on:click={() => {
on:click={() => {
submitPrompt(`Tell me a random fun fact about the Roman Empire`);
submitPrompt(`Tell me a random fun fact about the Roman Empire`);
}}
}}
...
@@ -15,19 +15,25 @@
...
@@ -15,19 +15,25 @@
</div>
</div>
<div
<div
class="self-center text-white group-hover:
text
-gray-800 dark:group-hover:text-gray-300 dark:text-gray-800 transition"
class="self-center
p-1 rounded-lg
text-white group-hover:
bg-gray-100 group-hover:text-gray-800 dark:group-hover:bg
-gray-800 dark:group-hover:text-gray-300 dark:text-gray-800 transition"
>
>
<svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" class="w-4 h-4"
<svg
><path
xmlns="http://www.w3.org/2000/svg"
d="M.5 1.163A1 1 0 0 1 1.97.28l12.868 6.837a1 1 0 0 1 0 1.766L1.969 15.72A1 1 0 0 1 .5 14.836V10.33a1 1 0 0 1 .816-.983L8.5 8 1.316 6.653A1 1 0 0 1 .5 5.67V1.163Z
"
viewBox="0 0 20 20
"
fill="currentColor"
fill="currentColor"
/></svg
class="w-4 h-4"
>
>
<path
fill-rule="evenodd"
d="M10 17a.75.75 0 01-.75-.75V5.612L5.29 9.77a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0110 17z"
clip-rule="evenodd"
/>
</svg>
</div>
</div>
</button>
</button>
<button
<button
class="flex justify-between w-full px-4 py-2.5 bg-white dark:bg-gray-800 dark:hover:bg-gray-700 outline outline-1 outline-gray-200 dark:outline-gray-600 rounded-lg transition group"
class="
flex justify-between w-full px-4 py-2.5 bg-white
hover:bg-gray-50
dark:bg-gray-800 dark:hover:bg-gray-700 outline outline-1 outline-gray-200 dark:outline-gray-600 rounded-lg transition group"
on:click={() => {
on:click={() => {
submitPrompt(`Show me a code snippet of a website's sticky header in CSS and JavaScript.`);
submitPrompt(`Show me a code snippet of a website's sticky header in CSS and JavaScript.`);
}}
}}
...
@@ -37,19 +43,25 @@
...
@@ -37,19 +43,25 @@
<div class="text-sm text-gray-500">of a website's sticky header</div>
<div class="text-sm text-gray-500">of a website's sticky header</div>
</div>
</div>
<div
<div
class="self-center text-white group-hover:
text
-gray-800 dark:group-hover:text-gray-300 dark:text-gray-800 transition"
class="self-center
p-1 rounded-lg
text-white group-hover:
bg-gray-100 group-hover:text-gray-800 dark:group-hover:bg
-gray-800 dark:group-hover:text-gray-300 dark:text-gray-800 transition"
>
>
<svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" class="w-4 h-4"
<svg
><path
xmlns="http://www.w3.org/2000/svg"
d="M.5 1.163A1 1 0 0 1 1.97.28l12.868 6.837a1 1 0 0 1 0 1.766L1.969 15.72A1 1 0 0 1 .5 14.836V10.33a1 1 0 0 1 .816-.983L8.5 8 1.316 6.653A1 1 0 0 1 .5 5.67V1.163Z
"
viewBox="0 0 20 20
"
fill="currentColor"
fill="currentColor"
/></svg
class="w-4 h-4"
>
>
<path
fill-rule="evenodd"
d="M10 17a.75.75 0 01-.75-.75V5.612L5.29 9.77a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0110 17z"
clip-rule="evenodd"
/>
</svg>
</div>
</div>
</button>
</button>
<button
<button
class=" hidden sm:flex justify-between w-full px-4 py-2.5 bg-white dark:bg-gray-800 dark:hover:bg-gray-700 outline outline-1 outline-gray-200 dark:outline-gray-600 rounded-lg transition group"
class="
hidden sm:flex justify-between w-full px-4 py-2.5 bg-white
hover:bg-gray-50
dark:bg-gray-800 dark:hover:bg-gray-700 outline outline-1 outline-gray-200 dark:outline-gray-600 rounded-lg transition group"
on:click={() => {
on:click={() => {
submitPrompt(
submitPrompt(
`Help me study vocabulary: write a sentence for me to fill in the blank, and I'll try to pick the correct option.`
`Help me study vocabulary: write a sentence for me to fill in the blank, and I'll try to pick the correct option.`
...
@@ -61,19 +73,25 @@
...
@@ -61,19 +73,25 @@
<div class="text-sm text-gray-500">vocabulary for a college entrance exam</div>
<div class="text-sm text-gray-500">vocabulary for a college entrance exam</div>
</div>
</div>
<div
<div
class="self-center text-white group-hover:
text
-gray-800 dark:group-hover:text-gray-300 dark:text-gray-800 transition"
class="self-center
p-1 rounded-lg
text-white group-hover:
bg-gray-100 group-hover:text-gray-800 dark:group-hover:bg
-gray-800 dark:group-hover:text-gray-300 dark:text-gray-800 transition"
>
>
<svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" class="w-4 h-4"
<svg
><path
xmlns="http://www.w3.org/2000/svg"
d="M.5 1.163A1 1 0 0 1 1.97.28l12.868 6.837a1 1 0 0 1 0 1.766L1.969 15.72A1 1 0 0 1 .5 14.836V10.33a1 1 0 0 1 .816-.983L8.5 8 1.316 6.653A1 1 0 0 1 .5 5.67V1.163Z
"
viewBox="0 0 20 20
"
fill="currentColor"
fill="currentColor"
/></svg
class="w-4 h-4"
>
>
<path
fill-rule="evenodd"
d="M10 17a.75.75 0 01-.75-.75V5.612L5.29 9.77a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0110 17z"
clip-rule="evenodd"
/>
</svg>
</div>
</div>
</button>
</button>
<button
<button
class=" hidden sm:flex justify-between w-full px-4 py-2.5 bg-white dark:bg-gray-800 dark:hover:bg-gray-700 outline outline-1 outline-gray-200 dark:outline-gray-600 rounded-lg transition group"
class=" hidden sm:flex justify-between w-full px-4 py-2.5 bg-white
hover:bg-gray-50
dark:bg-gray-800 dark:hover:bg-gray-700 outline outline-1 outline-gray-200 dark:outline-gray-600 rounded-lg transition group"
on:click={() => {
on:click={() => {
submitPrompt(
submitPrompt(
`What are 5 creative things I could do with my kids' art? I don't want to throw them away, but it's also so much clutter.`
`What are 5 creative things I could do with my kids' art? I don't want to throw them away, but it's also so much clutter.`
...
@@ -85,14 +103,20 @@
...
@@ -85,14 +103,20 @@
<div class="text-sm text-gray-500">for what to do with my kids' art</div>
<div class="text-sm text-gray-500">for what to do with my kids' art</div>
</div>
</div>
<div
<div
class="self-center text-white group-hover:
text
-gray-800 dark:group-hover:text-gray-300 dark:text-gray-800 transition"
class="self-center
p-1 rounded-lg
text-white group-hover:
bg-gray-100 group-hover:text-gray-800 dark:group-hover:bg
-gray-800 dark:group-hover:text-gray-300 dark:text-gray-800 transition"
>
>
<svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" class="w-4 h-4"
<svg
><path
xmlns="http://www.w3.org/2000/svg"
d="M.5 1.163A1 1 0 0 1 1.97.28l12.868 6.837a1 1 0 0 1 0 1.766L1.969 15.72A1 1 0 0 1 .5 14.836V10.33a1 1 0 0 1 .816-.983L8.5 8 1.316 6.653A1 1 0 0 1 .5 5.67V1.163Z
"
viewBox="0 0 20 20
"
fill="currentColor"
fill="currentColor"
/></svg
class="w-4 h-4"
>
>
<path
fill-rule="evenodd"
d="M10 17a.75.75 0 01-.75-.75V5.612L5.29 9.77a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158V16.25A.75.75 0 0110 17z"
clip-rule="evenodd"
/>
</svg>
</div>
</div>
</button>
</button>
</div>
</div>
src/lib/components/common/Modal.svelte
View file @
ea06036b
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
}}
}}
>
>
<div
<div
class="m-auto min-h-52 max-w-full w-[
36
rem] mx-2 bg-gray-50 dark:bg-gray-900
rounded-lg
shadow-3xl"
class="m-auto min-h-52
rounded-xl
max-w-full w-[
40
rem] mx-2 bg-gray-50 dark:bg-gray-900 shadow-3xl"
transition:fade={{ delay: 100, duration: 200 }}
transition:fade={{ delay: 100, duration: 200 }}
on:click={(e) => {
on:click={(e) => {
e.stopPropagation();
e.stopPropagation();
...
...
src/lib/components/layout/Navbar.svelte
View file @
ea06036b
...
@@ -60,14 +60,16 @@
...
@@ -60,14 +60,16 @@
<div class=" m-auto self-center">
<div class=" m-auto self-center">
<svg
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="none"
fill="currentColor"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
class="w-5 h-5"
>
>
<path
<path
fill-rule="evenod
d"
stroke-linecap="roun
d"
d="M2 4.75A.75.75 0 012.75 4h14.5a.75.75 0 010 1.5H2.75A.75.75 0 012 4.75zM2 10a.75.75 0 01.75-.75h14.5a.75.75 0 010 1.5H2.75A.75.75 0 012 10zm0 5.25a.75.75 0 01.75-.75h14.5a.75.75 0 010 1.5H2.75a.75.75 0 01-.75-.75z
"
stroke-linejoin="round
"
clip-rule="evenodd
"
d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25H12
"
/>
/>
</svg>
</svg>
</div>
</div>
...
@@ -88,12 +90,16 @@
...
@@ -88,12 +90,16 @@
<div class=" m-auto self-center">
<div class=" m-auto self-center">
<svg
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="none"
fill="currentColor"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
class="w-5 h-5"
>
>
<path
<path
d="M10.75 4.75a.75.75 0 00-1.5 0v4.5h-4.5a.75.75 0 000 1.5h4.5v4.5a.75.75 0 001.5 0v-4.5h4.5a.75.75 0 000-1.5h-4.5v-4.5z"
stroke-linecap="round"
stroke-linejoin="round"
d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"
/>
/>
</svg>
</svg>
</div>
</div>
...
@@ -108,7 +114,7 @@
...
@@ -108,7 +114,7 @@
bind:this={navElement}
bind:this={navElement}
class="h-screen {show
class="h-screen {show
? ''
? ''
: '-translate-x-72'} w-72 fixed top-0 left-0 z-40 transition bg-
gray-900
text-gray-200 shadow-2xl text-sm
: '-translate-x-72'} w-72 fixed top-0 left-0 z-40 transition bg-
[#0a0a0a]
text-gray-200 shadow-2xl text-sm
"
"
>
>
<div class="py-2.5 my-auto flex flex-col justify-between h-screen">
<div class="py-2.5 my-auto flex flex-col justify-between h-screen">
...
...
src/lib/constants.ts
View file @
ea06036b
...
@@ -8,6 +8,8 @@ export const API_BASE_URL =
...
@@ -8,6 +8,8 @@ export const API_BASE_URL =
:
`http://localhost:11434/api`
:
`http://localhost:11434/api`
:
PUBLIC_API_BASE_URL
;
:
PUBLIC_API_BASE_URL
;
export
const
WEB_UI_VERSION
=
'
v1.0.0-alpha.1
'
;
// Source: https://kit.svelte.dev/docs/modules#$env-static-public
// Source: https://kit.svelte.dev/docs/modules#$env-static-public
// This feature, akin to $env/static/private, exclusively incorporates environment variables
// This feature, akin to $env/static/private, exclusively incorporates environment variables
// that are prefixed with config.kit.env.publicPrefix (usually set to PUBLIC_).
// that are prefixed with config.kit.env.publicPrefix (usually set to PUBLIC_).
...
...
src/routes/+page.svelte
View file @
ea06036b
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment