diff --git a/libs/components/src/index.ts b/libs/components/src/index.ts index 6881d801e0f..b63c09a84d5 100644 --- a/libs/components/src/index.ts +++ b/libs/components/src/index.ts @@ -30,6 +30,7 @@ export * from "./radio-button"; export * from "./search"; export * from "./section"; export * from "./select"; +export * from "./shared/bit-settings.service"; export * from "./table"; export * from "./tabs"; export * from "./toast"; diff --git a/libs/components/src/shared/bit-settings.service.ts b/libs/components/src/shared/bit-settings.service.ts new file mode 100644 index 00000000000..c02c137bc35 --- /dev/null +++ b/libs/components/src/shared/bit-settings.service.ts @@ -0,0 +1,15 @@ +import { effect, Injectable, signal, WritableSignal } from "@angular/core"; + +/** Global settings for the Bitwarden Design System */ +@Injectable({ providedIn: "root" }) +export class BitSettingsService { + compactMode: WritableSignal = signal(false); + + constructor() { + effect(() => { + this.compactMode() + ? document.body.classList.add("tw-bit-compact") + : document.body.classList.remove("tw-bit-compact"); + }); + } +}