diff --git a/src/components/content/ContentArea/ContentArea.stories.mdx b/src/components/content/ContentArea/ContentArea.stories.mdx
deleted file mode 100644
index 0909aec1..00000000
--- a/src/components/content/ContentArea/ContentArea.stories.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs'
-import { Theme } from '../../../../.storybook/components'
-
-import { ContentArea } from './ContentArea'
-
-
-
-# ContentArea
-
-This component makes sure that there is enough space between multiple sections and actions on a page.
-
-export const Template = ({ children }) => {children}
-
-
-
-### Props
-
-
-
-
-
-
diff --git a/src/components/content/ContentArea/ContentArea.stories.tsx b/src/components/content/ContentArea/ContentArea.stories.tsx
new file mode 100644
index 00000000..16ccefba
--- /dev/null
+++ b/src/components/content/ContentArea/ContentArea.stories.tsx
@@ -0,0 +1,55 @@
+import {
+ Controls,
+ Description,
+ Primary,
+ Stories,
+ Subheading,
+ Title,
+} from '@storybook/addon-docs'
+import { Meta, StoryObj } from '@storybook/react'
+import { Theme } from '../../../../.storybook/components'
+import { ContentArea } from './ContentArea'
+
+const meta = {
+ component: ContentArea,
+ args: {
+ children: 'Multiple blocks',
+ },
+ argTypes: {
+ children: {
+ options: ['Multiple blocks', 'One block'],
+ mapping: {
+ 'Multiple blocks': (
+ <>
+
Block A
+ Block B
+ Block C
+ >
+ ),
+ 'One block': Block A
,
+ },
+ control: { type: 'select' },
+ },
+ },
+ parameters: {
+ docs: {
+ page: () => (
+ <>
+
+
+
+ Props
+
+
+
+ >
+ ),
+ },
+ },
+} satisfies Meta
+
+export default meta
+
+type Story = StoryObj
+
+export const Default: Story = {}
diff --git a/src/components/content/ContentArea/ContentArea.tsx b/src/components/content/ContentArea/ContentArea.tsx
index ae4adae3..20237498 100644
--- a/src/components/content/ContentArea/ContentArea.tsx
+++ b/src/components/content/ContentArea/ContentArea.tsx
@@ -7,6 +7,9 @@ export type ContentAreaProps = ClassNameProps & {
children?: ReactNode
}
+/**
+ * This component makes sure that there is enough space between multiple sections and actions on a page.
+ */
export function ContentArea({ className, children }: ContentAreaProps) {
const { content } = useTheme()
return (
diff --git a/src/components/content/ContentMessage/ContentMessage.stories.mdx b/src/components/content/ContentMessage/ContentMessage.stories.mdx
deleted file mode 100644
index 99b7e0ac..00000000
--- a/src/components/content/ContentMessage/ContentMessage.stories.mdx
+++ /dev/null
@@ -1,128 +0,0 @@
-import IconInfo from '@aboutbits/react-material-icons/dist/IconInfo'
-import IconWarning from '@aboutbits/react-material-icons/dist/IconWarning'
-import IconError from '@aboutbits/react-material-icons/dist/IconError'
-import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs'
-import { Theme } from '../../../../.storybook/components'
-import { Tone } from '../../types'
-import { ContentMessage } from './ContentMessage'
-import { ContentMessageContainer } from './ContentMessageContainer'
-import { ContentMessageIcon } from './ContentMessageIcon'
-import { ContentMessageTitle } from './ContentMessageTitle'
-import { ContentMessageText } from './ContentMessageText'
-
-
-
-# ContentMessage
-
-This component renders a message with icon in the given tone.
-It can be used to create a warning or error message inside a section.
-
-### Subcomponents
-
-It is composed of the following components, which can also be used separately for custom purposes:
-
-- ContentMessageContainer
-- ContentMessageIcon
-- ContentMessageTitle
-- ContentMessageText
-
-export const Template = (args) =>
-
-
-
-### Props
-
-
-
-
-
-
-
-## Tone
-
-
diff --git a/src/components/content/ContentMessage/ContentMessage.stories.tsx b/src/components/content/ContentMessage/ContentMessage.stories.tsx
new file mode 100644
index 00000000..56e602b7
--- /dev/null
+++ b/src/components/content/ContentMessage/ContentMessage.stories.tsx
@@ -0,0 +1,82 @@
+import IconInfo from '@aboutbits/react-material-icons/dist/IconInfo'
+import IconWarning from '@aboutbits/react-material-icons/dist/IconWarning'
+import IconError from '@aboutbits/react-material-icons/dist/IconError'
+import {
+ Controls,
+ Description,
+ Primary,
+ Stories,
+ Subheading,
+ Title,
+} from '@storybook/addon-docs'
+import { Meta, StoryObj } from '@storybook/react'
+import { Theme } from '../../../../.storybook/components'
+import { Tone } from '../../types'
+import { ContentMessage } from './ContentMessage'
+
+const meta = {
+ component: ContentMessage,
+ args: {
+ title: 'No items',
+ text: 'No data available for this view',
+ icon: IconInfo,
+ },
+ argTypes: {
+ icon: {
+ options: ['None', 'Info', 'Warning', 'Error'],
+ mapping: {
+ None: undefined,
+ Info: IconInfo,
+ Warning: IconWarning,
+ Error: IconError,
+ },
+ control: { type: 'select' },
+ },
+ tone: {
+ options: Object.values(Tone),
+ control: { type: 'select' },
+ },
+ },
+ parameters: {
+ docs: {
+ page: () => (
+ <>
+
+
+ Subcomponents
+ It is composed of the following components, which can also be used
+ separately for custom purposes:
+
+ - ContentMessageContainer
+ - ContentMessageIcon
+ - ContentMessageTitle
+ - ContentMessageText
+
+
+ Props
+
+
+
+ >
+ ),
+ },
+ },
+} satisfies Meta
+
+export default meta
+
+type Story = StoryObj
+
+export const Default: Story = {}
+
+export const Tones: Story = {
+ render: (args) => (
+
+
+
+
+
+
+
+ ),
+}
diff --git a/src/components/content/ContentMessage/ContentMessage.tsx b/src/components/content/ContentMessage/ContentMessage.tsx
index dbe23098..1569838d 100644
--- a/src/components/content/ContentMessage/ContentMessage.tsx
+++ b/src/components/content/ContentMessage/ContentMessage.tsx
@@ -16,6 +16,11 @@ export type ContentMessageProps = ClassNameProps &
iconProps?: Partial
}
+/**
+ *
+ * This component renders a message with icon in the given tone. It can
+ * be used to create a warning or error message inside a section.
+ */
export function ContentMessage({
className,
icon,
diff --git a/src/components/content/DescriptionItem/DescriptionItem.stories.mdx b/src/components/content/DescriptionItem/DescriptionItem.stories.mdx
deleted file mode 100644
index 54881f89..00000000
--- a/src/components/content/DescriptionItem/DescriptionItem.stories.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
-import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs'
-import { Theme } from '../../../../.storybook/components'
-import { Section, SectionContainer, SectionContent } from '../../section'
-import { DescriptionItem } from './DescriptionItem'
-import { DescriptionItemContainer } from './DescriptionItemContainer'
-import { DescriptionItemTitle } from './DescriptionItemTitle'
-import { DescriptionItemContent } from './DescriptionItemContent'
-
-
-
-# DescriptionItem
-
-The DescriptionItem displays read only information with HTML description list element (`dl`) tag.
-
-The `contentProps.alignVertical` option is useful to align the content to the input field when the component is placed inside a form.
-
-### Subcomponents
-
-It is composed of the following components, which can also be used separately for custom purposes:
-
-- DescriptionItemContainer
-- DescriptionItemTitle
-- DescriptionItemContent
-
-export const Template = ({ title, content, hideIfEmpty }) => (
-
-)
-
-
-
-### Props
-
-
-
-
-
-
-
-## Example: Usage of `hideIfEmpty`
-
-
-
-## Example: Usage within Section
-
-
diff --git a/src/components/content/DescriptionItem/DescriptionItem.stories.tsx b/src/components/content/DescriptionItem/DescriptionItem.stories.tsx
new file mode 100644
index 00000000..cf32ef6b
--- /dev/null
+++ b/src/components/content/DescriptionItem/DescriptionItem.stories.tsx
@@ -0,0 +1,71 @@
+import {
+ Controls,
+ Description,
+ Primary,
+ Stories,
+ Subheading,
+ Title,
+} from '@storybook/addon-docs'
+import { Meta, StoryObj } from '@storybook/react'
+import { Theme } from '../../../../.storybook/components'
+import { Section, SectionContainer, SectionContent } from '../../section'
+import { DescriptionItem } from './DescriptionItem'
+
+const meta = {
+ component: DescriptionItem,
+ args: {
+ title: 'Name',
+ content: 'John Doe',
+ hideIfEmpty: false,
+ },
+ parameters: {
+ docs: {
+ page: () => (
+ <>
+
+
+ Subcomponents
+ It is composed of the following components, which can also be used
+ separately for custom purposes:
+
+ - DescriptionItemContainer
+ - DescriptionItemTitle
+ - DescriptionItemContent
+
+
+ Props
+
+
+
+ >
+ ),
+ },
+ },
+} satisfies Meta
+export default meta
+
+type Story = StoryObj
+
+export const Default: Story = {}
+
+export const HideIfEmpty: Story = {
+ args: {
+ hideIfEmpty: true,
+ content: null,
+ },
+}
+
+export const UsageWithSection: Story = {
+ render: (args) => (
+
+ ),
+}
diff --git a/src/components/content/DescriptionItem/DescriptionItem.tsx b/src/components/content/DescriptionItem/DescriptionItem.tsx
index c03a12b3..063db19a 100644
--- a/src/components/content/DescriptionItem/DescriptionItem.tsx
+++ b/src/components/content/DescriptionItem/DescriptionItem.tsx
@@ -39,6 +39,10 @@ export type DescriptionItemProps = ClassNameProps & {
}
)
+/**
+ * The DescriptionItem displays read only information with HTML description list element (`dl`) tag.
+ * The `contentProps.alignVertical` option is useful to align the content to the input field when the component is placed inside a form.
+ */
export function DescriptionItem({
title,
className,
diff --git a/src/components/content/DescriptionItem/LoadingDescriptionItem.stories.mdx b/src/components/content/DescriptionItem/LoadingDescriptionItem.stories.mdx
deleted file mode 100644
index b89250f9..00000000
--- a/src/components/content/DescriptionItem/LoadingDescriptionItem.stories.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Meta, Story, Canvas, ArgsTable } from '@storybook/addon-docs'
-import { Theme } from '../../../../.storybook/components'
-import { LoadingDescriptionItem } from './LoadingDescriptionItem'
-
-
-
-# LoadingDescriptionItem
-
-This component is used to show a loading [DescriptionItem](/docs/components-content-descriptionitem--docs).
-
-export const Template = ({ ...args }) =>
-
-
-
-### Props
-
-
-
-
-
-
diff --git a/src/components/content/DescriptionItem/LoadingDescriptionItem.stories.tsx b/src/components/content/DescriptionItem/LoadingDescriptionItem.stories.tsx
new file mode 100644
index 00000000..8931c991
--- /dev/null
+++ b/src/components/content/DescriptionItem/LoadingDescriptionItem.stories.tsx
@@ -0,0 +1,35 @@
+import {
+ Controls,
+ Description,
+ Primary,
+ Stories,
+ Subheading,
+ Title,
+} from '@storybook/addon-docs'
+import { Meta, StoryObj } from '@storybook/react'
+import { Theme } from '../../../../.storybook/components'
+import { LoadingDescriptionItem } from './LoadingDescriptionItem'
+
+const meta = {
+ component: LoadingDescriptionItem,
+ parameters: {
+ docs: {
+ page: () => (
+ <>
+
+
+
+ Props
+
+
+
+ >
+ ),
+ },
+ },
+} satisfies Meta
+
+export default meta
+type Story = StoryObj
+
+export const Default: Story = {}
diff --git a/src/components/content/DescriptionItem/LoadingDescriptionItem.tsx b/src/components/content/DescriptionItem/LoadingDescriptionItem.tsx
index b847bdee..ce106c61 100644
--- a/src/components/content/DescriptionItem/LoadingDescriptionItem.tsx
+++ b/src/components/content/DescriptionItem/LoadingDescriptionItem.tsx
@@ -4,6 +4,9 @@ import { useTheme } from '../../../framework'
import { LoadingBar } from '../../loading'
import { DescriptionItem as DescriptionItem } from './DescriptionItem'
+/**
+ * This component is used to show a loading [DescriptionItem](/docs/components-content-descriptionitem--docs).
+ */
export function LoadingDescriptionItem({
className,
}: {