From 3fcf163f9ee9437aa3acc093a200a9eb1f16262c Mon Sep 17 00:00:00 2001 From: GeoffCoxMSFT Date: Tue, 8 Nov 2022 09:56:25 -0800 Subject: [PATCH 1/4] Added large tab size --- .../react-tabs/etc/react-tabs.api.md | 4 +- .../src/components/Tab/Tab.test.tsx | 4 + .../src/components/Tab/Tab.types.ts | 4 +- .../Tab/__snapshots__/Tab.test.tsx.snap | 148 ++++++++++++++++++ .../src/components/Tab/useTabStyles.ts | 113 +++++++++---- .../src/components/TabList/TabList.types.ts | 4 +- .../stories/Tabs/TabListSizeLarge.stories.tsx | 50 ++++++ .../Tabs/TabListSizeMedium.stories.tsx | 2 +- .../stories/Tabs/TabListSizeSmall.stories.tsx | 2 +- .../react-tabs/stories/Tabs/index.stories.tsx | 1 + .../src/global/typographyStyles.ts | 2 +- 11 files changed, 298 insertions(+), 36 deletions(-) create mode 100644 packages/react-components/react-tabs/stories/Tabs/TabListSizeLarge.stories.tsx diff --git a/packages/react-components/react-tabs/etc/react-tabs.api.md b/packages/react-components/react-tabs/etc/react-tabs.api.md index bd79b980a82f8c..c33bf17db18d1d 100644 --- a/packages/react-components/react-tabs/etc/react-tabs.api.md +++ b/packages/react-components/react-tabs/etc/react-tabs.api.md @@ -68,7 +68,7 @@ export type TabListProps = ComponentProps & { disabled?: boolean; onTabSelect?: SelectTabEventHandler; selectedValue?: TabValue; - size?: 'small' | 'medium'; + size?: 'small' | 'medium' | 'large'; vertical?: boolean; }; @@ -105,7 +105,7 @@ export type TabState = ComponentState & Pick & Requ iconOnly: boolean; selected: boolean; contentReservedSpaceClassName?: string; - size: 'small' | 'medium'; + size: 'small' | 'medium' | 'large'; vertical: boolean; }; diff --git a/packages/react-components/react-tabs/src/components/Tab/Tab.test.tsx b/packages/react-components/react-tabs/src/components/Tab/Tab.test.tsx index 0bfe4c8b305488..f65b2260b4c7d3 100644 --- a/packages/react-components/react-tabs/src/components/Tab/Tab.test.tsx +++ b/packages/react-components/react-tabs/src/components/Tab/Tab.test.tsx @@ -77,6 +77,10 @@ describe('Tab', () => { ['vertical', { ...defaultContext, vertical: true }], ['small size', { ...defaultContext, size: 'small' }], ['small size and vertical', { ...defaultContext, size: 'small', vertical: true }], + ['medium size', { ...defaultContext, size: 'medium' }], + ['medium size and vertical', { ...defaultContext, size: 'medium', vertical: true }], + ['large size', { ...defaultContext, size: 'large' }], + ['large size and vertical', { ...defaultContext, size: 'large', vertical: true }], ])('renders %s correctly with icon slotted', (_testName, tabList) => { const contextValues = { tabList: tabList as TabListContextValue, diff --git a/packages/react-components/react-tabs/src/components/Tab/Tab.types.ts b/packages/react-components/react-tabs/src/components/Tab/Tab.types.ts index 903d12b2689427..90c327bcc56b3e 100644 --- a/packages/react-components/react-tabs/src/components/Tab/Tab.types.ts +++ b/packages/react-components/react-tabs/src/components/Tab/Tab.types.ts @@ -62,9 +62,9 @@ export type TabState = ComponentState & */ contentReservedSpaceClassName?: string; /** - * A tab can be either 'small' or 'medium' size. + * A tab can be either 'small', 'medium', or 'large' size. */ - size: 'small' | 'medium'; + size: 'small' | 'medium' | 'large'; /** * A tab can arrange its content based on if the tabs in the list are arranged vertically. */ diff --git a/packages/react-components/react-tabs/src/components/Tab/__snapshots__/Tab.test.tsx.snap b/packages/react-components/react-tabs/src/components/Tab/__snapshots__/Tab.test.tsx.snap index 5deffaabbc5ac2..079f2ffe7f5837 100644 --- a/packages/react-components/react-tabs/src/components/Tab/__snapshots__/Tab.test.tsx.snap +++ b/packages/react-components/react-tabs/src/components/Tab/__snapshots__/Tab.test.tsx.snap @@ -74,6 +74,154 @@ exports[`Tab renders default correctly with icon slotted 1`] = ` `; +exports[`Tab renders large size and vertical correctly with icon slotted 1`] = ` +
+ +
+`; + +exports[`Tab renders large size correctly with icon slotted 1`] = ` +
+ +
+`; + +exports[`Tab renders medium size and vertical correctly with icon slotted 1`] = ` +
+ +
+`; + +exports[`Tab renders medium size correctly with icon slotted 1`] = ` +
+ +
+`; + exports[`Tab renders small size and vertical correctly with icon slotted 1`] = `