refactor: Update TextInput class to include "peer" for styling consistency
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<input
|
<input
|
||||||
class={"border border-darkborderc focus:border-borderc rounded-md shadow-sm text-textcolor bg-transparent focus:ring-borderc focus:ring-2 focus:outline-none transition-colors duration-200" + ((className) ? (' ' + className) : '')}
|
class={"border border-darkborderc peer focus:border-borderc rounded-md shadow-sm text-textcolor bg-transparent focus:ring-borderc focus:ring-2 focus:outline-none transition-colors duration-200" + ((className) ? (' ' + className) : '')}
|
||||||
class:text-sm={size === 'sm'}
|
class:text-sm={size === 'sm'}
|
||||||
class:text-md={size === 'md'}
|
class:text-md={size === 'md'}
|
||||||
class:text-lg={size === 'lg'}
|
class:text-lg={size === 'lg'}
|
||||||
|
|||||||
@@ -29,9 +29,19 @@
|
|||||||
<span class="text-textcolor">{language.tags}</span>
|
<span class="text-textcolor">{language.tags}</span>
|
||||||
<span class="text-textcolor2 text-sm">Tags to search your character easily. latin alphabets only. seperate by comma.</span>
|
<span class="text-textcolor2 text-sm">Tags to search your character easily. latin alphabets only. seperate by comma.</span>
|
||||||
<TextInput placeholder="" bind:value={tags} on:input={() => {
|
<TextInput placeholder="" bind:value={tags} on:input={() => {
|
||||||
tags = tags.replace(/[^a-zA-Z,]/g, '').toLocaleLowerCase().replace(/ /g, '')
|
tags = tags.replace(/[^a-zA-Z,\-]/g, '').toLocaleLowerCase().replace(/ /g, '')
|
||||||
}} />
|
}} />
|
||||||
|
|
||||||
|
<div class="peer-focus:block hidden hover:block flex-wrap">
|
||||||
|
{#each searchTagList(tags) as tag}
|
||||||
|
<button class="text-textcolor2 text-sm p-2 border border-bgcolor" on:click={() => {
|
||||||
|
const splited = tags.split(',').map(e => e.trim())
|
||||||
|
splited[splited.length - 1] = tag
|
||||||
|
tags = splited.join(',') + ','
|
||||||
|
}}>{tag}</button>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
|
||||||
{#if char.license !== 'CC BY-NC-SA 4.0' && char.license !== 'CC BY-SA 4.0'}
|
{#if char.license !== 'CC BY-NC-SA 4.0' && char.license !== 'CC BY-SA 4.0'}
|
||||||
|
|
||||||
<span class="text-textcolor mt-4">License</span>
|
<span class="text-textcolor mt-4">License</span>
|
||||||
@@ -104,7 +114,7 @@
|
|||||||
import SelectInput from "../GUI/SelectInput.svelte";
|
import SelectInput from "../GUI/SelectInput.svelte";
|
||||||
import { CCLicenseData } from "src/ts/creation/license";
|
import { CCLicenseData } from "src/ts/creation/license";
|
||||||
import OptionInput from "../GUI/OptionInput.svelte";
|
import OptionInput from "../GUI/OptionInput.svelte";
|
||||||
import { parseMultilangString, sleep } from "src/ts/util";
|
import { TagList, parseMultilangString, searchTagList, sleep } from "src/ts/util";
|
||||||
import MultiLangInput from "../GUI/MultiLangInput.svelte";
|
import MultiLangInput from "../GUI/MultiLangInput.svelte";
|
||||||
export let close = () => {}
|
export let close = () => {}
|
||||||
export let char:character
|
export let char:character
|
||||||
|
|||||||
@@ -933,4 +933,29 @@ export const TagList = [
|
|||||||
'inhuman', 'nonhuman', 'non-human-character', 'not-human'
|
'inhuman', 'nonhuman', 'non-human-character', 'not-human'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
export const searchTagList = (query:string) => {
|
||||||
|
const splited = query.split(',').map(v => v.trim())
|
||||||
|
if(splited.length > 10){
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
const realQuery = splited.at(-1).trim().toLowerCase()
|
||||||
|
|
||||||
|
let result = []
|
||||||
|
|
||||||
|
for(const tag of TagList){
|
||||||
|
if(tag.value.startsWith(realQuery)){
|
||||||
|
result.push(tag.value)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
for(const alias of tag.alias){
|
||||||
|
if(alias.startsWith(realQuery)){
|
||||||
|
result.push(tag.value)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.filter(v => splited.indexOf(v) === -1)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user