Skip to content

Commit

Permalink
Merge pull request #6077 from GCTC-NTGC/feature_5940_inline-toggle-co…
Browse files Browse the repository at this point in the history
…mponent

[Feature] Inline Toggle Component
  • Loading branch information
esizer authored Mar 30, 2023
2 parents 025f314 + bbf7583 commit 08902df
Show file tree
Hide file tree
Showing 7 changed files with 549 additions and 3 deletions.
14 changes: 12 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion packages/ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
"dependencies": {
"@gc-digital-talent/graphql": "*",
"@gc-digital-talent/helpers": "*",
"@gc-digital-talent/jest-helpers": "*",
"@gc-digital-talent/i18n": "*",
"@gc-digital-talent/jest-helpers": "*",
"@headlessui/react": "^1.7.13",
"@heroicons/react": "^2.0.16",
"@radix-ui/react-accordion": "^1.1.1",
Expand All @@ -36,8 +36,10 @@
"@radix-ui/react-dropdown-menu": "^2.0.4",
"@radix-ui/react-scroll-area": "^1.0.3",
"@radix-ui/react-separator": "^1.0.2",
"@radix-ui/react-slot": "^1.0.1",
"@radix-ui/react-switch": "^1.0.2",
"@radix-ui/react-tabs": "^1.0.3",
"@radix-ui/react-toggle": "^1.0.2",
"@radix-ui/react-toggle-group": "^1.0.3",
"lodash": "4.17.21",
"react-csv": "2.2.2",
Expand Down
96 changes: 96 additions & 0 deletions packages/ui/src/components/ToggleSection/ToggleSection.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import React from "react";
import type { ComponentStory, ComponentMeta } from "@storybook/react";
import { AcademicCapIcon } from "@heroicons/react/24/solid";

import { action } from "@storybook/addon-actions";
import ToggleSection from "./ToggleSection";
import Button from "../Button";

const Toggle = () => {
const context = ToggleSection.useContext();

return (
<ToggleSection.Trigger>
<Button mode="inline">{context?.open ? "Close" : "Open"} Section</Button>
</ToggleSection.Trigger>
);
};

export default {
component: ToggleSection.Root,
title: "Components/Toggle Section",
} as ComponentMeta<typeof ToggleSection.Root>;

const Template: ComponentStory<typeof ToggleSection.Root> = (args) => (
<ToggleSection.Root
{...args}
onOpenChange={(open) => action("onOpenToggle")(open)}
>
<ToggleSection.Header Icon={AcademicCapIcon} toggle={<Toggle />}>
Toggle Section
</ToggleSection.Header>

<ToggleSection.Content data-h2-text-align="base(center)">
<ToggleSection.InitialContent>
<p>Initial Content Here</p>
<ToggleSection.Open>
<Button mode="inline">Open</Button>
</ToggleSection.Open>
</ToggleSection.InitialContent>

<ToggleSection.OpenContent>
<p>Open Content Here</p>
<ToggleSection.Close>
<Button mode="inline">Close</Button>
</ToggleSection.Close>
</ToggleSection.OpenContent>
</ToggleSection.Content>
</ToggleSection.Root>
);

export const Default = Template.bind({});

const NestedTemplate: ComponentStory<typeof ToggleSection.Root> = (args) => (
<ToggleSection.Root
{...args}
onOpenChange={(open) => action("onOpenToggle")(open)}
>
<ToggleSection.Header Icon={AcademicCapIcon} toggle={<Toggle />}>
Toggle Section
</ToggleSection.Header>

<ToggleSection.Content data-h2-text-align="base(center)">
<ToggleSection.InitialContent>
<p>Initial Content Here</p>
<ToggleSection.Open>
<Button mode="inline">Open Main Content</Button>
</ToggleSection.Open>

<ToggleSection.Root>
<ToggleSection.Trigger>
<Button mode="inline">Toggle Nested Content</Button>
</ToggleSection.Trigger>

<ToggleSection.Content data-h2-text-align="base(center)">
<ToggleSection.InitialContent>
<p>Nested Initial Content Here</p>
</ToggleSection.InitialContent>

<ToggleSection.OpenContent>
<p>Nested Open Content Here</p>
</ToggleSection.OpenContent>
</ToggleSection.Content>
</ToggleSection.Root>
</ToggleSection.InitialContent>

<ToggleSection.OpenContent>
<p>Open Content Here</p>
<ToggleSection.Close>
<Button mode="inline">Close</Button>
</ToggleSection.Close>
</ToggleSection.OpenContent>
</ToggleSection.Content>
</ToggleSection.Root>
);

export const Nested = NestedTemplate.bind({});
Loading

0 comments on commit 08902df

Please sign in to comment.