import type { Property } from "csstype"; import type { ColorDescription, ColorWithStates } from "../../general/colors/index.ts"; import type { GradientPoints } from "../../general/gradients/index.ts"; import type { ColorsDescription, ThemeCssVars, ThemeDescription } from "../../general/index.ts"; import type { Adaptive } from "../../general/tools/index.ts"; import type { Font } from "../../general/typography/index.ts"; import type { ParadigmTheme, ParadigmThemeDescription } from "../../namespaces/paradigm/index.ts"; type AllowedParadigmTokens = /* Special */ 'themeName' | 'themeNameBase' | 'themeInheritsFrom' | 'prefix' | 'fontFamilyAccent' | 'fontFamilyBase' | 'fontWeightAccent1' | 'fontWeightAccent2' | 'fontWeightBase1' | 'fontWeightBase2' | 'fontTitle1' | 'fontTitle2' | 'fontTitle3' | 'fontHeadline1' | 'fontHeadline2' | 'fontText' | 'fontParagraph' | 'fontSubhead' | 'fontFootnote' | 'fontFootnoteCaps' | 'fontCaption1' | 'fontCaption1Caps' | 'fontCaption2' | 'fontCaption2Caps' | 'fontCaption3' | 'fontCaption3Caps' | 'animationEasingDefault' | 'animationDurationS' | 'animationDurationM' | 'animationDurationL' | 'sizeAvatarXS' | 'sizeAvatarS' | 'sizeAvatarM' | 'sizeAvatarL' | 'sizeBorderRadius' | 'sizeButtonSmallHeight' | 'sizeButtonMediumHeight' | 'sizeButtonLargeHeight' | 'sizePopupMedium' | 'sizePopupLarge' | 'sizeButtonPaddingHorizontal' | 'sizeFieldHorizontalPadding' | 'elevation1' | 'elevation2' | 'elevation3' | 'opacityDisable'; export type AllowedParadigmColorTokens = /* Text colors */ 'colorTextPrimary' | 'colorTextPrimaryInvariably' | 'colorTextSecondary' | 'colorTextTertiary' | 'colorTextSubhead' | 'colorTextAccent' | 'colorTextAccentThemed' | 'colorTextLink' | 'colorTextLinkThemed' | 'colorTextLinkVisited' | 'colorTextNegative' | 'colorTextPositive' | 'colorTextMuted' | 'colorTextContrast' | 'colorTextContrastThemed' | 'colorLinkContrast' | 'colorIconPrimary' | 'colorIconPrimaryInvariably' | 'colorIconSecondary' | 'colorIconSecondaryAlpha' | 'colorIconMedium' | 'colorIconMediumAlpha' | 'colorIconTertiary' | 'colorIconTertiaryAlpha' | 'colorIconAccent' | 'colorIconAccentThemed' | 'colorIconNegative' | 'colorIconPositive' | 'colorIconContrast' | 'colorIconContrastThemed' | 'colorBackground' | 'colorBackgroundContent' | 'colorBackgroundAccentAlternative' | 'colorBackgroundModal' | 'colorBackgroundSecondary' | 'colorBackgroundSecondaryAlpha' | 'colorBackgroundTertiary' | 'colorBackgroundAccent' | 'colorBackgroundAccentTintAlpha' | 'colorBackgroundNegativeTintAlpha' | 'colorBackgroundPositiveTintAlpha' | 'colorBackgroundWarningTintAlpha' | 'colorBackgroundAccentThemed' | 'colorBackgroundNegative' | 'colorBackgroundNegativeTint' | 'colorBackgroundPositive' | 'colorBackgroundContrast' | 'colorBackgroundContrastSecondaryAlpha' | 'colorBackgroundWarning' | 'colorSeparatorPrimary' | 'colorSeparatorPrimaryAlpha' | 'colorSeparatorSecondary' | 'colorImageBorderAlpha' | 'colorFieldBorderAlpha' | 'colorStrokeAccent' | 'colorStrokeAccentThemed' | 'colorStrokeContrast' | 'colorStrokeNegative' | 'colorStrokePositive' | 'colorAccentBlue' | 'colorAccentGray' | 'colorAccentRed' | 'colorAccentGreen' | 'colorAccentOrange' | 'colorAccentPurple' | 'colorAccentViolet' | 'colorAccentRaspberryPink' | 'colorAccentSecondary' | 'colorTransparent' | 'colorActionSheetText' | 'colorHeaderBackground' | 'colorPanelHeaderIcon' | 'colorWriteBarIcon' | 'colorWriteBarInputBackground' | 'colorWriteBarInputBorderAlpha' | 'colorTrackBackground' | 'colorOverlayPrimary' | 'colorTrackBuffer' | 'colorImagePlaceholder' | 'colorImagePlaceholderAlpha' | 'colorSearchFieldBackground' | 'colorSkeletonTo' | 'colorSkeletonFrom' | 'colorAvatarOverlay'; export interface ThemePulseMediaTypography { fontFamilyMedia: Property.FontFamily; fontMediaHeader: Adaptive; fontMediaTitle1: Adaptive; fontMediaTitle2: Adaptive; fontMediaTitle3: Adaptive; fontMediaLead: Adaptive; fontMediaParagraph: Adaptive; } export interface ThemePulseGeometry { sizePageHorizontalPadding: Adaptive; sizeBorderRadiusSmall: Adaptive; sizeBorderRadiusLarge: Adaptive; sizeBorderRadiusCard: Adaptive; sizeBorderRadiusPill: Adaptive; sizeButtonCircleSmall: Adaptive; sizeButtonCircleMedium: Adaptive; sizeButtonCircleLarge: Adaptive; sizeButtonPaddingHorizontalLarge: Adaptive; sizeIconUIMedium: Adaptive; sizeIconUILarge: Adaptive; sizeBadge: Adaptive; sizeTag: Adaptive; sizeCardgridGapSpaceMedium: Adaptive; sizeCardgridGapSpaceLarge: Adaptive; sizeListItemHeight: Adaptive; sizeFieldHeight: Adaptive; } export interface ThemePulseZIndex { pulseZIndexDropdown: number; pulseZIndexFixed: number; pulseZIndexModal: number; pulseZIndexModalBackdrop: number; pulseZIndexSticky: number; pulseZIndexTooltip: number; } export interface ThemePulseColors { pulseColorAccentYellow: ColorDescription; pulseColorBackgroundPurple: ColorDescription; pulseColorOverlayViewer: ColorDescription; pulseColorPurpleAlpha: ColorDescription; pulseColorWhiteBlueAlpha: ColorDescription; } export interface ThemePulseGradients { gradientSkeleton: GradientPoints; } export type AllowedParadigmColorDescriptions = Pick; type ThemePulseColorsDescription = ColorsDescription; type ThemePulseColorsWithState = { [key in keyof ThemePulseColors]: ColorWithStates; }; type AllowedParadigmThemeTokens = Pick; type AllowedParadigmTokensDescription = Pick; export interface ThemePulse extends AllowedParadigmThemeTokens, ThemePulseMediaTypography, ThemePulseGeometry, ThemePulseZIndex, ThemePulseGradients, ThemePulseColorsWithState { } export interface ThemePulseDescription extends AllowedParadigmTokensDescription, ThemePulseMediaTypography, ThemePulseGeometry, ThemePulseZIndex, ThemePulseGradients, ThemePulseColorsDescription { } export interface ThemePulseCssVars extends ThemeCssVars { } export { };