feat(responsiveManager): add a manager to monitor responsive state and give access to responsive state flags

This commit is contained in:
Ilia Mashkov
2026-02-06 14:20:32 +03:00
parent 352f30a558
commit a26bcbecff
8 changed files with 321 additions and 15 deletions

View File

@@ -15,6 +15,7 @@ export interface Control {
export class TypographyControlManager {
#controls = new SvelteMap<string, Control>();
#sizeMultiplier = $state(1);
constructor(configs: ControlModel[]) {
configs.forEach(({ id, increaseLabel, decreaseLabel, controlLabel, ...config }) => {
@@ -37,7 +38,8 @@ export class TypographyControlManager {
}
get size() {
return this.#controls.get('font_size')?.instance.value;
const size = this.#controls.get('font_size')?.instance.value;
return size === undefined ? undefined : size * this.#sizeMultiplier;
}
get height() {
@@ -47,6 +49,10 @@ export class TypographyControlManager {
get spacing() {
return this.#controls.get('letter_spacing')?.instance.value;
}
set multiplier(value: number) {
this.#sizeMultiplier = value;
}
}
/**