diff --git a/change/@fluentui-react-text-a4574ee1-6ef1-490d-930a-383a0cd7c20f.json b/change/@fluentui-react-text-a4574ee1-6ef1-490d-930a-383a0cd7c20f.json new file mode 100644 index 00000000000000..f2a56023452baf --- /dev/null +++ b/change/@fluentui-react-text-a4574ee1-6ef1-490d-930a-383a0cd7c20f.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "chore: Migrate to new package structure.", + "packageName": "@fluentui/react-text", + "email": "tristan.watanabe@gmail.com", + "dependentChangeType": "patch" +} diff --git a/packages/react-components/react-text/.npmignore b/packages/react-components/react-text/.npmignore index 52d2a7273a151d..f7ce568a6dbf7c 100644 --- a/packages/react-components/react-text/.npmignore +++ b/packages/react-components/react-text/.npmignore @@ -3,10 +3,11 @@ bundle-size/ config/ coverage/ -e2e/ +docs/ etc/ node_modules/ src/ +stories/ dist/types/ temp/ __fixtures__ @@ -16,7 +17,7 @@ __tests__ *.api.json *.log *.spec.* -*.stories.* +*.cy.* *.test.* *.yml diff --git a/packages/react-components/react-text/.storybook/main.js b/packages/react-components/react-text/.storybook/main.js index f57cfd09509e78..26536b61b387f6 100644 --- a/packages/react-components/react-text/.storybook/main.js +++ b/packages/react-components/react-text/.storybook/main.js @@ -2,7 +2,7 @@ const rootMain = require('../../../../.storybook/main'); module.exports = /** @type {Omit} */ ({ ...rootMain, - stories: [...rootMain.stories, '../src/**/*.stories.mdx', '../src/**/index.stories.@(ts|tsx)'], + stories: [...rootMain.stories, '../stories/**/*.stories.mdx', '../stories/**/index.stories.@(ts|tsx)'], addons: [...rootMain.addons], webpackFinal: (config, options) => { const localConfig = { ...rootMain.webpackFinal(config, options) }; diff --git a/packages/react-components/react-text/.storybook/tsconfig.json b/packages/react-components/react-text/.storybook/tsconfig.json index f9f60e1234ed49..ea89218a3d916f 100644 --- a/packages/react-components/react-text/.storybook/tsconfig.json +++ b/packages/react-components/react-text/.storybook/tsconfig.json @@ -6,5 +6,5 @@ "checkJs": true, "types": ["static-assets", "environment", "storybook__addons"] }, - "include": ["../src/**/*.stories.ts", "../src/**/*.stories.tsx", "*.js"] + "include": ["../stories/**/*.stories.ts", "../stories/**/*.stories.tsx", "*.js"] } diff --git a/packages/react-components/react-text/README.md b/packages/react-components/react-text/README.md index accdb24a0cf9a9..8aef8926e7a856 100644 --- a/packages/react-components/react-text/README.md +++ b/packages/react-components/react-text/README.md @@ -47,7 +47,7 @@ const App = () => ( ## Typography wrappers -![List of typography variants by sorted descending by size](./assets/typography-examples.gif 'Typography wrapper list') +![List of typography variants by sorted descending by size](./docs/assets/typography-examples.gif 'Typography wrapper list') Wrappers offer an easy way to use text according to the Fluent Design System while also providing semantic code readability. diff --git a/packages/react-components/react-text/config/api-extractor.json b/packages/react-components/react-text/config/api-extractor.json index eee94ff6de902d..637d9797ae3e6e 100644 --- a/packages/react-components/react-text/config/api-extractor.json +++ b/packages/react-components/react-text/config/api-extractor.json @@ -1,5 +1,9 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", "extends": "@fluentui/scripts/api-extractor/api-extractor.common.v-next.json", - "mainEntryPointFilePath": "/dist/types/index.d.ts" + "dtsRollup": { + "enabled": true, + "untrimmedFilePath": "", + "publicTrimmedFilePath": "/dist/index.d.ts" + } } diff --git a/packages/react-components/react-text/config/api-extractor.local.json b/packages/react-components/react-text/config/api-extractor.local.json deleted file mode 100644 index 69e764bce3a592..00000000000000 --- a/packages/react-components/react-text/config/api-extractor.local.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - "extends": "./api-extractor.json", - "mainEntryPointFilePath": "/dist/types/packages/react-components//src/index.d.ts" -} diff --git a/packages/react-components/react-text/MIGRATION.md b/packages/react-components/react-text/docs/MIGRATION.md similarity index 100% rename from packages/react-components/react-text/MIGRATION.md rename to packages/react-components/react-text/docs/MIGRATION.md diff --git a/packages/react-components/react-text/Spec.md b/packages/react-components/react-text/docs/Spec.md similarity index 100% rename from packages/react-components/react-text/Spec.md rename to packages/react-components/react-text/docs/Spec.md diff --git a/packages/react-components/react-text/assets/typography-examples.gif b/packages/react-components/react-text/docs/assets/typography-examples.gif similarity index 100% rename from packages/react-components/react-text/assets/typography-examples.gif rename to packages/react-components/react-text/docs/assets/typography-examples.gif diff --git a/packages/react-components/react-text/package.json b/packages/react-components/react-text/package.json index 477bad91a9aa18..c39527e5cc5635 100644 --- a/packages/react-components/react-text/package.json +++ b/packages/react-components/react-text/package.json @@ -4,7 +4,7 @@ "description": "Text is a typography and styling abstraction component that can be used to ensure the consistency of all text across your application.", "main": "lib-commonjs/index.js", "module": "lib/index.js", - "typings": "dist/index.d.ts", + "typings": "./dist/index.d.ts", "sideEffects": false, "repository": { "type": "git", @@ -20,10 +20,9 @@ "lint": "just-scripts lint", "start": "yarn storybook", "test": "jest --passWithNoTests", - "docs": "api-extractor run --config=config/api-extractor.local.json --local", - "build:local": "tsc -p ./tsconfig.lib.json --module esnext --emitDeclarationOnly && node ../../../scripts/typescript/normalize-import --output ./dist/types/packages/react-components/react-text/src && yarn docs", "storybook": "start-storybook", - "type-check": "tsc -b tsconfig.json" + "type-check": "tsc -b tsconfig.json", + "generate-api": "tsc -p ./tsconfig.lib.json --emitDeclarationOnly && just-scripts api-extractor" }, "devDependencies": { "@fluentui/eslint-plugin": "*", @@ -51,9 +50,10 @@ }, "exports": { ".": { - "types": "./lib/index.d.ts", + "types": "./dist/index.d.ts", "import": "./lib/index.js", "require": "./lib-commonjs/index.js" - } + }, + "./package.json": "./package.json" } } diff --git a/packages/react-components/react-text/src/components/Body1/Body1.test.tsx b/packages/react-components/react-text/src/components/Body1/Body1.test.tsx index dbca528cdd8a7f..d647c384c33430 100644 --- a/packages/react-components/react-text/src/components/Body1/Body1.test.tsx +++ b/packages/react-components/react-text/src/components/Body1/Body1.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Body1 } from './Body1'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Body1', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/Caption1/Caption1.test.tsx b/packages/react-components/react-text/src/components/Caption1/Caption1.test.tsx index b7a484c47e15b9..3b04b0151a082c 100644 --- a/packages/react-components/react-text/src/components/Caption1/Caption1.test.tsx +++ b/packages/react-components/react-text/src/components/Caption1/Caption1.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Caption1 } from './Caption1'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Caption1', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/Caption2/Caption2.test.tsx b/packages/react-components/react-text/src/components/Caption2/Caption2.test.tsx index 6b2cbf7d79b542..c3b58c13eb27a1 100644 --- a/packages/react-components/react-text/src/components/Caption2/Caption2.test.tsx +++ b/packages/react-components/react-text/src/components/Caption2/Caption2.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Caption2 } from './Caption2'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Caption2', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/Display/Display.test.tsx b/packages/react-components/react-text/src/components/Display/Display.test.tsx index 6e3c09310cd6ec..e83d1783d8bbfb 100644 --- a/packages/react-components/react-text/src/components/Display/Display.test.tsx +++ b/packages/react-components/react-text/src/components/Display/Display.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Display } from './Display'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Display', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/LargeTitle/LargeTitle.test.tsx b/packages/react-components/react-text/src/components/LargeTitle/LargeTitle.test.tsx index 27fdc00020ebfa..5f9e69c9d881dd 100644 --- a/packages/react-components/react-text/src/components/LargeTitle/LargeTitle.test.tsx +++ b/packages/react-components/react-text/src/components/LargeTitle/LargeTitle.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { LargeTitle } from './LargeTitle'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('LargeTitle', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/Subtitle1/Subtitle1.test.tsx b/packages/react-components/react-text/src/components/Subtitle1/Subtitle1.test.tsx index d6f55901c71ab1..498c41baf6591f 100644 --- a/packages/react-components/react-text/src/components/Subtitle1/Subtitle1.test.tsx +++ b/packages/react-components/react-text/src/components/Subtitle1/Subtitle1.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Subtitle1 } from './Subtitle1'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Subtitle1', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/Subtitle2/Subtitle2.test.tsx b/packages/react-components/react-text/src/components/Subtitle2/Subtitle2.test.tsx index 46c73220061c6f..2f643313f41a0a 100644 --- a/packages/react-components/react-text/src/components/Subtitle2/Subtitle2.test.tsx +++ b/packages/react-components/react-text/src/components/Subtitle2/Subtitle2.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Subtitle2 } from './Subtitle2'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Subtitle2', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/Text/Text.test.tsx b/packages/react-components/react-text/src/components/Text/Text.test.tsx index 7cacc839a7f7eb..3f537b577f1840 100644 --- a/packages/react-components/react-text/src/components/Text/Text.test.tsx +++ b/packages/react-components/react-text/src/components/Text/Text.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Text } from './Text'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; import { TextProps } from './Text.types'; describe('Text', () => { diff --git a/packages/react-components/react-text/src/components/Title1/Title1.test.tsx b/packages/react-components/react-text/src/components/Title1/Title1.test.tsx index a1484276c8093a..bc93efb3ec02d9 100644 --- a/packages/react-components/react-text/src/components/Title1/Title1.test.tsx +++ b/packages/react-components/react-text/src/components/Title1/Title1.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Title1 } from './Title1'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Title1', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/Title2/Title2.test.tsx b/packages/react-components/react-text/src/components/Title2/Title2.test.tsx index fe2787a44c7df5..4b33660f7a4dd9 100644 --- a/packages/react-components/react-text/src/components/Title2/Title2.test.tsx +++ b/packages/react-components/react-text/src/components/Title2/Title2.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Title2 } from './Title2'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Title2', () => { isConformant({ diff --git a/packages/react-components/react-text/src/components/Title3/Title3.test.tsx b/packages/react-components/react-text/src/components/Title3/Title3.test.tsx index 651857951966e9..7a4da638aeaafd 100644 --- a/packages/react-components/react-text/src/components/Title3/Title3.test.tsx +++ b/packages/react-components/react-text/src/components/Title3/Title3.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { render } from '@testing-library/react'; import { Title3 } from './Title3'; -import { isConformant } from '../../common/isConformant'; +import { isConformant } from '../../testing/isConformant'; describe('Title3', () => { isConformant({ diff --git a/packages/react-components/react-text/src/common/isConformant.ts b/packages/react-components/react-text/src/testing/isConformant.ts similarity index 100% rename from packages/react-components/react-text/src/common/isConformant.ts rename to packages/react-components/react-text/src/testing/isConformant.ts diff --git a/packages/react-components/react-text/src/stories/Text/Default.stories.tsx b/packages/react-components/react-text/stories/Text/Default.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/Default.stories.tsx rename to packages/react-components/react-text/stories/Text/Default.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/TextBestPractices.md b/packages/react-components/react-text/stories/Text/TextBestPractices.md similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextBestPractices.md rename to packages/react-components/react-text/stories/Text/TextBestPractices.md diff --git a/packages/react-components/react-text/src/stories/Text/TextDescription.md b/packages/react-components/react-text/stories/Text/TextDescription.md similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextDescription.md rename to packages/react-components/react-text/stories/Text/TextDescription.md diff --git a/packages/react-components/react-text/src/stories/Text/TextFont.stories.tsx b/packages/react-components/react-text/stories/Text/TextFont.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextFont.stories.tsx rename to packages/react-components/react-text/stories/Text/TextFont.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/TextItalic.stories.tsx b/packages/react-components/react-text/stories/Text/TextItalic.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextItalic.stories.tsx rename to packages/react-components/react-text/stories/Text/TextItalic.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/TextSize.stories.tsx b/packages/react-components/react-text/stories/Text/TextSize.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextSize.stories.tsx rename to packages/react-components/react-text/stories/Text/TextSize.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/TextStrikeThrough.stories.tsx b/packages/react-components/react-text/stories/Text/TextStrikeThrough.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextStrikeThrough.stories.tsx rename to packages/react-components/react-text/stories/Text/TextStrikeThrough.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/TextTruncate.stories.tsx b/packages/react-components/react-text/stories/Text/TextTruncate.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextTruncate.stories.tsx rename to packages/react-components/react-text/stories/Text/TextTruncate.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/TextTypography.stories.tsx b/packages/react-components/react-text/stories/Text/TextTypography.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextTypography.stories.tsx rename to packages/react-components/react-text/stories/Text/TextTypography.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/TextUnderline.stories.tsx b/packages/react-components/react-text/stories/Text/TextUnderline.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextUnderline.stories.tsx rename to packages/react-components/react-text/stories/Text/TextUnderline.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/TextWeight.stories.tsx b/packages/react-components/react-text/stories/Text/TextWeight.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/TextWeight.stories.tsx rename to packages/react-components/react-text/stories/Text/TextWeight.stories.tsx diff --git a/packages/react-components/react-text/src/stories/Text/index.stories.tsx b/packages/react-components/react-text/stories/Text/index.stories.tsx similarity index 100% rename from packages/react-components/react-text/src/stories/Text/index.stories.tsx rename to packages/react-components/react-text/stories/Text/index.stories.tsx diff --git a/packages/react-components/react-text/tsconfig.lib.json b/packages/react-components/react-text/tsconfig.lib.json index 5d7b14f1e0b70c..6f90cf95c005bd 100644 --- a/packages/react-components/react-text/tsconfig.lib.json +++ b/packages/react-components/react-text/tsconfig.lib.json @@ -3,14 +3,14 @@ "compilerOptions": { "noEmit": false, "lib": ["ES2019", "dom"], - "outDir": "dist", "declaration": true, - "declarationDir": "dist/types", + "declarationDir": "../../../dist/out-tsc/types", + "outDir": "../../../dist/out-tsc", "inlineSources": true, "types": ["static-assets", "environment"] }, "exclude": [ - "./src/common/**", + "./src/testing/**", "**/*.spec.ts", "**/*.spec.tsx", "**/*.test.ts", diff --git a/packages/react-components/react-text/tsconfig.spec.json b/packages/react-components/react-text/tsconfig.spec.json index 11f8254e711f4c..0e881941843de8 100644 --- a/packages/react-components/react-text/tsconfig.spec.json +++ b/packages/react-components/react-text/tsconfig.spec.json @@ -5,5 +5,13 @@ "outDir": "dist", "types": ["jest", "node", "@testing-library/jest-dom"] }, - "include": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.test.ts", "**/*.test.tsx", "**/*.d.ts"] + "include": [ + "**/*.spec.ts", + "**/*.spec.tsx", + "**/*.test.ts", + "**/*.test.tsx", + "**/*.d.ts", + "./src/testing/**/*.ts", + "./src/testing/**/*.tsx" + ] }