From c77f77771c4e299fd04830a02a6a030ed5fcbc52 Mon Sep 17 00:00:00 2001 From: george treviranus Date: Mon, 29 Apr 2024 13:20:21 -0500 Subject: [PATCH] fix(forms): updates Message to receive margin when intermediaries are present --- .../datepickers/demo/datepicker.stories.mdx | 10 ++++++ .../demo/stories/DatepickerStory.tsx | 35 ++++++++++++++----- .../forms/src/styled/text/StyledTextInput.ts | 2 +- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/packages/datepickers/demo/datepicker.stories.mdx b/packages/datepickers/demo/datepicker.stories.mdx index 1a5e380748b..9465db8f9c0 100644 --- a/packages/datepickers/demo/datepicker.stories.mdx +++ b/packages/datepickers/demo/datepicker.stories.mdx @@ -25,6 +25,16 @@ import README from '../README.md'; control: 'radio', options: DATE_STYLE_OPTIONS, table: { category: 'Story' } + }, + message: { name: 'children', control: { type: 'text' }, table: { category: 'Message' } }, + validation: { + options: ['success', 'warning', 'error'], + control: { type: 'radio' }, + table: { category: 'Message' } + }, + validationLabel: { + control: { type: 'text' }, + table: { category: 'Message' } } }} parameters={{ diff --git a/packages/datepickers/demo/stories/DatepickerStory.tsx b/packages/datepickers/demo/stories/DatepickerStory.tsx index 92353656181..3b50365120a 100644 --- a/packages/datepickers/demo/stories/DatepickerStory.tsx +++ b/packages/datepickers/demo/stories/DatepickerStory.tsx @@ -8,28 +8,45 @@ import React from 'react'; import { Story } from '@storybook/react'; import { Col, Grid, Row } from '@zendeskgarden/react-grid'; -import { Field, Input, Label } from '@zendeskgarden/react-forms'; +import { Field, Input, Label, Message } from '@zendeskgarden/react-forms'; import { Datepicker, IDatepickerProps } from '@zendeskgarden/react-datepickers'; import { DATE_STYLE } from './types'; interface IArgs extends IDatepickerProps { dateStyle: DATE_STYLE; + message?: string; + validation?: 'success' | 'warning' | 'error'; + validationLabel?: string; } -export const DatepickerStory: Story = ({ dateStyle, isCompact, ...args }) => { +export const DatepickerStory: Story = ({ + dateStyle, + isCompact, + message, + validation, + validationLabel, + ...args +}) => { const formatDate = (date: Date) => new Intl.DateTimeFormat(args.locale, { dateStyle }).format(date); return ( - - - - - - - + +
+ + + + + + {message && ( + + {message} + + )} + +
diff --git a/packages/forms/src/styled/text/StyledTextInput.ts b/packages/forms/src/styled/text/StyledTextInput.ts index 8c14051d3b0..dc5d13860fa 100644 --- a/packages/forms/src/styled/text/StyledTextInput.ts +++ b/packages/forms/src/styled/text/StyledTextInput.ts @@ -193,7 +193,7 @@ const sizeStyles = (props: IStyledTextInputProps & ThemeProps) => ${StyledHint} + &&, ${StyledMessage} + &&, && + ${StyledHint}, - && + ${StyledMessage} { + && ~ ${StyledMessage} { margin-top: ${props.theme.space.base * (props.isCompact ? 1 : 2)}px; } /* stylelint-enable */