Skip to content

Commit 2802d74

Browse files
committed
feat(vue-jsx-vapor): expose jsx-runtime/dom
1 parent 3f50feb commit 2802d74

File tree

3 files changed

+49
-53
lines changed

3 files changed

+49
-53
lines changed

packages/vue-jsx-vapor/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
export * from './core/runtime'
2+
3+
export * from './jsx-runtime/dom'
Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Fragment, h } from 'vue'
2-
import type { NativeElements } from './jsx-runtime/dom'
1+
import { Fragment, h, type VNode } from 'vue'
2+
import type { NativeElements, ReservedProps } from 'vue-jsx-vapor'
33

44
function jsx(type: any, props: any, key: any): ReturnType<typeof h> {
55
const { children } = props
@@ -12,27 +12,19 @@ function jsx(type: any, props: any, key: any): ReturnType<typeof h> {
1212

1313
export { Fragment, jsx, jsx as jsxDEV, jsx as jsxs }
1414

15-
type VNode = import('vue').VNode
16-
type ReservedProps = import('vue').ReservedProps
17-
type AllowedComponentProps = import('vue').AllowedComponentProps
18-
type ComponentCustomProps = import('vue').ComponentCustomProps
19-
2015
declare global {
2116
// eslint-disable-next-line @typescript-eslint/no-namespace
2217
namespace JSX {
23-
interface Element extends VNode {}
24-
interface ElementClass {
18+
export interface Element extends VNode {}
19+
export interface ElementClass {
2520
$props: {}
2621
}
27-
interface ElementAttributesProperty {
22+
export interface ElementAttributesProperty {
2823
$props: {}
2924
}
30-
interface IntrinsicElements extends NativeElements {
25+
export interface IntrinsicElements extends NativeElements {
3126
[name: string]: any
3227
}
33-
interface IntrinsicAttributes
34-
extends ReservedProps,
35-
AllowedComponentProps,
36-
ComponentCustomProps {}
28+
export interface IntrinsicAttributes extends ReservedProps {}
3729
}
3830
}

packages/vue-jsx-vapor/src/jsx-runtime/dom.ts

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1470,26 +1470,21 @@ export interface Events<T = Element> {
14701470
onTransitionstart: TransitionEventHandler<T>
14711471
}
14721472

1473-
type EventHandlers<E> = {
1473+
export type EventHandlers<E> = {
14741474
[K in keyof E]?: E[K] extends (...args: any) => any
14751475
? E[K]
14761476
: (payload: E[K]) => void
14771477
}
14781478

1479-
export type ReservedProps = {
1480-
key?: PropertyKey
1481-
ref?: import('vue').VNodeRef
1482-
ref_for?: boolean
1483-
ref_key?: string
1484-
}
1479+
type _ReservedProps = import('vue').ReservedProps
1480+
export interface ReservedProps extends _ReservedProps {}
14851481

14861482
export type NativeElements = {
14871483
[K in keyof IntrinsicElementAttributes]: IntrinsicElementAttributes[K] &
1488-
ReservedProps &
1489-
import('vue').HTMLAttributes
1484+
ReservedProps
14901485
}
14911486

1492-
interface BaseSyntheticEvent<E = object, C = unknown, T = unknown> {
1487+
export interface BaseSyntheticEvent<E = object, C = unknown, T = unknown> {
14931488
nativeEvent: E
14941489
currentTarget: C
14951490
target: T
@@ -1514,48 +1509,51 @@ interface BaseSyntheticEvent<E = object, C = unknown, T = unknown> {
15141509
* This might be a child element to the element on which the event listener is registered.
15151510
* If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682
15161511
*/
1517-
interface SyntheticEvent<T = Element, E = Event>
1512+
export interface SyntheticEvent<T = Element, E = Event>
15181513
extends BaseSyntheticEvent<E, EventTarget & T, EventTarget> {}
15191514

1520-
type EventHandler<E extends SyntheticEvent<any>> = {
1515+
export type EventHandler<E extends SyntheticEvent<any>> = {
15211516
bivarianceHack: (event: E) => void
15221517
}['bivarianceHack']
15231518

1524-
type BaseEventHandler<T = Element> = EventHandler<SyntheticEvent<T>>
1519+
export type BaseEventHandler<T = Element> = EventHandler<SyntheticEvent<T>>
15251520

1526-
interface ClipboardEvent<T = Element>
1521+
export interface ClipboardEvent<T = Element>
15271522
extends SyntheticEvent<T, globalThis.ClipboardEvent> {
15281523
clipboardData: DataTransfer
15291524
}
1530-
type ClipboardEventHandler<T = Element> = EventHandler<ClipboardEvent<T>>
1525+
export type ClipboardEventHandler<T = Element> = EventHandler<ClipboardEvent<T>>
15311526

1532-
interface CompositionEvent<T = Element>
1527+
export interface CompositionEvent<T = Element>
15331528
extends SyntheticEvent<T, globalThis.CompositionEvent> {
15341529
data: string
15351530
}
1536-
type CompositionEventHandler<T = Element> = EventHandler<CompositionEvent<T>>
1531+
export type CompositionEventHandler<T = Element> = EventHandler<
1532+
CompositionEvent<T>
1533+
>
15371534

1538-
interface DragEvent<T = Element> extends MouseEvent<T, globalThis.DragEvent> {
1535+
export interface DragEvent<T = Element>
1536+
extends MouseEvent<T, globalThis.DragEvent> {
15391537
dataTransfer: DataTransfer
15401538
}
1541-
type DragEventHandler<T = Element> = EventHandler<DragEvent<T>>
1539+
export type DragEventHandler<T = Element> = EventHandler<DragEvent<T>>
15421540

1543-
interface FocusEvent<Target = Element, RelatedTarget = Element>
1541+
export interface FocusEvent<Target = Element, RelatedTarget = Element>
15441542
extends SyntheticEvent<Target, globalThis.FocusEvent> {
15451543
relatedTarget: (EventTarget & RelatedTarget) | null
15461544
target: EventTarget & Target
15471545
}
1548-
type FocusEventHandler<T = Element> = EventHandler<FocusEvent<T>>
1546+
export type FocusEventHandler<T = Element> = EventHandler<FocusEvent<T>>
15491547

1550-
interface FormEvent<T = Element> extends SyntheticEvent<T> {}
1551-
type FormEventHandler<T = Element> = EventHandler<FormEvent<T>>
1548+
export interface FormEvent<T = Element> extends SyntheticEvent<T> {}
1549+
export type FormEventHandler<T = Element> = EventHandler<FormEvent<T>>
15521550

1553-
interface ChangeEvent<T = Element> extends SyntheticEvent<T> {
1551+
export interface ChangeEvent<T = Element> extends SyntheticEvent<T> {
15541552
target: EventTarget & T
15551553
}
1556-
type ChangeEventHandler<T = Element> = EventHandler<ChangeEvent<T>>
1554+
export type ChangeEventHandler<T = Element> = EventHandler<ChangeEvent<T>>
15571555

1558-
interface KeyboardEvent<T = Element>
1556+
export interface KeyboardEvent<T = Element>
15591557
extends UIEvent<T, globalThis.KeyboardEvent> {
15601558
altKey: boolean
15611559
/** @deprecated */
@@ -1580,7 +1578,7 @@ interface KeyboardEvent<T = Element>
15801578
/** @deprecated */
15811579
which: number
15821580
}
1583-
type KeyboardEventHandler<T = Element> = EventHandler<KeyboardEvent<T>>
1581+
export type KeyboardEventHandler<T = Element> = EventHandler<KeyboardEvent<T>>
15841582

15851583
export type ModifierKey =
15861584
| 'Alt'
@@ -1597,7 +1595,7 @@ export type ModifierKey =
15971595
| 'Super'
15981596
| 'Symbol'
15991597
| 'SymbolLock'
1600-
interface MouseEvent<T = Element, E = globalThis.MouseEvent>
1598+
export interface MouseEvent<T = Element, E = globalThis.MouseEvent>
16011599
extends UIEvent<T, E> {
16021600
altKey: boolean
16031601
button: number
@@ -1619,39 +1617,43 @@ interface MouseEvent<T = Element, E = globalThis.MouseEvent>
16191617
screenY: number
16201618
shiftKey: boolean
16211619
}
1622-
type MouseEventHandler<T = Element> = EventHandler<MouseEvent<T>>
1620+
export type MouseEventHandler<T = Element> = EventHandler<MouseEvent<T>>
16231621

1624-
interface AbstractView {
1622+
export interface AbstractView {
16251623
styleMedia: StyleMedia
16261624
document: Document
16271625
}
1628-
interface UIEvent<T = Element, E = globalThis.UIEvent>
1626+
export interface UIEvent<T = Element, E = globalThis.UIEvent>
16291627
extends SyntheticEvent<T, E> {
16301628
detail: number
16311629
view: AbstractView
16321630
}
1633-
type UIEventHandler<T = Element> = EventHandler<UIEvent<T>>
1631+
export type UIEventHandler<T = Element> = EventHandler<UIEvent<T>>
16341632

1635-
interface WheelEvent<T = Element> extends MouseEvent<T, globalThis.WheelEvent> {
1633+
export interface WheelEvent<T = Element>
1634+
extends MouseEvent<T, globalThis.WheelEvent> {
16361635
deltaMode: number
16371636
deltaX: number
16381637
deltaY: number
16391638
deltaZ: number
16401639
}
1641-
type WheelEventHandler<T = Element> = EventHandler<WheelEvent<T>>
1640+
export type WheelEventHandler<T = Element> = EventHandler<WheelEvent<T>>
16421641

1643-
interface AnimationEvent<T = Element>
1642+
export interface AnimationEvent<T = Element>
16441643
extends SyntheticEvent<T, globalThis.AnimationEvent> {
16451644
animationName: string
16461645
elapsedTime: number
16471646
pseudoElement: string
16481647
}
1649-
type AnimationEventHandler<T = Element> = EventHandler<AnimationEvent<T>>
1648+
export type AnimationEventHandler<T = Element> = EventHandler<AnimationEvent<T>>
16501649

1651-
interface TransitionEvent<T = Element>
1650+
export interface TransitionEvent<T = Element>
16521651
extends SyntheticEvent<T, globalThis.TransitionEvent> {
16531652
elapsedTime: number
16541653
propertyName: string
16551654
pseudoElement: string
16561655
}
1657-
type TransitionEventHandler<T = Element> = EventHandler<TransitionEvent<T>>
1656+
export type TransitionEventHandler<T = Element> = EventHandler<
1657+
TransitionEvent<T>
1658+
>
1659+

0 commit comments

Comments
 (0)