frontend/app/components/composer/visibility-picker.vue

40 lines
1.1 KiB
Vue
Raw Normal View History

<template>
<Select v-model:model-value="visibility">
<SelectTrigger as-child disable-default-classes disable-select-icon>
2026-01-09 21:47:12 +01:00
<slot />
</SelectTrigger>
<SelectContent>
2025-12-09 22:32:22 +01:00
<SelectItem
v-for="(v, k) in visibilities"
:key="k"
@click="visibility = k"
:value="k"
>
<div
class="flex flex-row gap-3 items-center w-full justify-between"
>
2026-01-09 21:47:12 +01:00
<component :is="v.icon" class="size-4" />
<div class="flex flex-col gap-1">
<span class="font-semibold">{{ v.name }}</span>
<span>{{ v.text }}</span>
</div>
</div>
</SelectItem>
</SelectContent>
</Select>
</template>
<script lang="ts" setup>
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
} from "~/components/ui/select";
import { visibilities } from "./visibilities";
const visibility = defineModel<ComposerState["visibility"]>("visibility", {
required: true,
});
</script>