ConsentBannerDefault
const ConsentBannerDefault: DefineComponent<ExtractPropTypes<{ copy: { default: () => {}; type: PropType<Partial<BannerCopy>>; }; locale: { default: undefined; type: PropType<undefined | string>; }; policyUrl: { default: undefined; type: PropType<undefined | string>; }; theme: { default: undefined; type: PropType<undefined | "light" | "dark">; }; }>, () => VNode<RendererNode, RendererElement, {}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, ToResolvedProps<ExtractPropTypes<{ copy: { default: () => {}; type: PropType<Partial<BannerCopy>>; }; locale: { default: undefined; type: PropType<undefined | string>; }; policyUrl: { default: undefined; type: PropType<undefined | string>; }; theme: { default: undefined; type: PropType<undefined | "light" | "dark">; }; }>, {}>, { copy: Partial<BannerCopy>; locale: undefined | string; policyUrl: undefined | string; theme: undefined | "light" | "dark";}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;Defined in: packages/banner-default/src/vue/banner.ts:41
Drop-in styled consent banner for Vue. Mounts only when the headless
<ConsentBanner> says it should be open. “Customise” opens a modal
with per-category toggles.
Equal-prominence design: Accept All and Reject All use identical button styling. UK ICO and EU EDPB guidance treats unequal visual weight on those buttons as a dark pattern. Customise is rendered as a ghost button so the two consent paths stay symmetrical.
Example
<script setup lang="ts">import { ConsentBannerDefault } from '@tickboxhq/banner-default/vue'import config from './consent.config'</script><template> <ConsentBannerDefault :policy-url="config.policy?.url" /></template>