From 627c58561e819a8a44452eca0a373c21eeabe553 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 5 Sep 2024 13:53:45 +0200
Subject: [PATCH] OZG-6108 Fix story and add styling

---
 .../lib/navbar/nav-item/nav-item.component.ts |  9 ++++++---
 .../src/lib/navbar/navbar/navbar.component.ts |  6 ++++--
 .../src/lib/navbar/navbar/navbar.stories.ts   | 20 +++++++++++++++----
 .../lib/tailwind-preset/tailwind.config.js    |  4 ++++
 4 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.ts b/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.ts
index 9982ffb79a..d0500aeedb 100644
--- a/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.ts
+++ b/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.ts
@@ -1,17 +1,20 @@
 import { CommonModule } from '@angular/common';
 import { Component, Input } from '@angular/core';
+import { RouterModule } from '@angular/router';
 
 @Component({
   selector: 'ods-nav-item',
   standalone: true,
-  imports: [CommonModule],
+  imports: [CommonModule, RouterModule],
   template: `<a
     [routerLink]="to"
+    routerLinkActive="bg-selected-light border-selected"
     [ngClass]="[
       'flex min-h-8 items-center gap-2 rounded-2xl px-4 py-2',
-      'border-2 border-transparent hover:border-primary',
-      'outline-2 outline-offset-2 focus-visible:outline-focus',
+      'border border-transparent hover:border-primary',
+      'outline-2 outline-offset-4 outline-focus focus-visible:border-background-200',
     ]"
+    role="menuitem"
   >
     <ng-content select="[icon]" />
     <p class="text-left text-sm text-text">{{ caption }}</p>
diff --git a/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.component.ts b/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.component.ts
index 73614a5b1d..434dfd07e0 100644
--- a/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.component.ts
+++ b/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.component.ts
@@ -5,8 +5,10 @@ import { Component } from '@angular/core';
   selector: 'ods-navbar',
   standalone: true,
   imports: [CommonModule],
-  template: `<nav class="flex h-full w-72 flex-col gap-1 bg-ozggray p-4">
-    <ng-content />
+  template: `<nav class="h-full w-72 bg-ozggray p-4">
+    <div class="flex flex-col gap-2" role="menubar">
+      <ng-content />
+    </div>
   </nav>`,
 })
 export class NavbarComponent {}
diff --git a/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.stories.ts b/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.stories.ts
index 58e3326529..75c8278d68 100644
--- a/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.stories.ts
+++ b/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.stories.ts
@@ -1,4 +1,7 @@
-import { moduleMetadata, type Meta, type StoryObj } from '@storybook/angular';
+import { APP_BASE_HREF } from '@angular/common';
+import { importProvidersFrom } from '@angular/core';
+import { RouterModule } from '@angular/router';
+import { applicationConfig, moduleMetadata, type Meta, type StoryObj } from '@storybook/angular';
 import { OfficeIconComponent } from '../../icons/office-icon/office-icon.component';
 import { NavItemComponent } from '../nav-item/nav-item.component';
 import { NavbarComponent } from './navbar.component';
@@ -9,8 +12,17 @@ const meta: Meta<NavbarComponent> = {
   excludeStories: /.*Data$/,
   tags: ['autodocs'],
   decorators: [
+    applicationConfig({
+      providers: [importProvidersFrom(RouterModule.forRoot([]))],
+    }),
     moduleMetadata({
       imports: [NavItemComponent, OfficeIconComponent],
+      providers: [
+        {
+          provide: APP_BASE_HREF,
+          useValue: '/',
+        },
+      ],
     }),
   ],
 };
@@ -22,9 +34,9 @@ export const Default: Story = {
   args: {},
   render: () => ({
     template: `<ods-navbar>
-      <ods-nav-item caption="First link"><ods-office-icon icon /></ods-nav-item>
-      <ods-nav-item caption="Second link"><ods-office-icon icon /></ods-nav-item>
-      <ods-nav-item caption="Third link"><ods-office-icon icon /></ods-nav-item>
+      <ods-nav-item caption="First link" to="/"><ods-office-icon icon /></ods-nav-item>
+      <ods-nav-item caption="Second link" to="/second"><ods-office-icon icon /></ods-nav-item>
+      <ods-nav-item caption="Third link" to="/third"><ods-office-icon icon /></ods-nav-item>
     </ods-navbar>`,
   }),
 };
diff --git a/alfa-client/libs/design-system/src/lib/tailwind-preset/tailwind.config.js b/alfa-client/libs/design-system/src/lib/tailwind-preset/tailwind.config.js
index f998ef8197..cb8ed07e1d 100644
--- a/alfa-client/libs/design-system/src/lib/tailwind-preset/tailwind.config.js
+++ b/alfa-client/libs/design-system/src/lib/tailwind-preset/tailwind.config.js
@@ -94,6 +94,10 @@ module.exports = {
           700: 'hsl(var(--color-abgelehnt-500) / <alpha-value>)',
           DEFAULT: 'hsl(var(--color-abgelehnt-500) / <alpha-value>)',
         },
+        selected: {
+          light: 'hsl(212, 58%, 94%)',
+          DEFAULT: 'hsl(216, 85%, 34%)',
+        },
         pdf: {
           DEFAULT: 'hsl(var(--color-pdf) / <alpha-value>)',
         },
-- 
GitLab