+
+
+ }
+ secondaryText="Secondary text"
+ dismissable={true}
+ {...props}
+ >
+ Primary text
+
+
+ }
+ dismissable={true}
+ {...props}
+ >
+ Primary text
+
+
+ }
+ {...props}
+ >
+ Primary text
+
+ } secondaryText="Secondary text" dismissable={true} {...props} {...props}>
+ Primary text
+
+ } dismissable={true} {...props}>
+ Primary text
+
+ } {...props}>
+ Primary text
+
+ Primary text
+
+
+
+ }
+ secondaryText="Secondary text"
+ dismissable={true}
+ {...props}
+ >
+ Primary text
+
+
+ }
+ dismissable={true}
+ {...props}
+ >
+ Primary text
+
+
+ }
+ {...props}
+ >
+ Primary text
+
+ }
+ secondaryText="Secondary text"
+ dismissable={true}
+ {...props}
+ {...props}
+ >
+ Primary text
+
+ } dismissable={true} {...props}>
+ Primary text
+
+ } {...props}>
+ Primary text
+
+
+ Primary text
+
+
+
);
diff --git a/packages/react-components/react-tags/stories/Tag/TagDismiss.stories.tsx b/packages/react-components/react-tags/stories/Tag/TagDismiss.stories.tsx
new file mode 100644
index 00000000000000..c5b805116d96d4
--- /dev/null
+++ b/packages/react-components/react-tags/stories/Tag/TagDismiss.stories.tsx
@@ -0,0 +1,41 @@
+import * as React from 'react';
+import { Avatar, makeStyles } from '@fluentui/react-components';
+import { Calendar3Day20Regular } from '@fluentui/react-icons';
+
+import { Tag } from '@fluentui/react-tags';
+
+const useContainerStyles = makeStyles({
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ rowGap: '10px',
+ },
+});
+
+export const Dismiss = () => {
+ const containerStyles = useContainerStyles();
+ return (
+ ) => (
- }
- primaryText="Primary text"
- secondaryText="Secondary text"
- dismissable={true}
- {...props}
- />
+
+
+
+ }
+ secondaryText="Secondary text"
+ dismissable={true}
+ {...props}
+ >
+ Primary text
+
+
+ }
+ dismissable={true}
+ {...props}
+ >
+ Primary text
+
+
+ }
+ {...props}
+ >
+ Primary text
+
+ }
+ secondaryText="Secondary text"
+ dismissable={true}
+ {...props}
+ {...props}
+ >
+ Primary text
+
+ } dismissable={true} {...props}>
+ Primary text
+
+ } {...props}>
+ Primary text
+
+ Primary text
+
+
+
+ }
+ secondaryText="Secondary text"
+ dismissable={true}
+ {...props}
+ >
+ Primary text
+
+
+ }
+ dismissable={true}
+ {...props}
+ >
+ Primary text
+
+
+ }
+ {...props}
+ >
+ Primary text
+
+ }
+ secondaryText="Secondary text"
+ dismissable={true}
+ {...props}
+ {...props}
+ >
+ Primary text
+
+ } dismissable={true} {...props}>
+ Primary text
+
+ } {...props}>
+ Primary text
+
+
+ Primary text
+
+
+
);
diff --git a/packages/react-components/react-tags/stories/TagButton/TagButtonDismiss.stories.tsx b/packages/react-components/react-tags/stories/TagButton/TagButtonDismiss.stories.tsx
new file mode 100644
index 00000000000000..f10a12d9b45e1e
--- /dev/null
+++ b/packages/react-components/react-tags/stories/TagButton/TagButtonDismiss.stories.tsx
@@ -0,0 +1,41 @@
+import * as React from 'react';
+import { Avatar, makeStyles } from '@fluentui/react-components';
+import { Calendar3Day20Regular } from '@fluentui/react-icons';
+
+import { TagButton } from '@fluentui/react-tags';
+
+const useContainerStyles = makeStyles({
+ root: {
+ display: 'flex',
+ flexDirection: 'column',
+ rowGap: '10px',
+ },
+});
+
+export const Dismiss = () => {
+ const containerStyles = useContainerStyles();
+ return (
+
+ Primary text
+ }>
+ Primary text
+
+ }
+ secondaryText="Secondary text"
+ >
+ Primary text
+
+
+ );
+};
+
+Dismiss.storyName = 'Dismiss';
+Dismiss.parameters = {
+ docs: {
+ description: {
+ story: 'A TagButton can have a button that dismisses it',
+ },
+ },
+};
diff --git a/packages/react-components/react-tags/stories/TagButton/TagButtonIcon.stories.tsx b/packages/react-components/react-tags/stories/TagButton/TagButtonIcon.stories.tsx
new file mode 100644
index 00000000000000..621e32e4db1c0e
--- /dev/null
+++ b/packages/react-components/react-tags/stories/TagButton/TagButtonIcon.stories.tsx
@@ -0,0 +1,14 @@
+import * as React from 'react';
+import { Calendar3Day20Regular } from '@fluentui/react-icons';
+import { TagButton } from '@fluentui/react-tags';
+
+export const Icon = () => }>Primary text;
+
+Icon.storyName = 'Icon';
+Icon.parameters = {
+ docs: {
+ description: {
+ story: 'A TagButton can render a custom icon if provided.',
+ },
+ },
+};
diff --git a/packages/react-components/react-tags/stories/TagButton/TagButtonMedia.stories.tsx b/packages/react-components/react-tags/stories/TagButton/TagButtonMedia.stories.tsx
new file mode 100644
index 00000000000000..93db18c6b107ba
--- /dev/null
+++ b/packages/react-components/react-tags/stories/TagButton/TagButtonMedia.stories.tsx
@@ -0,0 +1,17 @@
+import * as React from 'react';
+import { Avatar } from '@fluentui/react-components';
+
+import { TagButton } from '@fluentui/react-tags';
+
+export const Media = () => (
+ }>Primary text
+);
+
+Media.storyName = 'Media';
+Media.parameters = {
+ docs: {
+ description: {
+ story: 'A tag can render a media, for example an Avatar.',
+ },
+ },
+};
diff --git a/packages/react-components/react-tags/stories/TagButton/TagButtonSecondaryText.stories.tsx b/packages/react-components/react-tags/stories/TagButton/TagButtonSecondaryText.stories.tsx
new file mode 100644
index 00000000000000..26f4145b44d28c
--- /dev/null
+++ b/packages/react-components/react-tags/stories/TagButton/TagButtonSecondaryText.stories.tsx
@@ -0,0 +1,13 @@
+import * as React from 'react';
+import { TagButton } from '@fluentui/react-tags';
+
+export const SecondaryText = () => Primary text;
+
+SecondaryText.storyName = 'SecondaryText';
+SecondaryText.parameters = {
+ docs: {
+ description: {
+ story: 'A TagButton can have a secondary text.',
+ },
+ },
+};
diff --git a/packages/react-components/react-tags/stories/TagButton/TagButtonShape.stories.tsx b/packages/react-components/react-tags/stories/TagButton/TagButtonShape.stories.tsx
new file mode 100644
index 00000000000000..3f45196559c4b0
--- /dev/null
+++ b/packages/react-components/react-tags/stories/TagButton/TagButtonShape.stories.tsx
@@ -0,0 +1,42 @@
+import * as React from 'react';
+import { Avatar, makeStyles } from '@fluentui/react-components';
+import { Calendar3Day20Regular } from '@fluentui/react-icons';
+
+import { TagButton } from '@fluentui/react-tags';
+
+const useContainerStyles = makeStyles({
+ root: {
+ display: 'grid',
+ rowGap: '10px',
+ columnGap: '10px',
+ gridTemplateColumns: 'auto 1fr',
+ },
+});
+
+export const Shape = () => {
+ const containerStyles = useContainerStyles();
+ return (
+
+ }>Rounded
+ }>
+ Circular
+
+
+ } secondaryText="Secondary text">
+ Rounded
+
+ } secondaryText="Secondary text">
+ Circular
+
+
+ );
+};
+
+Shape.storyName = 'Shape';
+Shape.parameters = {
+ docs: {
+ description: {
+ story: 'A TagButton can be rounded or circular,',
+ },
+ },
+};
diff --git a/packages/react-components/react-tags/stories/TagButton/index.stories.tsx b/packages/react-components/react-tags/stories/TagButton/index.stories.tsx
index 29de0d16523bf6..38b25718ef37c5 100644
--- a/packages/react-components/react-tags/stories/TagButton/index.stories.tsx
+++ b/packages/react-components/react-tags/stories/TagButton/index.stories.tsx
@@ -4,6 +4,11 @@ import descriptionMd from './TagButtonDescription.md';
import bestPracticesMd from './TagButtonBestPractices.md';
export { Default } from './TagButtonDefault.stories';
+export { Icon } from './TagButtonIcon.stories';
+export { Media } from './TagButtonMedia.stories';
+export { SecondaryText } from './TagButtonSecondaryText.stories';
+export { Dismiss } from './TagButtonDismiss.stories';
+export { Shape } from './TagButtonShape.stories';
export default {
title: 'Preview Components/TagButton',