Files
decky-frontend-lib/src/utils/static-classes.ts

742 lines
17 KiB
TypeScript
Raw Normal View History

import { findModule } from '../webpack';
2022-05-13 23:09:56 +02:00
2022-10-01 20:32:23 -05:00
type QuickAccessMenuClasses = Record<
2022-05-13 23:22:11 +02:00
| 'ActiveTab'
| 'AllTabContents'
| 'BatteryDetailsLabels'
| 'BatteryIcon'
| 'BatteryPercentageLabel'
| 'BatteryProjectedLabel'
| 'BatteryProjectedValue'
| 'BatterySectionContainer'
| 'Blocked'
| 'ComingSoon'
| 'Container'
| 'ContentTransition'
| 'Down'
| 'EmptyNotifications'
| 'Enter'
| 'EnterActive'
| 'Exit'
| 'ExitActive'
| 'FooterBoxShadow'
| 'FriendsListTabPanel'
| 'FriendsTitle'
| 'FullHeight'
| 'HeaderAndFooterVisible'
| 'HeaderContainer'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'ItemFocusAnim-green'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'KeyboardButton'
| 'Label'
| 'LowBattery'
| 'LowBatteryGauge'
| 'Menu'
| 'Open'
| 'PanelExitAnchor'
| 'PanelOuterNav'
| 'PanelSection'
| 'PanelSectionRow'
| 'PanelSectionTitle'
| 'QuickAccessMenu'
| 'ReallyLow'
| 'Remaining'
| 'Selected'
| 'Tab'
| 'TabContentColumn'
| 'TabGroupPanel'
| 'TabPanelHidden'
| 'Tabs'
| 'Text'
| 'Title'
| 'TransitionMenuDelay'
| 'Up'
| 'ViewPlaceholder'
| 'VoiceTab'
| 'duration-app-launch'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
2022-05-13 23:09:56 +02:00
2022-10-24 20:33:40 -04:00
type ScrollPanelClasses = Record<'ScrollBoth' | 'ScrollPanel' | 'ScrollX' | 'ScrollY', string>;
2022-08-15 13:12:15 -04:00
type GamepadDialogClasses = Record<
| 'duration-app-launch'
| 'GamepadDialogContent'
| 'GamepadDialogContent_InnerWidth'
| 'Field'
| 'Button'
| 'NoMinWidth'
| 'ActiveAndUnfocused'
| 'StandaloneFieldSeparator'
| 'StandardPadding'
| 'CompactPadding'
| 'WithDescription'
| 'WithBottomSeparatorStandard'
| 'WithBottomSeparatorThick'
| 'HighlightOnFocus'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkGrey'
| 'WithBottomSeparator'
| 'Disabled'
| 'Clickable'
| 'FieldClickTarget'
| 'FieldChildren'
| 'FieldLeadIcon'
| 'FieldLabelRow'
| 'VerticalAlignCenter'
| 'InlineWrapShiftsChildrenBelow'
| 'ExtraPaddingOnChildrenBelow'
| 'ChildrenWidthFixed'
| 'ChildrenWidthGrow'
| 'WithFirstRow'
| 'WithChildrenBelow'
| 'FieldLabel'
| 'FieldLabelValue'
| 'FieldDescription'
| 'ModalPosition'
| 'WithStandardPadding'
| 'slideInAnimation'
| 'BasicTextInput'
| 'Toggle'
| 'ToggleRail'
| 'On'
| 'ToggleSwitch'
| 'LabelFieldValue'
| 'DropDownControlButtonContents'
| 'Spacer'
| 'ControlsListOuterPanel'
| 'StandardSpacing'
| 'ExtraSpacing'
| 'AlignRight'
| 'AlignLeft'
| 'AlignCenter'
| 'ControlsListChild'
| 'QuickAccess-Menu'
| 'BigButtons'
| 'BottomButtons'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'ItemFocusAnim-green'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
type QuickAccessControlsClasses = Record<
| 'duration-app-launch'
| 'PanelSection'
| 'PanelSectionTitle'
| 'Text'
| 'PanelSectionRow'
| 'Label'
| 'ComingSoon'
| 'LowBattery'
| 'ReallyLow'
| 'LowBatteryGauge'
| 'Remaining'
| 'EmptyNotifications'
| 'BatterySectionContainer'
| 'BatteryIcon'
| 'BatteryPercentageLabel'
| 'BatteryDetailsLabels'
| 'BatteryProjectedValue'
| 'BatteryProjectedLabel'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'ItemFocusAnim-green'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
type UpdaterFieldClasses = Record<
2022-10-24 20:33:40 -04:00
| 'duration-app-launch'
| 'OOBEUpdateStatusContainer'
| 'UpdateScreen'
| 'UpdatePanel'
| 'CurrentStatus'
| 'TotalUpdateSize'
| 'ProgressInfoContainer'
| 'TimeRemaining'
| 'BatteryLowWarning'
| 'fadeInAnimation'
| 'ProgressStatus'
| 'UpdateStatusContainer'
| 'UpdaterFieldStatusSuccess'
| 'UpdaterFieldStatusApplying'
| 'TextContainer'
| 'ApplyingText'
| 'UpdateBytesRemaining'
| 'Label'
| 'Numerator'
| 'Separator'
| 'Denominator'
| 'PatchNotes'
| 'PostedTime'
| 'EventDetailTitle'
| 'EventDetailsSubTitle'
| 'EventDetailsBody'
| 'InsufficientBatteryText'
| 'UnsupportedHardwareWarning'
| 'Title'
| 'Text'
| 'Body'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'ItemFocusAnim-green'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
type PlaySectionClasses = Record<
2022-10-24 20:33:40 -04:00
| 'AchievementCountLabel'
| 'AchievementProgressRow'
| 'ActionSection'
| 'AppButtonsContainer'
| 'Arrow'
| 'AvatarAndPersona'
| 'BreakNarrow'
| 'BreakShort'
| 'BreakTall'
| 'BreakUltraWide'
| 'BreakWide'
| 'ClickablePlayBarItem'
| 'CloudStatusIcon'
| 'CloudStatusLabel'
| 'CloudStatusRow'
| 'CloudSyncProblem'
| 'CloudSynching'
| 'ComingSoon'
| 'Container'
| 'DetailsProgressBar'
| 'DetailsProgressContainer'
| 'DetailsSection'
| 'DetailsSectionExtra'
| 'DetailsSectionStatus'
| 'DotDotDot'
| 'DownloadPaused'
| 'DownloadProgressBar'
| 'Downloading'
| 'FavoriteButton'
| 'Favorited'
| 'GameInfoButton'
| 'GameStat'
| 'GameStatIcon'
| 'GameStatIconForced'
| 'GameStatRight'
| 'GameStatsSection'
| 'GamepadUIBreakNarrow'
| 'GamepadUIBreakShort'
| 'GamepadUIBreakWide'
| 'Glassy'
| 'HideWhenNarrow'
| 'Icon'
| 'Icons'
| 'InPage'
| 'InnerContainer'
| 'InvalidPlatform'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'ItemFocusAnim-green'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'Label'
| 'LastPlayed'
| 'LastPlayedInfo'
| 'MenuActive'
| 'MenuButton'
| 'MiniAchievements'
| 'OfflineMode'
| 'OnlyDownloadBar'
| 'PermanentlyUnavailable'
| 'PlayBar'
| 'PlayBarCloudStatusContainer'
| 'PlayBarDetailLabel'
| 'PlayBarGameIcon'
| 'PlayBarGameName'
| 'PlayBarIconAndGame'
| 'PlayBarLabel'
| 'Playtime'
| 'PlaytimeIcon'
| 'PlaytimeIconForced'
| 'PortraitBar'
| 'Presale'
| 'RecentlyUpdated'
| 'RecentlyUpdatedIcon'
| 'RecentlyUpdatedLink'
| 'RecentlyUpdatedText'
| 'RightBreakNarrow'
| 'RightBreakUltraNarrow'
| 'RightBreakUltraWide'
| 'RightBreakWide'
| 'RightControls'
| 'Row'
| 'SharedLibrary'
| 'StatusAndStats'
| 'StatusNameContainer'
| 'StickyHeader'
| 'StickyHeaderShadow'
| 'SuperimposedGridItems'
| 'SyncAnim'
| 'Visible'
| 'duration-app-launch'
| 'favorited'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
type GamepadSliderClasses = Record<
2022-10-24 20:33:40 -04:00
| 'error-shake-duration'
| 'SliderControlPanelGroup'
| 'SliderControlAndNotches'
| 'WithDefaultValue'
| 'SliderControl'
| 'Disabled'
| 'SliderTrack'
| 'SliderHasNotches'
| 'SliderTrackDark'
| 'SliderHandleContainer'
| 'VerticalLineSliderHandleContainer'
| 'ParenSliderHandleContainer'
| 'SliderHandle'
| 'SliderHandleFocusPop'
| 'VerticalLineSliderHandle'
| 'ParenSliderHandle'
| 'Left'
| 'SliderControlWithIcon'
| 'Icon'
| 'SliderNotchContainer'
| 'SliderNotch'
| 'AlignToEnds'
| 'SliderNotchLabel'
| 'AlignToLeft'
| 'AlignToRight'
| 'SliderNotchTick'
| 'TickActive'
| 'LabelText'
| 'DescriptionValue'
| 'EditableValue'
| 'FakeEditableValue'
| 'RedBorder'
| 'EditableValueSuffix'
| 'ErrorShake'
| 'error-shake'
| 'CompoundSlider'
| 'CompoundSliderSubSlider'
| 'Right'
| 'CompoundSliderSubSliderLabelContainer'
| 'CompoundSliderSubSliderLabelPositioner'
| 'CompoundSliderSubSliderLabel'
| 'CompoundSliderSubSliderLabelInternal'
| 'DefaultValueTickContainer'
| 'DefaultValueTick',
string
>;
type AppDetailsHeaderClasses = Record<
| 'AddBoxSizer'
| 'Background'
| 'Bottom'
| 'BottomCenter'
| 'BottomLeft'
| 'BottomRight'
| 'BoxSizer'
| 'BoxSizerButtonContainer'
| 'BoxSizerContainer'
| 'BoxSizerDelete'
| 'BoxSizerDragBox'
| 'BoxSizerEdge'
| 'BoxSizerGridBox'
| 'BoxSizerInfo'
| 'BoxSizerSettings'
| 'BoxSizerValidRegion'
| 'CenterCenter'
| 'DialogButton'
| 'EdgeDown'
| 'FallbackArt'
| 'Features'
| 'FullscreenEnterActive'
| 'FullscreenEnterDone'
| 'FullscreenEnterStart'
| 'FullscreenExitActive'
| 'FullscreenExitDone'
| 'FullscreenExitStart'
| 'HeaderBackgroundImage'
| 'ImgBlur'
| 'ImgBlurBackdrop'
| 'ImgContainer'
| 'ImgSrc'
| 'Left'
| 'Loaded'
| 'Middle'
| 'NoArt'
| 'PinBox'
| 'Right'
| 'SVGTitle'
| 'SaveBoxSizer'
| 'TextNameSpace'
| 'TitleImageContainer'
| 'TitleLogo'
| 'TitleSection'
| 'Top'
| 'TopCapsule'
| 'TopGradient'
| 'TopLeft'
| 'TopRight'
| 'UpperCenter'
| 'UpperLeft'
| 'duration-app-launch',
string
>;
type AppDetailsClasses = Record<
| 'BreakNarrow'
| 'BreakShort'
| 'BreakTall'
| 'BreakUltraWide'
| 'BreakWide'
| 'Container'
| 'GamepadUIBreakNarrow'
| 'GamepadUIBreakShort'
| 'GamepadUIBreakWide'
| 'Glassy'
| 'Header'
| 'HeaderLoaded'
| 'InnerContainer'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'ItemFocusAnim-green'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'PlayBar'
| 'PreventScrolling'
| 'RightBreakNarrow'
| 'RightBreakUltraNarrow'
| 'RightBreakUltraWide'
| 'RightBreakWide'
| 'ScrollContainer'
| 'ShowPlayBar'
| 'Throbber'
| 'duration-app-launch'
| 'fadein'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
type GamepadUIClasses = Record<
| 'duration-app-launch'
| 'TransitionMenuDelay'
| 'PanelSection'
| 'PanelSectionTitle'
| 'Text'
| 'PanelSectionRow'
| 'Label'
| 'ComingSoon'
| 'LowBattery'
| 'ReallyLow'
| 'LowBatteryGauge'
| 'Remaining'
| 'EmptyNotifications'
| 'BatterySectionContainer'
| 'BatteryIcon'
| 'BatteryPercentageLabel'
| 'BatteryDetailsLabels'
| 'BatteryProjectedValue'
| 'BatteryProjectedLabel'
| 'ViewPlaceholder'
| 'FullHeight'
| 'Title'
| 'Container'
| 'Open'
| 'QuickAccessMenu'
| 'HeaderContainer'
| 'Menu'
| 'HeaderAndFooterVisible'
| 'TabContentColumn'
| 'Tabs'
| 'Tab'
| 'Selected'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'VoiceTab'
| 'ItemFocusAnim-green'
| 'Blocked'
| 'TabPanelHidden'
| 'FriendsTitle'
| 'FriendsListTabPanel'
| 'PanelOuterNav'
| 'PanelExitAnchor'
| 'TabGroupPanel'
| 'FooterBoxShadow'
| 'AllTabContents'
| 'ContentTransition'
| 'ActiveTab'
| 'Up'
| 'Enter'
| 'EnterActive'
| 'Exit'
| 'ExitActive'
| 'Down'
| 'KeyboardButton'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
type GamepadTabbedPageClasses = Record<
| 'duration-app-launch'
| 'headerHeight'
| 'contentPadding'
| 'GamepadTabbedPage'
| 'TabHeaderRowWrapper'
| 'Floating'
| 'TabRow'
| 'TabRowTabs'
| 'BleedGlyphs'
| 'TabsRowScroll'
| 'FixCenterAlignScroll'
| 'Tab'
| 'Selected'
| 'HasAddon'
| 'RightAddon'
| 'TabTitle'
| 'LeftAddon'
| 'TabCount'
| 'Active'
| 'TabBadge'
| 'TabCountBadge'
| 'TabRowSpacer'
| 'Glyphs'
| 'Show'
| 'TabContents'
| 'ContentTransition'
| 'TabContentsScroll'
| 'Right'
| 'Enter'
| 'EnterActive'
| 'Exit'
| 'ExitActive'
| 'Left'
| 'TabIcon',
string
>;
type GamepadContextMenuClasses = Record<
2024-05-12 15:48:13 -04:00
| 'duration-app-launch'
| 'BasicContextMenuModal'
| 'BasicContextMenuHeader'
| 'BasicContextMenuHeaderShrinkableSpacing'
| 'BasicContextMenuContainer'
| 'slideInAnimation'
| 'contextMenu'
| 'contextMenuContents'
| 'hasSubMenu'
| 'contextMenuFade'
| 'contextMenuItem'
| 'active'
| 'Selected'
| 'Focused'
| 'Positive'
| 'Emphasis'
| 'Destructive'
| 'Capitalized'
| 'MenuSectionHeader'
| 'UpperCase'
| 'SubMenu'
| 'ContextMenuSeparator'
| 'Label'
| 'Arrow'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'ItemFocusAnim-darkerGrey'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'ItemFocusAnim-green'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
type AchievementClasses = Record<
2024-05-12 15:48:13 -04:00
| 'nAchievementHeight'
| 'nGlobalAchievementHeight'
| 'nAchievementsListTitleHeight'
| 'nAchievementGap'
| 'AchievementList'
| 'ListTitle'
| 'AchievementListItemBase'
| 'Container'
| 'Content'
| 'Right'
| 'Footer'
| 'AchievementTitle'
| 'AchievementDescription'
| 'AchievementGlobalPercentage'
| 'InBody'
| 'VerticalContent'
| 'UnlockDate'
| 'AlignEnd'
| 'ProgressBar'
| 'ProgressCount'
| 'AchievementContent'
| 'HiddenAchievementContent'
| 'FriendAchievementFooter'
| 'GlobalPercentage'
| 'UserUnlockDateTime'
| 'GlobalAchievementsListHeader'
| 'SearchField'
| 'Avatar'
| 'HeaderText'
| 'GlobalAchievementListItem'
| 'UnlockContainer'
| 'Info'
| 'Title'
| 'Description'
| 'Percent'
| 'ImageContainer'
| 'ProgressFill'
| 'SpoilerWarning'
| 'Hidden'
| 'ComparisonAchieverColumn'
| 'ComparisonAchieverInfo'
| 'ProgressContainer'
| 'ProgressLabel'
| 'Secondary'
| 'AvatarContainer'
| 'Unachieved',
string
>;
type MainMenuAppRunningClasses = Record<
2024-05-12 15:48:13 -04:00
| 'duration-app-launch'
| 'ScrollMask'
| 'HideMask'
| 'MainMenuAppRunning'
| 'MenuOpen'
| 'NavigationColumn'
| 'ControllerColumnFocused'
| 'NavColumnFocused'
| 'NavigationBox'
| 'NavigationMenuItem'
| 'ItemFocusAnim-darkerGrey'
| 'Active'
| 'Disabled'
| 'SwitchAppsTitle'
| 'SelectableAppWindow'
| 'ActiveDot'
| 'NavigationMenuItemSeparator'
| 'AppColumn'
| 'FocusedColumn'
| 'AppColumnContent'
| 'ActiveContent'
| 'CurrentGameBackground'
| 'CurrentGameLogo'
| 'OverlayAchievements'
| 'Container'
| 'OverlayGuides'
| 'OverlayNotes'
| 'OverlayInplaceBrowser'
| 'ItemFocusAnim-darkerGrey-nocolor'
| 'ItemFocusAnim-darkGrey'
| 'ItemFocusAnim-grey'
| 'ItemFocusAnimBorder-darkGrey'
| 'ItemFocusAnim-green'
| 'focusAnimation'
| 'hoverAnimation',
string
>;
type BasicAppDetailsSectionStylerClasses = Record<
2024-05-12 15:48:13 -04:00
| 'duration-app-launch'
| 'headerPadding'
| 'Header'
| 'AppDetailsContent'
| 'AppDetailsContainer'
| 'AppDetailsRoot'
| 'GameInfoContainer'
| 'GameInfoQuickLinks'
| 'GameInfoCollections'
| 'CollectionsHeader'
| 'PlaySection'
| 'ActionRow'
| 'AppDetailSectionList'
| 'AppActionButton'
| 'ActionButtonAndStatusPanel'
| 'AppButtons'
| 'InvertFocusedIcon'
| 'DeckVerifiedFeedbackContainer'
| 'DeckVerifiedFeedbackConfirmationContainer'
| 'DeckVerifiedFeedbackButton'
| 'DeckVerifiedFeedbackQuestion'
| 'DeckVerifiedFeedbackConfirmation',
string
>;
2022-10-24 20:33:40 -04:00
export const quickAccessMenuClasses: QuickAccessMenuClasses = findModule(
(mod) => typeof mod === 'object' && mod?.Title && mod?.QuickAccessMenu && mod?.BatteryDetailsLabels,
2022-10-24 20:33:40 -04:00
);
2022-10-01 20:32:23 -05:00
/**
* @depreciated please use quickAccessMenuClasses instead
*/
export const staticClasses = quickAccessMenuClasses;
2024-05-12 15:48:13 -04:00
export const scrollPanelClasses: ScrollPanelClasses = findModule((mod) => typeof mod === 'object' && mod?.ScrollPanel);
2022-10-01 20:32:23 -05:00
/**
* @depreciated please use scrollPanelClasses instead
*/
export const scrollClasses = scrollPanelClasses;
// TODO refactor to use class mapper
2022-10-24 20:33:40 -04:00
export const gamepadDialogClasses: GamepadDialogClasses = findModule(
(mod) => typeof mod === 'object' && mod?.GamepadDialogContent,
2022-10-24 20:33:40 -04:00
);
export const quickAccessControlsClasses: QuickAccessControlsClasses = findModule(
(mod) => typeof mod === 'object' && typeof mod?.PanelSection === 'string' && mod?.PanelSection,
2022-10-24 20:33:40 -04:00
);
export const updaterFieldClasses: UpdaterFieldClasses = findModule(
(mod) => typeof mod === 'object' && mod?.OOBEUpdateStatusContainer,
2022-10-24 20:33:40 -04:00
);
2024-05-12 15:48:13 -04:00
export const playSectionClasses: PlaySectionClasses = findModule((mod) => typeof mod === 'object' && mod?.Container);
2022-10-24 20:33:40 -04:00
export const gamepadSliderClasses: GamepadSliderClasses = findModule(
(mod) => typeof mod === 'object' && mod?.SliderControlPanelGroup,
2022-10-24 20:33:40 -04:00
);
export const appDetailsHeaderClasses: AppDetailsHeaderClasses = findModule(
(mod) => typeof mod === 'object' && mod?.TopCapsule,
);
2024-05-12 15:48:13 -04:00
export const appDetailsClasses: AppDetailsClasses = findModule((mod) => typeof mod === 'object' && mod?.HeaderLoaded);
export const gamepadUIClasses: GamepadUIClasses = findModule((mod) => typeof mod === 'object' && mod?.BasicUiRoot);
export const gamepadTabbedPageClasses: GamepadTabbedPageClasses = findModule(
2024-05-12 15:48:13 -04:00
(mod) => typeof mod === 'object' && mod?.GamepadTabbedPage,
);
export const gamepadContextMenuClasses: GamepadContextMenuClasses = findModule(
2024-05-12 15:48:13 -04:00
(mod) => typeof mod === 'object' && mod?.BasicContextMenuModal,
);
export const achievementClasses: AchievementClasses = findModule(
2024-05-12 15:48:13 -04:00
(mod) => typeof mod === 'object' && mod?.AchievementListItemBase,
);
export const mainMenuAppRunningClasses: MainMenuAppRunningClasses = findModule(
2024-05-12 15:48:13 -04:00
(mod) => typeof mod === 'object' && mod?.MainMenuAppRunning,
);
export const basicAppDetailsSectionStylerClasses: BasicAppDetailsSectionStylerClasses = findModule(
2024-05-12 15:48:13 -04:00
(mod) => typeof mod === 'object' && mod?.AppDetailsRoot,
);