// Copyright (c) Meta Platforms, Inc. and affiliates. 'use client'; /** * Astryx Theme System * * Exports: * - Theme: Provider component that applies theme * - defineTheme: Create themes with token + component overrides * - Token exports for direct use in StyleX * * Themes are in separate packages: * import { neutralTheme } from '@astryxdesign/theme-neutral'; * import { neutralTheme } from '@astryxdesign/theme-neutral'; */ export { Theme } from "./Theme.js"; export { MediaTheme } from "./MediaTheme.js"; export type { MediaThemeProps, MediaThemeMode } from "./MediaTheme.js"; export { defineTheme, generateThemeCSS, generateOnMediaCSS, generateAdaptationCSS, generateThemeRules, generateThemeRulesSplit, type ThemeCSSOutput, type ThemeRulesSplit, isDefinedTheme, tokenDefaults } from "./defineTheme.js"; export { registerTheme, getRegisteredTheme, getRegisteredThemes, resetThemes } from "./themeRegistry.js"; export type { DefineThemeInput, DefinedTheme, ResolvedDefinedTheme, CoreTokenName, TokenName, TokenValue, ComponentStyleMap, StyleOverrides } from "./defineTheme.js"; // Ordered environment-conditioned theme adaptations export { DEFAULT_WIDTH_BREAKPOINTS, WIDTH_BREAKPOINT_NAMES } from "./themeAdaptations.js"; export type { WidthBreakpointName, WidthBreakpoints, ThemeAdaptations, ThemeAdaptationCondition, ThemeAdaptationWidthCondition, ThemeAdaptationRule, ThemeAdaptationValue, ThemeAdaptationTypographyConfig } from "./themeAdaptations.js"; export type { SyntaxTokenName, DomainTokenName, DataTokenName } from "./domainTokens/index.js"; export { syntaxTokenDefaults, domainTokenDefaults, dataTokenDefaults } from "./domainTokens/index.js"; // Syntax theme API export { defineSyntaxTheme } from "./syntax/index.js"; export type { SyntaxThemeDefinition, SyntaxThemeInput, SyntaxThemeTokenKey, SyntaxThemeTokenMap, SyntaxThemeTokenInput, SyntaxTokenValue } from "./syntax/index.js"; // SyntaxTheme provider export { SyntaxTheme, useSyntaxTheme } from "./syntax/index.js"; export type { UseSyntaxThemeReturn } from "./syntax/index.js"; export { expandTypeScale, generateTypeScaleComponents } from "./expandTypeScale.js"; export type { TypeScaleConfig, TypeScaleTokens } from "./expandTypeScale.js"; export { expandRadiusScale } from "./expandRadiusScale.js"; export type { RadiusScaleConfig, RadiusScaleTokens } from "./expandRadiusScale.js"; export { expandColorScale } from "./expandColorScale.js"; export type { ColorScaleConfig, ColorScaleTokens } from "./expandColorScale.js"; export { expandMotionScale } from "./expandMotionScale.js"; export type { MotionScaleConfig, MotionScaleTokens } from "./expandMotionScale.js"; // Export token defaults and vars for use in custom components and themes export { colorDefaults, spacingDefaults, sizeDefaults, borderDefaults, focusDefaults, radiusDefaults, shadowDefaults, durationDefaults, easeDefaults, typographyDefaults, textSizeDefaults, fontWeightDefaults, typeScaleDefaults, colorVars, spacingVars, sizeVars, borderVars, focusVars, radiusVars, shadowVars, durationVars, easeVars, typographyVars, textSizeVars, fontWeightVars, typeScaleVars } from "./tokens.stylex.js"; // Export token key types for theme authoring export type { ColorVarName, SpacingVarName, SizeVarName, BorderVarName, RadiusVarName, ShadowVarName, DurationVarName, EaseVarName, TypographyVarName, TextSizeVarName, FontWeightVarName, TypeScaleVarName } from "./tokens.stylex.js"; export { useTheme, useThemeName, ThemeContext } from "./useTheme.js"; export type { UseThemeReturn, ThemeContextValue } from "./useTheme.js"; export type { IndicatorComponent, IndicatorFamily, IndicatorFamilyMap, IndicatorMap, IndicatorName, IndicatorNameOfFamily, IndicatorProps, IndicatorRegistry, IndicatorSize, IndicatorState } from "../Indicator/index.js"; export { resolveThemeToken, resolveThemeTokens, tokenVar, tokenVars } from "./tokens.js"; export type { ResolveThemeTokenOptions, ResolveThemeTokensOptions, ResolvedThemeMode } from "./tokens.js"; export type { TextColorMap } from "../Text/index.js"; export type { ThemeMode, HeadingTag, TextType, BuiltinTextType, CustomTextTypes, TextSize, TextWeight, TextColor, BuiltinTextColor, TypographyConfig, TypographyRole, FontWeight } from "./types.js";