import { expect, userEvent, waitFor, within } from "storybook/test"; import type { Meta, StoryObj } from "@storybook/react-vite"; import { BirdRegularIcon } from "alouette-icons/phosphor-icons/Bird"; import { ChartBarRegularIcon } from "alouette-icons/phosphor-icons/ChartBar"; import { GearRegularIcon } from "alouette-icons/phosphor-icons/Gear"; import { HouseRegularIcon } from "alouette-icons/phosphor-icons/House"; import { type ReactNode, useState } from "react"; import { Box } from "../containers/Box"; import { NavBar } from "../navigation/NavBar"; import { NavBarItem } from "../navigation/NavBarItem"; import { Text } from "../primitives/Text"; import { View } from "../primitives/View"; import { Story } from "../story-components/Story"; import { AppHeader } from "./AppHeader"; import { AppHeaderBrand } from "./AppHeaderBrand"; import { AppShell, AppShellMain, AppShellSidebar } from "./AppShell"; import { BrandLogo } from "./BrandLogo"; type ThisStory = StoryObj; export default { title: "alouette/Layout/AppShell", component: AppShell, parameters: { componentSubtitle: "The application shell without its body: scroll container, header, footer and the row the body sits in. A route composes that row with AppShellSidebar and AppShellMain.", docs: { description: { component: `### Composition ~~~tsx // app/_layout.tsx — the shell, rendered once for the whole app } footer={