From f2e2a1e48c9e1ea8f8c9280010cb9fe87ed829da Mon Sep 17 00:00:00 2001 From: Sirod Johnson Date: Fri, 12 Jul 2024 00:04:26 -0400 Subject: [PATCH 1/2] Addresses various component issues and adjusts spacing in component story displays --- source/00-config/vars/colors.css | 2 +- source/01-global/00-colors/color.stories.tsx | 8 +++ .../01-global/01-typography/fonts.stories.tsx | 8 +++ .../01-typography/letterspacing.stories.tsx | 8 +++ .../01-typography/line-height.stories.tsx | 8 +++ .../01-typography/text-styles.stories.tsx | 8 +++ .../typographic-scale.stories.tsx | 8 +++ source/01-global/02-spacing/space.stories.tsx | 8 +++ .../03-box-shadow/shadows.stories.tsx | 8 +++ .../04-transitions/duration.stories.tsx | 8 +++ .../04-transitions/easing.stories.tsx | 8 +++ .../13-headings/headings.stories.tsx | 8 +++ .../14-paragraph/paragraph.stories.tsx | 8 +++ .../inline-elements.stories.tsx | 8 +++ .../16-blockquote/blockquote.stories.tsx | 8 +++ .../preformatted-text.stories.tsx | 8 +++ .../horizontal-rule.stories.tsx | 8 +++ .../19-address/address.stories.tsx | 8 +++ .../unordered-list.stories.tsx | 8 +++ .../21-ordered-list/ordered-list.stories.tsx | 8 +++ .../definition-list.stories.tsx | 8 +++ ...le-with-column-and-row-headers.stories.tsx | 8 +++ .../table-with-row-headers.stories.tsx | 8 +++ .../html-elements/24-table/table.stories.tsx | 8 +++ .../03-components/Article/Article.stories.tsx | 8 +++ .../03-components/Button/Button.stories.tsx | 8 +++ .../ButtonGroup/ButtonGroup.stories.tsx | 40 ++++++++++++++- .../03-components/ButtonGroup/ButtonGroup.tsx | 6 +++ .../ButtonGroup/button-group.module.css | 16 ++++++ source/03-components/Card/Card.stories.tsx | 8 +++ .../03-components/Details/Details.stories.tsx | 8 +++ .../Fieldset/Fieldset.stories.tsx | 8 +++ .../03-components/Figure/Figure.stories.tsx | 8 +++ source/03-components/Figure/figure.module.css | 34 +++++++------ .../FormItem/Checkboxes.stories.tsx | 8 +++ .../FormItem/FormItem.stories.tsx | 8 +++ source/03-components/FormItem/FormItem.tsx | 47 +++++++++++++++++- .../03-components/FormItem/Input.stories.tsx | 8 +++ .../03-components/FormItem/Radios.stories.tsx | 8 +++ .../03-components/FormItem/Select.stories.tsx | 8 +++ .../FormItem/Textarea.stories.tsx | 49 +++++++++++++++++++ source/03-components/FormItem/checkbox.yml | 1 + .../FormItem/form-item-input.css | 9 +++- source/03-components/FormItem/radio.yml | 1 + source/03-components/FormItem/textarea.yml | 6 +++ source/03-components/FormItem/time.yml | 2 +- .../ImageTeaser/ImageTeaser.stories.tsx | 8 +++ source/03-components/List/List.stories.tsx | 8 +++ .../PageTitle/PageTitle.stories.tsx | 8 +++ .../ReadMoreLink/ReadMoreLink.stories.tsx | 8 +++ .../SiteName/SiteName.stories.tsx | 8 +++ source/03-components/SiteName/site-name.yml | 2 +- .../StyledSelect/StyledSelect.stories.tsx | 8 +++ source/03-components/Tag/Tag.stories.tsx | 8 +++ .../03-components/TagList/TagList.stories.tsx | 8 +++ source/03-components/Video/Video.stories.tsx | 11 +++++ .../03-components/Wysiwyg/Wysiwyg.stories.tsx | 8 +++ source/03-components/Wysiwyg/wysiwyg.yml | 8 +-- 58 files changed, 553 insertions(+), 25 deletions(-) create mode 100644 source/03-components/FormItem/Textarea.stories.tsx create mode 100644 source/03-components/FormItem/textarea.yml diff --git a/source/00-config/vars/colors.css b/source/00-config/vars/colors.css index 3910ab9c..53f13c8b 100644 --- a/source/00-config/vars/colors.css +++ b/source/00-config/vars/colors.css @@ -21,7 +21,7 @@ --selection-text: var(--grayscale-white); --table-background: var(--grayscale-white); - --tablebackground-foot: var(--grayscale-gray-1); + --table-background-foot: var(--grayscale-gray-1); --table-background-head: var(--grayscale-gray-1); --table-border: var(--grayscale-gray-5); diff --git a/source/01-global/00-colors/color.stories.tsx b/source/01-global/00-colors/color.stories.tsx index 11968aa5..00008935 100644 --- a/source/01-global/00-colors/color.stories.tsx +++ b/source/01-global/00-colors/color.stories.tsx @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; import styles from './color.module.css'; @@ -128,6 +129,13 @@ const ColorPaletteComponent = ({ brand, grayscale, other }: ColorFamily) => ( const meta: Meta = { title: 'Global/Color Palette', component: ColorPaletteComponent, + decorators: [ + Component => ( + + + + ), + ], argTypes: { brand: { table: { diff --git a/source/01-global/01-typography/fonts.stories.tsx b/source/01-global/01-typography/fonts.stories.tsx index 2385d024..a8bd9dc9 100644 --- a/source/01-global/01-typography/fonts.stories.tsx +++ b/source/01-global/01-typography/fonts.stories.tsx @@ -1,11 +1,19 @@ import { Meta, StoryObj } from '@storybook/react'; import { Property } from 'csstype'; import { useEffect, useState } from 'react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; import styles from './fonts.module.css'; const meta: Meta = { title: 'Global/Typography/Fonts', + decorators: [ + Component => ( + + + + ), + ], }; interface FontOptions { diff --git a/source/01-global/01-typography/letterspacing.stories.tsx b/source/01-global/01-typography/letterspacing.stories.tsx index ed34d86e..2dd87c90 100644 --- a/source/01-global/01-typography/letterspacing.stories.tsx +++ b/source/01-global/01-typography/letterspacing.stories.tsx @@ -1,11 +1,19 @@ import { Meta, StoryObj } from '@storybook/react'; import { Property } from 'csstype'; import { useEffect, useState } from 'react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; import styles from './letterspacing.module.css'; const meta: Meta = { title: 'Global/Typography/Letterspacing', + decorators: [ + Component => ( + + + + ), + ], }; interface FontOptions { diff --git a/source/01-global/01-typography/line-height.stories.tsx b/source/01-global/01-typography/line-height.stories.tsx index 181a8659..0b393b10 100644 --- a/source/01-global/01-typography/line-height.stories.tsx +++ b/source/01-global/01-typography/line-height.stories.tsx @@ -1,11 +1,19 @@ import { Meta, StoryObj } from '@storybook/react'; import { Property } from 'csstype'; import { useEffect, useState } from 'react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; import styles from './line-height.module.css'; const meta: Meta = { title: 'Global/Typography/Line Height', + decorators: [ + Component => ( + + + + ), + ], }; interface FontOptions { diff --git a/source/01-global/01-typography/text-styles.stories.tsx b/source/01-global/01-typography/text-styles.stories.tsx index 5e0d5c2c..25df8874 100644 --- a/source/01-global/01-typography/text-styles.stories.tsx +++ b/source/01-global/01-typography/text-styles.stories.tsx @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import styles from './text-styles.module.css'; const TextStylesComponent = () => { @@ -23,6 +24,13 @@ const TextStylesComponent = () => { const meta: Meta = { title: 'Global/Typography/Text Styles', component: TextStylesComponent, + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/01-typography/typographic-scale.stories.tsx b/source/01-global/01-typography/typographic-scale.stories.tsx index be093c90..0590f8d8 100644 --- a/source/01-global/01-typography/typographic-scale.stories.tsx +++ b/source/01-global/01-typography/typographic-scale.stories.tsx @@ -2,6 +2,7 @@ import { Meta, StoryObj } from '@storybook/react'; import { Property } from 'csstype'; import { useEffect, useState } from 'react'; import typographyVarsAsString from '../../00-config/vars/typography.css?raw'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; import styles from './typographic-scale.module.css'; @@ -26,6 +27,13 @@ const typographyVarsMin = typographyVars.map((e: string) => { const settings: Meta = { title: 'Global/Typography/Typographic Scale', + decorators: [ + Component => ( + + + + ), + ], }; interface FontOptions { diff --git a/source/01-global/02-spacing/space.stories.tsx b/source/01-global/02-spacing/space.stories.tsx index de7fbf39..f627eb91 100644 --- a/source/01-global/02-spacing/space.stories.tsx +++ b/source/01-global/02-spacing/space.stories.tsx @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; const allVars = getCssVariables(); @@ -61,6 +62,13 @@ const SpacingComponent = ({ spacing }: { spacing: SpacingOptions }) => { const meta: Meta = { title: 'Global/Spacing', component: SpacingComponent, + decorators: [ + Component => ( + + + + ), + ], argTypes: { spacing: { table: { diff --git a/source/01-global/03-box-shadow/shadows.stories.tsx b/source/01-global/03-box-shadow/shadows.stories.tsx index e61e6ff1..33f21c43 100644 --- a/source/01-global/03-box-shadow/shadows.stories.tsx +++ b/source/01-global/03-box-shadow/shadows.stories.tsx @@ -1,5 +1,6 @@ import { Meta, StoryObj } from '@storybook/react'; import { Property } from 'csstype'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; import styles from './shadows.module.css'; @@ -42,6 +43,13 @@ function BoxShadowDemo({ const meta: Meta = { title: 'Global/Box Shadows', component: BoxShadowDemo, + decorators: [ + Component => ( + + + + ), + ], argTypes: { boxShadow: { table: { diff --git a/source/01-global/04-transitions/duration.stories.tsx b/source/01-global/04-transitions/duration.stories.tsx index 48b54c2a..1f4bf696 100644 --- a/source/01-global/04-transitions/duration.stories.tsx +++ b/source/01-global/04-transitions/duration.stories.tsx @@ -1,5 +1,6 @@ import { Meta, StoryObj } from '@storybook/react'; import { Property } from 'csstype'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; import styles from './duration.module.css'; @@ -43,6 +44,13 @@ const DurationComponent = ({ duration }: { duration: DurationOptions }) => { const meta: Meta = { title: 'Global/Duration', component: DurationComponent, + decorators: [ + Component => ( + + + + ), + ], argTypes: { duration: { table: { diff --git a/source/01-global/04-transitions/easing.stories.tsx b/source/01-global/04-transitions/easing.stories.tsx index 3cb2506b..5ddc3e56 100644 --- a/source/01-global/04-transitions/easing.stories.tsx +++ b/source/01-global/04-transitions/easing.stories.tsx @@ -1,5 +1,6 @@ import { Meta, StoryObj } from '@storybook/react'; import { Property } from 'csstype'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import getCssVariables from '../../06-utility/storybook/getCssVariables'; import styles from './easing.module.css'; @@ -41,6 +42,13 @@ const EasingComponent = ({ easing }: { easing: EasingOptions }) => { const meta: Meta = { title: 'Global/Easing', component: EasingComponent, + decorators: [ + Component => ( + + + + ), + ], argTypes: { easing: { table: { diff --git a/source/01-global/html-elements/13-headings/headings.stories.tsx b/source/01-global/html-elements/13-headings/headings.stories.tsx index f9fe2121..bd8bbad8 100644 --- a/source/01-global/html-elements/13-headings/headings.stories.tsx +++ b/source/01-global/html-elements/13-headings/headings.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const settings: Meta = { title: 'Global/HTML Elements/Headings', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/14-paragraph/paragraph.stories.tsx b/source/01-global/html-elements/14-paragraph/paragraph.stories.tsx index 5ed53eca..32d98321 100644 --- a/source/01-global/html-elements/14-paragraph/paragraph.stories.tsx +++ b/source/01-global/html-elements/14-paragraph/paragraph.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Paragraph', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/15-inline-elements/inline-elements.stories.tsx b/source/01-global/html-elements/15-inline-elements/inline-elements.stories.tsx index 06d0aa15..b6107956 100644 --- a/source/01-global/html-elements/15-inline-elements/inline-elements.stories.tsx +++ b/source/01-global/html-elements/15-inline-elements/inline-elements.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Inline Elements', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/16-blockquote/blockquote.stories.tsx b/source/01-global/html-elements/16-blockquote/blockquote.stories.tsx index fc0b0854..2c0232bf 100644 --- a/source/01-global/html-elements/16-blockquote/blockquote.stories.tsx +++ b/source/01-global/html-elements/16-blockquote/blockquote.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Blockquote', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/17-preformatted-text/preformatted-text.stories.tsx b/source/01-global/html-elements/17-preformatted-text/preformatted-text.stories.tsx index 6aa995ef..6b9ca364 100644 --- a/source/01-global/html-elements/17-preformatted-text/preformatted-text.stories.tsx +++ b/source/01-global/html-elements/17-preformatted-text/preformatted-text.stories.tsx @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const data = ` P R E F O R M A T T E D T E X T @@ -12,6 +13,13 @@ const data = ` const meta: Meta = { title: 'Global/HTML Elements/Preformatted Text', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/18-horizontal-rule/horizontal-rule.stories.tsx b/source/01-global/html-elements/18-horizontal-rule/horizontal-rule.stories.tsx index 729700a7..0484e72f 100644 --- a/source/01-global/html-elements/18-horizontal-rule/horizontal-rule.stories.tsx +++ b/source/01-global/html-elements/18-horizontal-rule/horizontal-rule.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Horizontal Rule', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/19-address/address.stories.tsx b/source/01-global/html-elements/19-address/address.stories.tsx index 28568f3a..c3c9d953 100644 --- a/source/01-global/html-elements/19-address/address.stories.tsx +++ b/source/01-global/html-elements/19-address/address.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Address', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/20-unordered-list/unordered-list.stories.tsx b/source/01-global/html-elements/20-unordered-list/unordered-list.stories.tsx index ac7d4cd4..1137e5e5 100644 --- a/source/01-global/html-elements/20-unordered-list/unordered-list.stories.tsx +++ b/source/01-global/html-elements/20-unordered-list/unordered-list.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Unordered List', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/21-ordered-list/ordered-list.stories.tsx b/source/01-global/html-elements/21-ordered-list/ordered-list.stories.tsx index 57ca74c2..4edd0a98 100644 --- a/source/01-global/html-elements/21-ordered-list/ordered-list.stories.tsx +++ b/source/01-global/html-elements/21-ordered-list/ordered-list.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Ordered List', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/23-definition-list/definition-list.stories.tsx b/source/01-global/html-elements/23-definition-list/definition-list.stories.tsx index 6c0eb026..ad7f067f 100644 --- a/source/01-global/html-elements/23-definition-list/definition-list.stories.tsx +++ b/source/01-global/html-elements/23-definition-list/definition-list.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const settings: Meta = { title: 'Global/HTML Elements/Definition List', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/24-table/table-with-column-and-row-headers.stories.tsx b/source/01-global/html-elements/24-table/table-with-column-and-row-headers.stories.tsx index bd7aaa47..f67092a1 100644 --- a/source/01-global/html-elements/24-table/table-with-column-and-row-headers.stories.tsx +++ b/source/01-global/html-elements/24-table/table-with-column-and-row-headers.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Table/Table with Column and Row Headers', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/24-table/table-with-row-headers.stories.tsx b/source/01-global/html-elements/24-table/table-with-row-headers.stories.tsx index 0c729ffd..177f3cbd 100644 --- a/source/01-global/html-elements/24-table/table-with-row-headers.stories.tsx +++ b/source/01-global/html-elements/24-table/table-with-row-headers.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Table/Table With Row Headers', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/01-global/html-elements/24-table/table.stories.tsx b/source/01-global/html-elements/24-table/table.stories.tsx index 484c76be..47bbd82f 100644 --- a/source/01-global/html-elements/24-table/table.stories.tsx +++ b/source/01-global/html-elements/24-table/table.stories.tsx @@ -1,7 +1,15 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../../02-layouts/Constrain/Constrain'; const meta: Meta = { title: 'Global/HTML Elements/Table', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/03-components/Article/Article.stories.tsx b/source/03-components/Article/Article.stories.tsx index c0f5ef54..d2ab654f 100644 --- a/source/03-components/Article/Article.stories.tsx +++ b/source/03-components/Article/Article.stories.tsx @@ -1,11 +1,19 @@ import { Meta, StoryObj } from '@storybook/react'; import parse from 'html-react-parser'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import ArticleComponent from './Article'; import articleArgs from './article.yml'; const meta: Meta = { title: 'Components/Article', component: ArticleComponent, + decorators: [ + Component => ( + + + + ), + ], tags: ['autodocs'], }; diff --git a/source/03-components/Button/Button.stories.tsx b/source/03-components/Button/Button.stories.tsx index d6d0600e..2a2160c2 100644 --- a/source/03-components/Button/Button.stories.tsx +++ b/source/03-components/Button/Button.stories.tsx @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import { Button as ButtonComponent, LinkButton as LinkButtonComponent, @@ -20,6 +21,13 @@ function DemoButtons({ label, ...props }: SharedButtonProps): JSX.Element { const meta: Meta = { title: 'Components/Button', component: DemoButtons, + decorators: [ + Component => ( + + + + ), + ], // More on automatic documentation: https://storybook.js.org/docs/react/writing-docs/autodocs tags: ['autodocs'], // More on argTypes: https://storybook.js.org/docs/react/api/argtypes diff --git a/source/03-components/ButtonGroup/ButtonGroup.stories.tsx b/source/03-components/ButtonGroup/ButtonGroup.stories.tsx index 50a4bded..9682cdc5 100644 --- a/source/03-components/ButtonGroup/ButtonGroup.stories.tsx +++ b/source/03-components/ButtonGroup/ButtonGroup.stories.tsx @@ -1,10 +1,18 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import ButtonGroupComponent from './ButtonGroup'; import buttonGroupArgs from './button-group.yml'; const meta: Meta = { title: 'Components/Button Group', component: ButtonGroupComponent, + decorators: [ + Component => ( + + + + ), + ], tags: ['autodocs'], argTypes: { buttons: { @@ -14,9 +22,37 @@ const meta: Meta = { }; type Story = StoryObj; -const ButtonGroup: Story = { +const Primary: Story = { args: buttonGroupArgs, }; +const Secondary: Story = { + args: { + ...buttonGroupArgs, + variant: 'secondary', + }, +}; + +const Danger: Story = { + args: { + ...buttonGroupArgs, + variant: 'danger', + }, +}; + +const Large: Story = { + args: { + ...buttonGroupArgs, + styleSize: 'large', + }, +}; + +const Small: Story = { + args: { + ...buttonGroupArgs, + styleSize: 'small', + }, +}; + export default meta; -export { ButtonGroup }; +export { Danger, Large, Primary, Secondary, Small }; diff --git a/source/03-components/ButtonGroup/ButtonGroup.tsx b/source/03-components/ButtonGroup/ButtonGroup.tsx index d272c20c..c0633554 100644 --- a/source/03-components/ButtonGroup/ButtonGroup.tsx +++ b/source/03-components/ButtonGroup/ButtonGroup.tsx @@ -15,6 +15,8 @@ interface ButtonGroupProps extends GessoComponent { heading: string; buttons: Button[]; activeLabel?: string; + variant?: string; + styleSize?: 'small' | 'medium' | 'large'; } function ButtonGroup({ @@ -23,6 +25,8 @@ function ButtonGroup({ modifierClasses, buttons, activeLabel = '(active)', + variant, + styleSize = 'medium', }: ButtonGroupProps): JSX.Element { return ( {button.text} diff --git a/source/03-components/ButtonGroup/button-group.module.css b/source/03-components/ButtonGroup/button-group.module.css index bb59df01..926b82be 100644 --- a/source/03-components/ButtonGroup/button-group.module.css +++ b/source/03-components/ButtonGroup/button-group.module.css @@ -33,6 +33,22 @@ $border-radius: 3px; } } + .link--secondary { + composes: button--secondary from '../Button/button.module.css'; + } + + .link--danger { + composes: button--danger from '../Button/button.module.css'; + } + + .link--large { + composes: button--large from '../Button/button.module.css'; + } + + .link--small { + composes: button--small from '../Button/button.module.css'; + } + .item { margin: 0; diff --git a/source/03-components/Card/Card.stories.tsx b/source/03-components/Card/Card.stories.tsx index db3fe032..01ac4097 100644 --- a/source/03-components/Card/Card.stories.tsx +++ b/source/03-components/Card/Card.stories.tsx @@ -1,5 +1,6 @@ import { Meta, StoryObj } from '@storybook/react'; import parse from 'html-react-parser'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import Grid from '../../02-layouts/Grid/Grid'; import CardComponent from './Card'; import styles from './card.module.css'; @@ -8,6 +9,13 @@ import cardArgs from './card.yml'; const meta: Meta = { title: 'Components/Card', component: CardComponent, + decorators: [ + Component => ( + + + + ), + ], tags: ['autodocs'], argTypes: { children: { diff --git a/source/03-components/Details/Details.stories.tsx b/source/03-components/Details/Details.stories.tsx index 5cb1cede..31f0eedc 100644 --- a/source/03-components/Details/Details.stories.tsx +++ b/source/03-components/Details/Details.stories.tsx @@ -1,11 +1,19 @@ import { Meta, StoryObj } from '@storybook/react'; import parse from 'html-react-parser'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import DetailsComponent from './Details'; import detailsArgs from './details.yml'; const meta: Meta = { title: 'Components/Details', component: DetailsComponent, + decorators: [ + Component => ( + + + + ), + ], tags: ['autodocs'], argTypes: { children: { diff --git a/source/03-components/Fieldset/Fieldset.stories.tsx b/source/03-components/Fieldset/Fieldset.stories.tsx index d54795a8..2b92da53 100644 --- a/source/03-components/Fieldset/Fieldset.stories.tsx +++ b/source/03-components/Fieldset/Fieldset.stories.tsx @@ -1,5 +1,6 @@ import { Meta, StoryObj } from '@storybook/react'; import parse from 'html-react-parser'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import FieldsetComponent from './Fieldset'; import styles from './fieldset.module.css'; import fieldsetArgs from './fieldset.yml'; @@ -7,6 +8,13 @@ import fieldsetArgs from './fieldset.yml'; const meta: Meta = { title: 'Components/Fieldset', component: FieldsetComponent, + decorators: [ + Component => ( + + + + ), + ], tags: ['autodocs'], argTypes: { children: { diff --git a/source/03-components/Figure/Figure.stories.tsx b/source/03-components/Figure/Figure.stories.tsx index 44a48070..e52a25af 100644 --- a/source/03-components/Figure/Figure.stories.tsx +++ b/source/03-components/Figure/Figure.stories.tsx @@ -1,5 +1,6 @@ import { Meta, StoryObj } from '@storybook/react'; import parse from 'html-react-parser'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import { Video } from '../Video/Video.stories'; import FigureComponent from './Figure'; import styles from './figure.module.css'; @@ -8,6 +9,13 @@ import figureArgs from './figure.yml'; const meta: Meta = { title: 'Components/Figure', component: FigureComponent, + decorators: [ + Component => ( + + + + ), + ], tags: ['autodocs'], }; diff --git a/source/03-components/Figure/figure.module.css b/source/03-components/Figure/figure.module.css index 74c5b6e5..de321b4d 100644 --- a/source/03-components/Figure/figure.module.css +++ b/source/03-components/Figure/figure.module.css @@ -2,7 +2,27 @@ .figure { display: table; margin-block: 0 var(--spacing-2); + } + .caption { + caption-side: bottom; + display: table-caption; + font-weight: var(--font-weight-semibold); + margin-block-start: var(--spacing-1); + } + + .figure--iframe { + display: block; + inline-size: 100%; + + .caption { + display: block; + } + } +} + +@layer utility { + .figure { &:global(.align-center), &:global(.u-align-center) { clear: both; @@ -27,24 +47,10 @@ } } - .caption { - caption-side: bottom; - display: table-caption; - font-weight: var(--font-weight-semibold); - margin-block-start: var(--spacing-1); - } - .figure--iframe { - display: block; - inline-size: 100%; - &:global(.align-center), &:global(.u-align-center) { display: block; } - - .caption { - display: block; - } } } diff --git a/source/03-components/FormItem/Checkboxes.stories.tsx b/source/03-components/FormItem/Checkboxes.stories.tsx index b1ff917c..aa36d8a0 100644 --- a/source/03-components/FormItem/Checkboxes.stories.tsx +++ b/source/03-components/FormItem/Checkboxes.stories.tsx @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import Fieldset from '../Fieldset/Fieldset'; import fieldsetStyles from '../Fieldset/fieldset.module.css'; import { Input } from './FormItem'; @@ -6,6 +7,13 @@ import { Checkbox } from './FormItem.stories'; const meta: Meta = { title: 'Components/Form Item/Checkboxes', + decorators: [ + Component => ( + + + + ), + ], parameters: { controls: { hideNoControlsWarning: true }, }, diff --git a/source/03-components/FormItem/FormItem.stories.tsx b/source/03-components/FormItem/FormItem.stories.tsx index f970e22f..300376d0 100644 --- a/source/03-components/FormItem/FormItem.stories.tsx +++ b/source/03-components/FormItem/FormItem.stories.tsx @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/react'; +import Constrain from '../../02-layouts/Constrain/Constrain'; import { Input } from './FormItem'; import checkboxArgs from './checkbox.yml'; import radioArgs from './radio.yml'; @@ -6,6 +7,13 @@ import radioArgs from './radio.yml'; const meta: Meta = { title: 'Components/Form Item', component: Input, + decorators: [ + Component => ( + + + + ), + ], args: { isDisabled: false, descriptionDisplay: 'after', diff --git a/source/03-components/FormItem/FormItem.tsx b/source/03-components/FormItem/FormItem.tsx index a3d5a781..a9b7b66b 100644 --- a/source/03-components/FormItem/FormItem.tsx +++ b/source/03-components/FormItem/FormItem.tsx @@ -5,6 +5,7 @@ import { InputHTMLAttributes, ReactNode, SelectHTMLAttributes, + TextareaHTMLAttributes, } from 'react'; import FormItemLabel from './FormItemLabel'; import FormItemWrapper from './FormItemWrapper'; @@ -30,6 +31,8 @@ interface FormItemProps extends GessoComponent { type InputProps = Omit & InputHTMLAttributes; type SelectProps = FormItemProps & SelectHTMLAttributes; +type TextareaProps = FormItemProps & + TextareaHTMLAttributes; function FormItem({ id, @@ -187,5 +190,47 @@ function Select({ ); } +function Textarea({ + id, + label, + labelDisplay = 'before', + prefix, + suffix, + description, + descriptionDisplay = 'after', + errors, + modifierClasses, + isDisabled = false, + isFullWidth = false, + isRequired = false, + ...props +}: TextareaProps): JSX.Element { + return ( + +