From 30704805d73287387de9e8c6be5959548b596dc9 Mon Sep 17 00:00:00 2001 From: William Martin Date: Wed, 30 Oct 2024 14:30:36 -0400 Subject: [PATCH] add BitSettingsService --- libs/components/src/index.ts | 1 + .../components/src/shared/bit-settings.service.ts | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 libs/components/src/shared/bit-settings.service.ts 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"); + }); + } +}