scriptable-testlab
Version:
A lightweight, efficient tool designed to manage and update scripts for Scriptable.
91 lines (88 loc) • 2.77 kB
text/typescript
import { AbsWidgetStack } from 'scriptable-abstract';
/**
* Represents the state of a widget stack.
*/
interface WidgetStackMockState {
readonly alignment: 'leading' | 'center' | 'trailing';
readonly spacing: number;
readonly size: Readonly<{
width: number;
height: number;
}>;
readonly backgroundColor: Color;
readonly backgroundImage: Image;
readonly backgroundGradient: LinearGradient;
readonly cornerRadius: number;
readonly borderWidth: number;
readonly borderColor: Color;
readonly url: string;
readonly padding: Readonly<{
top: number;
leading: number;
bottom: number;
trailing: number;
}>;
readonly items: ReadonlyArray<WidgetItem>;
readonly layout: 'horizontal' | 'vertical';
}
/**
* Represents any item that can be added to a widget stack.
*/
type WidgetItem = WidgetText | WidgetDate | WidgetImage | WidgetSpacer | WidgetStack;
/**
* Mock implementation of Scriptable's WidgetStack.
* Provides a container for organizing widget elements in a vertical or horizontal layout.
*/
declare class MockWidgetStack extends AbsWidgetStack<WidgetStackMockState> {
constructor();
/**
* Creates a new widget stack instance.
*/
static create(): WidgetStack;
get alignment(): 'leading' | 'center' | 'trailing';
set alignment(value: 'leading' | 'center' | 'trailing');
get spacing(): number;
set spacing(value: number);
get size(): {
width: number;
height: number;
};
set size(value: {
width: number;
height: number;
});
get backgroundColor(): Color;
set backgroundColor(value: Color);
get backgroundImage(): Image;
set backgroundImage(value: Image);
get backgroundGradient(): LinearGradient;
set backgroundGradient(value: LinearGradient);
get cornerRadius(): number;
set cornerRadius(value: number);
get borderWidth(): number;
set borderWidth(value: number);
get borderColor(): Color;
set borderColor(value: Color);
get url(): string;
set url(value: string);
addText(text: string): WidgetText;
addDate(date: Date): WidgetDate;
addImage(image: Image): WidgetImage;
addSpacer(length?: number): WidgetSpacer;
addStack(): WidgetStack;
setPadding(top: number, leading: number, bottom: number, trailing: number): void;
getPadding(): {
top: number;
leading: number;
bottom: number;
trailing: number;
};
getItems(): ReadonlyArray<WidgetItem>;
useDefaultPadding(): void;
topAlignContent(): void;
centerAlignContent(): void;
bottomAlignContent(): void;
layoutHorizontally(): void;
layoutVertically(): void;
}
export { MockWidgetStack };