diff --git a/change/@fluentui-react-badge-524d0da2-9534-46d5-8045-8d4e6123e20d.json b/change/@fluentui-react-badge-524d0da2-9534-46d5-8045-8d4e6123e20d.json new file mode 100644 index 00000000000000..b9ae12436630d9 --- /dev/null +++ b/change/@fluentui-react-badge-524d0da2-9534-46d5-8045-8d4e6123e20d.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "feat(Badge): update Badge API", + "packageName": "@fluentui/react-badge", + "email": "junioassuncaocharles@gmail.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-examples-a5f1c9e8-88ce-44b0-92a2-c6f1e8db59e2.json b/change/@fluentui-react-examples-a5f1c9e8-88ce-44b0-92a2-c6f1e8db59e2.json new file mode 100644 index 00000000000000..d92e8ec73d33d3 --- /dev/null +++ b/change/@fluentui-react-examples-a5f1c9e8-88ce-44b0-92a2-c6f1e8db59e2.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "feat(Badge): remove unnused props from badge stories", + "packageName": "@fluentui/react-examples", + "email": "junioassuncaocharles@gmail.com", + "dependentChangeType": "patch" +} diff --git a/packages/react-badge/etc/react-badge.api.md b/packages/react-badge/etc/react-badge.api.md index d02400ef423a40..8633e2ce4c3579 100644 --- a/packages/react-badge/etc/react-badge.api.md +++ b/packages/react-badge/etc/react-badge.api.md @@ -13,16 +13,15 @@ import { ShorthandProps } from '@fluentui/react-utilities'; export const Badge: React.ForwardRefExoticComponent>; // @public (undocumented) -export type BadgeAppearances = 'filled' | 'outline' | 'ghost' | 'tint'; +export type BadgeAppearance = 'filled' | 'outline' | 'ghost' | 'tint'; // @public (undocumented) export interface BadgeProps extends ComponentProps, React.HTMLAttributes { - appearance?: BadgeAppearances; + appearance?: BadgeAppearance; icon?: ShorthandProps; iconPosition?: 'before' | 'after'; shape?: BadgeShape; - size?: SizeValue; - status?: BadgeStatus; + size?: BadgeSize; } // @public (undocumented) @@ -31,21 +30,18 @@ export type BadgeShape = 'rounded' | 'square' | 'circular'; // @public export const badgeShorthandProps: (keyof BadgeProps)[]; +// @public (undocumented) +export type BadgeSize = 'smallest' | 'smaller' | 'small' | 'medium' | 'large' | 'larger' | 'largest'; + // @public (undocumented) export interface BadgeState extends BadgeProps { icon?: ObjectShorthandProps; ref: React.MutableRefObject; } -// @public (undocumented) -export type BadgeStatus = 'success' | 'warning' | 'severe' | 'accent' | 'danger' | 'important' | 'informative' | 'subtle'; - // @public (undocumented) export const renderBadge: (state: BadgeState) => JSX.Element; -// @public (undocumented) -export type SizeValue = 'smallest' | 'smaller' | 'small' | 'medium' | 'large' | 'larger' | 'largest'; - // @public export const useBadge: (props: BadgeProps, ref: React.Ref, defaultProps?: BadgeProps | undefined) => BadgeState; diff --git a/packages/react-badge/src/components/Badge/Badge.types.ts b/packages/react-badge/src/components/Badge/Badge.types.ts index be3b9d01c82deb..34ac3e9b45ef49 100644 --- a/packages/react-badge/src/components/Badge/Badge.types.ts +++ b/packages/react-badge/src/components/Badge/Badge.types.ts @@ -4,25 +4,12 @@ import { ComponentProps, ShorthandProps, ObjectShorthandProps } from '@fluentui/ /** * {@docCategory Badge} */ -export type SizeValue = 'smallest' | 'smaller' | 'small' | 'medium' | 'large' | 'larger' | 'largest'; +export type BadgeSize = 'smallest' | 'smaller' | 'small' | 'medium' | 'large' | 'larger' | 'largest'; /** * {@docCategory Badge} */ -export type BadgeStatus = - | 'success' - | 'warning' - | 'severe' - | 'accent' - | 'danger' - | 'important' - | 'informative' - | 'subtle'; - -/** - * {@docCategory Badge} - */ -export type BadgeAppearances = 'filled' | 'outline' | 'ghost' | 'tint'; +export type BadgeAppearance = 'filled' | 'outline' | 'ghost' | 'tint'; /** * {@docCategory Badge} @@ -35,23 +22,21 @@ export type BadgeShape = 'rounded' | 'square' | 'circular'; export interface BadgeProps extends ComponentProps, React.HTMLAttributes { /** * A Badge can be sized. + * @defaultvalue medium */ - size?: SizeValue; - - /** - * A Badge can have status styles variants - */ - status?: BadgeStatus; + size?: BadgeSize; /** * A Badge can be square, circular or rounded + * @defaultvalue circular */ shape?: BadgeShape; /** * A Badge can be filled, outline, ghost, inverted + * @defaultvalue filled */ - appearance?: BadgeAppearances; + appearance?: BadgeAppearance; /** * Icon slot @@ -60,6 +45,7 @@ export interface BadgeProps extends ComponentProps, React.HTMLAttributes({ deepMerge: badgeShorthandProps }); /** - * Given user props, returns state and render function for a Badge. + * Returns the props and state required to render the component */ export const useBadge = (props: BadgeProps, ref: React.Ref, defaultProps?: BadgeProps): BadgeState => { const state = mergeProps( diff --git a/packages/react-badge/src/components/Badge/useBadgeStyles.ts b/packages/react-badge/src/components/Badge/useBadgeStyles.ts index 9728a35b1297ec..ebc15af949e5df 100644 --- a/packages/react-badge/src/components/Badge/useBadgeStyles.ts +++ b/packages/react-badge/src/components/Badge/useBadgeStyles.ts @@ -9,76 +9,77 @@ export const useRootStyles = makeStyles([ null, theme => ({ display: 'inline-flex', + boxSizing: 'border-box', alignItems: 'center', justifyContent: 'center', backgroundColor: theme.alias.color.brand.brandBackground, borderColor: theme.alias.color.brand.brandBackground, - color: theme.global.color.white, + color: theme.alias.color.neutral.neutralForegroundInvertedAccessible, fontWeight: theme.global.type.fontWeights.semibold, - borderWidth: '1px', + borderWidth: theme.global.strokeWidth.thin, borderStyle: 'solid', fontFamily: theme.global.type.fontFamilies.base, }), ], [ s => s.size === 'smallest', - theme => ({ + { width: '6px', height: '6px', fontSize: '4px', - }), + }, ], [ s => s.size === 'smaller', - theme => ({ + { width: '10px', height: '10px', fontSize: '6px', - }), + }, ], [ s => s.size === 'small', - theme => ({ - minWidth: '4px', + { + minWidth: '16px', height: '16px', paddingRight: '6px', paddingLeft: '6px', gap: '4px', fontSize: '8px', - }), + }, ], [ s => s.size === 'medium', - theme => ({ + { height: '20px', - minWidth: '4px', + minWidth: '20px', gap: '4px', paddingRight: '8px', paddingLeft: '8px', fontSize: '12px', - }), + }, ], [ s => s.size === 'large', - theme => ({ - minWidth: '8px', + { + minWidth: '24px', height: '24px', paddingRight: '8px', paddingLeft: '8px', fontSize: '12px', gap: '6px', - }), + }, ], [ s => s.size === 'larger' || s.size === 'largest', theme => ({ - minWidth: '8px', + minWidth: '32px', height: '32px', paddingRight: '12px', paddingLeft: '12px', gap: '6px', fontSize: '12px', - border: '2px', + borderWidth: theme.global.strokeWidth.thick, }), ], [s => s.shape === 'circular', theme => ({ borderRadius: theme.global.borderRadius.circular })], diff --git a/packages/react-examples/src/react-badge/Badge/Badge.stories.tsx b/packages/react-examples/src/react-badge/Badge/Badge.stories.tsx index c4d525347f5fc9..2984c99a636d10 100644 --- a/packages/react-examples/src/react-badge/Badge/Badge.stories.tsx +++ b/packages/react-examples/src/react-badge/Badge/Badge.stories.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; -import { Badge, BadgeProps } from '@fluentui/react-badge'; +import { Badge } from '@fluentui/react-badge'; -const BadgeAppearanceExamples = (props: BadgeProps) => ( +export const BadgeAppearanceExample = () => ( <>

Circular (default)

(
); - -export const BadgeAppearanceExample = () => ; diff --git a/packages/react-examples/src/react-badge/Badge/BadgeAppearance.stories.tsx b/packages/react-examples/src/react-badge/Badge/BadgeAppearance.stories.tsx index eb00de1709ffe9..2def60e8029f88 100644 --- a/packages/react-examples/src/react-badge/Badge/BadgeAppearance.stories.tsx +++ b/packages/react-examples/src/react-badge/Badge/BadgeAppearance.stories.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; -import { Badge, BadgeProps } from '@fluentui/react-badge'; +import { Badge } from '@fluentui/react-badge'; -const BadgeAppearanceExamples = (props: BadgeProps) => ( +export const BadgeAppearanceExample = () => (
(
); - -export const BadgeAppearanceExample = () => ; diff --git a/packages/react-examples/src/react-badge/Badge/BadgeContent.stories.tsx b/packages/react-examples/src/react-badge/Badge/BadgeContent.stories.tsx index 715bd17ed59ca6..f42e2732dd2158 100644 --- a/packages/react-examples/src/react-badge/Badge/BadgeContent.stories.tsx +++ b/packages/react-examples/src/react-badge/Badge/BadgeContent.stories.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; -import { Badge, BadgeProps } from '@fluentui/react-badge'; +import { Badge } from '@fluentui/react-badge'; -const BadgeContentExamples = (props: BadgeProps) => ( +export const BadgeContentExample = () => (
(
); - -export const BadgeContentExample = () => ; diff --git a/packages/react-examples/src/react-badge/Badge/BadgeIcon.stories.tsx b/packages/react-examples/src/react-badge/Badge/BadgeIcon.stories.tsx index 8f7c0da21482e2..f2bff789afddda 100644 --- a/packages/react-examples/src/react-badge/Badge/BadgeIcon.stories.tsx +++ b/packages/react-examples/src/react-badge/Badge/BadgeIcon.stories.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; -import { Badge, BadgeProps } from '@fluentui/react-badge'; +import { Badge } from '@fluentui/react-badge'; import { AcceptIcon } from '@fluentui/react-icons-mdl2'; -const BadgeIconExamples = (props: BadgeProps) => ( +export const BadgeIconExample = () => (
( } />
); - -export const BadgeIconExample = () => ;