@asgardeo/browser
Version:
Browser-specific implementation of Asgardeo JavaScript SDK.
41 lines (40 loc) • 1.63 kB
TypeScript
/**
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import { ThemeDetection, ThemeMode } from '@asgardeo/javascript';
/**
* Extended theme detection config that includes DOM-specific options
*/
export interface BrowserThemeDetection extends ThemeDetection {
/**
* The element to observe for class changes
* @default document.documentElement (html element)
*/
targetElement?: HTMLElement;
}
/**
* Detects the current theme mode based on the specified method
*/
export declare const detectThemeMode: (mode: ThemeMode, config?: BrowserThemeDetection) => "light" | "dark";
/**
* Creates a MutationObserver to watch for class changes on the target element
*/
export declare const createClassObserver: (targetElement: HTMLElement, callback: (isDark: boolean) => void, config?: BrowserThemeDetection) => MutationObserver;
/**
* Creates a media query listener for system theme changes
*/
export declare const createMediaQueryListener: (callback: (isDark: boolean) => void) => MediaQueryList | null;