Compare commits

...

6 Commits

Author SHA1 Message Date
semantic-release-bot
b882612dfa chore(release): 3.10.0 [CI SKIP] 2022-11-18 17:37:50 +00:00
Lukas Senionis
32291620b4 feat(classes): add appDetailsHeaderClasses (#54) 2022-11-18 12:37:16 -05:00
semantic-release-bot
9b368c5f11 chore(release): 3.9.0 [CI SKIP] 2022-11-16 20:45:13 +00:00
Lukas Senionis
e167ef5a13 feat(Dialog): add "focusable" button prop (#51) 2022-11-16 15:44:36 -05:00
semantic-release-bot
2f3df00967 chore(release): 3.8.0 [CI SKIP] 2022-11-11 21:05:54 +00:00
AAGaming
215156d316 feat(routerhook): add global components support 2022-11-11 16:05:05 -05:00
5 changed files with 111 additions and 2 deletions

View File

@@ -1,3 +1,24 @@
# [3.10.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.9.0...v3.10.0) (2022-11-18)
### Features
* **classes:** add appDetailsHeaderClasses ([#54](https://github.com/SteamDeckHomebrew/decky-frontend-lib/issues/54)) ([3229162](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/32291620b403f8b65cf378343454a3f2668fb6ee))
# [3.9.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.8.0...v3.9.0) (2022-11-16)
### Features
* **Dialog:** add "focusable" button prop ([#51](https://github.com/SteamDeckHomebrew/decky-frontend-lib/issues/51)) ([e167ef5](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/e167ef5a138a3edc004db2365334f8455c177132))
# [3.8.0](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.7.14...v3.8.0) (2022-11-11)
### Features
* **routerhook:** add global components support ([215156d](https://github.com/SteamDeckHomebrew/decky-frontend-lib/commit/215156d31688faac9028627379e5a3ac4d64ec46))
## [3.7.14](https://github.com/SteamDeckHomebrew/decky-frontend-lib/compare/v3.7.13...v3.7.14) (2022-11-05)

View File

@@ -1,6 +1,6 @@
{
"name": "decky-frontend-lib",
"version": "3.7.14",
"version": "3.10.0",
"description": "A library for building decky plugins",
"main": "dist/index.js",
"types": "dist/index.d.ts",

View File

@@ -9,8 +9,35 @@ export interface DialogCommonProps extends RefAttributes<HTMLDivElement> {
}
export interface DialogButtonProps extends DialogCommonProps, FooterLegendProps {
/**
* Enables/disables the focus around the button.
*
* @note
* Default value depends on context, so setting it to `false` will enable it.
*/
noFocusRing?: boolean;
/**
* Disables the button - assigned `on*` methods will not be invoked if clicked.
*
* @note
* Depending on where it is, it might still get focus. In such case it can be
* partially disabled separately.
*
* @see focusable.
*/
disabled?: boolean;
/**
* Enables/disables the navigation based focus on button - you won't be able to navigate to
* it via the gamepad or keyboard.
*
* @note
* If set to `false`, it still can be clicked and **WILL** become focused until navigated away.
* Depending on the context of where the button is, even a disabled button can focused.
*/
focusable?: boolean;
onClick?(e: MouseEvent): void;
onPointerDown?(e: PointerEvent): void;
onPointerUp?(e: PointerEvent): void;

View File

@@ -349,6 +349,62 @@ type GamepadSliderClasses = Record<
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
>;
export const quickAccessMenuClasses: QuickAccessMenuClasses = findModule(
(mod) => typeof mod === 'object' && mod?.Title?.includes('quickaccessmenu'),
);
@@ -378,3 +434,6 @@ export const playSectionClasses: PlaySectionClasses = findModule(
export const gamepadSliderClasses: GamepadSliderClasses = findModule(
(mod) => typeof mod === 'object' && mod?.SliderControlPanelGroup?.includes('gamepadslider'),
);
export const appDetailsHeaderClasses: AppDetailsHeaderClasses = findModule(
(mod) => typeof mod === 'object' && mod?.TopCapsule?.includes('sharedappdetailsheader'),
);

View File

@@ -26,8 +26,10 @@ export type RoutePatch = (route: RouteProps) => RouteProps;
export interface RouterHook {
addRoute(path: string, component: ComponentType, props?: Omit<RouteProps, 'path' | 'children'>): void;
addPatch(path: string, patch: RoutePatch): RoutePatch;
removePatch(path: string, patch: RoutePatch): void;
addGlobalComponent(name: string, component: ComponentType): void;
removeRoute(path: string): void;
removePatch(path: string, patch: RoutePatch): void;
removeGlobalComponent(name: string): void;
}
export interface ToastData {