diff --git a/change/@fluentui-api-docs-547d7f43-a564-4a94-8b76-ccac1d127503.json b/change/@fluentui-api-docs-547d7f43-a564-4a94-8b76-ccac1d127503.json new file mode 100644 index 00000000000000..ccf816fb50cd4e --- /dev/null +++ b/change/@fluentui-api-docs-547d7f43-a564-4a94-8b76-ccac1d127503.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/api-docs", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-azure-themes-d9280534-3eff-4fdf-a6bc-be748554f4e5.json b/change/@fluentui-azure-themes-d9280534-3eff-4fdf-a6bc-be748554f4e5.json new file mode 100644 index 00000000000000..5342a8fb7c41c2 --- /dev/null +++ b/change/@fluentui-azure-themes-d9280534-3eff-4fdf-a6bc-be748554f4e5.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/azure-themes", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-bundle-size-b9d69f12-1e5a-4ab0-a35e-d09977045174.json b/change/@fluentui-bundle-size-b9d69f12-1e5a-4ab0-a35e-d09977045174.json new file mode 100644 index 00000000000000..dac472bf403e2b --- /dev/null +++ b/change/@fluentui-bundle-size-b9d69f12-1e5a-4ab0-a35e-d09977045174.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/bundle-size", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-codemods-34cab244-094a-4969-ac94-ebe5e1973447.json b/change/@fluentui-codemods-34cab244-094a-4969-ac94-ebe5e1973447.json new file mode 100644 index 00000000000000..d98f979501b4cb --- /dev/null +++ b/change/@fluentui-codemods-34cab244-094a-4969-ac94-ebe5e1973447.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/codemods", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-cra-template-f85dc73c-080a-4d6a-83da-9c7b2f113e85.json b/change/@fluentui-cra-template-f85dc73c-080a-4d6a-83da-9c7b2f113e85.json new file mode 100644 index 00000000000000..a6d3a080aab7f8 --- /dev/null +++ b/change/@fluentui-cra-template-f85dc73c-080a-4d6a-83da-9c7b2f113e85.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/cra-template", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-date-time-utilities-b3bfe513-6a87-40b9-b6be-25ea898995ff.json b/change/@fluentui-date-time-utilities-b3bfe513-6a87-40b9-b6be-25ea898995ff.json new file mode 100644 index 00000000000000..5b9f2e6872bfad --- /dev/null +++ b/change/@fluentui-date-time-utilities-b3bfe513-6a87-40b9-b6be-25ea898995ff.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/date-time-utilities", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-dom-utilities-4679a570-4427-4582-828f-21a307877379.json b/change/@fluentui-dom-utilities-4679a570-4427-4582-828f-21a307877379.json new file mode 100644 index 00000000000000..a55f5c0d14d283 --- /dev/null +++ b/change/@fluentui-dom-utilities-4679a570-4427-4582-828f-21a307877379.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/dom-utilities", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-eslint-plugin-595f5ece-71ae-4667-89ac-8c5fa156d1b5.json b/change/@fluentui-eslint-plugin-595f5ece-71ae-4667-89ac-8c5fa156d1b5.json new file mode 100644 index 00000000000000..edcd2fe96bd864 --- /dev/null +++ b/change/@fluentui-eslint-plugin-595f5ece-71ae-4667-89ac-8c5fa156d1b5.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/eslint-plugin", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-example-data-8b93f3aa-682e-4dfe-b904-bd586a469ef4.json b/change/@fluentui-example-data-8b93f3aa-682e-4dfe-b904-bd586a469ef4.json new file mode 100644 index 00000000000000..71e0263d2a6383 --- /dev/null +++ b/change/@fluentui-example-data-8b93f3aa-682e-4dfe-b904-bd586a469ef4.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/example-data", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-font-icons-mdl2-ecfb000c-c697-4255-a724-84eb03709baf.json b/change/@fluentui-font-icons-mdl2-ecfb000c-c697-4255-a724-84eb03709baf.json new file mode 100644 index 00000000000000..1ba15f8d095457 --- /dev/null +++ b/change/@fluentui-font-icons-mdl2-ecfb000c-c697-4255-a724-84eb03709baf.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/font-icons-mdl2", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-foundation-legacy-7a70614a-1023-42e9-a040-cdd6bd8dfcd1.json b/change/@fluentui-foundation-legacy-7a70614a-1023-42e9-a040-cdd6bd8dfcd1.json new file mode 100644 index 00000000000000..8061df93b4f957 --- /dev/null +++ b/change/@fluentui-foundation-legacy-7a70614a-1023-42e9-a040-cdd6bd8dfcd1.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/foundation-legacy", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-jest-serializer-merge-styles-acdb62d1-5192-4a4b-845d-0b15cf5ac3d3.json b/change/@fluentui-jest-serializer-merge-styles-acdb62d1-5192-4a4b-845d-0b15cf5ac3d3.json new file mode 100644 index 00000000000000..875df00791140e --- /dev/null +++ b/change/@fluentui-jest-serializer-merge-styles-acdb62d1-5192-4a4b-845d-0b15cf5ac3d3.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/jest-serializer-merge-styles", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-keyboard-key-9d0a5c42-23b7-4a7b-bd19-904294d4da32.json b/change/@fluentui-keyboard-key-9d0a5c42-23b7-4a7b-bd19-904294d4da32.json new file mode 100644 index 00000000000000..c56ba586309a98 --- /dev/null +++ b/change/@fluentui-keyboard-key-9d0a5c42-23b7-4a7b-bd19-904294d4da32.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/keyboard-key", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-merge-styles-94e6bd56-0436-4a2f-bf10-824026f427d3.json b/change/@fluentui-merge-styles-94e6bd56-0436-4a2f-bf10-824026f427d3.json new file mode 100644 index 00000000000000..25b12f1fea6a0e --- /dev/null +++ b/change/@fluentui-merge-styles-94e6bd56-0436-4a2f-bf10-824026f427d3.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/merge-styles", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-public-docsite-setup-858530f2-5fc5-4407-b65b-5d31ca395559.json b/change/@fluentui-public-docsite-setup-858530f2-5fc5-4407-b65b-5d31ca395559.json new file mode 100644 index 00000000000000..bc9718281c37d8 --- /dev/null +++ b/change/@fluentui-public-docsite-setup-858530f2-5fc5-4407-b65b-5d31ca395559.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/public-docsite-setup", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-cards-8dbfea4e-fd35-480f-bc7f-fbb3810249ec.json b/change/@fluentui-react-cards-8dbfea4e-fd35-480f-bc7f-fbb3810249ec.json new file mode 100644 index 00000000000000..f3a914e1f33947 --- /dev/null +++ b/change/@fluentui-react-cards-8dbfea4e-fd35-480f-bc7f-fbb3810249ec.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/react-cards", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-charting-2ae44c30-d25d-4224-878a-8d0639f56f83.json b/change/@fluentui-react-charting-2ae44c30-d25d-4224-878a-8d0639f56f83.json new file mode 100644 index 00000000000000..68572a81671c68 --- /dev/null +++ b/change/@fluentui-react-charting-2ae44c30-d25d-4224-878a-8d0639f56f83.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/react-charting", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-conformance-0f52a097-ea6e-44dc-aa1f-385746e8ba6b.json b/change/@fluentui-react-conformance-0f52a097-ea6e-44dc-aa1f-385746e8ba6b.json new file mode 100644 index 00000000000000..e2e2ea15d8c4b6 --- /dev/null +++ b/change/@fluentui-react-conformance-0f52a097-ea6e-44dc-aa1f-385746e8ba6b.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/react-conformance", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-date-time-d7b945c3-b761-4359-9b3e-a787e05b9061.json b/change/@fluentui-react-date-time-d7b945c3-b761-4359-9b3e-a787e05b9061.json new file mode 100644 index 00000000000000..dc527a54a54a73 --- /dev/null +++ b/change/@fluentui-react-date-time-d7b945c3-b761-4359-9b3e-a787e05b9061.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/react-date-time", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-docsite-components-41bb350f-e27f-4a37-aa3f-93e40305ecb6.json b/change/@fluentui-react-docsite-components-41bb350f-e27f-4a37-aa3f-93e40305ecb6.json new file mode 100644 index 00000000000000..546630b2900286 --- /dev/null +++ b/change/@fluentui-react-docsite-components-41bb350f-e27f-4a37-aa3f-93e40305ecb6.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/react-docsite-components", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-file-type-icons-f3ff4bf8-d309-4a7c-a3b2-02ffe5992db6.json b/change/@fluentui-react-file-type-icons-f3ff4bf8-d309-4a7c-a3b2-02ffe5992db6.json new file mode 100644 index 00000000000000..ed13f3806235f8 --- /dev/null +++ b/change/@fluentui-react-file-type-icons-f3ff4bf8-d309-4a7c-a3b2-02ffe5992db6.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/react-file-type-icons", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-icons-mdl2-branded-512fd03e-cc32-44aa-88fe-62c6bf37df99.json b/change/@fluentui-react-icons-mdl2-branded-512fd03e-cc32-44aa-88fe-62c6bf37df99.json new file mode 100644 index 00000000000000..b42aae930efdbd --- /dev/null +++ b/change/@fluentui-react-icons-mdl2-branded-512fd03e-cc32-44aa-88fe-62c6bf37df99.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/react-icons-mdl2-branded", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-window-provider-b4744fd9-b509-43bf-86ac-21cab35fac1e.json b/change/@fluentui-react-window-provider-b4744fd9-b509-43bf-86ac-21cab35fac1e.json new file mode 100644 index 00000000000000..9d3cbe16461bdd --- /dev/null +++ b/change/@fluentui-react-window-provider-b4744fd9-b509-43bf-86ac-21cab35fac1e.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/react-window-provider", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-set-version-00dd38f2-8ae0-4949-b243-6d2e56befc0e.json b/change/@fluentui-set-version-00dd38f2-8ae0-4949-b243-6d2e56befc0e.json new file mode 100644 index 00000000000000..7c7c244a636069 --- /dev/null +++ b/change/@fluentui-set-version-00dd38f2-8ae0-4949-b243-6d2e56befc0e.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/set-version", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-test-utilities-2b87aec7-698a-41ed-a226-a9ca03662e8e.json b/change/@fluentui-test-utilities-2b87aec7-698a-41ed-a226-a9ca03662e8e.json new file mode 100644 index 00000000000000..221b9801e9b196 --- /dev/null +++ b/change/@fluentui-test-utilities-2b87aec7-698a-41ed-a226-a9ca03662e8e.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/test-utilities", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-theme-d092ed70-5637-464a-ab27-c56ddf26337b.json b/change/@fluentui-theme-d092ed70-5637-464a-ab27-c56ddf26337b.json new file mode 100644 index 00000000000000..bebe9bcdd0627a --- /dev/null +++ b/change/@fluentui-theme-d092ed70-5637-464a-ab27-c56ddf26337b.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/theme", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-webpack-utilities-ecd3a551-8f4f-408b-9c8c-bc62b6ded90b.json b/change/@fluentui-webpack-utilities-ecd3a551-8f4f-408b-9c8c-bc62b6ded90b.json new file mode 100644 index 00000000000000..1316793f82dc5c --- /dev/null +++ b/change/@fluentui-webpack-utilities-ecd3a551-8f4f-408b-9c8c-bc62b6ded90b.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: enable isolateModules", + "packageName": "@fluentui/webpack-utilities", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/packages/a11y-testing/tsconfig.json b/packages/a11y-testing/tsconfig.json index 96ccddcc8fa012..99e54cde6cd9fb 100644 --- a/packages/a11y-testing/tsconfig.json +++ b/packages/a11y-testing/tsconfig.json @@ -18,7 +18,8 @@ "skipLibCheck": true, "preserveConstEnums": true, "lib": ["es2017", "dom"], - "types": ["jest"] + "types": ["jest"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/api-docs/src/const-enum-overrides.ts b/packages/api-docs/src/const-enum-overrides.ts new file mode 100644 index 00000000000000..805bc12117ccb6 --- /dev/null +++ b/packages/api-docs/src/const-enum-overrides.ts @@ -0,0 +1,101 @@ +/** + * ☝️ NOTE: + * Types in this file provide const enums replacement that will compile with isolatedModules + */ + +import type { ApiItemKind as _ApiItemKind } from '@microsoft/api-extractor-model'; + +import type { DocNodeKind as _DocNodeKind } from '@microsoft/tsdoc'; + +export enum ApiItemKind { + CallSignature = 'CallSignature', + Class = 'Class', + Constructor = 'Constructor', + ConstructSignature = 'ConstructSignature', + EntryPoint = 'EntryPoint', + Enum = 'Enum', + EnumMember = 'EnumMember', + Function = 'Function', + IndexSignature = 'IndexSignature', + Interface = 'Interface', + Method = 'Method', + MethodSignature = 'MethodSignature', + Model = 'Model', + Namespace = 'Namespace', + Package = 'Package', + Property = 'Property', + PropertySignature = 'PropertySignature', + TypeAlias = 'TypeAlias', + Variable = 'Variable', + None = 'None', +} + +export enum DocNodeKind { + Block = 'Block', + BlockTag = 'BlockTag', + Excerpt = 'Excerpt', + FencedCode = 'FencedCode', + CodeSpan = 'CodeSpan', + Comment = 'Comment', + DeclarationReference = 'DeclarationReference', + ErrorText = 'ErrorText', + EscapedText = 'EscapedText', + HtmlAttribute = 'HtmlAttribute', + HtmlEndTag = 'HtmlEndTag', + HtmlStartTag = 'HtmlStartTag', + InheritDocTag = 'InheritDocTag', + InlineTag = 'InlineTag', + LinkTag = 'LinkTag', + MemberIdentifier = 'MemberIdentifier', + MemberReference = 'MemberReference', + MemberSelector = 'MemberSelector', + MemberSymbol = 'MemberSymbol', + Paragraph = 'Paragraph', + ParamBlock = 'ParamBlock', + ParamCollection = 'ParamCollection', + PlainText = 'PlainText', + Section = 'Section', + SoftBreak = 'SoftBreak', +} + +// Following function is used to keep 3rd party types in sync with our custom ones. test on "type level" +// If anything will go wrong this will throw TSC error +// +// Why do we need this? +// To be able to use `isolateModules` we cannot use nor consume const enums. +// @ts-expect-error - this function is only for type compat test + +function _testEnumsCompatibility() { + testApiItemKind(); + testDocNodeKind(); + + function testDocNodeKind() { + // @ts-expect-error - _DocNodeKind is const enum - cannot be used with isolateModules - this does the trick + type Keys = keyof typeof _DocNodeKind; + type Keys2 = keyof typeof DocNodeKind; + + let test = {} as Keys; + let test2 = {} as Keys2; + + test = test2; + test2 = test; + + // eslint-disable-next-line no-console + console.log(test, test2); + } + + function testApiItemKind() { + // @ts-expect-error - _ApiItemKind is const enum - cannot be used with isolateModules - this does the trick + type Keys = keyof typeof _ApiItemKind; + type Keys2 = keyof typeof ApiItemKind; + + let test = {} as Keys; + let test2 = {} as Keys2; + + test = test2; + test2 = test; + + // eslint-disable-next-line no-console + console.log(test, test2); + } +} diff --git a/packages/api-docs/src/pageJson.ts b/packages/api-docs/src/pageJson.ts index d5a9928ef8bdd6..bc453999748115 100644 --- a/packages/api-docs/src/pageJson.ts +++ b/packages/api-docs/src/pageJson.ts @@ -1,4 +1,5 @@ -import { ApiItem, ApiItemKind, ApiDocumentedItem, ApiModel } from '@microsoft/api-extractor-model'; +import { ApiItem, ApiDocumentedItem, ApiModel } from '@microsoft/api-extractor-model'; +import { ApiItemKind } from './const-enum-overrides'; import { findInlineTagByName } from './rendering'; import { ICollectedData } from './types-private'; import { ITableJson, IPageJson, PageGroups } from './types'; @@ -68,7 +69,11 @@ function initPageDataForItem( groupsByPage: { [pageName: string]: string }, fallbackGroup?: string, ): void { - if (supportedApiItems.includes(apiItem.kind) && apiItem instanceof ApiDocumentedItem && apiItem.tsdocComment) { + if ( + supportedApiItems.includes((apiItem.kind as unknown) as ApiItemKind) && + apiItem instanceof ApiDocumentedItem && + apiItem.tsdocComment + ) { const docCategoryTag = findInlineTagByName('@docCategory', apiItem.tsdocComment); if (docCategoryTag) { diff --git a/packages/api-docs/src/rendering.ts b/packages/api-docs/src/rendering.ts index e4cbea1f65d353..771ccdb06de9cf 100644 --- a/packages/api-docs/src/rendering.ts +++ b/packages/api-docs/src/rendering.ts @@ -1,7 +1,6 @@ import { DocExcerpt, DocInlineTag, - DocNodeKind, DocSection, DocComment, DocPlainText, @@ -14,6 +13,7 @@ import { DocBlock, } from '@microsoft/tsdoc'; import { ApiItem, ApiModel, ExcerptToken, IExcerptTokenRange } from '@microsoft/api-extractor-model'; +import { DocNodeKind } from './const-enum-overrides'; import { ILinkToken } from './types'; import { ICollectedData } from './types-private'; diff --git a/packages/api-docs/src/tableJson.ts b/packages/api-docs/src/tableJson.ts index 0171ce1b2c8c82..6082e13e7f172e 100644 --- a/packages/api-docs/src/tableJson.ts +++ b/packages/api-docs/src/tableJson.ts @@ -3,19 +3,19 @@ import { ApiEnum, ApiEnumMember, ApiInterface, - ApiItemKind, ApiTypeAlias, ApiDeclaredItem, HeritageType, ApiItem, } from '@microsoft/api-extractor-model'; +import { ApiItemKind } from './const-enum-overrides'; import { ITableJson, ITableRowJson } from './types'; import { renderDocNodeWithoutInlineTag, getTokenHyperlinks, renderNodes } from './rendering'; import { ICollectedData } from './types-private'; import { createTableRowJson, createEnumTableRowJson } from './tableRowJson'; export function createTableJson(collectedData: ICollectedData, apiItem: ApiItem): ITableJson | undefined { - switch (apiItem.kind) { + switch ((apiItem.kind as unknown) as ApiItemKind) { case ApiItemKind.Interface: { return createInterfacePageJson(collectedData, apiItem as ApiInterface); } diff --git a/packages/api-docs/src/tableRowJson.ts b/packages/api-docs/src/tableRowJson.ts index b27a2d746f2dfb..5ab3ce5228b85a 100644 --- a/packages/api-docs/src/tableRowJson.ts +++ b/packages/api-docs/src/tableRowJson.ts @@ -2,7 +2,6 @@ import { ApiDeclaredItem, ExcerptToken, IExcerptTokenRange, - ApiItemKind, ApiPropertySignature, ApiMethodSignature, ApiEnumMember, @@ -11,6 +10,7 @@ import { ApiConstructor, ApiMethod, } from '@microsoft/api-extractor-model'; +import { ApiItemKind } from './const-enum-overrides'; import { ICollectedData } from './types-private'; import { ITableRowJson, IEnumTableRowJson } from './types'; import { @@ -23,8 +23,9 @@ import { export function createTableRowJson(collectedData: ICollectedData, apiItem: ApiItem): ITableRowJson | undefined { let tableRowJson: ITableRowJson | undefined; + const apiKind = (apiItem.kind as unknown) as ApiItemKind; - switch (apiItem.kind) { + switch (apiKind) { case ApiItemKind.Property: case ApiItemKind.PropertySignature: { const apiProperty = apiItem as ApiPropertySignature | ApiProperty; @@ -50,7 +51,7 @@ export function createTableRowJson(collectedData: ICollectedData, apiItem: ApiIt apiMethod.excerpt.tokenRange, ); - if (apiMethod.kind === ApiItemKind.Constructor) { + if (((apiMethod.kind as unknown) as ApiItemKind) === ApiItemKind.Constructor) { // The constructor is similar to a method, but we have to manually add the name. tableRowJson.name = 'constructor'; } @@ -67,7 +68,7 @@ export function createTableRowJson(collectedData: ICollectedData, apiItem: ApiIt // (item.excerpt.text). It's required if there's no ? after the name. if ( tableRowJson && - (apiItem.kind === ApiItemKind.PropertySignature || apiItem.kind === ApiItemKind.MethodSignature) && + (apiKind === ApiItemKind.PropertySignature || apiKind === ApiItemKind.MethodSignature) && /^\w+[:(]/.test((apiItem as ApiDeclaredItem).excerpt.text) ) { tableRowJson.required = true; diff --git a/packages/api-docs/tsconfig.json b/packages/api-docs/tsconfig.json index 0bc32f3283be5e..28c48a1aae311b 100644 --- a/packages/api-docs/tsconfig.json +++ b/packages/api-docs/tsconfig.json @@ -19,7 +19,8 @@ "preserveConstEnums": true, "downlevelIteration": true, "lib": ["es2017"], - "types": [] + "types": [], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/azure-themes/tsconfig.json b/packages/azure-themes/tsconfig.json index 46954f1b6ee6d6..d3161f2c532fee 100644 --- a/packages/azure-themes/tsconfig.json +++ b/packages/azure-themes/tsconfig.json @@ -16,7 +16,8 @@ "skipLibCheck": true, "moduleResolution": "node", "preserveConstEnums": true, - "lib": ["es5", "dom"] + "lib": ["es5", "dom"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/bundle-size/tsconfig.json b/packages/bundle-size/tsconfig.json index 89ace2d81a507c..9cbf47ad7f1d5c 100644 --- a/packages/bundle-size/tsconfig.json +++ b/packages/bundle-size/tsconfig.json @@ -5,7 +5,8 @@ "checkJs": true, "noEmit": true, "resolveJsonModule": true, - "types": ["jest", "node"] + "types": ["jest", "node"], + "isolatedModules": true }, "include": ["src/**/*.js", "__fixture__/*.js"] } diff --git a/packages/codemods/src/modRunner/tests/mocks/MockProject/src/File-react.tsx b/packages/codemods/src/modRunner/tests/mocks/MockProject/src/File-react.tsx index e69de29bb2d1d6..cb0ff5c3b541f6 100644 --- a/packages/codemods/src/modRunner/tests/mocks/MockProject/src/File-react.tsx +++ b/packages/codemods/src/modRunner/tests/mocks/MockProject/src/File-react.tsx @@ -0,0 +1 @@ +export {}; diff --git a/packages/codemods/src/modRunner/tests/mocks/MockProject/src/File.ts b/packages/codemods/src/modRunner/tests/mocks/MockProject/src/File.ts index e69de29bb2d1d6..cb0ff5c3b541f6 100644 --- a/packages/codemods/src/modRunner/tests/mocks/MockProject/src/File.ts +++ b/packages/codemods/src/modRunner/tests/mocks/MockProject/src/File.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/codemods/tsconfig.json b/packages/codemods/tsconfig.json index 21f260a9da086c..63425c6976a161 100644 --- a/packages/codemods/tsconfig.json +++ b/packages/codemods/tsconfig.json @@ -19,7 +19,8 @@ "esModuleInterop": true, "lib": ["dom", "es2015.promise", "es2017"], "types": ["jest", "node"], - "resolveJsonModule": true + "resolveJsonModule": true, + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/cra-template/tsconfig.json b/packages/cra-template/tsconfig.json index d0cebca8137d02..7f3c56205085ed 100644 --- a/packages/cra-template/tsconfig.json +++ b/packages/cra-template/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../scripts/tsconfig.json", "compilerOptions": { - "noEmit": true + "noEmit": true, + "isolatedModules": true }, "include": ["scripts"], "exclude": ["node_modules", "template"] diff --git a/packages/date-time-utilities/tsconfig.json b/packages/date-time-utilities/tsconfig.json index d39522a783a614..8b4d1647f1780f 100644 --- a/packages/date-time-utilities/tsconfig.json +++ b/packages/date-time-utilities/tsconfig.json @@ -7,6 +7,7 @@ "jsx": "react", "declaration": true, "sourceMap": true, + "isolatedModules": true, "experimentalDecorators": true, "importHelpers": true, "noImplicitAny": true, diff --git a/packages/dom-utilities/tsconfig.json b/packages/dom-utilities/tsconfig.json index beb1660276af80..8d9ce15689fd75 100644 --- a/packages/dom-utilities/tsconfig.json +++ b/packages/dom-utilities/tsconfig.json @@ -16,7 +16,8 @@ "preserveConstEnums": true, "lib": ["es5", "dom"], "typeRoots": ["../../node_modules/@types", "../../typings"], - "types": ["jest", "custom-global"] + "types": ["jest", "custom-global"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/eslint-plugin/tsconfig.json b/packages/eslint-plugin/tsconfig.json index 1ad0e7809d02dd..66656b56541f54 100644 --- a/packages/eslint-plugin/tsconfig.json +++ b/packages/eslint-plugin/tsconfig.json @@ -8,7 +8,8 @@ "noUnusedLocals": true, "skipLibCheck": true, "strict": true, - "types": ["node"] + "types": ["node"], + "isolatedModules": true }, "include": ["src/**/*"], "exclude": ["**/fixtures/**/*"] diff --git a/packages/example-data/tsconfig.json b/packages/example-data/tsconfig.json index 3490b772ef97bd..5d74b871e32bc4 100644 --- a/packages/example-data/tsconfig.json +++ b/packages/example-data/tsconfig.json @@ -16,7 +16,8 @@ "moduleResolution": "node", "preserveConstEnums": true, "lib": ["es5", "dom"], - "types": [] + "types": [], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/font-icons-mdl2/src/index.ts b/packages/font-icons-mdl2/src/index.ts index 58d83f1f78d113..f84a20ff4cab89 100644 --- a/packages/font-icons-mdl2/src/index.ts +++ b/packages/font-icons-mdl2/src/index.ts @@ -87,7 +87,9 @@ export function initializeIcons( registerIconAliases(); } -// eslint-disable-next-line deprecation/deprecation -export { IconNames, IconNamesInput } from './IconNames'; +/* eslint-disable deprecation/deprecation */ +export type { IconNamesInput } from './IconNames'; +export { IconNames } from './IconNames'; +/* eslint-enable deprecation/deprecation */ import './version'; diff --git a/packages/foundation-legacy/tsconfig.json b/packages/foundation-legacy/tsconfig.json index 19ef5bb51e01cc..c27a18e625da4e 100644 --- a/packages/foundation-legacy/tsconfig.json +++ b/packages/foundation-legacy/tsconfig.json @@ -15,6 +15,7 @@ "noImplicitAny": true, "moduleResolution": "node", "preserveConstEnums": true, + "isolatedModules": true, "lib": ["es5", "dom", "ES2015.Iterable"], "typeRoots": ["../../node_modules/@types", "../../typings"], "types": ["jest", "custom-global"] diff --git a/packages/jest-serializer-merge-styles/tsconfig.json b/packages/jest-serializer-merge-styles/tsconfig.json index 1ac6eeabdbfda9..ea104793c121e9 100644 --- a/packages/jest-serializer-merge-styles/tsconfig.json +++ b/packages/jest-serializer-merge-styles/tsconfig.json @@ -13,7 +13,8 @@ "forceConsistentCasingInFileNames": true, "moduleResolution": "node", "preserveConstEnums": true, - "types": ["jest"] + "types": ["jest"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/keyboard-key/tsconfig.json b/packages/keyboard-key/tsconfig.json index a3fc0c002bf5be..8be7346c5795a2 100644 --- a/packages/keyboard-key/tsconfig.json +++ b/packages/keyboard-key/tsconfig.json @@ -16,7 +16,8 @@ "moduleResolution": "node", "preserveConstEnums": true, "lib": ["es5", "dom"], - "types": ["jest"] + "types": ["jest"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/merge-styles/src/index.ts b/packages/merge-styles/src/index.ts index 4fa86b8c3048ef..3f2d819d21d81b 100644 --- a/packages/merge-styles/src/index.ts +++ b/packages/merge-styles/src/index.ts @@ -1,17 +1,24 @@ -export { IStyle, IStyleBase, IStyleBaseArray } from './IStyle'; +export type { IStyle, IStyleBase, IStyleBaseArray } from './IStyle'; -export { IRawStyle } from './IRawStyle'; +export type { IRawStyle } from './IRawStyle'; -export { IKeyframes } from './IKeyframes'; +export type { IKeyframes } from './IKeyframes'; -export { IStyleFunction, IStyleFunctionOrObject } from './IStyleFunction'; +export type { IStyleFunction, IStyleFunctionOrObject } from './IStyleFunction'; -export { DeepPartial } from './DeepPartial'; +export type { DeepPartial } from './DeepPartial'; // eslint-disable-next-line deprecation/deprecation -export { IConcatenatedStyleSet, IProcessedStyleSet, IStyleSet, Omit } from './IStyleSet'; +export type { IConcatenatedStyleSet, IProcessedStyleSet, IStyleSet, Omit } from './IStyleSet'; -export { ICSSRule, ICSSPixelUnitRule, IFontFace, IFontWeight, IRawFontStyle, IRawStyleBase } from './IRawStyleBase'; +export type { + ICSSRule, + ICSSPixelUnitRule, + IFontFace, + IFontWeight, + IRawFontStyle, + IRawStyleBase, +} from './IRawStyleBase'; export { mergeStyles, mergeCss } from './mergeStyles'; @@ -25,10 +32,11 @@ export { fontFace } from './fontFace'; export { keyframes } from './keyframes'; -export * from './Stylesheet'; +export { InjectionMode, Stylesheet } from './Stylesheet'; +export type { ICSPSettings, ISerializedStylesheet, IStyleSheetConfig } from './Stylesheet'; export { setRTL } from './StyleOptionsState'; -export { ObjectOnly } from './ObjectOnly'; +export type { ObjectOnly } from './ObjectOnly'; import './version'; diff --git a/packages/merge-styles/tsconfig.json b/packages/merge-styles/tsconfig.json index f4544ef012d4b6..46561597c98414 100644 --- a/packages/merge-styles/tsconfig.json +++ b/packages/merge-styles/tsconfig.json @@ -13,6 +13,7 @@ "forceConsistentCasingInFileNames": true, "moduleResolution": "node", "preserveConstEnums": true, + "isolatedModules": true, "types": ["jest"] }, "include": ["src"] diff --git a/packages/public-docsite-setup/tsconfig.json b/packages/public-docsite-setup/tsconfig.json index 9014148a54d8ae..c742596612fe20 100644 --- a/packages/public-docsite-setup/tsconfig.json +++ b/packages/public-docsite-setup/tsconfig.json @@ -13,7 +13,8 @@ "noUnusedLocals": true, "skipLibCheck": true, "lib": ["es5", "dom"], - "types": ["webpack-env"] + "types": ["webpack-env"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/react-cards/tsconfig.json b/packages/react-cards/tsconfig.json index 19ef5bb51e01cc..edad57a1972194 100644 --- a/packages/react-cards/tsconfig.json +++ b/packages/react-cards/tsconfig.json @@ -17,7 +17,8 @@ "preserveConstEnums": true, "lib": ["es5", "dom", "ES2015.Iterable"], "typeRoots": ["../../node_modules/@types", "../../typings"], - "types": ["jest", "custom-global"] + "types": ["jest", "custom-global"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/react-charting/src/components/AreaChart/AreaChart.types.ts b/packages/react-charting/src/components/AreaChart/AreaChart.types.ts index 0bacb39314cfd8..be00a25b15da19 100644 --- a/packages/react-charting/src/components/AreaChart/AreaChart.types.ts +++ b/packages/react-charting/src/components/AreaChart/AreaChart.types.ts @@ -15,7 +15,7 @@ import { IChildProps, } from '../CommonComponents/CartesianChart.types'; -export { IChildProps, IRefArrayData, IBasestate, ILineChartDataPoint, ILineChartPoints, IMargins }; +export type { IChildProps, IRefArrayData, IBasestate, ILineChartDataPoint, ILineChartPoints, IMargins }; export interface IAreaChartProps extends ICartesianChartProps { /** * Data to render in the chart. diff --git a/packages/react-charting/src/components/LineChart/LineChart.types.ts b/packages/react-charting/src/components/LineChart/LineChart.types.ts index 80145541f07b7c..d36e3d3b1cc334 100644 --- a/packages/react-charting/src/components/LineChart/LineChart.types.ts +++ b/packages/react-charting/src/components/LineChart/LineChart.types.ts @@ -15,7 +15,7 @@ import { IChildProps, } from '../CommonComponents/index'; -export { IChildProps, ILineChartPoints, IMargins, IBasestate, IRefArrayData }; +export type { IChildProps, ILineChartPoints, IMargins, IBasestate, IRefArrayData }; export interface ILineChartProps extends ICartesianChartProps { /** * Data to render in the chart. diff --git a/packages/react-charting/src/components/PieChart/PieChart.types.ts b/packages/react-charting/src/components/PieChart/PieChart.types.ts index 4349ab95ac3e5e..a85557bba767b3 100644 --- a/packages/react-charting/src/components/PieChart/PieChart.types.ts +++ b/packages/react-charting/src/components/PieChart/PieChart.types.ts @@ -1,7 +1,7 @@ import { ITheme, IStyle } from '@fluentui/react/lib/Styling'; import { IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities'; import { IDataPoint } from '../../types/IDataPoint'; -export { IDataPoint } from '../../types/IDataPoint'; +export type { IDataPoint } from '../../types/IDataPoint'; export interface IPieChart {} export interface IPieChartProps { diff --git a/packages/react-charting/src/components/SankeyChart/SankeyChart.types.ts b/packages/react-charting/src/components/SankeyChart/SankeyChart.types.ts index 100834f6f2b4db..dedb9b7c2e22a8 100644 --- a/packages/react-charting/src/components/SankeyChart/SankeyChart.types.ts +++ b/packages/react-charting/src/components/SankeyChart/SankeyChart.types.ts @@ -2,7 +2,7 @@ import { ITheme, IStyle } from '@fluentui/react/lib/Styling'; import { IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities'; import { IChartProps } from '../../types/IDataPoint'; -export { IChartProps, IDataPoint, ISankeyChartData } from '../../types/IDataPoint'; +export type { IChartProps, IDataPoint, ISankeyChartData } from '../../types/IDataPoint'; export interface ISankeyChartProps { /** diff --git a/packages/react-charting/tsconfig.json b/packages/react-charting/tsconfig.json index aff8190b50a3af..d9e220a59c2150 100644 --- a/packages/react-charting/tsconfig.json +++ b/packages/react-charting/tsconfig.json @@ -19,7 +19,8 @@ "skipLibCheck": true, "lib": ["es5", "dom"], "typeRoots": ["../../node_modules/@types", "../../typings"], - "types": ["jest", "custom-global"] + "types": ["jest", "custom-global"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/react-conformance/tsconfig.json b/packages/react-conformance/tsconfig.json index a71ee73bcc3961..08e77d03e1277a 100644 --- a/packages/react-conformance/tsconfig.json +++ b/packages/react-conformance/tsconfig.json @@ -14,6 +14,7 @@ "strict": true, "moduleResolution": "node", "preserveConstEnums": true, + "isolatedModules": true, "lib": ["es2017", "dom"], "types": ["jest", "node"] }, diff --git a/packages/react-date-time/tsconfig.json b/packages/react-date-time/tsconfig.json index 19ef5bb51e01cc..edad57a1972194 100644 --- a/packages/react-date-time/tsconfig.json +++ b/packages/react-date-time/tsconfig.json @@ -17,7 +17,8 @@ "preserveConstEnums": true, "lib": ["es5", "dom", "ES2015.Iterable"], "typeRoots": ["../../node_modules/@types", "../../typings"], - "types": ["jest", "custom-global"] + "types": ["jest", "custom-global"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/react-docsite-components/src/components/ApiReferencesTable/ApiReferencesTable.tsx b/packages/react-docsite-components/src/components/ApiReferencesTable/ApiReferencesTable.tsx index 8fbf1c00348bd4..11a162fa4de144 100644 --- a/packages/react-docsite-components/src/components/ApiReferencesTable/ApiReferencesTable.tsx +++ b/packages/react-docsite-components/src/components/ApiReferencesTable/ApiReferencesTable.tsx @@ -25,8 +25,6 @@ import { Markdown } from '../Markdown/index'; import { codeFontFamily } from '../CodeSnippet/CodeSnippet.styles'; import { titleCase } from '../../utilities/string'; -// TODO: remove -export { IApiReferencesTableProps }; export type IApiReferencesTableState = {}; /** @internal */ diff --git a/packages/react-docsite-components/src/components/ApiReferencesTable/index.ts b/packages/react-docsite-components/src/components/ApiReferencesTable/index.ts index eaaec8d8394e9d..a9e2cc5f478474 100644 --- a/packages/react-docsite-components/src/components/ApiReferencesTable/index.ts +++ b/packages/react-docsite-components/src/components/ApiReferencesTable/index.ts @@ -1,3 +1,4 @@ -export { ApiReferencesTable, IApiReferencesTableState, gapTokens } from './ApiReferencesTable'; +export { ApiReferencesTable, gapTokens } from './ApiReferencesTable'; +export type { IApiReferencesTableState } from './ApiReferencesTable'; export * from './ApiReferencesTableSet'; export * from './ApiReferencesTableSet.types'; diff --git a/packages/react-docsite-components/src/utilities/router/index.ts b/packages/react-docsite-components/src/utilities/router/index.ts index fe6921beaf2c17..177e53a764a222 100644 --- a/packages/react-docsite-components/src/utilities/router/index.ts +++ b/packages/react-docsite-components/src/utilities/router/index.ts @@ -1,2 +1,4 @@ -export { Route, IRouteProps } from './Route'; -export { Router, IRouterProps } from './Router'; +export { Route } from './Route'; +export type { IRouteProps } from './Route'; +export { Router } from './Router'; +export type { IRouterProps } from './Router'; diff --git a/packages/react-docsite-components/tsconfig.json b/packages/react-docsite-components/tsconfig.json index 0330b7b3d4ae39..fa18df1c2fcba7 100644 --- a/packages/react-docsite-components/tsconfig.json +++ b/packages/react-docsite-components/tsconfig.json @@ -17,7 +17,8 @@ "noImplicitThis": true, "outDir": "lib", "lib": ["es5", "dom", "es2015.promise"], - "types": ["webpack-env", "jest"] + "types": ["webpack-env", "jest"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/react-examples/tsconfig.json b/packages/react-examples/tsconfig.json index cde221a5de5dd8..540438dc11b077 100644 --- a/packages/react-examples/tsconfig.json +++ b/packages/react-examples/tsconfig.json @@ -19,6 +19,7 @@ "lib": ["es5", "dom", "es2015.promise"], "typeRoots": ["../../node_modules/@types", "../../typings"], "types": ["webpack-env", "custom-global", "node", "cypress", "cypress-storybook/cypress", "cypress-real-events"], + "isolatedModules": true, "paths": { "@fluentui/react-examples/lib/*": ["./src/*"], "@fluentui/react-examples": ["./src"] diff --git a/packages/react-file-type-icons/tsconfig.json b/packages/react-file-type-icons/tsconfig.json index c1045b34aac877..40d56107c6e5c4 100644 --- a/packages/react-file-type-icons/tsconfig.json +++ b/packages/react-file-type-icons/tsconfig.json @@ -11,11 +11,10 @@ "strict": true, "forceConsistentCasingInFileNames": true, "moduleResolution": "node", - "preserveConstEnums": false, + "preserveConstEnums": true, "typeRoots": ["../../node_modules/@types", "../../typings"], "types": ["jest", "custom-global"], - // Must be false when preserveConstEnums is false - "isolatedModules": false + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/react-icons-mdl2-branded/tsconfig.json b/packages/react-icons-mdl2-branded/tsconfig.json index e14b6d79ca44bf..92ed8ce7c1a32b 100644 --- a/packages/react-icons-mdl2-branded/tsconfig.json +++ b/packages/react-icons-mdl2-branded/tsconfig.json @@ -16,7 +16,8 @@ "preserveConstEnums": true, "lib": ["ES2019", "DOM"], "typeRoots": ["../../node_modules/@types", "../../typings"], - "types": ["custom-global"] + "types": ["custom-global"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/react-window-provider/tsconfig.json b/packages/react-window-provider/tsconfig.json index 7064abfe57c89b..6ff64979d0f9ae 100644 --- a/packages/react-window-provider/tsconfig.json +++ b/packages/react-window-provider/tsconfig.json @@ -12,6 +12,7 @@ "noUnusedLocals": true, "forceConsistentCasingInFileNames": true, "strict": true, + "isolatedModules": true, "moduleResolution": "node", "preserveConstEnums": true, "lib": ["es2015", "dom", "es2015.promise"], diff --git a/packages/set-version/tsconfig.json b/packages/set-version/tsconfig.json index c6d6b9960dc493..b28a7aaa551418 100644 --- a/packages/set-version/tsconfig.json +++ b/packages/set-version/tsconfig.json @@ -11,6 +11,7 @@ "strictNullChecks": true, "forceConsistentCasingInFileNames": true, "moduleResolution": "node", + "isolatedModules": true, "types": ["jest"] }, "include": ["src"] diff --git a/packages/storybook/src/knobs/useTheme.ts b/packages/storybook/src/knobs/useTheme.ts deleted file mode 100644 index b1bcbf0910f9e6..00000000000000 --- a/packages/storybook/src/knobs/useTheme.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { select } from '@storybook/addon-knobs'; -import * as V8Themes from '../themes/v8/index'; -import * as V7Themes from '../themes/v7/index'; - -const themeSelectorLabel = 'Theme'; - -const defaultThemeOption = { label: 'None', theme: undefined }; -const v8ThemeOptions = [{ label: 'V8 - Fluent', theme: V8Themes.FluentTheme }]; -const v7ThemeOptions = [ - { label: 'V7 - Fluent', theme: V7Themes.FluentTheme }, - { label: 'V7 - Dark', theme: V7Themes.DarkTheme, isDark: true }, - { label: 'V7 - Word', theme: V7Themes.WordTheme }, - { label: 'V7 - Teams', theme: V7Themes.TeamsTheme }, - { label: 'V7 - Azure Light', theme: V7Themes.AzureLightTheme }, - { label: 'V7 - Azure Dark', theme: V7Themes.AzureDarkTheme, isDark: true }, -]; - -const themeOptions = [defaultThemeOption, ...v8ThemeOptions, ...v7ThemeOptions]; - -export const useTheme = () => - // Casting any here due to issue: https://github.com/storybookjs/storybook/issues/9751 - // eslint-disable-next-line @typescript-eslint/no-explicit-any - select(themeSelectorLabel, themeOptions as any, defaultThemeOption as any); diff --git a/packages/storybook/src/themes/v7/AzureDarkTheme.ts b/packages/storybook/src/themes/v7/AzureDarkTheme.ts deleted file mode 100644 index 62248b1daa4b3c..00000000000000 --- a/packages/storybook/src/themes/v7/AzureDarkTheme.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { AzureCustomizationsDark } from '@fluentui/azure-themes'; -import type { Theme } from '@fluentui/theme'; - -export const AzureDarkTheme: Theme = AzureCustomizationsDark.settings.theme; diff --git a/packages/storybook/src/themes/v7/AzureLightTheme.ts b/packages/storybook/src/themes/v7/AzureLightTheme.ts deleted file mode 100644 index 59617989b043fe..00000000000000 --- a/packages/storybook/src/themes/v7/AzureLightTheme.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { AzureCustomizationsLight } from '@fluentui/azure-themes'; -import type { Theme } from '@fluentui/theme'; - -export const AzureLightTheme: Theme = AzureCustomizationsLight.settings.theme; diff --git a/packages/storybook/src/themes/v7/DarkTheme.ts b/packages/storybook/src/themes/v7/DarkTheme.ts deleted file mode 100644 index 11e34a2fee0f2d..00000000000000 --- a/packages/storybook/src/themes/v7/DarkTheme.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { DarkCustomizations } from '@fluentui/theme-samples'; -import type { Theme } from '@fluentui/theme'; - -export const DarkTheme: Theme = DarkCustomizations.settings.theme; diff --git a/packages/storybook/src/themes/v7/FluentTheme.ts b/packages/storybook/src/themes/v7/FluentTheme.ts deleted file mode 100644 index eeacb2ee78d386..00000000000000 --- a/packages/storybook/src/themes/v7/FluentTheme.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { DefaultCustomizations } from '@fluentui/theme-samples'; -import type { Theme } from '@fluentui/theme'; - -export const FluentTheme: Theme = DefaultCustomizations.settings.theme; diff --git a/packages/storybook/src/themes/v7/TeamsTheme.ts b/packages/storybook/src/themes/v7/TeamsTheme.ts deleted file mode 100644 index ab388cf5aaf123..00000000000000 --- a/packages/storybook/src/themes/v7/TeamsTheme.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { TeamsCustomizations } from '@fluentui/theme-samples'; -import type { Theme } from '@fluentui/theme'; - -export const TeamsTheme: Theme = TeamsCustomizations.settings.theme; diff --git a/packages/storybook/src/themes/v7/WordTheme.ts b/packages/storybook/src/themes/v7/WordTheme.ts deleted file mode 100644 index 29e87dd722f68c..00000000000000 --- a/packages/storybook/src/themes/v7/WordTheme.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { WordCustomizations } from '@fluentui/theme-samples'; -import type { Theme } from '@fluentui/theme'; - -export const WordTheme: Theme = WordCustomizations.settings.theme; diff --git a/packages/storybook/src/themes/v7/index.ts b/packages/storybook/src/themes/v7/index.ts deleted file mode 100644 index 26a1ea78828e44..00000000000000 --- a/packages/storybook/src/themes/v7/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './AzureDarkTheme'; -export * from './AzureLightTheme'; -export * from './DarkTheme'; -export * from './FluentTheme'; -export * from './TeamsTheme'; -export * from './WordTheme'; diff --git a/packages/storybook/src/themes/v8/FluentTheme.ts b/packages/storybook/src/themes/v8/FluentTheme.ts deleted file mode 100644 index f7420da0656656..00000000000000 --- a/packages/storybook/src/themes/v8/FluentTheme.ts +++ /dev/null @@ -1 +0,0 @@ -export { FluentTheme } from '@fluentui/theme'; diff --git a/packages/storybook/src/themes/v8/index.ts b/packages/storybook/src/themes/v8/index.ts deleted file mode 100644 index 1ee68fb8857daa..00000000000000 --- a/packages/storybook/src/themes/v8/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './FluentTheme'; diff --git a/packages/storybook/tsconfig.json b/packages/storybook/tsconfig.json index 1f45771cf0e0c8..66db56e28c8b2e 100644 --- a/packages/storybook/tsconfig.json +++ b/packages/storybook/tsconfig.json @@ -17,7 +17,8 @@ "preserveConstEnums": true, "lib": ["es6", "dom"], "types": [], - "esModuleInterop": true + "esModuleInterop": true, + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/test-utilities/tsconfig.json b/packages/test-utilities/tsconfig.json index b4b3736f5a0b11..3856d5f994d0da 100644 --- a/packages/test-utilities/tsconfig.json +++ b/packages/test-utilities/tsconfig.json @@ -16,7 +16,8 @@ "moduleResolution": "node", "preserveConstEnums": true, "lib": ["es2017", "dom"], - "types": ["jest"] + "types": ["jest"], + "isolatedModules": true }, "include": ["src"] } diff --git a/packages/theme/tsconfig.json b/packages/theme/tsconfig.json index 75349f4a999e3d..8262d7db1ae7e5 100644 --- a/packages/theme/tsconfig.json +++ b/packages/theme/tsconfig.json @@ -13,6 +13,7 @@ "forceConsistentCasingInFileNames": true, "strict": true, "moduleResolution": "node", + "isolatedModules": true, "preserveConstEnums": true, "lib": ["es5", "dom", "ES2015.Iterable"], "typeRoots": ["../../node_modules/@types", "../../typings"], diff --git a/packages/webpack-utilities/tsconfig.json b/packages/webpack-utilities/tsconfig.json index 88d16e448009f8..e67b0e24b568a4 100644 --- a/packages/webpack-utilities/tsconfig.json +++ b/packages/webpack-utilities/tsconfig.json @@ -14,7 +14,8 @@ "forceConsistentCasingInFileNames": true, "moduleResolution": "node", "preserveConstEnums": true, - "skipLibCheck": true + "skipLibCheck": true, + "isolatedModules": true }, "include": ["src"] }