mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 20:38:52 +00:00
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [@chromatic-com/storybook](https://redirect.github.com/chromaui/addon-visual-tests) | [`1.7.0` -> `1.8.0`](https://renovatebot.com/diffs/npm/@chromatic-com%2fstorybook/1.7.0/1.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@commitlint/cli](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli)) | [`19.4.0` -> `19.4.1`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/19.4.0/19.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@commitlint/config-conventional](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional)) | [`19.2.2` -> `19.4.1`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/19.2.2/19.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@marsidev/react-turnstile](https://redirect.github.com/marsidev/react-turnstile) | [`1.0.0` -> `1.0.1`](https://renovatebot.com/diffs/npm/@marsidev%2freact-turnstile/1.0.0/1.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@napi-rs/simple-git](https://redirect.github.com/Brooooooklyn/simple-git) | [`0.1.18` -> `0.1.19`](https://renovatebot.com/diffs/npm/@napi-rs%2fsimple-git/0.1.18/0.1.19) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@napi-rs/simple-git](https://redirect.github.com/Brooooooklyn/simple-git) | [`0.1.18` -> `0.1.19`](https://renovatebot.com/diffs/npm/@napi-rs%2fsimple-git/0.1.18/0.1.19) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@nx/vite](https://nx.dev) ([source](https://redirect.github.com/nrwl/nx/tree/HEAD/packages/vite)) | [`19.6.2` -> `19.6.4`](https://renovatebot.com/diffs/npm/@nx%2fvite/19.6.2/19.6.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@opentelemetry/core](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fcore/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/exporter-prometheus](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`^0.52.0` -> `^0.53.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-prometheus/0.52.1/0.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/exporter-zipkin](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-zipkin) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-zipkin/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`^0.52.0` -> `^0.53.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation/0.52.1/0.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-graphql](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-graphql#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.42.0` -> `^0.43.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-graphql/0.42.0/0.43.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-http](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`^0.52.0` -> `^0.53.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-http/0.52.1/0.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-ioredis](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-ioredis#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.42.0` -> `^0.43.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-ioredis/0.42.0/0.43.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-nestjs-core](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-nestjs-core#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.39.0` -> `^0.40.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-nestjs-core/0.39.0/0.40.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/instrumentation-socket.io](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/instrumentation-socket.io#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.41.0` -> `^0.42.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-socket.io/0.41.0/0.42.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/resources](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fresources/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/sdk-metrics](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/sdk-metrics) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-metrics/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/sdk-node](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-sdk-node) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`^0.52.0` -> `^0.53.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-node/0.52.1/0.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/sdk-trace-node](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.25.1` -> `1.26.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-trace-node/1.25.1/1.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@opentelemetry/semantic-conventions](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.26.0` -> `1.27.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsemantic-conventions/1.26.0/1.27.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@prisma/client](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/client)) | [`5.18.0` -> `5.19.1`](https://renovatebot.com/diffs/npm/@prisma%2fclient/5.18.0/5.19.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@prisma/instrumentation](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/instrumentation)) | [`5.18.0` -> `5.19.1`](https://renovatebot.com/diffs/npm/@prisma%2finstrumentation/5.18.0/5.19.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@sentry/electron](https://redirect.github.com/getsentry/sentry-electron) | [`5.3.0` -> `5.4.0`](https://renovatebot.com/diffs/npm/@sentry%2felectron/5.3.0/5.4.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@sentry/esbuild-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/esbuild-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`2.22.2` -> `2.22.3`](https://renovatebot.com/diffs/npm/@sentry%2fesbuild-plugin/2.22.2/2.22.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`8.26.0` -> `8.27.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.26.0/8.27.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`8.26.0` -> `8.27.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.26.0/8.27.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@sentry/webpack-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/webpack-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`2.22.2` -> `2.22.3`](https://renovatebot.com/diffs/npm/@sentry%2fwebpack-plugin/2.22.2/2.22.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.7.14` -> `1.7.23`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.7.14/1.7.23) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@tanstack/react-table](https://tanstack.com/table) ([source](https://redirect.github.com/TanStack/table/tree/HEAD/packages/react-table)) | [`8.20.1` -> `8.20.5`](https://renovatebot.com/diffs/npm/@tanstack%2freact-table/8.20.1/8.20.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@testing-library/react](https://redirect.github.com/testing-library/react-testing-library) | [`16.0.0` -> `16.0.1`](https://renovatebot.com/diffs/npm/@testing-library%2freact/16.0.0/16.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/eslint](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/eslint) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/eslint)) | [`8.56.11` -> `8.56.12`](https://renovatebot.com/diffs/npm/@types%2feslint/8.56.11/8.56.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/mixpanel-browser](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mixpanel-browser) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mixpanel-browser)) | [`2.49.1` -> `2.50.0`](https://renovatebot.com/diffs/npm/@types%2fmixpanel-browser/2.49.1/2.50.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.16.1` -> `20.16.3`](https://renovatebot.com/diffs/npm/@types%2fnode/20.16.1/20.16.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | [`18.3.4` -> `18.3.5`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.4/18.3.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [changelogithub](https://redirect.github.com/antfu/changelogithub) | [`0.13.9` -> `0.13.10`](https://renovatebot.com/diffs/npm/changelogithub/0.13.9/0.13.10) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [commitlint](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@alias/commitlint)) | [`19.4.0` -> `19.4.1`](https://renovatebot.com/diffs/npm/commitlint/19.4.0/19.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [fast-xml-parser](https://redirect.github.com/NaturalIntelligence/fast-xml-parser) | [`4.4.1` -> `4.5.0`](https://renovatebot.com/diffs/npm/fast-xml-parser/4.4.1/4.5.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`15.0.0` -> `15.7.3`](https://renovatebot.com/diffs/npm/happy-dom/15.0.0/15.7.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [http-proxy-middleware](https://redirect.github.com/chimurai/http-proxy-middleware) | [`3.0.0` -> `3.0.1`](https://renovatebot.com/diffs/npm/http-proxy-middleware/3.0.0/3.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [jotai-effect](https://redirect.github.com/jotaijs/jotai-effect) | [`1.0.2` -> `1.0.3`](https://renovatebot.com/diffs/npm/jotai-effect/1.0.2/1.0.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [lint-staged](https://redirect.github.com/lint-staged/lint-staged) | [`15.2.9` -> `15.2.10`](https://renovatebot.com/diffs/npm/lint-staged/15.2.9/15.2.10) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.435.0` -> `^0.438.0`](https://renovatebot.com/diffs/npm/lucide-react/0.435.0/0.438.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [marked](https://marked.js.org) ([source](https://redirect.github.com/markedjs/marked)) | [`14.0.0` -> `14.1.0`](https://renovatebot.com/diffs/npm/marked/14.0.0/14.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [mixpanel-browser](https://redirect.github.com/mixpanel/mixpanel-js) | [`2.55.0` -> `2.55.1`](https://renovatebot.com/diffs/npm/mixpanel-browser/2.55.0/2.55.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [msw](https://mswjs.io) ([source](https://redirect.github.com/mswjs/msw)) | [`2.3.5` -> `2.4.1`](https://renovatebot.com/diffs/npm/msw/2.3.5/2.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [nestjs-throttler-storage-redis](https://redirect.github.com/kkoomen/nestjs-throttler-storage-redis) | [`0.5.0` -> `0.5.1`](https://renovatebot.com/diffs/npm/nestjs-throttler-storage-redis/0.5.0/0.5.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [nx](https://nx.dev) ([source](https://redirect.github.com/nrwl/nx/tree/HEAD/packages/nx)) | [`19.6.2` -> `19.6.4`](https://renovatebot.com/diffs/npm/nx/19.6.2/19.6.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [openai](https://redirect.github.com/openai/openai-node) | [`4.56.0` -> `4.57.0`](https://renovatebot.com/diffs/npm/openai/4.56.0/4.57.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [postcss](https://postcss.org/) ([source](https://redirect.github.com/postcss/postcss)) | [`8.4.41` -> `8.4.44`](https://renovatebot.com/diffs/npm/postcss/8.4.41/8.4.44) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [prisma](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/cli)) | [`5.18.0` -> `5.19.1`](https://renovatebot.com/diffs/npm/prisma/5.18.0/5.19.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [react-hook-form](https://www.react-hook-form.com) ([source](https://redirect.github.com/react-hook-form/react-hook-form)) | [`7.52.2` -> `7.53.0`](https://renovatebot.com/diffs/npm/react-hook-form/7.52.2/7.53.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [react-resizable-panels](https://redirect.github.com/bvaughn/react-resizable-panels) | [`2.1.1` -> `2.1.2`](https://renovatebot.com/diffs/npm/react-resizable-panels/2.1.1/2.1.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [react-virtuoso](https://virtuoso.dev/) ([source](https://redirect.github.com/petyosi/react-virtuoso)) | [`4.10.1` -> `4.10.2`](https://renovatebot.com/diffs/npm/react-virtuoso/4.10.1/4.10.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | `1.0.208` -> `1.0.209` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [serde_json](https://redirect.github.com/serde-rs/json) | `1.0.125` -> `1.0.127` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [ses](https://redirect.github.com/Agoric/SES-shim/tree/master/packages/ses#readme) ([source](https://redirect.github.com/endojs/endo/tree/HEAD/packages/ses)) | [`1.7.0` -> `1.8.0`](https://renovatebot.com/diffs/npm/ses/1.7.0/1.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [shadcn-ui](https://redirect.github.com/shadcn/ui) ([source](https://redirect.github.com/shadcn/ui/tree/HEAD/packages/cli)) | [`^0.8.0` -> `^0.9.0`](https://renovatebot.com/diffs/npm/shadcn-ui/0.8.0/0.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [slackapi/slack-github-action](https://redirect.github.com/slackapi/slack-github-action) | `v1.26.0` -> `v1.27.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | action | minor | | [storybook-dark-mode](https://redirect.github.com/hipstersmoothie/storybook-dark-mode) | [`4.0.1` -> `4.0.2`](https://renovatebot.com/diffs/npm/storybook-dark-mode/4.0.1/4.0.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [stripe](https://redirect.github.com/stripe/stripe-node) | [`16.8.0` -> `16.9.0`](https://renovatebot.com/diffs/npm/stripe/16.8.0/16.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | `1.39.3` -> `1.40.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dev-dependencies | minor | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | `1.39.3` -> `1.40.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | minor | | [vite-plugin-dts](https://redirect.github.com/qmhc/vite-plugin-dts) | [`4.0.3` -> `4.1.0`](https://renovatebot.com/diffs/npm/vite-plugin-dts/4.0.3/4.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [vitest-mock-extended](https://redirect.github.com/eratio08/vitest-mock-extended) | [`2.0.0` -> `2.0.2`](https://renovatebot.com/diffs/npm/vitest-mock-extended/2.0.0/2.0.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`3.72.2` -> `3.73.0`](https://renovatebot.com/diffs/npm/wrangler/3.72.2/3.73.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [yarn](https://redirect.github.com/yarnpkg/berry) ([source](https://redirect.github.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-cli)) | [`4.4.0` -> `4.4.1`](https://renovatebot.com/diffs/npm/yarn/4.4.0/4.4.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | packageManager | patch | --- ### Release Notes <details> <summary>chromaui/addon-visual-tests (@​chromatic-com/storybook)</summary> ### [`v1.8.0`](https://redirect.github.com/chromaui/addon-visual-tests/blob/HEAD/CHANGELOG.md#v180-Thu-Aug-29-2024) [Compare Source](https://redirect.github.com/chromaui/addon-visual-tests/compare/v1.7.0...v1.8.0) ##### 🚀 Enhancement - Add `paramKey: "chromatic"` to allow disabling the VTA panel through story parameters [#​334](https://redirect.github.com/chromaui/addon-visual-tests/pull/334) ([@​mellm0](https://redirect.github.com/mellm0)) ##### Authors: 1 - Mell (
345 lines
10 KiB
TypeScript
345 lines
10 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2018 Google LLC
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
import type React from 'react';
|
|
|
|
const DEV_MODE = process.env.NODE_ENV !== 'production';
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
type DistributiveOmit<T, K extends string | number | symbol> = T extends any
|
|
? K extends keyof T
|
|
? Omit<T, K>
|
|
: T
|
|
: T;
|
|
type PropsWithoutRef<T> = DistributiveOmit<T, 'ref'>;
|
|
|
|
/**
|
|
* Creates a type to be used for the props of a web component used directly in
|
|
* React JSX.
|
|
*
|
|
* Example:
|
|
*
|
|
* ```ts
|
|
* declare module "react" {
|
|
* namespace JSX {
|
|
* interface IntrinsicElements {
|
|
* 'x-foo': WebComponentProps<XFoo>;
|
|
* }
|
|
* }
|
|
* }
|
|
* ```
|
|
*/
|
|
export type WebComponentProps<I extends HTMLElement> = React.DetailedHTMLProps<
|
|
React.HTMLAttributes<I>,
|
|
I
|
|
> &
|
|
ElementProps<I>;
|
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
type EmptyObject = {};
|
|
|
|
/**
|
|
* Type of the React component wrapping the web component. This is the return
|
|
* type of `createComponent`.
|
|
*/
|
|
export type ReactWebComponent<
|
|
I extends HTMLElement,
|
|
E extends EventNames = EmptyObject,
|
|
> = React.ForwardRefExoticComponent<
|
|
// TODO(augustjk): Remove and use `React.PropsWithoutRef` when
|
|
// https://github.com/preactjs/preact/issues/4124 is fixed.
|
|
PropsWithoutRef<ComponentProps<I, E>> & React.RefAttributes<I>
|
|
>;
|
|
|
|
// Props derived from custom element class. Currently has limitations of making
|
|
// all properties optional and also surfaces life cycle methods in autocomplete.
|
|
// TODO(augustjk) Consider omitting keyof LitElement to remove "internal"
|
|
// lifecycle methods or allow user to explicitly provide props.
|
|
type ElementProps<I> = Partial<Omit<I, keyof HTMLElement>>;
|
|
|
|
// Acceptable props to the React component.
|
|
type ComponentProps<I, E extends EventNames = EmptyObject> = Omit<
|
|
React.HTMLAttributes<I>,
|
|
// Prefer type of provided event handler props or those on element over
|
|
// built-in HTMLAttributes
|
|
keyof E | keyof ElementProps<I>
|
|
> &
|
|
EventListeners<E> &
|
|
ElementProps<I>;
|
|
|
|
/**
|
|
* Type used to cast an event name with an event type when providing the
|
|
* `events` option to `createComponent` for better typing of the event handler
|
|
* prop.
|
|
*
|
|
* Example:
|
|
*
|
|
* ```ts
|
|
* const FooComponent = createComponent({
|
|
* ...
|
|
* events: {
|
|
* onfoo: 'foo' as EventName<FooEvent>,
|
|
* }
|
|
* });
|
|
* ```
|
|
*
|
|
* `onfoo` prop will have the type `(e: FooEvent) => void`.
|
|
*/
|
|
export type EventName<T extends Event = Event> = string & {
|
|
__eventType: T;
|
|
};
|
|
|
|
// A key value map matching React prop names to event names.
|
|
type EventNames = Record<string, EventName | string>;
|
|
|
|
// A map of expected event listener types based on EventNames.
|
|
type EventListeners<R extends EventNames> = {
|
|
[K in keyof R]?: R[K] extends EventName
|
|
? (e: R[K]['__eventType']) => void
|
|
: (e: Event) => void;
|
|
};
|
|
|
|
export interface Options<
|
|
I extends HTMLElement,
|
|
E extends EventNames = EmptyObject,
|
|
> {
|
|
react: typeof React;
|
|
tagName?: string; // default to `div`
|
|
elementClass: Constructor<I>;
|
|
events?: E;
|
|
displayName?: string;
|
|
}
|
|
|
|
type Constructor<T> = { new (): T };
|
|
|
|
const reservedReactProperties = new Set([
|
|
'children',
|
|
'localName',
|
|
'ref',
|
|
'style',
|
|
'className',
|
|
]);
|
|
|
|
const listenedEvents = new WeakMap<Element, Map<string, EventListenerObject>>();
|
|
|
|
/**
|
|
* Adds an event listener for the specified event to the given node. In the
|
|
* React setup, there should only ever be one event listener. Thus, for
|
|
* efficiency only one listener is added and the handler for that listener is
|
|
* updated to point to the given listener function.
|
|
*/
|
|
const addOrUpdateEventListener = (
|
|
node: Element,
|
|
event: string,
|
|
listener: (event?: Event) => void
|
|
) => {
|
|
let events = listenedEvents.get(node);
|
|
if (events === undefined) {
|
|
listenedEvents.set(node, (events = new Map()));
|
|
}
|
|
let handler = events.get(event);
|
|
if (listener !== undefined) {
|
|
// If necessary, add listener and track handler
|
|
if (handler === undefined) {
|
|
events.set(event, (handler = { handleEvent: listener }));
|
|
node.addEventListener(event, handler);
|
|
// Otherwise just update the listener with new value
|
|
} else {
|
|
handler.handleEvent = listener;
|
|
}
|
|
// Remove listener if one exists and value is undefined
|
|
} else if (handler !== undefined) {
|
|
events.delete(event);
|
|
node.removeEventListener(event, handler);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Sets properties and events on custom elements. These properties and events
|
|
* have been pre-filtered so we know they should apply to the custom element.
|
|
*/
|
|
const setProperty = <E extends Element>(
|
|
node: E,
|
|
name: string,
|
|
value: unknown,
|
|
old: unknown,
|
|
events?: EventNames
|
|
) => {
|
|
const event = events?.[name];
|
|
// Dirty check event value.
|
|
if (event !== undefined && value !== old) {
|
|
addOrUpdateEventListener(node, event, value as (e?: Event) => void);
|
|
return;
|
|
}
|
|
// But don't dirty check properties; elements are assumed to do this.
|
|
node[name as keyof E] = value as E[keyof E];
|
|
|
|
// This block is to replicate React's behavior for attributes of native
|
|
// elements where `undefined` or `null` values result in attributes being
|
|
// removed.
|
|
// https://github.com/facebook/react/blob/899cb95f52cc83ab5ca1eb1e268c909d3f0961e7/packages/react-dom-bindings/src/client/DOMPropertyOperations.js#L107-L141
|
|
//
|
|
// It's only needed here for native HTMLElement properties that reflect
|
|
// attributes of the same name but don't have that behavior like "id" or
|
|
// "draggable".
|
|
if (
|
|
(value === undefined || value === null) &&
|
|
name in HTMLElement.prototype
|
|
) {
|
|
node.removeAttribute(name);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Creates a React component for a custom element. Properties are distinguished
|
|
* from attributes automatically, and events can be configured so they are added
|
|
* to the custom element as event listeners.
|
|
*
|
|
* note from pengx17:
|
|
* This is a workaround for https://github.com/lit/lit/issues/4435
|
|
*
|
|
* Instead of directly using tag names of the custom elements, we create instance and then
|
|
* append to the container instead. An issue in this workaround is that the custom element
|
|
* will always be wrapped in an additional tag (the container, e.g. a div).
|
|
*
|
|
* @param options An options bag containing the parameters needed to generate a
|
|
* wrapped web component.
|
|
*
|
|
* @param options.react The React module, typically imported from the `react`
|
|
* npm package.
|
|
* @param options.tagName The custom element tag name registered via
|
|
* `customElements.define`.
|
|
* @param options.elementClass The custom element class registered via
|
|
* `customElements.define`.
|
|
* @param options.events An object listing events to which the component can
|
|
* listen. The object keys are the event property names passed in via React
|
|
* props and the object values are the names of the corresponding events
|
|
* generated by the custom element. For example, given `{onactivate:
|
|
* 'activate'}` an event function may be passed via the component's `onactivate`
|
|
* prop and will be called when the custom element fires its `activate` event.
|
|
* @param options.displayName A React component display name, used in debugging
|
|
* messages. Default value is inferred from the name of custom element class
|
|
* registered via `customElements.define`.
|
|
*/
|
|
export const createComponent = <
|
|
I extends HTMLElement,
|
|
E extends EventNames = EmptyObject,
|
|
>({
|
|
react: React,
|
|
tagName = 'div',
|
|
elementClass,
|
|
events,
|
|
displayName,
|
|
}: Options<I, E>): ReactWebComponent<I, E> => {
|
|
const eventProps = new Set(Object.keys(events ?? {}));
|
|
|
|
if (DEV_MODE) {
|
|
for (const p of reservedReactProperties) {
|
|
if (p in elementClass.prototype && !(p in HTMLElement.prototype)) {
|
|
// Note, this effectively warns only for `ref` since the other
|
|
// reserved props are on HTMLElement.prototype. To address this
|
|
// would require crawling down the prototype, which doesn't feel worth
|
|
// it since implementing these properties on an element is extremely
|
|
// rare.
|
|
console.warn(
|
|
`${tagName} contains property ${p} which is a React reserved ` +
|
|
`property. It will be used by React and not set on the element.`
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
type Props = ComponentProps<I, E>;
|
|
|
|
const ReactComponent = React.forwardRef<I, Props>((props, ref) => {
|
|
const containerRef = React.useRef<HTMLElement | null>(null);
|
|
const prevPropsRef = React.useRef<React.PropsWithoutRef<Props> | null>(
|
|
null
|
|
);
|
|
const elementRef = React.useRef<I | null>(null);
|
|
|
|
// Props to be passed to React.createElement
|
|
const reactProps: Record<string, unknown> = {
|
|
'data-lit-react-wrapper': elementClass.name,
|
|
};
|
|
const elementProps: Record<string, unknown> = {};
|
|
|
|
if (elementRef.current === null) {
|
|
const element = new elementClass();
|
|
elementRef.current = element;
|
|
if (typeof ref === 'function') {
|
|
ref(elementRef.current);
|
|
} else if (ref) {
|
|
ref.current = element;
|
|
}
|
|
}
|
|
|
|
const element = elementRef.current;
|
|
|
|
for (const [k, v] of Object.entries(props)) {
|
|
if (reservedReactProperties.has(k)) {
|
|
reactProps[k] = v;
|
|
continue;
|
|
}
|
|
|
|
if (eventProps.has(k) || k in elementClass.prototype) {
|
|
elementProps[k] = v;
|
|
continue;
|
|
}
|
|
|
|
reactProps[k] = v;
|
|
}
|
|
|
|
// This one has no dependency array so it'll run on every re-render.
|
|
React.useLayoutEffect(() => {
|
|
if (elementRef.current === null) {
|
|
return;
|
|
}
|
|
for (const prop in elementProps) {
|
|
setProperty(
|
|
elementRef.current,
|
|
prop,
|
|
// @ts-expect-error: prop is a key of props
|
|
props[prop],
|
|
// @ts-expect-error: prop is a key of props
|
|
prevPropsRef.current ? prevPropsRef.current[prop] : undefined,
|
|
events
|
|
);
|
|
}
|
|
// Note, the spirit of React might be to "unset" any old values that
|
|
// are no longer included; however, there's no reasonable value to set
|
|
// them to so we just leave the previous state as is.
|
|
|
|
prevPropsRef.current = props;
|
|
});
|
|
|
|
React.useLayoutEffect(() => {
|
|
const container = containerRef.current;
|
|
if (!container) {
|
|
return;
|
|
}
|
|
container.append(element);
|
|
return () => {
|
|
element.remove();
|
|
};
|
|
}, [element]);
|
|
|
|
return React.createElement(tagName, {
|
|
...reactProps,
|
|
ref: React.useCallback(
|
|
(node: HTMLElement) => {
|
|
containerRef.current = node;
|
|
},
|
|
[containerRef]
|
|
),
|
|
});
|
|
});
|
|
|
|
ReactComponent.displayName = displayName ?? elementClass.name;
|
|
|
|
return ReactComponent;
|
|
};
|