diff --git a/change/@fluentui-eslint-plugin-35756908-2280-4ee6-81f0-67c716df8257.json b/change/@fluentui-eslint-plugin-35756908-2280-4ee6-81f0-67c716df8257.json new file mode 100644 index 00000000000000..0e24f67e95fa0f --- /dev/null +++ b/change/@fluentui-eslint-plugin-35756908-2280-4ee6-81f0-67c716df8257.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "fix: dont apply import/no-extraneous-dependencies rule on stories", + "packageName": "@fluentui/eslint-plugin", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-breadcrumb-ea432422-f0f1-4d52-bef7-6d476f1066e5.json b/change/@fluentui-react-breadcrumb-ea432422-f0f1-4d52-bef7-6d476f1066e5.json new file mode 100644 index 00000000000000..d7d33f431de21e --- /dev/null +++ b/change/@fluentui-react-breadcrumb-ea432422-f0f1-4d52-bef7-6d476f1066e5.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix: remove circular dependencies from cypress files", + "packageName": "@fluentui/react-breadcrumb", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-dialog-69502076-906b-4301-88a5-817ccfb2d1a0.json b/change/@fluentui-react-dialog-69502076-906b-4301-88a5-817ccfb2d1a0.json new file mode 100644 index 00000000000000..77972bf222fee1 --- /dev/null +++ b/change/@fluentui-react-dialog-69502076-906b-4301-88a5-817ccfb2d1a0.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix: remove circular dependencies from cypress files", + "packageName": "@fluentui/react-dialog", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/packages/eslint-plugin/src/utils/configHelpers.js b/packages/eslint-plugin/src/utils/configHelpers.js index 37af2f6c4f7c0e..d8e00cd474caf3 100644 --- a/packages/eslint-plugin/src/utils/configHelpers.js +++ b/packages/eslint-plugin/src/utils/configHelpers.js @@ -39,6 +39,7 @@ const testFiles = [ ]; const docsFiles = ['**/*Page.tsx', '**/{docs,demo}/**', '**/*.doc.{ts,tsx}']; +const storyFiles = ['**/*.stories.tsx', '**/*.stories.ts']; const configFiles = [ './just.config.ts', @@ -84,7 +85,7 @@ module.exports = { * - may need to reconsider for converged components depending on website approach * - the stories suffix is also used for storywright stories in `vr-tests` */ - devDependenciesFiles: [...testFiles, ...docsFiles, ...configFiles, '**/*.stories.tsx'], + devDependenciesFiles: [...testFiles, ...docsFiles, ...configFiles, ...storyFiles], /** * Whether linting is running in context of lint-staged (which should disable rules requiring diff --git a/packages/react-components/react-breadcrumb/package.json b/packages/react-components/react-breadcrumb/package.json index 3acbe8da82992d..1316857b1c2952 100644 --- a/packages/react-components/react-breadcrumb/package.json +++ b/packages/react-components/react-breadcrumb/package.json @@ -28,6 +28,8 @@ "bundle-size": "monosize measure" }, "devDependencies": { + "@fluentui/react-menu": "*", + "@fluentui/react-overflow": "*", "@fluentui/eslint-plugin": "*", "@fluentui/react-conformance": "*", "@fluentui/react-conformance-griffel": "*", diff --git a/packages/react-components/react-breadcrumb/src/components/Breadcrumb/BreadcrumbWithMenu.cy.tsx b/packages/react-components/react-breadcrumb/src/components/Breadcrumb/BreadcrumbWithMenu.cy.tsx index 91f38eb35b2c2d..4e0e2c54fab8d9 100644 --- a/packages/react-components/react-breadcrumb/src/components/Breadcrumb/BreadcrumbWithMenu.cy.tsx +++ b/packages/react-components/react-breadcrumb/src/components/Breadcrumb/BreadcrumbWithMenu.cy.tsx @@ -11,17 +11,9 @@ import { BreadcrumbDivider } from '../BreadcrumbDivider'; import { partitionBreadcrumbItems } from '../../utils'; import type { BreadcrumbProps } from './Breadcrumb.types'; import type { PartitionBreadcrumbItems } from '../../utils'; -import { - Button, - Menu, - MenuList, - MenuItemLink, - MenuPopover, - MenuTrigger, - useIsOverflowItemVisible, - useOverflowMenu, - MenuItem, -} from '@fluentui/react-components'; +import { Button } from '@fluentui/react-button'; +import { Menu, MenuList, MenuItemLink, MenuPopover, MenuTrigger, MenuItem } from '@fluentui/react-menu'; +import { useIsOverflowItemVisible, useOverflowMenu } from '@fluentui/react-overflow'; const MoreHorizontal = bundleIcon(MoreHorizontalFilled, MoreHorizontalRegular); const mountFluent = (element: JSX.Element) => { diff --git a/packages/react-components/react-dialog/package.json b/packages/react-components/react-dialog/package.json index 5e05d5995c1098..778edfeb2677cd 100644 --- a/packages/react-components/react-dialog/package.json +++ b/packages/react-components/react-dialog/package.json @@ -28,6 +28,10 @@ "test-ssr": "test-ssr \"./stories/**/*.stories.tsx\"" }, "devDependencies": { + "@fluentui/react-popover": "*", + "@fluentui/react-tooltip": "*", + "@fluentui/react-menu": "*", + "@fluentui/react-button": "*", "@fluentui/eslint-plugin": "*", "@fluentui/react-conformance": "*", "@fluentui/react-conformance-griffel": "*", diff --git a/packages/react-components/react-dialog/src/components/Dialog/Dialog.cy.tsx b/packages/react-components/react-dialog/src/components/Dialog/Dialog.cy.tsx index 1a41d754a59a91..b81b840599e015 100644 --- a/packages/react-components/react-dialog/src/components/Dialog/Dialog.cy.tsx +++ b/packages/react-components/react-dialog/src/components/Dialog/Dialog.cy.tsx @@ -13,18 +13,10 @@ import { DialogTitle, DialogTrigger, } from '@fluentui/react-dialog'; -import { - Button, - Menu, - MenuItem, - MenuList, - MenuPopover, - MenuTrigger, - Popover, - PopoverSurface, - PopoverTrigger, - Tooltip, -} from '@fluentui/react-components'; +import { Popover, PopoverSurface, PopoverTrigger } from '@fluentui/react-popover'; +import { Tooltip } from '@fluentui/react-tooltip'; +import { Button } from '@fluentui/react-button'; +import { Menu, MenuItem, MenuList, MenuPopover, MenuTrigger } from '@fluentui/react-menu'; import { dialogSurfaceSelector, dialogTriggerCloseId, diff --git a/packages/react-components/react-dialog/src/components/DialogTitle/DialogTitle.cy.tsx b/packages/react-components/react-dialog/src/components/DialogTitle/DialogTitle.cy.tsx index c5db62f134a3bf..42c81d4ed92437 100644 --- a/packages/react-components/react-dialog/src/components/DialogTitle/DialogTitle.cy.tsx +++ b/packages/react-components/react-dialog/src/components/DialogTitle/DialogTitle.cy.tsx @@ -13,7 +13,7 @@ import { DialogTitle, DialogTrigger, } from '@fluentui/react-dialog'; -import { Button } from '@fluentui/react-components'; +import { Button } from '@fluentui/react-button'; import { dialogActionSelector, dialogTriggerOpenId, dialogTriggerOpenSelector } from '../../testing/selectors'; const mount = (element: JSX.Element) => mountBase({element}); diff --git a/packages/react-components/react-tree/stories/Tree/TreeExpandIcon.stories.tsx b/packages/react-components/react-tree/stories/Tree/TreeExpandIcon.stories.tsx index 18441d14cdd5e0..1759f0188d094a 100644 --- a/packages/react-components/react-tree/stories/Tree/TreeExpandIcon.stories.tsx +++ b/packages/react-components/react-tree/stories/Tree/TreeExpandIcon.stories.tsx @@ -1,7 +1,13 @@ import * as React from 'react'; -import { Tree, TreeItem, TreeItemLayout, TreeItemValue } from '@fluentui/react-components'; +import { + Tree, + TreeItem, + TreeItemLayout, + TreeItemValue, + TreeOpenChangeData, + TreeOpenChangeEvent, +} from '@fluentui/react-components'; import { AddSquare16Regular, SubtractSquare16Regular } from '@fluentui/react-icons'; -import { TreeOpenChangeData, TreeOpenChangeEvent } from './../../src/Tree'; export const ExpandIcon = () => { const [openItems, setOpenItems] = React.useState([]); diff --git a/packages/react-components/react-virtualizer/stories/Virtualizer/Dynamic.stories.tsx b/packages/react-components/react-virtualizer/stories/Virtualizer/Dynamic.stories.tsx index 6705c92cf2a9bd..1a4e4ad3774a19 100644 --- a/packages/react-components/react-virtualizer/stories/Virtualizer/Dynamic.stories.tsx +++ b/packages/react-components/react-virtualizer/stories/Virtualizer/Dynamic.stories.tsx @@ -37,7 +37,7 @@ export const Dynamic = () => { const [flag, toggleFlag] = React.useState(false); const styles = useStyles(); const childLength = 1000; - const timeoutRef = useRef(); + const timeoutRef = useRef>(); React.useEffect(() => { updateTimeout(); diff --git a/packages/react-components/react-virtualizer/stories/Virtualizer/index.stories.ts b/packages/react-components/react-virtualizer/stories/Virtualizer/index.stories.ts index f11cc1cf8710d7..6632b13e634bd4 100644 --- a/packages/react-components/react-virtualizer/stories/Virtualizer/index.stories.ts +++ b/packages/react-components/react-virtualizer/stories/Virtualizer/index.stories.ts @@ -1,4 +1,4 @@ -import { Virtualizer } from '../../src/Virtualizer'; +import { Virtualizer } from '@fluentui/react-components/unstable'; import descriptionMd from './VirtualizerDescription.md'; export { Default } from './Default.stories'; diff --git a/packages/react-components/react-virtualizer/stories/VirtualizerScrollView/ScrollTo.stories.tsx b/packages/react-components/react-virtualizer/stories/VirtualizerScrollView/ScrollTo.stories.tsx index b68b999ec27ab4..638784c1651507 100644 --- a/packages/react-components/react-virtualizer/stories/VirtualizerScrollView/ScrollTo.stories.tsx +++ b/packages/react-components/react-virtualizer/stories/VirtualizerScrollView/ScrollTo.stories.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; import { VirtualizerScrollView } from '@fluentui/react-components/unstable'; +import type { ScrollToInterface } from '@fluentui/react-components/unstable'; import { Text, Input, makeStyles } from '@fluentui/react-components'; import { Button } from '@fluentui/react-components'; -import { ScrollToInterface } from '../../src/Utilities'; const useStyles = makeStyles({ child: { diff --git a/packages/react-components/react-virtualizer/stories/VirtualizerScrollView/index.stories.ts b/packages/react-components/react-virtualizer/stories/VirtualizerScrollView/index.stories.ts index 82d353041b649a..97a1c28f8afb4f 100644 --- a/packages/react-components/react-virtualizer/stories/VirtualizerScrollView/index.stories.ts +++ b/packages/react-components/react-virtualizer/stories/VirtualizerScrollView/index.stories.ts @@ -1,4 +1,4 @@ -import { VirtualizerScrollView } from '../../src/VirtualizerScrollView'; +import { VirtualizerScrollView } from '@fluentui/react-components/unstable'; import descriptionMd from './VirtualizerScrollViewDescription.md'; export { Default } from './Default.stories'; diff --git a/packages/react-components/react-virtualizer/stories/VirtualizerScrollViewDynamic/ScrollTo.stories.tsx b/packages/react-components/react-virtualizer/stories/VirtualizerScrollViewDynamic/ScrollTo.stories.tsx index 8b67e09a8fa637..24008183604794 100644 --- a/packages/react-components/react-virtualizer/stories/VirtualizerScrollViewDynamic/ScrollTo.stories.tsx +++ b/packages/react-components/react-virtualizer/stories/VirtualizerScrollViewDynamic/ScrollTo.stories.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import { VirtualizerScrollViewDynamic } from '@fluentui/react-components/unstable'; +import type { ScrollToInterface } from '@fluentui/react-components/unstable'; +import type { VirtualizerDataRef } from '@fluentui/react-virtualizer'; import { Button, Input, makeStyles, Text } from '@fluentui/react-components'; import { useEffect } from 'react'; -import { ScrollToInterface } from '../../src/Utilities'; -import { VirtualizerDataRef } from '../../src/Virtualizer'; const useStyles = makeStyles({ child: { diff --git a/packages/react-components/react-virtualizer/stories/VirtualizerScrollViewDynamic/index.stories.ts b/packages/react-components/react-virtualizer/stories/VirtualizerScrollViewDynamic/index.stories.ts index 572f81cf796e19..5aa34ef060e83f 100644 --- a/packages/react-components/react-virtualizer/stories/VirtualizerScrollViewDynamic/index.stories.ts +++ b/packages/react-components/react-virtualizer/stories/VirtualizerScrollViewDynamic/index.stories.ts @@ -1,4 +1,4 @@ -import { VirtualizerScrollViewDynamic } from '../../src/VirtualizerScrollViewDynamic'; +import { VirtualizerScrollViewDynamic } from '@fluentui/react-components/unstable'; import descriptionMd from './VirtualizerScrollViewDynamicDescription.md'; export { AutoMeasure } from './AutoMeasure.stories';