import { computed, toRaw, type ComputedRef } from 'vue' import deepmerge from 'deepmerge' type PropsList = Record type ComponentsProps = Record export interface CustomizableOptions { vuetifyOptions?: ComponentsProps } export default function useCustomizableOptions( defaultOptions: T1, props: { vuetifyOptions?: T2 }, ): ComputedRef export default function useCustomizableOptions( defaultOptions: Partial, props: { vuetifyOptions?: Partial }, ): ComputedRef export default function useCustomizableOptions( defaultOptions: ComponentsProps, props: CustomizableOptions, ) { return computed(() => deepmerge(defaultOptions, toRaw(props.vuetifyOptions) ?? {})) }