mirror of https://github.com/wg-easy/wg-easy
committed by
Bernd Storath
3 changed files with 82 additions and 28 deletions
@ -0,0 +1,71 @@ |
|||||
|
<template> |
||||
|
<SelectRoot v-model="langProxy"> |
||||
|
<SelectTrigger |
||||
|
class="inline-flex min-w-[160px] items-center justify-between rounded px-[15px] text-[13px] leading-none h-[35px] gap-[5px] bg-white text-grass11 shadow-[0_2px_10px] shadow-black/10 hover:bg-mauve3 focus:shadow-[0_0_0_2px] focus:shadow-black data-[placeholder]:text-green9 outline-none" |
||||
|
aria-label="Customise options" |
||||
|
> |
||||
|
<SelectValue placeholder="Select a fruit..." /> |
||||
|
<Icon icon="radix-icons:chevron-down" class="h-3.5 w-3.5" /> |
||||
|
</SelectTrigger> |
||||
|
|
||||
|
<SelectPortal> |
||||
|
<SelectContent |
||||
|
class="min-w-[160px] bg-white rounded shadow-[0px_10px_38px_-10px_rgba(22,_23,_24,_0.35),_0px_10px_20px_-15px_rgba(22,_23,_24,_0.2)] will-change-[opacity,transform] data-[side=top]:animate-slideDownAndFade data-[side=right]:animate-slideLeftAndFade data-[side=bottom]:animate-slideUpAndFade data-[side=left]:animate-slideRightAndFade z-[100]" |
||||
|
:side-offset="5" |
||||
|
> |
||||
|
<SelectScrollUpButton |
||||
|
class="flex items-center justify-center h-[25px] bg-white text-violet11 cursor-default" |
||||
|
> |
||||
|
<Icon icon="radix-icons:chevron-up" /> |
||||
|
</SelectScrollUpButton> |
||||
|
|
||||
|
<SelectViewport class="p-[5px]"> |
||||
|
<SelectItem |
||||
|
v-for="(option, index) in langs" |
||||
|
:key="index" |
||||
|
class="text-[13px] leading-none text-grass11 rounded-[3px] flex items-center h-[25px] pr-[35px] pl-[25px] relative select-none data-[disabled]:text-mauve8 data-[disabled]:pointer-events-none data-[highlighted]:outline-none data-[highlighted]:bg-green9 data-[highlighted]:text-green1" |
||||
|
:value="option.value" |
||||
|
> |
||||
|
<SelectItemText> |
||||
|
{{ option.name }} |
||||
|
</SelectItemText> |
||||
|
</SelectItem> |
||||
|
</SelectViewport> |
||||
|
|
||||
|
<SelectScrollDownButton |
||||
|
class="flex items-center justify-center h-[25px] bg-white text-violet11 cursor-default" |
||||
|
> |
||||
|
<Icon icon="radix-icons:chevron-down" /> |
||||
|
</SelectScrollDownButton> |
||||
|
</SelectContent> |
||||
|
</SelectPortal> |
||||
|
</SelectRoot> |
||||
|
</template> |
||||
|
|
||||
|
<script setup lang="ts"> |
||||
|
const { lang } = defineProps<{ |
||||
|
lang: string; |
||||
|
}>(); |
||||
|
|
||||
|
const langProxy = ref(lang); |
||||
|
|
||||
|
const updateLang = defineEmits(['update:lang']); |
||||
|
watch(langProxy, (newVal) => { |
||||
|
updateLang('update:lang', newVal); |
||||
|
}); |
||||
|
|
||||
|
const langs = [ |
||||
|
{ |
||||
|
value: 'de', |
||||
|
name: 'Deutsch', |
||||
|
}, |
||||
|
{ |
||||
|
value: 'en', |
||||
|
name: 'English', |
||||
|
}, |
||||
|
{ |
||||
|
value: 'fr', |
||||
|
name: 'Français', |
||||
|
}, |
||||
|
]; |
||||
|
</script> |
Loading…
Reference in new issue