Skip to content

Commit 9fb475a

Browse files
authored
feat: add full ESM support (#125)
1 parent ce239af commit 9fb475a

34 files changed

+180
-136
lines changed

.babelrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = (api) => ({
1+
export default (api) => ({
22
presets: [
33
['env-modules', { modules: api.env() === 'cjs' ? 'commonjs' : false }],
44
['@babel/react', { runtime: 'automatic' }],

eslint.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export default tseslint.config(
5555
ignoreRestSiblings: false,
5656
},
5757
],
58+
'react/prop-types': 'off',
5859
},
5960
},
6061
{
@@ -82,7 +83,6 @@ export default tseslint.config(
8283
'@typescript-eslint/no-unused-expressions': 'off',
8384
'padded-blocks': 'off',
8485
'react/no-multi-comp': 'off',
85-
'react/prop-types': 'off',
8686
},
8787
},
8888
);

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"url": "git+https://github.com/react-restart/ui.git"
1212
},
1313
"license": "MIT",
14-
"main": "cjs/index.js",
14+
"type": "module",
15+
"main": "lib/index.js",
1516
"module": "lib/index.js",
1617
"types": "lib/index.d.ts",
1718
"exports": {
@@ -100,7 +101,7 @@
100101
"@restart/hooks": "^0.6.2",
101102
"@types/warning": "^3.0.3",
102103
"dequal": "^2.0.3",
103-
"dom-helpers": "^5.2.0",
104+
"dom-helpers": "^6.0.1",
104105
"uncontrollable": "^9.0.0",
105106
"warning": "^4.0.3"
106107
},

src/Anchor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22

33
import useEventCallback from '@restart/hooks/useEventCallback';
4-
import { useButtonProps } from './Button';
4+
import { useButtonProps } from './Button.js';
55

66
export function isTrivialHref(href?: string) {
77
return !href || href.trim() === '#';

src/Dropdown.tsx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ import useForceUpdate from '@restart/hooks/useForceUpdate';
88
import useEventListener from '@restart/hooks/useEventListener';
99
import useEventCallback from '@restart/hooks/useEventCallback';
1010

11-
import DropdownContext from './DropdownContext';
11+
import DropdownContext from './DropdownContext.js';
1212
import DropdownMenu, {
13-
DropdownMenuProps,
14-
UseDropdownMenuMetadata,
15-
UseDropdownMenuOptions,
16-
} from './DropdownMenu';
13+
type DropdownMenuProps,
14+
type UseDropdownMenuMetadata,
15+
type UseDropdownMenuOptions,
16+
} from './DropdownMenu.js';
1717
import DropdownToggle, {
18-
DropdownToggleProps,
19-
UseDropdownToggleMetadata,
18+
type DropdownToggleProps,
19+
type UseDropdownToggleMetadata,
2020
isRoleMenu,
21-
} from './DropdownToggle';
22-
import DropdownItem, { DropdownItemProps } from './DropdownItem';
23-
import SelectableContext from './SelectableContext';
24-
import { SelectCallback } from './types';
25-
import { dataAttr } from './DataKey';
26-
import { Placement } from './usePopper';
27-
import useWindow from './useWindow';
21+
} from './DropdownToggle.js';
22+
import DropdownItem, { type DropdownItemProps } from './DropdownItem.js';
23+
import SelectableContext from './SelectableContext.js';
24+
import type { SelectCallback } from './types.js';
25+
import { dataAttr } from './DataKey.js';
26+
import type { Placement } from './usePopper.js';
27+
import useWindow from './useWindow.js';
2828

2929
export type {
3030
DropdownMenuProps,

src/DropdownContext.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react';
2-
import type { Placement } from './usePopper';
2+
import type { Placement } from './usePopper.js';
33

44
export type DropdownContextValue = {
55
toggle: (

src/DropdownItem.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import * as React from 'react';
22
import { useContext } from 'react';
33
import useEventCallback from '@restart/hooks/useEventCallback';
44

5-
import SelectableContext, { makeEventKey } from './SelectableContext';
6-
import NavContext from './NavContext';
5+
import SelectableContext, { makeEventKey } from './SelectableContext.js';
6+
import NavContext from './NavContext.js';
77

8-
import { EventKey, DynamicRefForwardingComponent } from './types';
9-
import Button from './Button';
10-
import { dataAttr } from './DataKey';
8+
import type { EventKey, DynamicRefForwardingComponent } from './types.js';
9+
import Button from './Button.js';
10+
import { dataAttr } from './DataKey.js';
1111

1212
export interface DropdownItemProps extends React.HTMLAttributes<HTMLElement> {
1313
/**

src/DropdownMenu.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
import { useContext, useRef } from 'react';
22
import * as React from 'react';
33
import useCallbackRef from '@restart/hooks/useCallbackRef';
4-
import DropdownContext, { DropdownContextValue } from './DropdownContext';
4+
import DropdownContext, {
5+
type DropdownContextValue,
6+
} from './DropdownContext.js';
57
import usePopper, {
6-
UsePopperOptions,
7-
Placement,
8-
Offset,
9-
UsePopperState,
10-
} from './usePopper';
11-
import useClickOutside, { ClickOutsideOptions } from './useClickOutside';
12-
import mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';
8+
type UsePopperOptions,
9+
type Placement,
10+
type Offset,
11+
type UsePopperState,
12+
} from './usePopper.js';
13+
import useClickOutside, {
14+
type ClickOutsideOptions,
15+
} from './useClickOutside.js';
16+
import mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig.js';
1317

1418
export interface UseDropdownMenuOptions {
1519
/**

src/DropdownToggle.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { useContext, useCallback, useId } from 'react';
22
import * as React from 'react';
3-
import DropdownContext, { DropdownContextValue } from './DropdownContext';
3+
import DropdownContext, {
4+
type DropdownContextValue,
5+
} from './DropdownContext.js';
46

57
export const isRoleMenu = (el: HTMLElement) =>
68
el.getAttribute('role')?.toLowerCase() === 'menu';

src/ImperativeTransition.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import useMergedRefs from '@restart/hooks/useMergedRefs';
22
import useEventCallback from '@restart/hooks/useEventCallback';
33
import useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';
44
import { useRef, cloneElement, useState } from 'react';
5-
import { TransitionComponent, TransitionProps } from './types';
6-
import NoopTransition from './NoopTransition';
7-
import RTGTransition from './RTGTransition';
8-
import { getChildRef } from './utils';
5+
import type { TransitionComponent, TransitionProps } from './types.js';
6+
import NoopTransition from './NoopTransition.js';
7+
import RTGTransition from './RTGTransition.js';
8+
import { getChildRef } from './utils.js';
99

1010
export interface TransitionFunctionOptions {
1111
in: boolean;

0 commit comments

Comments
 (0)