From ba793e043e4d8515b1a9ea490ee2c5f92b1fd6c2 Mon Sep 17 00:00:00 2001
From: Armand Philippot <git@armandphilippot.com>
Date: Wed, 27 Sep 2023 15:40:16 +0200
Subject: refactor(components): rewrite Section component

* Make it compliant with ESlint rules
* Remove mandatory heading, it now depends on the consumer
* Change defaults for hasBorder and variant
---
 .../atoms/layout/section/section.stories.tsx       | 85 ++++++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100644 src/components/atoms/layout/section/section.stories.tsx

(limited to 'src/components/atoms/layout/section/section.stories.tsx')

diff --git a/src/components/atoms/layout/section/section.stories.tsx b/src/components/atoms/layout/section/section.stories.tsx
new file mode 100644
index 0000000..0a3388b
--- /dev/null
+++ b/src/components/atoms/layout/section/section.stories.tsx
@@ -0,0 +1,85 @@
+import type { ComponentMeta, ComponentStory } from '@storybook/react';
+import { Heading } from '../../headings';
+import { Section } from './section';
+
+/**
+ * Section - Storybook Meta
+ */
+export default {
+  title: 'Atoms/Layout/Section',
+  component: Section,
+  args: {
+    hasBorder: true,
+    variant: 'light',
+  },
+  argTypes: {
+    children: {
+      description: 'The section content.',
+      type: {
+        name: 'function',
+        required: true,
+      },
+    },
+    hasBorder: {
+      control: {
+        type: 'boolean',
+      },
+      description: 'Add a border at the bottom of the section.',
+      table: {
+        category: 'Styles',
+        defaultValue: { summary: false },
+      },
+      type: {
+        name: 'boolean',
+        required: false,
+      },
+    },
+    variant: {
+      control: {
+        type: 'select',
+      },
+      description: 'The section variant.',
+      options: ['light', 'dark'],
+      table: {
+        category: 'Styles',
+        defaultValue: { summary: 'dark' },
+      },
+      type: {
+        name: 'string',
+        required: false,
+      },
+    },
+  },
+} as ComponentMeta<typeof Section>;
+
+const Template: ComponentStory<typeof Section> = (args) => (
+  <Section {...args} />
+);
+
+/**
+ * Section Stories - Light
+ */
+export const Light = Template.bind({});
+Light.args = {
+  children: (
+    <>
+      <Heading level={2}>A section title</Heading>
+      <div>The body</div>
+    </>
+  ),
+  variant: 'light',
+};
+
+/**
+ * Section Stories - Dark
+ */
+export const Dark = Template.bind({});
+Dark.args = {
+  children: (
+    <>
+      <Heading level={2}>A section title</Heading>
+      <div>The body</div>
+    </>
+  ),
+  variant: 'dark',
+};
-- 
cgit v1.2.3

