diff --git a/alfa-client/libs/design-component/src/index.ts b/alfa-client/libs/design-component/src/index.ts
index bca590ff4ddaf77cdc1803ca1d79c9ca43a94017..600bb7d1db3cc98d375a11d0ebf6b2e7660e62db 100644
--- a/alfa-client/libs/design-component/src/index.ts
+++ b/alfa-client/libs/design-component/src/index.ts
@@ -1,5 +1,6 @@
 export * from './lib/button-with-spinner/button-with-spinner.component';
 export * from './lib/download-button/download-button.component';
+export * from './lib/form/button-toggle-group/button-toggle-group.component';
 export * from './lib/form/checkbox-editor/checkbox-editor.component';
 export * from './lib/form/file-upload-editor/file-upload-editor.component';
 export * from './lib/form/formcontrol-editor.abstract.component';
diff --git a/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.spec.ts b/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b9d4f78a6ddcdbcf6d32b39599f02e9961dbe097
--- /dev/null
+++ b/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.spec.ts
@@ -0,0 +1,21 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ButtonToggleGroupComponent } from './button-toggle-group.component';
+
+describe('ButtonToggleGroupComponent', () => {
+  let component: ButtonToggleGroupComponent;
+  let fixture: ComponentFixture<ButtonToggleGroupComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [ButtonToggleGroupComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(ButtonToggleGroupComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.ts b/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..db80fe59224b31b102485235eb20520bb7df80db
--- /dev/null
+++ b/alfa-client/libs/design-component/src/lib/form/button-toggle-group/button-toggle-group.component.ts
@@ -0,0 +1,39 @@
+import { CommonModule } from '@angular/common';
+import { Component, ContentChildren, QueryList } from '@angular/core';
+import { FormControl } from '@angular/forms';
+import { ButtonToggleComponent } from '@ods/system';
+import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component';
+
+@Component({
+  selector: 'ods-button-toggle-group',
+  standalone: true,
+  imports: [CommonModule],
+  template: `<div
+    class="flex divide-x divide-neutral-300 overflow-hidden rounded-full border border-neutral-300 bg-white dark:divide-neutral-600 dark:border-neutral-600 dark:bg-neutral-700"
+    role="group"
+  >
+    <ng-content></ng-content>
+  </div>`,
+})
+export class ButtonToggleGroupComponent extends FormControlEditorAbstractComponent {
+  @ContentChildren(ButtonToggleComponent) buttonToggles!: QueryList<ButtonToggleComponent>;
+
+  ngAfterContentInit(): void {
+    this.buttonToggles.forEach((toggleButton) => {
+      toggleButton.onClick = this.setFormControlValue(toggleButton.value);
+      toggleButton.isSelected = this.isValueSelected();
+    });
+  }
+
+  setFormControlValue(value: string) {
+    const formControl: FormControl = this.fieldControl;
+    return () => {
+      if (formControl.value !== value) formControl.setValue(value);
+    };
+  }
+
+  isValueSelected() {
+    const formControl: FormControl = this.fieldControl;
+    return (value: string) => formControl.value === value;
+  }
+}
diff --git a/alfa-client/libs/design-system/src/index.ts b/alfa-client/libs/design-system/src/index.ts
index 9a450a885bbe052655354f1410a730ad501ea22e..35d2f4891764c4a3d808b6600e01cb16d4d0e46b 100644
--- a/alfa-client/libs/design-system/src/index.ts
+++ b/alfa-client/libs/design-system/src/index.ts
@@ -7,6 +7,7 @@ export * from './lib/button-card/button-card.component';
 export * from './lib/button/button.component';
 export * from './lib/dropdown-menu/dropdown-menu-button/dropdown-menu-button.component';
 export * from './lib/dropdown-menu/dropdown-menu/dropdown-menu.component';
+export * from './lib/form/button-toggle/button-toggle.component';
 export * from './lib/form/checkbox/checkbox.component';
 export * from './lib/form/error-message/error-message.component';
 export * from './lib/form/fieldset/fieldset.component';
@@ -18,6 +19,7 @@ export * from './lib/icons/admin-logo-icon/admin-logo-icon.component';
 export * from './lib/icons/attachment-icon/attachment-icon.component';
 export * from './lib/icons/bescheid-generate-icon/bescheid-generate-icon.component';
 export * from './lib/icons/bescheid-upload-icon/bescheid-upload-icon.component';
+export * from './lib/icons/check-icon/check-icon.component';
 export * from './lib/icons/close-icon/close-icon.component';
 export * from './lib/icons/exclamation-icon/exclamation-icon.component';
 export * from './lib/icons/file-icon/file-icon.component';
diff --git a/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.spec.ts b/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0fe18e0c1e8aba662adb4c833a2b5a7a3614514b
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.spec.ts
@@ -0,0 +1,21 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ButtonToggleComponent } from './button-toggle.component';
+
+describe('ButtonToggleComponent', () => {
+  let component: ButtonToggleComponent;
+  let fixture: ComponentFixture<ButtonToggleComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [ButtonToggleComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(ButtonToggleComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.ts b/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bfca966dc806a17dcc2df94801adc3bd937d6283
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/form/button-toggle/button-toggle.component.ts
@@ -0,0 +1,28 @@
+import { CommonModule } from '@angular/common';
+import { Component, Input } from '@angular/core';
+import { CheckIconComponent } from '../../icons/check-icon/check-icon.component';
+
+@Component({
+  selector: 'ods-button-toggle',
+  standalone: true,
+  imports: [CommonModule, CheckIconComponent],
+  template: `<button
+    class="flex cursor-pointer items-center gap-1 px-3 py-1.5 outline-none hover:bg-neutral-300 focus-visible:bg-neutral-300 dark:hover:bg-neutral-600 dark:focus-visible:bg-neutral-600"
+    [ngClass]="{
+      'bg-neutral-200 font-bold hover:bg-neutral-200 focus-visible:bg-neutral-200 dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:focus-visible:bg-neutral-800':
+        isSelected(value),
+    }"
+    [value]="value"
+    (click)="onClick()"
+  >
+    <ods-check-icon size="small" *ngIf="isSelected(value)" />
+    <p class="text-sm">{{ label }}</p>
+  </button>`,
+})
+export class ButtonToggleComponent {
+  @Input({ required: true }) label!: string;
+  @Input({ required: true }) value!: string;
+  @Input() selected: boolean = false;
+  @Input() onClick: () => void;
+  @Input() isSelected: (value: string) => boolean = () => false;
+}
diff --git a/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.spec.ts b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..05970168c75628b34ca15b071aa01db3bf4d24f6
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.spec.ts
@@ -0,0 +1,21 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { CheckIconComponent } from './check-icon.component';
+
+describe('CheckIconComponent', () => {
+  let component: CheckIconComponent;
+  let fixture: ComponentFixture<CheckIconComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [CheckIconComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(CheckIconComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f2370f2c19e923af43508d89171e86821e79e671
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.component.ts
@@ -0,0 +1,25 @@
+import { CommonModule } from '@angular/common';
+import { Component, Input } from '@angular/core';
+import { twMerge } from 'tailwind-merge';
+import { iconVariants, IconVariants } from '../iconVariants';
+
+@Component({
+  selector: 'ods-check-icon',
+  standalone: true,
+  imports: [CommonModule],
+  template: `<svg
+    viewBox="0 0 24 24"
+    [ngClass]="[twMerge(iconVariants({ size }), 'fill-text', class)]"
+    aria-hidden="true"
+    xmlns="http://www.w3.org/2000/svg"
+  >
+    <path d="M9.55 18L3.85 12.3L5.275 10.875L9.55 15.15L18.725 5.975L20.15 7.4L9.55 18Z" />
+  </svg>`,
+})
+export class CheckIconComponent {
+  @Input() size: IconVariants['size'] = 'medium';
+  @Input() class: string = undefined;
+
+  readonly iconVariants = iconVariants;
+  readonly twMerge = twMerge;
+}
diff --git a/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.stories.ts b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.stories.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ba3854617095d0de7806cd4d9eb327e5ffa1fde2
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/icons/check-icon/check-icon.stories.ts
@@ -0,0 +1,27 @@
+import type { Meta, StoryObj } from '@storybook/angular';
+
+import { CheckIconComponent } from './check-icon.component';
+
+const meta: Meta<CheckIconComponent> = {
+  title: 'Icons/Check icon',
+  component: CheckIconComponent,
+  excludeStories: /.*Data$/,
+  tags: ['autodocs'],
+};
+
+export default meta;
+type Story = StoryObj<CheckIconComponent>;
+
+export const Default: Story = {
+  args: { size: 'medium' },
+  argTypes: {
+    size: {
+      control: 'select',
+      options: ['small', 'medium', 'large', 'extra-large', 'full'],
+      description: 'Size of icon. Property "full" means 100%',
+      table: {
+        defaultValue: { summary: 'medium' },
+      },
+    },
+  },
+};
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.html b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.html
deleted file mode 100644
index 8fd35cdadf9dc2da14a7b26d83425ddc55755fee..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<div class="filter-item-content">
-  <mat-icon [inline]="true">check</mat-icon>
-  <span>{{ label }}</span>
-</div>
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.scss b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.scss
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.spec.ts b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.spec.ts
deleted file mode 100644
index b5d3651aa36aa74601ffcf545b4f9234f58beb7d..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.spec.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MatIcon } from '@angular/material/icon';
-import { VorgangFilterMenuItemComponent } from './vorgang-filter-menu-item.component';
-
-describe('VorgangFilterMenuItemComponent', () => {
-  let component: VorgangFilterMenuItemComponent;
-  let fixture: ComponentFixture<VorgangFilterMenuItemComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      declarations: [VorgangFilterMenuItemComponent],
-      imports: [MatIcon],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(VorgangFilterMenuItemComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.ts b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.ts
deleted file mode 100644
index cd21bb2c5adec22a73f94dd9c552ca3ce9a8fff1..0000000000000000000000000000000000000000
--- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Component, Input } from '@angular/core';
-
-@Component({
-  selector: 'alfa-vorgang-filter-menu-item',
-  templateUrl: './vorgang-filter-menu-item.component.html',
-  styleUrls: ['./vorgang-filter-menu-item.component.scss'],
-})
-export class VorgangFilterMenuItemComponent {
-  @Input() label: string;
-}
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.html b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.html
index 07b48c607fdd9f85ea6b988f67a9e4f69863dd9f..c2730e7f0df93f3e8ac432e993fe296bc5b7836e 100644
--- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.html
+++ b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.html
@@ -23,41 +23,22 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<form
-  [formGroup]="formService.form"
-  *ngIf="multipleFilterAvailable"
-  data-test-id="vorgang-filter-form"
->
-  <mat-button-toggle-group [formControlName]="filterName" multiple="false">
-    <mat-button-toggle
+<form [formGroup]="formService.form" *ngIf="multipleFilterAvailable" data-test-id="vorgang-filter-form">
+  <ods-button-toggle-group [formControlName]="filterName">
+    <ods-button-toggle
       *ngIf="apiRootStateResource.resource | hasLink: apiRootLinkRel.MEINE_VORGAENGE"
-      data-test-id="meine-vorgaenge-filter-toggle-button"
       [value]="formService.FILTER_MEINE_VALUE"
-    >
-      <alfa-vorgang-filter-menu-item
-        label="Meine Vorgänge"
-        data-test-id="meine-vorgaenge-filter-item"
-      ></alfa-vorgang-filter-menu-item>
-    </mat-button-toggle>
-    <mat-button-toggle
+      label="Meine Vorgänge"
+    ></ods-button-toggle>
+    <ods-button-toggle
       *ngIf="apiRootStateResource.resource | hasLink: apiRootLinkRel.ALLE_VORGAENGE"
-      data-test-id="alle-filter-toggle-button"
       [value]="formService.FILTER_ALLE_VALUE"
-    >
-      <alfa-vorgang-filter-menu-item
-        label="Alle"
-        data-test-id="alle-filter-item"
-      ></alfa-vorgang-filter-menu-item>
-    </mat-button-toggle>
-    <mat-button-toggle
+      label="Alle"
+    ></ods-button-toggle>
+    <ods-button-toggle
       *ngIf="apiRootStateResource.resource | hasLink: apiRootLinkRel.UNASSIGNED"
-      data-test-id="nicht-zugewiesen-filter-toggle-button"
       [value]="formService.FILTER_UNASSIGNED_VALUE"
-    >
-      <alfa-vorgang-filter-menu-item
-        label="Nicht zugewiesen"
-        data-test-id="unassigned-filter-toggle-button"
-      ></alfa-vorgang-filter-menu-item>
-    </mat-button-toggle>
-  </mat-button-toggle-group>
+      label="Nicht zugewiesen"
+    ></ods-button-toggle>
+  </ods-button-toggle-group>
 </form>
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.ts b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.ts
index e76fea332e106b600d005059584e041ebc5e909e..8de2c4a026c6b21b39fc7c164a926fcf04e61842 100644
--- a/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.ts
+++ b/alfa-client/libs/vorgang/src/lib/vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component.ts
@@ -21,9 +21,9 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { Component, Input } from '@angular/core';
 import { ApiRootLinkRel, ApiRootResource } from '@alfa-client/api-root-shared';
 import { StateResource } from '@alfa-client/tech-shared';
+import { Component, Input } from '@angular/core';
 import { hasLink } from '@ngxp/rest';
 import { VorgangFilterFormService } from './vorgang-filter-menu.formservice';
 
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang.module.ts b/alfa-client/libs/vorgang/src/lib/vorgang.module.ts
index 0fea0e60e669a1a394c27127d2573e64a21f8f3c..1192e892db37d2bb339e08c837d5d99b4077e6bf 100644
--- a/alfa-client/libs/vorgang/src/lib/vorgang.module.ts
+++ b/alfa-client/libs/vorgang/src/lib/vorgang.module.ts
@@ -33,6 +33,8 @@ import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
 import { MatButtonToggleModule } from '@angular/material/button-toggle';
 import { RouterModule, Routes } from '@angular/router';
+import { ButtonToggleGroupComponent } from '@ods/component';
+import { ButtonToggleComponent } from '@ods/system';
 import { vorgangFilterViewGuard } from './vorgang-filter-view.guard';
 import { VorgangListContainerComponent } from './vorgang-list-container/vorgang-list-container.component';
 import { EmptyListComponent } from './vorgang-list-container/vorgang-list/empty-list/empty-list.component';
@@ -43,7 +45,6 @@ import { VorgangNextFristButtonComponent } from './vorgang-list-container/vorgan
 import { VorgangListComponent } from './vorgang-list-container/vorgang-list/vorgang-list.component';
 import { VorgangListPageContainerComponent } from './vorgang-list-page-container/vorgang-list-page-container.component';
 import { VorgangFilterMenuContainerComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu-container.component';
-import { VorgangFilterMenuItemComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu-item/vorgang-filter-menu-item.component';
 import { VorgangFilterMenuComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-filter-menu-container/vorgang-filter-menu/vorgang-filter-menu.component';
 import { VorgangListPageComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-list-page.component';
 import { VorgangViewsMenuContainerComponent } from './vorgang-list-page-container/vorgang-list-page/vorgang-views-menu-container/vorgang-views-menu-container.component';
@@ -177,6 +178,8 @@ const routes: Routes = [
     UserProfileModule,
     MatButtonToggleModule,
     HintModule,
+    ButtonToggleComponent,
+    ButtonToggleGroupComponent,
   ],
   declarations: [
     VorgangListComponent,
@@ -192,7 +195,6 @@ const routes: Routes = [
     VorgangSearchViewItemComponent,
     VorgangSearchViewItemContainerComponent,
     VorgangListSearchContainerComponent,
-    VorgangFilterMenuItemComponent,
     VorgangCreatedAtComponent,
     VorgangViewItemContainerComponent,
     VorgangViewItemComponent,
diff --git a/alfa-client/package-lock.json b/alfa-client/package-lock.json
index fb4576d57b6dbe27ab1f8a105c3cc60cdc3ea358..d18af9d2b7c557d020cefafacb7ca25ee264ec03 100644
--- a/alfa-client/package-lock.json
+++ b/alfa-client/package-lock.json
@@ -1217,6 +1217,32 @@
         "semver": "bin/semver.js"
       }
     },
+    "node_modules/@angular/compiler-cli/node_modules/chokidar": {
+      "version": "4.0.1",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-4.0.1.tgz",
+      "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
+      "dependencies": {
+        "readdirp": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 14.16.0"
+      },
+      "funding": {
+        "url": "https://paulmillr.com/funding/"
+      }
+    },
+    "node_modules/@angular/compiler-cli/node_modules/readdirp": {
+      "version": "4.0.2",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-4.0.2.tgz",
+      "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
+      "engines": {
+        "node": ">= 14.16.0"
+      },
+      "funding": {
+        "type": "individual",
+        "url": "https://paulmillr.com/funding/"
+      }
+    },
     "node_modules/@angular/core": {
       "version": "18.2.8",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@angular/core/-/core-18.2.8.tgz",
@@ -5765,85 +5791,6 @@
         "y18n": "^4.0.0"
       }
     },
-    "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar/node_modules/braces": {
-      "version": "3.0.3",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/braces/-/braces-3.0.3.tgz",
-      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "dependencies": {
-        "fill-range": "^7.1.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar/node_modules/fill-range": {
-      "version": "7.1.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/fill-range/-/fill-range-7.1.1.tgz",
-      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "dependencies": {
-        "to-regex-range": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar/node_modules/is-number": {
-      "version": "7.0.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "engines": {
-        "node": ">=0.12.0"
-      }
-    },
-    "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chokidar/node_modules/to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/to-regex-range/-/to-regex-range-5.0.1.tgz",
-      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "dependencies": {
-        "is-number": "^7.0.0"
-      },
-      "engines": {
-        "node": ">=8.0"
-      }
-    },
     "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/chownr": {
       "version": "1.1.4",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chownr/-/chownr-1.1.4.tgz",
@@ -5924,20 +5871,6 @@
         "node": ">=6"
       }
     },
-    "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dev": true,
-      "license": "ISC",
-      "optional": true,
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/is-extendable": {
       "version": "0.1.1",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -6134,20 +6067,6 @@
         "node": ">=4"
       }
     },
-    "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
     "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/pify": {
       "version": "4.0.1",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/pify/-/pify-4.0.1.tgz",
@@ -6187,20 +6106,6 @@
         "util-deprecate": "~1.0.1"
       }
     },
-    "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
     "node_modules/@cypress/webpack-batteries-included-preprocessor/node_modules/rimraf": {
       "version": "2.7.1",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/rimraf/-/rimraf-2.7.1.tgz",
@@ -15125,31 +15030,6 @@
         "url": "https://github.com/chalk/chalk?sponsor=1"
       }
     },
-    "node_modules/@storybook/builder-webpack5/node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
     "node_modules/@storybook/builder-webpack5/node_modules/cosmiconfig": {
       "version": "7.1.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
@@ -15281,19 +15161,6 @@
         "node": ">=14.14"
       }
     },
-    "node_modules/@storybook/builder-webpack5/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dev": true,
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/@storybook/builder-webpack5/node_modules/has-flag": {
       "version": "4.0.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/has-flag/-/has-flag-4.0.0.tgz",
@@ -15324,32 +15191,6 @@
         "node": "*"
       }
     },
-    "node_modules/@storybook/builder-webpack5/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/@storybook/builder-webpack5/node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
     "node_modules/@storybook/builder-webpack5/node_modules/supports-color": {
       "version": "7.2.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/supports-color/-/supports-color-7.2.0.tgz",
@@ -19911,18 +19752,37 @@
       }
     },
     "node_modules/chokidar": {
-      "version": "4.0.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-4.0.1.tgz",
-      "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
-      "license": "MIT",
+      "version": "3.6.0",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
+      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
       "dependencies": {
-        "readdirp": "^4.0.1"
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
       },
       "engines": {
-        "node": ">= 14.16.0"
+        "node": ">= 8.10.0"
       },
       "funding": {
         "url": "https://paulmillr.com/funding/"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/chokidar/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
       }
     },
     "node_modules/chownr": {
@@ -24552,30 +24412,6 @@
         "url": "https://github.com/chalk/chalk?sponsor=1"
       }
     },
-    "node_modules/fork-ts-checker-webpack-plugin/node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "license": "MIT",
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
     "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": {
       "version": "7.1.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
@@ -24606,18 +24442,6 @@
         "node": ">=12"
       }
     },
-    "node_modules/fork-ts-checker-webpack-plugin/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": {
       "version": "4.0.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/has-flag/-/has-flag-4.0.0.tgz",
@@ -24645,30 +24469,6 @@
         "node": "*"
       }
     },
-    "node_modules/fork-ts-checker-webpack-plugin/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/fork-ts-checker-webpack-plugin/node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "license": "MIT",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
     "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
       "version": "3.3.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/schema-utils/-/schema-utils-3.3.0.tgz",
@@ -30932,32 +30732,6 @@
       "license": "Python-2.0",
       "peer": true
     },
-    "node_modules/mocha/node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "dev": true,
-      "license": "MIT",
-      "peer": true,
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
     "node_modules/mocha/node_modules/cliui": {
       "version": "7.0.4",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cliui/-/cliui-7.0.4.tgz",
@@ -31007,20 +30781,6 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
-    "node_modules/mocha/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dev": true,
-      "license": "ISC",
-      "peer": true,
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/mocha/node_modules/has-flag": {
       "version": "4.0.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/has-flag/-/has-flag-4.0.0.tgz",
@@ -31060,34 +30820,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/mocha/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true,
-      "license": "MIT",
-      "peer": true,
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/mocha/node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "dev": true,
-      "license": "MIT",
-      "peer": true,
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
     "node_modules/mocha/node_modules/strip-ansi": {
       "version": "6.0.1",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -31896,31 +31628,6 @@
         }
       }
     },
-    "node_modules/ng-packagr/node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "devOptional": true,
-      "license": "MIT",
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
     "node_modules/ng-packagr/node_modules/commander": {
       "version": "12.1.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/commander/-/commander-12.1.0.tgz",
@@ -31938,45 +31645,6 @@
       "devOptional": true,
       "license": "MIT"
     },
-    "node_modules/ng-packagr/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "devOptional": true,
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/ng-packagr/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "devOptional": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/ng-packagr/node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "devOptional": true,
-      "license": "MIT",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
     "node_modules/nice-napi": {
       "version": "1.0.2",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/nice-napi/-/nice-napi-1.0.2.tgz",
@@ -35937,16 +35605,25 @@
       }
     },
     "node_modules/readdirp": {
-      "version": "4.0.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-4.0.2.tgz",
-      "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
-      "license": "MIT",
+      "version": "3.6.0",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
       "engines": {
-        "node": ">= 14.16.0"
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/readdirp/node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "engines": {
+        "node": ">=8.6"
       },
       "funding": {
-        "type": "individual",
-        "url": "https://paulmillr.com/funding/"
+        "url": "https://github.com/sponsors/jonschlinkert"
       }
     },
     "node_modules/recast": {
@@ -36718,66 +36395,6 @@
         }
       }
     },
-    "node_modules/sass/node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "license": "MIT",
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "node_modules/sass/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/sass/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/sass/node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "license": "MIT",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
     "node_modules/sax": {
       "version": "1.4.1",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/sax/-/sax-1.4.1.tgz",
@@ -38694,44 +38311,6 @@
         "node": ">=14.0.0"
       }
     },
-    "node_modules/tailwindcss/node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "devOptional": true,
-      "license": "MIT",
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "devOptional": true,
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/tailwindcss/node_modules/lilconfig": {
       "version": "2.1.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/lilconfig/-/lilconfig-2.1.0.tgz",
@@ -38742,19 +38321,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/tailwindcss/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "devOptional": true,
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
     "node_modules/tailwindcss/node_modules/postcss-import": {
       "version": "15.1.0",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/postcss-import/-/postcss-import-15.1.0.tgz",
@@ -38773,19 +38339,6 @@
         "postcss": "^8.0.0"
       }
     },
-    "node_modules/tailwindcss/node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "devOptional": true,
-      "license": "MIT",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
     "node_modules/tapable": {
       "version": "2.2.1",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/tapable/-/tapable-2.2.1.tgz",
@@ -41663,30 +41216,6 @@
         }
       }
     },
-    "node_modules/webpack-dev-server/node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "license": "MIT",
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "funding": {
-        "url": "https://paulmillr.com/funding/"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
     "node_modules/webpack-dev-server/node_modules/glob": {
       "version": "10.4.5",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob/-/glob-10.4.5.tgz",
@@ -41707,18 +41236,6 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
-    "node_modules/webpack-dev-server/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": {
       "version": "2.0.7",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz",
@@ -41767,30 +41284,6 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
-    "node_modules/webpack-dev-server/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
-    "node_modules/webpack-dev-server/node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "license": "MIT",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
     "node_modules/webpack-dev-server/node_modules/rimraf": {
       "version": "5.0.10",
       "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/rimraf/-/rimraf-5.0.10.tgz",