ranui
Version:
A framework-agnostic Web Components UI library built on native custom elements, with TypeScript types, light/dark theming, SSR and PWA support.
20 lines (19 loc) • 770 B
TypeScript
export interface Signal<T> {
getter: () => T;
setter: (newValue: T | ((prev: T) => T)) => void;
}
/**
* Signals for the handful of visual concerns that were previously written from
* multiple call sites each (play/pause button class, progress/time/buffered
* display, volume icon+slider). One write site (the media/interaction
* handlers) + one read site (`core/effects.ts`) replaces the scattered
* `style.setProperty`/`.innerText` calls that used to live in every handler.
*/
export interface PlayerVisualSignals {
isPlaying: Signal<boolean>;
currentTime: Signal<number>;
duration: Signal<number>;
bufferedPercentage: Signal<number>;
volume: Signal<number>;
}
export declare function createPlayerVisualSignals(): PlayerVisualSignals;