diff --git a/apps/vr-tests-react-components/src/stories/Tag/InteractionTagAppearances.stories.tsx b/apps/vr-tests-react-components/src/stories/Tag/InteractionTagAppearances.stories.tsx new file mode 100644 index 00000000000000..a3966eba20a4c3 --- /dev/null +++ b/apps/vr-tests-react-components/src/stories/Tag/InteractionTagAppearances.stories.tsx @@ -0,0 +1,70 @@ +import * as React from 'react'; +import { InteractionTag } from '@fluentui/react-tags-preview'; +import { bundleIcon, CalendarMonthFilled, CalendarMonthRegular } from '@fluentui/react-icons'; +import { ComponentMeta } from '@storybook/react'; +import { getStoryVariant, withStoryWrightSteps, DARK_MODE, HIGH_CONTRAST } from '../../utilities'; +import { Steps } from 'storywright'; + +const CalendarMonth = bundleIcon(CalendarMonthFilled, CalendarMonthRegular); + +const contentId = 'content-id'; +const dismissButtonId = 'dismiss-button-id'; +const steps = new Steps() + .snapshot('default', { cropTo: '.testWrapper' }) + .hover(`#${contentId}`) + .snapshot('hover content', { cropTo: '.testWrapper' }) + .mouseDown(`#${contentId}`) + .snapshot('pressed content', { cropTo: '.testWrapper' }) + .hover(`#${dismissButtonId}`) + .snapshot('hover dismiss', { cropTo: '.testWrapper' }) + .mouseDown(`#${dismissButtonId}`) + .snapshot('pressed dismiss', { cropTo: '.testWrapper' }) + .end(); + +export default { + title: 'InteractionTag Converged', + Component: InteractionTag, + decorators: [story => withStoryWrightSteps({ story, steps })], +} as ComponentMeta; + +export const Filled = () => ( + } + > + Primary Text + +); +export const FilledHighContrast = getStoryVariant(Filled, HIGH_CONTRAST); +export const FilledDarkMode = getStoryVariant(Filled, DARK_MODE); + +export const Outline = () => ( + } + > + Primary Text + +); +export const OutlineHighContrast = getStoryVariant(Outline, HIGH_CONTRAST); +export const OutlineDarkMode = getStoryVariant(Outline, DARK_MODE); + +export const Brand = () => ( + } + > + Primary Text + +); +export const BrandHighContrast = getStoryVariant(Brand, HIGH_CONTRAST); +export const BrandDarkMode = getStoryVariant(Brand, DARK_MODE); diff --git a/apps/vr-tests-react-components/src/stories/Tag/InteractionTagShape.stories.tsx b/apps/vr-tests-react-components/src/stories/Tag/InteractionTagShape.stories.tsx new file mode 100644 index 00000000000000..a3faddf5f55bb0 --- /dev/null +++ b/apps/vr-tests-react-components/src/stories/Tag/InteractionTagShape.stories.tsx @@ -0,0 +1,83 @@ +import * as React from 'react'; +import { InteractionTag } from '@fluentui/react-tags-preview'; +import { ComponentMeta } from '@storybook/react'; +import { getStoryVariant, withStoryWrightSteps, RTL } from '../../utilities'; +import { Avatar } from '@fluentui/react-avatar'; +import { Steps } from 'storywright'; + +const contentId = 'content-id'; +const dismissButtonId = 'dismiss-button-id'; +const steps = new Steps() + .snapshot('default', { cropTo: '.testWrapper' }) + + // This needs to be added so that the focus outline is shown correctly + .executeScript(`document.querySelector('#${contentId}').setAttribute('data-fui-focus-visible', '')`) + .focus(`#${contentId}`) + .snapshot('focus content', { cropTo: '.testWrapper' }) + .executeScript(`document.querySelector('#${contentId}').removeAttribute('data-fui-focus-visible')`) + + // This needs to be added so that the focus outline is shown correctly + .executeScript(`document.querySelector('#${dismissButtonId}').setAttribute('data-fui-focus-visible', '')`) + .focus(`#${dismissButtonId}`) + .snapshot('focus dismiss', { cropTo: '.testWrapper' }) + .executeScript(`document.querySelector('#${dismissButtonId}').removeAttribute('data-fui-focus-visible')`) + + .end(); + +export default { + title: 'InteractionTag Converged', + Component: InteractionTag, + decorators: [story => withStoryWrightSteps({ story, steps })], +} as ComponentMeta; + +export const Rounded = () => Primary Text; + +export const RoundedWithSecondaryText = () => ( + + Primary Text + +); + +export const RoundedWithMedia = () => ( + }> + Primary Text + +); +export const RoundedWithMediaRTL = getStoryVariant(RoundedWithMedia, RTL); + +export const RoundedDismissible = () => ( + + Primary Text + +); +export const RoundedDismissibleRTL = getStoryVariant(RoundedDismissible, RTL); + +export const Circular = () => ( + + Primary Text + +); + +export const CircularWithSecondaryText = () => ( + + Primary Text + +); + +export const CircularWithMedia = () => ( + } + > + Primary Text + +); +export const CircularWithMediaRTL = getStoryVariant(CircularWithMedia, RTL); + +export const CircularDismissible = () => ( + + Primary Text + +); +export const CircularDismissibleRTL = getStoryVariant(CircularDismissible, RTL); diff --git a/apps/vr-tests-react-components/src/stories/Tag/TagAppearances.stories.tsx b/apps/vr-tests-react-components/src/stories/Tag/TagAppearances.stories.tsx new file mode 100644 index 00000000000000..66c2b110c1b63b --- /dev/null +++ b/apps/vr-tests-react-components/src/stories/Tag/TagAppearances.stories.tsx @@ -0,0 +1,49 @@ +import * as React from 'react'; +import { Tag } from '@fluentui/react-tags-preview'; +import { bundleIcon, CalendarMonthFilled, CalendarMonthRegular } from '@fluentui/react-icons'; +import { ComponentMeta } from '@storybook/react'; +import { getStoryVariant, withStoryWrightSteps, DARK_MODE, HIGH_CONTRAST } from '../../utilities'; +import { Steps } from 'storywright'; + +const CalendarMonth = bundleIcon(CalendarMonthFilled, CalendarMonthRegular); + +const tagId = 'tag-id'; +const steps = new Steps() + .snapshot('default', { cropTo: '.testWrapper' }) + .hover(`#${tagId}}`) + .snapshot('hover', { cropTo: '.testWrapper' }) + .mouseDown(`#${tagId}}`) + .snapshot('pressed', { cropTo: '.testWrapper' }) + .end(); + +export default { + title: 'Tag Converged', + Component: Tag, + decorators: [story => withStoryWrightSteps({ story, steps })], +} as ComponentMeta; + +export const Filled = () => ( + }> + Primary Text + +); + +export const FilledHighContrast = getStoryVariant(Filled, HIGH_CONTRAST); +export const FilledDarkMode = getStoryVariant(Filled, DARK_MODE); + +export const Outline = () => ( + }> + Primary Text + +); + +export const OutlineHighContrast = getStoryVariant(Outline, HIGH_CONTRAST); +export const OutlineDarkMode = getStoryVariant(Outline, DARK_MODE); + +export const Brand = () => ( + }> + Primary Text + +); +export const BrandHighContrast = getStoryVariant(Brand, HIGH_CONTRAST); +export const BrandDarkMode = getStoryVariant(Brand, DARK_MODE); diff --git a/apps/vr-tests-react-components/src/stories/Tag/TagShape.stories.tsx b/apps/vr-tests-react-components/src/stories/Tag/TagShape.stories.tsx new file mode 100644 index 00000000000000..18aec55709af9a --- /dev/null +++ b/apps/vr-tests-react-components/src/stories/Tag/TagShape.stories.tsx @@ -0,0 +1,56 @@ +import * as React from 'react'; +import { Tag } from '@fluentui/react-tags-preview'; +import { ComponentMeta } from '@storybook/react'; +import { getStoryVariant, withStoryWrightSteps, RTL } from '../../utilities'; +import { Avatar } from '@fluentui/react-avatar'; +import { Steps } from 'storywright'; + +const tagId = 'tag-id'; +const steps = new Steps() + .snapshot('default', { cropTo: '.testWrapper' }) + // This needs to be added so that the focus outline is shown correctly + .executeScript(`document.querySelector('#${tagId}').setAttribute('data-fui-focus-visible', '')`) + .focus(`#${tagId}`) + .snapshot('focused', { cropTo: '.testWrapper' }) + .executeScript(`document.querySelector('#${tagId}').removeAttribute('data-fui-focus-visible')`) + .end(); + +export default { + title: 'Tag Converged', + Component: Tag, + decorators: [story => withStoryWrightSteps({ story, steps })], +} as ComponentMeta; + +export const Rounded = () => Primary Text; + +export const RoundedWithSecondaryText = () => Primary Text; + +export const RoundedWithMedia = () => ( + }>Primary Text +); +export const RoundedWithMediaRTL = getStoryVariant(RoundedWithMedia, RTL); + +export const RoundedDismissible = () => ( + + Primary Text + +); +export const RoundedDismissibleRTL = getStoryVariant(RoundedDismissible, RTL); + +export const Circular = () => Primary Text; + +export const CircularWithSecondaryText = () => Primary Text; + +export const CircularWithMedia = () => ( + }> + Primary Text + +); +export const CircularWithMediaRTL = getStoryVariant(CircularWithMedia, RTL); + +export const CircularDismissible = () => ( + + Primary Text + +); +export const CircularDismissibleRTL = getStoryVariant(CircularDismissible, RTL);