Component cleanup

This commit is contained in:
adilallo
2026-04-29 07:20:16 -06:00
parent 252848eba9
commit e6127f1a3f
267 changed files with 2087 additions and 2196 deletions
@@ -0,0 +1,43 @@
import InfoMessageBox from "../../app/components/controls/InfoMessageBox";
export default {
title: "Components/Controls/InfoMessageBox",
component: InfoMessageBox,
parameters: {
layout: "centered",
backgrounds: { default: "dark" },
docs: {
description: {
component:
"Message region with optional exclamation icon and CheckboxGroup items.",
},
},
},
decorators: [
(Story) => (
<div className="bg-black p-8 max-w-md w-full">
<Story />
</div>
),
],
tags: ["autodocs"],
};
const sampleItems = [
{ id: "1", label: "First option" },
{ id: "2", label: "Second option" },
];
export const Default = {
args: {
title: "Before you continue",
items: sampleItems,
},
};
export const SingleItem = {
args: {
title: "Select one",
items: [{ id: "a", label: "Only choice" }],
},
};
@@ -0,0 +1,71 @@
import React from "react";
import HeaderLockup from "../../app/components/type/HeaderLockup";
import InfoMessageBox from "../../app/components/controls/InfoMessageBox";
/**
* Compose pattern used by create-flow “decision approaches” rail: headline lockup
* plus bordered checklist — no standalone wrapper component.
*/
export default {
title: "Components/Controls/Rail header (lockup + info box)",
parameters: {
layout: "centered",
backgrounds: { default: "dark" },
docs: {
description: {
component:
"`HeaderLockup` stacked with `InfoMessageBox` — same chrome as decision-approaches step sidebars.",
},
},
},
decorators: [
(Story) => (
<div className="bg-black p-8 max-w-lg w-full">
<Story />
</div>
),
],
tags: ["autodocs"],
};
const messageItems = [
{ id: "c1", label: "Consensus" },
{ id: "c2", label: "Majority vote" },
];
const compose = (args) => (
<div className="flex w-full min-w-0 flex-col gap-3">
<HeaderLockup
title={args.title}
description={args.description}
size={args.size}
justification={args.justification}
/>
<InfoMessageBox title={args.messageBoxTitle} items={args.messageBoxItems} />
</div>
);
export const Default = {
render: compose,
args: {
title: "How does your group make decisions?",
description:
"Choose the approaches that best match how your community operates.",
messageBoxTitle: "Common approaches",
messageBoxItems: messageItems,
size: "L",
justification: "left",
},
};
export const Medium = {
render: compose,
args: {
title: "Decision-making",
description: "Short description.",
messageBoxTitle: "Pick any",
messageBoxItems: [{ id: "x", label: "Single method" }],
size: "M",
justification: "left",
},
};