25 lines
680 B
TypeScript
25 lines
680 B
TypeScript
import { register } from 'astal';
|
|
import { Astal, type ConstructProps } from 'astal/gtk4';
|
|
|
|
import astalify, { type AstalifyProps } from '../astalify';
|
|
|
|
|
|
type SliderSignals = Record<`on${string}`, unknown[]> & {
|
|
onClicked: []
|
|
};
|
|
export type SliderProps = ConstructProps<
|
|
SliderClass,
|
|
Astal.Slider.ConstructorProps & AstalifyProps,
|
|
SliderSignals
|
|
>;
|
|
|
|
@register({ GTypeName: 'Slider' })
|
|
export class SliderClass extends astalify(Astal.Slider) {
|
|
constructor({ cssName = 'slider', ...props }: SliderProps = {}) {
|
|
super({ cssName, ...props });
|
|
}
|
|
|
|
getChildren() { return []; }
|
|
}
|
|
|
|
export const Slider = (props?: SliderProps) => new SliderClass(props);
|