Thomas G. Lopes
commited on
Commit
·
73b6f4f
1
Parent(s):
8c5a2cf
format
Browse files- postcss.config.js +1 -1
- src/app.css +9 -9
- src/lib/components/InferencePlayground/InferencePlaygroundCodeSnippets.svelte +3 -3
- src/lib/components/InferencePlayground/InferencePlaygroundConversation.svelte +1 -1
- src/lib/components/InferencePlayground/InferencePlaygroundConversationHeader.svelte +1 -1
- src/lib/components/InferencePlayground/InferencePlaygroundGenerationConfig.svelte +1 -1
- src/lib/components/InferencePlayground/InferencePlaygroundHFTokenModal.svelte +2 -2
- src/lib/components/InferencePlayground/InferencePlaygroundMessage.svelte +4 -4
- src/lib/components/InferencePlayground/InferencePlaygroundModelSelector.svelte +1 -1
- src/lib/components/InferencePlayground/InferencePlaygroundModelSelectorModal.svelte +2 -2
postcss.config.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
export default {
|
2 |
plugins: {
|
3 |
-
|
4 |
},
|
5 |
};
|
|
|
1 |
export default {
|
2 |
plugins: {
|
3 |
+
"@tailwindcss/postcss": {},
|
4 |
},
|
5 |
};
|
src/app.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
@import
|
2 |
-
@import
|
3 |
|
4 |
@plugin '@tailwindcss/container-queries';
|
5 |
|
@@ -14,13 +14,13 @@
|
|
14 |
color utility to any element that depends on these defaults.
|
15 |
*/
|
16 |
@layer base {
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
}
|
25 |
|
26 |
html {
|
|
|
1 |
+
@import "highlight.js/styles/atom-one-light" layer(base);
|
2 |
+
@import "tailwindcss";
|
3 |
|
4 |
@plugin '@tailwindcss/container-queries';
|
5 |
|
|
|
14 |
color utility to any element that depends on these defaults.
|
15 |
*/
|
16 |
@layer base {
|
17 |
+
*,
|
18 |
+
::after,
|
19 |
+
::before,
|
20 |
+
::backdrop,
|
21 |
+
::file-selector-button {
|
22 |
+
border-color: var(--color-gray-200, currentColor);
|
23 |
+
}
|
24 |
}
|
25 |
|
26 |
html {
|
src/lib/components/InferencePlayground/InferencePlaygroundCodeSnippets.svelte
CHANGED
@@ -460,7 +460,7 @@ print(completion.choices[0].message)`,
|
|
460 |
on:click={() => {
|
461 |
dispatch("closeCode");
|
462 |
}}
|
463 |
-
class="flex size-7 items-center justify-center rounded-lg px-3 py-2.5 text-xs font-medium text-gray-900 focus:
|
464 |
>
|
465 |
✕
|
466 |
</button>
|
@@ -484,11 +484,11 @@ print(completion.choices[0].message)`,
|
|
484 |
{#each clientSnippetsByLang[selectedLanguage] as { snippets }, idx}
|
485 |
{#if idx === selectedClientIdxByLang[selectedLanguage]}
|
486 |
{#each snippets as { label, code, language, needsToken }}
|
487 |
-
<div class="flex items-center justify-between px-2 pb-4
|
488 |
<h2 class="font-semibold">{label}</h2>
|
489 |
<div class="flex items-center gap-x-4">
|
490 |
{#if needsToken && hfToken}
|
491 |
-
<label class="flex
|
492 |
<input type="checkbox" bind:checked={showToken} />
|
493 |
<p class="leading-none">With token</p>
|
494 |
</label>
|
|
|
460 |
on:click={() => {
|
461 |
dispatch("closeCode");
|
462 |
}}
|
463 |
+
class="flex size-7 items-center justify-center rounded-lg px-3 py-2.5 text-xs font-medium text-gray-900 focus:ring-4 focus:ring-gray-100 focus:outline-hidden dark:border-gray-600 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white dark:focus:ring-gray-700"
|
464 |
>
|
465 |
✕
|
466 |
</button>
|
|
|
484 |
{#each clientSnippetsByLang[selectedLanguage] as { snippets }, idx}
|
485 |
{#if idx === selectedClientIdxByLang[selectedLanguage]}
|
486 |
{#each snippets as { label, code, language, needsToken }}
|
487 |
+
<div class="flex items-center justify-between px-2 pt-6 pb-4">
|
488 |
<h2 class="font-semibold">{label}</h2>
|
489 |
<div class="flex items-center gap-x-4">
|
490 |
{#if needsToken && hfToken}
|
491 |
+
<label class="flex items-center gap-x-1.5 text-sm select-none">
|
492 |
<input type="checkbox" bind:checked={showToken} />
|
493 |
<p class="leading-none">With token</p>
|
494 |
</label>
|
src/lib/components/InferencePlayground/InferencePlaygroundConversation.svelte
CHANGED
@@ -66,7 +66,7 @@
|
|
66 |
<svelte:window on:resize={resizeMessageTextAreas} />
|
67 |
|
68 |
<div
|
69 |
-
class="flex flex-col overflow-
|
70 |
? 'max-h-[calc(100dvh-5.8rem-2.5rem-75px)] md:max-h-[calc(100dvh-5.8rem-2.5rem)]'
|
71 |
: 'max-h-[calc(100dvh-5.8rem-2.5rem-75px)] md:max-h-[calc(100dvh-5.8rem)]'}"
|
72 |
class:animate-pulse={loading && !conversation.streaming}
|
|
|
66 |
<svelte:window on:resize={resizeMessageTextAreas} />
|
67 |
|
68 |
<div
|
69 |
+
class="@container flex flex-col overflow-x-hidden overflow-y-auto {compareActive
|
70 |
? 'max-h-[calc(100dvh-5.8rem-2.5rem-75px)] md:max-h-[calc(100dvh-5.8rem-2.5rem)]'
|
71 |
: 'max-h-[calc(100dvh-5.8rem-2.5rem-75px)] md:max-h-[calc(100dvh-5.8rem)]'}"
|
72 |
class:animate-pulse={loading && !conversation.streaming}
|
src/lib/components/InferencePlayground/InferencePlaygroundConversationHeader.svelte
CHANGED
@@ -56,7 +56,7 @@
|
|
56 |
<div
|
57 |
class="{conversationIdx === 0
|
58 |
? 'mr-4 max-sm:ml-4'
|
59 |
-
: 'mx-4'} flex h-11 flex-none items-center gap-2
|
60 |
>
|
61 |
<Avatar orgName={nameSpace} size="md" />
|
62 |
<button class="flex-1! self-stretch text-left hover:underline" on:click={() => (modelSelectorOpen = true)}
|
|
|
56 |
<div
|
57 |
class="{conversationIdx === 0
|
58 |
? 'mr-4 max-sm:ml-4'
|
59 |
+
: 'mx-4'} flex h-11 flex-none items-center gap-2 rounded-lg border border-gray-200/80 bg-white pr-2 pl-3 text-sm leading-none whitespace-nowrap shadow-xs *:flex-none max-sm:mt-4 dark:border-white/5 dark:bg-gray-800/70 dark:hover:bg-gray-800"
|
60 |
>
|
61 |
<Avatar orgName={nameSpace} size="md" />
|
62 |
<button class="flex-1! self-stretch text-left hover:underline" on:click={() => (modelSelectorOpen = true)}
|
src/lib/components/InferencePlayground/InferencePlaygroundGenerationConfig.svelte
CHANGED
@@ -104,7 +104,7 @@
|
|
104 |
<input type="checkbox" bind:checked={conversation.streaming} class="peer sr-only" />
|
105 |
<span class="text-sm font-medium text-gray-900 dark:text-gray-300">Streaming</span>
|
106 |
<div
|
107 |
-
class="peer relative h-5 w-9 rounded-full bg-gray-200 after:absolute after:start-[2px] after:top-[2px] after:h-4 after:w-4 after:rounded-full after:border after:border-gray-300 after:bg-white after:transition-all after:content-[''] peer-checked:
|
108 |
></div>
|
109 |
</label>
|
110 |
</div>
|
|
|
104 |
<input type="checkbox" bind:checked={conversation.streaming} class="peer sr-only" />
|
105 |
<span class="text-sm font-medium text-gray-900 dark:text-gray-300">Streaming</span>
|
106 |
<div
|
107 |
+
class="peer relative h-5 w-9 rounded-full bg-gray-200 peer-checked:bg-black peer-focus:outline-hidden after:absolute after:start-[2px] after:top-[2px] after:h-4 after:w-4 after:rounded-full after:border after:border-gray-300 after:bg-white after:transition-all after:content-[''] peer-checked:after:translate-x-full peer-checked:after:border-white dark:border-gray-600 dark:bg-gray-700 dark:peer-checked:bg-blue-600"
|
108 |
></div>
|
109 |
</label>
|
110 |
</div>
|
src/lib/components/InferencePlayground/InferencePlaygroundHFTokenModal.svelte
CHANGED
@@ -108,13 +108,13 @@
|
|
108 |
href="https://huggingface.co/settings/tokens/new?globalPermissions=inference.serverless.write&tokenType=fineGrained"
|
109 |
tabindex="-1"
|
110 |
target="_blank"
|
111 |
-
class="rounded-lg border border-gray-200 bg-white px-5 py-2.5 text-sm font-medium text-gray-900 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:
|
112 |
>Create new token</a
|
113 |
>
|
114 |
|
115 |
<button
|
116 |
type="submit"
|
117 |
-
class="rounded-lg bg-black px-5 py-2.5 text-sm font-medium text-white hover:bg-gray-900 focus:
|
118 |
>Submit</button
|
119 |
>
|
120 |
</div>
|
|
|
108 |
href="https://huggingface.co/settings/tokens/new?globalPermissions=inference.serverless.write&tokenType=fineGrained"
|
109 |
tabindex="-1"
|
110 |
target="_blank"
|
111 |
+
class="rounded-lg border border-gray-200 bg-white px-5 py-2.5 text-sm font-medium text-gray-900 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-100 focus:outline-hidden dark:border-gray-600 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white dark:focus:ring-gray-700"
|
112 |
>Create new token</a
|
113 |
>
|
114 |
|
115 |
<button
|
116 |
type="submit"
|
117 |
+
class="rounded-lg bg-black px-5 py-2.5 text-sm font-medium text-white hover:bg-gray-900 focus:ring-4 focus:ring-gray-300 focus:outline-hidden dark:border-gray-700 dark:bg-gray-800 dark:hover:bg-gray-700 dark:focus:ring-gray-700"
|
118 |
>Submit</button
|
119 |
>
|
120 |
</div>
|
src/lib/components/InferencePlayground/InferencePlaygroundMessage.svelte
CHANGED
@@ -10,10 +10,10 @@
|
|
10 |
</script>
|
11 |
|
12 |
<div
|
13 |
-
class="group/message group grid grid-cols-[1fr_2.5rem] items-start gap-2 px-3.5 pb-6
|
14 |
class:pointer-events-none={loading}
|
15 |
>
|
16 |
-
<div class="col-span-2 pb-1
|
17 |
{message.role}
|
18 |
</div>
|
19 |
<!-- svelte-ignore a11y-autofocus -->
|
@@ -22,7 +22,7 @@
|
|
22 |
{autofocus}
|
23 |
bind:value={message.content}
|
24 |
placeholder="Enter {message.role} message"
|
25 |
-
class="resize-none overflow-hidden rounded-sm bg-transparent px-2 py-2.5 ring-gray-100 hover:resize-y hover:bg-white focus:resize-y focus:bg-white focus:ring-3
|
26 |
rows="1"
|
27 |
tabindex="2"
|
28 |
on:input={() => {
|
@@ -35,7 +35,7 @@
|
|
35 |
dispatch("delete");
|
36 |
}}
|
37 |
type="button"
|
38 |
-
class="mt-1.5 size-8 rounded-lg border border-gray-200 bg-white text-xs font-medium text-gray-900 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:
|
39 |
>✕</button
|
40 |
>
|
41 |
</div>
|
|
|
10 |
</script>
|
11 |
|
12 |
<div
|
13 |
+
class="group/message group grid grid-cols-[1fr_2.5rem] items-start gap-2 px-3.5 pt-4 pb-6 hover:bg-gray-100/70 @-2xl:grid-cols-[130px_1fr_2.5rem] @2xl:grid-rows-1 @2xl:gap-4 @2xl:px-6 dark:border-gray-800 dark:hover:bg-gray-800/30 {$$props.class}"
|
14 |
class:pointer-events-none={loading}
|
15 |
>
|
16 |
+
<div class="col-span-2 pt-3 pb-1 text-sm font-semibold uppercase @2xl:col-span-1 @2xl:pb-2">
|
17 |
{message.role}
|
18 |
</div>
|
19 |
<!-- svelte-ignore a11y-autofocus -->
|
|
|
22 |
{autofocus}
|
23 |
bind:value={message.content}
|
24 |
placeholder="Enter {message.role} message"
|
25 |
+
class="resize-none overflow-hidden rounded-sm bg-transparent px-2 py-2.5 ring-gray-100 group-hover/message:ring-3 hover:resize-y hover:bg-white focus:resize-y focus:bg-white focus:ring-3 @2xl:px-3 dark:ring-gray-600 dark:hover:bg-gray-900 dark:focus:bg-gray-900"
|
26 |
rows="1"
|
27 |
tabindex="2"
|
28 |
on:input={() => {
|
|
|
35 |
dispatch("delete");
|
36 |
}}
|
37 |
type="button"
|
38 |
+
class="mt-1.5 size-8 rounded-lg border border-gray-200 bg-white text-xs font-medium text-gray-900 group-hover/message:block hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-100 focus:outline-hidden sm:hidden dark:border-gray-600 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white dark:focus:ring-gray-700"
|
39 |
>✕</button
|
40 |
>
|
41 |
</div>
|
src/lib/components/InferencePlayground/InferencePlaygroundModelSelector.svelte
CHANGED
@@ -49,7 +49,7 @@
|
|
49 |
</label>
|
50 |
|
51 |
<button
|
52 |
-
class="relative flex items-center justify-between gap-6 overflow-hidden
|
53 |
on:click={() => (showModelPickerModal = true)}
|
54 |
>
|
55 |
<div class="flex flex-col items-start">
|
|
|
49 |
</label>
|
50 |
|
51 |
<button
|
52 |
+
class="relative flex items-center justify-between gap-6 overflow-hidden rounded-lg border bg-gray-100/80 px-3 py-1.5 leading-tight whitespace-nowrap shadow-sm hover:brightness-95 dark:border-gray-700 dark:bg-gray-800 dark:hover:brightness-110"
|
53 |
on:click={() => (showModelPickerModal = true)}
|
54 |
>
|
55 |
<div class="flex flex-col items-start">
|
src/lib/components/InferencePlayground/InferencePlaygroundModelSelectorModal.svelte
CHANGED
@@ -103,7 +103,7 @@
|
|
103 |
bind:this={backdropEl}
|
104 |
on:click|stopPropagation={handleBackdropClick}
|
105 |
>
|
106 |
-
<div class="flex w-full max-w-[600px] items-start justify-center overflow-hidden
|
107 |
<div
|
108 |
class="flex h-full w-full flex-col overflow-hidden rounded-lg border bg-white text-gray-900 shadow-md dark:border-gray-800 dark:bg-gray-900 dark:text-gray-300"
|
109 |
bind:this={containerEl}
|
@@ -118,7 +118,7 @@
|
|
118 |
on:input={e => filterModels(e.currentTarget.value)}
|
119 |
/>
|
120 |
</div>
|
121 |
-
<div class="max-h-[300px] overflow-
|
122 |
{#if featuredModels.length}
|
123 |
<div>
|
124 |
<div class="px-2 py-1.5 text-xs font-medium text-gray-500">Trending</div>
|
|
|
103 |
bind:this={backdropEl}
|
104 |
on:click|stopPropagation={handleBackdropClick}
|
105 |
>
|
106 |
+
<div class="flex w-full max-w-[600px] items-start justify-center overflow-hidden p-10 text-left whitespace-nowrap">
|
107 |
<div
|
108 |
class="flex h-full w-full flex-col overflow-hidden rounded-lg border bg-white text-gray-900 shadow-md dark:border-gray-800 dark:bg-gray-900 dark:text-gray-300"
|
109 |
bind:this={containerEl}
|
|
|
118 |
on:input={e => filterModels(e.currentTarget.value)}
|
119 |
/>
|
120 |
</div>
|
121 |
+
<div class="max-h-[300px] overflow-x-hidden overflow-y-auto">
|
122 |
{#if featuredModels.length}
|
123 |
<div>
|
124 |
<div class="px-2 py-1.5 text-xs font-medium text-gray-500">Trending</div>
|