diff --git a/apify-docs-theme/package.json b/apify-docs-theme/package.json index e4fefb9d44..e068246077 100644 --- a/apify-docs-theme/package.json +++ b/apify-docs-theme/package.json @@ -25,7 +25,7 @@ "dependencies": { "@apify/docs-search-modal": "^1.3.3", "@apify/ui-icons": "^1.19.0", - "@apify/ui-library": "^1.97.2", + "@apify/ui-library": "^1.151.0", "@docusaurus/theme-common": "^3.7.0", "@stackql/docusaurus-plugin-hubspot": "^1.1.0", "algoliasearch": "^5.19.0", diff --git a/apify-docs-theme/src/theme/Root.jsx b/apify-docs-theme/src/theme/Root.jsx new file mode 100644 index 0000000000..2a2be08942 --- /dev/null +++ b/apify-docs-theme/src/theme/Root.jsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { cssColorsVariablesBrandDark } from '@apify/ui-library'; + +// Only the brand dark tokens are injected - the ui-library light tokens shift +// the palette from the current design, so light mode keeps its existing colors. +// Same approach as apify-blog-theme#223. +export default function Root({ children }) { + return ( + <> + + {children} + + ); +} diff --git a/apify-docs-theme/src/theme/custom.css b/apify-docs-theme/src/theme/custom.css index e13fbed652..b268232d7d 100644 --- a/apify-docs-theme/src/theme/custom.css +++ b/apify-docs-theme/src/theme/custom.css @@ -1,130 +1,77 @@ @import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;600;700&display=swap'); html[data-theme='dark'] { - --ifm-navbar-background-color: #1a1b23; - --ifm-background-color: #1a1b23; - --ifm-background-surface-color: #242736; + --ifm-navbar-background-color: var(--color-neutral-background-muted); + --ifm-background-color: var(--color-neutral-background); + --ifm-background-surface-color: var(--color-neutral-background-subtle); - --ifm-font-color-base: #f2f3fb; + --ifm-font-color-base: var(--color-neutral-text); - --ifm-pre-background: #242736; + --ifm-pre-background: var(--color-neutral-background-subtle); - --ifm-color-primary: #5d9df1; - --ifm-link-color: #5d9df1; - --ifm-heading-color: #f2f3fb; - --ifm-navbar-link-color: #f2f3fb; + --ifm-color-primary: var(--color-primary-action); + --ifm-link-color: var(--color-primary-text-interactive); + --ifm-heading-color: var(--color-neutral-text); + --ifm-navbar-link-color: var(--color-neutral-text); --ifm-line-height-base: 1.65; --ifm-code-background: var(--ifm-pre-background) !important; - --ifm-footer-title-color: #f2f3fb; - --ifm-footer-link-color: #8d92af; + --ifm-footer-title-color: var(--color-neutral-text); + --ifm-footer-link-color: var(--color-neutral-text-muted); --docusaurus-highlighted-code-line-bg: rgba(255, 255, 255, 0.1); - --docsearch-text-color: #8d92af; + --docsearch-text-color: var(--color-neutral-text-muted); /* TRON colors */ - --color-Neutral_Text: #f3f4fa; - --color-Neutral_TextMuted: #b0b8d1; - --color-Neutral_Border: #d1d5e4; - --color-Neutral_Hover: #2a2d39; - --color-Neutral_Background: #1a1b21; - --color-Neutral_BackgroundMuted: #252832; - --color-Neutral_ChipBackground: #555d76; - --color-Neutral_ChipBackgroundActive: #8c93a8; - --color-Neutral_SeparatorSubtle: #31384d; - --color-Primary_ChipText: #8ebcff; - --color-Primary_ChipBackground: #1a3a78; - --color-Primary_TextInteractive: #6f9dff; - - /* EXPERIMENT: tokens for shared components */ - --color-neutral-text: #f3f4fa; - --color-neutral-text-muted: #b2b8cc; - --color-neutral-text-subtle: #8c93a8; - --color-neutral-text-disabled: #575d71; - --color-neutral-text-on-primary: #1a1b21; - --color-neutral-icon-on-primary: #1a1b21; - --color-neutral-background: #1a1b21; - --color-neutral-background-muted: #252832; - --color-neutral-background-subtle: #2a2d39; - --color-neutral-background-white: #f3f4fa; - --color-neutral-card-background: #1e2027; - --color-neutral-border: #414758; - --color-neutral-separator-subtle: #343847; - --color-neutral-hover: #2d313e; - --color-neutral-disabled: #343847; - --color-neutral-overflow: #2a2d39; - --color-neutral-icon: #b2b8cc; - --color-neutral-icon-subtle: #6e758a; - --color-neutral-icon-disabled: #575d71; - --color-neutral-field-border: #343847; - --color-neutral-action-secondary: #575d71; - --color-neutral-action-secondary-hover: #6e758a; - --color-neutral-action-secondary-active: #343847; - --color-neutral-chip-background: #575d71; - --color-neutral-chip-background-hover: #6e758a; - --color-neutral-chip-background-active: #8c93a8; - --color-neutral-chip-background-disabled: #8c93a8; - --color-neutral-large-tooltip-background: #2a2d39; - --color-neutral-large-tooltip-border: #343847; - --color-neutral-small-tooltip-background: #1a1b21; - --color-neutral-small-tooltip-border: #252832; - --color-neutral-overlay: #101114cc; - --color-neutral-field-background: #101114; - --color-neutral-text-placeholder: #6e758a; - --color-primary-text: #6f9dff; - --color-primary-text-interactive: #6f9dff; - --color-primary-icon: #3970d7; - --color-primary-action: #5990ff; - --color-primary-action-hover: #80a9ff; - --color-primary-action-active: #3970d7; - --color-primary-black-action: #ffffff; - --color-primary-black-action-hover: #d1d5e4; - --color-primary-black-action-active: #f3f4fa; - --color-primary-field-border-active: #3970d7; - --color-primary-chip-background: #1a3a78; - --color-primary-chip-background-hover: #194594; - --color-primary-chip-text: #8ebcff; - --color-primary-shadow-active: #295cbb; - --color-success-text: #3bb358; - --color-success-icon: #23a64a; - --color-success-background-subtle: #0f2b14; - --color-success-background-subtle-hover: #14441f; - --color-success-background-subtle-active: #006e29; - --color-success-border: #068a35; - --color-success-border-subtle: #006e29; - --color-success-action: #23a64a; - --color-success-action-hover: #3bb358; - --color-success-action-active: #068a35; - --color-success-chip-background: #14441f; - --color-success-chip-background-hover: #00531e; - --color-success-chip-text: #6ccd7c; - --color-warning-text: #f9ce4b; - --color-warning-icon: #f5bc38; - --color-warning-background-subtle: #3f1b07; - --color-warning-border-subtle: #8a4f05; - --color-warning-field-border: #cf9117; - --color-warning-chip-background: #5d2e0e; - --color-warning-chip-background-hover: #6d3806; - --color-warning-chip-text: #f9ce4b; - --color-danger-text: #ff7157; - --color-danger-icon: #ef6045; - --color-danger-background-subtle: #40191b; - --color-danger-background-subtle-hover: #672523; - --color-danger-background-subtle-active: #aa3229; - --color-danger-border: #cf4436; - --color-danger-border-subtle: #aa3229; - --color-danger-field-border: #ef6045; - --color-danger-action: #ef6045; - --color-danger-action-hover: #ff7157; - --color-danger-action-active: #cf4436; - --color-danger-chip-background: #672523; - --color-danger-chip-background-hover: #812420; - --color-danger-chip-text: #fe9e8a; - --button-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 100%); + --color-Neutral_Text: var(--color-neutral-text); + --color-Neutral_TextMuted: var(--color-neutral-text-muted); + --color-Neutral_Border: var(--color-neutral-border); + --color-Neutral_Hover: var(--color-neutral-hover); + --color-Neutral_Background: var(--color-neutral-background); + --color-Neutral_BackgroundMuted: var(--color-neutral-background-muted); + --color-Neutral_ChipBackground: var(--color-neutral-chip-background); + --color-Neutral_ChipBackgroundActive: var(--color-neutral-chip-background-active); + --color-Neutral_SeparatorSubtle: var(--color-neutral-separator-subtle); + --color-Primary_ChipText: var(--color-primary-chip-text); + --color-Primary_ChipBackground: var(--color-primary-chip-background); + --color-Primary_TextInteractive: var(--color-primary-text-interactive); } :root { + /* + * Light-mode color tokens. The ui-library light token set is not injected + * (its palette shifts from the current design and its card hover color is + * broken - identical to the card background), so light values are pinned + * here. Dark mode gets its tokens from cssColorsVariablesBrandDark, + * injected in Root.jsx, which overrides these. + */ + --color-neutral-background: #ffffff; + --color-neutral-background-muted: #f9f9fa; + --color-neutral-background-subtle: #f4f4f5; + --color-neutral-border: #d2d3d6; + --color-neutral-card-background: #ffffff; + --color-neutral-card-background-hover: #f1f2f7; + --color-neutral-chip-background: #e4e5e6; + --color-neutral-chip-background-active: #c9cbcf; + --color-neutral-field-border: #c9cbcf; + --color-neutral-hover: #edeeef; + --color-neutral-icon: #4f5257; + --color-neutral-overflow: #e4e5e6; + --color-neutral-separator-subtle: #e4e5e6; + --color-neutral-text: #1f2123; + --color-neutral-text-muted: #3d3f43; + --color-neutral-text-on-primary: #ffffff; + --color-neutral-text-placeholder: #a9acb1; + --color-neutral-text-subtle: #6d7178; + --color-primary-action: #246dff; + --color-primary-action-hover: #4788ff; + --color-primary-black-action: #242528; + --color-primary-black-action-hover: #292b2e; + --color-primary-chip-background: #e0ebff; + --color-primary-chip-text: #0043ca; + --color-primary-text-interactive: #246dff; + /* use default system font based on https://devhints.io/css-system-font-stack */ --ifm-font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', @@ -135,6 +82,7 @@ html[data-theme='dark'] { --ifm-list-item-margin: 0.4rem !important; --ifm-list-left-padding: 3.2rem !important; --ifm-font-weight-semibold: 600; + --ifm-background-color: var(--color-neutral-background); --ifm-font-color-base: #242736; --ifm-navbar-sidebar-width: 100vw; @@ -187,105 +135,22 @@ html[data-theme='dark'] { --ifm-h5-font-size: 1.4rem; --ifm-h6-font-size: 1.2rem; + /* Override package's identical light-mode card hover color */ + --color-neutral-card-background-hover: var(--color-neutral-hover); + /* TRON colors */ - --color-Neutral_Text: #242836; - --color-Neutral_TextMuted: #3f475d; - --color-Neutral_Border: #d0d5e9; - --color-Neutral_Hover: #f3f4fa; - --color-Neutral_Background: #ffffff; - --color-Neutral_BackgroundMuted: #f8f9fc; - --color-Neutral_ChipBackground: #e0e3f2; - --color-Neutral_ChipBackgroundActive: #c1c6dd; - --color-Neutral_SeparatorSubtle: #e0e3f2; - --color-Primary_ChipText: #1a57da; - --color-Primary_ChipBackground: #e1eaff; - --color-Primary_TextInteractive: #3970d7; - - /* EXPERIMENT: tokens for shared components */ - --color-neutral-text: #242836; - --color-neutral-text-muted: #3f475d; - --color-neutral-text-subtle: #6c7590; - --color-neutral-text-disabled: #c0c6de; - --color-neutral-text-on-primary: #ffffff; - --color-neutral-icon-on-primary: #ffffff; - --color-neutral-background: #ffffff; - --color-neutral-background-muted: #f8f9fc; - --color-neutral-background-subtle: #f3f4fa; - --color-neutral-background-white: #ffffff; - --color-neutral-card-background: #ffffff; - --color-neutral-border: #d0d5e9; - --color-neutral-separator-subtle: #e0e3f2; - --color-neutral-hover: #eef0f8; - --color-neutral-disabled: #f3f4fa; - --color-neutral-overflow: #e0e3f2; - --color-neutral-icon: #555d76; - --color-neutral-icon-subtle: #8a93ae; - --color-neutral-icon-disabled: #b0b8d1; - --color-neutral-field-border: #c0c6de; - --color-neutral-action-secondary: #d0d5e9; - --color-neutral-action-secondary-hover: #e0e3f2; - --color-neutral-action-secondary-active: #c0c6de; - --color-neutral-chip-background: #e0e3f2; - --color-neutral-chip-background-hover: #d0d5e9; - --color-neutral-chip-background-active: #c0c6de; - --color-neutral-chip-background-disabled: #d0d5e9; - --color-neutral-large-tooltip-background: #ffffff; - --color-neutral-large-tooltip-border: #e0e3f2; - --color-neutral-small-tooltip-background: #191b22; - --color-neutral-small-tooltip-border: #242836; - --color-neutral-overlay: #191b2280; - --color-neutral-field-background: #f8f9fc; - --color-neutral-text-placeholder: #969eb8; - --color-primary-text: #1672eb; - --color-primary-text-interactive: #1672eb; - --color-primary-icon: #1672eb; - --color-primary-action: #1672eb; - --color-primary-action-hover: #5290f9; - --color-primary-action-active: #1a57da; - --color-primary-black-action: #272d3e; - --color-primary-black-action-hover: #2b3143; - --color-primary-black-action-active: #0a0b0f; - --color-primary-field-border-active: #1672eb; - --color-primary-chip-background: #e1eaff; - --color-primary-chip-background-hover: #d8e2ff; - --color-primary-chip-text: #1a57da; - --color-primary-shadow-active: #b2c6ff; - --color-success-text: #008a27; - --color-success-icon: #008a27; - --color-success-background-subtle: #e4f5e5; - --color-success-background-subtle-hover: #cfe9d1; - --color-success-background-subtle-active: #80da8d; - --color-success-border: #00ab46; - --color-success-border-subtle: #80da8d; - --color-success-action: #008a27; - --color-success-action-hover: #00ab46; - --color-success-action-active: #086e08; - --color-success-chip-background: #daefdc; - --color-success-chip-background-hover: #cfe9d1; - --color-success-chip-text: #086e08; - --color-warning-text: #a96600; - --color-warning-icon: #f5b315; - --color-warning-background-subtle: #f9f0db; - --color-warning-border-subtle: #f5b315; - --color-warning-field-border: #f5b315; - --color-warning-chip-background: #f7e8c4; - --color-warning-chip-background-hover: #f7dfb1; - --color-warning-chip-text: #8c4e02; - --color-danger-text: #e3231d; - --color-danger-icon: #e3231d; - --color-danger-background-subtle: #fff0ec; - --color-danger-background-subtle-hover: #fedad1; - --color-danger-background-subtle-active: #ffb39f; - --color-danger-border: #fa4d37; - --color-danger-border-subtle: #ffb39f; - --color-danger-field-border: #fa4d37; - --color-danger-action: #e3231d; - --color-danger-action-hover: #fa4d37; - --color-danger-action-active: #bb0401; - --color-danger-chip-background: #ffe3dc; - --color-danger-chip-background-hover: #fedad1; - --color-danger-chip-text: #bb0401; - --button-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 100%); + --color-Neutral_Text: var(--color-neutral-text); + --color-Neutral_TextMuted: var(--color-neutral-text-muted); + --color-Neutral_Border: var(--color-neutral-border); + --color-Neutral_Hover: var(--color-neutral-hover); + --color-Neutral_Background: var(--color-neutral-background); + --color-Neutral_BackgroundMuted: var(--color-neutral-background-muted); + --color-Neutral_ChipBackground: var(--color-neutral-chip-background); + --color-Neutral_ChipBackgroundActive: var(--color-neutral-chip-background-active); + --color-Neutral_SeparatorSubtle: var(--color-neutral-separator-subtle); + --color-Primary_ChipText: var(--color-primary-chip-text); + --color-Primary_ChipBackground: var(--color-primary-chip-background); + --color-Primary_TextInteractive: var(--color-primary-text-interactive); } @font-face { @@ -469,6 +334,7 @@ footer .col { .navbar__sub { padding: 0.8rem var(--ifm-spacing-horizontal); + background: var(--color-neutral-background-muted); height: 58px; } @@ -613,7 +479,7 @@ aside .icon svg[class*='iconExternalLink'] { margin-right: 1.6rem; padding-right: 2rem; position: relative; - border-right: 1px solid var(--color-Neutral_SeparatorSubtle); + border-right: 1px solid var(--color-neutral-border); justify-content: center; } @@ -914,12 +780,12 @@ html .plugin-docs .theme-doc-markdown h3 { html[data-theme='dark'] .theme-doc-sidebar-menu .menu__link, html[data-theme='dark'] .theme-doc-toc-desktop .table-of-contents .toc-highlight { - color: #b3b8d2; + color: var(--color-neutral-text); } html[data-theme='dark'] .theme-doc-sidebar-menu .menu__link--active, html[data-theme='dark'] .theme-doc-toc-desktop .table-of-contents .table-of-contents__link--active { - color: #f2f3fb; + color: var(--color-neutral-text); } .theme-doc-sidebar-menu .menu__link--active, diff --git a/package.json b/package.json index e1f1feb8eb..eeb5c71677 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ }, "dependencies": { "@apify/ui-icons": "^1.26.0", - "@apify/ui-library": "^1.131.1", + "@apify/ui-library": "^1.151.0", "@docusaurus/core": "~3.9.2", "@docusaurus/faster": "~3.9.2", "@docusaurus/plugin-client-redirects": "~3.9.2", @@ -92,7 +92,6 @@ "raw-loader": "^4.0.2", "react": "^19.1.0", "react-dom": "^19.1.0", - "react-github-btn": "^1.4.0", "styled-components": "^6.4.1", "unist-util-visit": "^5.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5775f060d0..831a3e9397 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -226,8 +226,8 @@ importers: specifier: ^1.26.0 version: 1.34.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@apify/ui-library': - specifier: ^1.131.1 - version: 1.132.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + specifier: ^1.151.0 + version: 1.151.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@docusaurus/core': specifier: ~3.9.2 version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(supports-color@5.5.0)(typescript@6.0.2) @@ -291,9 +291,6 @@ importers: react-dom: specifier: ^19.1.0 version: 19.2.5(react@19.2.5) - react-github-btn: - specifier: ^1.4.0 - version: 1.4.0(react@19.2.5) styled-components: specifier: ^6.4.1 version: 6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -359,8 +356,8 @@ importers: specifier: ^1.19.0 version: 1.34.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@apify/ui-library': - specifier: ^1.97.2 - version: 1.132.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.2(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + specifier: ^1.151.0 + version: 1.151.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.2(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@docusaurus/theme-common': specifier: ^3.7.0 version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -586,6 +583,12 @@ packages: react: 17.x || 18.x || 19.x react-dom: 17.x || 18.x || 19.x + '@apify/ui-icons@1.47.0': + resolution: {integrity: sha512-Yzm6NYFa8SmKE5e6bH21dCtoBWFGwGwRPTEADQlKGVwuvPM+UImUy0CAj3aKC8ptm6CkY+NKuIpZNYUiGPQSsw==} + peerDependencies: + react: 17.x || 18.x || 19.x + react-dom: 17.x || 18.x || 19.x + '@apify/ui-library@1.132.1': resolution: {integrity: sha512-hjo3B0bN0c/W4RCRQQi+F3sb1TbsN4coV4uNRRD4iHHDOpcRHZJFVS0DzdPfZi+DDqtRp4f6/ejF2bprw9kInw==} peerDependencies: @@ -593,6 +596,13 @@ packages: react-dom: 17.x || 18.x || 19.x styled-components: ^6.1.19 + '@apify/ui-library@1.151.0': + resolution: {integrity: sha512-bsLRGY08fsvXfQ8j8fbVvyGEM6JPVemjfbttyfVvWEo8FoIHtCVsEgiRBUvWHUb/izJQjW4nvqQAzo+TBVt+sA==} + peerDependencies: + react: 17.x || 18.x || 19.x + react-dom: 17.x || 18.x || 19.x + styled-components: ^6.1.19 + '@asyncapi/specs@6.11.1': resolution: {integrity: sha512-A3WBLqAKGoJ2+6FWFtpjBlCQ1oFCcs4GxF7zsIGvNqp/klGUHjlA3aAcZ9XMMpLGE8zPeYDz2x9FmO6DSuKraQ==} @@ -2847,6 +2857,22 @@ packages: '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@radix-ui/primitive@1.1.4': + resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==} + + '@radix-ui/react-arrow@1.1.10': + resolution: {integrity: sha512-j2VTDz1vgCsmuG0k5lBfOcM8n5JPFqZBcMryasFjHYMhwxYL5SRUV5lMSUpRdNtw3D/Sv8pzJtrlAgkssYSsQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-checkbox@1.3.3': resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} peerDependencies: @@ -2873,6 +2899,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-collection@1.1.10': + resolution: {integrity: sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-compose-refs@1.1.2': resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: @@ -2882,6 +2921,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-compose-refs@1.1.3': + resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-context@1.1.2': resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: @@ -2891,6 +2939,72 @@ packages: '@types/react': optional: true + '@radix-ui/react-context@1.1.4': + resolution: {integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-direction@1.1.2': + resolution: {integrity: sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.13': + resolution: {integrity: sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.18': + resolution: {integrity: sha512-PZGV82gFk0WltDRI//SsG28ZIjlo9ANTmoNYg0jLNzXXiDsAy5PkOOYQaVD1pPxY6t7gxffb1QMD6qaUvsBZdw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.4': + resolution: {integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.10': + resolution: {integrity: sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-id@1.1.1': resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: @@ -2900,6 +3014,54 @@ packages: '@types/react': optional: true + '@radix-ui/react-id@1.1.2': + resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-menu@2.1.18': + resolution: {integrity: sha512-lj8Rxjtn6zJq1oSbE/uDtAwCbB9BnxgHD+8MwJMuTh6u1dPamYhW9iuELr/Z8d0D/UysFblYYHeBPwi7T4k0YQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.3.1': + resolution: {integrity: sha512-bhnq/0DEPTi2lsOD3J5rTL65qUKHbKbhqHsmN9TMiclSXpipi651ooUKPPp6G5lF/WiHBdn1s0Wuqsn+myVAvw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.12': + resolution: {integrity: sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-presence@1.1.5': resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} peerDependencies: @@ -2913,6 +3075,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-presence@1.1.6': + resolution: {integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-primitive@2.1.3': resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: @@ -2926,6 +3101,45 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.6': + resolution: {integrity: sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-radio-group@1.4.1': + resolution: {integrity: sha512-/SSxZdKEo2Eo29FFRKd06EfFDYp8HryKg0WYg7QLXaydPzl52YfSvCH2a3QDBRdtcuwACroJT8UVjQVgOJ7P9A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.13': + resolution: {integrity: sha512-9gkwneI0guf8JDmrFxPjJF6Ozzgioyw+/lonYNCwefS9ZHA05er0BVHiXr+LbWGHxUfczvMY6G1oiZZi1VzjRw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-slot@1.2.3': resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: @@ -2935,6 +3149,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-slot@1.3.0': + resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-switch@1.2.6': resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} peerDependencies: @@ -2948,6 +3171,15 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-use-callback-ref@1.1.2': + resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-controllable-state@1.2.2': resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: @@ -2957,6 +3189,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-controllable-state@1.2.3': + resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-effect-event@0.0.2': resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: @@ -2966,6 +3207,24 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-effect-event@0.0.3': + resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.2': + resolution: {integrity: sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-layout-effect@1.1.1': resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: @@ -2975,6 +3234,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-layout-effect@1.1.2': + resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-previous@1.1.1': resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: @@ -2984,6 +3252,24 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-previous@1.1.2': + resolution: {integrity: sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.2': + resolution: {integrity: sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-size@1.1.1': resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: @@ -2993,6 +3279,18 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-size@1.1.2': + resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/rect@1.1.2': + resolution: {integrity: sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==} + '@react-hook/latest@1.0.3': resolution: {integrity: sha512-dy6duzl+JnAZcDbNTfmaP3xHiKtbXYOaz3G51MGVljh548Y8MWzTr+PHLOfvpypEVW9zwvl+VyKjbWKEVbV1Rg==} peerDependencies: @@ -4012,6 +4310,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -4946,6 +5248,9 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -5461,6 +5766,10 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} @@ -7869,11 +8178,6 @@ packages: react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - react-github-btn@1.4.0: - resolution: {integrity: sha512-lV4FYClAfjWnBfv0iNlJUGhamDgIq6TayD0kPZED6VzHWdpcHmPfsYOZ/CFwLfPv4Zp+F4m8QKTj0oy2HjiGXg==} - peerDependencies: - react: '>=16.3.0' - react-hook-form@7.72.1: resolution: {integrity: sha512-RhwBoy2ygeVZje+C+bwJ8g0NjTdBmDlJvAUHTxRjTmSUKPYsKfMphkS2sgEMotsY03bP358yEYlnUeZy//D9Ig==} engines: {node: '>=18.0.0'} @@ -7950,6 +8254,26 @@ packages: redux: optional: true + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react-router-config@5.1.1: resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} peerDependencies: @@ -7972,6 +8296,16 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react-tabs@6.1.1: resolution: {integrity: sha512-CPiuKoMFf89B7QlbFfdBD9XmUWiE3qudQputMVZB8GQvPJZRX/gqjDaDWOPDwGinEfpJKEuBCkGt83Tt4efeyA==} peerDependencies: @@ -9019,6 +9353,16 @@ packages: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + use-editable@2.3.3: resolution: {integrity: sha512-7wVD2JbfAFJ3DK0vITvXBdpd9JAz5BcKAAolsnLBuBn6UDDwBGuCIAGvR3yA2BNKm578vAMVHFCWaOcA+BhhiA==} peerDependencies: @@ -9033,6 +9377,16 @@ packages: '@types/react': optional: true + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -9584,9 +9938,15 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) + '@apify/ui-icons@1.47.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + clsx: 2.1.1 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + '@apify/ui-library@1.132.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@5.3.11(@babel/core@7.29.0)(react-dom@19.2.5(react@19.2.5))(react-is@16.13.1)(react@19.2.5))': dependencies: - '@apify/ui-icons': 1.34.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@apify/ui-icons': 1.47.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@floating-ui/react': 0.27.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@radix-ui/react-checkbox': 1.3.3(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@radix-ui/react-collapsible': 1.1.12(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -9617,12 +9977,15 @@ snapshots: - '@types/react-dom' - supports-color - '@apify/ui-library@1.132.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': + '@apify/ui-library@1.151.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.1(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - '@apify/ui-icons': 1.34.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@apify/ui-icons': 1.47.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@floating-ui/react': 0.27.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@radix-ui/react-checkbox': 1.3.3(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@radix-ui/react-collapsible': 1.1.12(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-dropdown-menu': 2.1.18(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-radio-group': 1.4.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@radix-ui/react-switch': 1.2.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@react-hook/resize-observer': 2.0.2(react@19.2.5) clsx: 2.1.1 @@ -9650,12 +10013,15 @@ snapshots: - '@types/react-dom' - supports-color - '@apify/ui-library@1.132.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.2(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': + '@apify/ui-library@1.151.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(styled-components@6.4.2(css-to-react-native@3.2.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - '@apify/ui-icons': 1.34.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@apify/ui-icons': 1.47.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@floating-ui/react': 0.27.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@radix-ui/react-checkbox': 1.3.3(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@radix-ui/react-collapsible': 1.1.12(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-dropdown-menu': 2.1.18(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-radio-group': 1.4.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@radix-ui/react-switch': 1.2.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@react-hook/resize-observer': 2.0.2(react@19.2.5) clsx: 2.1.1 @@ -12717,6 +13083,16 @@ snapshots: '@radix-ui/primitive@1.1.3': {} + '@radix-ui/primitive@1.1.4': {} + + '@radix-ui/react-arrow@1.1.10(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-checkbox@1.3.3(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -12747,18 +13123,89 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-collection@1.1.10(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.5)': dependencies: react: 19.2.5 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-compose-refs@1.1.3(@types/react@19.2.14)(react@19.2.5)': + dependencies: + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.5)': dependencies: react: 19.2.5 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-context@1.1.4(@types/react@19.2.14)(react@19.2.5)': + dependencies: + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-direction@1.1.2(@types/react@19.2.14)(react@19.2.5)': + dependencies: + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-dismissable-layer@1.1.13(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-escape-keydown': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-dropdown-menu@2.1.18(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-menu': 2.1.18(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-focus-guards@1.1.4(@types/react@19.2.14)(react@19.2.5)': + dependencies: + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-focus-scope@1.1.10(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.5)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) @@ -12766,6 +13213,64 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-id@1.1.2(@types/react@19.2.14)(react@19.2.5)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-menu@2.1.18(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.10(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-dismissable-layer': 1.1.13(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-focus-scope': 1.1.10(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-popper': 1.3.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-portal': 1.1.12(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-presence': 1.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-roving-focus': 1.1.13(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5) + aria-hidden: 1.2.6 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-popper@1.3.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-arrow': 1.1.10(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-rect': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/rect': 1.1.2 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-portal@1.1.12(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-presence@1.1.5(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) @@ -12775,6 +13280,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-presence@1.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-primitive@2.1.3(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5) @@ -12783,6 +13296,47 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-primitive@2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-radio-group@1.4.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-presence': 1.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-roving-focus': 1.1.13(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-roving-focus@1.1.13(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.10(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-context': 1.1.4(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.5)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) @@ -12790,6 +13344,13 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-slot@1.3.0(@types/react@19.2.14)(react@19.2.5)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-switch@1.2.6(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -12804,6 +13365,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-callback-ref@1.1.2(@types/react@19.2.14)(react@19.2.5)': + dependencies: + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.5)': dependencies: '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.5) @@ -12812,6 +13379,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-controllable-state@1.2.3(@types/react@19.2.14)(react@19.2.5)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.5)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) @@ -12819,18 +13394,51 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-effect-event@0.0.3(@types/react@19.2.14)(react@19.2.5)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-escape-keydown@1.1.2(@types/react@19.2.14)(react@19.2.5)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.5)': dependencies: react: 19.2.5 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.14)(react@19.2.5)': + dependencies: + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.5)': dependencies: react: 19.2.5 optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-previous@1.1.2(@types/react@19.2.14)(react@19.2.5)': + dependencies: + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-rect@1.1.2(@types/react@19.2.14)(react@19.2.5)': + dependencies: + '@radix-ui/rect': 1.1.2 + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.5)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) @@ -12838,6 +13446,15 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + '@radix-ui/react-use-size@1.1.2(@types/react@19.2.14)(react@19.2.5)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.5 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/rect@1.1.2': {} + '@react-hook/latest@1.0.3(react@19.2.5)': dependencies: react: 19.2.5 @@ -14119,6 +14736,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -15128,6 +15749,8 @@ snapshots: detect-libc@2.1.2: {} + detect-node-es@1.1.0: {} + detect-node@2.1.0: {} detect-package-manager@3.0.2: @@ -15778,6 +16401,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-own-enumerable-property-symbols@3.0.2: {} get-proto@1.0.1: @@ -18793,11 +19418,6 @@ snapshots: react-fast-compare@3.2.2: {} - react-github-btn@1.4.0(react@19.2.5): - dependencies: - github-buttons: 2.32.0 - react: 19.2.5 - react-hook-form@7.72.1(react@19.2.5): dependencies: react: 19.2.5 @@ -18876,6 +19496,25 @@ snapshots: '@types/react': 19.2.14 redux: 5.0.1 + react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.5): + dependencies: + react: 19.2.5 + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.5) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + react-remove-scroll@2.7.2(@types/react@19.2.14)(react@19.2.5): + dependencies: + react: 19.2.5 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.5) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.5) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.5) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.5) + optionalDependencies: + '@types/react': 19.2.14 + react-router-config@5.1.1(react-router@5.3.4(react@19.2.5))(react@19.2.5): dependencies: '@babel/runtime': 7.29.2 @@ -18923,6 +19562,14 @@ snapshots: - '@types/react' - supports-color + react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.5): + dependencies: + get-nonce: 1.0.1 + react: 19.2.5 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + react-tabs@6.1.1(react@19.2.5): dependencies: clsx: 2.1.1 @@ -20132,6 +20779,13 @@ snapshots: punycode: 1.4.1 qs: 6.15.2 + use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.5): + dependencies: + react: 19.2.5 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + use-editable@2.3.3(react@19.2.5): dependencies: react: 19.2.5 @@ -20142,6 +20796,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.5): + dependencies: + detect-node-es: 1.1.0 + react: 19.2.5 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + use-sync-external-store@1.6.0(react@19.2.5): dependencies: react: 19.2.5 diff --git a/sources/academy/build-and-publish/apify-store-basics/actor_description_seo_description.md b/sources/academy/build-and-publish/apify-store-basics/actor_description_seo_description.md index 298e5c9e83..3a0443c4bc 100644 --- a/sources/academy/build-and-publish/apify-store-basics/actor_description_seo_description.md +++ b/sources/academy/build-and-publish/apify-store-basics/actor_description_seo_description.md @@ -14,7 +14,7 @@ Learn about Actor description and meta description. Where to set them and best p First impressions are important, especially when it comes to tools. Actor descriptions are the first connection potential users have with your Actor. You can set two kinds of descriptions: _regular description_ (in Apify Store) and _SEO description_ (on Google search), along with their respective names: regular name and SEO name. -:::tip +:::tip Tip You can change descriptions and names as many times as you want. @@ -22,11 +22,11 @@ You can change descriptions and names as many times as you want. ## Regular description vs. SEO description -| | Actor description & name | SEO description & name | -|---|---|---| +| | Actor description & name | SEO description & name | +| --- | --- | --- | | Name length | 40-50 characters | 40-50 characters | | Description length | 300 characters | 145-155 characters | -| Visibility | Visible on Store | Visible on Google | +| Visibility | Visible on Store | Visible on Google | ### Description & Actor name @@ -60,7 +60,7 @@ Learn more about search intent here: [SEO](/academy/actor-marketing-playbook/pro Both descriptions can be found and edited on the very right **Publication tab → Display information.** It has to be done separately for each Actor. -:::note +:::note Note Setting the SEO description and SEO name is optional. If not set, the description will just be duplicated. diff --git a/sources/academy/homepage_content.json b/sources/academy/homepage_content.json index 7283287c98..fc6dc8feac 100644 --- a/sources/academy/homepage_content.json +++ b/sources/academy/homepage_content.json @@ -4,19 +4,22 @@ "title": "Web scraping basics with JS", "link": "/academy/scraping-basics-javascript", "description": "Learn how to use JavaScript to extract information from websites in this practical course, starting from the absolute basics.", - "imageUrl": "/img/academy/scraping-basics-javascript.svg" + "imageUrl": "/img/academy/scraping-basics-javascript.svg", + "imageUrlDarkTheme": "/img/academy/scraping-basics-javascript-dark.svg" }, { "title": "Web scraping basics with Python", "link": "/academy/scraping-basics-python", "description": "Learn how to use Python to extract information from websites in this practical course, starting from the absolute basics.", - "imageUrl": "/img/academy/scraping-basics-python.svg" + "imageUrl": "/img/academy/scraping-basics-python.svg", + "imageUrlDarkTheme": "/img/academy/scraping-basics-python-dark.svg" }, { "title": "Apify platform", "link": "/academy/apify-platform", "description": "The Apify platform is the best place to run your scrapers and automations in the cloud. Learn what an actor is, how to turn your program into an actor, and how to deploy it.", - "imageUrl": "/img/academy/apify-platform.svg" + "imageUrl": "/img/academy/apify-platform.svg", + "imageUrlDarkTheme": "/img/academy/apify-platform-dark.svg" } ], "Advanced web scraping courses": [ @@ -24,19 +27,22 @@ "title": "API scraping", "link": "/academy/api-scraping", "description": "Learn all about how the professionals scrape various types of APIs with various configurations, parameters, and requirements.", - "imageUrl": "/img/academy/api-scraping.svg" + "imageUrl": "/img/academy/api-scraping.svg", + "imageUrlDarkTheme": "/img/academy/api-scraping-dark.svg" }, { "title": "Anti-scraping protections", "link": "/academy/anti-scraping", "description": "Understand the various anti-scraping measures different sites use to prevent bots from accessing them, and how to appear more human to fix these issues.", - "imageUrl": "/img/academy/anti-scraping.svg" + "imageUrl": "/img/academy/anti-scraping.svg", + "imageUrlDarkTheme": "/img/academy/anti-scraping-dark.svg" }, { "title": "Expert scraping with Apify", "link": "/academy/expert-scraping-with-apify", "description": "After learning the basics of actors, learn to develop pro-level scrapers on the Apify platform with this advanced course.", - "imageUrl": "/img/academy/expert-scraping-with-apify.svg" + "imageUrl": "/img/academy/expert-scraping-with-apify.svg", + "imageUrlDarkTheme": "/img/academy/expert-scraping-with-apify-dark.svg" } ] } diff --git a/sources/academy/index.mdx b/sources/academy/index.mdx index f100aeb4cf..a1b1729b07 100644 --- a/sources/academy/index.mdx +++ b/sources/academy/index.mdx @@ -24,6 +24,7 @@ Learn everything about web scraping and automation with our free courses that wi title={section.title} desc={section.description} imageUrl={section.imageUrl} + imageUrlDarkTheme={section.imageUrlDarkTheme} to={section.link} key={i} />) @@ -33,21 +34,23 @@ Learn everything about web scraping and automation with our free courses that wi )} - diff --git a/src/components/ActionCard/ActionCard.tsx b/src/components/ActionCard/ActionCard.tsx index 2eeef71d21..e81ab54204 100644 --- a/src/components/ActionCard/ActionCard.tsx +++ b/src/components/ActionCard/ActionCard.tsx @@ -11,9 +11,16 @@ import styles from './styles.module.css'; const StyledHorizontalTile = styled(HorizontalTile)` height: 100%; + background-color: var(--color-neutral-card-background); + border-color: var(--color-neutral-border); & > * { display: inherit; } + + &:hover { + background-color: var(--color-neutral-card-background-hover); + border-color: var(--color-neutral-border); + } `; interface ActionCardProps { @@ -49,7 +56,7 @@ export default function ActionCard({ title, description, to, width, iconSrc, tit } isClickable - action={} + action={} /> ); diff --git a/src/components/ActorTemplates/ActorTemplates.tsx b/src/components/ActorTemplates/ActorTemplates.tsx index 0396b2461e..448bde1b77 100644 --- a/src/components/ActorTemplates/ActorTemplates.tsx +++ b/src/components/ActorTemplates/ActorTemplates.tsx @@ -44,6 +44,22 @@ const ActorTemplatesWrapper = styled.div` } `; +const StyledActorTemplateCardWrapper = styled.div` + display: flex; + height: 100%; + + & > * { + flex: 1; + background-color: var(--color-neutral-card-background) !important; + border-color: var(--color-neutral-border) !important; + } + + &:hover > * { + background-color: var(--color-neutral-card-background-hover) !important; + border-color: var(--color-neutral-border) !important; + } +`; + export const ActorTemplates: React.FC = ({ numberOfDisplayedTemplates = NUMBER_OF_DISPLAYED_TEMPLATES_DEFAULT, displayedTemplatesIds = [], @@ -115,14 +131,16 @@ export const ActorTemplates: React.FC = ({ return ( - ( - {icon.alt} - ))} - /> + + ( + {icon.alt} + ))} + /> + ); })} diff --git a/src/components/Card.jsx b/src/components/Card.jsx index 5b2f6ac9ed..2060e5431f 100644 --- a/src/components/Card.jsx +++ b/src/components/Card.jsx @@ -1,17 +1,13 @@ import Link from '@docusaurus/Link'; import { useColorMode } from '@docusaurus/theme-common'; import clsx from 'clsx'; -import { useEffect, useState } from 'react'; import styles from './Cards.module.css'; // TODO: Better sizing for logo images (in integrations) const Card = ({ to, imageUrl, imageUrlDarkTheme, title, desc, smallImage }) => { - const [themeIsDark, setThemeIsDark] = useState(true); - const isDark = useColorMode().isDarkTheme; - useEffect(() => { - setThemeIsDark(isDark); - }, [isDark]); + const { colorMode } = useColorMode(); + const themeIsDark = colorMode === 'dark'; return (
diff --git a/src/components/CardWithIcon/CardWithIcon.tsx b/src/components/CardWithIcon/CardWithIcon.tsx index 642612d3a8..f50ee5dbb4 100644 --- a/src/components/CardWithIcon/CardWithIcon.tsx +++ b/src/components/CardWithIcon/CardWithIcon.tsx @@ -1,5 +1,6 @@ import Link from '@docusaurus/Link'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import styled from 'styled-components'; import { theme, VerticalTile } from '@apify/ui-library'; @@ -7,6 +8,16 @@ import { Heading } from '../Heading'; import { Text } from '../Text'; import styles from './styles.module.css'; +const StyledVerticalTile = styled(VerticalTile)` + background-color: var(--color-neutral-card-background); + border-color: var(--color-neutral-border); + + &:hover { + background-color: var(--color-neutral-card-background-hover); + border-color: var(--color-neutral-border); + } +`; + interface CardWithIconProps { icon: React.ReactNode; title: string; @@ -20,7 +31,7 @@ export default function CardWithIcon({ icon, title, description, to, width }: Ca const external = to.startsWith('http'); const Tile = ( - diff --git a/src/components/Cards.module.css b/src/components/Cards.module.css index 312601b9e5..ead46e2b24 100644 --- a/src/components/Cards.module.css +++ b/src/components/Cards.module.css @@ -1,14 +1,11 @@ .card { - border: 1px solid #b3b8d2; + background: var(--color-neutral-card-background); + border: 1px solid var(--color-neutral-border); border-radius: 0.5rem; } .card-hoverable:hover { - background-color: rgb(241, 242, 247); -} - -html[data-theme='dark'] .card-hoverable:hover { - background-color: rgb(30, 40, 59); + background-color: var(--color-neutral-card-background-hover); } .card-image-container { @@ -36,7 +33,7 @@ html[data-theme='dark'] .card-hoverable:hover { font-size: 120%; padding: 20px 1rem; margin: 0px 0px 10px 0px; - border-bottom: 1px #b3b8d2 solid; + border-bottom: 1px solid var(--color-neutral-border); box-sizing: border-box; } diff --git a/src/components/GitButton.tsx b/src/components/GitButton.tsx index dc83c1897b..0e9ec6bf77 100644 --- a/src/components/GitButton.tsx +++ b/src/components/GitButton.tsx @@ -1,9 +1,37 @@ +import BrowserOnly from '@docusaurus/BrowserOnly'; import { useColorMode } from '@docusaurus/theme-common'; -import type { GitHubButtonProps } from 'github-buttons'; -import type { PropsWithChildren } from 'react'; -import GitHubButton from 'react-github-btn'; -export default function GitButton(props: PropsWithChildren) { +interface GitButtonProps { + href: string; + ariaLabel: string; +} + +function GitButtonInner({ href, ariaLabel }: GitButtonProps) { const { colorMode } = useColorMode(); - return ; + // unauthenticated GitHub API requests (60/hr) can throttle star counts — replace iframe with a direct GitHub API call + server-side token to fix + const src = `https://buttons.github.io/buttons.html#${new URLSearchParams({ + href, + 'data-icon': 'octicon-mark-github', + 'data-text': 'Star', + 'data-size': 'large', + 'data-show-count': 'true', + 'data-color-scheme': colorMode, + 'aria-label': ariaLabel, + }).toString()}`; + + return ( +