feat: expose open state to slots

This commit is contained in:
Benjamin Canac
2024-05-30 12:36:48 +02:00
parent 85c4226bd0
commit ed2c45ac76
7 changed files with 31 additions and 24 deletions

View File

@@ -25,7 +25,7 @@ export interface PopoverProps extends PopoverRootProps, Pick<HoverCardRootProps,
export interface PopoverEmits extends PopoverRootEmits {}
export interface PopoverSlots {
default(): any
default(props: { open: boolean }): any
content(): any
}
</script>
@@ -57,9 +57,9 @@ const Component = computed(() => props.mode === 'hover' ? HoverCard : Popover)
</script>
<template>
<Component.Root v-bind="rootProps">
<Component.Root v-slot="{ open }" v-bind="rootProps">
<Component.Trigger v-if="!!slots.default" as-child>
<slot />
<slot :open="open" />
</Component.Trigger>
<Component.Portal :disabled="!portal">