gitextract_o9kdplb8/ ├── .editorconfig ├── .github/ │ ├── CODE_OF_CONDUCT.md │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ ├── benchmarks.yml │ ├── build-test.yml │ ├── ci.yml │ ├── pr-reporter.yml │ ├── release.yml │ ├── run-bench.yml │ ├── single-bench.yml │ └── size.yml ├── .gitignore ├── .gitmodules ├── .husky/ │ └── pre-commit ├── .oxlintrc.json ├── .prettierignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── babel.config.js ├── biome.json ├── compat/ │ ├── LICENSE │ ├── client.d.ts │ ├── client.js │ ├── client.mjs │ ├── jsx-dev-runtime.js │ ├── jsx-dev-runtime.mjs │ ├── jsx-runtime.js │ ├── jsx-runtime.mjs │ ├── mangle.json │ ├── package.json │ ├── scheduler.d.ts │ ├── scheduler.js │ ├── scheduler.mjs │ ├── server.browser.js │ ├── server.d.ts │ ├── server.js │ ├── server.mjs │ ├── src/ │ │ ├── Children.js │ │ ├── PureComponent.js │ │ ├── forwardRef.js │ │ ├── hooks.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── internal.d.ts │ │ ├── memo.js │ │ ├── portals.js │ │ ├── render.js │ │ ├── suspense.d.ts │ │ ├── suspense.js │ │ └── util.js │ ├── test/ │ │ ├── browser/ │ │ │ ├── Children.test.jsx │ │ │ ├── PureComponent.test.jsx │ │ │ ├── cloneElement.test.jsx │ │ │ ├── compat.options.test.jsx │ │ │ ├── component.test.jsx │ │ │ ├── componentDidCatch.test.jsx │ │ │ ├── context.test.jsx │ │ │ ├── createElement.test.jsx │ │ │ ├── createFactory.test.jsx │ │ │ ├── events.test.jsx │ │ │ ├── exports.test.js │ │ │ ├── findDOMNode.test.jsx │ │ │ ├── forwardRef.test.jsx │ │ │ ├── hooks.test.jsx │ │ │ ├── hydrate.test.jsx │ │ │ ├── isFragment.test.js │ │ │ ├── isMemo.test.jsx │ │ │ ├── isValidElement.test.js │ │ │ ├── memo.test.jsx │ │ │ ├── portals.test.jsx │ │ │ ├── render.test.jsx │ │ │ ├── scheduler.test.js │ │ │ ├── select.test.jsx │ │ │ ├── suspense-hydration.test.jsx │ │ │ ├── suspense-utils.js │ │ │ ├── suspense.test.jsx │ │ │ ├── svg.test.jsx │ │ │ ├── testUtils.js │ │ │ ├── textarea.test.jsx │ │ │ ├── unmountComponentAtNode.test.jsx │ │ │ ├── unstable_batchedUpdates.test.js │ │ │ └── useSyncExternalStore.test.jsx │ │ └── ts/ │ │ ├── forward-ref.tsx │ │ ├── index.tsx │ │ ├── lazy.tsx │ │ ├── memo.tsx │ │ ├── react-default.tsx │ │ ├── react-star.tsx │ │ ├── scheduler.ts │ │ ├── suspense.tsx │ │ ├── tsconfig.json │ │ └── utils.ts │ ├── test-utils.js │ └── test-utils.mjs ├── config/ │ └── compat-entries.js ├── debug/ │ ├── LICENSE │ ├── mangle.json │ ├── package.json │ ├── src/ │ │ ├── check-props.js │ │ ├── component-stack.js │ │ ├── constants.js │ │ ├── debug.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── internal.d.ts │ │ └── util.js │ └── test/ │ └── browser/ │ ├── component-stack-2.test.jsx │ ├── component-stack.test.jsx │ ├── debug-compat.test.jsx │ ├── debug-hooks.test.jsx │ ├── debug-suspense.test.jsx │ ├── debug.options.test.jsx │ ├── debug.test.jsx │ ├── fakeDevTools.js │ ├── prop-types.test.js │ ├── serializeVNode.test.jsx │ └── validateHookArgs.test.jsx ├── demo/ │ ├── contenteditable.jsx │ ├── context.jsx │ ├── devtools.jsx │ ├── fragments.jsx │ ├── index.html │ ├── index.jsx │ ├── key_bug.jsx │ ├── list.jsx │ ├── logger.jsx │ ├── mobx.jsx │ ├── nested-suspense/ │ │ ├── addnewcomponent.jsx │ │ ├── component-container.jsx │ │ ├── dropzone.jsx │ │ ├── editor.jsx │ │ ├── index.jsx │ │ └── subcomponent.jsx │ ├── old.js.bak │ ├── package.json │ ├── people/ │ │ ├── Readme.md │ │ ├── index.tsx │ │ ├── profile.tsx │ │ ├── router.tsx │ │ ├── store.ts │ │ └── styles/ │ │ ├── animations.scss │ │ ├── app.scss │ │ ├── avatar.scss │ │ ├── button.scss │ │ ├── index.scss │ │ └── profile.scss │ ├── preact.jsx │ ├── profiler.jsx │ ├── pythagoras/ │ │ ├── index.jsx │ │ └── pythagoras.jsx │ ├── redux-toolkit.jsx │ ├── redux.jsx │ ├── reduxUpdate.jsx │ ├── reorder.jsx │ ├── spiral.jsx │ ├── stateOrderBug.jsx │ ├── style.css │ ├── style.scss │ ├── styled-components.jsx │ ├── suspense-router/ │ │ ├── bye.jsx │ │ ├── hello.jsx │ │ ├── index.jsx │ │ └── simple-router.jsx │ ├── suspense.jsx │ ├── textFields.jsx │ ├── todo.jsx │ ├── tsconfig.json │ ├── vite.config.js │ └── zustand.jsx ├── devtools/ │ ├── LICENSE │ ├── mangle.json │ ├── package.json │ ├── src/ │ │ ├── devtools.js │ │ ├── index.d.ts │ │ └── index.js │ └── test/ │ └── browser/ │ └── addHookName.test.jsx ├── hooks/ │ ├── LICENSE │ ├── mangle.json │ ├── package.json │ ├── src/ │ │ ├── index.d.ts │ │ ├── index.js │ │ └── internal.d.ts │ └── test/ │ ├── _util/ │ │ └── useEffectUtil.js │ └── browser/ │ ├── combinations.test.jsx │ ├── componentDidCatch.test.jsx │ ├── errorBoundary.test.jsx │ ├── hooks.options.test.jsx │ ├── useCallback.test.jsx │ ├── useContext.test.jsx │ ├── useDebugValue.test.jsx │ ├── useEffect.test.jsx │ ├── useEffectAssertions.jsx │ ├── useId.test.jsx │ ├── useImperativeHandle.test.jsx │ ├── useLayoutEffect.test.jsx │ ├── useMemo.test.jsx │ ├── useReducer.test.jsx │ ├── useRef.test.jsx │ └── useState.test.jsx ├── jsconfig-lint.json ├── jsconfig.json ├── jsx-runtime/ │ ├── LICENSE │ ├── mangle.json │ ├── package.json │ ├── src/ │ │ ├── index.d.ts │ │ ├── index.js │ │ └── utils.js │ └── test/ │ └── browser/ │ └── jsx-runtime.test.js ├── mangle.json ├── package.json ├── scripts/ │ └── release/ │ ├── create-gh-release.js │ ├── publish.mjs │ └── upload-gh-asset.js ├── src/ │ ├── clone-element.js │ ├── component.js │ ├── constants.js │ ├── create-context.js │ ├── create-element.js │ ├── diff/ │ │ ├── catch-error.js │ │ ├── children.js │ │ ├── index.js │ │ └── props.js │ ├── dom.d.ts │ ├── index.d.ts │ ├── index.js │ ├── internal.d.ts │ ├── jsx.d.ts │ ├── options.js │ ├── render.js │ └── util.js ├── test/ │ ├── _util/ │ │ ├── dom.js │ │ ├── helpers.jsx │ │ ├── logCall.js │ │ └── optionSpies.js │ ├── browser/ │ │ ├── cloneElement.test.jsx │ │ ├── components.test.jsx │ │ ├── context.test.jsx │ │ ├── createContext.test.jsx │ │ ├── customBuiltInElements.test.jsx │ │ ├── events.test.jsx │ │ ├── focus.test.jsx │ │ ├── fragments.test.jsx │ │ ├── getDomSibling.test.jsx │ │ ├── hydrate.test.jsx │ │ ├── isValidElement.test.js │ │ ├── keys.test.jsx │ │ ├── lifecycles/ │ │ │ ├── componentDidCatch.test.jsx │ │ │ ├── componentDidMount.test.jsx │ │ │ ├── componentDidUpdate.test.jsx │ │ │ ├── componentWillMount.test.jsx │ │ │ ├── componentWillReceiveProps.test.jsx │ │ │ ├── componentWillUnmount.test.jsx │ │ │ ├── componentWillUpdate.test.jsx │ │ │ ├── getDerivedStateFromError.test.jsx │ │ │ ├── getDerivedStateFromProps.test.jsx │ │ │ ├── getSnapshotBeforeUpdate.test.jsx │ │ │ ├── lifecycle.test.jsx │ │ │ └── shouldComponentUpdate.test.jsx │ │ ├── mathml.test.jsx │ │ ├── placeholders.test.jsx │ │ ├── refs.test.jsx │ │ ├── render.test.jsx │ │ ├── select.test.jsx │ │ ├── spec.test.jsx │ │ ├── style.test.jsx │ │ ├── svg.test.jsx │ │ └── toChildArray.test.jsx │ ├── fixtures/ │ │ └── preact.js │ ├── node/ │ │ └── index.test.js │ ├── shared/ │ │ ├── createContext.test.jsx │ │ ├── createElement.test.jsx │ │ ├── exports.test.js │ │ ├── isValidElement.test.js │ │ └── isValidElementTests.jsx │ └── ts/ │ ├── Component.test.tsx │ ├── VNode.test.tsx │ ├── custom-elements.tsx │ ├── dom-attributes.test-d.tsx │ ├── hoc.test.tsx │ ├── jsx-namespace.test-d.tsx │ ├── package.json │ ├── preact-global.test-d.tsx │ ├── preact.tsx │ ├── refs.tsx │ └── tsconfig.json ├── test-utils/ │ ├── package.json │ ├── src/ │ │ ├── index.d.ts │ │ └── index.js │ └── test/ │ └── shared/ │ ├── act.test.jsx │ └── rerender.test.jsx ├── types/ │ └── weak-key.d.ts ├── vitest.config.mjs └── vitest.setup.js