From 6ec16bc15cc78e62cb94e131699625fa5363437c Mon Sep 17 00:00:00 2001
From: Armand Philippot <git@armandphilippot.com>
Date: Fri, 15 Apr 2022 15:34:21 +0200
Subject: chore: add a Widget component

---
 src/components/molecules/layout/widget.stories.tsx | 85 ++++++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100644 src/components/molecules/layout/widget.stories.tsx

(limited to 'src/components/molecules/layout/widget.stories.tsx')

diff --git a/src/components/molecules/layout/widget.stories.tsx b/src/components/molecules/layout/widget.stories.tsx
new file mode 100644
index 0000000..d79f66e
--- /dev/null
+++ b/src/components/molecules/layout/widget.stories.tsx
@@ -0,0 +1,85 @@
+import { ComponentMeta, ComponentStory } from '@storybook/react';
+import { IntlProvider } from 'react-intl';
+import WidgetComponent from './widget';
+
+export default {
+  title: 'Molecules/Layout',
+  component: WidgetComponent,
+  args: {
+    expanded: true,
+    withBorders: false,
+  },
+  argTypes: {
+    children: {
+      control: {
+        type: 'text',
+      },
+      description: 'The widget body',
+      type: {
+        name: 'string',
+        required: true,
+      },
+    },
+    expanded: {
+      control: {
+        type: 'boolean',
+      },
+      description: 'The widget state (expanded or collapsed)',
+      table: {
+        category: 'Options',
+        defaultValue: { summary: true },
+      },
+      type: {
+        name: 'boolean',
+        required: false,
+      },
+    },
+    level: {
+      control: {
+        type: 'number',
+      },
+      description: 'The heading level.',
+      type: {
+        name: 'number',
+        required: true,
+      },
+    },
+    title: {
+      control: {
+        type: 'text',
+      },
+      description: 'The widget title.',
+      type: {
+        name: 'string',
+        required: true,
+      },
+    },
+    withBorders: {
+      control: {
+        type: 'boolean',
+      },
+      description: 'Define if the content should have borders.',
+      table: {
+        category: 'Options',
+        defaultValue: { summary: false },
+      },
+      type: {
+        name: 'boolean',
+        required: false,
+      },
+    },
+  },
+} as ComponentMeta<typeof WidgetComponent>;
+
+const Template: ComponentStory<typeof WidgetComponent> = (args) => (
+  <IntlProvider locale="en">
+    <WidgetComponent {...args} />
+  </IntlProvider>
+);
+
+export const Widget = Template.bind({});
+Widget.args = {
+  children: 'Widget body',
+  level: 2,
+  title: 'Widget title',
+};
-- 
cgit v1.2.3

