124 lines
2.3 KiB
JavaScript
124 lines
2.3 KiB
JavaScript
// src/jsx/dom/index.ts
|
|
import { memo, isValidElement } from "../base.js";
|
|
import { Children } from "../children.js";
|
|
import { useContext } from "../context.js";
|
|
import {
|
|
useState,
|
|
useEffect,
|
|
useRef,
|
|
useCallback,
|
|
use,
|
|
startTransition,
|
|
useTransition,
|
|
useDeferredValue,
|
|
startViewTransition,
|
|
useViewTransition,
|
|
useMemo,
|
|
useLayoutEffect,
|
|
useReducer,
|
|
useId,
|
|
useDebugValue,
|
|
createRef,
|
|
forwardRef,
|
|
useImperativeHandle,
|
|
useSyncExternalStore
|
|
} from "../hooks/index.js";
|
|
import { Suspense, ErrorBoundary } from "./components.js";
|
|
import { createContext } from "./context.js";
|
|
import { jsx, Fragment } from "./jsx-runtime.js";
|
|
import { flushSync, createPortal } from "./render.js";
|
|
import { render } from "./render.js";
|
|
export * from "../types.js";
|
|
var createElement = (tag, props, ...children) => {
|
|
const jsxProps = props ? { ...props } : {};
|
|
if (children.length) {
|
|
jsxProps.children = children.length === 1 ? children[0] : children;
|
|
}
|
|
let key = void 0;
|
|
if ("key" in jsxProps) {
|
|
key = jsxProps.key;
|
|
delete jsxProps.key;
|
|
}
|
|
return jsx(tag, jsxProps, key);
|
|
};
|
|
var cloneElement = (element, props, ...children) => {
|
|
return jsx(
|
|
element.tag,
|
|
{
|
|
...element.props,
|
|
...props,
|
|
children: children.length ? children : element.props.children
|
|
},
|
|
element.key
|
|
);
|
|
};
|
|
var dom_default = {
|
|
useState,
|
|
useEffect,
|
|
useRef,
|
|
useCallback,
|
|
use,
|
|
startTransition,
|
|
useTransition,
|
|
useDeferredValue,
|
|
startViewTransition,
|
|
useViewTransition,
|
|
useMemo,
|
|
useLayoutEffect,
|
|
useReducer,
|
|
useId,
|
|
useDebugValue,
|
|
createRef,
|
|
forwardRef,
|
|
useImperativeHandle,
|
|
useSyncExternalStore,
|
|
Suspense,
|
|
ErrorBoundary,
|
|
createContext,
|
|
useContext,
|
|
memo,
|
|
isValidElement,
|
|
createElement,
|
|
cloneElement,
|
|
Children,
|
|
Fragment,
|
|
flushSync,
|
|
createPortal
|
|
};
|
|
export {
|
|
Children,
|
|
ErrorBoundary,
|
|
Fragment,
|
|
Suspense,
|
|
cloneElement,
|
|
createContext,
|
|
createElement,
|
|
createPortal,
|
|
createRef,
|
|
dom_default as default,
|
|
flushSync,
|
|
forwardRef,
|
|
isValidElement,
|
|
createElement as jsx,
|
|
memo,
|
|
render,
|
|
startTransition,
|
|
startViewTransition,
|
|
use,
|
|
useCallback,
|
|
useContext,
|
|
useDebugValue,
|
|
useDeferredValue,
|
|
useEffect,
|
|
useId,
|
|
useImperativeHandle,
|
|
useLayoutEffect,
|
|
useMemo,
|
|
useReducer,
|
|
useRef,
|
|
useState,
|
|
useSyncExternalStore,
|
|
useTransition,
|
|
useViewTransition
|
|
};
|