This commit is contained in:
Timothy Jaeryang Baek 2026-10-10 13:19:05 +04:00
parent 10fdca6e36
commit d4879a98bc
17 changed files with 687 additions and 595 deletions

View file

@ -23,7 +23,7 @@
const actionClass =
'flex size-7 shrink-0 items-center justify-center rounded-lg text-gray-500 transition hover:bg-black/5 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-white/5 dark:hover:text-gray-200';
const inputClass =
'w-full min-w-0 bg-transparent py-1 text-[0.8125rem] text-gray-700 outline-hidden placeholder:text-gray-300 dark:text-gray-300 dark:placeholder:text-gray-700';
'w-full min-w-0 bg-transparent py-1 text-[0.8125rem] outline-hidden placeholder:text-gray-300 dark:placeholder:text-gray-700 font-normal text-gray-900 dark:text-gray-100';
const keyFor = (label: string, items: object) => {
let base = label
@ -134,7 +134,9 @@
<div>
<div class="flex h-7 w-full items-center justify-between">
<span class="text-xs text-gray-600 dark:text-gray-400">{$i18n.t('Model controls')}</span>
<span class="text-xs font-normal text-gray-600 dark:text-gray-400"
>{$i18n.t('Model controls')}</span
>
<button
type="button"
class="rounded p-1 text-gray-500 transition hover:bg-black/5 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-white/5 dark:hover:text-gray-200"
@ -159,7 +161,7 @@
>
<button
type="button"
class="flex min-w-0 flex-1 items-center justify-between gap-3 py-1 text-left text-[0.8125rem] text-gray-700 dark:text-gray-300"
class="flex min-w-0 flex-1 items-center justify-between gap-3 py-1 text-left text-[0.8125rem] font-normal text-gray-900 dark:text-gray-100"
aria-label={`${$i18n.t('Edit')} ${control.label}`}
on:click={() => edit(key)}
>
@ -202,7 +204,8 @@
<form class="space-y-2.5" on:submit|preventDefault|stopPropagation={apply}>
<div class="grid grid-cols-[minmax(0,1fr)_minmax(0,8rem)] gap-4">
<label class="block min-w-0 text-xs leading-4">
<span class="text-xs text-gray-400 dark:text-gray-600">{$i18n.t('Name')}</span>
<span class="text-xs font-normal text-gray-600 dark:text-gray-400">{$i18n.t('Name')}</span
>
<input
bind:this={nameInput}
class={inputClass}
@ -213,7 +216,9 @@
/>
</label>
<label class="block min-w-0 text-xs leading-4">
<span class="text-xs text-gray-400 dark:text-gray-600">{$i18n.t('Default option')}</span>
<span class="text-xs font-normal text-gray-600 dark:text-gray-400"
>{$i18n.t('Default option')}</span
>
<NativeSelect
value={defaultOption}
options={[
@ -228,11 +233,15 @@
</label>
</div>
<label class="block text-xs leading-4">
<span class="text-xs text-gray-400 dark:text-gray-600">{$i18n.t('Description')}</span>
<span class="text-xs font-normal text-gray-600 dark:text-gray-400"
>{$i18n.t('Description')}</span
>
<input class={inputClass} placeholder={$i18n.t('Optional')} bind:value={description} />
</label>
<div class="flex items-center justify-between">
<span class="text-xs text-gray-400 dark:text-gray-600">{$i18n.t('Display')}</span>
<span class="text-xs font-normal text-gray-600 dark:text-gray-400"
>{$i18n.t('Display')}</span
>
<div class="flex gap-1">
{#each ['menu', 'slider'] as mode}
<button
@ -249,7 +258,9 @@
</div>
</div>
<div>
<span class="text-xs text-gray-400 dark:text-gray-600">{$i18n.t('Options')}</span>
<span class="text-xs font-normal text-gray-600 dark:text-gray-400"
>{$i18n.t('Options')}</span
>
<div class="divide-y divide-gray-100/60 dark:divide-gray-850/60" use:sortable={moveOption}>
{#each options as option, index (option.id)}
<div class="py-1.5">

View file

@ -108,8 +108,8 @@
<div
class={layout === 'grid'
? 'grid grid-cols-1 gap-x-5 gap-y-1 pb-safe-bottom text-xs text-gray-600 dark:text-gray-400 sm:grid-cols-2 lg:grid-cols-3'
: 'space-y-1 pb-safe-bottom text-xs text-gray-600 dark:text-gray-400'}
? 'grid grid-cols-1 gap-x-5 gap-y-1 pb-safe-bottom text-xs text-gray-900 dark:text-gray-100 sm:grid-cols-2 lg:grid-cols-3'
: 'space-y-1 pb-safe-bottom text-xs text-gray-900 dark:text-gray-100'}
>
<div>
<Tooltip
@ -118,11 +118,11 @@
className="inline-tooltip"
>
<div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.streamChatResponse.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition"
class="p-1 px-3 text-xs flex rounded-sm transition font-normal text-gray-900 dark:text-gray-100"
on:click={() => {
params.stream_response =
(params?.stream_response ?? null) === null
@ -153,11 +153,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.streamDeltaChunkSize.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.stream_delta_chunk_size =
@ -195,11 +195,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.contextCompactionThreshold.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.compact_token_threshold =
@ -219,7 +219,7 @@
<div class="flex mt-0.5 space-x-2">
<div class=" flex-1">
<input
class="text-sm w-full bg-transparent outline-hidden outline-none"
class="text-sm w-full bg-transparent outline-hidden outline-none font-normal text-gray-900 dark:text-gray-100"
type="number"
aria-label={$i18n.t(
'settings.personal.general.parameters.contextCompactionThreshold.label'
@ -243,11 +243,11 @@
className="inline-tooltip"
>
<div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.functionCalling.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition"
class="p-1 px-3 text-xs flex rounded-sm transition font-normal text-gray-900 dark:text-gray-100"
on:click={() => {
if ((params?.function_calling ?? null) === null) {
params.function_calling = 'native';
@ -278,11 +278,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.reasoningTags.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
if ((params?.reasoning_tags ?? null) === null) {
@ -313,7 +313,7 @@
<div class="flex mt-0.5 space-x-2">
<div class=" flex-1">
<input
class="text-sm w-full bg-transparent outline-hidden outline-none"
class="text-sm w-full bg-transparent outline-hidden outline-none font-normal text-gray-900 dark:text-gray-100"
type="text"
aria-label={$i18n.t('Start Tag')}
placeholder={$i18n.t('Start Tag')}
@ -324,7 +324,7 @@
<div class=" flex-1">
<input
class="text-sm w-full bg-transparent outline-hidden outline-none"
class="text-sm w-full bg-transparent outline-hidden outline-none font-normal text-gray-900 dark:text-gray-100"
type="text"
aria-label={$i18n.t('End Tag')}
placeholder={$i18n.t('End Tag')}
@ -343,12 +343,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.seed.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.seed = (params?.seed ?? null) === null ? 0 : null;
@ -367,7 +367,7 @@
<div class="flex mt-0.5 space-x-2">
<div class=" flex-1">
<input
class="text-sm w-full bg-transparent outline-hidden outline-none"
class="text-sm w-full bg-transparent outline-hidden outline-none font-normal text-gray-900 dark:text-gray-100"
type="number"
aria-label={$i18n.t('settings.personal.general.parameters.seed.label')}
placeholder={$i18n.t('Enter Seed')}
@ -387,12 +387,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.stopSequence.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.stop = (params?.stop ?? null) === null ? '' : null;
@ -411,7 +411,7 @@
<div class="flex mt-0.5 space-x-2">
<div class=" flex-1">
<input
class="text-sm w-full bg-transparent outline-hidden outline-none"
class="text-sm w-full bg-transparent outline-hidden outline-none font-normal text-gray-900 dark:text-gray-100"
type="text"
aria-label={$i18n.t('settings.personal.general.parameters.stopSequence.label')}
placeholder={$i18n.t('Enter stop sequence')}
@ -430,11 +430,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.temperature.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.temperature = (params?.temperature ?? null) === null ? 0.8 : null;
@ -467,11 +467,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.reasoningEffort.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.reasoning_effort = (params?.reasoning_effort ?? null) === null ? 'medium' : null;
@ -490,7 +490,7 @@
<div class="flex mt-0.5 space-x-2">
<div class=" flex-1">
<input
class="text-sm w-full bg-transparent outline-hidden outline-none"
class="text-sm w-full bg-transparent outline-hidden outline-none font-normal text-gray-900 dark:text-gray-100"
type="text"
aria-label={$i18n.t('settings.personal.general.parameters.reasoningEffort.label')}
placeholder={$i18n.t('Enter reasoning effort')}
@ -511,11 +511,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.logitBias.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.logit_bias = (params?.logit_bias ?? null) === null ? '' : null;
@ -534,7 +534,7 @@
<div class="flex mt-0.5 space-x-2">
<div class=" flex-1">
<input
class="text-sm w-full bg-transparent outline-hidden outline-none"
class="text-sm w-full bg-transparent outline-hidden outline-none font-normal text-gray-900 dark:text-gray-100"
type="text"
aria-label={$i18n.t('settings.personal.general.parameters.logitBias.label')}
placeholder={$i18n.t(
@ -557,12 +557,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.maxTokens.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.max_tokens = (params?.max_tokens ?? null) === null ? 128 : null;
@ -599,11 +599,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.topK.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.top_k = (params?.top_k ?? null) === null ? 40 : null;
@ -657,12 +657,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.topP.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.top_p = (params?.top_p ?? null) === null ? 0.9 : null;
@ -697,11 +697,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.minP.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.min_p = (params?.min_p ?? null) === null ? 0.0 : null;
@ -736,12 +736,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.frequencyPenalty.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.frequency_penalty = (params?.frequency_penalty ?? null) === null ? 1.1 : null;
@ -776,12 +776,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.presencePenalty.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded transition flex-shrink-0 outline-none"
class="p-1 px-3 text-xs flex rounded transition flex-shrink-0 outline-none font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.presence_penalty = (params?.presence_penalty ?? null) === null ? 0.0 : null;
@ -814,11 +814,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.mirostat.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.mirostat = (params?.mirostat ?? null) === null ? 0 : null;
@ -854,11 +854,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.mirostatEta.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.mirostat_eta = (params?.mirostat_eta ?? null) === null ? 0.1 : null;
@ -893,12 +893,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.mirostatTau.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.mirostat_tau = (params?.mirostat_tau ?? null) === null ? 5.0 : null;
@ -931,12 +931,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.repeatLastN.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.repeat_last_n = (params?.repeat_last_n ?? null) === null ? 64 : null;
@ -972,12 +972,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.tfsZ.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.tfs_z = (params?.tfs_z ?? null) === null ? 1 : null;
@ -1012,12 +1012,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.repeatPenalty.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded transition flex-shrink-0 outline-none"
class="p-1 px-3 text-xs flex rounded transition flex-shrink-0 outline-none font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.repeat_penalty = (params?.repeat_penalty ?? null) === null ? 1.1 : null;
@ -1053,11 +1053,11 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.useMmap.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.use_mmap = (params?.use_mmap ?? null) === null ? true : null;
@ -1096,12 +1096,12 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.useMlock.label')}
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.use_mlock = (params?.use_mlock ?? null) === null ? true : null;
@ -1140,13 +1140,13 @@
className="inline-tooltip"
>
<div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.think.label')} ({$i18n.t(
'settings.personal.general.parameters.ollama.label'
)})
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition"
class="p-1 px-3 text-xs flex rounded-sm transition font-normal text-gray-900 dark:text-gray-100"
on:click={() => {
if ((params?.think ?? null) === null) {
params.think = true;
@ -1177,7 +1177,7 @@
<div class="flex mt-0.5 space-x-2">
<div class=" flex-1">
<input
class="text-sm w-full bg-transparent outline-hidden outline-none"
class="text-sm w-full bg-transparent outline-hidden outline-none font-normal text-gray-900 dark:text-gray-100"
type="text"
aria-label={`${$i18n.t('settings.personal.general.parameters.think.label')} (${$i18n.t('settings.personal.general.parameters.ollama.label')})`}
placeholder={$i18n.t("e.g. 'low', 'medium', 'high'")}
@ -1196,13 +1196,13 @@
className="inline-tooltip"
>
<div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.format.label')} ({$i18n.t(
'settings.personal.general.parameters.ollama.label'
)})
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition"
class="p-1 px-3 text-xs flex rounded-sm transition font-normal text-gray-900 dark:text-gray-100"
on:click={() => {
params.format = (params?.format ?? null) === null ? 'json' : null;
}}
@ -1238,14 +1238,14 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.numKeep.label')} ({$i18n.t(
'settings.personal.general.parameters.ollama.label'
)})
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.num_keep = (params?.num_keep ?? null) === null ? 24 : null;
@ -1280,14 +1280,14 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.numCtx.label')} ({$i18n.t(
'settings.personal.general.parameters.ollama.label'
)})
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.num_ctx = (params?.num_ctx ?? null) === null ? 2048 : null;
@ -1324,14 +1324,14 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.numBatch.label')} ({$i18n.t(
'settings.personal.general.parameters.ollama.label'
)})
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.num_batch = (params?.num_batch ?? null) === null ? 512 : null;
@ -1369,14 +1369,14 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.numThread.label')} ({$i18n.t(
'settings.personal.general.parameters.ollama.label'
)})
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.num_thread = (params?.num_thread ?? null) === null ? 2 : null;
@ -1412,14 +1412,14 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.numGpu.label')} ({$i18n.t(
'settings.personal.general.parameters.ollama.label'
)})
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden"
class="p-1 px-3 text-xs flex rounded-sm transition shrink-0 outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="button"
on:click={() => {
params.num_gpu = (params?.num_gpu ?? null) === null ? 0 : null;
@ -1455,13 +1455,13 @@
className="inline-tooltip"
>
<div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.personal.general.parameters.keepAlive.label')} ({$i18n.t(
'settings.personal.general.parameters.ollama.label'
)})
</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition"
class="p-1 px-3 text-xs flex rounded-sm transition font-normal text-gray-900 dark:text-gray-100"
on:click={() => {
params.keep_alive = (params?.keep_alive ?? null) === null ? '5m' : null;
}}
@ -1479,7 +1479,7 @@
{#if (params?.keep_alive ?? null) !== null}
<div class="flex mt-0.5 space-x-2">
<input
class="w-full text-sm bg-transparent outline-hidden"
class="w-full text-sm bg-transparent outline-hidden font-normal text-gray-900 dark:text-gray-100"
type="text"
aria-label={`${$i18n.t('settings.personal.general.parameters.keepAlive.label')} (${$i18n.t('settings.personal.general.parameters.ollama.label')})`}
placeholder={$i18n.t("e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.")}

View file

@ -71,14 +71,14 @@
: 'mb-1 grid grid-cols-[1fr_auto] items-center gap-y-0.5 py-0.5'}
>
<label class="min-w-0">
{#if compact}<span class="block text-xs text-gray-400 dark:text-gray-600"
{#if compact}<span class="block text-xs font-normal text-gray-600 dark:text-gray-400"
>{$i18n.t('Parameter')}</span
>{/if}
<input
type="text"
class={compact
? 'w-full min-w-0 bg-transparent py-1 text-[0.8125rem] text-gray-700 outline-none placeholder:text-gray-300 dark:text-gray-300 dark:placeholder:text-gray-700'
: 'min-w-0 w-full bg-transparent text-xs text-gray-400 dark:text-gray-600 outline-none'}
? 'w-full min-w-0 bg-transparent py-1 text-[0.8125rem] font-normal text-gray-900 outline-none placeholder:text-gray-300 dark:text-gray-100 dark:placeholder:text-gray-700'
: 'min-w-0 w-full bg-transparent text-xs font-normal text-gray-900 dark:text-gray-100 outline-none'}
aria-label={$i18n.t('Custom Parameter Name')}
list={`${id}-names`}
autocomplete="off"
@ -99,14 +99,14 @@
/>
</label>
<label class={compact ? 'min-w-0' : 'order-last col-span-2'}>
{#if compact}<span class="block text-xs text-gray-400 dark:text-gray-600"
{#if compact}<span class="block text-xs font-normal text-gray-600 dark:text-gray-400"
>{$i18n.t('Value')}</span
>{/if}
<input
type="text"
class={compact
? 'w-full min-w-0 bg-transparent py-1 text-[0.8125rem] text-gray-700 outline-none placeholder:text-gray-300 dark:text-gray-300 dark:placeholder:text-gray-700'
: 'w-full min-w-0 bg-transparent text-[0.8125rem] text-gray-700 dark:text-gray-300 outline-none'}
? 'w-full min-w-0 bg-transparent py-1 text-[0.8125rem] font-normal text-gray-900 outline-none placeholder:text-gray-300 dark:text-gray-100 dark:placeholder:text-gray-700'
: 'w-full min-w-0 bg-transparent text-[0.8125rem] font-normal text-gray-900 dark:text-gray-100 outline-none'}
aria-label={$i18n.t('Custom Parameter Value')}
list={options.length ? `${id}-values-${index}` : undefined}
autocomplete="off"

View file

@ -34,7 +34,9 @@
{#if actions.length > 0}
<div>
<div class="flex w-full items-center gap-2 mb-1">
<div class=" self-center text-xs text-gray-500">{$i18n.t('Actions')}</div>
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('Actions')}
</div>
{#if selectableActions.length > 0}
<TypeaheadSelector
@ -77,7 +79,7 @@
/>
</div>
<div class=" py-0.5 text-xs capitalize">
<div class="py-0.5 text-xs capitalize font-normal text-gray-900 dark:text-gray-100">
<Tooltip
content={resolveLocalizedResource(action, $i18n.language, 'description') ||
action.id}

View file

@ -95,7 +95,7 @@
</script>
<div>
<div class="mb-1.5 text-xs text-gray-400 dark:text-gray-600">
<div class="mb-1.5 text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.admin.models.builtinTools.title')}
</div>
<div class="grid grid-cols-1 gap-x-5 gap-y-1 sm:grid-cols-2 lg:grid-cols-3">
@ -110,7 +110,7 @@
/>
<button
type="button"
class="min-w-0 cursor-pointer text-left text-xs text-gray-600 dark:text-gray-400"
class="min-w-0 cursor-pointer text-left text-xs font-normal text-gray-900 dark:text-gray-100"
on:click={() => setBuiltinTool(tool, builtinTools[tool] === false)}
>
<Tooltip

View file

@ -79,7 +79,7 @@
</script>
<div>
<div class="mb-1.5 text-xs text-gray-400 dark:text-gray-600">
<div class="mb-1.5 text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.admin.models.capabilities.title')}
</div>
<div class="grid grid-cols-1 gap-x-5 gap-y-1 sm:grid-cols-2 lg:grid-cols-3">
@ -94,7 +94,7 @@
/>
<button
type="button"
class="min-w-0 cursor-pointer text-left text-xs text-gray-600 dark:text-gray-400"
class="min-w-0 cursor-pointer text-left text-xs font-normal text-gray-900 dark:text-gray-100"
on:click={() => setCapability(capability, !capabilities[capability])}
>
<Tooltip

View file

@ -43,7 +43,7 @@
</script>
<div>
<div class="mb-1.5 text-xs text-gray-400 dark:text-gray-600">
<div class="mb-1.5 text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('settings.admin.models.defaultFeatures.title')}
</div>
<div class="grid grid-cols-1 gap-x-5 gap-y-1 sm:grid-cols-2 lg:grid-cols-3">
@ -58,7 +58,7 @@
/>
<button
type="button"
class="min-w-0 cursor-pointer text-left text-xs text-gray-600 dark:text-gray-400"
class="min-w-0 cursor-pointer text-left text-xs font-normal text-gray-900 dark:text-gray-100"
on:click={() => setFeature(feature, !featureIds.includes(feature))}
>
<Tooltip

View file

@ -28,7 +28,9 @@
<div>
<div class="flex w-full items-center gap-2 mb-1">
<div class=" self-center text-xs text-gray-500">{$i18n.t('Default Filters')}</div>
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('Default Filters')}
</div>
{#if filters.length > 0}
<TypeaheadSelector
@ -76,7 +78,7 @@
/>
</div>
<div class=" py-0.5 text-xs capitalize">
<div class="py-0.5 text-xs capitalize font-normal text-gray-900 dark:text-gray-100">
<Tooltip content={filter.meta?.description ?? filter.id}>
{filter.name}
</Tooltip>

View file

@ -34,7 +34,9 @@
{#if filters.length > 0}
<div>
<div class="flex w-full items-center gap-2 mb-1">
<div class=" self-center text-xs text-gray-500">{$i18n.t('Filters')}</div>
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('Filters')}
</div>
{#if selectableFilters.length > 0}
<TypeaheadSelector
@ -85,7 +87,7 @@
/>
</div>
<div class=" py-0.5 text-xs capitalize">
<div class="py-0.5 text-xs capitalize font-normal text-gray-900 dark:text-gray-100">
<Tooltip
content={resolveLocalizedResource(filter, $i18n.language, 'description') ||
filter.id}

View file

@ -174,7 +174,7 @@
<div class="flex w-full items-center gap-2 mb-1">
<div class="min-w-0">
<slot name="label">
<div class=" self-center text-xs text-gray-500">
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('Knowledge')}
</div>
</slot>
@ -228,7 +228,7 @@
{#each selectedItems as file, fileIdx}
<Tooltip content={file.description || file.name || file.id}>
<div
class="flex max-w-56 items-center gap-1.5 py-0.5 pr-2 text-xs text-gray-700 dark:text-gray-200"
class="flex max-w-56 items-center gap-1.5 py-0.5 pr-2 text-xs font-normal text-gray-900 dark:text-gray-100"
>
<button
type="button"

View file

@ -60,7 +60,7 @@
<span
slot="label"
title={localeLabel}
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-[0.6875rem] text-gray-400 dark:text-gray-600"
class="flex flex-wrap items-center gap-x-3 gap-y-1 text-[0.6875rem] text-gray-900 dark:text-gray-100"
>
{#if hasCustomLocalePrompts}
<button

File diff suppressed because it is too large Load diff

View file

@ -51,7 +51,7 @@
<div class="space-y-2">
<div class="mb-1 flex min-h-7 w-full flex-wrap items-center justify-between gap-x-2 gap-y-1">
<div class="min-w-fit flex-1 self-center text-xs text-gray-500 dark:text-gray-400">
<div class="min-w-fit flex-1 self-center text-xs font-normal text-gray-600 dark:text-gray-400">
<slot name="label">{$i18n.t('Default Prompt Suggestions')}</slot>
</div>
@ -163,7 +163,7 @@
<div class="grid min-w-0 gap-1 md:grid-cols-2 md:gap-1.5">
<Tooltip content={$i18n.t('e.g. Tell me a fun fact')} placement="top-start">
<input
class="w-full bg-transparent text-[0.8125rem] leading-5 text-gray-700 outline-hidden placeholder:text-gray-300 dark:text-gray-200 dark:placeholder:text-gray-700"
class="w-full bg-transparent text-[0.8125rem] leading-5 outline-hidden placeholder:text-gray-300 dark:placeholder:text-gray-700 font-normal text-gray-900 dark:text-gray-100"
placeholder={$i18n.t('Title')}
aria-label={$i18n.t('Title')}
value={prompt.title[0]}
@ -176,7 +176,7 @@
<Tooltip content={$i18n.t('e.g. about the Roman Empire')} placement="top-start">
<input
class="w-full bg-transparent text-[0.8125rem] leading-5 text-gray-500 outline-hidden placeholder:text-gray-300 dark:text-gray-500 dark:placeholder:text-gray-700"
class="w-full bg-transparent text-[0.8125rem] leading-5 outline-hidden placeholder:text-gray-300 dark:placeholder:text-gray-700 font-normal text-gray-900 dark:text-gray-100"
placeholder={$i18n.t('Subtitle')}
aria-label={$i18n.t('Subtitle')}
value={prompt.title[1]}
@ -194,7 +194,7 @@
placement="top-start"
>
<textarea
class="min-h-5 w-full resize-none overflow-hidden bg-transparent text-[0.8125rem] leading-5 text-gray-700 outline-hidden placeholder:text-gray-300 dark:text-gray-200 dark:placeholder:text-gray-700"
class="min-h-5 w-full resize-none overflow-hidden bg-transparent text-[0.8125rem] leading-5 outline-hidden placeholder:text-gray-300 dark:placeholder:text-gray-700 font-normal text-gray-900 dark:text-gray-100"
placeholder={$i18n.t('Content')}
aria-label={$i18n.t('Content')}
rows="1"

View file

@ -29,7 +29,9 @@
<div>
<div class="flex w-full items-center gap-2 mb-1">
<div class=" self-center text-xs text-gray-500">{$i18n.t('Skills')}</div>
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('Skills')}
</div>
{#if activeSkills.length > 0}
<TypeaheadSelector
@ -72,7 +74,7 @@
<Tooltip
content={resolveLocalizedResource(skill, $i18n.language, 'description') || skill.id}
>
<div class=" py-0.5 text-xs capitalize">
<div class="py-0.5 text-xs capitalize font-normal text-gray-900 dark:text-gray-100">
{resolveLocalizedResource(skill, $i18n.language)}
</div>
</Tooltip>

View file

@ -15,11 +15,13 @@
{#if terminals.length > 0}
<div class="flex w-full justify-between mb-1">
<div class="self-center text-xs font-normal text-gray-500">{$i18n.t('Terminal')}</div>
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('Terminal')}
</div>
</div>
<select
class="block h-5 w-full py-0 text-xs leading-5 bg-transparent outline-hidden cursor-pointer"
class="block h-5 w-full py-0 text-xs leading-5 bg-transparent outline-hidden cursor-pointer font-normal text-gray-900 dark:text-gray-100"
bind:value={terminalId}
>
<option value="">{$i18n.t('None')}</option>

View file

@ -29,7 +29,9 @@
<div>
<div class="flex w-full items-center gap-2 mb-1">
<div class=" self-center text-xs text-gray-500">{$i18n.t('Tools')}</div>
<div class="self-center text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('Tools')}
</div>
{#if tools.length > 0}
<TypeaheadSelector
@ -70,7 +72,7 @@
<Tooltip
content={resolveLocalizedResource(tool, $i18n.language, 'description') || tool.id}
>
<div class=" py-0.5 text-xs capitalize">
<div class="py-0.5 text-xs capitalize font-normal text-gray-900 dark:text-gray-100">
{resolveLocalizedResource(tool, $i18n.language)}
</div>
</Tooltip>

View file

@ -33,8 +33,12 @@
<div class="my-3 flex items-center justify-between gap-3">
<div>
<div class="mb-1 text-xs text-gray-500">{$i18n.t('Voice avatar')}</div>
<div class="text-xs leading-5">{value ? $i18n.t('Custom avatar') : $i18n.t('Default orb')}</div>
<div class="mb-1 text-xs font-normal text-gray-600 dark:text-gray-400">
{$i18n.t('Voice avatar')}
</div>
<div class="text-xs leading-5 font-normal text-gray-900 dark:text-gray-100">
{value ? $i18n.t('Custom avatar') : $i18n.t('Default orb')}
</div>
</div>
<button
type="button"