UNPKG

@tantainnovative/ndpr-toolkit

Version:

Nigerian Data Protection Compliance Toolkit for implementing NDPR and DPA compliant features

1 lines 72.1 kB
{"version":3,"sources":["../src/contexts/ConsentContext.tsx","../src/contexts/GenericConsentContext.tsx","../src/lib/utils.ts","../src/components/ui/Button.tsx","../src/components/consent/ConsentBanner.tsx","../src/components/ui/switch.tsx","../src/components/ui/dialog.tsx","../src/components/consent/ConsentSettings.tsx","../src/components/consent/ConsentManager.tsx","../src/components/consent/unstyled/UnstyledConsentBanner.tsx","../src/components/consent/unstyled/UnstyledConsentSettings.tsx","../src/components/consent/unstyled/UnstyledConsentToggle.tsx","../src/hooks/useConsentState.ts","../src/hooks/useConsentActions.ts","../src/hooks/useConsentManager.ts","../src/lib/consentService.ts","../src/index.ts"],"names":["ConsentContext","createContext","defaultConsent","ConsentProvider","children","initialConsent","onConsentChange","storageKey","consentState","setConsentState","useState","stored","parsed","__spreadValues","e","hasUserConsented","setHasUserConsented","showBanner","setShowBanner","showSettings","setShowSettings","useEffect","acceptAll","useCallback","rejectAll","savePreferences","preferences","prev","__spreadProps","updateConsent","category","value","openSettings","closeSettings","React","useConsent","context","useContext","createConsentContext","categories","getDefaultConsent","cat","newConsent","key","cn","inputs","twMerge","clsx","buttonVariants","cva","Button","_a","_b","className","variant","size","asChild","props","__objRest","de","Slot","ConsentBanner","renderBanner","theme","position","animation","fullWidth","maxWidth","unstyled","Switch","Q","Dialog","open","onOpenChange","w","DialogContent","ref","DialogHeader","DialogTitle","DialogDescription","cookieCategories","ConsentSettings","renderSettings","handleSave","checked","ConsentManagerInner","headless","components","consent","renderProps","ConsentManager","innerProps","UnstyledConsentBanner","UnstyledConsentSettings","UnstyledConsentToggle","label","useConsentState","useConsentActions","useConsentManager","listenersRef","useRef","previousStateRef","emit","event","data","listeners","listener","on","off","allAccepted","CONSENT_STORAGE_KEY","CONSENT_HISTORY_KEY","getConsentHistoryHelper","storedHistory","error","consentService","consents","userId","consentRecord","uuidv4","history","storedConsent","changeReason","type","current","cookieUtils","name","days","date","expires","nameEQ","ca","i","c","consentStorage"],"mappings":"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","file":"index.mjs","sourcesContent":["import React, { createContext, useContext, useState, useCallback, useEffect, ReactNode } from 'react';\n\nexport interface ConsentCategories {\n necessary: boolean;\n analytics: boolean;\n marketing: boolean;\n functional: boolean;\n [key: string]: boolean;\n}\n\nexport interface ConsentState {\n hasUserConsented: boolean;\n consentState: ConsentCategories;\n showBanner: boolean;\n showSettings: boolean;\n}\n\nexport interface ConsentActions {\n acceptAll: () => void;\n rejectAll: () => void;\n savePreferences: (preferences: Partial<ConsentCategories>) => void;\n openSettings: () => void;\n closeSettings: () => void;\n updateConsent: (category: keyof ConsentCategories, value: boolean) => void;\n}\n\nexport interface ConsentContextValue extends ConsentState, ConsentActions {}\n\nconst ConsentContext = createContext<ConsentContextValue | undefined>(undefined);\n\nexport interface ConsentProviderProps {\n children: ReactNode;\n initialConsent?: Partial<ConsentCategories>;\n onConsentChange?: (consent: ConsentCategories) => void;\n storageKey?: string;\n}\n\nconst defaultConsent: ConsentCategories = {\n necessary: true, // Always true\n analytics: false,\n marketing: false,\n functional: false,\n};\n\nexport function ConsentProvider({\n children,\n initialConsent = {},\n onConsentChange,\n storageKey = 'ndpr-consent',\n}: ConsentProviderProps) {\n const [consentState, setConsentState] = useState<ConsentCategories>(() => {\n // Try to load from localStorage\n if (typeof window !== 'undefined') {\n const stored = localStorage.getItem(storageKey);\n if (stored) {\n try {\n const parsed = JSON.parse(stored);\n return { ...defaultConsent, ...parsed };\n } catch (e) {\n console.error('Failed to parse consent from localStorage', e);\n }\n }\n }\n return { ...defaultConsent, ...initialConsent };\n });\n\n const [hasUserConsented, setHasUserConsented] = useState(() => {\n if (typeof window !== 'undefined') {\n return localStorage.getItem(`${storageKey}-set`) === 'true';\n }\n return false;\n });\n\n const [showBanner, setShowBanner] = useState(!hasUserConsented);\n const [showSettings, setShowSettings] = useState(false);\n\n // Persist consent to localStorage\n useEffect(() => {\n if (typeof window !== 'undefined' && hasUserConsented) {\n localStorage.setItem(storageKey, JSON.stringify(consentState));\n localStorage.setItem(`${storageKey}-set`, 'true');\n }\n }, [consentState, hasUserConsented, storageKey]);\n\n // Notify parent of consent changes\n useEffect(() => {\n if (hasUserConsented && onConsentChange) {\n onConsentChange(consentState);\n }\n }, [consentState, hasUserConsented, onConsentChange]);\n\n const acceptAll = useCallback(() => {\n const newConsent: ConsentCategories = {\n necessary: true,\n analytics: true,\n marketing: true,\n functional: true,\n };\n setConsentState(newConsent);\n setHasUserConsented(true);\n setShowBanner(false);\n setShowSettings(false);\n }, []);\n\n const rejectAll = useCallback(() => {\n const newConsent: ConsentCategories = {\n necessary: true,\n analytics: false,\n marketing: false,\n functional: false,\n };\n setConsentState(newConsent);\n setHasUserConsented(true);\n setShowBanner(false);\n setShowSettings(false);\n }, []);\n\n const savePreferences = useCallback((preferences: Partial<ConsentCategories>) => {\n setConsentState(prev => ({\n ...prev,\n ...preferences,\n necessary: true, // Always keep necessary as true\n }));\n setHasUserConsented(true);\n setShowBanner(false);\n setShowSettings(false);\n }, []);\n\n const updateConsent = useCallback((category: keyof ConsentCategories, value: boolean) => {\n if (category === 'necessary') return; // Can't change necessary cookies\n \n setConsentState(prev => ({\n ...prev,\n [category]: value,\n }));\n }, []);\n\n const openSettings = useCallback(() => {\n setShowSettings(true);\n setShowBanner(false);\n }, []);\n\n const closeSettings = useCallback(() => {\n setShowSettings(false);\n }, []);\n\n const value: ConsentContextValue = {\n hasUserConsented,\n consentState,\n showBanner,\n showSettings,\n acceptAll,\n rejectAll,\n savePreferences,\n openSettings,\n closeSettings,\n updateConsent,\n };\n\n return (\n <ConsentContext.Provider value={value}>\n {children}\n </ConsentContext.Provider>\n );\n}\n\nexport function useConsent() {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error('useConsent must be used within a ConsentProvider');\n }\n return context;\n}\n\n// Export for external use\nexport { ConsentContext };","import React, { createContext, useContext, useState, useCallback, useEffect, ReactNode } from 'react';\nimport {\n BaseConsentCategories,\n DefaultConsentCategories,\n ConsentState,\n ConsentActions,\n ConsentContextValue,\n ConsentProviderProps,\n} from '@/types/consent';\n\n/**\n * Factory function to create a typed consent context\n */\nexport function createConsentContext<T extends BaseConsentCategories = DefaultConsentCategories>() {\n const ConsentContext = createContext<ConsentContextValue<T> | undefined>(undefined);\n\n function ConsentProvider({\n children,\n initialConsent = {} as Partial<T>,\n onConsentChange,\n storageKey = 'ndpr-consent',\n categories,\n }: ConsentProviderProps<T>) {\n const getDefaultConsent = (): T => {\n const defaultConsent: any = { necessary: true };\n \n if (categories) {\n categories.forEach(cat => {\n if (cat.id !== 'necessary') {\n defaultConsent[cat.id] = false;\n }\n });\n } else {\n // Use default categories\n defaultConsent.analytics = false;\n defaultConsent.marketing = false;\n defaultConsent.functional = false;\n }\n \n return defaultConsent as T;\n };\n\n const [consentState, setConsentState] = useState<T>(() => {\n // Try to load from localStorage\n if (typeof window !== 'undefined') {\n const stored = localStorage.getItem(storageKey);\n if (stored) {\n try {\n const parsed = JSON.parse(stored);\n return { ...getDefaultConsent(), ...parsed };\n } catch (e) {\n console.error('Failed to parse consent from localStorage', e);\n }\n }\n }\n return { ...getDefaultConsent(), ...initialConsent } as T;\n });\n\n const [hasUserConsented, setHasUserConsented] = useState(() => {\n if (typeof window !== 'undefined') {\n return localStorage.getItem(`${storageKey}-set`) === 'true';\n }\n return false;\n });\n\n const [showBanner, setShowBanner] = useState(!hasUserConsented);\n const [showSettings, setShowSettings] = useState(false);\n\n // Persist consent to localStorage\n useEffect(() => {\n if (typeof window !== 'undefined' && hasUserConsented) {\n localStorage.setItem(storageKey, JSON.stringify(consentState));\n localStorage.setItem(`${storageKey}-set`, 'true');\n }\n }, [consentState, hasUserConsented, storageKey]);\n\n // Notify parent of consent changes\n useEffect(() => {\n if (hasUserConsented && onConsentChange) {\n onConsentChange(consentState);\n }\n }, [consentState, hasUserConsented, onConsentChange]);\n\n const acceptAll = useCallback(() => {\n const newConsent = { ...consentState };\n Object.keys(newConsent).forEach(key => {\n newConsent[key as keyof T] = true as any;\n });\n setConsentState(newConsent);\n setHasUserConsented(true);\n setShowBanner(false);\n setShowSettings(false);\n }, [consentState]);\n\n const rejectAll = useCallback(() => {\n const newConsent = { ...consentState };\n Object.keys(newConsent).forEach(key => {\n if (key !== 'necessary') {\n newConsent[key as keyof T] = false as any;\n }\n });\n setConsentState(newConsent);\n setHasUserConsented(true);\n setShowBanner(false);\n setShowSettings(false);\n }, [consentState]);\n\n const savePreferences = useCallback((preferences: Partial<T>) => {\n setConsentState(prev => ({\n ...prev,\n ...preferences,\n necessary: true, // Always keep necessary as true\n } as T));\n setHasUserConsented(true);\n setShowBanner(false);\n setShowSettings(false);\n }, []);\n\n const updateConsent = useCallback((category: keyof T, value: boolean) => {\n if (category === 'necessary') return; // Can't change necessary cookies\n \n setConsentState(prev => ({\n ...prev,\n [category]: value,\n }));\n }, []);\n\n const openSettings = useCallback(() => {\n setShowSettings(true);\n setShowBanner(false);\n }, []);\n\n const closeSettings = useCallback(() => {\n setShowSettings(false);\n }, []);\n\n const value: ConsentContextValue<T> = {\n hasUserConsented,\n consentState,\n showBanner,\n showSettings,\n acceptAll,\n rejectAll,\n savePreferences,\n openSettings,\n closeSettings,\n updateConsent,\n };\n\n return (\n <ConsentContext.Provider value={value}>\n {children}\n </ConsentContext.Provider>\n );\n }\n\n function useConsent() {\n const context = useContext(ConsentContext);\n if (!context) {\n throw new Error('useConsent must be used within a ConsentProvider');\n }\n return context;\n }\n\n return {\n ConsentContext,\n ConsentProvider,\n useConsent,\n };\n}","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import React, { ReactNode } from 'react';\nimport { useConsent } from '@/contexts/ConsentContext';\nimport { Button } from '@/components/ui/Button';\nimport { cn } from '@/lib/utils';\nimport { BannerProps } from './ConsentManager';\n\nexport interface ConsentBannerProps {\n renderBanner?: (props: BannerProps) => ReactNode;\n theme?: {\n primaryColor?: string;\n textColor?: string;\n backgroundColor?: string;\n };\n position?: 'top' | 'bottom' | 'center';\n animation?: 'slide' | 'fade' | 'none';\n fullWidth?: boolean;\n maxWidth?: string;\n unstyled?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\ninterface ConsentBannerComponent extends React.FC<ConsentBannerProps> {\n Message: React.FC<{ children: ReactNode; className?: string }>;\n Actions: React.FC<{ children: ReactNode; className?: string }>;\n}\n\nconst ConsentBanner: ConsentBannerComponent = ({\n renderBanner,\n theme,\n position = 'bottom',\n animation = 'slide',\n fullWidth = true,\n maxWidth = '1200px',\n unstyled = false,\n className,\n children,\n}) => {\n const { showBanner, acceptAll, rejectAll, openSettings } = useConsent();\n\n if (!showBanner) return null;\n\n // Custom render function\n if (renderBanner) {\n return <>{renderBanner({ onAcceptAll: acceptAll, onRejectAll: rejectAll, onOpenSettings: openSettings })}</>;\n }\n\n // Children-based composition\n if (children) {\n return (\n <div\n className={cn(\n !unstyled && [\n 'fixed z-50 p-4',\n position === 'bottom' && 'bottom-0 left-0 right-0',\n position === 'top' && 'top-0 left-0 right-0',\n position === 'center' && 'top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2',\n animation === 'slide' && 'animate-slide-in',\n animation === 'fade' && 'animate-fade-in',\n ],\n className\n )}\n style={{\n backgroundColor: unstyled ? undefined : theme?.backgroundColor || 'white',\n color: unstyled ? undefined : theme?.textColor,\n maxWidth: fullWidth ? undefined : maxWidth,\n margin: fullWidth ? undefined : '0 auto',\n }}\n >\n {children}\n </div>\n );\n }\n\n // Default implementation\n return (\n <div\n className={cn(\n 'fixed z-50 p-4',\n position === 'bottom' && 'bottom-0 left-0 right-0',\n position === 'top' && 'top-0 left-0 right-0',\n position === 'center' && 'top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2',\n animation === 'slide' && 'animate-slide-in',\n animation === 'fade' && 'animate-fade-in',\n className\n )}\n style={{\n backgroundColor: theme?.backgroundColor || 'white',\n color: theme?.textColor,\n }}\n >\n <div\n className=\"mx-auto\"\n style={{\n maxWidth: fullWidth ? undefined : maxWidth,\n }}\n >\n <div className=\"bg-white rounded-lg shadow-lg p-6\">\n <h3 className=\"text-lg font-semibold mb-2\">Cookie Consent</h3>\n <p className=\"text-gray-600 mb-4\">\n We use cookies to enhance your experience. By continuing to visit this site you agree to our use of cookies.\n </p>\n <div className=\"flex gap-3 flex-wrap\">\n <Button\n onClick={acceptAll}\n style={{ backgroundColor: theme?.primaryColor }}\n >\n Accept All\n </Button>\n <Button\n onClick={rejectAll}\n variant=\"outline\"\n >\n Reject All\n </Button>\n <Button\n onClick={openSettings}\n variant=\"ghost\"\n >\n Manage Preferences\n </Button>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\n// Sub-components for composition\nConsentBanner.Message = ({ children, className }) => (\n <div className={cn('mb-4', className)}>{children}</div>\n);\n\nConsentBanner.Actions = ({ children, className }) => (\n <div className={cn('flex gap-3 flex-wrap', className)}>{children}</div>\n);\n\nexport { ConsentBanner };","\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","import * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DialogProps {\n open?: boolean\n onOpenChange?: (open: boolean) => void\n children: React.ReactNode\n}\n\nconst Dialog = ({ open, onOpenChange, children }: DialogProps) => {\n if (!open) return null\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div \n className=\"fixed inset-0 bg-black/50\" \n onClick={() => onOpenChange?.(false)}\n />\n {children}\n </div>\n )\n}\n\nconst DialogContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { unstyled?: boolean }\n>(({ className, children, unstyled, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n !unstyled && \"relative z-50 grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg duration-200 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 sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n))\nDialogContent.displayName = \"DialogContent\"\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = \"DialogTitle\"\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = \"DialogDescription\"\n\nexport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n}","import React, { ReactNode } from 'react';\nimport { useConsent } from '@/contexts/ConsentContext';\nimport { Button } from '@/components/ui/Button';\nimport { Switch } from '@/components/ui/switch';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from '@/components/ui/dialog';\nimport { SettingsProps } from './ConsentManager';\n\nexport interface ConsentSettingsProps {\n renderSettings?: (props: SettingsProps) => ReactNode;\n theme?: {\n primaryColor?: string;\n textColor?: string;\n backgroundColor?: string;\n };\n unstyled?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nconst cookieCategories = [\n {\n id: 'necessary',\n name: 'Necessary Cookies',\n description: 'These cookies are essential for the website to function properly.',\n disabled: true,\n },\n {\n id: 'analytics',\n name: 'Analytics Cookies',\n description: 'These cookies help us understand how visitors interact with our website.',\n disabled: false,\n },\n {\n id: 'marketing',\n name: 'Marketing Cookies',\n description: 'These cookies are used to track visitors across websites for marketing purposes.',\n disabled: false,\n },\n {\n id: 'functional',\n name: 'Functional Cookies',\n description: 'These cookies enable personalized features and functionality.',\n disabled: false,\n },\n];\n\nexport const ConsentSettings: React.FC<ConsentSettingsP