@frank-auth/react
Version:
Flexible and customizable React UI components for Frank Authentication
107 lines • 5.5 kB
TypeScript
import { AppearanceManager } from './appearance';
import { LocalizationManager } from './localization';
import { OrganizationConfigManager } from './organization';
import { ThemeManager } from './theme';
import { ConfigValidationResult, FrankAuthUIConfig, OrganizationConfig, UserType } from './types';
export type { FrankAuthUIConfig, ConfigValidationError, ConfigValidationResult, } from './types';
export type { ThemeMode, Typography, } from './types';
export type { AppearanceConfig, AppearanceMode, ComponentAppearance, BrandingConfig, ComponentSize, ColorVariant, } from './types';
export type { LocalizationConfig, Locale, LocaleDirection, } from './types';
export type { OrganizationConfig, OrganizationSettings, UserType, ComponentOverrides, } from './types';
export type { OrganizationFeatureFlags, OrganizationLimits, OrganizationCompliance, ExtendedOrganizationConfig, } from './organization';
export { DEFAULT_FRANK_AUTH_CONFIG as defaultConfig, CONFIG_PRESETS as configPresets, DEFAULT_THEME_CONFIG as defaultTheme, DEFAULT_COLOR_PALETTE as defaultColors, DEFAULT_TYPOGRAPHY as defaultTypography, DEFAULT_SPACING as defaultSpacing, DEFAULT_BORDER_RADIUS as defaultBorderRadius, DEFAULT_SHADOWS as defaultShadows, DEFAULT_ANIMATIONS as defaultAnimations, DEFAULT_APPEARANCE_CONFIG as defaultAppearance, DEFAULT_COMPONENT_APPEARANCE as defaultComponentAppearance, DEFAULT_LAYOUT_CONFIG as defaultLayout, DEFAULT_BRANDING_CONFIG as defaultBranding, DEFAULT_LOCALIZATION_CONFIG as defaultLocalization, DEFAULT_LOCALE_MESSAGES as defaultMessages, DEFAULT_ORGANIZATION_CONFIG as defaultOrganization, } from './defaults';
export { ThemeManager, THEME_PRESETS as themePresets, createThemeManager, createDarkTheme, getThemeCSS, validateTheme, } from './theme';
export { AppearanceManager, INPUT_VARIANTS as inputVariants, BUTTON_VARIANTS as buttonVariants, CARD_VARIANTS as cardVariants, SIZE_CONFIGS as sizeConfigs, MODAL_SIZES as modalSizes, BREAKPOINTS as breakpoints, RESPONSIVE_UTILITIES as responsiveUtils, createAppearanceManager, getComponentClassNames, appearanceConfigToTailwind, createResponsiveProps, } from './appearance';
export { LocalizationManager, createLocalizationManager, detectBrowserLocale, getLocaleDirection, isRTL, createTranslationNamespace, } from './localization';
export { OrganizationConfigManager, createOrganizationConfigManager, transformOrganizationSettings, getFeaturesByTier, } from './organization';
export { validateFrankAuthConfig, validateThemeConfig, validateAppearanceConfig, validateLocalizationConfig, validateOrganizationConfig, validateComponentOverrides, validatePublishableKey, validateApiUrl, validateUserType, validateLocale, assertValidConfig, isValidConfig, getConfigErrors, getConfigWarnings, } from './validators';
/**
* Comprehensive configuration manager that orchestrates all configuration aspects
*/
export declare class ConfigManager {
private config;
private themeManager;
private appearanceManager;
private localizationManager;
private organizationManager?;
private listeners;
constructor(initialConfig: Partial<FrankAuthUIConfig>);
/**
* Get current configuration
*/
getConfig(): FrankAuthUIConfig;
/**
* Update configuration
*/
updateConfig(updates: Partial<FrankAuthUIConfig>): void;
/**
* Set organization configuration
*/
setOrganization(organization: OrganizationConfig): void;
/**
* Get theme manager
*/
getThemeManager(): ThemeManager;
/**
* Get appearance manager
*/
getAppearanceManager(): AppearanceManager;
/**
* Get localization manager
*/
getLocalizationManager(): LocalizationManager;
/**
* Get organization manager
*/
getOrganizationManager(): OrganizationConfigManager | undefined;
/**
* Apply configuration to DOM
*/
applyToDOM(): void;
/**
* Generate complete CSS for server-side rendering
*/
generateCSS(): string;
/**
* Validate current configuration
*/
validateConfig(): ConfigValidationResult;
/**
* Subscribe to configuration changes
*/
subscribe(callback: (config: FrankAuthUIConfig) => void): () => void;
/**
* Reset to default configuration
*/
reset(): void;
/**
* Destroy and cleanup
*/
destroy(): void;
private setupManagerListeners;
private applyInitialConfiguration;
private notifyListeners;
}
/**
* Create a complete Frank Auth configuration with validation
*/
export declare function createFrankAuthConfig(config: Partial<FrankAuthUIConfig>): FrankAuthUIConfig;
/**
* Create a configuration manager instance
*/
export declare function createConfigManager(config: Partial<FrankAuthUIConfig>): ConfigManager;
/**
* Create configuration from organization settings (useful for server-side setup)
*/
export declare function createConfigFromOrganization(publishableKey: string, userType: UserType, organizationSettings: any): FrankAuthUIConfig;
/**
* Merge multiple configuration objects with proper type safety
*/
export declare function mergeConfigs(...configs: Partial<FrankAuthUIConfig>[]): FrankAuthUIConfig;
/**
* Create a configuration preset
*/
export declare function createConfigPreset(presetName: 'minimal' | 'enterprise' | 'b2b' | 'consumer', overrides?: Partial<FrankAuthUIConfig>): Partial<FrankAuthUIConfig>;
export * from './types';
export { ConfigManager as default };
//# sourceMappingURL=index.d.ts.map