UNPKG

apphouse

Version:

Component library for React that uses observable state management and theme-able components.

129 lines (128 loc) 3.63 kB
import { ButtonProps, ButtonStyles } from '../components/Button'; import { PositionOptionsType } from '../utils/styles/getStylesForPosition'; import { ApphouseComponent } from '../components/component.interfaces'; import { CSSProperties } from 'glamor'; import React from 'react'; import { PopupStyles } from '../components/popup/Popup.interface'; /** * Interface for a cookie banner action */ export interface CookieBannerAction extends Omit<ButtonProps, 'children'> { /** * The id of the action * must be unique */ id: string; /** * Callback function to be executed when the cookie banner * button is clicked */ action: () => void; /** * The label of the action */ label: string; } export interface CookieBannerStyles { popup?: PopupStyles; container?: CSSProperties; button?: ButtonStyles; } /** * Interface for the cookie banner component */ export interface CookieBannerProps extends ApphouseComponent<CookieBannerStyles> { /** * The actions of the cookie banner */ actions: CookieBannerAction[]; /** * The content of the cookie banner */ content: React.ReactNode; /** * The position of the cookie banner * @default 'bottom' * @optional */ position?: keyof typeof PositionOptionsType; /** * Additional content to be rendered in the footer */ additionalFooterContent?: React.ReactNode; /** * The content of the popup */ children?: React.ReactNode; /** * If true, the popup will be cleared when it is closed */ clear?: boolean; /** * If true, the popup will close when the user clicks outside of it */ closeOnClickOutside?: boolean; /** * If true, the popup will be rendered in fullscreen */ fullscreen?: boolean; /** * Unique id for the popup * and how it will be referenced in the store */ id: string; /** * The title of the popup */ title: React.ReactNode; /** * If true, the popup will be rendered with a close button * that will be rendered in the top right corner * that will close the popup when clicked * @optional * @default false */ showCloseButton?: boolean; /** * The width of the popup */ width?: string; /** * If true, the popup will not be closable unless user closes it via the actions * @optional * @default false */ disableClosing?: boolean; /** * If true, the popup will allow clicks to pass through * and there will be no overlay */ allowOverlayPassThrough?: boolean; } /** * ePrivacy Directive (The Cookie Law) * The Privacy and Electronic Communications Directive 2002/58/EC is a * set of rules passed in 2002 and amended in 2009 that govern data * * protection and privacy in the EU. * * The ePD — or EU Cookie Law — requires that a website obtains its * user’s consent before storing cookies, other than those deemed * strictly * necessary, in the user’s browser. * * - General Data Protection Regulation (GDPR) * * - California Consumer Privacy Act (CCPA) * * - Information Commissioner’s Office (ICO) * * - Commission Nationale de L’informatique et des Libertés (CNIL) * * - Lei Geral de Protecao de Dados (LGPD) * * - Personal Information Protection and Electronic Documents Act (PIPEDA) * * - Personal Data Protection Act (PDPA) * * @returns Cookie Banner Template */ export declare const CookieBanner: (props: CookieBannerProps) => import("react/jsx-runtime").JSX.Element;