@reckona/mreact-compat 0.0.168 → 0.0.170

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Component, PureComponent, } from "./class-component.js";
2
2
  export { Fragment, Activity, Profiler, Suspense, SuspenseList, StrictMode, Children, cloneElement, createElement, createErrorBoundary, createPortal, createRef, forwardRef, isValidElement, lazy, memo, } from "./element.js";
3
3
  /** Element and node types exported by the React-compatible root entrypoint. */
4
- export type { ErrorBoundaryOptions, ElementType, ReactCompatElement, ReactCompatNode, } from "./element.js";
4
+ export type { ErrorBoundaryOptions, ElementType, ReactCompatElement, ReactCompatNode, ReactCompatRenderableElement, } from "./element.js";
5
5
  /** DOM and form event types exported by the JSX runtime. */
6
6
  export type { FormEvent, FormEventHandler, JSXEvent, JSXEventHandler, } from "./jsx-runtime.js";
7
7
  export { createContext, renderContextConsumerToString, renderContextProviderToString, useContext, } from "./context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,+EAA+E;AAC/E,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,4DAA4D;AAC5D,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,aAAa,EACb,6BAA6B,EAC7B,6BAA6B,EAC7B,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gCAAgC,EAChC,UAAU,EACV,4BAA4B,EAC5B,kCAAkC,EAClC,0BAA0B,EAC1B,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,EACN,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,6BAA6B,EAC7B,IAAI,EACJ,WAAW,EACX,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,aAAa,EACb,UAAU,EACV,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,GAAG,EACH,cAAc,EACd,GAAG,EACH,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,iDAAiD;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,+EAA+E;AAC/E,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,4DAA4D;AAC5D,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,aAAa,EACb,6BAA6B,EAC7B,6BAA6B,EAC7B,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gCAAgC,EAChC,UAAU,EACV,4BAA4B,EAC5B,kCAAkC,EAClC,0BAA0B,EAC1B,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,EACN,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,6BAA6B,EAC7B,IAAI,EACJ,WAAW,EACX,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,aAAa,EACb,UAAU,EACV,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,GAAG,EACH,cAAc,EACd,GAAG,EACH,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,iDAAiD;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,GACL,MAAM,cAAc,CAAC;AAgBtB,OAAO,EACL,aAAa,EACb,6BAA6B,EAC7B,6BAA6B,EAC7B,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gCAAgC,EAChC,UAAU,EACV,4BAA4B,EAC5B,kCAAkC,EAClC,0BAA0B,EAC1B,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,EACN,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAarB,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,aAAa,EACb,UAAU,EACV,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,GAAG,EACH,cAAc,EACd,GAAG,EACH,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzE,iDAAiD;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["export {\n Component,\n PureComponent,\n} from \"./class-component.js\";\nexport {\n Fragment,\n Activity,\n Profiler,\n Suspense,\n SuspenseList,\n StrictMode,\n Children,\n cloneElement,\n createElement,\n createErrorBoundary,\n createPortal,\n createRef,\n forwardRef,\n isValidElement,\n lazy,\n memo,\n} from \"./element.js\";\n/** Element and node types exported by the React-compatible root entrypoint. */\nexport type {\n ErrorBoundaryOptions,\n ElementType,\n ReactCompatElement,\n ReactCompatNode,\n} from \"./element.js\";\n/** DOM and form event types exported by the JSX runtime. */\nexport type {\n FormEvent,\n FormEventHandler,\n JSXEvent,\n JSXEventHandler,\n} from \"./jsx-runtime.js\";\n\nexport {\n createContext,\n renderContextConsumerToString,\n renderContextProviderToString,\n useContext,\n} from \"./context.js\";\nexport {\n applyStreamingHydrationFragments,\n createRoot,\n createStreamingHydrationRoot,\n enableEventHydrationManifestReplay,\n enableHydrationEventReplay,\n flushSync,\n hydrateRoot,\n queueHydrationEvent,\n readEventHydrationManifest,\n render,\n unmountComponentAtNode,\n} from \"./render.js\";\nexport type {\n EventHydrationManifest,\n EventHydrationManifestEntry,\n HydrateRootOptions,\n HydrationRecoverableErrorInfo,\n Root,\n RootOptions,\n SelectiveHydrationBoundary,\n SelectiveHydrationOptions,\n StreamingHydrationRoot,\n StreamingHydrationRootOptions,\n} from \"./render.js\";\nexport {\n useCallback,\n useDebugValue,\n useDeferredValue,\n useEffectEvent,\n useEffect,\n useId,\n useImperativeHandle,\n useInsertionEffect,\n useLayoutEffect,\n useMemo,\n useOptimistic,\n useReducer,\n useRef,\n useState,\n useSyncExternalStore,\n use,\n useActionState,\n act,\n cache,\n cacheSignal,\n captureOwnerStack,\n startTransition,\n unstable_useCacheRefresh,\n useTransition,\n version,\n} from \"./hooks.js\";\nexport { renderChildToString, renderToString } from \"./server-render.js\";\nexport type { StartTransition, TransitionScope } from \"./hooks.js\";\n/** Default React-compatible namespace export. */\nexport { default } from \"./react-default.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,GACL,MAAM,cAAc,CAAC;AAiBtB,OAAO,EACL,aAAa,EACb,6BAA6B,EAC7B,6BAA6B,EAC7B,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gCAAgC,EAChC,UAAU,EACV,4BAA4B,EAC5B,kCAAkC,EAClC,0BAA0B,EAC1B,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,EACN,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAarB,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,aAAa,EACb,UAAU,EACV,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,GAAG,EACH,cAAc,EACd,GAAG,EACH,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzE,iDAAiD;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["export {\n Component,\n PureComponent,\n} from \"./class-component.js\";\nexport {\n Fragment,\n Activity,\n Profiler,\n Suspense,\n SuspenseList,\n StrictMode,\n Children,\n cloneElement,\n createElement,\n createErrorBoundary,\n createPortal,\n createRef,\n forwardRef,\n isValidElement,\n lazy,\n memo,\n} from \"./element.js\";\n/** Element and node types exported by the React-compatible root entrypoint. */\nexport type {\n ErrorBoundaryOptions,\n ElementType,\n ReactCompatElement,\n ReactCompatNode,\n ReactCompatRenderableElement,\n} from \"./element.js\";\n/** DOM and form event types exported by the JSX runtime. */\nexport type {\n FormEvent,\n FormEventHandler,\n JSXEvent,\n JSXEventHandler,\n} from \"./jsx-runtime.js\";\n\nexport {\n createContext,\n renderContextConsumerToString,\n renderContextProviderToString,\n useContext,\n} from \"./context.js\";\nexport {\n applyStreamingHydrationFragments,\n createRoot,\n createStreamingHydrationRoot,\n enableEventHydrationManifestReplay,\n enableHydrationEventReplay,\n flushSync,\n hydrateRoot,\n queueHydrationEvent,\n readEventHydrationManifest,\n render,\n unmountComponentAtNode,\n} from \"./render.js\";\nexport type {\n EventHydrationManifest,\n EventHydrationManifestEntry,\n HydrateRootOptions,\n HydrationRecoverableErrorInfo,\n Root,\n RootOptions,\n SelectiveHydrationBoundary,\n SelectiveHydrationOptions,\n StreamingHydrationRoot,\n StreamingHydrationRootOptions,\n} from \"./render.js\";\nexport {\n useCallback,\n useDebugValue,\n useDeferredValue,\n useEffectEvent,\n useEffect,\n useId,\n useImperativeHandle,\n useInsertionEffect,\n useLayoutEffect,\n useMemo,\n useOptimistic,\n useReducer,\n useRef,\n useState,\n useSyncExternalStore,\n use,\n useActionState,\n act,\n cache,\n cacheSignal,\n captureOwnerStack,\n startTransition,\n unstable_useCacheRefresh,\n useTransition,\n version,\n} from \"./hooks.js\";\nexport { renderChildToString, renderToString } from \"./server-render.js\";\nexport type { StartTransition, TransitionScope } from \"./hooks.js\";\n/** Default React-compatible namespace export. */\nexport { default } from \"./react-default.js\";\n"]}
@@ -17,7 +17,7 @@ export declare namespace JSX {
17
17
  }
18
18
  }
19
19
  /** Creates a JSX element with development metadata arguments. */
20
- export declare function jsxDEV<P extends Record<string, unknown>>(type: ElementType<P>, props: (P & {
20
+ export declare function jsxDEV<P extends object>(type: ElementType<P>, props: (P & {
21
21
  children?: ReactCompatNode;
22
22
  key?: unknown;
23
23
  ref?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-dev-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,0BAA0B,EAE3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,oEAAoE;AACpE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,gFAAgF;AAChF,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,6DAA6D;AAC7D,yBAAiB,GAAG,CAAC;IACnB,UAAiB,OAAQ,SAAQ,kBAAkB;KAAG;IAEtD,UAAiB,mBAAoB,SAAQ,sBAAsB;KAAG;IAEtE,UAAiB,iBAAkB,SAAQ,oBAAoB;KAAG;CACnE;AAED,iEAAiE;AACjE,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,IAAI,EAChF,GAAG,EAAE,OAAO,EACZ,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,GACb,kBAAkB,CAAC,CAAC,CAAC,CAEvB"}
1
+ {"version":3,"file":"jsx-dev-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,0BAA0B,EAE3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,oEAAoE;AACpE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,gFAAgF;AAChF,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,6DAA6D;AAC7D,yBAAiB,GAAG,CAAC;IACnB,UAAiB,OAAQ,SAAQ,kBAAkB;KAAG;IAEtD,UAAiB,mBAAoB,SAAQ,sBAAsB;KAAG;IAEtE,UAAiB,iBAAkB,SAAQ,oBAAoB;KAAG;CACnE;AAED,iEAAiE;AACjE,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EACrC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,IAAI,EAChF,GAAG,EAAE,OAAO,EACZ,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,GACb,kBAAkB,CAAC,CAAC,CAAC,CAEvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../src/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,GAAG,GACJ,MAAM,kBAAkB,CAAC;AAW1B,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,oEAAoE;AACpE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAqBtC,iEAAiE;AACjE,MAAM,UAAU,MAAM,CACpB,IAAoB,EACpB,KAAgF,EAChF,GAAY,EACZ,iBAA0B,EAC1B,OAAgB,EAChB,KAAc;IAEd,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["import {\n Fragment,\n REACTIVE_TEXT_BINDING_META,\n jsx,\n} from \"./jsx-runtime.js\";\nimport type {\n ElementType,\n ReactCompatElement,\n ReactCompatNode,\n} from \"./element.js\";\nimport type {\n JSXIntrinsicAttributes,\n JSXIntrinsicElements,\n} from \"./jsx-runtime.js\";\n\n/** Fragment marker used by the development JSX runtime. */\nexport { Fragment };\n/** Metadata key used by compiled JSX for reactive text bindings. */\nexport { REACTIVE_TEXT_BINDING_META };\n/** JSX event and attribute types re-exported by the development JSX runtime. */\nexport type {\n FormEvent,\n FormEventHandler,\n JSXEvent,\n JSXEventHandler,\n JSXHTMLAttributes,\n JSXIntrinsicAttributes,\n JSXIntrinsicElements,\n} from \"./jsx-runtime.js\";\n\n/** JSX namespace exported by the development JSX runtime. */\nexport namespace JSX {\n export interface Element extends ReactCompatElement {}\n\n export interface IntrinsicAttributes extends JSXIntrinsicAttributes {}\n\n export interface IntrinsicElements extends JSXIntrinsicElements {}\n}\n\n/** Creates a JSX element with development metadata arguments. */\nexport function jsxDEV<P extends Record<string, unknown>>(\n type: ElementType<P>,\n props: (P & { children?: ReactCompatNode; key?: unknown; ref?: unknown }) | null,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown,\n): ReactCompatElement<P> {\n return jsx(type, props, key);\n}\n"]}
1
+ {"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../src/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,GAAG,GACJ,MAAM,kBAAkB,CAAC;AAW1B,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,oEAAoE;AACpE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAqBtC,iEAAiE;AACjE,MAAM,UAAU,MAAM,CACpB,IAAoB,EACpB,KAAgF,EAChF,GAAY,EACZ,iBAA0B,EAC1B,OAAgB,EAChB,KAAc;IAEd,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["import {\n Fragment,\n REACTIVE_TEXT_BINDING_META,\n jsx,\n} from \"./jsx-runtime.js\";\nimport type {\n ElementType,\n ReactCompatElement,\n ReactCompatNode,\n} from \"./element.js\";\nimport type {\n JSXIntrinsicAttributes,\n JSXIntrinsicElements,\n} from \"./jsx-runtime.js\";\n\n/** Fragment marker used by the development JSX runtime. */\nexport { Fragment };\n/** Metadata key used by compiled JSX for reactive text bindings. */\nexport { REACTIVE_TEXT_BINDING_META };\n/** JSX event and attribute types re-exported by the development JSX runtime. */\nexport type {\n FormEvent,\n FormEventHandler,\n JSXEvent,\n JSXEventHandler,\n JSXHTMLAttributes,\n JSXIntrinsicAttributes,\n JSXIntrinsicElements,\n} from \"./jsx-runtime.js\";\n\n/** JSX namespace exported by the development JSX runtime. */\nexport namespace JSX {\n export interface Element extends ReactCompatElement {}\n\n export interface IntrinsicAttributes extends JSXIntrinsicAttributes {}\n\n export interface IntrinsicElements extends JSXIntrinsicElements {}\n}\n\n/** Creates a JSX element with development metadata arguments. */\nexport function jsxDEV<P extends object>(\n type: ElementType<P>,\n props: (P & { children?: ReactCompatNode; key?: unknown; ref?: unknown }) | null,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown,\n): ReactCompatElement<P> {\n return jsx(type, props, key);\n}\n"]}
@@ -68,13 +68,13 @@ declare global {
68
68
  }
69
69
  }
70
70
  /** Creates a single-child JSX element for the automatic JSX runtime. */
71
- export declare function jsx<P extends Record<string, unknown>>(type: ElementType<P>, props: (P & {
71
+ export declare function jsx<P extends object>(type: ElementType<P>, props: (P & {
72
72
  children?: ReactCompatNode;
73
73
  key?: unknown;
74
74
  ref?: unknown;
75
75
  }) | null, key?: unknown): ReactCompatElement<P>;
76
76
  /** Creates a multi-child JSX element for the automatic JSX runtime. */
77
- export declare function jsxs<P extends Record<string, unknown>>(type: ElementType<P>, props: (P & {
77
+ export declare function jsxs<P extends object>(type: ElementType<P>, props: (P & {
78
78
  children?: ReactCompatNode;
79
79
  key?: unknown;
80
80
  ref?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,QAAQ,EACR,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAOtB,yDAAyD;AACzD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,oEAAoE;AACpE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAkFtC,wEAAwE;AACxE,MAAM,UAAU,GAAG,CACjB,IAAoB,EACpB,KAAgF,EAChF,GAAa;IAEb,OAAO,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,IAAI,CAClB,IAAoB,EACpB,KAAgF,EAChF,GAAa;IAEb,OAAO,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAoB,EACpB,KAAgF,EAChF,GAAY;IAEZ,OAAO,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC","sourcesContent":["import {\n createElementFromJsxConfig,\n Fragment,\n REACTIVE_TEXT_BINDING_META,\n} from \"./element.js\";\nimport type {\n ElementType,\n ReactCompatElement,\n ReactCompatNode,\n} from \"./element.js\";\n\n/** Fragment marker used by the automatic JSX runtime. */\nexport { Fragment };\n/** Metadata key used by compiled JSX for reactive text bindings. */\nexport { REACTIVE_TEXT_BINDING_META };\n\n/** DOM event type with a narrowed currentTarget. */\nexport type JSXEvent<\n TCurrentTarget extends EventTarget,\n TEvent extends Event = Event,\n> = TEvent & {\n readonly currentTarget: TCurrentTarget;\n};\n\n/** Event handler type used by JSX DOM attributes. */\nexport type JSXEventHandler<\n TCurrentTarget extends EventTarget,\n TEvent extends Event = Event,\n> = (event: JSXEvent<TCurrentTarget, TEvent>) => unknown;\n\n/** Submit event type used by form-related JSX attributes. */\nexport type FormEvent<TCurrentTarget extends EventTarget = Element> = JSXEvent<\n TCurrentTarget,\n SubmitEvent\n>;\n\n/** Submit event handler type used by form-related JSX attributes. */\nexport type FormEventHandler<TCurrentTarget extends EventTarget = Element> =\n JSXEventHandler<TCurrentTarget, SubmitEvent>;\n\n/** DOM event attributes accepted by JSX elements. */\nexport interface JSXDOMAttributes<TElement extends EventTarget> {\n children?: ReactCompatNode;\n onClick?: JSXEventHandler<TElement, MouseEvent>;\n onChange?: JSXEventHandler<TElement, Event>;\n onInput?: JSXEventHandler<TElement, InputEvent>;\n onSubmit?: JSXEventHandler<TElement, SubmitEvent>;\n}\n\n/** HTML attributes accepted by JSX host elements. */\nexport interface JSXHTMLAttributes<TElement extends HTMLElement>\n extends JSXDOMAttributes<TElement> {\n [attributeName: string]: unknown;\n}\n\n/** Attributes accepted by every JSX element. */\nexport interface JSXIntrinsicAttributes {\n key?: unknown;\n ref?: unknown;\n}\n\n/** Built-in JSX element names and their attribute types. */\nexport interface JSXIntrinsicElements {\n form: JSXHTMLAttributes<HTMLFormElement> & {\n onSubmit?: JSXEventHandler<HTMLFormElement, SubmitEvent>;\n };\n input: JSXHTMLAttributes<HTMLInputElement>;\n button: JSXHTMLAttributes<HTMLButtonElement>;\n textarea: JSXHTMLAttributes<HTMLTextAreaElement>;\n select: JSXHTMLAttributes<HTMLSelectElement>;\n option: JSXHTMLAttributes<HTMLOptionElement>;\n a: JSXHTMLAttributes<HTMLAnchorElement>;\n img: JSXHTMLAttributes<HTMLImageElement>;\n main: JSXHTMLAttributes<HTMLElement>;\n div: JSXHTMLAttributes<HTMLDivElement>;\n span: JSXHTMLAttributes<HTMLSpanElement>;\n [elementName: string]: Record<string, unknown>;\n}\n\n/** JSX namespace exported by the automatic JSX runtime. */\nexport namespace JSX {\n export interface Element extends ReactCompatElement {}\n\n export interface IntrinsicAttributes extends JSXIntrinsicAttributes {}\n\n export interface IntrinsicElements extends JSXIntrinsicElements {}\n}\n\ndeclare global {\n namespace JSX {\n interface Element extends ReactCompatElement {}\n interface IntrinsicAttributes extends JSXIntrinsicAttributes {}\n interface IntrinsicElements extends JSXIntrinsicElements {}\n }\n}\n\n/** Creates a single-child JSX element for the automatic JSX runtime. */\nexport function jsx<P extends Record<string, unknown>>(\n type: ElementType<P>,\n props: (P & { children?: ReactCompatNode; key?: unknown; ref?: unknown }) | null,\n key?: unknown,\n): ReactCompatElement<P> {\n return createElementFromJsx(type, props, key);\n}\n\n/** Creates a multi-child JSX element for the automatic JSX runtime. */\nexport function jsxs<P extends Record<string, unknown>>(\n type: ElementType<P>,\n props: (P & { children?: ReactCompatNode; key?: unknown; ref?: unknown }) | null,\n key?: unknown,\n): ReactCompatElement<P> {\n return createElementFromJsx(type, props, key);\n}\n\nfunction createElementFromJsx<P extends Record<string, unknown>>(\n type: ElementType<P>,\n props: (P & { children?: ReactCompatNode; key?: unknown; ref?: unknown }) | null,\n key: unknown,\n): ReactCompatElement<P> {\n return createElementFromJsxConfig(type, props, key);\n}\n"]}
1
+ {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,QAAQ,EACR,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAOtB,yDAAyD;AACzD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,oEAAoE;AACpE,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAkFtC,wEAAwE;AACxE,MAAM,UAAU,GAAG,CACjB,IAAoB,EACpB,KAAgF,EAChF,GAAa;IAEb,OAAO,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,IAAI,CAClB,IAAoB,EACpB,KAAgF,EAChF,GAAa;IAEb,OAAO,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAoB,EACpB,KAAgF,EAChF,GAAY;IAEZ,OAAO,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC","sourcesContent":["import {\n createElementFromJsxConfig,\n Fragment,\n REACTIVE_TEXT_BINDING_META,\n} from \"./element.js\";\nimport type {\n ElementType,\n ReactCompatElement,\n ReactCompatNode,\n} from \"./element.js\";\n\n/** Fragment marker used by the automatic JSX runtime. */\nexport { Fragment };\n/** Metadata key used by compiled JSX for reactive text bindings. */\nexport { REACTIVE_TEXT_BINDING_META };\n\n/** DOM event type with a narrowed currentTarget. */\nexport type JSXEvent<\n TCurrentTarget extends EventTarget,\n TEvent extends Event = Event,\n> = TEvent & {\n readonly currentTarget: TCurrentTarget;\n};\n\n/** Event handler type used by JSX DOM attributes. */\nexport type JSXEventHandler<\n TCurrentTarget extends EventTarget,\n TEvent extends Event = Event,\n> = (event: JSXEvent<TCurrentTarget, TEvent>) => unknown;\n\n/** Submit event type used by form-related JSX attributes. */\nexport type FormEvent<TCurrentTarget extends EventTarget = Element> = JSXEvent<\n TCurrentTarget,\n SubmitEvent\n>;\n\n/** Submit event handler type used by form-related JSX attributes. */\nexport type FormEventHandler<TCurrentTarget extends EventTarget = Element> =\n JSXEventHandler<TCurrentTarget, SubmitEvent>;\n\n/** DOM event attributes accepted by JSX elements. */\nexport interface JSXDOMAttributes<TElement extends EventTarget> {\n children?: ReactCompatNode;\n onClick?: JSXEventHandler<TElement, MouseEvent>;\n onChange?: JSXEventHandler<TElement, Event>;\n onInput?: JSXEventHandler<TElement, InputEvent>;\n onSubmit?: JSXEventHandler<TElement, SubmitEvent>;\n}\n\n/** HTML attributes accepted by JSX host elements. */\nexport interface JSXHTMLAttributes<TElement extends HTMLElement>\n extends JSXDOMAttributes<TElement> {\n [attributeName: string]: unknown;\n}\n\n/** Attributes accepted by every JSX element. */\nexport interface JSXIntrinsicAttributes {\n key?: unknown;\n ref?: unknown;\n}\n\n/** Built-in JSX element names and their attribute types. */\nexport interface JSXIntrinsicElements {\n form: JSXHTMLAttributes<HTMLFormElement> & {\n onSubmit?: JSXEventHandler<HTMLFormElement, SubmitEvent>;\n };\n input: JSXHTMLAttributes<HTMLInputElement>;\n button: JSXHTMLAttributes<HTMLButtonElement>;\n textarea: JSXHTMLAttributes<HTMLTextAreaElement>;\n select: JSXHTMLAttributes<HTMLSelectElement>;\n option: JSXHTMLAttributes<HTMLOptionElement>;\n a: JSXHTMLAttributes<HTMLAnchorElement>;\n img: JSXHTMLAttributes<HTMLImageElement>;\n main: JSXHTMLAttributes<HTMLElement>;\n div: JSXHTMLAttributes<HTMLDivElement>;\n span: JSXHTMLAttributes<HTMLSpanElement>;\n [elementName: string]: Record<string, unknown>;\n}\n\n/** JSX namespace exported by the automatic JSX runtime. */\nexport namespace JSX {\n export interface Element extends ReactCompatElement {}\n\n export interface IntrinsicAttributes extends JSXIntrinsicAttributes {}\n\n export interface IntrinsicElements extends JSXIntrinsicElements {}\n}\n\ndeclare global {\n namespace JSX {\n interface Element extends ReactCompatElement {}\n interface IntrinsicAttributes extends JSXIntrinsicAttributes {}\n interface IntrinsicElements extends JSXIntrinsicElements {}\n }\n}\n\n/** Creates a single-child JSX element for the automatic JSX runtime. */\nexport function jsx<P extends object>(\n type: ElementType<P>,\n props: (P & { children?: ReactCompatNode; key?: unknown; ref?: unknown }) | null,\n key?: unknown,\n): ReactCompatElement<P> {\n return createElementFromJsx(type, props, key);\n}\n\n/** Creates a multi-child JSX element for the automatic JSX runtime. */\nexport function jsxs<P extends object>(\n type: ElementType<P>,\n props: (P & { children?: ReactCompatNode; key?: unknown; ref?: unknown }) | null,\n key?: unknown,\n): ReactCompatElement<P> {\n return createElementFromJsx(type, props, key);\n}\n\nfunction createElementFromJsx<P extends object>(\n type: ElementType<P>,\n props: (P & { children?: ReactCompatNode; key?: unknown; ref?: unknown }) | null,\n key: unknown,\n): ReactCompatElement<P> {\n return createElementFromJsxConfig(type, props, key);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reckona/mreact-compat",
3
- "version": "0.0.168",
3
+ "version": "0.0.170",
4
4
  "description": "React-compatible runtime implementation for mreact.",
5
5
  "keywords": [
6
6
  "compatibility",
@@ -69,7 +69,7 @@
69
69
  "access": "public"
70
70
  },
71
71
  "dependencies": {
72
- "@reckona/mreact-reactive-core": "0.0.168",
73
- "@reckona/mreact-shared": "0.0.168"
72
+ "@reckona/mreact-shared": "0.0.170",
73
+ "@reckona/mreact-reactive-core": "0.0.170"
74
74
  }
75
75
  }
@@ -45,6 +45,10 @@ export function syncScopedChildNodes(
45
45
  after: ChildNode | null,
46
46
  nextNodes: readonly Node[],
47
47
  ): void {
48
+ if (replaceEmptyFullChildList(parent, before, after, nextNodes)) {
49
+ return;
50
+ }
51
+
48
52
  if (replaceDisjointFullChildList(parent, before, after, nextNodes)) {
49
53
  return;
50
54
  }
@@ -57,6 +61,10 @@ export function syncScopedChildNodes(
57
61
  return;
58
62
  }
59
63
 
64
+ if (nextNodes.length > 16 && moveSingleSwappedPair(parent, before, after, nextNodes)) {
65
+ return;
66
+ }
67
+
60
68
  let cursor = parent.firstChild;
61
69
 
62
70
  if (before !== null) {
@@ -91,6 +99,25 @@ export function syncScopedChildNodes(
91
99
  }
92
100
  }
93
101
 
102
+ function replaceEmptyFullChildList(
103
+ parent: ParentNode,
104
+ before: ChildNode | null,
105
+ after: ChildNode | null,
106
+ nextNodes: readonly Node[],
107
+ ): boolean {
108
+ if (
109
+ before !== null ||
110
+ after !== null ||
111
+ nextNodes.length <= 16 ||
112
+ parent.childNodes.length !== 0
113
+ ) {
114
+ return false;
115
+ }
116
+
117
+ parent.replaceChildren(...nextNodes);
118
+ return true;
119
+ }
120
+
94
121
  function replaceDisjointFullChildList(
95
122
  parent: ParentNode,
96
123
  before: ChildNode | null,
@@ -177,6 +204,57 @@ function removeSingleMissingChild(
177
204
  return true;
178
205
  }
179
206
 
207
+ function moveSingleSwappedPair(
208
+ parent: ParentNode,
209
+ before: ChildNode | null,
210
+ after: ChildNode | null,
211
+ nextNodes: readonly Node[],
212
+ ): boolean {
213
+ let cursor = before === null ? parent.firstChild : before.nextSibling;
214
+ let index = 0;
215
+ let firstMismatchIndex = -1;
216
+ let secondMismatchIndex = -1;
217
+ let firstCurrent: ChildNode | null = null;
218
+ let secondCurrent: ChildNode | null = null;
219
+
220
+ while (cursor !== null && cursor !== after && index < nextNodes.length) {
221
+ const current = cursor;
222
+
223
+ if (current !== nextNodes[index]) {
224
+ if (firstMismatchIndex === -1) {
225
+ firstMismatchIndex = index;
226
+ firstCurrent = current;
227
+ } else if (secondMismatchIndex === -1) {
228
+ secondMismatchIndex = index;
229
+ secondCurrent = current;
230
+ } else {
231
+ return false;
232
+ }
233
+ }
234
+
235
+ cursor = current.nextSibling;
236
+ index += 1;
237
+ }
238
+
239
+ if (
240
+ index !== nextNodes.length ||
241
+ cursor !== after ||
242
+ firstCurrent === null ||
243
+ secondCurrent === null ||
244
+ firstCurrent !== nextNodes[secondMismatchIndex] ||
245
+ secondCurrent !== nextNodes[firstMismatchIndex]
246
+ ) {
247
+ return false;
248
+ }
249
+
250
+ parent.insertBefore(secondCurrent, firstCurrent);
251
+ parent.insertBefore(
252
+ firstCurrent,
253
+ (nextNodes[secondMismatchIndex + 1] as ChildNode | undefined) ?? after,
254
+ );
255
+ return true;
256
+ }
257
+
180
258
  export function removeChildIfPresent(parent: ParentNode, child: Node): void {
181
259
  if (child.parentNode !== parent) {
182
260
  return;
package/src/element.ts CHANGED
@@ -53,9 +53,23 @@ export type ElementType<P = Record<string, unknown>> =
53
53
  | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)
54
54
  | (new (props: P) => { render(): ReactCompatNode });
55
55
 
56
+ /** Element-shaped renderable value accepted regardless of its original prop shape. */
57
+ export interface ReactCompatRenderableElement {
58
+ /** React-compatible element marker. */
59
+ $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;
60
+ /** Host tag, component, or special element type. */
61
+ type: unknown;
62
+ /** Normalized React key. */
63
+ key: string | null;
64
+ /** Normalized React ref. */
65
+ ref: unknown;
66
+ /** Element props with children widened to the renderable node surface. */
67
+ props: { children?: ReactCompatNode };
68
+ }
69
+
56
70
  /** Renderable value accepted by the React-compatible renderer. */
57
71
  export type ReactCompatNode =
58
- | ReactCompatElement
72
+ | ReactCompatRenderableElement
59
73
  | ReactCompatPortal
60
74
  | string
61
75
  | number
@@ -82,21 +96,25 @@ export interface ReactCompatPortal {
82
96
  }
83
97
 
84
98
  /** Creates a React-compatible element from a type, config object, and children. */
85
- export function createElement<P extends Record<string, unknown>>(
99
+ export function createElement<P extends object>(
86
100
  type: ElementType<P>,
87
101
  config: (P & ReactReservedProps) | null,
88
102
  ...children: ReactCompatNode[]
103
+ ): ReactCompatElement<P>;
104
+ export function createElement<P extends object>(
105
+ type: ElementType<P>,
106
+ config: (P & ReactReservedProps) | null,
89
107
  ): ReactCompatElement<P> {
108
+ const childCount = arguments.length - 2;
109
+
90
110
  if (typeof type === "string") {
91
111
  const key = config?.key === undefined ? null : String(config.key);
92
112
  const ref = config?.ref ?? null;
93
- const props = copyElementProps(config) as P & { children?: ReactCompatNode };
113
+ const props = copyCreateElementProps(config) as P & {
114
+ children?: ReactCompatNode;
115
+ };
94
116
 
95
- if (children.length === 1) {
96
- props.children = children[0];
97
- } else if (children.length > 1) {
98
- props.children = children;
99
- }
117
+ assignCreateElementChildren(props, childCount, arguments);
100
118
 
101
119
  setHostOwnPropsMeta(props);
102
120
 
@@ -113,15 +131,14 @@ export function createElement<P extends Record<string, unknown>>(
113
131
  typeof type === "object" && type !== null ? normalizeElementType(type) : type;
114
132
  const key = config?.key === undefined ? null : String(config.key);
115
133
  const ref = config?.ref ?? null;
116
- const props = applyDefaultProps(normalizedType, copyElementProps(config)) as P & {
134
+ const props = applyDefaultProps(
135
+ normalizedType,
136
+ copyCreateElementProps(config),
137
+ ) as P & {
117
138
  children?: ReactCompatNode;
118
139
  };
119
140
 
120
- if (children.length === 1) {
121
- props.children = children[0];
122
- } else if (children.length > 1) {
123
- props.children = children;
124
- }
141
+ assignCreateElementChildren(props, childCount, arguments);
125
142
 
126
143
  if (typeof normalizedType === "string") {
127
144
  setHostOwnPropsMeta(props);
@@ -136,8 +153,32 @@ export function createElement<P extends Record<string, unknown>>(
136
153
  };
137
154
  }
138
155
 
156
+ function assignCreateElementChildren(
157
+ props: { children?: ReactCompatNode },
158
+ childCount: number,
159
+ args: IArguments,
160
+ ): void {
161
+ if (childCount === 1) {
162
+ props.children = args[2] as ReactCompatNode;
163
+ return;
164
+ }
165
+
166
+ if (childCount <= 1) {
167
+ return;
168
+ }
169
+
170
+ const children: ReactCompatNode[] = [];
171
+ children.length = childCount;
172
+
173
+ for (let index = 0; index < childCount; index += 1) {
174
+ children[index] = args[index + 2] as ReactCompatNode;
175
+ }
176
+
177
+ props.children = children;
178
+ }
179
+
139
180
  /** Creates a React-compatible element from JSX runtime arguments. */
140
- export function createElementFromJsxConfig<P extends Record<string, unknown>>(
181
+ export function createElementFromJsxConfig<P extends object>(
141
182
  type: ElementType<P>,
142
183
  config: (P & ReactReservedProps & { children?: ReactCompatNode }) | null,
143
184
  keyArgument?: unknown,
@@ -268,9 +309,9 @@ export function lazy<P>(
268
309
  export const StrictMode = STRICT_MODE_TYPE;
269
310
 
270
311
  /** Clones an existing element with merged props and optional replacement children. */
271
- export function cloneElement<P extends Record<string, unknown>>(
312
+ export function cloneElement<P extends object>(
272
313
  element: ReactCompatElement<P>,
273
- props: Partial<P> | null,
314
+ props: (Partial<P> & ReactReservedProps) | null,
274
315
  ...children: ReactCompatNode[]
275
316
  ): ReactCompatElement<P> {
276
317
  const key = props === null || props.key === undefined ? element.key : String(props.key);
@@ -295,9 +336,10 @@ export function cloneElement<P extends Record<string, unknown>>(
295
336
  }
296
337
 
297
338
  function copyElementProps(
298
- source: Record<string, unknown> | null | undefined,
299
- base?: Record<string, unknown>,
339
+ source: object | null | undefined,
340
+ base?: object,
300
341
  omitChildren = false,
342
+ copySymbols: boolean | "internal" = true,
301
343
  ): Record<string, unknown> {
302
344
  const props: Record<PropertyKey, unknown> = {};
303
345
 
@@ -310,15 +352,49 @@ function copyElementProps(
310
352
  }
311
353
 
312
354
  copyOwnStringElementProps(source, props, omitChildren);
313
- copyOwnSymbolElementProps(source, props);
355
+ if (copySymbols === "internal") {
356
+ copyInternalElementSymbolProps(source, props);
357
+ } else if (copySymbols) {
358
+ copyOwnSymbolElementProps(source, props);
359
+ }
360
+ return props as Record<string, unknown>;
361
+ }
362
+
363
+ function copyCreateElementProps(
364
+ source: object | null | undefined,
365
+ ): Record<string, unknown> {
366
+ const props: Record<PropertyKey, unknown> = {};
367
+
368
+ if (source === null || source === undefined) {
369
+ return props as Record<string, unknown>;
370
+ }
371
+
372
+ const stringSource = source as Record<string, unknown>;
373
+ for (const name in source) {
374
+ if (!hasOwnProperty.call(source, name)) {
375
+ continue;
376
+ }
377
+
378
+ if (
379
+ name !== "key" &&
380
+ name !== "ref" &&
381
+ name !== "__self" &&
382
+ name !== "__source"
383
+ ) {
384
+ props[name] = stringSource[name];
385
+ }
386
+ }
387
+
388
+ copyInternalElementSymbolProps(source, props);
314
389
  return props as Record<string, unknown>;
315
390
  }
316
391
 
317
392
  function copyOwnStringElementProps(
318
- source: Record<string, unknown>,
393
+ source: object,
319
394
  target: Record<string, unknown>,
320
395
  omitChildren: boolean,
321
396
  ): void {
397
+ const stringSource = source as Record<string, unknown>;
322
398
  for (const name in source) {
323
399
  if (!hasOwnProperty.call(source, name)) {
324
400
  continue;
@@ -331,13 +407,13 @@ function copyOwnStringElementProps(
331
407
  name !== "__source" &&
332
408
  (!omitChildren || name !== "children")
333
409
  ) {
334
- target[name] = source[name];
410
+ target[name] = stringSource[name];
335
411
  }
336
412
  }
337
413
  }
338
414
 
339
415
  function copyOwnSymbolElementProps(
340
- source: Record<string, unknown>,
416
+ source: object,
341
417
  target: Record<PropertyKey, unknown>,
342
418
  ): void {
343
419
  const symbolSource = source as Record<PropertyKey, unknown>;
@@ -346,6 +422,16 @@ function copyOwnSymbolElementProps(
346
422
  }
347
423
  }
348
424
 
425
+ function copyInternalElementSymbolProps(
426
+ source: object,
427
+ target: Record<PropertyKey, unknown>,
428
+ ): void {
429
+ const symbolSource = source as Record<PropertyKey, unknown>;
430
+ if (hasOwnProperty.call(source, REACTIVE_TEXT_BINDING_META)) {
431
+ target[REACTIVE_TEXT_BINDING_META] = symbolSource[REACTIVE_TEXT_BINDING_META];
432
+ }
433
+ }
434
+
349
435
  function normalizeElementType<P>(type: ElementType<P>): ElementType<P> {
350
436
  return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;
351
437
  }
package/src/hooks.ts CHANGED
@@ -2214,6 +2214,10 @@ function cleanupInactiveInstances(runtime: RootRuntime): void {
2214
2214
  return;
2215
2215
  }
2216
2216
 
2217
+ if (activeInstanceKeys.size === runtime.instances.size) {
2218
+ return;
2219
+ }
2220
+
2217
2221
  for (const [key, instance] of runtime.instances) {
2218
2222
  if (!activeInstanceKeys.has(key)) {
2219
2223
  cleanupInstance(instance);
@@ -2224,7 +2228,7 @@ function cleanupInactiveInstances(runtime: RootRuntime): void {
2224
2228
  }
2225
2229
 
2226
2230
  function indexInstanceKey(runtime: RootRuntime, key: string): void {
2227
- for (const prefix of instanceKeyPrefixes(key)) {
2231
+ forEachInstanceKeyPrefix(key, (prefix) => {
2228
2232
  let keys = runtime.instanceKeysByPrefix.get(prefix);
2229
2233
 
2230
2234
  if (keys === undefined) {
@@ -2233,15 +2237,15 @@ function indexInstanceKey(runtime: RootRuntime, key: string): void {
2233
2237
  }
2234
2238
 
2235
2239
  keys.add(key);
2236
- }
2240
+ });
2237
2241
  }
2238
2242
 
2239
2243
  function removeInstanceKeyFromIndex(runtime: RootRuntime, key: string): void {
2240
- for (const prefix of instanceKeyPrefixes(key)) {
2244
+ forEachInstanceKeyPrefix(key, (prefix) => {
2241
2245
  const keys = runtime.instanceKeysByPrefix.get(prefix);
2242
2246
 
2243
2247
  if (keys === undefined) {
2244
- continue;
2248
+ return;
2245
2249
  }
2246
2250
 
2247
2251
  keys.delete(key);
@@ -2249,18 +2253,27 @@ function removeInstanceKeyFromIndex(runtime: RootRuntime, key: string): void {
2249
2253
  if (keys.size === 0) {
2250
2254
  runtime.instanceKeysByPrefix.delete(prefix);
2251
2255
  }
2252
- }
2256
+ });
2253
2257
  }
2254
2258
 
2255
- function instanceKeyPrefixes(key: string): string[] {
2256
- const parts = key.split(".");
2257
- const prefixes: string[] = [];
2259
+ function forEachInstanceKeyPrefix(
2260
+ key: string,
2261
+ callback: (prefix: string) => void,
2262
+ ): void {
2263
+ let start = 0;
2264
+
2265
+ while (start < key.length) {
2266
+ const next = key.indexOf(".", start);
2267
+
2268
+ if (next === -1) {
2269
+ break;
2270
+ }
2258
2271
 
2259
- for (let index = 1; index <= parts.length; index += 1) {
2260
- prefixes.push(parts.slice(0, index).join("."));
2272
+ callback(key.slice(0, next));
2273
+ start = next + 1;
2261
2274
  }
2262
2275
 
2263
- return prefixes;
2276
+ callback(key);
2264
2277
  }
2265
2278
 
2266
2279
  function cleanupInstance(instance: ComponentInstance): void {