/** * Consent CSS Class Tokens * * Single source of truth for all Tailwind classes used in consent pages. * CRITICAL: These MUST match AgentShield preview components exactly. * * Divergences identified and fixed: * - Button: py-2 → py-3, rounded-md → rounded-lg (match AgentShield) * - Checkbox: w-5 h-5 → w-4 h-4 (match AgentShield) * - Container: max-w-md → max-w-[512px] (match AgentShield) * * @module @kya-os/consent/styles/tokens */ /** * CONSENT_CLASSES - Canonical CSS classes for consent UI components * * All classes are Tailwind CSS utilities that match AgentShield exactly. */ export declare const CONSENT_CLASSES: { /** Main container wrapper - background with centered content */ readonly wrapper: "bg-gray-50 min-h-screen flex items-center justify-center p-4"; /** Card container - MUST be max-w-[512px] not max-w-md (448px) */ readonly container: "bg-white rounded-[20px] border border-black/10 shadow-xl overflow-hidden max-w-[512px] w-full"; /** Header section with logo and agent info */ readonly header: "p-6 pb-0"; /** Main content area */ readonly content: "p-6 pt-4 space-y-6"; /** Footer with buttons */ readonly footer: "p-6 pt-0 flex gap-3"; /** Primary action button (Allow access) */ readonly buttonPrimary: "px-4 py-3 h-11 rounded-lg text-white font-medium transition-opacity hover:opacity-90 disabled:opacity-50 disabled:cursor-not-allowed"; /** Secondary action button (Cancel) */ readonly buttonSecondary: "px-4 py-3 h-11 rounded-lg border border-gray-300 text-gray-700 font-medium hover:bg-gray-50 transition-colors"; /** Full width button variant */ readonly buttonFull: "w-full py-3 px-4 h-11 rounded-lg text-white font-medium transition-opacity hover:opacity-90 disabled:opacity-50 disabled:cursor-not-allowed"; /** OAuth/Social login button */ readonly buttonOAuth: "w-full py-3 px-4 h-11 rounded-lg border border-gray-300 text-gray-700 font-medium hover:bg-gray-50 transition-colors flex items-center justify-center gap-2"; /** Icon button (small) */ readonly buttonIcon: "p-2 rounded-lg hover:bg-gray-100 transition-colors"; /** Button group container (for multiple buttons) */ readonly buttonGroup: "flex gap-3 mt-6"; /** Checkbox input - custom styled */ readonly checkbox: "w-4 h-4 rounded border border-gray-300 bg-white checked:bg-[var(--consent-primary)] checked:border-[var(--consent-primary)] appearance-none cursor-pointer relative flex-shrink-0"; /** Checkbox container with label */ readonly checkboxContainer: "flex items-start gap-3 cursor-pointer"; /** Checkbox label text */ readonly checkboxLabel: "text-sm text-gray-700 select-none"; /** Checkbox wrapper for proper alignment */ readonly checkboxWrapper: "flex items-center h-5"; /** Checkbox text (alias for checkboxLabel) */ readonly checkboxText: "text-sm text-gray-700 select-none"; /** Input field (text, email, password) */ readonly input: "w-full px-4 py-3 h-11 rounded-lg border border-gray-300 text-gray-900 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-[var(--consent-primary)] focus:border-transparent transition-shadow"; /** Input with error state */ readonly inputError: "w-full px-4 py-3 h-11 rounded-lg border border-red-500 text-gray-900 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-red-500 focus:border-transparent"; /** Form label */ readonly label: "block text-sm font-medium text-gray-700 mb-1.5"; /** Form field container */ readonly fieldGroup: "space-y-1.5"; /** Error message text */ readonly errorText: "text-sm text-red-600 mt-1"; /** Help text */ readonly helpText: "text-sm text-gray-500 mt-1"; /** Input focus ring class */ readonly inputFocus: "focus:outline-none focus:ring-2 focus:ring-[var(--consent-primary)] focus:border-transparent"; /** Page title */ readonly title: "text-xl font-semibold text-gray-900"; /** Page description / subtitle */ readonly description: "text-sm text-gray-600 mt-1"; /** Subtitle (alternative name for description) */ readonly subtitle: "text-sm text-gray-600 mt-1"; /** Section header */ readonly sectionHeader: "text-sm font-medium text-gray-700"; /** Body text */ readonly bodyText: "text-sm text-gray-700"; /** Muted / secondary text */ readonly mutedText: "text-sm text-gray-500"; /** Link styling */ readonly link: "text-[var(--consent-primary)] hover:underline cursor-pointer"; /** Header centered text */ readonly headerCenter: "text-center"; /** Permissions section container */ readonly permissionsContainer: "space-y-2"; /** Permissions header text */ readonly permissionsHeader: "text-sm font-medium text-gray-700 mb-2"; /** Permissions list wrapper */ readonly permissionsList: "space-y-2"; /** Single permission item */ readonly permissionItem: "flex items-center gap-2 text-sm text-gray-700 bg-gray-50 px-3 py-2 rounded-lg"; /** Permission icon */ readonly permissionIcon: "w-4 h-4 text-[var(--consent-primary)] flex-shrink-0"; /** Scope badge */ readonly scopeBadge: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800"; /** Agent info container */ readonly agentContainer: "flex items-start gap-4"; /** Agent info wrapper (alternative name) */ readonly agentWrapper: "flex items-start gap-4"; /** Agent avatar/logo */ readonly agentAvatar: "w-12 h-12 rounded-xl bg-gray-100 flex items-center justify-center text-gray-400 flex-shrink-0"; /** Agent icon container (alternative to avatar) */ readonly agentIcon: "w-12 h-12 rounded-xl bg-gray-100 flex items-center justify-center text-gray-400 flex-shrink-0"; /** Agent details wrapper */ readonly agentDetails: "flex-1 min-w-0"; /** Agent name */ readonly agentName: "font-medium text-gray-900 truncate"; /** Agent description text */ readonly agentDescription: "text-sm text-gray-600 mt-1"; /** Agent DID (truncated) */ readonly agentDid: "text-xs text-gray-500 font-mono truncate"; /** Success icon container */ readonly successIcon: "w-16 h-16 rounded-full bg-green-100 flex items-center justify-center mx-auto mb-4"; /** Success checkmark */ readonly successCheck: "w-8 h-8 text-green-600"; /** Credential display box */ readonly credentialBox: "bg-gray-50 rounded-lg p-4 font-mono text-sm text-gray-700 break-all"; /** Loading spinner */ readonly spinner: "animate-spin w-5 h-5 text-white"; /** Loading overlay */ readonly loadingOverlay: "absolute inset-0 bg-white/80 flex items-center justify-center"; /** Horizontal divider */ readonly divider: "border-t border-gray-200"; /** Divider with text (OR) */ readonly dividerWithText: "relative flex items-center my-4"; /** Divider text styling */ readonly dividerText: "absolute inset-0 flex items-center justify-center text-sm text-gray-500 bg-white px-4"; /** Info alert */ readonly alertInfo: "bg-blue-50 border border-blue-200 rounded-lg p-4 text-sm text-blue-800"; /** Warning alert */ readonly alertWarning: "bg-amber-50 border border-amber-200 rounded-lg p-4 text-sm text-amber-800"; /** Error alert */ readonly alertError: "bg-red-50 border border-red-200 rounded-lg p-4 text-sm text-red-800"; /** Success alert */ readonly alertSuccess: "bg-green-50 border border-green-200 rounded-lg p-4 text-sm text-green-800"; /** Expiration notice wrapper */ readonly expirationWrapper: "flex items-center gap-2 text-sm text-gray-500 mt-4"; /** Error container (hidden by default) */ readonly errorContainer: "hidden"; }; export type ConsentClassesType = typeof CONSENT_CLASSES; export type ConsentClassKey = keyof typeof CONSENT_CLASSES; //# sourceMappingURL=tokens.d.ts.map