* chore: add storybook * chore: unify FE codeabse * chore: update eslint rules * chore: harmonize the use of "subtle" color * chore: remove an extra sidebar rail * refactor: make panel items more consistent * chore: cleanups after merging new code from base * refactor: refine composables * fix: add lost import * chore: make icon style consistent * fix: don't show empty "supported" methods * refactor: solidify select items
52 lines
1.6 KiB
Vue
52 lines
1.6 KiB
Vue
<script setup lang="ts">
|
|
/**
|
|
* @component AppDropdownMenuSubContent
|
|
* @description The container for sub-dropdown menu items.
|
|
*/
|
|
import { cn } from '@/utils/ui';
|
|
import {
|
|
DropdownMenuSubContent,
|
|
type DropdownMenuSubContentEmits,
|
|
type DropdownMenuSubContentProps,
|
|
useForwardPropsEmits,
|
|
} from 'reka-ui';
|
|
import { computed, type HTMLAttributes } from 'vue';
|
|
|
|
/*
|
|
* Types & Interfaces.
|
|
*/
|
|
|
|
export interface AppDropdownMenuSubContentProps extends DropdownMenuSubContentProps {
|
|
class?: HTMLAttributes['class'];
|
|
}
|
|
|
|
/*
|
|
* Component Setup.
|
|
*/
|
|
|
|
const props = defineProps<AppDropdownMenuSubContentProps>();
|
|
const emits = defineEmits<DropdownMenuSubContentEmits>();
|
|
|
|
const delegatedProps = computed(() => {
|
|
const { class: _, ...delegated } = props;
|
|
|
|
return delegated;
|
|
});
|
|
|
|
const forwarded = useForwardPropsEmits(delegatedProps, emits);
|
|
</script>
|
|
|
|
<template>
|
|
<DropdownMenuSubContent
|
|
v-bind="forwarded"
|
|
:class="
|
|
cn(
|
|
'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 overflow-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-lg dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50',
|
|
props.class,
|
|
)
|
|
"
|
|
>
|
|
<slot />
|
|
</DropdownMenuSubContent>
|
|
</template>
|