Skip to content

Commit 0d7b49b

Browse files
authored
[dev-overlay] Move code into new top-level folder in src/next-devtools (#80281)
1 parent 2b76ed7 commit 0d7b49b

File tree

204 files changed

+342
-272
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

204 files changed

+342
-272
lines changed

.eslintrc.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,17 @@
297297
"no-octal": "error",
298298
"no-octal-escape": "error",
299299
"no-regex-spaces": "error",
300+
"no-restricted-imports": [
301+
"error",
302+
{
303+
"patterns": [
304+
{
305+
"group": ["*/next-devtools/dev-overlay*"],
306+
"message": "Use `next/dist/compiled/next-devtools` (`src/next-devtools/dev-overlay/entrypoint.ts`) instead. Prefer `src/next-devtools/shared/` for shared utils."
307+
}
308+
]
309+
}
310+
],
300311
"no-restricted-syntax": [
301312
"error",
302313
"WithStatement",

packages/next/.storybook/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function getAbsolutePath(value: string): any {
1010
return dirname(require.resolve(join(value, 'package.json')))
1111
}
1212
const config: StorybookConfig = {
13-
stories: ['../src/client/components/react-dev-overlay/ui/**/*.stories.tsx'],
13+
stories: ['../src/next-devtools/dev-overlay/**/*.stories.tsx'],
1414
addons: [
1515
getAbsolutePath('@storybook/addon-webpack5-compiler-swc'),
1616
getAbsolutePath('@storybook/addon-essentials'),

packages/next/next-devtools.webpack-config.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,7 @@ module.exports = ({ dev, ...rest }) => {
2525
const target = `browserslist:${MODERN_BROWSERSLIST_TARGET.join(', ')}`
2626

2727
return {
28-
entry: path.join(
29-
__dirname,
30-
'src/client/components/react-dev-overlay/entrypoint.js'
31-
),
28+
entry: path.join(__dirname, 'src/next-devtools/entrypoint.ts'),
3229
target,
3330
mode: dev ? 'development' : 'production',
3431
output: {

packages/next/next-runtime.webpack-config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ const sharedExternals = [
9393
const externalsMap = {
9494
'./web/sandbox': 'next/dist/server/web/sandbox',
9595
'next/dist/compiled/next-devtools':
96-
'commonjs next/dist/client/components/react-dev-overlay/dev-overlay.shim.js',
96+
'commonjs next/dist/next-devtools/dev-overlay.shim.js',
9797
}
9898

9999
const externalsRegexMap = {

packages/next/src/build/output/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { bold, red, yellow } from '../../lib/picocolors'
22
import stripAnsi from 'next/dist/compiled/strip-ansi'
33
import textTable from 'next/dist/compiled/text-table'
44
import createStore from 'next/dist/compiled/unistore'
5-
import formatWebpackMessages from '../../client/components/react-dev-overlay/utils/format-webpack-messages'
5+
import formatWebpackMessages from '../../shared/lib/format-webpack-messages'
66
import { store as consoleStore } from './store'
77
import type { OutputState } from './store'
88
import type { webpack } from 'next/dist/compiled/webpack/webpack'

packages/next/src/build/webpack-build/impl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { webpack } from 'next/dist/compiled/webpack/webpack'
22
import { stringBufferUtils } from 'next/dist/compiled/webpack-sources3'
33
import { red } from '../../lib/picocolors'
4-
import formatWebpackMessages from '../../client/components/react-dev-overlay/utils/format-webpack-messages'
4+
import formatWebpackMessages from '../../shared/lib/format-webpack-messages'
55
import { nonNullable } from '../../lib/non-nullable'
66
import type { COMPILER_INDEXES } from '../../shared/lib/constants'
77
import {

packages/next/src/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { SimpleWebpackError } from './simpleWebpackError'
33
import {
44
createOriginalStackFrame,
55
getIgnoredSources,
6-
} from '../../../../client/components/react-dev-overlay/server/middleware-webpack'
6+
} from '../../../../server/dev/middleware-webpack'
77
import type { webpack } from 'next/dist/compiled/webpack/webpack'
88

99
// Based on https://github.com/webpack/webpack/blob/fcdd04a833943394bbb0a9eeb54a962a24cc7e41/lib/stats/DefaultStatsFactoryPlugin.js#L422-L431

packages/next/src/cli/next-info.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { PHASE_INFO } from '../shared/lib/constants'
88
import loadConfig from '../server/config'
99
import { getRegistry } from '../lib/helpers/get-registry'
1010
import { parseVersionInfo } from '../server/dev/parse-version-info'
11-
import { getStaleness } from '../client/components/react-dev-overlay/ui/components/version-staleness-info/version-staleness-info'
11+
import { getStaleness } from '../next-devtools/shared/version-staleness'
1212
import { warn } from '../build/output/log'
1313

1414
export type NextInfoOptions = {

packages/next/src/client/app-index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// imports polyfill from `@next/polyfill-module` after build.
22
import '../build/polyfills/polyfill-module'
33

4-
import './components/react-dev-overlay/app/app-dev-overlay-setup'
4+
import '../next-devtools/userspace/app/app-dev-overlay-setup'
55

66
import ReactDOMClient from 'react-dom/client'
77
import React, { use } from 'react'
@@ -272,7 +272,7 @@ export function hydrate(
272272
// Server rendering failed, fall back to client-side rendering
273273
if (process.env.NODE_ENV !== 'production') {
274274
const { createRootLevelDevOverlayElement } =
275-
require('./components/react-dev-overlay/app/client-entry') as typeof import('./components/react-dev-overlay/app/client-entry')
275+
require('../next-devtools/userspace/app/client-entry') as typeof import('../next-devtools/userspace/app/client-entry')
276276

277277
// Note this won't cause hydration mismatch because we are doing CSR w/o hydration
278278
element = createRootLevelDevOverlayElement(element)

packages/next/src/client/app-next-dev.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { appBootstrap } from './app-bootstrap'
77
import {
88
getComponentStack,
99
getOwnerStack,
10-
} from './components/react-dev-overlay/app/errors/stitched-error'
10+
} from '../next-devtools/userspace/app/errors/stitched-error'
1111
import { isRecoverableError } from './react-client-callbacks/on-recoverable-error'
1212

1313
// eslint-disable-next-line @next/internal/typechecked-require

packages/next/src/client/app-next-turbopack.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { appBootstrap } from './app-bootstrap'
22
import {
33
getComponentStack,
44
getOwnerStack,
5-
} from './components/react-dev-overlay/app/errors/stitched-error'
5+
} from '../next-devtools/userspace/app/errors/stitched-error'
66
import { isRecoverableError } from './react-client-callbacks/on-recoverable-error'
77

88
window.next.version += '-turbo'

packages/next/src/client/components/react-dev-overlay/entrypoint.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/next/src/client/components/react-dev-overlay/utils/get-source-map-url.ts

Lines changed: 0 additions & 15 deletions
This file was deleted.

packages/next/src/client/components/use-action-queue.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export function useActionQueue(
3636
// weird implementation details.
3737
if (process.env.NODE_ENV !== 'production') {
3838
const { useAppDevRenderingIndicator } =
39-
require('./react-dev-overlay/utils/dev-indicator/use-app-dev-rendering-indicator') as typeof import('./react-dev-overlay/utils/dev-indicator/use-app-dev-rendering-indicator')
39+
require('../../next-devtools/userspace/use-app-dev-rendering-indicator') as typeof import('../../next-devtools/userspace/use-app-dev-rendering-indicator')
4040
// eslint-disable-next-line react-hooks/rules-of-hooks
4141
const appDevRenderingIndicator = useAppDevRenderingIndicator()
4242

packages/next/src/client/dev/hot-reloader/app/hot-reloader-app.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
import type { ReactNode } from 'react'
44
import { useEffect, startTransition, useRef } from 'react'
55
import stripAnsi from 'next/dist/compiled/strip-ansi'
6-
import formatWebpackMessages from '../../../components/react-dev-overlay/utils/format-webpack-messages'
6+
import formatWebpackMessages from '../../../../shared/lib/format-webpack-messages'
77
import { useRouter } from '../../../components/navigation'
88
import {
99
REACT_REFRESH_FULL_RELOAD,
1010
REACT_REFRESH_FULL_RELOAD_FROM_ERROR,
1111
reportInvalidHmrMessage,
1212
} from '../shared'
1313
import { dispatcher } from 'next/dist/compiled/next-devtools'
14-
import { ReplaySsrOnlyErrors } from '../../../components/react-dev-overlay/app/errors/replay-ssr-only-errors'
15-
import { AppDevOverlayErrorBoundary } from '../../../components/react-dev-overlay/app/app-dev-overlay-error-boundary'
16-
import { useErrorHandler } from '../../../components/react-dev-overlay/app/errors/use-error-handler'
17-
import { RuntimeErrorHandler } from '../../../components/react-dev-overlay/runtime-error-handler'
14+
import { ReplaySsrOnlyErrors } from '../../../../next-devtools/userspace/app/errors/replay-ssr-only-errors'
15+
import { AppDevOverlayErrorBoundary } from '../../../../next-devtools/userspace/app/app-dev-overlay-error-boundary'
16+
import { useErrorHandler } from '../../../../next-devtools/userspace/app/errors/use-error-handler'
17+
import { RuntimeErrorHandler } from '../../runtime-error-handler'
1818
import {
1919
useSendMessage,
2020
useTurbopack,
@@ -28,8 +28,8 @@ import type {
2828
} from '../../../../server/dev/hot-reloader-types'
2929
import { useUntrackedPathname } from '../../../components/navigation-untracked'
3030
import type { GlobalErrorComponent } from '../../../components/global-error'
31-
import reportHmrLatency from '../../../components/react-dev-overlay/utils/report-hmr-latency'
32-
import { TurbopackHmr } from '../../../components/react-dev-overlay/utils/turbopack-hot-reloader-common'
31+
import reportHmrLatency from '../../report-hmr-latency'
32+
import { TurbopackHmr } from '../turbopack-hot-reloader-common'
3333
import { NEXT_HMR_REFRESH_HASH_COOKIE } from '../../../components/app-router-headers'
3434

3535
let mostRecentCompilationHash: any = null

packages/next/src/client/dev/hot-reloader/pages/hot-reloader-pages.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333
/// <reference types="webpack/module.d.ts" />
3434

3535
import { dispatcher } from 'next/dist/compiled/next-devtools'
36-
import { register } from '../../../components/react-dev-overlay/pages/pages-dev-overlay-setup'
36+
import { register } from '../../../../next-devtools/userspace/pages/pages-dev-overlay-setup'
3737
import stripAnsi from 'next/dist/compiled/strip-ansi'
3838
import { addMessageListener, sendMessage } from './websocket'
39-
import formatWebpackMessages from '../../../components/react-dev-overlay/utils/format-webpack-messages'
39+
import formatWebpackMessages from '../../../../shared/lib/format-webpack-messages'
4040
import { HMR_ACTIONS_SENT_TO_BROWSER } from '../../../../server/dev/hot-reloader-types'
4141
import type {
4242
HMR_ACTION_TYPES,
@@ -47,9 +47,9 @@ import {
4747
REACT_REFRESH_FULL_RELOAD_FROM_ERROR,
4848
reportInvalidHmrMessage,
4949
} from '../shared'
50-
import { RuntimeErrorHandler } from '../../../components/react-dev-overlay/runtime-error-handler'
51-
import reportHmrLatency from '../../../components/react-dev-overlay/utils/report-hmr-latency'
52-
import { TurbopackHmr } from '../../../components/react-dev-overlay/utils/turbopack-hot-reloader-common'
50+
import { RuntimeErrorHandler } from '../../runtime-error-handler'
51+
import reportHmrLatency from '../../report-hmr-latency'
52+
import { TurbopackHmr } from '../turbopack-hot-reloader-common'
5353

5454
// This alternative WebpackDevServer combines the functionality of:
5555
// https://github.com/webpack/webpack-dev-server/blob/webpack-1/client/index.js
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import type { TurbopackMessageAction } from '../../../../server/dev/hot-reloader-types'
2-
import type { Update as TurbopackUpdate } from '../../../../build/swc/types'
1+
import type { TurbopackMessageAction } from '../../../server/dev/hot-reloader-types'
2+
import type { Update as TurbopackUpdate } from '../../../build/swc/types'
33

44
declare global {
55
interface Window {

packages/next/src/client/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class Container extends React.Component<{
180180
return this.props.children
181181
} else {
182182
const { PagesDevOverlayBridge } =
183-
require('./components/react-dev-overlay/pages/pages-dev-overlay-setup') as typeof import('./components/react-dev-overlay/pages/pages-dev-overlay-setup')
183+
require('../next-devtools/userspace/pages/pages-dev-overlay-setup') as typeof import('../next-devtools/userspace/pages/pages-dev-overlay-setup')
184184
return (
185185
<PagesDevOverlayBridge>{this.props.children}</PagesDevOverlayBridge>
186186
)
@@ -918,7 +918,7 @@ export async function hydrate(opts?: { beforeRender?: () => Promise<void> }) {
918918

919919
if (process.env.NODE_ENV === 'development') {
920920
const getServerError = (
921-
require('./components/react-dev-overlay/utils/node-stack-frames') as typeof import('./components/react-dev-overlay/utils/node-stack-frames')
921+
require('../server/dev/node-stack-frames') as typeof import('../server/dev/node-stack-frames')
922922
).getServerError
923923
// Server-side runtime errors need to be re-thrown on the client-side so
924924
// that the overlay is rendered.

packages/next/src/client/page-bootstrap.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
urlQueryToSearchParams,
1212
} from '../shared/lib/router/utils/querystring'
1313
import { HMR_ACTIONS_SENT_TO_BROWSER } from '../server/dev/hot-reloader-types'
14-
import { RuntimeErrorHandler } from './components/react-dev-overlay/runtime-error-handler'
14+
import { RuntimeErrorHandler } from './dev/runtime-error-handler'
1515
import { REACT_REFRESH_FULL_RELOAD_FROM_ERROR } from './dev/hot-reloader/shared'
1616
import { performFullReload } from './dev/hot-reloader/pages/hot-reloader-pages'
1717
import { dispatcher } from 'next/dist/compiled/next-devtools'

packages/next/src/client/react-client-callbacks/error-boundary-callbacks.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ import {
55
setOwnerStackIfAvailable,
66
setComponentStack,
77
coerceError,
8-
} from '../components/react-dev-overlay/app/errors/stitched-error'
9-
import { handleClientError } from '../components/react-dev-overlay/app/errors/use-error-handler'
8+
} from '../../next-devtools/userspace/app/errors/stitched-error'
9+
import { handleClientError } from '../../next-devtools/userspace/app/errors/use-error-handler'
1010
import { isNextRouterError } from '../components/is-next-router-error'
1111
import { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'
1212
import { reportGlobalError } from './report-global-error'
13-
import { originConsoleError } from '../components/react-dev-overlay/app/errors/intercept-console-error'
13+
import { originConsoleError } from '../../next-devtools/userspace/app/errors/intercept-console-error'
1414
import { ErrorBoundaryHandler } from '../components/error-boundary'
1515
import DefaultErrorBoundary from '../components/global-error'
1616

@@ -24,7 +24,7 @@ export function onCaughtError(
2424

2525
if (process.env.NODE_ENV !== 'production') {
2626
const { AppDevOverlayErrorBoundary } =
27-
require('../components/react-dev-overlay/app/app-dev-overlay-error-boundary') as typeof import('../components/react-dev-overlay/app/app-dev-overlay-error-boundary')
27+
require('../../next-devtools/userspace/app/app-dev-overlay-error-boundary') as typeof import('../../next-devtools/userspace/app/app-dev-overlay-error-boundary')
2828

2929
isImplicitErrorBoundary =
3030
errorBoundaryComponent === AppDevOverlayErrorBoundary

packages/next/src/client/react-client-callbacks/on-recoverable-error.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
setOwnerStackIfAvailable,
77
setComponentStack,
88
coerceError,
9-
} from '../components/react-dev-overlay/app/errors/stitched-error'
9+
} from '../../next-devtools/userspace/app/errors/stitched-error'
1010
import isError from '../../lib/is-error'
1111
import { reportGlobalError } from './report-global-error'
1212

packages/next/src/client/components/react-dev-overlay/README.md renamed to packages/next/src/next-devtools/README.md

Lines changed: 10 additions & 6 deletions

packages/next/src/client/components/react-dev-overlay/dev-overlay.browser.tsx renamed to packages/next/src/next-devtools/dev-overlay.browser.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ import {
1717
ACTION_BUILDING_INDICATOR_SHOW,
1818
ACTION_RENDERING_INDICATOR_HIDE,
1919
ACTION_RENDERING_INDICATOR_SHOW,
20-
} from './shared'
20+
} from './dev-overlay/shared'
2121

2222
import { startTransition, useInsertionEffect } from 'react'
2323
import { createRoot } from 'react-dom/client'
24-
import { FontStyles } from './font/font-styles'
25-
import type { HydrationErrorState } from './pages/hydration-error-state'
26-
import type { DebugInfo } from './types'
27-
import { DevOverlay } from './ui/dev-overlay'
28-
import type { DevIndicatorServerState } from '../../../server/dev/dev-indicator-server-state'
29-
import type { VersionInfo } from '../../../server/dev/parse-version-info'
24+
import { FontStyles } from './dev-overlay/font/font-styles'
25+
import type { HydrationErrorState } from './shared/hydration-error'
26+
import type { DebugInfo } from './shared/types'
27+
import { DevOverlay } from './dev-overlay/dev-overlay'
28+
import type { DevIndicatorServerState } from '../server/dev/dev-indicator-server-state'
29+
import type { VersionInfo } from '../server/dev/parse-version-info'
3030

3131
export interface Dispatcher {
3232
onBuildOk(): void
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import type { StackFrame } from 'next/dist/compiled/stacktrace-parser'
2-
import type { OriginalStackFrame } from '../../../utils/stack-frame'
2+
import type { OriginalStackFrame } from '../../../shared/stack-frame'
33

44
import { HotlinkedText } from '../hot-linked-text'
55
import { ExternalIcon, SourceMappingErrorIcon } from '../../icons/external'
6-
import { getFrameSource } from '../../../utils/stack-frame'
6+
import { getFrameSource } from '../../../shared/stack-frame'
77
import { useOpenInEditor } from '../../utils/use-open-in-editor'
88

99
export const CallStackFrame: React.FC<{
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { StackFrame } from 'next/dist/compiled/stacktrace-parser'
22
import { useMemo } from 'react'
33
import { HotlinkedText } from '../hot-linked-text'
4-
import { getFrameSource } from '../../../utils/stack-frame'
4+
import { getFrameSource } from '../../../shared/stack-frame'
55
import { useOpenInEditor } from '../../utils/use-open-in-editor'
66
import { ExternalIcon } from '../../icons/external'
77
import { FileIcon } from '../../icons/file'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { OriginalStackFrame } from '../../../../utils/stack-frame'
1+
import type { OriginalStackFrame } from '../../../../shared/stack-frame'
22
import { useMemo, useState, useRef } from 'react'
33
import { CallStackFrame } from '../../call-stack-frame/call-stack-frame'
44

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import type { Meta, StoryObj } from '@storybook/react'
22
import { DevToolsIndicator } from './dev-tools-indicator'
33
import { withShadowPortal } from '../../../storybook/with-shadow-portal'
4-
import type { VersionInfo } from '../../../../../../../server/dev/parse-version-info'
5-
import type { OverlayState } from '../../../../shared'
4+
import type { VersionInfo } from '../../../../../server/dev/parse-version-info'
5+
import type { OverlayState } from '../../../shared'
66

77
const meta: Meta<typeof DevToolsIndicator> = {
88
component: DevToolsIndicator,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
STORAGE_KEY_POSITION,
66
type OverlayDispatch,
77
type OverlayState,
8-
} from '../../../../shared'
8+
} from '../../../shared'
99

1010
import { useState, useEffect, useRef, createContext, useContext } from 'react'
1111
import { Toast } from '../../toast'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
STORAGE_KEY_POSITION,
44
STORAGE_KEY_SCALE,
55
STORAGE_KEY_THEME,
6-
} from '../../../../../shared'
6+
} from '../../../../shared'
77

88
const INDICATOR_POSITION =
99
(process.env
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useState, type HTMLProps } from 'react'
2-
import { css } from '../../../../../utils/css'
2+
import { css } from '../../../../utils/css'
33
import EyeIcon from '../../../../icons/eye-icon'
4-
import { STORAGE_KEY_POSITION, STORAGE_KEY_THEME } from '../../../../../shared'
4+
import { STORAGE_KEY_POSITION, STORAGE_KEY_THEME } from '../../../../shared'
55
import LightIcon from '../../../../icons/light-icon'
66
import DarkIcon from '../../../../icons/dark-icon'
77
import SystemIcon from '../../../../icons/system-icon'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { forwardRef, useEffect, useRef, useState } from 'react'
2-
import { css } from '../../../../utils/css'
2+
import { css } from '../../../utils/css'
33
import mergeRefs from '../../../utils/merge-refs'
44
import { useMinimumLoadingTimeMultiple } from './use-minimum-loading-time-multiple'
55
import type { DevToolsScale } from './dev-tools-info/preferences'

0 commit comments

Comments
 (0)