/** * Copyright 2026 Adobe. All rights reserved. * This file is licensed 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 REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ import { CSSResultGroup } from '@spectrum-web-components/base'; export type ShadowRootWithAdoptedStyleSheets = HTMLElement['shadowRoot'] & { adoptedStyleSheets?: CSSStyleSheet[]; }; export type FragmentType = 'color' | 'scale' | 'system' | 'core' | 'app'; export type SettableFragmentTypes = 'color' | 'scale' | 'system'; export type FragmentMap = Map; export type ThemeFragmentMap = Map; export declare const SYSTEM_VARIANT_VALUES: readonly ["spectrum", "express", "spectrum-two"]; export declare const SCALE_VALUES: readonly ["medium", "large", "medium-express", "large-express", "medium-spectrum-two", "large-spectrum-two"]; export declare const COLOR_VALUES: readonly ["light", "lightest", "dark", "darkest", "light-express", "lightest-express", "dark-express", "darkest-express", "light-spectrum-two", "lightest-spectrum-two", "dark-spectrum-two", "darkest-spectrum-two"]; export type SystemVariant = (typeof SYSTEM_VARIANT_VALUES)[number]; export type Scale = (typeof SCALE_VALUES)[number]; export type Color = (typeof COLOR_VALUES)[number]; export type SystemContextCallback = (system: SystemVariant | '', unsubscribe: () => void) => void; export type FragmentName = Color | Scale | SystemVariant | 'core' | 'app'; export interface ThemeData { color?: Color; scale?: Scale; lang?: string; theme?: SystemVariant; system?: SystemVariant; } export type ThemeKindProvider = { [P in SettableFragmentTypes]: SystemVariant | Color | Scale | ''; }; export interface ProvideLang { callback: (lang: string, unsubscribe: () => void) => void; }