@decky/ui 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +504 -0
- package/README.md +27 -0
- package/dist/class-mapper.d.ts +7 -0
- package/dist/class-mapper.js +26 -0
- package/dist/components/Button.d.ts +5 -0
- package/dist/components/Button.js +2 -0
- package/dist/components/ButtonItem.d.ts +7 -0
- package/dist/components/ButtonItem.js +3 -0
- package/dist/components/Carousel.d.ts +19 -0
- package/dist/components/Carousel.js +2 -0
- package/dist/components/ControlsList.d.ts +6 -0
- package/dist/components/ControlsList.js +2 -0
- package/dist/components/Dialog.d.ts +32 -0
- package/dist/components/Dialog.js +19 -0
- package/dist/components/DialogCheckbox.d.ts +17 -0
- package/dist/components/DialogCheckbox.js +14 -0
- package/dist/components/Dropdown.d.ts +34 -0
- package/dist/components/Dropdown.js +3 -0
- package/dist/components/Field.d.ts +22 -0
- package/dist/components/Field.js +2 -0
- package/dist/components/FocusRing.d.ts +9 -0
- package/dist/components/FocusRing.js +2 -0
- package/dist/components/Focusable.d.ts +12 -0
- package/dist/components/Focusable.js +2 -0
- package/dist/components/FooterLegend.d.ts +66 -0
- package/dist/components/FooterLegend.js +32 -0
- package/dist/components/Item.d.ts +11 -0
- package/dist/components/Item.js +1 -0
- package/dist/components/Marquee.d.ts +14 -0
- package/dist/components/Marquee.js +2 -0
- package/dist/components/Menu.d.ts +29 -0
- package/dist/components/Menu.js +8 -0
- package/dist/components/Modal.d.ts +52 -0
- package/dist/components/Modal.js +29 -0
- package/dist/components/Panel.d.ts +11 -0
- package/dist/components/Panel.js +4 -0
- package/dist/components/ProgressBar.d.ts +21 -0
- package/dist/components/ProgressBar.js +4 -0
- package/dist/components/Scroll.d.ts +7 -0
- package/dist/components/Scroll.js +5 -0
- package/dist/components/SidebarNavigation.d.ts +21 -0
- package/dist/components/SidebarNavigation.js +2 -0
- package/dist/components/SliderField.d.ts +26 -0
- package/dist/components/SliderField.js +2 -0
- package/dist/components/Spinner.d.ts +2 -0
- package/dist/components/Spinner.js +2 -0
- package/dist/components/SteamSpinner.d.ts +2 -0
- package/dist/components/SteamSpinner.js +2 -0
- package/dist/components/Tabs.d.ts +16 -0
- package/dist/components/Tabs.js +48 -0
- package/dist/components/TextField.d.ts +22 -0
- package/dist/components/TextField.js +2 -0
- package/dist/components/Toggle.d.ts +8 -0
- package/dist/components/Toggle.js +2 -0
- package/dist/components/ToggleField.d.ts +9 -0
- package/dist/components/ToggleField.js +2 -0
- package/dist/components/index.d.ts +25 -0
- package/dist/components/index.js +25 -0
- package/dist/custom-components/ColorPickerModal.d.ts +12 -0
- package/dist/custom-components/ColorPickerModal.js +87 -0
- package/dist/custom-components/ReorderableList.d.ts +26 -0
- package/dist/custom-components/ReorderableList.js +84 -0
- package/dist/custom-components/SuspensefulImage.d.ts +7 -0
- package/dist/custom-components/SuspensefulImage.js +27 -0
- package/dist/custom-components/index.d.ts +3 -0
- package/dist/custom-components/index.js +3 -0
- package/dist/custom-hooks/index.d.ts +1 -0
- package/dist/custom-hooks/index.js +1 -0
- package/dist/custom-hooks/useQuickAccessVisible.d.ts +1 -0
- package/dist/custom-hooks/useQuickAccessVisible.js +22 -0
- package/dist/deck-hooks/index.d.ts +1 -0
- package/dist/deck-hooks/index.js +1 -0
- package/dist/deck-hooks/useParams.d.ts +1 -0
- package/dist/deck-hooks/useParams.js +2 -0
- package/dist/globals/SteamClient.d.ts +307 -0
- package/dist/globals/SteamClient.js +1 -0
- package/dist/globals/index.d.ts +2 -0
- package/dist/globals/index.js +2 -0
- package/dist/globals/stores.d.ts +50 -0
- package/dist/globals/stores.js +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/logger.d.ts +17 -0
- package/dist/logger.js +46 -0
- package/dist/modules/Router.d.ts +110 -0
- package/dist/modules/Router.js +102 -0
- package/dist/modules/index.d.ts +1 -0
- package/dist/modules/index.js +1 -0
- package/dist/plugin.d.ts +68 -0
- package/dist/plugin.js +5 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.js +23 -0
- package/dist/utils/patcher.d.ts +18 -0
- package/dist/utils/patcher.js +103 -0
- package/dist/utils/react.d.ts +18 -0
- package/dist/utils/react.js +74 -0
- package/dist/utils/static-classes.d.ts +52 -0
- package/dist/utils/static-classes.js +28 -0
- package/dist/webpack.d.ts +21 -0
- package/dist/webpack.js +102 -0
- package/package.json +82 -0
- package/src/class-mapper.ts +34 -0
- package/src/components/Button.tsx +8 -0
- package/src/components/ButtonItem.tsx +14 -0
- package/src/components/Carousel.ts +25 -0
- package/src/components/ControlsList.tsx +13 -0
- package/src/components/Dialog.tsx +86 -0
- package/src/components/DialogCheckbox.tsx +36 -0
- package/src/components/Dropdown.tsx +49 -0
- package/src/components/Field.tsx +28 -0
- package/src/components/FocusRing.ts +15 -0
- package/src/components/Focusable.tsx +18 -0
- package/src/components/FooterLegend.ts +67 -0
- package/src/components/Item.tsx +12 -0
- package/src/components/Marquee.tsx +20 -0
- package/src/components/Menu.tsx +57 -0
- package/src/components/Modal.tsx +119 -0
- package/src/components/Panel.tsx +26 -0
- package/src/components/ProgressBar.tsx +35 -0
- package/src/components/Scroll.tsx +15 -0
- package/src/components/SidebarNavigation.tsx +28 -0
- package/src/components/SliderField.tsx +33 -0
- package/src/components/Spinner.tsx +8 -0
- package/src/components/SteamSpinner.tsx +7 -0
- package/src/components/Tabs.tsx +127 -0
- package/src/components/TextField.tsx +28 -0
- package/src/components/Toggle.tsx +14 -0
- package/src/components/ToggleField.tsx +15 -0
- package/src/components/index.ts +25 -0
- package/src/custom-components/ColorPickerModal.tsx +132 -0
- package/src/custom-components/ReorderableList.tsx +183 -0
- package/src/custom-components/SuspensefulImage.tsx +44 -0
- package/src/custom-components/index.ts +3 -0
- package/src/custom-hooks/index.ts +1 -0
- package/src/custom-hooks/useQuickAccessVisible.tsx +63 -0
- package/src/deck-hooks/index.ts +1 -0
- package/src/deck-hooks/useParams.ts +15 -0
- package/src/globals/SteamClient.ts +321 -0
- package/src/globals/index.ts +2 -0
- package/src/globals/stores.ts +50 -0
- package/src/index.ts +11 -0
- package/src/logger.ts +77 -0
- package/src/modules/Router.tsx +174 -0
- package/src/modules/index.ts +1 -0
- package/src/plugin.tsx +96 -0
- package/src/utils/index.ts +43 -0
- package/src/utils/patcher.ts +160 -0
- package/src/utils/react.ts +119 -0
- package/src/utils/static-classes.ts +1104 -0
- package/src/webpack.ts +136 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
var SteamClient: SteamClient;
|
|
3
|
+
}
|
|
4
|
+
export interface Apps {
|
|
5
|
+
RegisterForAppOverviewChanges: any;
|
|
6
|
+
RegisterForAppDetails: any;
|
|
7
|
+
RegisterForLocalizationChanges: any;
|
|
8
|
+
RegisterForWorkshopChanges: any;
|
|
9
|
+
RegisterForWorkshopItemDownloads: any;
|
|
10
|
+
GetLibraryBootstrapData: any;
|
|
11
|
+
RegisterForAchievementChanges: any;
|
|
12
|
+
GetFriendAchievementsForApp: any;
|
|
13
|
+
GetMyAchievementsForApp: any;
|
|
14
|
+
AddUserTagToApps: any;
|
|
15
|
+
RemoveUserTagFromApps: any;
|
|
16
|
+
ClearUserTagsOnApps: any;
|
|
17
|
+
ClearAndSetUserTagsOnApp: any;
|
|
18
|
+
SetAppHidden: any;
|
|
19
|
+
ResetHiddenState: any;
|
|
20
|
+
SetAppLaunchOptions: any;
|
|
21
|
+
SetAppResolutionOverride: any;
|
|
22
|
+
SetAppCurrentLanguage: any;
|
|
23
|
+
SetAppAutoUpdateBehavior: any;
|
|
24
|
+
SetAppBackgroundDownloadsBehavior: any;
|
|
25
|
+
ToggleAppFamilyBlockedState: any;
|
|
26
|
+
ToggleAppSteamCloudEnabled: any;
|
|
27
|
+
ToggleAppSteamCloudSyncOnSuspendEnabled: any;
|
|
28
|
+
ToggleOverrideResolutionForInternalDisplay: any;
|
|
29
|
+
ToggleEnableSteamOverlayForApp: any;
|
|
30
|
+
ToggleEnableDesktopTheatreForApp: any;
|
|
31
|
+
BrowseLocalFilesForApp: any;
|
|
32
|
+
BrowseScreenshotsForApp: any;
|
|
33
|
+
BrowseScreenshotForApp: any;
|
|
34
|
+
BackupFilesForApp: any;
|
|
35
|
+
VerifyFilesForApp: any;
|
|
36
|
+
CreateDesktopShortcutForApp: any;
|
|
37
|
+
JoinAppContentBeta: any;
|
|
38
|
+
JoinAppContentBetaByPassword: any;
|
|
39
|
+
GetAchievementsInTimeRange: any;
|
|
40
|
+
GetSubscribedWorkshopItems: any;
|
|
41
|
+
SubscribeWorkshopItem: any;
|
|
42
|
+
GetDownloadedWorkshopItems: any;
|
|
43
|
+
DownloadWorkshopItem: any;
|
|
44
|
+
SetLocalScreenshotCaption: any;
|
|
45
|
+
SetLocalScreenshotSpoiler: any;
|
|
46
|
+
GetDetailsForScreenshotUpload: any;
|
|
47
|
+
UploadLocalScreenshot: any;
|
|
48
|
+
DeleteLocalScreenshot: any;
|
|
49
|
+
GetScreenshotsInTimeRange: any;
|
|
50
|
+
GetFriendsWhoPlay: any;
|
|
51
|
+
RequestLegacyCDKeysForApp: any;
|
|
52
|
+
GetSoundtrackDetails: any;
|
|
53
|
+
GetStoreTagLocalization: any;
|
|
54
|
+
GetLaunchOptionsForApp: any;
|
|
55
|
+
GetResolutionOverrideForApp: any;
|
|
56
|
+
ScanForShortcuts: any;
|
|
57
|
+
GetAllShortcuts: any;
|
|
58
|
+
GetShortcutData: any;
|
|
59
|
+
AddShortcut: any;
|
|
60
|
+
RemoveShortcut: any;
|
|
61
|
+
InstallFlatpakAppAndCreateShortcut: any;
|
|
62
|
+
ListFlatpakApps: any;
|
|
63
|
+
UninstallFlatpakApp: any;
|
|
64
|
+
ShowControllerConfigurator: any;
|
|
65
|
+
SetThirdPartyControllerConfiguration: any;
|
|
66
|
+
ToggleAllowDesktopConfiguration: any;
|
|
67
|
+
SetControllerRumblePreference: any;
|
|
68
|
+
GetCachedAppDetails: any;
|
|
69
|
+
SetCachedAppDetails: any;
|
|
70
|
+
ReportLibraryAssetCacheMiss: any;
|
|
71
|
+
SaveAchievementProgressCache: any;
|
|
72
|
+
SetStreamingClientForApp: any;
|
|
73
|
+
SetCustomArtworkForApp: any;
|
|
74
|
+
ClearCustomArtworkForApp: any;
|
|
75
|
+
SetCustomLogoPositionForApp: any;
|
|
76
|
+
ClearCustomLogoPositionForApp: any;
|
|
77
|
+
RequestIconDataForApp: any;
|
|
78
|
+
SpecifyCompatTool: any;
|
|
79
|
+
GetAvailableCompatTools: any;
|
|
80
|
+
SetShortcutName: any;
|
|
81
|
+
SetShortcutExe: any;
|
|
82
|
+
SetShortcutStartDir: any;
|
|
83
|
+
SetShortcutLaunchOptions: any;
|
|
84
|
+
SetShortcutIsVR: any;
|
|
85
|
+
PromptToChangeShortcut: any;
|
|
86
|
+
PromptToSelectShortcutIcon: any;
|
|
87
|
+
InstallApp: any;
|
|
88
|
+
RunGame: any;
|
|
89
|
+
VerifyApp: any;
|
|
90
|
+
StreamGame: any;
|
|
91
|
+
CancelLaunch: any;
|
|
92
|
+
TerminateApp: any;
|
|
93
|
+
UninstallApps: any;
|
|
94
|
+
ShowStore: any;
|
|
95
|
+
SetDLCEnabled: any;
|
|
96
|
+
ContinueGameAction: any;
|
|
97
|
+
CancelGameAction: any;
|
|
98
|
+
GetActiveGameActions: any;
|
|
99
|
+
GetGameActionDetails: any;
|
|
100
|
+
GetGameActionForApp: any;
|
|
101
|
+
SkipShaderProcessing: any;
|
|
102
|
+
MarkEulaAccepted: any;
|
|
103
|
+
MarkEulaRejected: any;
|
|
104
|
+
LoadEula: any;
|
|
105
|
+
GetConflictingFileTimestamps: any;
|
|
106
|
+
GetCloudPendingRemoteOperations: any;
|
|
107
|
+
ClearProton: any;
|
|
108
|
+
RegisterForMarketingMessages: any;
|
|
109
|
+
FetchMarketingMessages: any;
|
|
110
|
+
MarkMarketingMessageSeen: any;
|
|
111
|
+
ReportMarketingMessageSeen: any;
|
|
112
|
+
RegisterForGameActionStart: any;
|
|
113
|
+
RegisterForGameActionEnd: any;
|
|
114
|
+
RegisterForGameActionTaskChange: any;
|
|
115
|
+
RegisterForGameActionUserRequest: any;
|
|
116
|
+
RegisterForGameActionShowError: any;
|
|
117
|
+
RegisterForGameActionShowUI: any;
|
|
118
|
+
OpenAppSettingsDialog: any;
|
|
119
|
+
}
|
|
120
|
+
export interface Window {
|
|
121
|
+
RegisterForExternalDisplayChanged: any;
|
|
122
|
+
SetManualDisplayScaleFactor: any;
|
|
123
|
+
SetAutoDisplayScale: any;
|
|
124
|
+
Minimize: any;
|
|
125
|
+
ProcessShuttingDown: any;
|
|
126
|
+
ToggleMaximize: any;
|
|
127
|
+
MoveTo: any;
|
|
128
|
+
ResizeTo: any;
|
|
129
|
+
SetMinSize: any;
|
|
130
|
+
SetResizeGrip: any;
|
|
131
|
+
SetComposition: any;
|
|
132
|
+
GamescopeBlur: any;
|
|
133
|
+
BringToFront: any;
|
|
134
|
+
SetForegroundWindow: any;
|
|
135
|
+
SetKeyFocus: any;
|
|
136
|
+
FlashWindow: any;
|
|
137
|
+
StopFlashWindow: any;
|
|
138
|
+
ShowWindow: any;
|
|
139
|
+
HideWindow: any;
|
|
140
|
+
SetWindowIcon: any;
|
|
141
|
+
GetWindowDimensions: any;
|
|
142
|
+
GetWindowRestoreDetails: any;
|
|
143
|
+
PositionWindowRelative: any;
|
|
144
|
+
GetMousePositionDetails: any;
|
|
145
|
+
IsWindowMinimized: any;
|
|
146
|
+
GetBrowserID: any;
|
|
147
|
+
}
|
|
148
|
+
export interface SteamClient {
|
|
149
|
+
Apps: Apps;
|
|
150
|
+
Browser: any;
|
|
151
|
+
BrowserView: any;
|
|
152
|
+
ClientNotifications: any;
|
|
153
|
+
Cloud: any;
|
|
154
|
+
Console: any;
|
|
155
|
+
Downloads: any;
|
|
156
|
+
FamilySharing: any;
|
|
157
|
+
FriendSettings: any;
|
|
158
|
+
Friends: any;
|
|
159
|
+
GameSessions: any;
|
|
160
|
+
Input: any;
|
|
161
|
+
InstallFolder: any;
|
|
162
|
+
Installs: any;
|
|
163
|
+
MachineStorage: any;
|
|
164
|
+
Messaging: any;
|
|
165
|
+
Notifications: any;
|
|
166
|
+
OpenVR: any;
|
|
167
|
+
Overlay: any;
|
|
168
|
+
Parental: any;
|
|
169
|
+
RegisterIFrameNavigatedCallback: any;
|
|
170
|
+
RemotePlay: any;
|
|
171
|
+
RoamingStorage: any;
|
|
172
|
+
Screenshots: any;
|
|
173
|
+
Settings: any;
|
|
174
|
+
SharedConnection: any;
|
|
175
|
+
Stats: any;
|
|
176
|
+
Storage: any;
|
|
177
|
+
Streaming: any;
|
|
178
|
+
System: any;
|
|
179
|
+
UI: any;
|
|
180
|
+
URL: any;
|
|
181
|
+
Updates: any;
|
|
182
|
+
User: any;
|
|
183
|
+
WebChat: any;
|
|
184
|
+
Window: Window;
|
|
185
|
+
}
|
|
186
|
+
export interface SteamShortcut {
|
|
187
|
+
appid: number;
|
|
188
|
+
data: {
|
|
189
|
+
bIsApplication: boolean;
|
|
190
|
+
strAppName: string;
|
|
191
|
+
strExePath: string;
|
|
192
|
+
strArguments: string;
|
|
193
|
+
strShortcutPath: string;
|
|
194
|
+
strSortAs: string;
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
export interface LifetimeNotification {
|
|
198
|
+
unAppID: number;
|
|
199
|
+
nInstanceID: number;
|
|
200
|
+
bRunning: boolean;
|
|
201
|
+
}
|
|
202
|
+
export type AppAchievements = {
|
|
203
|
+
nAchieved: number;
|
|
204
|
+
nTotal: number;
|
|
205
|
+
vecAchievedHidden: any[];
|
|
206
|
+
vecHighlight: any[];
|
|
207
|
+
vecUnachieved: any[];
|
|
208
|
+
};
|
|
209
|
+
export type AppLanguages = {
|
|
210
|
+
strDisplayName: string;
|
|
211
|
+
strShortName: string;
|
|
212
|
+
};
|
|
213
|
+
export type LogoPinPositions = 'BottomLeft' | 'UpperLeft' | 'CenterCenter' | 'UpperCenter' | 'BottomCenter';
|
|
214
|
+
export interface LogoPosition {
|
|
215
|
+
pinnedPosition: LogoPinPositions;
|
|
216
|
+
nWidthPct: number;
|
|
217
|
+
nHeightPct: number;
|
|
218
|
+
}
|
|
219
|
+
export interface AppDetails {
|
|
220
|
+
achievements: AppAchievements;
|
|
221
|
+
bCanMoveInstallFolder: boolean;
|
|
222
|
+
bCloudAvailable: boolean;
|
|
223
|
+
bCloudEnabledForAccount: boolean;
|
|
224
|
+
bCloudEnabledForApp: boolean;
|
|
225
|
+
bCloudSyncOnSuspendAvailable: boolean;
|
|
226
|
+
bCloudSyncOnSuspendEnabled: boolean;
|
|
227
|
+
bCommunityMarketPresence: boolean;
|
|
228
|
+
bEnableAllowDesktopConfiguration: boolean;
|
|
229
|
+
bFreeRemovableLicense: boolean;
|
|
230
|
+
bHasAllLegacyCDKeys: boolean;
|
|
231
|
+
bHasAnyLocalContent: boolean;
|
|
232
|
+
bHasLockedPrivateBetas: boolean;
|
|
233
|
+
bIsExcludedFromSharing: boolean;
|
|
234
|
+
bIsSubscribedTo: boolean;
|
|
235
|
+
bOverlayEnabled: boolean;
|
|
236
|
+
bOverrideInternalResolution: boolean;
|
|
237
|
+
bRequiresLegacyCDKey: boolean;
|
|
238
|
+
bShortcutIsVR: boolean;
|
|
239
|
+
bShowCDKeyInMenus: boolean;
|
|
240
|
+
bShowControllerConfig: boolean;
|
|
241
|
+
bSupportsCDKeyCopyToClipboard: boolean;
|
|
242
|
+
bVRGameTheatreEnabled: boolean;
|
|
243
|
+
bWorkshopVisible: boolean;
|
|
244
|
+
eAppOwnershipFlags: number;
|
|
245
|
+
eAutoUpdateValue: number;
|
|
246
|
+
eBackgroundDownloads: number;
|
|
247
|
+
eCloudSync: number;
|
|
248
|
+
eControllerRumblePreference: number;
|
|
249
|
+
eDisplayStatus: number;
|
|
250
|
+
eEnableThirdPartyControllerConfiguration: number;
|
|
251
|
+
eSteamInputControllerMask: number;
|
|
252
|
+
iInstallFolder: number;
|
|
253
|
+
lDiskUsageBytes: number;
|
|
254
|
+
lDlcUsageBytes: number;
|
|
255
|
+
nBuildID: number;
|
|
256
|
+
nCompatToolPriority: number;
|
|
257
|
+
nPlaytimeForever: number;
|
|
258
|
+
nScreenshots: number;
|
|
259
|
+
rtLastTimePlayed: number;
|
|
260
|
+
rtLastUpdated: number;
|
|
261
|
+
rtPurchased: number;
|
|
262
|
+
selectedLanguage: {
|
|
263
|
+
strDisplayName: string;
|
|
264
|
+
strShortName: string;
|
|
265
|
+
};
|
|
266
|
+
strCloudBytesAvailable: string;
|
|
267
|
+
strCloudBytesUsed: string;
|
|
268
|
+
strCompatToolDisplayName: string;
|
|
269
|
+
strCompatToolName: string;
|
|
270
|
+
strDeveloperName: string;
|
|
271
|
+
strDeveloperURL: string;
|
|
272
|
+
strDisplayName: string;
|
|
273
|
+
strExternalSubscriptionURL: string;
|
|
274
|
+
strFlatpakAppID: string;
|
|
275
|
+
strHomepageURL: string;
|
|
276
|
+
strLaunchOptions: string;
|
|
277
|
+
strManualURL: string;
|
|
278
|
+
strOwnerSteamID: string;
|
|
279
|
+
strResolutionOverride: string;
|
|
280
|
+
strSelectedBeta: string;
|
|
281
|
+
strShortcutExe: string;
|
|
282
|
+
strShortcutLaunchOptions: string;
|
|
283
|
+
strShortcutStartDir: string;
|
|
284
|
+
strSteamDeckBlogURL: string;
|
|
285
|
+
unAppID: number;
|
|
286
|
+
vecBetas: any[];
|
|
287
|
+
vecDLC: any[];
|
|
288
|
+
vecDeckCompatTestResults: any[];
|
|
289
|
+
vecLanguages: AppLanguages[];
|
|
290
|
+
vecLegacyCDKeys: any[];
|
|
291
|
+
vecMusicAlbums: any[];
|
|
292
|
+
vecPlatforms: string[];
|
|
293
|
+
vecScreenShots: any[];
|
|
294
|
+
libraryAssets?: {
|
|
295
|
+
logoPosition?: LogoPosition;
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
export interface SteamAppOverview {
|
|
299
|
+
display_name: string;
|
|
300
|
+
gameid: string;
|
|
301
|
+
appid: number;
|
|
302
|
+
icon_hash: string;
|
|
303
|
+
third_party_mod?: boolean;
|
|
304
|
+
selected_clientid?: string;
|
|
305
|
+
BIsModOrShortcut: () => boolean;
|
|
306
|
+
BIsShortcut: () => boolean;
|
|
307
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { AppDetails, LogoPosition, SteamAppOverview } from './SteamClient';
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
LocalizationManager: {
|
|
5
|
+
m_mapTokens: Map<string, string>;
|
|
6
|
+
m_mapFallbackTokens: Map<string, string>;
|
|
7
|
+
m_rgLocalesToUse: string[];
|
|
8
|
+
};
|
|
9
|
+
App: {
|
|
10
|
+
m_CurrentUser: {
|
|
11
|
+
bIsLimited: boolean;
|
|
12
|
+
bIsOfflineMode: boolean;
|
|
13
|
+
bSupportAlertActive: boolean;
|
|
14
|
+
bCanInviteFriends: boolean;
|
|
15
|
+
NotificationCounts: {
|
|
16
|
+
comments: number;
|
|
17
|
+
inventory_items: number;
|
|
18
|
+
invites: number;
|
|
19
|
+
gifts: number;
|
|
20
|
+
offline_messages: number;
|
|
21
|
+
trade_offers: number;
|
|
22
|
+
async_game_updates: number;
|
|
23
|
+
moderator_messages: number;
|
|
24
|
+
help_request_replies: number;
|
|
25
|
+
};
|
|
26
|
+
strAccountBalance: string;
|
|
27
|
+
strAccountName: string;
|
|
28
|
+
strSteamID: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
appStore: {
|
|
32
|
+
GetAppOverviewByAppID: (appId: number) => SteamAppOverview | null;
|
|
33
|
+
GetCustomVerticalCapsuleURLs: (app: SteamAppOverview) => string[];
|
|
34
|
+
GetCustomLandcapeImageURLs: (app: SteamAppOverview) => string[];
|
|
35
|
+
GetCustomHeroImageURLs: (app: SteamAppOverview) => string[];
|
|
36
|
+
GetCustomLogoImageURLs: (app: SteamAppOverview) => string[];
|
|
37
|
+
GetLandscapeImageURLForApp: (app: SteamAppOverview) => string;
|
|
38
|
+
GetVerticalCapsuleURLForApp: (app: SteamAppOverview) => string;
|
|
39
|
+
GetCachedLandscapeImageURLForApp: (app: SteamAppOverview) => string;
|
|
40
|
+
GetCachedVerticalImageURLForApp: (app: SteamAppOverview) => string;
|
|
41
|
+
GetPregeneratedVerticalCapsuleForApp: (app: SteamAppOverview) => string;
|
|
42
|
+
GetIconURLForApp: (app: SteamAppOverview) => string;
|
|
43
|
+
};
|
|
44
|
+
appDetailsStore: {
|
|
45
|
+
GetAppDetails: (appId: number) => AppDetails | null;
|
|
46
|
+
GetCustomLogoPosition: (app: SteamAppOverview) => LogoPosition | null;
|
|
47
|
+
SaveCustomLogoPosition: (app: SteamAppOverview, logoPositions: LogoPosition) => any;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './custom-components';
|
|
2
|
+
export * from './custom-hooks';
|
|
3
|
+
export * from './components';
|
|
4
|
+
export * from './deck-hooks';
|
|
5
|
+
export * from './modules';
|
|
6
|
+
export * from './globals';
|
|
7
|
+
export * from './plugin';
|
|
8
|
+
export * from './webpack';
|
|
9
|
+
export * from './utils';
|
|
10
|
+
export * from './class-mapper';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './custom-components';
|
|
2
|
+
export * from './custom-hooks';
|
|
3
|
+
export * from './components';
|
|
4
|
+
export * from './deck-hooks';
|
|
5
|
+
export * from './modules';
|
|
6
|
+
export * from './globals';
|
|
7
|
+
export * from './plugin';
|
|
8
|
+
export * from './webpack';
|
|
9
|
+
export * from './utils';
|
|
10
|
+
export * from './class-mapper';
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const log: (name: string, ...args: any[]) => void;
|
|
2
|
+
export declare const group: (name: string, ...args: any[]) => void;
|
|
3
|
+
export declare const groupEnd: (name: string, ...args: any[]) => void;
|
|
4
|
+
export declare const debug: (name: string, ...args: any[]) => void;
|
|
5
|
+
export declare const warn: (name: string, ...args: any[]) => void;
|
|
6
|
+
export declare const error: (name: string, ...args: any[]) => void;
|
|
7
|
+
declare class Logger {
|
|
8
|
+
private name;
|
|
9
|
+
constructor(name: string);
|
|
10
|
+
log(...args: any[]): void;
|
|
11
|
+
debug(...args: any[]): void;
|
|
12
|
+
warn(...args: any[]): void;
|
|
13
|
+
error(...args: any[]): void;
|
|
14
|
+
group(...args: any[]): void;
|
|
15
|
+
groupEnd(...args: any[]): void;
|
|
16
|
+
}
|
|
17
|
+
export default Logger;
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const bgStyle1 = 'background: #16a085; color: black;';
|
|
2
|
+
export const log = (name, ...args) => {
|
|
3
|
+
console.log(`%c @decky/ui %c ${name} %c`, bgStyle1, 'background: #1abc9c; color: black;', 'background: transparent;', ...args);
|
|
4
|
+
};
|
|
5
|
+
export const group = (name, ...args) => {
|
|
6
|
+
console.group(`%c @decky/ui %c ${name} %c`, bgStyle1, 'background: #1abc9c; color: black;', 'background: transparent;', ...args);
|
|
7
|
+
};
|
|
8
|
+
export const groupEnd = (name, ...args) => {
|
|
9
|
+
console.groupEnd();
|
|
10
|
+
if (args?.length > 0)
|
|
11
|
+
console.log(`^ %c @decky/ui %c ${name} %c`, bgStyle1, 'background: #1abc9c; color: black;', 'background: transparent;', ...args);
|
|
12
|
+
};
|
|
13
|
+
export const debug = (name, ...args) => {
|
|
14
|
+
console.debug(`%c @decky/ui %c ${name} %c`, bgStyle1, 'background: #1abc9c; color: black;', 'color: blue;', ...args);
|
|
15
|
+
};
|
|
16
|
+
export const warn = (name, ...args) => {
|
|
17
|
+
console.warn(`%c @decky/ui %c ${name} %c`, bgStyle1, 'background: #ffbb00; color: black;', 'color: blue;', ...args);
|
|
18
|
+
};
|
|
19
|
+
export const error = (name, ...args) => {
|
|
20
|
+
console.error(`%c @decky/ui %c ${name} %c`, bgStyle1, 'background: #FF0000;', 'background: transparent;', ...args);
|
|
21
|
+
};
|
|
22
|
+
class Logger {
|
|
23
|
+
constructor(name) {
|
|
24
|
+
this.name = name;
|
|
25
|
+
this.name = name;
|
|
26
|
+
}
|
|
27
|
+
log(...args) {
|
|
28
|
+
log(this.name, ...args);
|
|
29
|
+
}
|
|
30
|
+
debug(...args) {
|
|
31
|
+
debug(this.name, ...args);
|
|
32
|
+
}
|
|
33
|
+
warn(...args) {
|
|
34
|
+
warn(this.name, ...args);
|
|
35
|
+
}
|
|
36
|
+
error(...args) {
|
|
37
|
+
error(this.name, ...args);
|
|
38
|
+
}
|
|
39
|
+
group(...args) {
|
|
40
|
+
group(this.name, ...args);
|
|
41
|
+
}
|
|
42
|
+
groupEnd(...args) {
|
|
43
|
+
groupEnd(this.name, ...args);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export default Logger;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
export declare enum SideMenu {
|
|
2
|
+
None = 0,
|
|
3
|
+
Main = 1,
|
|
4
|
+
QuickAccess = 2
|
|
5
|
+
}
|
|
6
|
+
export declare enum QuickAccessTab {
|
|
7
|
+
Notifications = 0,
|
|
8
|
+
RemotePlayTogetherControls = 1,
|
|
9
|
+
VoiceChat = 2,
|
|
10
|
+
Friends = 3,
|
|
11
|
+
Settings = 4,
|
|
12
|
+
Perf = 5,
|
|
13
|
+
Help = 6,
|
|
14
|
+
Music = 7,
|
|
15
|
+
Decky = 999
|
|
16
|
+
}
|
|
17
|
+
export declare enum DisplayStatus {
|
|
18
|
+
Invalid = 0,
|
|
19
|
+
Launching = 1,
|
|
20
|
+
Uninstalling = 2,
|
|
21
|
+
Installing = 3,
|
|
22
|
+
Running = 4,
|
|
23
|
+
Validating = 5,
|
|
24
|
+
Updating = 6,
|
|
25
|
+
Downloading = 7,
|
|
26
|
+
Synchronizing = 8,
|
|
27
|
+
ReadyToInstall = 9,
|
|
28
|
+
ReadyToPreload = 10,
|
|
29
|
+
ReadyToLaunch = 11,
|
|
30
|
+
RegionRestricted = 12,
|
|
31
|
+
PresaleOnly = 13,
|
|
32
|
+
InvalidPlatform = 14,
|
|
33
|
+
PreloadComplete = 16,
|
|
34
|
+
BorrowerLocked = 17,
|
|
35
|
+
UpdatePaused = 18,
|
|
36
|
+
UpdateQueued = 19,
|
|
37
|
+
UpdateRequired = 20,
|
|
38
|
+
UpdateDisabled = 21,
|
|
39
|
+
DownloadPaused = 22,
|
|
40
|
+
DownloadQueued = 23,
|
|
41
|
+
DownloadRequired = 24,
|
|
42
|
+
DownloadDisabled = 25,
|
|
43
|
+
LicensePending = 26,
|
|
44
|
+
LicenseExpired = 27,
|
|
45
|
+
AvailForFree = 28,
|
|
46
|
+
AvailToBorrow = 29,
|
|
47
|
+
AvailGuestPass = 30,
|
|
48
|
+
Purchase = 31,
|
|
49
|
+
Unavailable = 32,
|
|
50
|
+
NotLaunchable = 33,
|
|
51
|
+
CloudError = 34,
|
|
52
|
+
CloudOutOfDate = 35,
|
|
53
|
+
Terminating = 36
|
|
54
|
+
}
|
|
55
|
+
export type AppOverview = {
|
|
56
|
+
appid: string;
|
|
57
|
+
display_name: string;
|
|
58
|
+
display_status: DisplayStatus;
|
|
59
|
+
sort_as: string;
|
|
60
|
+
};
|
|
61
|
+
export interface MenuStore {
|
|
62
|
+
OpenSideMenu(sideMenu: SideMenu): void;
|
|
63
|
+
OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
|
|
64
|
+
OpenMainMenu(): void;
|
|
65
|
+
}
|
|
66
|
+
export interface WindowRouter {
|
|
67
|
+
BrowserWindow: Window;
|
|
68
|
+
MenuStore: MenuStore;
|
|
69
|
+
Navigate(path: string): void;
|
|
70
|
+
NavigateToChat(): void;
|
|
71
|
+
NavigateToSteamWeb(url: string): void;
|
|
72
|
+
NavigateBack(): void;
|
|
73
|
+
}
|
|
74
|
+
export interface WindowStore {
|
|
75
|
+
GamepadUIMainWindowInstance?: WindowRouter;
|
|
76
|
+
SteamUIWindows: WindowRouter[];
|
|
77
|
+
OverlayWindows: WindowRouter[];
|
|
78
|
+
}
|
|
79
|
+
export interface Router {
|
|
80
|
+
WindowStore?: WindowStore;
|
|
81
|
+
CloseSideMenus(): void;
|
|
82
|
+
Navigate(path: string): void;
|
|
83
|
+
NavigateToAppProperties(): void;
|
|
84
|
+
NavigateToExternalWeb(url: string): void;
|
|
85
|
+
NavigateToInvites(): void;
|
|
86
|
+
NavigateToChat(): void;
|
|
87
|
+
NavigateToLibraryTab(): void;
|
|
88
|
+
NavigateToLayoutPreview(e: unknown): void;
|
|
89
|
+
OpenPowerMenu(unknown?: any): void;
|
|
90
|
+
get RunningApps(): AppOverview[];
|
|
91
|
+
get MainRunningApp(): AppOverview | undefined;
|
|
92
|
+
}
|
|
93
|
+
export declare const Router: Router;
|
|
94
|
+
export interface Navigation {
|
|
95
|
+
Navigate(path: string): void;
|
|
96
|
+
NavigateBack(): void;
|
|
97
|
+
NavigateToAppProperties(): void;
|
|
98
|
+
NavigateToExternalWeb(url: string): void;
|
|
99
|
+
NavigateToInvites(): void;
|
|
100
|
+
NavigateToChat(): void;
|
|
101
|
+
NavigateToLibraryTab(): void;
|
|
102
|
+
NavigateToLayoutPreview(e: unknown): void;
|
|
103
|
+
NavigateToSteamWeb(url: string): void;
|
|
104
|
+
OpenSideMenu(sideMenu: SideMenu): void;
|
|
105
|
+
OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
|
|
106
|
+
OpenMainMenu(): void;
|
|
107
|
+
OpenPowerMenu(unknown?: any): void;
|
|
108
|
+
CloseSideMenus(): void;
|
|
109
|
+
}
|
|
110
|
+
export declare let Navigation: Navigation;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { sleep } from '../utils';
|
|
2
|
+
import { findModuleExport } from '../webpack';
|
|
3
|
+
export var SideMenu;
|
|
4
|
+
(function (SideMenu) {
|
|
5
|
+
SideMenu[SideMenu["None"] = 0] = "None";
|
|
6
|
+
SideMenu[SideMenu["Main"] = 1] = "Main";
|
|
7
|
+
SideMenu[SideMenu["QuickAccess"] = 2] = "QuickAccess";
|
|
8
|
+
})(SideMenu || (SideMenu = {}));
|
|
9
|
+
export var QuickAccessTab;
|
|
10
|
+
(function (QuickAccessTab) {
|
|
11
|
+
QuickAccessTab[QuickAccessTab["Notifications"] = 0] = "Notifications";
|
|
12
|
+
QuickAccessTab[QuickAccessTab["RemotePlayTogetherControls"] = 1] = "RemotePlayTogetherControls";
|
|
13
|
+
QuickAccessTab[QuickAccessTab["VoiceChat"] = 2] = "VoiceChat";
|
|
14
|
+
QuickAccessTab[QuickAccessTab["Friends"] = 3] = "Friends";
|
|
15
|
+
QuickAccessTab[QuickAccessTab["Settings"] = 4] = "Settings";
|
|
16
|
+
QuickAccessTab[QuickAccessTab["Perf"] = 5] = "Perf";
|
|
17
|
+
QuickAccessTab[QuickAccessTab["Help"] = 6] = "Help";
|
|
18
|
+
QuickAccessTab[QuickAccessTab["Music"] = 7] = "Music";
|
|
19
|
+
QuickAccessTab[QuickAccessTab["Decky"] = 999] = "Decky";
|
|
20
|
+
})(QuickAccessTab || (QuickAccessTab = {}));
|
|
21
|
+
export var DisplayStatus;
|
|
22
|
+
(function (DisplayStatus) {
|
|
23
|
+
DisplayStatus[DisplayStatus["Invalid"] = 0] = "Invalid";
|
|
24
|
+
DisplayStatus[DisplayStatus["Launching"] = 1] = "Launching";
|
|
25
|
+
DisplayStatus[DisplayStatus["Uninstalling"] = 2] = "Uninstalling";
|
|
26
|
+
DisplayStatus[DisplayStatus["Installing"] = 3] = "Installing";
|
|
27
|
+
DisplayStatus[DisplayStatus["Running"] = 4] = "Running";
|
|
28
|
+
DisplayStatus[DisplayStatus["Validating"] = 5] = "Validating";
|
|
29
|
+
DisplayStatus[DisplayStatus["Updating"] = 6] = "Updating";
|
|
30
|
+
DisplayStatus[DisplayStatus["Downloading"] = 7] = "Downloading";
|
|
31
|
+
DisplayStatus[DisplayStatus["Synchronizing"] = 8] = "Synchronizing";
|
|
32
|
+
DisplayStatus[DisplayStatus["ReadyToInstall"] = 9] = "ReadyToInstall";
|
|
33
|
+
DisplayStatus[DisplayStatus["ReadyToPreload"] = 10] = "ReadyToPreload";
|
|
34
|
+
DisplayStatus[DisplayStatus["ReadyToLaunch"] = 11] = "ReadyToLaunch";
|
|
35
|
+
DisplayStatus[DisplayStatus["RegionRestricted"] = 12] = "RegionRestricted";
|
|
36
|
+
DisplayStatus[DisplayStatus["PresaleOnly"] = 13] = "PresaleOnly";
|
|
37
|
+
DisplayStatus[DisplayStatus["InvalidPlatform"] = 14] = "InvalidPlatform";
|
|
38
|
+
DisplayStatus[DisplayStatus["PreloadComplete"] = 16] = "PreloadComplete";
|
|
39
|
+
DisplayStatus[DisplayStatus["BorrowerLocked"] = 17] = "BorrowerLocked";
|
|
40
|
+
DisplayStatus[DisplayStatus["UpdatePaused"] = 18] = "UpdatePaused";
|
|
41
|
+
DisplayStatus[DisplayStatus["UpdateQueued"] = 19] = "UpdateQueued";
|
|
42
|
+
DisplayStatus[DisplayStatus["UpdateRequired"] = 20] = "UpdateRequired";
|
|
43
|
+
DisplayStatus[DisplayStatus["UpdateDisabled"] = 21] = "UpdateDisabled";
|
|
44
|
+
DisplayStatus[DisplayStatus["DownloadPaused"] = 22] = "DownloadPaused";
|
|
45
|
+
DisplayStatus[DisplayStatus["DownloadQueued"] = 23] = "DownloadQueued";
|
|
46
|
+
DisplayStatus[DisplayStatus["DownloadRequired"] = 24] = "DownloadRequired";
|
|
47
|
+
DisplayStatus[DisplayStatus["DownloadDisabled"] = 25] = "DownloadDisabled";
|
|
48
|
+
DisplayStatus[DisplayStatus["LicensePending"] = 26] = "LicensePending";
|
|
49
|
+
DisplayStatus[DisplayStatus["LicenseExpired"] = 27] = "LicenseExpired";
|
|
50
|
+
DisplayStatus[DisplayStatus["AvailForFree"] = 28] = "AvailForFree";
|
|
51
|
+
DisplayStatus[DisplayStatus["AvailToBorrow"] = 29] = "AvailToBorrow";
|
|
52
|
+
DisplayStatus[DisplayStatus["AvailGuestPass"] = 30] = "AvailGuestPass";
|
|
53
|
+
DisplayStatus[DisplayStatus["Purchase"] = 31] = "Purchase";
|
|
54
|
+
DisplayStatus[DisplayStatus["Unavailable"] = 32] = "Unavailable";
|
|
55
|
+
DisplayStatus[DisplayStatus["NotLaunchable"] = 33] = "NotLaunchable";
|
|
56
|
+
DisplayStatus[DisplayStatus["CloudError"] = 34] = "CloudError";
|
|
57
|
+
DisplayStatus[DisplayStatus["CloudOutOfDate"] = 35] = "CloudOutOfDate";
|
|
58
|
+
DisplayStatus[DisplayStatus["Terminating"] = 36] = "Terminating";
|
|
59
|
+
})(DisplayStatus || (DisplayStatus = {}));
|
|
60
|
+
export const Router = findModuleExport((e) => e.Navigate && e.NavigationManager);
|
|
61
|
+
export let Navigation = {};
|
|
62
|
+
try {
|
|
63
|
+
(async () => {
|
|
64
|
+
let InternalNavigators = {};
|
|
65
|
+
if (!Router.NavigateToAppProperties || Router.deckyShim) {
|
|
66
|
+
function initInternalNavigators() {
|
|
67
|
+
try {
|
|
68
|
+
InternalNavigators = findModuleExport((e) => e.GetNavigator && e.SetNavigator)?.GetNavigator();
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
console.error('[DFL:Router]: Failed to init internal navigators, trying again');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
initInternalNavigators();
|
|
75
|
+
while (!InternalNavigators?.AppProperties) {
|
|
76
|
+
console.log('[DFL:Router]: Trying to init internal navigators again');
|
|
77
|
+
await sleep(2000);
|
|
78
|
+
initInternalNavigators();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const newNavigation = {
|
|
82
|
+
Navigate: Router.Navigate?.bind(Router),
|
|
83
|
+
NavigateBack: Router.WindowStore?.GamepadUIMainWindowInstance?.NavigateBack?.bind(Router.WindowStore.GamepadUIMainWindowInstance),
|
|
84
|
+
NavigateToAppProperties: InternalNavigators?.AppProperties || Router.NavigateToAppProperties?.bind(Router),
|
|
85
|
+
NavigateToExternalWeb: InternalNavigators?.ExternalWeb || Router.NavigateToExternalWeb?.bind(Router),
|
|
86
|
+
NavigateToInvites: InternalNavigators?.Invites || Router.NavigateToInvites?.bind(Router),
|
|
87
|
+
NavigateToChat: InternalNavigators?.Chat || Router.NavigateToChat?.bind(Router),
|
|
88
|
+
NavigateToLibraryTab: InternalNavigators?.LibraryTab || Router.NavigateToLibraryTab?.bind(Router),
|
|
89
|
+
NavigateToLayoutPreview: Router.NavigateToLayoutPreview?.bind(Router),
|
|
90
|
+
NavigateToSteamWeb: Router.WindowStore?.GamepadUIMainWindowInstance?.NavigateToSteamWeb?.bind(Router.WindowStore.GamepadUIMainWindowInstance),
|
|
91
|
+
OpenSideMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenSideMenu?.bind(Router.WindowStore.GamepadUIMainWindowInstance.MenuStore),
|
|
92
|
+
OpenQuickAccessMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenQuickAccessMenu?.bind(Router.WindowStore.GamepadUIMainWindowInstance.MenuStore),
|
|
93
|
+
OpenMainMenu: Router.WindowStore?.GamepadUIMainWindowInstance?.MenuStore.OpenMainMenu?.bind(Router.WindowStore.GamepadUIMainWindowInstance.MenuStore),
|
|
94
|
+
CloseSideMenus: Router.CloseSideMenus?.bind(Router),
|
|
95
|
+
OpenPowerMenu: Router.OpenPowerMenu?.bind(Router),
|
|
96
|
+
};
|
|
97
|
+
Object.assign(Navigation, newNavigation);
|
|
98
|
+
})();
|
|
99
|
+
}
|
|
100
|
+
catch (e) {
|
|
101
|
+
console.error('[DFL:Router]: Error initializing Navigation interface', e);
|
|
102
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Router';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Router';
|