@reckona/mreact-compat 0.0.138 → 0.0.140

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.
Files changed (49) hide show
  1. package/dist/dom-props.d.ts.map +1 -1
  2. package/dist/dom-props.js +111 -44
  3. package/dist/dom-props.js.map +1 -1
  4. package/dist/element.d.ts +3 -0
  5. package/dist/element.d.ts.map +1 -1
  6. package/dist/element.js +32 -2
  7. package/dist/element.js.map +1 -1
  8. package/dist/event-listeners.d.ts +2 -4
  9. package/dist/event-listeners.d.ts.map +1 -1
  10. package/dist/event-listeners.js +2 -1
  11. package/dist/event-listeners.js.map +1 -1
  12. package/dist/fiber-child.d.ts.map +1 -1
  13. package/dist/fiber-child.js +44 -0
  14. package/dist/fiber-child.js.map +1 -1
  15. package/dist/fiber-commit.d.ts.map +1 -1
  16. package/dist/fiber-commit.js +70 -0
  17. package/dist/fiber-commit.js.map +1 -1
  18. package/dist/hooks.d.ts +4 -2
  19. package/dist/hooks.d.ts.map +1 -1
  20. package/dist/hooks.js +64 -6
  21. package/dist/hooks.js.map +1 -1
  22. package/dist/host-reconciler.d.ts.map +1 -1
  23. package/dist/host-reconciler.js +2 -2
  24. package/dist/host-reconciler.js.map +1 -1
  25. package/dist/jsx-runtime.d.ts.map +1 -1
  26. package/dist/jsx-runtime.js +2 -11
  27. package/dist/jsx-runtime.js.map +1 -1
  28. package/dist/reconciler.d.ts.map +1 -1
  29. package/dist/reconciler.js +2 -2
  30. package/dist/reconciler.js.map +1 -1
  31. package/dist/server-render.d.ts.map +1 -1
  32. package/dist/server-render.js +29 -4
  33. package/dist/server-render.js.map +1 -1
  34. package/dist/url-safety.d.ts +1 -1
  35. package/dist/url-safety.d.ts.map +1 -1
  36. package/dist/url-safety.js +1 -1
  37. package/dist/url-safety.js.map +1 -1
  38. package/package.json +3 -3
  39. package/src/dom-props.ts +189 -49
  40. package/src/element.ts +45 -1
  41. package/src/event-listeners.ts +4 -5
  42. package/src/fiber-child.ts +67 -0
  43. package/src/fiber-commit.ts +92 -0
  44. package/src/hooks.ts +88 -8
  45. package/src/host-reconciler.ts +2 -3
  46. package/src/jsx-runtime.ts +2 -18
  47. package/src/reconciler.ts +2 -3
  48. package/src/server-render.ts +43 -4
  49. package/src/url-safety.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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","sourcesContent":["export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\");\nexport const ERROR_BOUNDARY_TYPE = Symbol.for(\"modular.react.error_boundary\");\nexport const FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\nexport const MEMO_TYPE = Symbol.for(\"react.memo\");\nexport const LAZY_TYPE = Symbol.for(\"react.lazy\");\nexport const STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\nexport const PORTAL_TYPE = Symbol.for(\"react.portal\");\nconst REACT_COMPAT_PROVIDER_TYPE = Symbol.for(\"react.context\");\nexport const Fragment = Symbol.for(\"react.fragment\");\nexport const Suspense = Symbol.for(\"react.suspense\");\nexport const SuspenseList = Symbol.for(\"react.suspense_list\");\nexport const Activity = Symbol.for(\"react.activity\");\nexport const Profiler = Symbol.for(\"react.profiler\");\nexport const HOST_OWN_PROPS_META = Symbol.for(\"modular.react.host_own_props_meta\");\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport interface ReactCompatProviderType {\n $$typeof: symbol;\n context: unknown;\n}\n\nexport interface ReactCompatContextProviderShorthand {\n Provider: ReactCompatProviderType;\n Consumer: unknown;\n}\n\nexport type ElementType<P = Record<string, unknown>> =\n | string\n | typeof Fragment\n | typeof Suspense\n | typeof SuspenseList\n | typeof Activity\n | typeof Profiler\n | typeof ERROR_BOUNDARY_TYPE\n | typeof STRICT_MODE_TYPE\n | ReactCompatContextProviderShorthand\n | ReactCompatProviderType\n | ForwardRefType<P>\n | MemoType<P>\n | LazyType<P>\n | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)\n | (new (props: P) => { render(): ReactCompatNode });\n\nexport type ReactCompatNode =\n | ReactCompatElement\n | ReactCompatPortal\n | string\n | number\n | boolean\n | null\n | undefined\n | ReactCompatNode[];\n\nexport interface ReactCompatElement<P = Record<string, unknown>> {\n $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;\n type: ElementType<P>;\n key: string | null;\n ref: unknown;\n props: P & { children?: ReactCompatNode };\n}\n\nexport interface ReactCompatPortal {\n $$typeof: typeof PORTAL_TYPE;\n container: Element;\n children: ReactCompatNode;\n key: string | null;\n}\n\nexport function createElement<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & ReactReservedProps) | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n if (typeof type === \"string\") {\n const key = config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const props = copyElementProps(config) as P & { children?: ReactCompatNode };\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n setHostOwnPropsMeta(props);\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type,\n key,\n ref,\n props,\n };\n }\n\n const normalizedType =\n typeof type === \"object\" && type !== null ? normalizeElementType(type) : type;\n const key = config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const props = applyDefaultProps(normalizedType, copyElementProps(config)) as P & {\n children?: ReactCompatNode;\n };\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n if (typeof normalizedType === \"string\") {\n setHostOwnPropsMeta(props);\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props: props as P & { children?: ReactCompatNode },\n };\n}\n\nexport function isReactCompatElement(\n value: unknown,\n): value is ReactCompatElement {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_ELEMENT_TYPE\n );\n}\n\nexport function createPortal(\n children: ReactCompatNode,\n container: Element,\n key?: unknown,\n): ReactCompatPortal {\n return {\n $$typeof: PORTAL_TYPE,\n container,\n children,\n key: key === undefined ? null : String(key),\n };\n}\n\nexport function isReactCompatPortal(value: unknown): value is ReactCompatPortal {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === PORTAL_TYPE\n );\n}\n\nexport function createRef<T>(): { current: T | null } {\n return { current: null };\n}\n\nexport interface ForwardRefType<P = Record<string, unknown>> {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: P, ref: unknown) => ReactCompatNode;\n}\n\nexport interface MemoType<P = Record<string, unknown>> {\n $$typeof: typeof MEMO_TYPE;\n type: ElementType<P>;\n compare?: (previous: P, next: P) => boolean;\n}\n\nexport interface LazyType<P = Record<string, unknown>> {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ElementType<P> }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ElementType<P>;\n error?: unknown;\n}\n\nexport function forwardRef<P, T>(\n render: (props: P, ref: { current: T | null } | ((value: T | null) => void) | null) => ReactCompatNode,\n): ForwardRefType<P & { ref?: unknown }> {\n return { $$typeof: FORWARD_REF_TYPE, render: render as ForwardRefType<P>[\"render\"] };\n}\n\nexport function memo<P>(\n type: ElementType<P>,\n compare?: (previous: P, next: P) => boolean,\n): MemoType<P> {\n return compare === undefined\n ? { $$typeof: MEMO_TYPE, type }\n : { $$typeof: MEMO_TYPE, type, compare };\n}\n\nexport function lazy<P>(\n load: () => Promise<{ default: ElementType<P> }>,\n): LazyType<P> {\n return {\n $$typeof: LAZY_TYPE,\n load,\n status: \"uninitialized\",\n };\n}\n\nexport const StrictMode = STRICT_MODE_TYPE;\n\nexport function cloneElement<P extends Record<string, unknown>>(\n element: ReactCompatElement<P>,\n props: Partial<P> | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const key = props === null || props.key === undefined ? element.key : String(props.key);\n const ref = props === null || props.ref === undefined ? element.ref : props.ref;\n const nextProps = applyDefaultProps(\n element.type,\n copyElementProps(props, element.props),\n ) as P & { children?: ReactCompatNode };\n\n if (children.length === 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children[0];\n } else if (children.length > 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: element.type,\n key,\n ref,\n props: nextProps as P & { children?: ReactCompatNode },\n };\n}\n\nfunction copyElementProps(\n source: Record<string, unknown> | null | undefined,\n base?: Record<string, unknown>,\n): Record<string, unknown> {\n const props: Record<string, unknown> = base === undefined ? {} : { ...base };\n\n if (source === null || source === undefined) {\n return props;\n }\n\n for (const name in source) {\n if (!hasOwnProperty.call(source, name)) {\n continue;\n }\n\n if (name !== \"key\" && name !== \"ref\" && name !== \"__self\" && name !== \"__source\") {\n props[name] = source[name];\n }\n }\n\n return props;\n}\n\nfunction normalizeElementType<P>(type: ElementType<P>): ElementType<P> {\n return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;\n}\n\nfunction applyDefaultProps(\n type: unknown,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n if (typeof type !== \"function\" && (typeof type !== \"object\" || type === null)) {\n return props;\n }\n\n const defaultProps = (type as { defaultProps?: Record<string, unknown> } | undefined)\n ?.defaultProps;\n\n if (defaultProps === undefined) {\n return props;\n }\n\n for (const [name, value] of Object.entries(defaultProps)) {\n if (props[name] === undefined) {\n props[name] = value;\n }\n }\n\n return props;\n}\n\ninterface ReactReservedProps {\n key?: unknown;\n ref?: unknown;\n __self?: unknown;\n __source?: unknown;\n}\n\nfunction isReactCompatContextProviderShorthand(\n value: unknown,\n): value is ReactCompatContextProviderShorthand {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const provider = (value as { Provider?: unknown }).Provider;\n\n return (\n typeof provider === \"object\" &&\n provider !== null &&\n (provider as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_PROVIDER_TYPE\n );\n}\n\nfunction setHostOwnPropsMeta(props: Record<string, unknown>): void {\n const dataKey = props[\"data-key\"];\n\n if (typeof dataKey !== \"number\" || !Number.isSafeInteger(dataKey) || dataKey < 0) {\n return;\n }\n\n let selectedState = 0;\n\n for (const name in props) {\n if (!hasOwnProperty.call(props, name) || name === \"children\") {\n continue;\n }\n\n if (name === \"data-key\") {\n continue;\n }\n\n if (name === \"className\") {\n const value = props[name];\n\n if (value === undefined) {\n continue;\n }\n\n if (value !== \"selected\") {\n return;\n }\n\n selectedState |= 1;\n continue;\n }\n\n if (name === \"data-selected\") {\n const value = props[name];\n\n if (value === undefined) {\n continue;\n }\n\n if (value !== \"true\") {\n return;\n }\n\n selectedState |= 2;\n continue;\n }\n\n return;\n }\n\n (props as { [HOST_OWN_PROPS_META]?: number })[HOST_OWN_PROPS_META] =\n dataKey * 4 + selectedState;\n}\n\nexport const isValidElement = isReactCompatElement;\n\nexport const Children = {\n map<T>(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T,\n ): T[] | null {\n if (children === null || children === undefined) {\n return null;\n }\n\n return flattenChildren(children).map((child, index) =>\n fn(child as Exclude<ReactCompatNode, null | undefined | boolean>, index),\n );\n },\n forEach(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => void,\n ): void {\n toChildArray(children).forEach((child, index) => {\n fn(child, index);\n });\n },\n count(children: ReactCompatNode): number {\n if (children === null || children === undefined) {\n return 0;\n }\n\n return flattenChildren(children).length;\n },\n toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return toChildArray(children);\n },\n only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean> {\n const array = toChildArray(children);\n\n if (array.length !== 1) {\n throw new Error(\"Expected exactly one child.\");\n }\n\n return array[0] as Exclude<ReactCompatNode, null | undefined | boolean>;\n },\n};\n\nfunction toChildArray(\n children: ReactCompatNode,\n): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return flattenChildren(children).filter(\n (child): child is Exclude<ReactCompatNode, null | undefined | boolean> =>\n child !== null && child !== undefined && typeof child !== \"boolean\",\n );\n}\n\nfunction flattenChildren(children: ReactCompatNode): ReactCompatNode[] {\n if (Array.isArray(children)) {\n return children.flatMap((child) => flattenChildren(child));\n }\n\n return [children];\n}\n\nexport interface ErrorBoundaryOptions {\n fallback: (error: Error) => ReactCompatNode;\n onError?: (error: Error) => void;\n}\n\nexport function createErrorBoundary(\n options: ErrorBoundaryOptions,\n children: ReactCompatNode,\n): ReactCompatElement<ErrorBoundaryOptions & { children: ReactCompatNode }> {\n return createElement(ERROR_BOUNDARY_TYPE, {\n ...options,\n children,\n });\n}\n"]}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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","sourcesContent":["export const REACT_COMPAT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\");\nexport const ERROR_BOUNDARY_TYPE = Symbol.for(\"modular.react.error_boundary\");\nexport const FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\");\nexport const MEMO_TYPE = Symbol.for(\"react.memo\");\nexport const LAZY_TYPE = Symbol.for(\"react.lazy\");\nexport const STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\");\nexport const PORTAL_TYPE = Symbol.for(\"react.portal\");\nconst REACT_COMPAT_PROVIDER_TYPE = Symbol.for(\"react.context\");\nexport const Fragment = Symbol.for(\"react.fragment\");\nexport const Suspense = Symbol.for(\"react.suspense\");\nexport const SuspenseList = Symbol.for(\"react.suspense_list\");\nexport const Activity = Symbol.for(\"react.activity\");\nexport const Profiler = Symbol.for(\"react.profiler\");\nexport const HOST_OWN_PROPS_META = Symbol.for(\"modular.react.host_own_props_meta\");\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport interface ReactCompatProviderType {\n $$typeof: symbol;\n context: unknown;\n}\n\nexport interface ReactCompatContextProviderShorthand {\n Provider: ReactCompatProviderType;\n Consumer: unknown;\n}\n\nexport type ElementType<P = Record<string, unknown>> =\n | string\n | typeof Fragment\n | typeof Suspense\n | typeof SuspenseList\n | typeof Activity\n | typeof Profiler\n | typeof ERROR_BOUNDARY_TYPE\n | typeof STRICT_MODE_TYPE\n | ReactCompatContextProviderShorthand\n | ReactCompatProviderType\n | ForwardRefType<P>\n | MemoType<P>\n | LazyType<P>\n | ((props: P) => ReactCompatNode | PromiseLike<ReactCompatNode>)\n | (new (props: P) => { render(): ReactCompatNode });\n\nexport type ReactCompatNode =\n | ReactCompatElement\n | ReactCompatPortal\n | string\n | number\n | boolean\n | null\n | undefined\n | ReactCompatNode[];\n\nexport interface ReactCompatElement<P = Record<string, unknown>> {\n $$typeof: typeof REACT_COMPAT_ELEMENT_TYPE;\n type: ElementType<P>;\n key: string | null;\n ref: unknown;\n props: P & { children?: ReactCompatNode };\n}\n\nexport interface ReactCompatPortal {\n $$typeof: typeof PORTAL_TYPE;\n container: Element;\n children: ReactCompatNode;\n key: string | null;\n}\n\nexport function createElement<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & ReactReservedProps) | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n if (typeof type === \"string\") {\n const key = config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const props = copyElementProps(config) as P & { children?: ReactCompatNode };\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n setHostOwnPropsMeta(props);\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type,\n key,\n ref,\n props,\n };\n }\n\n const normalizedType =\n typeof type === \"object\" && type !== null ? normalizeElementType(type) : type;\n const key = config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const props = applyDefaultProps(normalizedType, copyElementProps(config)) as P & {\n children?: ReactCompatNode;\n };\n\n if (children.length === 1) {\n props.children = children[0];\n } else if (children.length > 1) {\n props.children = children;\n }\n\n if (typeof normalizedType === \"string\") {\n setHostOwnPropsMeta(props);\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props: props as P & { children?: ReactCompatNode },\n };\n}\n\nexport function createElementFromJsxConfig<P extends Record<string, unknown>>(\n type: ElementType<P>,\n config: (P & ReactReservedProps & { children?: ReactCompatNode }) | null,\n keyArgument?: unknown,\n): ReactCompatElement<P> {\n const normalizedType =\n typeof type === \"object\" && type !== null ? normalizeElementType(type) : type;\n const key = keyArgument !== undefined\n ? String(keyArgument)\n : config?.key === undefined ? null : String(config.key);\n const ref = config?.ref ?? null;\n const hasChildren = config !== null && config !== undefined && hasOwnProperty.call(config, \"children\");\n const children = config?.children;\n const copiedProps = copyElementProps(config, undefined, true);\n const props = (typeof normalizedType === \"string\"\n ? copiedProps\n : applyDefaultProps(normalizedType, copiedProps)) as P & {\n children?: ReactCompatNode;\n };\n\n if (hasChildren) {\n props.children = children;\n }\n\n if (typeof normalizedType === \"string\") {\n setHostOwnPropsMeta(props);\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: normalizedType as ElementType<P>,\n key,\n ref,\n props,\n };\n}\n\nexport function isReactCompatElement(\n value: unknown,\n): value is ReactCompatElement {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_ELEMENT_TYPE\n );\n}\n\nexport function createPortal(\n children: ReactCompatNode,\n container: Element,\n key?: unknown,\n): ReactCompatPortal {\n return {\n $$typeof: PORTAL_TYPE,\n container,\n children,\n key: key === undefined ? null : String(key),\n };\n}\n\nexport function isReactCompatPortal(value: unknown): value is ReactCompatPortal {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === PORTAL_TYPE\n );\n}\n\nexport function createRef<T>(): { current: T | null } {\n return { current: null };\n}\n\nexport interface ForwardRefType<P = Record<string, unknown>> {\n $$typeof: typeof FORWARD_REF_TYPE;\n render: (props: P, ref: unknown) => ReactCompatNode;\n}\n\nexport interface MemoType<P = Record<string, unknown>> {\n $$typeof: typeof MEMO_TYPE;\n type: ElementType<P>;\n compare?: (previous: P, next: P) => boolean;\n}\n\nexport interface LazyType<P = Record<string, unknown>> {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ElementType<P> }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ElementType<P>;\n error?: unknown;\n}\n\nexport function forwardRef<P, T>(\n render: (props: P, ref: { current: T | null } | ((value: T | null) => void) | null) => ReactCompatNode,\n): ForwardRefType<P & { ref?: unknown }> {\n return { $$typeof: FORWARD_REF_TYPE, render: render as ForwardRefType<P>[\"render\"] };\n}\n\nexport function memo<P>(\n type: ElementType<P>,\n compare?: (previous: P, next: P) => boolean,\n): MemoType<P> {\n return compare === undefined\n ? { $$typeof: MEMO_TYPE, type }\n : { $$typeof: MEMO_TYPE, type, compare };\n}\n\nexport function lazy<P>(\n load: () => Promise<{ default: ElementType<P> }>,\n): LazyType<P> {\n return {\n $$typeof: LAZY_TYPE,\n load,\n status: \"uninitialized\",\n };\n}\n\nexport const StrictMode = STRICT_MODE_TYPE;\n\nexport function cloneElement<P extends Record<string, unknown>>(\n element: ReactCompatElement<P>,\n props: Partial<P> | null,\n ...children: ReactCompatNode[]\n): ReactCompatElement<P> {\n const key = props === null || props.key === undefined ? element.key : String(props.key);\n const ref = props === null || props.ref === undefined ? element.ref : props.ref;\n const nextProps = applyDefaultProps(\n element.type,\n copyElementProps(props, element.props),\n ) as P & { children?: ReactCompatNode };\n\n if (children.length === 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children[0];\n } else if (children.length > 1) {\n (nextProps as P & { children?: ReactCompatNode }).children = children;\n }\n\n return {\n $$typeof: REACT_COMPAT_ELEMENT_TYPE,\n type: element.type,\n key,\n ref,\n props: nextProps as P & { children?: ReactCompatNode },\n };\n}\n\nfunction copyElementProps(\n source: Record<string, unknown> | null | undefined,\n base?: Record<string, unknown>,\n omitChildren = false,\n): Record<string, unknown> {\n const props: Record<string, unknown> = base === undefined ? {} : { ...base };\n\n if (source === null || source === undefined) {\n return props;\n }\n\n for (const name in source) {\n if (!hasOwnProperty.call(source, name)) {\n continue;\n }\n\n if (\n name !== \"key\" &&\n name !== \"ref\" &&\n name !== \"__self\" &&\n name !== \"__source\" &&\n (!omitChildren || name !== \"children\")\n ) {\n props[name] = source[name];\n }\n }\n\n return props;\n}\n\nfunction normalizeElementType<P>(type: ElementType<P>): ElementType<P> {\n return isReactCompatContextProviderShorthand(type) ? (type.Provider as ElementType<P>) : type;\n}\n\nfunction applyDefaultProps(\n type: unknown,\n props: Record<string, unknown>,\n): Record<string, unknown> {\n if (typeof type !== \"function\" && (typeof type !== \"object\" || type === null)) {\n return props;\n }\n\n const defaultProps = (type as { defaultProps?: Record<string, unknown> } | undefined)\n ?.defaultProps;\n\n if (defaultProps === undefined) {\n return props;\n }\n\n for (const [name, value] of Object.entries(defaultProps)) {\n if (props[name] === undefined) {\n props[name] = value;\n }\n }\n\n return props;\n}\n\ninterface ReactReservedProps {\n key?: unknown;\n ref?: unknown;\n __self?: unknown;\n __source?: unknown;\n}\n\nfunction isReactCompatContextProviderShorthand(\n value: unknown,\n): value is ReactCompatContextProviderShorthand {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const provider = (value as { Provider?: unknown }).Provider;\n\n return (\n typeof provider === \"object\" &&\n provider !== null &&\n (provider as { $$typeof?: unknown }).$$typeof === REACT_COMPAT_PROVIDER_TYPE\n );\n}\n\nfunction setHostOwnPropsMeta(props: Record<string, unknown>): void {\n const dataKey = props[\"data-key\"];\n\n if (typeof dataKey !== \"number\" || !Number.isSafeInteger(dataKey) || dataKey < 0) {\n return;\n }\n\n let selectedState = 0;\n\n for (const name in props) {\n if (!hasOwnProperty.call(props, name) || name === \"children\") {\n continue;\n }\n\n if (name === \"data-key\") {\n continue;\n }\n\n if (name === \"className\") {\n const value = props[name];\n\n if (value === undefined) {\n continue;\n }\n\n if (value !== \"selected\") {\n return;\n }\n\n selectedState |= 1;\n continue;\n }\n\n if (name === \"data-selected\") {\n const value = props[name];\n\n if (value === undefined) {\n continue;\n }\n\n if (value !== \"true\") {\n return;\n }\n\n selectedState |= 2;\n continue;\n }\n\n return;\n }\n\n (props as { [HOST_OWN_PROPS_META]?: number })[HOST_OWN_PROPS_META] =\n dataKey * 4 + selectedState;\n}\n\nexport const isValidElement = isReactCompatElement;\n\nexport const Children = {\n map<T>(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => T,\n ): T[] | null {\n if (children === null || children === undefined) {\n return null;\n }\n\n return flattenChildren(children).map((child, index) =>\n fn(child as Exclude<ReactCompatNode, null | undefined | boolean>, index),\n );\n },\n forEach(\n children: ReactCompatNode,\n fn: (child: Exclude<ReactCompatNode, null | undefined | boolean>, index: number) => void,\n ): void {\n toChildArray(children).forEach((child, index) => {\n fn(child, index);\n });\n },\n count(children: ReactCompatNode): number {\n if (children === null || children === undefined) {\n return 0;\n }\n\n return flattenChildren(children).length;\n },\n toArray(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return toChildArray(children);\n },\n only(children: ReactCompatNode): Exclude<ReactCompatNode, null | undefined | boolean> {\n const array = toChildArray(children);\n\n if (array.length !== 1) {\n throw new Error(\"Expected exactly one child.\");\n }\n\n return array[0] as Exclude<ReactCompatNode, null | undefined | boolean>;\n },\n};\n\nfunction toChildArray(\n children: ReactCompatNode,\n): Exclude<ReactCompatNode, null | undefined | boolean>[] {\n return flattenChildren(children).filter(\n (child): child is Exclude<ReactCompatNode, null | undefined | boolean> =>\n child !== null && child !== undefined && typeof child !== \"boolean\",\n );\n}\n\nfunction flattenChildren(children: ReactCompatNode): ReactCompatNode[] {\n if (Array.isArray(children)) {\n return children.flatMap((child) => flattenChildren(child));\n }\n\n return [children];\n}\n\nexport interface ErrorBoundaryOptions {\n fallback: (error: Error) => ReactCompatNode;\n onError?: (error: Error) => void;\n}\n\nexport function createErrorBoundary(\n options: ErrorBoundaryOptions,\n children: ReactCompatNode,\n): ReactCompatElement<ErrorBoundaryOptions & { children: ReactCompatNode }> {\n return createElement(ERROR_BOUNDARY_TYPE, {\n ...options,\n children,\n });\n}\n"]}
@@ -1,11 +1,9 @@
1
1
  import type { SyntheticEvent } from "./event-types.js";
2
2
  export interface AppliedProps {
3
+ attributeNames?: string[];
3
4
  props: Record<string, unknown>;
4
- listeners?: Map<string, AppliedEventListener>;
5
- }
6
- export interface AppliedEventListener {
7
- handler: (event: SyntheticEvent) => void;
8
5
  }
6
+ export type AppliedEventListener = (event: SyntheticEvent) => void;
9
7
  export declare function getAppliedProps(element: Element): AppliedProps | undefined;
10
8
  export declare function setAppliedProps(element: Element, props: AppliedProps): void;
11
9
  export declare function getAppliedEventHandler(element: Element, name: string): ((event: SyntheticEvent) => void) | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"event-listeners.d.ts","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC1C;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAE1E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAE3E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GACX,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAE/C"}
1
+ {"version":3,"file":"event-listeners.d.ts","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAInE,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAE1E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAE3E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GACX,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAG/C"}
@@ -6,6 +6,7 @@ export function setAppliedProps(element, props) {
6
6
  appliedProps.set(element, props);
7
7
  }
8
8
  export function getAppliedEventHandler(element, name) {
9
- return appliedProps.get(element)?.listeners?.get(name)?.handler;
9
+ const handler = appliedProps.get(element)?.props[name];
10
+ return typeof handler === "function" ? handler : undefined;
10
11
  }
11
12
  //# sourceMappingURL=event-listeners.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-listeners.js","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AAWA,MAAM,YAAY,GAAG,IAAI,OAAO,EAAyB,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,KAAmB;IACnE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,IAAY;IAEZ,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AAClE,CAAC","sourcesContent":["import type { SyntheticEvent } from \"./event-types.js\";\n\nexport interface AppliedProps {\n props: Record<string, unknown>;\n listeners?: Map<string, AppliedEventListener>;\n}\n\nexport interface AppliedEventListener {\n handler: (event: SyntheticEvent) => void;\n}\n\nconst appliedProps = new WeakMap<Element, AppliedProps>();\n\nexport function getAppliedProps(element: Element): AppliedProps | undefined {\n return appliedProps.get(element);\n}\n\nexport function setAppliedProps(element: Element, props: AppliedProps): void {\n appliedProps.set(element, props);\n}\n\nexport function getAppliedEventHandler(\n element: Element,\n name: string,\n): ((event: SyntheticEvent) => void) | undefined {\n return appliedProps.get(element)?.listeners?.get(name)?.handler;\n}\n"]}
1
+ {"version":3,"file":"event-listeners.js","sourceRoot":"","sources":["../src/event-listeners.ts"],"names":[],"mappings":"AASA,MAAM,YAAY,GAAG,IAAI,OAAO,EAAyB,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,KAAmB;IACnE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,IAAY;IAEZ,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAE,OAA2C,CAAC,CAAC,CAAC,SAAS,CAAC;AAClG,CAAC","sourcesContent":["import type { SyntheticEvent } from \"./event-types.js\";\n\nexport interface AppliedProps {\n attributeNames?: string[];\n props: Record<string, unknown>;\n}\n\nexport type AppliedEventListener = (event: SyntheticEvent) => void;\n\nconst appliedProps = new WeakMap<Element, AppliedProps>();\n\nexport function getAppliedProps(element: Element): AppliedProps | undefined {\n return appliedProps.get(element);\n}\n\nexport function setAppliedProps(element: Element, props: AppliedProps): void {\n appliedProps.set(element, props);\n}\n\nexport function getAppliedEventHandler(\n element: Element,\n name: string,\n): ((event: SyntheticEvent) => void) | undefined {\n const handler = appliedProps.get(element)?.props[name];\n return typeof handler === \"function\" ? (handler as (event: SyntheticEvent) => void) : undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-child.d.ts","sourceRoot":"","sources":["../src/fiber-child.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAqC,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAG3E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,KAAK,EACb,iBAAiB,EAAE,KAAK,GAAG,SAAS,EACpC,WAAW,EAAE,eAAe,GAC3B,KAAK,GAAG,SAAS,CA2DnB"}
1
+ {"version":3,"file":"fiber-child.d.ts","sourceRoot":"","sources":["../src/fiber-child.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAqC,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAG3E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,KAAK,EACb,iBAAiB,EAAE,KAAK,GAAG,SAAS,EACpC,WAAW,EAAE,eAAe,GAC3B,KAAK,GAAG,SAAS,CAqEnB"}
@@ -6,6 +6,10 @@ import { createFiber, createWorkInProgress } from "./fiber.js";
6
6
  import { getPendingProps } from "./prop-comparison.js";
7
7
  export function reconcileChildFibers(parent, currentFirstChild, newChildren) {
8
8
  const children = normalizeChildren(newChildren);
9
+ const orderedKeyedChildren = reconcileSameKeyOrderChildren(parent, currentFirstChild, children);
10
+ if (orderedKeyedChildren !== undefined) {
11
+ return orderedKeyedChildren;
12
+ }
9
13
  const keyed = collectKeyedChildren(currentFirstChild);
10
14
  const oldIndexes = collectChildIndexes(currentFirstChild);
11
15
  const used = new Set();
@@ -57,6 +61,46 @@ export function reconcileChildFibers(parent, currentFirstChild, newChildren) {
57
61
  parent.child = first;
58
62
  return first;
59
63
  }
64
+ function reconcileSameKeyOrderChildren(parent, currentFirstChild, children) {
65
+ if (currentFirstChild === undefined || children.length === 0) {
66
+ return undefined;
67
+ }
68
+ let cursor = currentFirstChild;
69
+ for (const child of children) {
70
+ const key = getNodeKey(child);
71
+ if (key === undefined ||
72
+ cursor === undefined ||
73
+ cursor.key !== key ||
74
+ !isReactCompatElement(child) ||
75
+ !canReuseElementFiber(cursor, child)) {
76
+ return undefined;
77
+ }
78
+ cursor = cursor.sibling;
79
+ }
80
+ if (cursor !== undefined) {
81
+ return undefined;
82
+ }
83
+ cursor = currentFirstChild;
84
+ let first;
85
+ let previous;
86
+ for (const child of children) {
87
+ const key = getNodeKey(child);
88
+ const fiber = reconcileSingleChild(parent, cursor, child, key);
89
+ fiber.lanes |= parent.lanes;
90
+ fiber.return = parent;
91
+ fiber.sibling = undefined;
92
+ if (first === undefined) {
93
+ first = fiber;
94
+ }
95
+ else if (previous !== undefined) {
96
+ previous.sibling = fiber;
97
+ }
98
+ previous = fiber;
99
+ cursor = cursor?.sibling;
100
+ }
101
+ parent.child = first;
102
+ return first;
103
+ }
60
104
  function reconcileSingleChild(parent, current, child, key) {
61
105
  if (child === null || child === undefined || typeof child === "boolean") {
62
106
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-child.js","sourceRoot":"","sources":["../src/fiber-child.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ERROR_BOUNDARY_TYPE,\n FORWARD_REF_TYPE,\n Fragment,\n LAZY_TYPE,\n MEMO_TYPE,\n STRICT_MODE_TYPE,\n Suspense,\n SuspenseList,\n isReactCompatElement,\n isReactCompatPortal,\n type ReactCompatElement,\n type ReactCompatNode,\n} from \"./element.js\";\nimport {\n isReactCompatConsumer,\n isReactCompatProvider,\n} from \"./context.js\";\nimport { isClassComponentType } from \"./class-component.js\";\nimport { ChildDeletion, Placement, Ref, Update } from \"./fiber-flags.js\";\nimport { createFiber, createWorkInProgress, type Fiber } from \"./fiber.js\";\nimport { getPendingProps } from \"./prop-comparison.js\";\n\nexport function reconcileChildFibers(\n parent: Fiber,\n currentFirstChild: Fiber | undefined,\n newChildren: ReactCompatNode,\n): Fiber | undefined {\n const children = normalizeChildren(newChildren);\n const keyed = collectKeyedChildren(currentFirstChild);\n const oldIndexes = collectChildIndexes(currentFirstChild);\n const used = new Set<Fiber>();\n let currentUnkeyed = currentFirstChild;\n let lastPlacedIndex = 0;\n let first: Fiber | undefined;\n let previous: Fiber | undefined;\n\n for (const child of children) {\n const key = getNodeKey(child);\n const matchedCurrent =\n key === undefined ? findNextUnkeyedChild(currentUnkeyed) : keyed.get(key);\n const fiber = reconcileSingleChild(parent, matchedCurrent, child, key);\n\n if (key === undefined) {\n currentUnkeyed = matchedCurrent?.sibling ?? currentUnkeyed?.sibling;\n }\n\n if (fiber === undefined) {\n if (matchedCurrent !== undefined) {\n used.add(matchedCurrent);\n markChildForDeletion(parent, matchedCurrent);\n }\n continue;\n }\n\n if (matchedCurrent !== undefined) {\n used.add(matchedCurrent);\n\n if (fiber.alternate === matchedCurrent) {\n const oldIndex = oldIndexes.get(matchedCurrent) ?? 0;\n if (oldIndex < lastPlacedIndex) {\n fiber.flags |= Placement;\n } else {\n lastPlacedIndex = oldIndex;\n }\n } else {\n markChildForDeletion(parent, matchedCurrent);\n }\n }\n\n fiber.lanes |= parent.lanes;\n fiber.return = parent;\n fiber.sibling = undefined;\n\n if (first === undefined) {\n first = fiber;\n } else if (previous !== undefined) {\n previous.sibling = fiber;\n }\n\n previous = fiber;\n }\n\n markRemainingChildrenForDeletion(parent, currentFirstChild, used);\n parent.child = first;\n return first;\n}\n\nfunction reconcileSingleChild(\n parent: Fiber,\n current: Fiber | undefined,\n child: ReactCompatNode,\n key: string | undefined,\n): Fiber | undefined {\n if (child === null || child === undefined || typeof child === \"boolean\") {\n return undefined;\n }\n\n if (typeof child === \"string\" || typeof child === \"number\") {\n if (current?.tag === \"host-text\") {\n const fiber = createWorkInProgress(current, String(child));\n markUpdateEffectIfChanged(fiber, current);\n return fiber;\n }\n\n const fiber = createFiber(\"host-text\", String(child), key);\n fiber.flags |= Placement;\n fiber.return = parent;\n return fiber;\n }\n\n if (Array.isArray(child)) {\n if (current?.tag === \"fragment\") {\n const fiber = createWorkInProgress(current, child);\n markUpdateEffectIfChanged(fiber, current);\n return fiber;\n }\n\n const fiber = createFiber(\"fragment\", child, key);\n fiber.flags |= Placement;\n fiber.return = parent;\n return fiber;\n }\n\n if (isReactCompatPortal(child)) {\n if (current?.tag === \"portal\" && current.stateNode === child.container) {\n const fiber = createWorkInProgress(current, child.children);\n markUpdateEffectIfChanged(fiber, current);\n return fiber;\n }\n\n const fiber = createFiber(\"portal\", child.children, key);\n fiber.stateNode = child.container;\n fiber.flags |= Placement;\n fiber.return = parent;\n return fiber;\n }\n\n if (!isReactCompatElement(child)) {\n return undefined;\n }\n\n if (current !== undefined && canReuseElementFiber(current, child)) {\n const fiber = createWorkInProgress(current, getPendingProps(child));\n markUpdateEffectIfChanged(fiber, current);\n markRefEffectIfChanged(fiber, current);\n return fiber;\n }\n\n const fiber = createElementFiber(child, key);\n fiber.flags |= Placement;\n fiber.return = parent;\n return fiber;\n}\n\nfunction canReuseElementFiber(\n current: Fiber,\n element: ReactCompatElement,\n): boolean {\n if (current.type !== element.type) {\n return false;\n }\n\n if (typeof element.type === \"string\") {\n return current.tag === \"host-component\";\n }\n\n if (element.type === Fragment) {\n return current.tag === \"fragment\";\n }\n\n return current.tag !== \"host-component\" && current.tag !== \"host-text\";\n}\n\nfunction createElementFiber(\n element: ReactCompatElement,\n key: string | undefined,\n): Fiber {\n const tag =\n typeof element.type === \"string\"\n ? \"host-component\"\n : element.type === Fragment\n ? \"fragment\"\n : element.type === Suspense\n ? \"suspense\"\n : element.type === SuspenseList\n ? \"suspense-list\"\n : element.type === STRICT_MODE_TYPE\n ? \"strict-mode\"\n : element.type === ERROR_BOUNDARY_TYPE\n ? \"error-boundary\"\n : isLazyType(element.type)\n ? \"lazy\"\n : isReactCompatProvider(element.type)\n ? \"context-provider\"\n : isReactCompatConsumer(element.type)\n ? \"context-consumer\"\n : isForwardRefType(element.type)\n ? \"forward-ref\"\n : isMemoType(element.type)\n ? \"memo\"\n : isClassComponentType(element.type)\n ? \"class-component\"\n : \"function-component\";\n const fiber = createFiber(tag, getPendingProps(element), key);\n fiber.type = element.type;\n return fiber;\n}\n\nfunction isForwardRefType(value: unknown): boolean {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === FORWARD_REF_TYPE\n );\n}\n\nfunction isMemoType(value: unknown): boolean {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === MEMO_TYPE\n );\n}\n\nfunction isLazyType(value: unknown): boolean {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === LAZY_TYPE\n );\n}\n\nfunction markChildForDeletion(parent: Fiber, child: Fiber): void {\n parent.flags |= ChildDeletion;\n parent.deletions = parent.deletions ?? [];\n if (parent.deletions.includes(child)) {\n return;\n }\n parent.deletions.push(child);\n}\n\nfunction collectKeyedChildren(\n firstChild: Fiber | undefined,\n): Map<string, Fiber> {\n const keyed = new Map<string, Fiber>();\n let cursor = firstChild;\n\n while (cursor !== undefined) {\n if (cursor.key !== undefined) {\n keyed.set(cursor.key, cursor);\n }\n\n cursor = cursor.sibling;\n }\n\n return keyed;\n}\n\nfunction collectChildIndexes(\n firstChild: Fiber | undefined,\n): Map<Fiber, number> {\n const indexes = new Map<Fiber, number>();\n let cursor = firstChild;\n let index = 0;\n\n while (cursor !== undefined) {\n indexes.set(cursor, index);\n cursor = cursor.sibling;\n index += 1;\n }\n\n return indexes;\n}\n\nfunction findNextUnkeyedChild(firstChild: Fiber | undefined): Fiber | undefined {\n let cursor = firstChild;\n\n while (cursor !== undefined && cursor.key !== undefined) {\n cursor = cursor.sibling;\n }\n\n return cursor;\n}\n\nfunction markRemainingChildrenForDeletion(\n parent: Fiber,\n firstChild: Fiber | undefined,\n used: Set<Fiber>,\n): void {\n let cursor = firstChild;\n\n while (cursor !== undefined) {\n if (!used.has(cursor)) {\n markChildForDeletion(parent, cursor);\n }\n\n cursor = cursor.sibling;\n }\n}\n\nfunction normalizeChildren(node: ReactCompatNode): ReactCompatNode[] {\n if (node === null || node === undefined || typeof node === \"boolean\") {\n return [];\n }\n\n return Array.isArray(node) ? node : [node];\n}\n\nfunction getNodeKey(node: ReactCompatNode): string | undefined {\n return isReactCompatElement(node) && node.key !== null ? node.key : undefined;\n}\n\nfunction markUpdateEffectIfChanged(fiber: Fiber, current: Fiber): void {\n const previousProps =\n current.memoizedProps === undefined\n ? current.pendingProps\n : current.memoizedProps;\n\n if (!arePropsEqual(previousProps, fiber.pendingProps)) {\n fiber.flags |= Update;\n }\n}\n\nfunction markRefEffectIfChanged(fiber: Fiber, current: Fiber): void {\n if (\n getRef(current.memoizedProps ?? current.pendingProps) !==\n getRef(fiber.pendingProps)\n ) {\n fiber.flags |= Ref;\n }\n}\n\nfunction getRef(props: unknown): unknown {\n return typeof props === \"object\" && props !== null\n ? (props as { ref?: unknown }).ref\n : undefined;\n}\n\nfunction arePropsEqual(left: unknown, right: unknown): boolean {\n if (Object.is(left, right)) {\n return true;\n }\n\n if (\n typeof left !== \"object\" ||\n left === null ||\n typeof right !== \"object\" ||\n right === null\n ) {\n return false;\n }\n\n const leftRecord = left as Record<string, unknown>;\n const rightRecord = right as Record<string, unknown>;\n const leftKeys = Object.keys(leftRecord);\n const rightKeys = Object.keys(rightRecord);\n\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n\n return leftKeys.every((key) => Object.is(leftRecord[key], rightRecord[key]));\n}\n"]}
1
+ {"version":3,"file":"fiber-child.js","sourceRoot":"","sources":["../src/fiber-child.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ERROR_BOUNDARY_TYPE,\n FORWARD_REF_TYPE,\n Fragment,\n LAZY_TYPE,\n MEMO_TYPE,\n STRICT_MODE_TYPE,\n Suspense,\n SuspenseList,\n isReactCompatElement,\n isReactCompatPortal,\n type ReactCompatElement,\n type ReactCompatNode,\n} from \"./element.js\";\nimport {\n isReactCompatConsumer,\n isReactCompatProvider,\n} from \"./context.js\";\nimport { isClassComponentType } from \"./class-component.js\";\nimport { ChildDeletion, Placement, Ref, Update } from \"./fiber-flags.js\";\nimport { createFiber, createWorkInProgress, type Fiber } from \"./fiber.js\";\nimport { getPendingProps } from \"./prop-comparison.js\";\n\nexport function reconcileChildFibers(\n parent: Fiber,\n currentFirstChild: Fiber | undefined,\n newChildren: ReactCompatNode,\n): Fiber | undefined {\n const children = normalizeChildren(newChildren);\n const orderedKeyedChildren = reconcileSameKeyOrderChildren(\n parent,\n currentFirstChild,\n children,\n );\n\n if (orderedKeyedChildren !== undefined) {\n return orderedKeyedChildren;\n }\n\n const keyed = collectKeyedChildren(currentFirstChild);\n const oldIndexes = collectChildIndexes(currentFirstChild);\n const used = new Set<Fiber>();\n let currentUnkeyed = currentFirstChild;\n let lastPlacedIndex = 0;\n let first: Fiber | undefined;\n let previous: Fiber | undefined;\n\n for (const child of children) {\n const key = getNodeKey(child);\n const matchedCurrent =\n key === undefined ? findNextUnkeyedChild(currentUnkeyed) : keyed.get(key);\n const fiber = reconcileSingleChild(parent, matchedCurrent, child, key);\n\n if (key === undefined) {\n currentUnkeyed = matchedCurrent?.sibling ?? currentUnkeyed?.sibling;\n }\n\n if (fiber === undefined) {\n if (matchedCurrent !== undefined) {\n used.add(matchedCurrent);\n markChildForDeletion(parent, matchedCurrent);\n }\n continue;\n }\n\n if (matchedCurrent !== undefined) {\n used.add(matchedCurrent);\n\n if (fiber.alternate === matchedCurrent) {\n const oldIndex = oldIndexes.get(matchedCurrent) ?? 0;\n if (oldIndex < lastPlacedIndex) {\n fiber.flags |= Placement;\n } else {\n lastPlacedIndex = oldIndex;\n }\n } else {\n markChildForDeletion(parent, matchedCurrent);\n }\n }\n\n fiber.lanes |= parent.lanes;\n fiber.return = parent;\n fiber.sibling = undefined;\n\n if (first === undefined) {\n first = fiber;\n } else if (previous !== undefined) {\n previous.sibling = fiber;\n }\n\n previous = fiber;\n }\n\n markRemainingChildrenForDeletion(parent, currentFirstChild, used);\n parent.child = first;\n return first;\n}\n\nfunction reconcileSameKeyOrderChildren(\n parent: Fiber,\n currentFirstChild: Fiber | undefined,\n children: readonly ReactCompatNode[],\n): Fiber | undefined {\n if (currentFirstChild === undefined || children.length === 0) {\n return undefined;\n }\n\n let cursor: Fiber | undefined = currentFirstChild;\n\n for (const child of children) {\n const key = getNodeKey(child);\n\n if (\n key === undefined ||\n cursor === undefined ||\n cursor.key !== key ||\n !isReactCompatElement(child) ||\n !canReuseElementFiber(cursor, child)\n ) {\n return undefined;\n }\n\n cursor = cursor.sibling;\n }\n\n if (cursor !== undefined) {\n return undefined;\n }\n\n cursor = currentFirstChild;\n let first: Fiber | undefined;\n let previous: Fiber | undefined;\n\n for (const child of children) {\n const key = getNodeKey(child) as string;\n const fiber = reconcileSingleChild(parent, cursor, child, key) as Fiber;\n\n fiber.lanes |= parent.lanes;\n fiber.return = parent;\n fiber.sibling = undefined;\n\n if (first === undefined) {\n first = fiber;\n } else if (previous !== undefined) {\n previous.sibling = fiber;\n }\n\n previous = fiber;\n cursor = cursor?.sibling;\n }\n\n parent.child = first;\n return first;\n}\n\nfunction reconcileSingleChild(\n parent: Fiber,\n current: Fiber | undefined,\n child: ReactCompatNode,\n key: string | undefined,\n): Fiber | undefined {\n if (child === null || child === undefined || typeof child === \"boolean\") {\n return undefined;\n }\n\n if (typeof child === \"string\" || typeof child === \"number\") {\n if (current?.tag === \"host-text\") {\n const fiber = createWorkInProgress(current, String(child));\n markUpdateEffectIfChanged(fiber, current);\n return fiber;\n }\n\n const fiber = createFiber(\"host-text\", String(child), key);\n fiber.flags |= Placement;\n fiber.return = parent;\n return fiber;\n }\n\n if (Array.isArray(child)) {\n if (current?.tag === \"fragment\") {\n const fiber = createWorkInProgress(current, child);\n markUpdateEffectIfChanged(fiber, current);\n return fiber;\n }\n\n const fiber = createFiber(\"fragment\", child, key);\n fiber.flags |= Placement;\n fiber.return = parent;\n return fiber;\n }\n\n if (isReactCompatPortal(child)) {\n if (current?.tag === \"portal\" && current.stateNode === child.container) {\n const fiber = createWorkInProgress(current, child.children);\n markUpdateEffectIfChanged(fiber, current);\n return fiber;\n }\n\n const fiber = createFiber(\"portal\", child.children, key);\n fiber.stateNode = child.container;\n fiber.flags |= Placement;\n fiber.return = parent;\n return fiber;\n }\n\n if (!isReactCompatElement(child)) {\n return undefined;\n }\n\n if (current !== undefined && canReuseElementFiber(current, child)) {\n const fiber = createWorkInProgress(current, getPendingProps(child));\n markUpdateEffectIfChanged(fiber, current);\n markRefEffectIfChanged(fiber, current);\n return fiber;\n }\n\n const fiber = createElementFiber(child, key);\n fiber.flags |= Placement;\n fiber.return = parent;\n return fiber;\n}\n\nfunction canReuseElementFiber(\n current: Fiber,\n element: ReactCompatElement,\n): boolean {\n if (current.type !== element.type) {\n return false;\n }\n\n if (typeof element.type === \"string\") {\n return current.tag === \"host-component\";\n }\n\n if (element.type === Fragment) {\n return current.tag === \"fragment\";\n }\n\n return current.tag !== \"host-component\" && current.tag !== \"host-text\";\n}\n\nfunction createElementFiber(\n element: ReactCompatElement,\n key: string | undefined,\n): Fiber {\n const tag =\n typeof element.type === \"string\"\n ? \"host-component\"\n : element.type === Fragment\n ? \"fragment\"\n : element.type === Suspense\n ? \"suspense\"\n : element.type === SuspenseList\n ? \"suspense-list\"\n : element.type === STRICT_MODE_TYPE\n ? \"strict-mode\"\n : element.type === ERROR_BOUNDARY_TYPE\n ? \"error-boundary\"\n : isLazyType(element.type)\n ? \"lazy\"\n : isReactCompatProvider(element.type)\n ? \"context-provider\"\n : isReactCompatConsumer(element.type)\n ? \"context-consumer\"\n : isForwardRefType(element.type)\n ? \"forward-ref\"\n : isMemoType(element.type)\n ? \"memo\"\n : isClassComponentType(element.type)\n ? \"class-component\"\n : \"function-component\";\n const fiber = createFiber(tag, getPendingProps(element), key);\n fiber.type = element.type;\n return fiber;\n}\n\nfunction isForwardRefType(value: unknown): boolean {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === FORWARD_REF_TYPE\n );\n}\n\nfunction isMemoType(value: unknown): boolean {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === MEMO_TYPE\n );\n}\n\nfunction isLazyType(value: unknown): boolean {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === LAZY_TYPE\n );\n}\n\nfunction markChildForDeletion(parent: Fiber, child: Fiber): void {\n parent.flags |= ChildDeletion;\n parent.deletions = parent.deletions ?? [];\n if (parent.deletions.includes(child)) {\n return;\n }\n parent.deletions.push(child);\n}\n\nfunction collectKeyedChildren(\n firstChild: Fiber | undefined,\n): Map<string, Fiber> {\n const keyed = new Map<string, Fiber>();\n let cursor = firstChild;\n\n while (cursor !== undefined) {\n if (cursor.key !== undefined) {\n keyed.set(cursor.key, cursor);\n }\n\n cursor = cursor.sibling;\n }\n\n return keyed;\n}\n\nfunction collectChildIndexes(\n firstChild: Fiber | undefined,\n): Map<Fiber, number> {\n const indexes = new Map<Fiber, number>();\n let cursor = firstChild;\n let index = 0;\n\n while (cursor !== undefined) {\n indexes.set(cursor, index);\n cursor = cursor.sibling;\n index += 1;\n }\n\n return indexes;\n}\n\nfunction findNextUnkeyedChild(firstChild: Fiber | undefined): Fiber | undefined {\n let cursor = firstChild;\n\n while (cursor !== undefined && cursor.key !== undefined) {\n cursor = cursor.sibling;\n }\n\n return cursor;\n}\n\nfunction markRemainingChildrenForDeletion(\n parent: Fiber,\n firstChild: Fiber | undefined,\n used: Set<Fiber>,\n): void {\n let cursor = firstChild;\n\n while (cursor !== undefined) {\n if (!used.has(cursor)) {\n markChildForDeletion(parent, cursor);\n }\n\n cursor = cursor.sibling;\n }\n}\n\nfunction normalizeChildren(node: ReactCompatNode): ReactCompatNode[] {\n if (node === null || node === undefined || typeof node === \"boolean\") {\n return [];\n }\n\n return Array.isArray(node) ? node : [node];\n}\n\nfunction getNodeKey(node: ReactCompatNode): string | undefined {\n return isReactCompatElement(node) && node.key !== null ? node.key : undefined;\n}\n\nfunction markUpdateEffectIfChanged(fiber: Fiber, current: Fiber): void {\n const previousProps =\n current.memoizedProps === undefined\n ? current.pendingProps\n : current.memoizedProps;\n\n if (!arePropsEqual(previousProps, fiber.pendingProps)) {\n fiber.flags |= Update;\n }\n}\n\nfunction markRefEffectIfChanged(fiber: Fiber, current: Fiber): void {\n if (\n getRef(current.memoizedProps ?? current.pendingProps) !==\n getRef(fiber.pendingProps)\n ) {\n fiber.flags |= Ref;\n }\n}\n\nfunction getRef(props: unknown): unknown {\n return typeof props === \"object\" && props !== null\n ? (props as { ref?: unknown }).ref\n : undefined;\n}\n\nfunction arePropsEqual(left: unknown, right: unknown): boolean {\n if (Object.is(left, right)) {\n return true;\n }\n\n if (\n typeof left !== \"object\" ||\n left === null ||\n typeof right !== \"object\" ||\n right === null\n ) {\n return false;\n }\n\n const leftRecord = left as Record<string, unknown>;\n const rightRecord = right as Record<string, unknown>;\n const leftKeys = Object.keys(leftRecord);\n const rightKeys = Object.keys(rightRecord);\n\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n\n return leftKeys.every((key) => Object.is(leftRecord[key], rightRecord[key]));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-commit.d.ts","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOpD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,aAAkB,GAC1B,IAAI,CAwBN;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAIlD"}
1
+ {"version":3,"file":"fiber-commit.d.ts","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOpD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,aAAkB,GAC1B,IAAI,CA2BN;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAIlD"}
@@ -14,6 +14,9 @@ export function commitFiberRoot(root, options = {}) {
14
14
  });
15
15
  }
16
16
  commitHostFiberRoot(root, finishedWork, options);
17
+ if (hasRemovedAlternateChildren(finishedWork)) {
18
+ detachRemovedAlternateChildren(finishedWork);
19
+ }
17
20
  root.current = finishedWork;
18
21
  root.current.stateNode = root;
19
22
  markRootFinished(root, finishedWork.lanes);
@@ -27,6 +30,73 @@ export function detachFiberRefs(fiber) {
27
30
  detachRef(record.ref);
28
31
  }
29
32
  }
33
+ function detachRemovedAlternateChildren(fiber) {
34
+ let cursor = fiber;
35
+ while (cursor !== undefined) {
36
+ const retained = collectRetainedAlternateChildren(cursor.child);
37
+ let alternateChild = cursor.alternate?.child;
38
+ while (alternateChild !== undefined) {
39
+ const nextAlternateChild = alternateChild.sibling;
40
+ if (!retained.has(alternateChild)) {
41
+ detachFiberSubtree(alternateChild, retained);
42
+ }
43
+ alternateChild = nextAlternateChild;
44
+ }
45
+ if (cursor.deletions !== undefined) {
46
+ for (const deleted of cursor.deletions) {
47
+ detachFiberSubtree(deleted, retained);
48
+ }
49
+ cursor.deletions = undefined;
50
+ }
51
+ detachRemovedAlternateChildren(cursor.child);
52
+ cursor = cursor.sibling;
53
+ }
54
+ }
55
+ function hasRemovedAlternateChildren(fiber) {
56
+ return (fiber.childListChanged ||
57
+ fiber.subtreeChildListChanged ||
58
+ fiber.deletions !== undefined);
59
+ }
60
+ function collectRetainedAlternateChildren(fiber) {
61
+ const retained = new Set();
62
+ let cursor = fiber;
63
+ while (cursor !== undefined) {
64
+ retained.add(cursor);
65
+ if (cursor.alternate !== undefined) {
66
+ retained.add(cursor.alternate);
67
+ }
68
+ cursor = cursor.sibling;
69
+ }
70
+ return retained;
71
+ }
72
+ function detachFiberSubtree(fiber, preserve) {
73
+ const stack = [fiber];
74
+ const seen = new Set();
75
+ while (stack.length > 0) {
76
+ const current = stack.pop();
77
+ if (current === undefined || seen.has(current) || preserve.has(current)) {
78
+ continue;
79
+ }
80
+ seen.add(current);
81
+ let child = current.child;
82
+ while (child !== undefined) {
83
+ stack.push(child);
84
+ child = child.sibling;
85
+ }
86
+ if (current.alternate !== undefined) {
87
+ stack.push(current.alternate);
88
+ }
89
+ current.return = undefined;
90
+ current.child = undefined;
91
+ current.sibling = undefined;
92
+ current.alternate = undefined;
93
+ current.pendingProps = undefined;
94
+ current.memoizedProps = undefined;
95
+ current.memoizedState = undefined;
96
+ current.stateNode = undefined;
97
+ current.deletions = undefined;
98
+ }
99
+ }
30
100
  function cleanupDeletedRefs(previous, next) {
31
101
  const nextRefs = new Set();
32
102
  collectRefRecords(next, nextRefs);
@@ -1 +1 @@
1
- {"version":3,"file":"fiber-commit.js","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Fiber, FiberRoot } from \"./fiber.js\";\nimport { commitHostFiberRoot } from \"./fiber-host.js\";\nimport { markRootFinished } from \"./fiber-lanes.js\";\nimport { runWithHostCommit } from \"./hooks.js\";\nimport type { RenderOptions } from \"./hydration.js\";\n\ninterface RefRecord {\n ref: unknown;\n node: unknown;\n}\n\nexport function commitFiberRoot(\n root: FiberRoot,\n options: RenderOptions = {},\n): void {\n const finishedWork = root.finishedWork;\n\n if (finishedWork === undefined) {\n return;\n }\n\n if (\n root.refCleanupKnown !== true ||\n root.current.hasRefSubtree ||\n finishedWork.hasRefSubtree\n ) {\n runWithHostCommit(() => {\n cleanupDeletedRefs(root.current, finishedWork);\n });\n }\n commitHostFiberRoot(root, finishedWork, options);\n root.current = finishedWork;\n root.current.stateNode = root;\n markRootFinished(root, finishedWork.lanes);\n root.callbackPriority = root.pendingLanes & -root.pendingLanes;\n root.finishedWork = undefined;\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n}\n\nexport function detachFiberRefs(fiber: Fiber): void {\n for (const record of collectRefRecords(fiber)) {\n detachRef(record.ref);\n }\n}\n\nfunction cleanupDeletedRefs(previous: Fiber, next: Fiber): void {\n const nextRefs = new Set<unknown>();\n\n collectRefRecords(next, nextRefs);\n\n for (const record of collectRefRecords(previous)) {\n if (!nextRefs.has(record.ref)) {\n detachRef(record.ref);\n }\n }\n}\n\nfunction collectRefRecords(\n fiber: Fiber | undefined,\n refs: Set<unknown> = new Set(),\n): RefRecord[] {\n const records: RefRecord[] = [];\n let cursor = fiber;\n\n while (cursor !== undefined) {\n const ref = getFiberRef(cursor);\n\n if (ref !== undefined && ref !== null) {\n refs.add(ref);\n records.push({ ref, node: cursor.stateNode });\n }\n\n records.push(...collectRefRecords(cursor.child, refs));\n cursor = cursor.sibling;\n }\n\n return records;\n}\n\nfunction getFiberRef(fiber: Fiber): unknown {\n const props = (fiber.memoizedProps ?? fiber.pendingProps) as\n | { ref?: unknown }\n | undefined;\n\n return props?.ref;\n}\n\nfunction detachRef(ref: unknown): void {\n if (typeof ref === \"function\") {\n ref(null);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: unknown }).current = null;\n }\n}\n"]}
1
+ {"version":3,"file":"fiber-commit.js","sourceRoot":"","sources":["../src/fiber-commit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAQ/C,MAAM,UAAU,eAAe,CAC7B,IAAe,EACf,UAAyB,EAAE;IAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAEvC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,IACE,IAAI,CAAC,eAAe,KAAK,IAAI;QAC7B,IAAI,CAAC,OAAO,CAAC,aAAa;QAC1B,YAAY,CAAC,aAAa,EAC1B,CAAC;QACD,iBAAiB,CAAC,GAAG,EAAE;YACrB,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,2BAA2B,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9C,8BAA8B,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;IAC/D,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,6BAA6B,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,KAAK,MAAM,MAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAwB;IAC9D,IAAI,MAAM,GAAsB,KAAK,CAAC;IAEtC,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,gCAAgC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;QAE7C,OAAO,cAAc,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,CAAC;YAElD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;YAED,cAAc,GAAG,kBAAkB,CAAC;QACtC,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,8BAA8B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAY;IAC/C,OAAO,CACL,KAAK,CAAC,gBAAgB;QACtB,KAAK,CAAC,uBAAuB;QAC7B,KAAK,CAAC,SAAS,KAAK,SAAS,CAC9B,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAwB;IAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAS,CAAC;IAClC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAErB,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAY,EAAE,QAA4B;IACpE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAS,CAAC;IAE9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAE5B,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElB,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QAC3B,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;QAC1B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;QAC5B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;QACjC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;QAClC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAe,EAAE,IAAW;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAW,CAAC;IAEpC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAElC,KAAK,MAAM,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAwB,EACxB,OAAqB,IAAI,GAAG,EAAE;IAE9B,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,CAE3C,CAAC;IAEd,OAAO,KAAK,EAAE,GAAG,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,CAAC;QACV,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QAC/D,GAA4B,CAAC,OAAO,GAAG,IAAI,CAAC;IAC/C,CAAC;AACH,CAAC","sourcesContent":["import type { Fiber, FiberRoot } from \"./fiber.js\";\nimport { commitHostFiberRoot } from \"./fiber-host.js\";\nimport { markRootFinished } from \"./fiber-lanes.js\";\nimport { runWithHostCommit } from \"./hooks.js\";\nimport type { RenderOptions } from \"./hydration.js\";\n\ninterface RefRecord {\n ref: unknown;\n node: unknown;\n}\n\nexport function commitFiberRoot(\n root: FiberRoot,\n options: RenderOptions = {},\n): void {\n const finishedWork = root.finishedWork;\n\n if (finishedWork === undefined) {\n return;\n }\n\n if (\n root.refCleanupKnown !== true ||\n root.current.hasRefSubtree ||\n finishedWork.hasRefSubtree\n ) {\n runWithHostCommit(() => {\n cleanupDeletedRefs(root.current, finishedWork);\n });\n }\n commitHostFiberRoot(root, finishedWork, options);\n if (hasRemovedAlternateChildren(finishedWork)) {\n detachRemovedAlternateChildren(finishedWork);\n }\n root.current = finishedWork;\n root.current.stateNode = root;\n markRootFinished(root, finishedWork.lanes);\n root.callbackPriority = root.pendingLanes & -root.pendingLanes;\n root.finishedWork = undefined;\n root.workInProgress = undefined;\n root.workInProgressRootRenderLanes = 0;\n}\n\nexport function detachFiberRefs(fiber: Fiber): void {\n for (const record of collectRefRecords(fiber)) {\n detachRef(record.ref);\n }\n}\n\nfunction detachRemovedAlternateChildren(fiber: Fiber | undefined): void {\n let cursor: Fiber | undefined = fiber;\n\n while (cursor !== undefined) {\n const retained = collectRetainedAlternateChildren(cursor.child);\n let alternateChild = cursor.alternate?.child;\n\n while (alternateChild !== undefined) {\n const nextAlternateChild = alternateChild.sibling;\n\n if (!retained.has(alternateChild)) {\n detachFiberSubtree(alternateChild, retained);\n }\n\n alternateChild = nextAlternateChild;\n }\n\n if (cursor.deletions !== undefined) {\n for (const deleted of cursor.deletions) {\n detachFiberSubtree(deleted, retained);\n }\n cursor.deletions = undefined;\n }\n\n detachRemovedAlternateChildren(cursor.child);\n cursor = cursor.sibling;\n }\n}\n\nfunction hasRemovedAlternateChildren(fiber: Fiber): boolean {\n return (\n fiber.childListChanged ||\n fiber.subtreeChildListChanged ||\n fiber.deletions !== undefined\n );\n}\n\nfunction collectRetainedAlternateChildren(fiber: Fiber | undefined): Set<Fiber> {\n const retained = new Set<Fiber>();\n let cursor = fiber;\n\n while (cursor !== undefined) {\n retained.add(cursor);\n\n if (cursor.alternate !== undefined) {\n retained.add(cursor.alternate);\n }\n\n cursor = cursor.sibling;\n }\n\n return retained;\n}\n\nfunction detachFiberSubtree(fiber: Fiber, preserve: ReadonlySet<Fiber>): void {\n const stack = [fiber];\n const seen = new Set<Fiber>();\n\n while (stack.length > 0) {\n const current = stack.pop();\n\n if (current === undefined || seen.has(current) || preserve.has(current)) {\n continue;\n }\n\n seen.add(current);\n\n let child = current.child;\n while (child !== undefined) {\n stack.push(child);\n child = child.sibling;\n }\n\n if (current.alternate !== undefined) {\n stack.push(current.alternate);\n }\n\n current.return = undefined;\n current.child = undefined;\n current.sibling = undefined;\n current.alternate = undefined;\n current.pendingProps = undefined;\n current.memoizedProps = undefined;\n current.memoizedState = undefined;\n current.stateNode = undefined;\n current.deletions = undefined;\n }\n}\n\nfunction cleanupDeletedRefs(previous: Fiber, next: Fiber): void {\n const nextRefs = new Set<unknown>();\n\n collectRefRecords(next, nextRefs);\n\n for (const record of collectRefRecords(previous)) {\n if (!nextRefs.has(record.ref)) {\n detachRef(record.ref);\n }\n }\n}\n\nfunction collectRefRecords(\n fiber: Fiber | undefined,\n refs: Set<unknown> = new Set(),\n): RefRecord[] {\n const records: RefRecord[] = [];\n let cursor = fiber;\n\n while (cursor !== undefined) {\n const ref = getFiberRef(cursor);\n\n if (ref !== undefined && ref !== null) {\n refs.add(ref);\n records.push({ ref, node: cursor.stateNode });\n }\n\n records.push(...collectRefRecords(cursor.child, refs));\n cursor = cursor.sibling;\n }\n\n return records;\n}\n\nfunction getFiberRef(fiber: Fiber): unknown {\n const props = (fiber.memoizedProps ?? fiber.pendingProps) as\n | { ref?: unknown }\n | undefined;\n\n return props?.ref;\n}\n\nfunction detachRef(ref: unknown): void {\n if (typeof ref === \"function\") {\n ref(null);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: unknown }).current = null;\n }\n}\n"]}
package/dist/hooks.d.ts CHANGED
@@ -2,6 +2,7 @@ import { type ReactCompatContextLike } from "./context.js";
2
2
  export interface RootRuntime {
3
3
  currentElement?: unknown;
4
4
  instances: Map<string, ComponentInstance>;
5
+ instanceKeysByPrefix: Map<string, Set<string>>;
5
6
  activeInstanceKeys: Set<string> | undefined;
6
7
  activeProfilerPaths: Set<string> | undefined;
7
8
  mountedProfilerPaths: Set<string>;
@@ -43,8 +44,8 @@ interface ComponentInstance {
43
44
  dirty: boolean;
44
45
  disposed?: boolean;
45
46
  contextDependencies?: Map<ReactCompatContextLike<unknown>, unknown>;
46
- devToolsHooks: DevToolsHookValue[];
47
- devToolsHookTypes: string[];
47
+ devToolsHooks?: DevToolsHookValue[];
48
+ devToolsHookTypes?: string[];
48
49
  devToolsHookSuppressionDepth: number;
49
50
  }
50
51
  type EffectCallback = () => void | (() => void);
@@ -205,6 +206,7 @@ export declare function renderWithProfiler<T>(runtime: RootRuntime, path: string
205
206
  export declare function renderWithRootRuntime<T>(runtime: RootRuntime, path: string, render: () => T, owner?: unknown): T;
206
207
  export declare function hasChangedContextDependency(runtime: RootRuntime, keys: readonly string[]): boolean;
207
208
  export declare function hasContextDependency(runtime: RootRuntime, keys: readonly string[]): boolean;
209
+ export declare function collectRuntimeInstanceKeys(runtime: RootRuntime, prefix: string): string[];
208
210
  export declare function getDevToolsHookState(runtime: RootRuntime, path: string): DevToolsHookState | undefined;
209
211
  export declare function renderWithStrictMode<T>(runtime: RootRuntime, render: () => T): T;
210
212
  export declare function renderWithStrictModeMemoCapture<T>(runtime: RootRuntime, render: () => T): {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}