diff --git a/packages/@headlessui-react/src/components/combobox/combobox.test.tsx b/packages/@headlessui-react/src/components/combobox/combobox.test.tsx index 85b43cd..0986824 100644 --- a/packages/@headlessui-react/src/components/combobox/combobox.test.tsx +++ b/packages/@headlessui-react/src/components/combobox/combobox.test.tsx @@ -1,6 +1,5 @@ import { render } from '@testing-library/react' import React, { createElement, useEffect, useState } from 'react' - import { assertActiveComboboxOption, assertActiveElement, diff --git a/packages/@headlessui-react/src/components/combobox/combobox.tsx b/packages/@headlessui-react/src/components/combobox/combobox.tsx index 178a7dc..93d80f8 100644 --- a/packages/@headlessui-react/src/components/combobox/combobox.tsx +++ b/packages/@headlessui-react/src/components/combobox/combobox.tsx @@ -1,58 +1,55 @@ import React, { createContext, createRef, - ElementType, - FocusEvent as ReactFocusEvent, Fragment, - KeyboardEvent as ReactKeyboardEvent, - MouseEvent as ReactMouseEvent, - MutableRefObject, - Ref, useCallback, useContext, useEffect, useMemo, useReducer, useRef, + type ElementType, + type FocusEvent as ReactFocusEvent, + type KeyboardEvent as ReactKeyboardEvent, + type MouseEvent as ReactMouseEvent, + type MutableRefObject, + type Ref, } from 'react' -import { ByComparator, EnsureArray, Expand, Props } from '../../types' - import { useComputed } from '../../hooks/use-computed' +import { useControllable } from '../../hooks/use-controllable' import { useDisposables } from '../../hooks/use-disposables' import { useEvent } from '../../hooks/use-event' import { useId } from '../../hooks/use-id' import { useIsoMorphicEffect } from '../../hooks/use-iso-morphic-effect' import { useLatestValue } from '../../hooks/use-latest-value' import { useOutsideClick } from '../../hooks/use-outside-click' +import { useOwnerDocument } from '../../hooks/use-owner' import { useResolveButtonType } from '../../hooks/use-resolve-button-type' import { useSyncRefs } from '../../hooks/use-sync-refs' +import { useTrackedPointer } from '../../hooks/use-tracked-pointer' import { useTreeWalker } from '../../hooks/use-tree-walker' +import { useWatch } from '../../hooks/use-watch' +import { Features as HiddenFeatures, Hidden } from '../../internal/hidden' +import { OpenClosedProvider, State, useOpenClosed } from '../../internal/open-closed' +import type { ByComparator, EnsureArray, Expand, Props } from '../../types' import { history } from '../../utils/active-element-history' - import { isDisabledReactIssue7711 } from '../../utils/bugs' import { calculateActiveIndex, Focus } from '../../utils/calculate-active-index' import { disposables } from '../../utils/disposables' import { sortByDomNode } from '../../utils/focus-management' import { objectToFormEntries } from '../../utils/form' import { match } from '../../utils/match' +import { isMobile } from '../../utils/platform' import { compact, Features, forwardRefWithAs, - HasDisplayName, - PropsForFeatures, - RefProp, render, + type HasDisplayName, + type PropsForFeatures, + type RefProp, } from '../../utils/render' -import { Features as HiddenFeatures, Hidden } from '../../internal/hidden' -import { OpenClosedProvider, State, useOpenClosed } from '../../internal/open-closed' - -import { useControllable } from '../../hooks/use-controllable' -import { useOwnerDocument } from '../../hooks/use-owner' -import { useTrackedPointer } from '../../hooks/use-tracked-pointer' -import { useWatch } from '../../hooks/use-watch' -import { isMobile } from '../../utils/platform' import { Keys } from '../keyboard' enum ComboboxState { diff --git a/packages/@headlessui-react/src/components/description/description.tsx b/packages/@headlessui-react/src/components/description/description.tsx index 95fa543..08f9f29 100644 --- a/packages/@headlessui-react/src/components/description/description.tsx +++ b/packages/@headlessui-react/src/components/description/description.tsx @@ -1,19 +1,18 @@ import React, { createContext, - ElementType, - ReactNode, - Ref, useContext, useMemo, useState, + type ElementType, + type ReactNode, + type Ref, } from 'react' - import { useEvent } from '../../hooks/use-event' import { useId } from '../../hooks/use-id' import { useIsoMorphicEffect } from '../../hooks/use-iso-morphic-effect' import { useSyncRefs } from '../../hooks/use-sync-refs' import { Props } from '../../types' -import { forwardRefWithAs, HasDisplayName, RefProp, render } from '../../utils/render' +import { forwardRefWithAs, render, type HasDisplayName, type RefProp } from '../../utils/render' // --- diff --git a/packages/@headlessui-react/src/components/dialog/dialog.test.tsx b/packages/@headlessui-react/src/components/dialog/dialog.test.tsx index 91fbb59..962426d 100644 --- a/packages/@headlessui-react/src/components/dialog/dialog.test.tsx +++ b/packages/@headlessui-react/src/components/dialog/dialog.test.tsx @@ -1,7 +1,6 @@ import { render } from '@testing-library/react' import React, { createElement, Fragment, useCallback, useEffect, useRef, useState } from 'react' import { createPortal } from 'react-dom' - import { OpenClosedProvider, State } from '../../internal/open-closed' import { assertActiveElement, @@ -22,7 +21,7 @@ import { } from '../../test-utils/accessibility-assertions' import { click, focus, Keys, mouseDrag, press, shift } from '../../test-utils/interactions' import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' -import { PropsOf } from '../../types' +import type { PropsOf } from '../../types' import { Popover } from '../popover/popover' import { Transition } from '../transitions/transition' import { Dialog } from './dialog' diff --git a/packages/@headlessui-react/src/components/dialog/dialog.tsx b/packages/@headlessui-react/src/components/dialog/dialog.tsx index 9292e31..7406963 100644 --- a/packages/@headlessui-react/src/components/dialog/dialog.tsx +++ b/packages/@headlessui-react/src/components/dialog/dialog.tsx @@ -1,13 +1,7 @@ // WAI-ARIA: https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal/ import React, { - ContextType, createContext, createRef, - ElementType, - MouseEvent as ReactMouseEvent, - MutableRefObject, - Ref, - RefObject, useCallback, useContext, useEffect, @@ -15,8 +9,13 @@ import React, { useReducer, useRef, useState, + type ContextType, + type ElementType, + type MouseEvent as ReactMouseEvent, + type MutableRefObject, + type Ref, + type RefObject, } from 'react' - import { FocusTrap } from '../../components/focus-trap/focus-trap' import { Portal, useNestedPortals } from '../../components/portal/portal' import { useDocumentOverflowLockedEffect } from '../../hooks/document-overflow/use-document-overflow' @@ -32,16 +31,16 @@ import { useSyncRefs } from '../../hooks/use-sync-refs' import { State, useOpenClosed } from '../../internal/open-closed' import { ForcePortalRoot } from '../../internal/portal-force-root' import { StackMessage, StackProvider } from '../../internal/stack-context' -import { Props } from '../../types' +import type { Props } from '../../types' import { isDisabledReactIssue7711 } from '../../utils/bugs' import { match } from '../../utils/match' import { Features, forwardRefWithAs, - HasDisplayName, - PropsForFeatures, - RefProp, render, + type HasDisplayName, + type PropsForFeatures, + type RefProp, } from '../../utils/render' import { Description, diff --git a/packages/@headlessui-react/src/components/disclosure/disclosure.test.tsx b/packages/@headlessui-react/src/components/disclosure/disclosure.test.tsx index a9a874d..197c0a4 100644 --- a/packages/@headlessui-react/src/components/disclosure/disclosure.test.tsx +++ b/packages/@headlessui-react/src/components/disclosure/disclosure.test.tsx @@ -1,6 +1,5 @@ import { render } from '@testing-library/react' import React, { createElement, Suspense, useEffect, useRef } from 'react' - import { assertActiveElement, assertDisclosureButton, diff --git a/packages/@headlessui-react/src/components/disclosure/disclosure.tsx b/packages/@headlessui-react/src/components/disclosure/disclosure.tsx index 16ba5d4..8b5509e 100644 --- a/packages/@headlessui-react/src/components/disclosure/disclosure.tsx +++ b/packages/@headlessui-react/src/components/disclosure/disclosure.tsx @@ -1,37 +1,36 @@ // WAI-ARIA: https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/ import React, { - ContextType, createContext, - Dispatch, - ElementType, Fragment, - KeyboardEvent as ReactKeyboardEvent, - MouseEvent as ReactMouseEvent, - MutableRefObject, - Ref, useContext, useEffect, useMemo, useReducer, useRef, + type ContextType, + type Dispatch, + type ElementType, + type KeyboardEvent as ReactKeyboardEvent, + type MouseEvent as ReactMouseEvent, + type MutableRefObject, + type Ref, } from 'react' - import { useEvent } from '../../hooks/use-event' import { useId } from '../../hooks/use-id' import { useResolveButtonType } from '../../hooks/use-resolve-button-type' import { optionalRef, useSyncRefs } from '../../hooks/use-sync-refs' import { OpenClosedProvider, State, useOpenClosed } from '../../internal/open-closed' -import { Props } from '../../types' +import type { Props } from '../../types' import { isDisabledReactIssue7711 } from '../../utils/bugs' import { match } from '../../utils/match' import { getOwnerDocument } from '../../utils/owner' import { Features, forwardRefWithAs, - HasDisplayName, - PropsForFeatures, - RefProp, render, + type HasDisplayName, + type PropsForFeatures, + type RefProp, } from '../../utils/render' import { startTransition } from '../../utils/start-transition' import { Keys } from '../keyboard' diff --git a/packages/@headlessui-react/src/components/focus-trap/focus-trap.test.tsx b/packages/@headlessui-react/src/components/focus-trap/focus-trap.test.tsx index 8f16838..a392ba6 100644 --- a/packages/@headlessui-react/src/components/focus-trap/focus-trap.test.tsx +++ b/packages/@headlessui-react/src/components/focus-trap/focus-trap.test.tsx @@ -1,6 +1,5 @@ import { render, screen } from '@testing-library/react' import React, { useRef, useState } from 'react' - import { assertActiveElement } from '../../test-utils/accessibility-assertions' import { click, Keys, press, shift } from '../../test-utils/interactions' import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' diff --git a/packages/@headlessui-react/src/components/focus-trap/focus-trap.tsx b/packages/@headlessui-react/src/components/focus-trap/focus-trap.tsx index d225a93..2a74e9c 100644 --- a/packages/@headlessui-react/src/components/focus-trap/focus-trap.tsx +++ b/packages/@headlessui-react/src/components/focus-trap/focus-trap.tsx @@ -1,11 +1,10 @@ import React, { - ElementType, - FocusEvent as ReactFocusEvent, - MutableRefObject, - Ref, useRef, + type ElementType, + type FocusEvent as ReactFocusEvent, + type MutableRefObject, + type Ref, } from 'react' - import { useDisposables } from '../../hooks/use-disposables' import { useEvent } from '../../hooks/use-event' import { useEventListener } from '../../hooks/use-event-listener' @@ -17,12 +16,12 @@ import { useSyncRefs } from '../../hooks/use-sync-refs' import { Direction as TabDirection, useTabDirection } from '../../hooks/use-tab-direction' import { useWatch } from '../../hooks/use-watch' import { Features as HiddenFeatures, Hidden } from '../../internal/hidden' -import { Props } from '../../types' +import type { Props } from '../../types' import { history } from '../../utils/active-element-history' import { Focus, focusElement, focusIn, FocusResult } from '../../utils/focus-management' import { match } from '../../utils/match' import { microTask } from '../../utils/micro-task' -import { forwardRefWithAs, HasDisplayName, RefProp, render } from '../../utils/render' +import { forwardRefWithAs, render, type HasDisplayName, type RefProp } from '../../utils/render' type Containers = // Lazy resolved containers diff --git a/packages/@headlessui-react/src/components/label/label.test.tsx b/packages/@headlessui-react/src/components/label/label.test.tsx index 7d0ec99..eeec560 100644 --- a/packages/@headlessui-react/src/components/label/label.test.tsx +++ b/packages/@headlessui-react/src/components/label/label.test.tsx @@ -1,5 +1,5 @@ import { render } from '@testing-library/react' -import React, { ReactNode } from 'react' +import React, { type ReactNode } from 'react' import { Label, useLabels } from './label' jest.mock('../../hooks/use-id') diff --git a/packages/@headlessui-react/src/components/label/label.tsx b/packages/@headlessui-react/src/components/label/label.tsx index 4d668cf..b925320 100644 --- a/packages/@headlessui-react/src/components/label/label.tsx +++ b/packages/@headlessui-react/src/components/label/label.tsx @@ -1,19 +1,18 @@ import React, { createContext, - ElementType, - ReactNode, - Ref, useContext, useMemo, useState, + type ElementType, + type ReactNode, + type Ref, } from 'react' - import { useEvent } from '../../hooks/use-event' import { useId } from '../../hooks/use-id' import { useIsoMorphicEffect } from '../../hooks/use-iso-morphic-effect' import { useSyncRefs } from '../../hooks/use-sync-refs' -import { Props } from '../../types' -import { forwardRefWithAs, HasDisplayName, RefProp, render } from '../../utils/render' +import type { Props } from '../../types' +import { forwardRefWithAs, render, type HasDisplayName, type RefProp } from '../../utils/render' // --- diff --git a/packages/@headlessui-react/src/components/listbox/listbox.test.tsx b/packages/@headlessui-react/src/components/listbox/listbox.test.tsx index 0227f5d..e0c9e3e 100644 --- a/packages/@headlessui-react/src/components/listbox/listbox.test.tsx +++ b/packages/@headlessui-react/src/components/listbox/listbox.test.tsx @@ -1,6 +1,5 @@ import { render } from '@testing-library/react' import React, { createElement, useEffect, useState } from 'react' - import { assertActiveElement, assertActiveListboxOption, diff --git a/packages/@headlessui-react/src/components/listbox/listbox.tsx b/packages/@headlessui-react/src/components/listbox/listbox.tsx index df81e5e..9c3eedf 100644 --- a/packages/@headlessui-react/src/components/listbox/listbox.tsx +++ b/packages/@headlessui-react/src/components/listbox/listbox.tsx @@ -1,20 +1,19 @@ import React, { createContext, createRef, - ElementType, Fragment, - KeyboardEvent as ReactKeyboardEvent, - MouseEvent as ReactMouseEvent, - MutableRefObject, - Ref, useCallback, useContext, useEffect, useMemo, useReducer, useRef, + type ElementType, + type KeyboardEvent as ReactKeyboardEvent, + type MouseEvent as ReactMouseEvent, + type MutableRefObject, + type Ref, } from 'react' - import { useComputed } from '../../hooks/use-computed' import { useControllable } from '../../hooks/use-controllable' import { useDisposables } from '../../hooks/use-disposables' @@ -29,7 +28,7 @@ import { useTextValue } from '../../hooks/use-text-value' import { useTrackedPointer } from '../../hooks/use-tracked-pointer' import { Features as HiddenFeatures, Hidden } from '../../internal/hidden' import { OpenClosedProvider, State, useOpenClosed } from '../../internal/open-closed' -import { EnsureArray, Props } from '../../types' +import type { EnsureArray, Props } from '../../types' import { isDisabledReactIssue7711 } from '../../utils/bugs' import { calculateActiveIndex, Focus } from '../../utils/calculate-active-index' import { disposables } from '../../utils/disposables' @@ -41,10 +40,10 @@ import { compact, Features, forwardRefWithAs, - HasDisplayName, - PropsForFeatures, - RefProp, render, + type HasDisplayName, + type PropsForFeatures, + type RefProp, } from '../../utils/render' import { Keys } from '../keyboard' diff --git a/packages/@headlessui-react/src/components/menu/menu.test.tsx b/packages/@headlessui-react/src/components/menu/menu.test.tsx index e05ff39..6f461c9 100644 --- a/packages/@headlessui-react/src/components/menu/menu.test.tsx +++ b/packages/@headlessui-react/src/components/menu/menu.test.tsx @@ -1,6 +1,5 @@ import { render } from '@testing-library/react' import React, { createElement, useEffect } from 'react' - import { assertActiveElement, assertMenu, diff --git a/packages/@headlessui-react/src/components/menu/menu.tsx b/packages/@headlessui-react/src/components/menu/menu.tsx index 3d88df4..8221d30 100644 --- a/packages/@headlessui-react/src/components/menu/menu.tsx +++ b/packages/@headlessui-react/src/components/menu/menu.tsx @@ -2,20 +2,19 @@ import React, { createContext, createRef, - Dispatch, - ElementType, Fragment, - KeyboardEvent as ReactKeyboardEvent, - MouseEvent as ReactMouseEvent, - MutableRefObject, - Ref, useContext, useEffect, useMemo, useReducer, useRef, + type Dispatch, + type ElementType, + type KeyboardEvent as ReactKeyboardEvent, + type MouseEvent as ReactMouseEvent, + type MutableRefObject, + type Ref, } from 'react' - import { useDisposables } from '../../hooks/use-disposables' import { useEvent } from '../../hooks/use-event' import { useId } from '../../hooks/use-id' @@ -28,7 +27,7 @@ import { useTextValue } from '../../hooks/use-text-value' import { useTrackedPointer } from '../../hooks/use-tracked-pointer' import { useTreeWalker } from '../../hooks/use-tree-walker' import { OpenClosedProvider, State, useOpenClosed } from '../../internal/open-closed' -import { Props } from '../../types' +import type { Props } from '../../types' import { isDisabledReactIssue7711 } from '../../utils/bugs' import { calculateActiveIndex, Focus } from '../../utils/calculate-active-index' import { disposables } from '../../utils/disposables' @@ -44,10 +43,10 @@ import { match } from '../../utils/match' import { Features, forwardRefWithAs, - HasDisplayName, - PropsForFeatures, - RefProp, render, + type HasDisplayName, + type PropsForFeatures, + type RefProp, } from '../../utils/render' import { Keys } from '../keyboard' diff --git a/packages/@headlessui-react/src/components/popover/popover.test.tsx b/packages/@headlessui-react/src/components/popover/popover.test.tsx index 4c3070f..6c05465 100644 --- a/packages/@headlessui-react/src/components/popover/popover.test.tsx +++ b/packages/@headlessui-react/src/components/popover/popover.test.tsx @@ -1,6 +1,5 @@ import { act as _act, render } from '@testing-library/react' import React, { createElement, Fragment, useEffect, useRef, useState } from 'react' - import ReactDOM from 'react-dom' import { assertActiveElement, diff --git a/packages/@headlessui-react/src/components/popover/popover.tsx b/packages/@headlessui-react/src/components/popover/popover.tsx index 4cb75a1..8e991f3 100644 --- a/packages/@headlessui-react/src/components/popover/popover.tsx +++ b/packages/@headlessui-react/src/components/popover/popover.tsx @@ -1,21 +1,21 @@ import React, { - ContextType, createContext, createRef, - Dispatch, - ElementType, - FocusEvent as ReactFocusEvent, - KeyboardEvent as ReactKeyboardEvent, - MouseEvent as ReactMouseEvent, - MouseEventHandler, - MutableRefObject, - Ref, useContext, useEffect, useMemo, useReducer, useRef, useState, + type ContextType, + type Dispatch, + type ElementType, + type FocusEvent as ReactFocusEvent, + type KeyboardEvent as ReactKeyboardEvent, + type MouseEvent as ReactMouseEvent, + type MouseEventHandler, + type MutableRefObject, + type Ref, } from 'react' import { useNestedPortals } from '../../components/portal/portal' @@ -32,7 +32,7 @@ import { optionalRef, useSyncRefs } from '../../hooks/use-sync-refs' import { Direction as TabDirection, useTabDirection } from '../../hooks/use-tab-direction' import { Features as HiddenFeatures, Hidden } from '../../internal/hidden' import { OpenClosedProvider, State, useOpenClosed } from '../../internal/open-closed' -import { Props } from '../../types' +import type { Props } from '../../types' import { isDisabledReactIssue7711 } from '../../utils/bugs' import { Focus, @@ -48,10 +48,10 @@ import { getOwnerDocument } from '../../utils/owner' import { Features, forwardRefWithAs, - HasDisplayName, - PropsForFeatures, - RefProp, render, + type HasDisplayName, + type PropsForFeatures, + type RefProp, } from '../../utils/render' import { Keys } from '../keyboard' diff --git a/packages/@headlessui-react/src/components/portal/portal.test.tsx b/packages/@headlessui-react/src/components/portal/portal.test.tsx index d5d9d06..3a36c47 100644 --- a/packages/@headlessui-react/src/components/portal/portal.test.tsx +++ b/packages/@headlessui-react/src/components/portal/portal.test.tsx @@ -1,9 +1,7 @@ import { render } from '@testing-library/react' import React, { useRef, useState } from 'react' - -import { Portal } from './portal' - import { click } from '../../test-utils/interactions' +import { Portal } from './portal' function getPortalRoot() { return document.getElementById('headlessui-portal-root')! diff --git a/packages/@headlessui-react/src/components/portal/portal.tsx b/packages/@headlessui-react/src/components/portal/portal.tsx index f3f0071..3c9b87d 100644 --- a/packages/@headlessui-react/src/components/portal/portal.tsx +++ b/packages/@headlessui-react/src/components/portal/portal.tsx @@ -1,18 +1,17 @@ import React, { - ContextType, createContext, - ElementType, Fragment, - MutableRefObject, - Ref, useContext, useEffect, useMemo, useRef, useState, + type ContextType, + type ElementType, + type MutableRefObject, + type Ref, } from 'react' import { createPortal } from 'react-dom' - import { useEvent } from '../../hooks/use-event' import { useIsoMorphicEffect } from '../../hooks/use-iso-morphic-effect' import { useOnUnmount } from '../../hooks/use-on-unmount' @@ -20,7 +19,7 @@ import { useOwnerDocument } from '../../hooks/use-owner' import { useServerHandoffComplete } from '../../hooks/use-server-handoff-complete' import { optionalRef, useSyncRefs } from '../../hooks/use-sync-refs' import { usePortalRoot } from '../../internal/portal-force-root' -import { Props } from '../../types' +import type { Props } from '../../types' import { env } from '../../utils/env' import { forwardRefWithAs, HasDisplayName, RefProp, render } from '../../utils/render' diff --git a/packages/@headlessui-react/src/components/radio-group/radio-group.test.tsx b/packages/@headlessui-react/src/components/radio-group/radio-group.test.tsx index a78800b..4b182c5 100644 --- a/packages/@headlessui-react/src/components/radio-group/radio-group.test.tsx +++ b/packages/@headlessui-react/src/components/radio-group/radio-group.test.tsx @@ -1,9 +1,5 @@ -import React, { createElement, useState } from 'react' - import { render } from '@testing-library/react' - -import { RadioGroup } from './radio-group' - +import React, { createElement, useState } from 'react' import { assertActiveElement, assertFocusable, @@ -14,6 +10,7 @@ import { } from '../../test-utils/accessibility-assertions' import { click, focus, Keys, press, shift } from '../../test-utils/interactions' import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' +import { RadioGroup } from './radio-group' jest.mock('../../hooks/use-id') diff --git a/packages/@headlessui-react/src/components/radio-group/radio-group.tsx b/packages/@headlessui-react/src/components/radio-group/radio-group.tsx index 6b5a0a9..5ab6d8d 100644 --- a/packages/@headlessui-react/src/components/radio-group/radio-group.tsx +++ b/packages/@headlessui-react/src/components/radio-group/radio-group.tsx @@ -1,16 +1,16 @@ import React, { createContext, - ElementType, - FocusEvent as ReactFocusEvent, - KeyboardEvent as ReactKeyboardEvent, - MouseEvent as ReactMouseEvent, - MutableRefObject, - Ref, useContext, useEffect, useMemo, useReducer, useRef, + type ElementType, + type FocusEvent as ReactFocusEvent, + type KeyboardEvent as ReactKeyboardEvent, + type MouseEvent as ReactMouseEvent, + type MutableRefObject, + type Ref, } from 'react' import { @@ -30,13 +30,19 @@ import { useLatestValue } from '../../hooks/use-latest-value' import { useSyncRefs } from '../../hooks/use-sync-refs' import { useTreeWalker } from '../../hooks/use-tree-walker' import { Features as HiddenFeatures, Hidden } from '../../internal/hidden' -import { Expand, Props } from '../../types' +import type { Expand, Props } from '../../types' import { isDisabledReactIssue7711 } from '../../utils/bugs' import { Focus, focusIn, FocusResult, sortByDomNode } from '../../utils/focus-management' import { attemptSubmit, objectToFormEntries } from '../../utils/form' import { match } from '../../utils/match' import { getOwnerDocument } from '../../utils/owner' -import { compact, forwardRefWithAs, HasDisplayName, RefProp, render } from '../../utils/render' +import { + compact, + forwardRefWithAs, + render, + type HasDisplayName, + type RefProp, +} from '../../utils/render' interface Option { id: string diff --git a/packages/@headlessui-react/src/components/switch/switch.test.tsx b/packages/@headlessui-react/src/components/switch/switch.test.tsx index 3f442b2..c7615fc 100644 --- a/packages/@headlessui-react/src/components/switch/switch.test.tsx +++ b/packages/@headlessui-react/src/components/switch/switch.test.tsx @@ -1,6 +1,5 @@ import { render } from '@testing-library/react' import React, { useState } from 'react' - import { assertActiveElement, assertSwitch, diff --git a/packages/@headlessui-react/src/components/switch/switch.tsx b/packages/@headlessui-react/src/components/switch/switch.tsx index 89a3092..ca2f94e 100644 --- a/packages/@headlessui-react/src/components/switch/switch.tsx +++ b/packages/@headlessui-react/src/components/switch/switch.tsx @@ -1,17 +1,16 @@ import React, { createContext, - ElementType, Fragment, - KeyboardEvent as ReactKeyboardEvent, - MouseEvent as ReactMouseEvent, - Ref, useContext, useEffect, useMemo, useRef, useState, + type ElementType, + type KeyboardEvent as ReactKeyboardEvent, + type MouseEvent as ReactMouseEvent, + type Ref, } from 'react' - import { useControllable } from '../../hooks/use-controllable' import { useDisposables } from '../../hooks/use-disposables' import { useEvent } from '../../hooks/use-event' @@ -19,10 +18,16 @@ import { useId } from '../../hooks/use-id' import { useResolveButtonType } from '../../hooks/use-resolve-button-type' import { useSyncRefs } from '../../hooks/use-sync-refs' import { Features as HiddenFeatures, Hidden } from '../../internal/hidden' -import { Props } from '../../types' +import type { Props } from '../../types' import { isDisabledReactIssue7711 } from '../../utils/bugs' import { attemptSubmit } from '../../utils/form' -import { compact, forwardRefWithAs, HasDisplayName, RefProp, render } from '../../utils/render' +import { + compact, + forwardRefWithAs, + render, + type HasDisplayName, + type RefProp, +} from '../../utils/render' import { Description, useDescriptions, diff --git a/packages/@headlessui-react/src/components/tabs/tabs.test.tsx b/packages/@headlessui-react/src/components/tabs/tabs.test.tsx index e04d535..5ba3e39 100644 --- a/packages/@headlessui-react/src/components/tabs/tabs.test.tsx +++ b/packages/@headlessui-react/src/components/tabs/tabs.test.tsx @@ -1,6 +1,5 @@ import { render } from '@testing-library/react' import React, { createElement, useState } from 'react' - import { assertActiveElement, assertTabs, diff --git a/packages/@headlessui-react/src/components/tabs/tabs.tsx b/packages/@headlessui-react/src/components/tabs/tabs.tsx index 6e02330..5f705db 100644 --- a/packages/@headlessui-react/src/components/tabs/tabs.tsx +++ b/packages/@headlessui-react/src/components/tabs/tabs.tsx @@ -1,17 +1,16 @@ import React, { createContext, - ElementType, Fragment, - KeyboardEvent as ReactKeyboardEvent, - MouseEvent as ReactMouseEvent, - MutableRefObject, - Ref, useContext, useMemo, useReducer, useRef, + type ElementType, + type KeyboardEvent as ReactKeyboardEvent, + type MouseEvent as ReactMouseEvent, + type MutableRefObject, + type Ref, } from 'react' - import { Keys } from '../../components/keyboard' import { useEvent } from '../../hooks/use-event' import { useId } from '../../hooks/use-id' @@ -21,7 +20,7 @@ import { useResolveButtonType } from '../../hooks/use-resolve-button-type' import { useSyncRefs } from '../../hooks/use-sync-refs' import { FocusSentinel } from '../../internal/focus-sentinel' import { Hidden } from '../../internal/hidden' -import { Props } from '../../types' +import type { Props } from '../../types' import { Focus, focusIn, FocusResult, sortByDomNode } from '../../utils/focus-management' import { match } from '../../utils/match' import { microTask } from '../../utils/micro-task' @@ -29,10 +28,10 @@ import { getOwnerDocument } from '../../utils/owner' import { Features, forwardRefWithAs, - HasDisplayName, - PropsForFeatures, - RefProp, render, + type HasDisplayName, + type PropsForFeatures, + type RefProp, } from '../../utils/render' import { StableCollection, useStableCollectionIndex } from '../../utils/stable-collection' diff --git a/packages/@headlessui-react/src/components/transitions/transition.test.tsx b/packages/@headlessui-react/src/components/transitions/transition.test.tsx index 2066568..da017f1 100644 --- a/packages/@headlessui-react/src/components/transitions/transition.test.tsx +++ b/packages/@headlessui-react/src/components/transitions/transition.test.tsx @@ -1,11 +1,9 @@ import { act as _act, fireEvent, render } from '@testing-library/react' import React, { Fragment, useEffect, useLayoutEffect, useRef, useState } from 'react' - -import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' -import { Transition } from './transition' - import { executeTimeline } from '../../test-utils/execute-timeline' import { createSnapshot } from '../../test-utils/snapshot' +import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' +import { Transition } from './transition' let act = _act as unknown as (fn: () => T) => PromiseLike diff --git a/packages/@headlessui-react/src/components/transitions/transition.tsx b/packages/@headlessui-react/src/components/transitions/transition.tsx index f26dd5d..34233e8 100644 --- a/packages/@headlessui-react/src/components/transitions/transition.tsx +++ b/packages/@headlessui-react/src/components/transitions/transition.tsx @@ -1,14 +1,14 @@ import React, { createContext, - ElementType, Fragment, - MutableRefObject, - Ref, useContext, useEffect, useMemo, useRef, useState, + type ElementType, + type MutableRefObject, + type Ref, } from 'react' import { useDisposables } from '../../hooks/use-disposables' import { useEvent } from '../../hooks/use-event' @@ -20,17 +20,17 @@ import { useServerHandoffComplete } from '../../hooks/use-server-handoff-complet import { useSyncRefs } from '../../hooks/use-sync-refs' import { useTransition } from '../../hooks/use-transition' import { OpenClosedProvider, State, useOpenClosed } from '../../internal/open-closed' -import { Props, ReactTag } from '../../types' +import type { Props, ReactTag } from '../../types' import { classNames } from '../../utils/class-names' import { match } from '../../utils/match' import { Features, forwardRefWithAs, - HasDisplayName, - PropsForFeatures, - RefProp, render, RenderStrategy, + type HasDisplayName, + type PropsForFeatures, + type RefProp, } from '../../utils/render' type ContainerElement = MutableRefObject diff --git a/packages/@headlessui-react/src/components/transitions/utils/transition.test.ts b/packages/@headlessui-react/src/components/transitions/utils/transition.test.ts index 8ee66ba..8f89ae7 100644 --- a/packages/@headlessui-react/src/components/transitions/utils/transition.test.ts +++ b/packages/@headlessui-react/src/components/transitions/utils/transition.test.ts @@ -1,7 +1,6 @@ -import { transition } from './transition' - import { reportChanges } from '../../../test-utils/report-dom-node-changes' import { disposables } from '../../../utils/disposables' +import { transition } from './transition' beforeEach(() => { document.body.innerHTML = '' diff --git a/packages/@headlessui-react/src/hooks/use-disposables.ts b/packages/@headlessui-react/src/hooks/use-disposables.ts index 9166de2..0e90188 100644 --- a/packages/@headlessui-react/src/hooks/use-disposables.ts +++ b/packages/@headlessui-react/src/hooks/use-disposables.ts @@ -1,5 +1,4 @@ import { useEffect, useState } from 'react' - import { disposables } from '../utils/disposables' export function useDisposables() { diff --git a/packages/@headlessui-react/src/hooks/use-document-event.ts b/packages/@headlessui-react/src/hooks/use-document-event.ts index 0540994..d1e7d38 100644 --- a/packages/@headlessui-react/src/hooks/use-document-event.ts +++ b/packages/@headlessui-react/src/hooks/use-document-event.ts @@ -1,5 +1,4 @@ import { useEffect } from 'react' - import { useLatestValue } from './use-latest-value' export function useDocumentEvent( diff --git a/packages/@headlessui-react/src/hooks/use-event-listener.ts b/packages/@headlessui-react/src/hooks/use-event-listener.ts index 303fc37..0a4d10e 100644 --- a/packages/@headlessui-react/src/hooks/use-event-listener.ts +++ b/packages/@headlessui-react/src/hooks/use-event-listener.ts @@ -1,5 +1,4 @@ import { useEffect } from 'react' - import { useLatestValue } from './use-latest-value' export function useEventListener( diff --git a/packages/@headlessui-react/src/hooks/use-inert.tsx b/packages/@headlessui-react/src/hooks/use-inert.tsx index e3e10c2..7cd8767 100644 --- a/packages/@headlessui-react/src/hooks/use-inert.tsx +++ b/packages/@headlessui-react/src/hooks/use-inert.tsx @@ -1,4 +1,4 @@ -import { MutableRefObject } from 'react' +import { type MutableRefObject } from 'react' import { useIsoMorphicEffect } from './use-iso-morphic-effect' let originals = new Map() diff --git a/packages/@headlessui-react/src/hooks/use-resolve-button-type.ts b/packages/@headlessui-react/src/hooks/use-resolve-button-type.ts index 170ae8e..163e5da 100644 --- a/packages/@headlessui-react/src/hooks/use-resolve-button-type.ts +++ b/packages/@headlessui-react/src/hooks/use-resolve-button-type.ts @@ -1,5 +1,4 @@ -import { MutableRefObject, useState } from 'react' - +import { useState, type MutableRefObject } from 'react' import { useIsoMorphicEffect } from './use-iso-morphic-effect' function resolveType(props: { type?: string; as?: TTag }) { diff --git a/packages/@headlessui-react/src/hooks/use-text-value.ts b/packages/@headlessui-react/src/hooks/use-text-value.ts index 71e8dc2..47ebc89 100644 --- a/packages/@headlessui-react/src/hooks/use-text-value.ts +++ b/packages/@headlessui-react/src/hooks/use-text-value.ts @@ -1,4 +1,4 @@ -import { MutableRefObject, useRef } from 'react' +import { useRef, type MutableRefObject } from 'react' import { getTextValue } from '../utils/get-text-value' import { useEvent } from './use-event' diff --git a/packages/@headlessui-react/src/hooks/use-transition.ts b/packages/@headlessui-react/src/hooks/use-transition.ts index e5adf5e..3d9fc15 100644 --- a/packages/@headlessui-react/src/hooks/use-transition.ts +++ b/packages/@headlessui-react/src/hooks/use-transition.ts @@ -1,8 +1,6 @@ -import { MutableRefObject } from 'react' - +import { type MutableRefObject } from 'react' import { transition } from '../components/transitions/utils/transition' import { disposables } from '../utils/disposables' - import { useDisposables } from './use-disposables' import { useIsMounted } from './use-is-mounted' import { useIsoMorphicEffect } from './use-iso-morphic-effect' diff --git a/packages/@headlessui-react/src/hooks/use-window-event.ts b/packages/@headlessui-react/src/hooks/use-window-event.ts index db441df..97b501b 100644 --- a/packages/@headlessui-react/src/hooks/use-window-event.ts +++ b/packages/@headlessui-react/src/hooks/use-window-event.ts @@ -1,5 +1,4 @@ import { useEffect } from 'react' - import { useLatestValue } from './use-latest-value' export function useWindowEvent( diff --git a/packages/@headlessui-react/src/internal/focus-sentinel.tsx b/packages/@headlessui-react/src/internal/focus-sentinel.tsx index 31cf454..b205aee 100644 --- a/packages/@headlessui-react/src/internal/focus-sentinel.tsx +++ b/packages/@headlessui-react/src/internal/focus-sentinel.tsx @@ -1,5 +1,4 @@ -import React, { FocusEvent as ReactFocusEvent, useState } from 'react' - +import React, { useState, type FocusEvent as ReactFocusEvent } from 'react' import { useIsMounted } from '../hooks/use-is-mounted' import { Features, Hidden } from './hidden' diff --git a/packages/@headlessui-react/src/internal/hidden.tsx b/packages/@headlessui-react/src/internal/hidden.tsx index 633f20d..d31fdd6 100644 --- a/packages/@headlessui-react/src/internal/hidden.tsx +++ b/packages/@headlessui-react/src/internal/hidden.tsx @@ -1,6 +1,6 @@ -import { ElementType, Ref } from 'react' -import { Props } from '../types' -import { forwardRefWithAs, HasDisplayName, RefProp, render } from '../utils/render' +import type { ElementType, Ref } from 'react' +import type { Props } from '../types' +import { forwardRefWithAs, render, type HasDisplayName, type RefProp } from '../utils/render' let DEFAULT_VISUALLY_HIDDEN_TAG = 'div' as const diff --git a/packages/@headlessui-react/src/internal/open-closed.tsx b/packages/@headlessui-react/src/internal/open-closed.tsx index a1685e7..b5ce312 100644 --- a/packages/@headlessui-react/src/internal/open-closed.tsx +++ b/packages/@headlessui-react/src/internal/open-closed.tsx @@ -1,4 +1,4 @@ -import React, { createContext, ReactElement, ReactNode, useContext } from 'react' +import React, { createContext, useContext, type ReactElement, type ReactNode } from 'react' let Context = createContext(null) Context.displayName = 'OpenClosedContext' diff --git a/packages/@headlessui-react/src/internal/portal-force-root.tsx b/packages/@headlessui-react/src/internal/portal-force-root.tsx index a230b61..81d97b7 100644 --- a/packages/@headlessui-react/src/internal/portal-force-root.tsx +++ b/packages/@headlessui-react/src/internal/portal-force-root.tsx @@ -1,4 +1,4 @@ -import React, { createContext, ReactNode, useContext } from 'react' +import React, { createContext, useContext, type ReactNode } from 'react' let ForcePortalRootContext = createContext(false) diff --git a/packages/@headlessui-react/src/internal/stack-context.tsx b/packages/@headlessui-react/src/internal/stack-context.tsx index 1fce47a..4ab5529 100644 --- a/packages/@headlessui-react/src/internal/stack-context.tsx +++ b/packages/@headlessui-react/src/internal/stack-context.tsx @@ -1,4 +1,4 @@ -import React, { createContext, MutableRefObject, ReactNode, useContext } from 'react' +import React, { createContext, useContext, type MutableRefObject, type ReactNode } from 'react' import { useEvent } from '../hooks/use-event' import { useIsoMorphicEffect } from '../hooks/use-iso-morphic-effect' diff --git a/packages/@headlessui-react/src/test-utils/execute-timeline.ts b/packages/@headlessui-react/src/test-utils/execute-timeline.ts index 26e6bc9..9a6c979 100644 --- a/packages/@headlessui-react/src/test-utils/execute-timeline.ts +++ b/packages/@headlessui-react/src/test-utils/execute-timeline.ts @@ -1,6 +1,5 @@ import { render } from '@testing-library/react' import snapshotDiff from 'snapshot-diff' - import { disposables } from '../utils/disposables' import { reportChanges } from './report-dom-node-changes' diff --git a/packages/@headlessui-react/src/test-utils/interactions.test.tsx b/packages/@headlessui-react/src/test-utils/interactions.test.tsx index e71dbfe..28c69f9 100644 --- a/packages/@headlessui-react/src/test-utils/interactions.test.tsx +++ b/packages/@headlessui-react/src/test-utils/interactions.test.tsx @@ -1,6 +1,5 @@ import { render } from '@testing-library/react' import React from 'react' - import { Keys, shift, type } from './interactions' type Events = 'onKeyDown' | 'onKeyUp' | 'onKeyPress' | 'onClick' | 'onBlur' | 'onFocus' diff --git a/packages/@headlessui-react/src/test-utils/snapshot.ts b/packages/@headlessui-react/src/test-utils/snapshot.ts index 1b1d111..a084910 100644 --- a/packages/@headlessui-react/src/test-utils/snapshot.ts +++ b/packages/@headlessui-react/src/test-utils/snapshot.ts @@ -1,4 +1,4 @@ -import { MutableRefObject, useLayoutEffect, useRef } from 'react' +import { useLayoutEffect, useRef, type MutableRefObject } from 'react' export function createSnapshot() { let snapshots: HTMLElement[] = [] diff --git a/packages/@headlessui-react/src/test-utils/ssr.tsx b/packages/@headlessui-react/src/test-utils/ssr.tsx index 2634306..c9c22ce 100644 --- a/packages/@headlessui-react/src/test-utils/ssr.tsx +++ b/packages/@headlessui-react/src/test-utils/ssr.tsx @@ -1,5 +1,11 @@ -import { cleanup, render, RenderOptions, RenderResult, screen } from '@testing-library/react' -import React, { ReactElement } from 'react' +import { + cleanup, + render, + screen, + type RenderOptions, + type RenderResult, +} from '@testing-library/react' +import React, { type ReactElement } from 'react' import { renderToString } from 'react-dom/server' import { env } from '../utils/env' diff --git a/packages/@headlessui-react/src/types.ts b/packages/@headlessui-react/src/types.ts index 36f675e..f3d92d1 100644 --- a/packages/@headlessui-react/src/types.ts +++ b/packages/@headlessui-react/src/types.ts @@ -1,4 +1,4 @@ -import { JSXElementConstructor, ReactElement, ReactNode } from 'react' +import type { JSXElementConstructor, ReactElement, ReactNode } from 'react' export type ReactTag = keyof JSX.IntrinsicElements | JSXElementConstructor diff --git a/packages/@headlessui-react/src/utils/owner.ts b/packages/@headlessui-react/src/utils/owner.ts index 71f256e..4ce281a 100644 --- a/packages/@headlessui-react/src/utils/owner.ts +++ b/packages/@headlessui-react/src/utils/owner.ts @@ -1,4 +1,4 @@ -import { MutableRefObject } from 'react' +import { type MutableRefObject } from 'react' import { env } from './env' export function getOwnerDocument>( diff --git a/packages/@headlessui-react/src/utils/render.test.tsx b/packages/@headlessui-react/src/utils/render.test.tsx index e4598e4..030dd79 100644 --- a/packages/@headlessui-react/src/utils/render.test.tsx +++ b/packages/@headlessui-react/src/utils/render.test.tsx @@ -1,8 +1,7 @@ import { getByTestId, prettyDOM, render as testRender } from '@testing-library/react' -import React, { createRef, ElementType, Fragment, Ref } from 'react' - +import React, { createRef, Fragment, type ElementType, type Ref } from 'react' import { suppressConsoleLogs } from '../test-utils/suppress-console-logs' -import { Expand, Props } from '../types' +import type { Expand, Props } from '../types' import { Features, PropsForFeatures, render } from './render' function contents(id = 'wrapper') { diff --git a/packages/@headlessui-react/src/utils/render.ts b/packages/@headlessui-react/src/utils/render.ts index 58e2ecf..c2af718 100644 --- a/packages/@headlessui-react/src/utils/render.ts +++ b/packages/@headlessui-react/src/utils/render.ts @@ -1,14 +1,14 @@ import { cloneElement, createElement, - ElementType, forwardRef, Fragment, isValidElement, - ReactElement, - Ref, + type ElementType, + type ReactElement, + type Ref, } from 'react' -import { Expand, Props, XOR, __ } from '../types' +import type { Expand, Props, XOR, __ } from '../types' import { classNames } from './class-names' import { match } from './match' diff --git a/packages/@headlessui-vue/src/components/combobox/combobox.ts b/packages/@headlessui-vue/src/components/combobox/combobox.ts index 90f159b..0e25d11 100644 --- a/packages/@headlessui-vue/src/components/combobox/combobox.ts +++ b/packages/@headlessui-vue/src/components/combobox/combobox.ts @@ -1,24 +1,23 @@ import { computed, - ComputedRef, defineComponent, Fragment, h, inject, - InjectionKey, nextTick, onMounted, onUnmounted, - PropType, provide, ref, - Ref, toRaw, - UnwrapNestedRefs, watch, watchEffect, + type ComputedRef, + type InjectionKey, + type PropType, + type Ref, + type UnwrapNestedRefs, } from 'vue' - import { useControllable } from '../../hooks/use-controllable' import { useId } from '../../hooks/use-id' import { useOutsideClick } from '../../hooks/use-outside-click' diff --git a/packages/@headlessui-vue/src/components/description/description.test.ts b/packages/@headlessui-vue/src/components/description/description.test.ts index e8bfc61..d0cb03f 100644 --- a/packages/@headlessui-vue/src/components/description/description.test.ts +++ b/packages/@headlessui-vue/src/components/description/description.test.ts @@ -1,12 +1,10 @@ import prettier from 'prettier' import { defineComponent, h, nextTick, ref } from 'vue' - -import { render } from '../../test-utils/vue-testing-library' -import { Description, useDescriptions } from './description' - import { getByText } from '../../test-utils/accessibility-assertions' import { html } from '../../test-utils/html' import { click } from '../../test-utils/interactions' +import { render } from '../../test-utils/vue-testing-library' +import { Description, useDescriptions } from './description' function format(input: Element | null | string) { if (input === null) throw new Error('input is null') diff --git a/packages/@headlessui-vue/src/components/description/description.ts b/packages/@headlessui-vue/src/components/description/description.ts index fdb6241..5bf9673 100644 --- a/packages/@headlessui-vue/src/components/description/description.ts +++ b/packages/@headlessui-vue/src/components/description/description.ts @@ -1,17 +1,16 @@ import { computed, - ComputedRef, defineComponent, inject, - InjectionKey, onMounted, onUnmounted, provide, ref, - Ref, unref, + type ComputedRef, + type InjectionKey, + type Ref, } from 'vue' - import { useId } from '../../hooks/use-id' import { render } from '../../utils/render' diff --git a/packages/@headlessui-vue/src/components/dialog/dialog.test.ts b/packages/@headlessui-vue/src/components/dialog/dialog.test.ts index ce653cb..9b8860b 100644 --- a/packages/@headlessui-vue/src/components/dialog/dialog.test.ts +++ b/packages/@headlessui-vue/src/components/dialog/dialog.test.ts @@ -1,24 +1,13 @@ import { computed, - ConcreteComponent, defineComponent, h, nextTick, onMounted, - PropType, ref, + type ConcreteComponent, + type PropType, } from 'vue' -import { createRenderTemplate, render } from '../../test-utils/vue-testing-library' - -import { - Dialog, - DialogBackdrop, - DialogDescription, - DialogOverlay, - DialogPanel, - DialogTitle, -} from './dialog' - import { State, useOpenClosedProvider } from '../../internal/open-closed' import { assertActiveElement, @@ -40,8 +29,17 @@ import { import { html } from '../../test-utils/html' import { click, focus, Keys, mouseDrag, press, shift } from '../../test-utils/interactions' import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' +import { createRenderTemplate, render } from '../../test-utils/vue-testing-library' import { Popover, PopoverButton, PopoverPanel } from '../popover/popover' import { TransitionRoot } from '../transitions/transition' +import { + Dialog, + DialogBackdrop, + DialogDescription, + DialogOverlay, + DialogPanel, + DialogTitle, +} from './dialog' // @ts-expect-error global.ResizeObserver = class FakeResizeObserver { diff --git a/packages/@headlessui-vue/src/components/dialog/dialog.ts b/packages/@headlessui-vue/src/components/dialog/dialog.ts index 255721a..564c521 100644 --- a/packages/@headlessui-vue/src/components/dialog/dialog.ts +++ b/packages/@headlessui-vue/src/components/dialog/dialog.ts @@ -4,17 +4,16 @@ import { defineComponent, h, inject, - InjectionKey, nextTick, onMounted, onUnmounted, - PropType, provide, ref, - Ref, watchEffect, + type InjectionKey, + type PropType, + type Ref, } from 'vue' - import { FocusTrap } from '../../components/focus-trap/focus-trap' import { useDocumentOverflowLockedEffect } from '../../hooks/document-overflow/use-document-overflow' import { useEventListener } from '../../hooks/use-event-listener' diff --git a/packages/@headlessui-vue/src/components/disclosure/disclosure.ts b/packages/@headlessui-vue/src/components/disclosure/disclosure.ts index 3e62f6f..5e7f108 100644 --- a/packages/@headlessui-vue/src/components/disclosure/disclosure.ts +++ b/packages/@headlessui-vue/src/components/disclosure/disclosure.ts @@ -3,15 +3,14 @@ import { computed, defineComponent, inject, - InjectionKey, onMounted, onUnmounted, provide, ref, - Ref, watchEffect, + type InjectionKey, + type Ref, } from 'vue' - import { useId } from '../../hooks/use-id' import { useResolveButtonType } from '../../hooks/use-resolve-button-type' import { State, useOpenClosed, useOpenClosedProvider } from '../../internal/open-closed' diff --git a/packages/@headlessui-vue/src/components/focus-trap/focus-trap.test.ts b/packages/@headlessui-vue/src/components/focus-trap/focus-trap.test.ts index 47317c9..a0df8f7 100644 --- a/packages/@headlessui-vue/src/components/focus-trap/focus-trap.test.ts +++ b/packages/@headlessui-vue/src/components/focus-trap/focus-trap.test.ts @@ -1,5 +1,4 @@ import { onMounted, ref } from 'vue' - import { assertActiveElement, getByText } from '../../test-utils/accessibility-assertions' import { html } from '../../test-utils/html' import { click, Keys, press, shift } from '../../test-utils/interactions' diff --git a/packages/@headlessui-vue/src/components/focus-trap/focus-trap.ts b/packages/@headlessui-vue/src/components/focus-trap/focus-trap.ts index 0c43778..56e8796 100644 --- a/packages/@headlessui-vue/src/components/focus-trap/focus-trap.ts +++ b/packages/@headlessui-vue/src/components/focus-trap/focus-trap.ts @@ -5,11 +5,11 @@ import { h, onMounted, onUnmounted, - PropType, ref, - Ref, watch, watchEffect, + type PropType, + type Ref, } from 'vue' import { useEventListener } from '../../hooks/use-event-listener' import { Direction as TabDirection, useTabDirection } from '../../hooks/use-tab-direction' diff --git a/packages/@headlessui-vue/src/components/label/label.test.ts b/packages/@headlessui-vue/src/components/label/label.test.ts index 2c04a5e..b2dd99d 100644 --- a/packages/@headlessui-vue/src/components/label/label.test.ts +++ b/packages/@headlessui-vue/src/components/label/label.test.ts @@ -1,12 +1,10 @@ import prettier from 'prettier' import { defineComponent, h, nextTick, ref } from 'vue' - -import { render } from '../../test-utils/vue-testing-library' -import { Label, useLabels } from './label' - import { getByText } from '../../test-utils/accessibility-assertions' import { html } from '../../test-utils/html' import { click } from '../../test-utils/interactions' +import { render } from '../../test-utils/vue-testing-library' +import { Label, useLabels } from './label' function format(input: Element | null | string) { if (input === null) throw new Error('input is null') diff --git a/packages/@headlessui-vue/src/components/label/label.ts b/packages/@headlessui-vue/src/components/label/label.ts index 675f145..59bdc77 100644 --- a/packages/@headlessui-vue/src/components/label/label.ts +++ b/packages/@headlessui-vue/src/components/label/label.ts @@ -1,16 +1,15 @@ import { computed, - ComputedRef, defineComponent, inject, - InjectionKey, onMounted, onUnmounted, provide, ref, unref, + type ComputedRef, + type InjectionKey, } from 'vue' - import { useId } from '../../hooks/use-id' import { render } from '../../utils/render' diff --git a/packages/@headlessui-vue/src/components/listbox/listbox.ts b/packages/@headlessui-vue/src/components/listbox/listbox.ts index 71ace79..d26f882 100644 --- a/packages/@headlessui-vue/src/components/listbox/listbox.ts +++ b/packages/@headlessui-vue/src/components/listbox/listbox.ts @@ -1,24 +1,23 @@ import { computed, - ComputedRef, defineComponent, Fragment, h, inject, - InjectionKey, nextTick, onMounted, onUnmounted, - PropType, provide, ref, - Ref, toRaw, - UnwrapNestedRefs, watch, watchEffect, + type ComputedRef, + type InjectionKey, + type PropType, + type Ref, + type UnwrapNestedRefs, } from 'vue' - import { useControllable } from '../../hooks/use-controllable' import { useId } from '../../hooks/use-id' import { useOutsideClick } from '../../hooks/use-outside-click' diff --git a/packages/@headlessui-vue/src/components/menu/menu.ts b/packages/@headlessui-vue/src/components/menu/menu.ts index 142831d..d7cf180 100644 --- a/packages/@headlessui-vue/src/components/menu/menu.ts +++ b/packages/@headlessui-vue/src/components/menu/menu.ts @@ -1,17 +1,17 @@ import { computed, - ComputedRef, defineComponent, inject, - InjectionKey, nextTick, onMounted, onUnmounted, provide, ref, - Ref, - UnwrapNestedRefs, watchEffect, + type ComputedRef, + type InjectionKey, + type Ref, + type UnwrapNestedRefs, } from 'vue' import { useId } from '../../hooks/use-id' import { useOutsideClick } from '../../hooks/use-outside-click' diff --git a/packages/@headlessui-vue/src/components/popover/popover.ts b/packages/@headlessui-vue/src/components/popover/popover.ts index 9153825..e14e5f8 100644 --- a/packages/@headlessui-vue/src/components/popover/popover.ts +++ b/packages/@headlessui-vue/src/components/popover/popover.ts @@ -1,20 +1,19 @@ import { - ComponentPublicInstance, computed, defineComponent, Fragment, h, inject, - InjectionKey, onMounted, onUnmounted, provide, ref, - Ref, shallowRef, watchEffect, + type ComponentPublicInstance, + type InjectionKey, + type Ref, } from 'vue' - import { useNestedPortals } from '../../components/portal/portal' import { useEventListener } from '../../hooks/use-event-listener' import { useId } from '../../hooks/use-id' diff --git a/packages/@headlessui-vue/src/components/portal/portal.test.ts b/packages/@headlessui-vue/src/components/portal/portal.test.ts index 2dbf323..7615613 100644 --- a/packages/@headlessui-vue/src/components/portal/portal.test.ts +++ b/packages/@headlessui-vue/src/components/portal/portal.test.ts @@ -1,5 +1,4 @@ import { ComponentOptionsWithoutProps, createSSRApp, defineComponent, h, nextTick, ref } from 'vue' - import { renderToString } from 'vue/server-renderer' import { html } from '../../test-utils/html' import { click } from '../../test-utils/interactions' diff --git a/packages/@headlessui-vue/src/components/portal/portal.ts b/packages/@headlessui-vue/src/components/portal/portal.ts index 0c3db48..e378f42 100644 --- a/packages/@headlessui-vue/src/components/portal/portal.ts +++ b/packages/@headlessui-vue/src/components/portal/portal.ts @@ -4,17 +4,17 @@ import { getCurrentInstance, h, inject, - InjectionKey, onMounted, onUnmounted, - PropType, provide, reactive, ref, - Ref, Teleport, watch, watchEffect, + type InjectionKey, + type PropType, + type Ref, } from 'vue' import { usePortalRoot } from '../../internal/portal-force-root' import { dom } from '../../utils/dom' diff --git a/packages/@headlessui-vue/src/components/radio-group/radio-group.test.ts b/packages/@headlessui-vue/src/components/radio-group/radio-group.test.ts index 334bbdb..8b9b8e5 100644 --- a/packages/@headlessui-vue/src/components/radio-group/radio-group.test.ts +++ b/packages/@headlessui-vue/src/components/radio-group/radio-group.test.ts @@ -1,8 +1,4 @@ import { defineComponent, nextTick, reactive, ref, watch } from 'vue' -import { createRenderTemplate, render } from '../../test-utils/vue-testing-library' - -import { RadioGroup, RadioGroupDescription, RadioGroupLabel, RadioGroupOption } from './radio-group' - import { assertActiveElement, assertFocusable, @@ -14,6 +10,8 @@ import { import { html } from '../../test-utils/html' import { click, Keys, press, shift } from '../../test-utils/interactions' import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' +import { createRenderTemplate, render } from '../../test-utils/vue-testing-library' +import { RadioGroup, RadioGroupDescription, RadioGroupLabel, RadioGroupOption } from './radio-group' jest.mock('../../hooks/use-id') diff --git a/packages/@headlessui-vue/src/components/radio-group/radio-group.ts b/packages/@headlessui-vue/src/components/radio-group/radio-group.ts index 3ca6c4e..5479780 100644 --- a/packages/@headlessui-vue/src/components/radio-group/radio-group.ts +++ b/packages/@headlessui-vue/src/components/radio-group/radio-group.ts @@ -4,15 +4,15 @@ import { Fragment, h, inject, - InjectionKey, onMounted, onUnmounted, provide, ref, - Ref, toRaw, - UnwrapRef, watch, + type InjectionKey, + type Ref, + type UnwrapRef, } from 'vue' import { useControllable } from '../../hooks/use-controllable' import { useId } from '../../hooks/use-id' diff --git a/packages/@headlessui-vue/src/components/switch/switch.test.tsx b/packages/@headlessui-vue/src/components/switch/switch.test.tsx index c79dd22..2dfd961 100644 --- a/packages/@headlessui-vue/src/components/switch/switch.test.tsx +++ b/packages/@headlessui-vue/src/components/switch/switch.test.tsx @@ -1,6 +1,4 @@ import { defineComponent, h, ref, watch } from 'vue' -import { createRenderTemplate } from '../../test-utils/vue-testing-library' - import { assertActiveElement, assertSwitch, @@ -12,6 +10,7 @@ import { import { html } from '../../test-utils/html' import { click, Keys, mouseEnter, press } from '../../test-utils/interactions' import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' +import { createRenderTemplate } from '../../test-utils/vue-testing-library' import { Switch, SwitchDescription, SwitchGroup, SwitchLabel } from './switch' jest.mock('../../hooks/use-id') diff --git a/packages/@headlessui-vue/src/components/switch/switch.ts b/packages/@headlessui-vue/src/components/switch/switch.ts index 03563ad..2fc6096 100644 --- a/packages/@headlessui-vue/src/components/switch/switch.ts +++ b/packages/@headlessui-vue/src/components/switch/switch.ts @@ -4,14 +4,13 @@ import { Fragment, h, inject, - InjectionKey, onMounted, provide, ref, - Ref, watch, + type InjectionKey, + type Ref, } from 'vue' - import { useControllable } from '../../hooks/use-controllable' import { useId } from '../../hooks/use-id' import { useResolveButtonType } from '../../hooks/use-resolve-button-type' diff --git a/packages/@headlessui-vue/src/components/tabs/tabs.ts b/packages/@headlessui-vue/src/components/tabs/tabs.ts index 5efffc7..ec50dab 100644 --- a/packages/@headlessui-vue/src/components/tabs/tabs.ts +++ b/packages/@headlessui-vue/src/components/tabs/tabs.ts @@ -4,16 +4,15 @@ import { Fragment, h, inject, - InjectionKey, onMounted, onUnmounted, provide, ref, - Ref, watch, watchEffect, + type InjectionKey, + type Ref, } from 'vue' - import { useId } from '../../hooks/use-id' import { useResolveButtonType } from '../../hooks/use-resolve-button-type' import { FocusSentinel } from '../../internal/focus-sentinel' diff --git a/packages/@headlessui-vue/src/components/transitions/transition.test.ts b/packages/@headlessui-vue/src/components/transitions/transition.test.ts index 8433f04..d073b86 100644 --- a/packages/@headlessui-vue/src/components/transitions/transition.test.ts +++ b/packages/@headlessui-vue/src/components/transitions/transition.test.ts @@ -1,11 +1,9 @@ import { defineComponent, onMounted, ref } from 'vue' -import { createRenderTemplate, fireEvent } from '../../test-utils/vue-testing-library' - -import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' -import { TransitionChild, TransitionRoot } from './transition' - import { executeTimeline } from '../../test-utils/execute-timeline' import { html } from '../../test-utils/html' +import { suppressConsoleLogs } from '../../test-utils/suppress-console-logs' +import { createRenderTemplate, fireEvent } from '../../test-utils/vue-testing-library' +import { TransitionChild, TransitionRoot } from './transition' jest.mock('../../hooks/use-id') diff --git a/packages/@headlessui-vue/src/components/transitions/transition.ts b/packages/@headlessui-vue/src/components/transitions/transition.ts index 7f48924..b10eae0 100644 --- a/packages/@headlessui-vue/src/components/transitions/transition.ts +++ b/packages/@headlessui-vue/src/components/transitions/transition.ts @@ -1,24 +1,20 @@ import { computed, - ConcreteComponent, defineComponent, h, inject, - InjectionKey, normalizeClass, onMounted, onUnmounted, provide, ref, - Ref, watch, watchEffect, + type ConcreteComponent, + type InjectionKey, + type Ref, } from 'vue' - import { useId } from '../../hooks/use-id' -import { env } from '../../utils/env' -import { match } from '../../utils/match' - import { hasOpenClosed, State, @@ -26,6 +22,8 @@ import { useOpenClosedProvider, } from '../../internal/open-closed' import { dom } from '../../utils/dom' +import { env } from '../../utils/env' +import { match } from '../../utils/match' import { Features, omit, render, RenderStrategy } from '../../utils/render' import { Reason, transition } from './utils/transition' diff --git a/packages/@headlessui-vue/src/components/transitions/utils/transition.test.ts b/packages/@headlessui-vue/src/components/transitions/utils/transition.test.ts index 58cd91a..e0c36fc 100644 --- a/packages/@headlessui-vue/src/components/transitions/utils/transition.test.ts +++ b/packages/@headlessui-vue/src/components/transitions/utils/transition.test.ts @@ -1,7 +1,6 @@ -import { Reason, transition } from './transition' - import { reportChanges } from '../../../test-utils/report-dom-node-changes' import { disposables } from '../../../utils/disposables' +import { Reason, transition } from './transition' beforeEach(() => { document.body.innerHTML = '' diff --git a/packages/@headlessui-vue/src/hooks/use-inert.test.ts b/packages/@headlessui-vue/src/hooks/use-inert.test.ts index 68896f9..5b25e63 100644 --- a/packages/@headlessui-vue/src/hooks/use-inert.test.ts +++ b/packages/@headlessui-vue/src/hooks/use-inert.test.ts @@ -1,5 +1,4 @@ import { ComponentOptionsWithoutProps, computed, defineComponent, nextTick, ref } from 'vue' - import { assertInert, assertNotInert, getByText } from '../test-utils/accessibility-assertions' import { html } from '../test-utils/html' import { click } from '../test-utils/interactions' diff --git a/packages/@headlessui-vue/src/hooks/use-outside-click.ts b/packages/@headlessui-vue/src/hooks/use-outside-click.ts index 1bf631c..64fd65f 100644 --- a/packages/@headlessui-vue/src/hooks/use-outside-click.ts +++ b/packages/@headlessui-vue/src/hooks/use-outside-click.ts @@ -1,4 +1,4 @@ -import { computed, ComputedRef, Ref, ref } from 'vue' +import { computed, ref, type ComputedRef, type Ref } from 'vue' import { dom } from '../utils/dom' import { FocusableMode, isFocusableElement } from '../utils/focus-management' import { isMobile } from '../utils/platform' diff --git a/packages/@headlessui-vue/src/hooks/use-resolve-button-type.ts b/packages/@headlessui-vue/src/hooks/use-resolve-button-type.ts index 285197d..71faed0 100644 --- a/packages/@headlessui-vue/src/hooks/use-resolve-button-type.ts +++ b/packages/@headlessui-vue/src/hooks/use-resolve-button-type.ts @@ -1,4 +1,4 @@ -import { ComponentPublicInstance, onMounted, ref, Ref, watchEffect } from 'vue' +import { onMounted, ref, watchEffect, type ComponentPublicInstance, type Ref } from 'vue' import { dom } from '../utils/dom' function resolveType(type: unknown, as: string | object) { diff --git a/packages/@headlessui-vue/src/hooks/use-root-containers.ts b/packages/@headlessui-vue/src/hooks/use-root-containers.ts index 8a12a83..8cb5c66 100644 --- a/packages/@headlessui-vue/src/hooks/use-root-containers.ts +++ b/packages/@headlessui-vue/src/hooks/use-root-containers.ts @@ -1,4 +1,4 @@ -import { h, ref, Ref } from 'vue' +import { h, ref, type Ref } from 'vue' import { Features as HiddenFeatures, Hidden } from '../internal/hidden' import { dom } from '../utils/dom' import { getOwnerDocument } from '../utils/owner' diff --git a/packages/@headlessui-vue/src/hooks/use-tree-walker.ts b/packages/@headlessui-vue/src/hooks/use-tree-walker.ts index 4241604..59e15d6 100644 --- a/packages/@headlessui-vue/src/hooks/use-tree-walker.ts +++ b/packages/@headlessui-vue/src/hooks/use-tree-walker.ts @@ -1,4 +1,4 @@ -import { ComputedRef, watchEffect } from 'vue' +import { watchEffect, type ComputedRef } from 'vue' import { getOwnerDocument } from '../utils/owner' type AcceptNode = ( diff --git a/packages/@headlessui-vue/src/internal/focus-sentinel.ts b/packages/@headlessui-vue/src/internal/focus-sentinel.ts index 1672d99..879752d 100644 --- a/packages/@headlessui-vue/src/internal/focus-sentinel.ts +++ b/packages/@headlessui-vue/src/internal/focus-sentinel.ts @@ -1,5 +1,4 @@ import { defineComponent, h, ref } from 'vue' - import { Features, Hidden } from './hidden' export let FocusSentinel = defineComponent({ diff --git a/packages/@headlessui-vue/src/internal/hidden.ts b/packages/@headlessui-vue/src/internal/hidden.ts index 058b687..f28fbab 100644 --- a/packages/@headlessui-vue/src/internal/hidden.ts +++ b/packages/@headlessui-vue/src/internal/hidden.ts @@ -1,4 +1,4 @@ -import { defineComponent, PropType } from 'vue' +import { defineComponent, type PropType } from 'vue' import { render } from '../utils/render' export enum Features { diff --git a/packages/@headlessui-vue/src/internal/open-closed.ts b/packages/@headlessui-vue/src/internal/open-closed.ts index b6645de..7bddc5c 100644 --- a/packages/@headlessui-vue/src/internal/open-closed.ts +++ b/packages/@headlessui-vue/src/internal/open-closed.ts @@ -1,4 +1,4 @@ -import { inject, InjectionKey, provide, Ref } from 'vue' +import { inject, provide, type InjectionKey, type Ref } from 'vue' let Context = Symbol('Context') as InjectionKey> diff --git a/packages/@headlessui-vue/src/internal/portal-force-root.ts b/packages/@headlessui-vue/src/internal/portal-force-root.ts index 463fdfb..1e82e4b 100644 --- a/packages/@headlessui-vue/src/internal/portal-force-root.ts +++ b/packages/@headlessui-vue/src/internal/portal-force-root.ts @@ -1,4 +1,4 @@ -import { defineComponent, inject, InjectionKey, provide } from 'vue' +import { defineComponent, inject, provide, type InjectionKey } from 'vue' import { render } from '../utils/render' let ForcePortalRootContext = Symbol('ForcePortalRootContext') as InjectionKey diff --git a/packages/@headlessui-vue/src/internal/stack-context.ts b/packages/@headlessui-vue/src/internal/stack-context.ts index 59d9c98..12f0cdf 100644 --- a/packages/@headlessui-vue/src/internal/stack-context.ts +++ b/packages/@headlessui-vue/src/internal/stack-context.ts @@ -1,4 +1,4 @@ -import { inject, InjectionKey, onMounted, onUnmounted, provide, Ref, watch } from 'vue' +import { inject, onMounted, onUnmounted, provide, watch, type InjectionKey, type Ref } from 'vue' type OnUpdate = (message: StackMessage, type: string, element: Ref) => void diff --git a/packages/@headlessui-vue/src/test-utils/execute-timeline.ts b/packages/@headlessui-vue/src/test-utils/execute-timeline.ts index 7c90f6f..895c1c8 100644 --- a/packages/@headlessui-vue/src/test-utils/execute-timeline.ts +++ b/packages/@headlessui-vue/src/test-utils/execute-timeline.ts @@ -1,9 +1,8 @@ import snapshotDiff from 'snapshot-diff' import { defineComponent } from 'vue' -import { render } from './vue-testing-library' - import { disposables } from '../utils/disposables' import { reportChanges } from './report-dom-node-changes' +import { render } from './vue-testing-library' function redentSnapshot(input: string) { let minSpaces = Infinity diff --git a/packages/@headlessui-vue/src/test-utils/interactions.test.ts b/packages/@headlessui-vue/src/test-utils/interactions.test.ts index 7e75caf..30afef1 100644 --- a/packages/@headlessui-vue/src/test-utils/interactions.test.ts +++ b/packages/@headlessui-vue/src/test-utils/interactions.test.ts @@ -1,7 +1,6 @@ -import { render } from './vue-testing-library' - -import { ComponentOptionsWithoutProps, defineComponent, h } from 'vue' +import { defineComponent, h, type ComponentOptionsWithoutProps } from 'vue' import { Keys, shift, type } from './interactions' +import { render } from './vue-testing-library' type Events = 'onKeydown' | 'onKeyup' | 'onKeypress' | 'onClick' | 'onBlur' | 'onFocus' let events: Events[] = ['onKeydown', 'onKeyup', 'onKeypress', 'onClick', 'onBlur', 'onFocus'] diff --git a/packages/@headlessui-vue/src/test-utils/vue-testing-library.ts b/packages/@headlessui-vue/src/test-utils/vue-testing-library.ts index e1a96ea..6cf5fa1 100644 --- a/packages/@headlessui-vue/src/test-utils/vue-testing-library.ts +++ b/packages/@headlessui-vue/src/test-utils/vue-testing-library.ts @@ -1,6 +1,6 @@ import { fireEvent, logDOM, screen } from '@testing-library/dom' import { mount } from '@vue/test-utils' -import { ComponentOptionsWithoutProps, defineComponent } from 'vue' +import { defineComponent, type ComponentOptionsWithoutProps } from 'vue' let mountedWrappers = new Set() diff --git a/packages/@headlessui-vue/src/utils/owner.ts b/packages/@headlessui-vue/src/utils/owner.ts index 59a4bd5..b570bfe 100644 --- a/packages/@headlessui-vue/src/utils/owner.ts +++ b/packages/@headlessui-vue/src/utils/owner.ts @@ -1,4 +1,4 @@ -import { Ref } from 'vue' +import { type Ref } from 'vue' import { dom } from './dom' import { env } from './env' diff --git a/packages/@headlessui-vue/src/utils/render.test.ts b/packages/@headlessui-vue/src/utils/render.test.ts index b7374a8..a4f1523 100644 --- a/packages/@headlessui-vue/src/utils/render.test.ts +++ b/packages/@headlessui-vue/src/utils/render.test.ts @@ -1,7 +1,6 @@ import { defineComponent } from 'vue' -import { createRenderTemplate } from '../test-utils/vue-testing-library' - import { html } from '../test-utils/html' +import { createRenderTemplate } from '../test-utils/vue-testing-library' import { render } from './render' let Dummy = defineComponent({ diff --git a/packages/@headlessui-vue/src/utils/render.ts b/packages/@headlessui-vue/src/utils/render.ts index a4c2fe2..6896a51 100644 --- a/packages/@headlessui-vue/src/utils/render.ts +++ b/packages/@headlessui-vue/src/utils/render.ts @@ -1,4 +1,4 @@ -import { cloneVNode, Fragment, h, Slots, VNode } from 'vue' +import { cloneVNode, Fragment, h, type Slots, type VNode } from 'vue' import { match } from './match' export enum Features {