diff --git a/.gitignore b/.gitignore index b2d6de306..b083ed4f9 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ # Misc .DS_Store +.env .env.local .env.development.local .env.test.local diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e00595dae..000000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], -}; diff --git a/docs/developer-guide/sidebars.js b/docs/developer-guide/sidebars.ts similarity index 69% rename from docs/developer-guide/sidebars.js rename to docs/developer-guide/sidebars.ts index 9f908290e..c792e691e 100644 --- a/docs/developer-guide/sidebars.js +++ b/docs/developer-guide/sidebars.ts @@ -1,34 +1,33 @@ -module.exports = [ +import type { SidebarItemConfig } from "@docusaurus/plugin-content-docs"; + +const sidebars: SidebarItemConfig[] = [ { label: "Getting Started", type: "doc", - id: 'developer-guide/index', + id: "developer-guide/index", }, { collapsible: false, label: "SDKs", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, - items: [ - "developer-guide/sdk/ios", - "developer-guide/sdk/android" - ], + items: ["developer-guide/sdk/ios", "developer-guide/sdk/android"], }, { collapsible: false, label: "fastlane plugins", type: "category", link: { - type: 'doc', - id: 'developer-guide/fastlane', + type: "doc", + id: "developer-guide/fastlane", }, items: [ "developer-guide/fastlane/zealot", "developer-guide/fastlane/zealot_version_check", "developer-guide/fastlane/zealot_debug_file", - "developer-guide/fastlane/zealot_sync_devices" + "developer-guide/fastlane/zealot_sync_devices", ], }, { @@ -50,7 +49,7 @@ module.exports = [ label: "Local Development", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, items: [ "developer-guide/local-development/devcontainer", @@ -58,5 +57,7 @@ module.exports = [ ], }, ], - } + }, ]; + +export default sidebars; diff --git a/docs/self-hosted/sidebars.js b/docs/self-hosted/sidebars.ts similarity index 69% rename from docs/self-hosted/sidebars.js rename to docs/self-hosted/sidebars.ts index 32a141e81..1caa4da68 100644 --- a/docs/self-hosted/sidebars.js +++ b/docs/self-hosted/sidebars.ts @@ -1,15 +1,17 @@ -module.exports = [ +import type { SidebarItemConfig } from "@docusaurus/plugin-content-docs"; + +const sidebars: SidebarItemConfig[] = [ { label: "Getting Started", type: "doc", - id: 'self-hosted/index', + id: "self-hosted/index", }, { collapsible: false, label: "Deployment", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, items: [ "self-hosted/deployment/architecture", @@ -22,38 +24,36 @@ module.exports = [ type: "doc", id: "self-hosted/deployment/docker", }, - items: [ - "self-hosted/deployment/docker/step-by-step", - ], + items: ["self-hosted/deployment/docker/step-by-step"], }, "self-hosted/deployment/kubernetes", "self-hosted/deployment/nomad", ], }, { - type: 'doc', + type: "doc", label: "Reverse Proxies", - id: 'self-hosted/reverse-proxies', + id: "self-hosted/reverse-proxies", }, { collapsible: false, label: "Cloud Provider Guides", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, items: [ "self-hosted/deployment/fly", "self-hosted/deployment/railway", - "self-hosted/deployment/render" - ] + "self-hosted/deployment/render", + ], }, { collapsible: false, label: "Configuration", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, items: [ "self-hosted/configuration/environment-variables", @@ -62,9 +62,10 @@ module.exports = [ ], }, { - type: 'doc', + type: "doc", label: "Storage", - id: 'self-hosted/storage', + id: "self-hosted/storage", }, - ]; + +export default sidebars; diff --git a/docs/user-guide/sidebars.js b/docs/user-guide/sidebars.ts similarity index 80% rename from docs/user-guide/sidebars.js rename to docs/user-guide/sidebars.ts index ef66cd87c..1d44b47f2 100644 --- a/docs/user-guide/sidebars.js +++ b/docs/user-guide/sidebars.ts @@ -1,20 +1,22 @@ -module.exports = [ +import type { SidebarItemConfig } from "@docusaurus/plugin-content-docs"; + +const sidebars: SidebarItemConfig[] = [ { label: "Getting Started", type: "doc", - id: 'user-guide/index', + id: "user-guide/index", }, { label: "Dashboard", type: "doc", - id: 'user-guide/dashboard', + id: "user-guide/dashboard", }, { collapsible: true, label: "Apps", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, items: [ "user-guide/apps/create", @@ -29,7 +31,7 @@ module.exports = [ label: "Debug Files", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, items: [ "user-guide/debug-files/index", @@ -43,7 +45,7 @@ module.exports = [ type: "category", link: { type: "doc", - id: 'user-guide/webhooks', + id: "user-guide/webhooks", }, items: [ "user-guide/webhooks/slack", @@ -59,19 +61,16 @@ module.exports = [ label: "Toolkits", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, - items: [ - "user-guide/toolkits/teardown", - "user-guide/toolkits/fetch-udid", - ], + items: ["user-guide/toolkits/teardown", "user-guide/toolkits/fetch-udid"], }, { collapsible: false, label: "Administrator", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, items: [ "user-guide/administrator/users", @@ -84,7 +83,7 @@ module.exports = [ label: "Monitoring", type: "category", link: { - type: 'generated-index', + type: "generated-index", }, items: [ "user-guide/administrator/monitoring/system-info", @@ -104,3 +103,5 @@ module.exports = [ "user-guide/qa", "user-guide/credits", ]; + +export default sidebars; diff --git a/docusaurus.config.js b/docusaurus.config.js deleted file mode 100644 index ecd480e64..000000000 --- a/docusaurus.config.js +++ /dev/null @@ -1,266 +0,0 @@ -// @ts-check -// Note: type annotations allow type checking and IDEs autocompletion - -const isDev = process.env.NODE_ENV === 'development'; - -const isDeployPreview = !!process.env.NETLIFY && process.env.CONTEXT === 'deploy-preview'; - -// Netlify branch deploy like "docusaurus-v2" -const isBranchDeploy = !!process.env.NETLIFY && process.env.CONTEXT === 'branch-deploy'; - -/** @type {Array} */ -const versions = require('./versions.json'); - -/** @param {string} version */ -function isPrerelease(version) { - return ( - version.includes('alpha') || - version.includes('beta') || - version.includes('rc') - ); -} - -function getLastVersion() { - const firstStableVersion = versions.find((version) => !isPrerelease(version)); - return firstStableVersion ?? versions[0]; -} - -// This probably only makes sense for the alpha/beta/rc phase, temporary -function getNextVersionName() { - return 'Next'; -} - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: 'Zealot', - tagline: 'Self-hosted Beta App Distribution for Android, iOS, macOS, Windows and Linux apps.', - url: 'https://zealot.ews.im', - baseUrl: '/', - onBrokenLinks: 'throw', - favicon: 'img/zealot.png', - i18n: { - defaultLocale: 'en', - locales: ['en', 'zh-Hans'], - }, - markdown: { - hooks: { - onBrokenMarkdownLinks: 'warn', - } - }, - - organizationName: 'tryzealot', - projectName: 'docs', - - presets: [ - [ - 'classic', - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: { - sidebarPath: require.resolve('./sidebars.js'), - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: 'https://github.com/tryzealot/docs/tree/main/', - lastVersion: isDev || isDeployPreview || isBranchDeploy ? 'current' : getLastVersion(), - versions: { - current: { - label: `${getNextVersionName()} 🚧`, - }, - }, - }, - theme: { - customCss: require.resolve('./src/css/custom.css'), - }, - sitemap: { - changefreq: 'weekly', - priority: 0.5, - ignorePatterns: ['/tags/**'], - filename: 'sitemap.xml', - }, - }), - ], - - [ - 'redocusaurus', - /** @type {import('redocusaurus').PresetOptions} */ - { - specs: [ - { - spec: 'openapi_v1_en.json', - route: '/api/v1/en', - }, - { - spec: 'openapi_v1_zh-Hans.json', - route: 'api/v1/zh-Hans', - }, - ], - theme: { - primaryColor: '#1890ff', - }, - }, - ], - ], - - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - navbar: { - title: 'Zealot', - logo: { - alt: 'Zealot Logo', - src: 'img/zealot.png', - srcDark: 'img/zealot-dark.png', - }, - items: [ - { - type: 'doc', - docId: 'self-hosted/index', - label: 'Self Hosted', - position: 'left', - }, - { - type: 'doc', - docId: 'developer-guide/index', - position: 'left', - label: 'Developer Guide', - }, - { - type: 'doc', - docId: 'user-guide/index', - position: 'left', - label: 'User Guide', - }, - { - type: 'doc', - docId: 'user-guide/changelog', - position: 'left', - label: 'Changelog', - }, - { - type: "doc", - docId: "developer-guide/api", - position: 'left', - label: "API", - }, - { - href: "/donate", - position: 'right', - label: "Donate", - }, - { - type: 'docsVersionDropdown', - position: 'right', - dropdownActiveClassDisabled: true, - dropdownItemsAfter: [ - { - type: 'html', - value: '', - }, - { - href: 'https://tryzealot.github.io/docs-legacy', - label: 'Legacy docs', - } - ], - }, - { - type: 'localeDropdown', - position: 'right', - } - ], - }, - footer: { - style: 'dark', - links: [ - { - title: 'Community', - items: [ - { - label: 'Telegram', - href: 'https://t.me/+csa3Y2KOx44wMGRl', - }, - { - label: 'Github Discussions', - href: 'https://github.com/tryzealot/zealot/discussions', - }, - ], - }, - { - title: 'More', - items: [ - { - label: 'Demo', - href: 'https://tryzealot.ews.im', - }, - { - label: 'GitHub', - href: 'https://github.com/tryzealot/zealot', - }, - ], - }, - { - title: 'Legal', - items: [ - { - label: 'Terms of Service', - href: '/terms', - }, - { - label: 'Privacy Policy', - href: '/privacy', - }, - { - label: 'EULA', - href: '/eula', - }, - ], - }, - ], - copyright: `Copyright © 2018 - ${new Date().getFullYear()} Zealot.`, - }, - prism: { - additionalLanguages: ['kotlin', 'swift', 'groovy', 'ruby', 'nginx', 'toml', 'hcl'], - magicComments: [ - { - className: 'theme-code-block-highlighted-line', - line: 'highlight-next-line', - block: { - start: 'highlight-start', - end: 'highlight-end' - }, - }, - { - className: 'code-block-error-line', - line: 'This will error', - }, - ], - theme: require('prism-react-renderer').themes.github, - darkTheme: require('prism-react-renderer').themes.duotoneDark, - }, - // announcementBar: { - // id: 'announcementBar-2', - // backgroundColor: 'var(--ifm-color-primary)', - // textColor: 'var(--ifm-heading-color)', - // content: `⭐️ If you like Zealot, give it a star on GitHub and vote on ProductHunt`, - // isCloseable: true - // }, - }), - - plugins: [ - [ - "@gracefullight/docusaurus-plugin-microsoft-clarity", - { - projectId: "mgce1iwvr4" - } - ] - ], - future: { - v4: { - removeLegacyPostBuildHeadAttribute: true, - }, - experimental_faster: { - ssgWorkerThreads: true, - }, - }, -}; - -module.exports = config; diff --git a/docusaurus.config.ts b/docusaurus.config.ts new file mode 100644 index 000000000..51ebf60fd --- /dev/null +++ b/docusaurus.config.ts @@ -0,0 +1,284 @@ +// @ts-check +// Note: type annotations allow type checking and IDEs autocompletion +import type { Config } from "@docusaurus/types"; +import type * as Preset from "@docusaurus/preset-classic"; + +const isDev = process.env.NODE_ENV === "development"; + +const isDeployPreview = + !!process.env.NETLIFY && process.env.CONTEXT === "deploy-preview"; + +// Netlify branch deploy like "docusaurus-v2" +const isBranchDeploy = + !!process.env.NETLIFY && process.env.CONTEXT === "branch-deploy"; + +/** @type {Array} */ +const versions = require("./versions.json"); + +/** @param {string} version */ +function isPrerelease(version: string) { + return ( + version.includes("alpha") || + version.includes("beta") || + version.includes("rc") + ); +} + +function getLastVersion() { + const firstStableVersion = versions.find((version) => !isPrerelease(version)); + return firstStableVersion ?? versions[0]; +} + +// This probably only makes sense for the alpha/beta/rc phase, temporary +function getNextVersionName() { + return "Next"; +} + +const config: Config = { + title: "Zealot", + tagline: + "Self-hosted Beta App Distribution for Android, iOS, macOS, Windows and Linux apps.", + url: "https://zealot.ews.im", + baseUrl: "/", + onBrokenLinks: "throw", + favicon: "img/zealot.png", + i18n: { + defaultLocale: "en", + locales: ["en", "zh-Hans"], + }, + markdown: { + hooks: { + onBrokenMarkdownLinks: "warn", + }, + }, + + organizationName: "tryzealot", + projectName: "docs", + + presets: [ + [ + "classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + { + docs: { + sidebarPath: require.resolve("./sidebars.ts"), + // Please change this to your repo. + // Remove this to remove the "edit this page" links. + editUrl: "https://github.com/tryzealot/docs/tree/main/", + lastVersion: + isDev || isDeployPreview || isBranchDeploy + ? "current" + : getLastVersion(), + versions: { + current: { + label: `${getNextVersionName()} 🚧`, + }, + }, + }, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + sitemap: { + changefreq: "weekly", + priority: 0.5, + ignorePatterns: ["/tags/**"], + filename: "sitemap.xml", + }, + } satisfies Preset.Options, + ], + + [ + "redocusaurus", + /** @type {import('redocusaurus').PresetOptions} */ + { + specs: [ + { + spec: "openapi_v1_en.json", + route: "/api/v1/en", + }, + { + spec: "openapi_v1_zh-Hans.json", + route: "api/v1/zh-Hans", + }, + ], + theme: { + primaryColor: "#1890ff", + }, + }, + ], + ], + + themeConfig: + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + { + navbar: { + title: "Zealot", + logo: { + alt: "Zealot Logo", + src: "img/zealot.png", + srcDark: "img/zealot-dark.png", + }, + items: [ + { + type: "doc", + docId: "self-hosted/index", + label: "Self Hosted", + position: "left", + }, + { + type: "doc", + docId: "developer-guide/index", + position: "left", + label: "Developer Guide", + }, + { + type: "doc", + docId: "user-guide/index", + position: "left", + label: "User Guide", + }, + { + href: "/donate", + position: "right", + label: "Donate", + }, + { + type: "docsVersionDropdown", + position: "right", + dropdownActiveClassDisabled: true, + dropdownItemsAfter: [ + { + type: "html", + value: '', + }, + { + href: "https://tryzealot.github.io/docs-legacy", + label: "Legacy docs", + }, + ], + }, + { + type: "localeDropdown", + position: "right", + }, + ], + }, + footer: { + style: "dark", + links: [ + { + title: "Community", + items: [ + { + label: "Telegram", + href: "https://t.me/+csa3Y2KOx44wMGRl", + }, + { + label: "Github Discussions", + href: "https://github.com/tryzealot/zealot/discussions", + }, + { + label: "GitHub", + href: "https://github.com/tryzealot/zealot", + }, + ], + }, + { + title: "Product", + items: [ + { + label: "Demo", + href: "https://tryzealot.ews.im", + }, + { + label: "Changelog", + to: "/docs/user-guide/changelog", + }, + { + label: "API", + to: "/docs/developer-guide/api", + }, + ], + }, + { + title: "Legal", + items: [ + { + label: "Terms of Service", + to: "/terms", + }, + { + label: "Privacy Policy", + to: "/privacy", + }, + { + label: "EULA", + to: "/eula", + }, + ], + }, + ], + copyright: `Copyright © 2018 - ${new Date().getFullYear()} Zealot.`, + }, + prism: { + additionalLanguages: [ + "kotlin", + "swift", + "groovy", + "ruby", + "nginx", + "toml", + "hcl", + ], + magicComments: [ + { + className: "theme-code-block-highlighted-line", + line: "highlight-next-line", + block: { + start: "highlight-start", + end: "highlight-end", + }, + }, + { + className: "code-block-error-line", + line: "This will error", + }, + ], + theme: require("prism-react-renderer").themes.github, + darkTheme: require("prism-react-renderer").themes.duotoneDark, + }, + // announcementBar: { + // id: 'supportUS', + // backgroundColor: 'var(--ifm-color-primary)', + // textColor: 'var(--ifm-heading-color)', + // content: `⭐️ If you like Zealot, give it a star on GitHub and vote on ProductHunt`, + // isCloseable: true + // }, + }, + + plugins: [ + ["./src/plugins/tailwind-config.ts", {}], + [ + "docusaurus2-dotenv", + { + systemvars: true, + }, + ], + [ + "@gracefullight/docusaurus-plugin-microsoft-clarity", + { + projectId: "mgce1iwvr4", + }, + ], + ], + future: { + v4: { + removeLegacyPostBuildHeadAttribute: true, + }, + experimental_faster: { + ssgWorkerThreads: true, + }, + }, +}; + +export default config; diff --git a/i18n/en/code.json b/i18n/en/code.json index b154dbc10..3d58bffb6 100644 --- a/i18n/en/code.json +++ b/i18n/en/code.json @@ -7,31 +7,6 @@ "message": "Continuous everything. Automate the lifecycle of your apps. Connect your CI to build in the cloud, test on thousands of real devices, distribute to beta testers and app stores. All in one place.", "description": "The subtitle description for homepage" }, - "Getting started": { - "message": "Getting started" - }, - "Self-hosted Beta App Distribution for Android, iOS, macOS, Windows and Linux apps.": { - "message": "Self-hosted Beta App Distribution for Android, iOS, macOS, Windows and Linux apps.", - "description": "The homepage title message" - }, - "Easy to Use": { - "message": "Easy to Use" - }, - "Zealot was designed from the ground up to be easily installed and running quickly.": { - "message": "Zealot was designed from the ground up to be easily installed and running quickly." - }, - "Focus on What Matters": { - "message": "Focus on What Matters" - }, - "Zealot lets you focus on your app, and we'll do the chores. Go ahead and upload your apps.": { - "message": "Zealot lets you focus on your app, and we'll do the chores. Go ahead and upload your apps." - }, - "Open Source 100%": { - "message": "Open Source 100%" - }, - "Zealot is an open source project, Everyone could easy self hosted on own servers.": { - "message": "Zealot is an open source project, Everyone could easy self hosted on own servers." - }, "theme.ErrorPageContent.title": { "message": "This page crashed.", "description": "The title of the fallback page when the page crashed" @@ -311,14 +286,6 @@ "message": "Tags", "description": "The title of the tag list page" }, - "theme.unlistedContent.title": { - "message": "Unlisted page", - "description": "The unlisted content banner title" - }, - "theme.unlistedContent.message": { - "message": "This page is unlisted. Search engines will not index it, and only users having a direct link can access it.", - "description": "The unlisted content banner message" - }, "theme.docs.DocCard.categoryDescription.plurals": { "message": "{count} items", "description": "The default description for a category card in the generated index about how many items this category includes" @@ -446,5 +413,277 @@ "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { "message": "Collapse the dropdown", "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + }, + "checkout.title": { + "message": "Checkout", + "description": "Checkout page title" + }, + "checkout.loading": { + "message": "Loading checkout...", + "description": "Checkout page loading text" + }, + "checkout.email.title": { + "message": "Enter your email to continue", + "description": "Checkout email form title" + }, + "checkout.email.placeholder": { + "message": "your@email.com", + "description": "Checkout email input placeholder" + }, + "checkout.email.continue": { + "message": "Continue", + "description": "Checkout continue button" + }, + "checkout.error.loadingOrders": { + "message": "Error loading your orders.", + "description": "Error message when loading orders fails" + }, + "checkout.loading.preparing": { + "message": "Preparing checkout...", + "description": "Loading text while preparing checkout" + }, + "checkout.loading.redirecting": { + "message": "Redirecting to your orders...", + "description": "Loading text while redirecting to orders" + }, + "checkout.success.title": { + "message": "Checkout Success", + "description": "Checkout success page title" + }, + "checkout.success.loading": { + "message": "Loading...", + "description": "Checkout success page loading text" + }, + "checkout.success.processing": { + "message": "Processing your payment...", + "description": "Title while processing payment" + }, + "checkout.success.processingDesc": { + "message": "Please wait while we generate your license.", + "description": "Description while processing payment" + }, + "checkout.success.failed.title": { + "message": "License Generation Failed", + "description": "Title when license generation fails" + }, + "checkout.success.failed.desc": { + "message": "Your payment was successful, but we encountered an issue generating your license. Please contact support with your transaction ID.", + "description": "Description when license generation fails" + }, + "checkout.success.failed.tryAgain": { + "message": "Try Again", + "description": "Try again button" + }, + "checkout.success.successTitle": { + "message": "Payment Successful!", + "description": "Title when payment is successful" + }, + "checkout.success.successDesc": { + "message": "Thank you for your purchase. Your order has been processed successfully.", + "description": "Description when payment is successful" + }, + "checkout.success.license.title": { + "message": "Your License", + "description": "License section title" + }, + "checkout.success.license.key": { + "message": "License Key", + "description": "License key label" + }, + "checkout.success.license.copy": { + "message": "Copy", + "description": "Copy button" + }, + "checkout.success.license.copied": { + "message": "Copied!", + "description": "Copied confirmation" + }, + "checkout.success.license.saveReminder": { + "message": "Please save your license key in a safe place.", + "description": "Reminder to save license key" + }, + "checkout.success.order.id": { + "message": "Order ID:", + "description": "Order ID label" + }, + "checkout.success.order.email": { + "message": "Email:", + "description": "Email label" + }, + "checkout.success.order.plan": { + "message": "Plan:", + "description": "Plan label" + }, + "checkout.success.order.type": { + "message": "Type:", + "description": "Type label" + }, + "checkout.success.order.expires": { + "message": "Expires:", + "description": "Expires label" + }, + "checkout.success.returnHome": { + "message": "Return Home", + "description": "Return home button" + }, + "checkout.success.noTransaction": { + "message": "No transaction information found", + "description": "Error when no transaction info found" + }, + "checkout.success.transactionId": { + "message": "Transaction ID", + "description": "Transaction ID label" + }, + "orders.title": { + "message": "My Orders", + "description": "Orders page title" + }, + "orders.loading": { + "message": "Loading...", + "description": "Orders page loading text" + }, + "orders.email.title": { + "message": "Enter your email to view orders", + "description": "Orders email form title" + }, + "orders.email.placeholder": { + "message": "your@email.com", + "description": "Orders email input placeholder" + }, + "orders.email.viewOrders": { + "message": "View Orders", + "description": "View orders button" + }, + "orders.backToPricing": { + "message": "Back to Pricing", + "description": "Back to pricing button" + }, + "orders.error.loading": { + "message": "Error loading your orders.", + "description": "Error message when loading orders fails" + }, + "orders.error.tryAgain": { + "message": "Try Again", + "description": "Try again button" + }, + "orders.loading.text": { + "message": "Loading your orders...", + "description": "Loading orders text" + }, + "orders.sessionError.invalid": { + "message": "Session data is invalid. Please enter your email to view orders.", + "description": "Session data invalid error" + }, + "orders.sessionError.config": { + "message": "Session configuration error. Please enter your email to view orders.", + "description": "Session configuration error" + }, + "orders.yourOrders.title": { + "message": "Your Orders", + "description": "Your orders section title" + }, + "orders.existingOrder.warning": { + "message": "You already have an order associated with this email.", + "description": "Warning when user has existing order" + }, + "orders.noOrders": { + "message": "No orders found for this email.", + "description": "Message when no orders found" + }, + "orders.searchAnother": { + "message": "Search Another Email", + "description": "Search another email button" + }, + "orders.customer.title": { + "message": "Customer", + "description": "Customer section title" + }, + "orders.customer.email": { + "message": "Email", + "description": "Customer email label" + }, + "orders.customer.id": { + "message": "Customer ID", + "description": "Customer ID label" + }, + "orders.license.title": { + "message": "License", + "description": "License section title" + }, + "orders.license.key": { + "message": "License Key", + "description": "License key label" + }, + "orders.license.status": { + "message": "Status", + "description": "License status label" + }, + "orders.license.status.active": { + "message": "Active", + "description": "Active status" + }, + "orders.license.status.inactive": { + "message": "Inactive", + "description": "Inactive status" + }, + "orders.order.title": { + "message": "Order", + "description": "Order section title" + }, + "orders.order.id": { + "message": "Order ID", + "description": "Order ID label" + }, + "orders.order.amount": { + "message": "Amount", + "description": "Order amount label" + }, + "orders.order.created": { + "message": "Created", + "description": "Order created date label" + }, + "orders.order.paidAt": { + "message": "Paid At", + "description": "Order paid date label" + }, + "orders.order.status": { + "message": "Status", + "description": "Order status label" + }, + "orders.order.status.completed": { + "message": "Completed", + "description": "Completed status" + }, + "orders.order.status.pending": { + "message": "Pending", + "description": "Pending status" + }, + "orders.subscription.title": { + "message": "Subscription", + "description": "Subscription section title" + }, + "orders.subscription.status": { + "message": "Status", + "description": "Subscription status label" + }, + "orders.subscription.activeAt": { + "message": "Active At", + "description": "Subscription active date label" + }, + "orders.subscription.expiresAt": { + "message": "Expires At", + "description": "Subscription expires date label" + }, + "orders.subscription.cancelWarning": { + "message": "Will cancel at period end", + "description": "Cancel at period end warning" + }, + "orders.refresh": { + "message": "Refresh", + "description": "Refresh button" + }, + "orders.refreshing": { + "message": "Refreshing...", + "description": "Refreshing button text" } } diff --git a/i18n/zh-Hans/code.json b/i18n/zh-Hans/code.json index dcddab516..7ebe086dc 100644 --- a/i18n/zh-Hans/code.json +++ b/i18n/zh-Hans/code.json @@ -278,14 +278,6 @@ "message": "折叠侧边栏分类 '{label}'", "description": "The ARIA label to collapse the sidebar category" }, - "theme.unlistedContent.title": { - "message": "未列出页", - "description": "The unlisted content banner title" - }, - "theme.unlistedContent.message": { - "message": "此页面未列出。搜索引擎不会对其索引,只有拥有直接链接的用户才能访问。", - "description": "The unlisted content banner message" - }, "theme.blog.author.pageTitle": { "message": "{authorName} - {nPosts}", "description": "The title of the page for a blog author" @@ -326,27 +318,6 @@ "message": "折叠下拉菜单", "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" }, - "Easy to Use": { - "message": "轻松使用" - }, - "Focus on What Matters": { - "message": "专注于重要的事情" - }, - "Open Source 100%": { - "message": "100% 开源项目" - }, - "Zealot was designed from the ground up to be easily installed and running quickly.": { - "message": "Zealot 提供简单便捷的部署方式实现一键安装和运行。" - }, - "Zealot lets you focus on your app, and we'll do the chores. Go ahead and upload your apps.": { - "message": "Zealot 使得开发者可以关注于应用开发本身,我们来处理持续交付和测试的工作,立即上传应用吧。" - }, - "Zealot is an open source project, Everyone could easy self hosted on own servers.": { - "message": "Zealot 是一个开源项目,每个人都可以私有化部署在自己的服务器。" - }, - "Getting started": { - "message": "快速上手" - }, "homepage.header.title": { "message": "Zealot", "description": "The main title for homepage" @@ -355,10 +326,6 @@ "message": "开源自部署持续集成一切跟应用有关事情,接入任意 CI 系统一切自动化处理,企业多年实战经验,独立部署提供企业打包分发流程、上传应用全套流程方案", "description": "The subtitle description for homepage" }, - "Self-hosted Beta App Distribution for Android, iOS, macOS, Windows and Linux apps.": { - "message": "私有化部署 Android、iOS、macOS、Windows 和 Linux 应用托管服务", - "description": "The homepage title message" - }, "homepage.button.getStarted": { "message": "快速开始", "description": "Get started button text" @@ -385,59 +352,57 @@ }, "homepage.feature.deployment.title": { "message": "快捷部署", - "description": "Easy deployment feature title" + "description": "Easy Deployment feature title" }, "homepage.feature.deployment.description": { "message": "支持 Docker、Kubernetes、Nomad 及云平台服务快速部署属于您的私有化应用分发平台。", - "description": "Easy deployment feature description" + "description": "Easy Deployment feature description" }, "homepage.feature.multiPlatform.title": { "message": "多平台应用托管", - "description": "Multi-platform feature title" + "description": "Multi-Platform feature title" }, "homepage.feature.multiPlatform.description": { "message": "支持 Android、iOS、macOS、Windows 和 Linux 应用,一个平台满足所有需求。", - "description": "Multi-platform feature description" + "description": "Multi-Platform feature description" }, "homepage.feature.cicd.title": { "message": "CI/CD 持续集成", - "description": "CI/CD integration feature title" + "description": "CI/CD Integration feature title" }, "homepage.feature.cicd.description": { "message": "无缝集成您现有的 CI/CD 流水线,实现应用自动化分发。", - "description": "CI/CD integration feature description" + "description": "CI/CD Integration feature description" }, "homepage.feature.teamManagement.title": { "message": "团队管理", - "description": "Team management feature title" + "description": "Team Management feature title" }, "homepage.feature.teamManagement.description": { "message": "管理团队成员并控制访问权限。通过频道组织应用,有效管理用户角色。", - "description": "Team management feature description" + "description": "Team Management feature description" }, "homepage.feature.developerFriendly.title": { "message": "开发者友好", - "description": "Developer friendly feature title" + "description": "Developer Friendly feature title" }, "homepage.feature.developerFriendly.description": { "message": "提供丰富的 SDK 和 RESTful API,支持多种编程语言和平台的无缝集成。", - "description": "Developer friendly feature description" + "description": "Developer Friendly feature description" }, "homepage.feature.security.title": { "message": "安全私有", - "description": "Security feature title" + "description": "Secure & Private feature title" }, "homepage.feature.security.description": { "message": "企业级安全和隐私控制,确保您的应用和数据安全。", - "description": "Security feature description" + "description": "Secure & Private feature description" }, "homepage.seo.title": { - "message": "私有化部署 Android、iOS、macOS、Windows 和 Linux 应用托管服务", - "description": "The homepage SEO title" + "message": "私有化部署 Android、iOS、macOS、Windows 和 Linux 应用托管服务" }, "homepage.seo.description": { - "message": "私有化部署 Android、iOS、macOS、Windows 和 Linux 应用托管服务", - "description": "The homepage SEO description" + "message": "私有化部署 Android、iOS、macOS、Windows 和 Linux 应用托管服务" }, "theme.tags.tagsPageTitle": { "message": "标签", @@ -450,9 +415,6 @@ "pricing.plan.free": { "message": "免费版" }, - "pricing.plan.free.subtitle": { - "message": "社区版(开源)" - }, "pricing.plan.free.unlimited_users": { "message": "无限用户" }, @@ -480,9 +442,6 @@ "pricing.plan.pro": { "message": "专业版" }, - "pricing.plan.pro.subtitle": { - "message": "专业版" - }, "pricing.plan.pro.trial": { "message": "14 天免费试用" }, @@ -522,14 +481,17 @@ "pricing.enterprise.button": { "message": "联系我们" }, - "pricing.plan.free.price": { - "message": "¥0" + "pricing.plan.pro.frequency": { + "message": "年" + }, + "pricing.seo.title": { + "message": "价格" }, - "pricing.plan.pro.price": { - "message": "¥3499 / 年" + "pricing.seo.description": { + "message": "适用于私有化部署 Android、iOS、macOS、Windows 和 Linux 应用托管服务的实惠价格计划。" }, - "pricing.plan.pro.payment_integration_coming_soon": { - "message": "支付集成即将推出!" + "pricing.plan.free.price": { + "message": "免费" }, "donate.title": { "message": "支持我们" @@ -560,5 +522,209 @@ }, "donate.thankYou": { "message": "感谢您选择 Zealot 作为您的应用分发解决方案。" + }, + "checkout.title": { + "message": "结账" + }, + "checkout.loading": { + "message": "正在加载结账页面..." + }, + "checkout.email.title": { + "message": "请输入您的邮箱继续" + }, + "checkout.email.placeholder": { + "message": "your@email.com" + }, + "checkout.email.continue": { + "message": "继续" + }, + "checkout.error.loadingOrders": { + "message": "加载订单时出错。" + }, + "checkout.loading.preparing": { + "message": "正在准备结账..." + }, + "checkout.loading.redirecting": { + "message": "正在跳转到您的订单..." + }, + "checkout.success.title": { + "message": "支付成功" + }, + "checkout.success.loading": { + "message": "加载中..." + }, + "checkout.success.processing": { + "message": "正在处理您的支付..." + }, + "checkout.success.processingDesc": { + "message": "请稍候,我们正在生成您的许可证。" + }, + "checkout.success.failed.title": { + "message": "许可证生成失败" + }, + "checkout.success.failed.desc": { + "message": "您的支付已成功,但我们在生成许可证时遇到问题。请联系客服并提供您的交易 ID。" + }, + "checkout.success.failed.tryAgain": { + "message": "重试" + }, + "checkout.success.successTitle": { + "message": "支付成功!" + }, + "checkout.success.successDesc": { + "message": "感谢您的购买。您的订单已成功处理。" + }, + "checkout.success.license.title": { + "message": "您的许可证" + }, + "checkout.success.license.key": { + "message": "许可证密钥" + }, + "checkout.success.license.copy": { + "message": "复制" + }, + "checkout.success.license.copied": { + "message": "已复制!" + }, + "checkout.success.license.saveReminder": { + "message": "请妥善保存您的许可证密钥。" + }, + "checkout.success.order.id": { + "message": "订单号:" + }, + "checkout.success.order.email": { + "message": "邮箱:" + }, + "checkout.success.order.plan": { + "message": "套餐:" + }, + "checkout.success.order.type": { + "message": "类型:" + }, + "checkout.success.order.expires": { + "message": "到期时间:" + }, + "checkout.success.returnHome": { + "message": "返回首页" + }, + "checkout.success.noTransaction": { + "message": "未找到交易信息" + }, + "checkout.success.transactionId": { + "message": "交易 ID" + }, + "orders.title": { + "message": "我的订单" + }, + "orders.loading": { + "message": "加载中..." + }, + "orders.email.title": { + "message": "请输入您的邮箱查看订单" + }, + "orders.email.placeholder": { + "message": "your@email.com" + }, + "orders.email.viewOrders": { + "message": "查看订单" + }, + "orders.backToPricing": { + "message": "返回价格页" + }, + "orders.error.loading": { + "message": "加载订单时出错。" + }, + "orders.error.tryAgain": { + "message": "重试" + }, + "orders.loading.text": { + "message": "正在加载您的订单..." + }, + "orders.sessionError.invalid": { + "message": "会话数据无效。请输入您的邮箱查看订单。" + }, + "orders.sessionError.config": { + "message": "会话配置错误。请输入您的邮箱查看订单。" + }, + "orders.yourOrders.title": { + "message": "您的订单" + }, + "orders.existingOrder.warning": { + "message": "此邮箱已有关联订单。" + }, + "orders.noOrders": { + "message": "未找到此邮箱的订单。" + }, + "orders.searchAnother": { + "message": "搜索其他邮箱" + }, + "orders.customer.title": { + "message": "客户信息" + }, + "orders.customer.email": { + "message": "邮箱" + }, + "orders.customer.id": { + "message": "客户 ID" + }, + "orders.license.title": { + "message": "许可证" + }, + "orders.license.key": { + "message": "许可证密钥" + }, + "orders.license.status": { + "message": "状态" + }, + "orders.license.status.active": { + "message": "有效" + }, + "orders.license.status.inactive": { + "message": "无效" + }, + "orders.order.title": { + "message": "订单" + }, + "orders.order.id": { + "message": "订单号" + }, + "orders.order.amount": { + "message": "金额" + }, + "orders.order.created": { + "message": "创建时间" + }, + "orders.order.paidAt": { + "message": "支付时间" + }, + "orders.order.status": { + "message": "状态" + }, + "orders.order.status.completed": { + "message": "已完成" + }, + "orders.order.status.pending": { + "message": "待处理" + }, + "orders.subscription.title": { + "message": "订阅" + }, + "orders.subscription.status": { + "message": "状态" + }, + "orders.subscription.activeAt": { + "message": "生效时间" + }, + "orders.subscription.expiresAt": { + "message": "到期时间" + }, + "orders.subscription.cancelWarning": { + "message": "将在周期结束时取消" + }, + "orders.refresh": { + "message": "刷新" + }, + "orders.refreshing": { + "message": "刷新中..." } } diff --git a/i18n/zh-Hans/docusaurus-theme-classic/footer.json b/i18n/zh-Hans/docusaurus-theme-classic/footer.json index 3e8b9ea84..5178288ae 100644 --- a/i18n/zh-Hans/docusaurus-theme-classic/footer.json +++ b/i18n/zh-Hans/docusaurus-theme-classic/footer.json @@ -3,10 +3,6 @@ "message": "社群", "description": "The title of the footer links column with title=Community in the footer" }, - "link.title.More": { - "message": "更多资源", - "description": "The title of the footer links column with title=More in the footer" - }, "link.item.label.Telegram": { "message": "电报", "description": "The label of footer link with label=Telegram linking to https://t.me/+csa3Y2KOx44wMGRl" @@ -38,5 +34,21 @@ "link.item.label.EULA": { "message": "最终用户许可协议", "description": "The label of footer link with label=EULA linking to /eula" + }, + "copyright": { + "message": "Copyright © 2018 - 2026 Zealot.", + "description": "The footer copyright" + }, + "link.title.Product": { + "message": "产品服务", + "description": "The title of the footer links column with title=Product in the footer" + }, + "link.item.label.Changelog": { + "message": "变更日志", + "description": "The label of footer link with label=Changelog linking to /docs/user-guide/changelog" + }, + "link.item.label.API": { + "message": "接口文档", + "description": "The label of footer link with label=API linking to /docs/developer-guide/api" } } diff --git a/i18n/zh-Hans/docusaurus-theme-classic/navbar.json b/i18n/zh-Hans/docusaurus-theme-classic/navbar.json index b57d762bf..2252d2663 100644 --- a/i18n/zh-Hans/docusaurus-theme-classic/navbar.json +++ b/i18n/zh-Hans/docusaurus-theme-classic/navbar.json @@ -19,18 +19,6 @@ "message": "Zealot Logo", "description": "The alt text of navbar logo" }, - "item.label.Contributing": { - "message": "贡献者指南", - "description": "Navbar item with label Contributing" - }, - "item.label.API": { - "message": "API", - "description": "Navbar item with label API" - }, - "item.label.Changelog": { - "message": "变更日志", - "description": "Navbar item with label Changelog" - }, "item.label.Donate": { "message": "捐献", "description": "Navbar item with label Donate" diff --git a/package.json b/package.json index 37e23ce63..102caf1cd 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,12 @@ "@docusaurus/preset-classic": "^3.9.2", "@docusaurus/tsconfig": "^3.9.2", "@gracefullight/docusaurus-plugin-microsoft-clarity": "^1.0.0", - "@mdx-js/react": "^3.1.1", + "@mdx-js/react": "^3.0.0", + "@paddle/paddle-js": "^1.6.1", + "@tanstack/react-query": "^5.90.21", + "@tanstack/react-query-devtools": "^5.91.3", "clsx": "^2.1.1", + "docusaurus2-dotenv": "^1.4.0", "prism-react-renderer": "^2.4.1", "react": "19.0.0", "react-dom": "19.0.0", @@ -34,7 +38,14 @@ "@babel/helper-explode-assignable-expression": "^7.18.6", "@crowdin/cli": "^4.14.0", "@docusaurus/module-type-aliases": "^3.9.2", - "@docusaurus/types": "^3.9.2" + "@docusaurus/types": "^3.9.2", + "@tailwindcss/postcss": "^4.1.18", + "@tanstack/eslint-plugin-query": "^5.91.2", + "postcss": "^8.5.6", + "prettier-plugin-tailwindcss": "^0.7.2", + "tailwind-merge": "^3.4.0", + "tailwindcss": "^4.1.18", + "tailwindcss-animate": "^1.0.7" }, "browserslist": { "production": [ @@ -43,12 +54,12 @@ "not op_mini all" ], "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" ] }, "engines": { - "node": ">=18.0" + "node": ">=22.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 29081965f..f5735f080 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,22 +10,34 @@ importers: dependencies: '@docusaurus/core': specifier: ^3.9.2 - version: 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + version: 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) '@docusaurus/preset-classic': specifier: ^3.9.2 - version: 3.9.2(@algolia/client-search@5.40.0)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(@types/react@19.2.14)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3)(typescript@5.8.2) + version: 3.9.2(@algolia/client-search@5.40.0)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(@types/react@19.2.14)(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3)(typescript@5.8.2) '@docusaurus/tsconfig': specifier: ^3.9.2 version: 3.9.2 '@gracefullight/docusaurus-plugin-microsoft-clarity': specifier: ^1.0.0 - version: 1.0.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.0.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mdx-js/react': - specifier: ^3.1.1 + specifier: ^3.0.0 version: 3.1.1(@types/react@19.2.14)(react@19.0.0) + '@paddle/paddle-js': + specifier: ^1.6.1 + version: 1.6.1 + '@tanstack/react-query': + specifier: ^5.90.21 + version: 5.90.21(react@19.0.0) + '@tanstack/react-query-devtools': + specifier: ^5.91.3 + version: 5.91.3(@tanstack/react-query@5.90.21(react@19.0.0))(react@19.0.0) clsx: specifier: ^2.1.1 version: 2.1.1 + docusaurus2-dotenv: + specifier: ^1.4.0 + version: 1.4.0(webpack@5.99.8) prism-react-renderer: specifier: ^2.4.1 version: 2.4.1(react@19.0.0) @@ -37,7 +49,7 @@ importers: version: 19.0.0(react@19.0.0) redocusaurus: specifier: ^2.5.0 - version: 2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@docusaurus/utils@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(webpack@5.99.8) + version: 2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@docusaurus/utils@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(webpack@5.99.8) devDependencies: '@babel/helper-explode-assignable-expression': specifier: ^7.18.6 @@ -47,10 +59,31 @@ importers: version: 4.14.0 '@docusaurus/module-type-aliases': specifier: ^3.9.2 - version: 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@docusaurus/types': specifier: ^3.9.2 - version: 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@tailwindcss/postcss': + specifier: ^4.1.18 + version: 4.1.18 + '@tanstack/eslint-plugin-query': + specifier: ^5.91.2 + version: 5.91.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.2) + postcss: + specifier: ^8.5.6 + version: 8.5.6 + prettier-plugin-tailwindcss: + specifier: ^0.7.2 + version: 0.7.2(prettier@3.7.4) + tailwind-merge: + specifier: ^3.4.0 + version: 3.4.0 + tailwindcss: + specifier: ^4.1.18 + version: 4.1.18 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@4.1.18) packages: @@ -133,6 +166,10 @@ packages: resolution: {integrity: sha512-5qCRoySnzpbQVg2IPLGFCm4LF75pToxI5tdjOYgUMNL/um91aJ4dH3SVdBEuFlVsalxl8mh3bWPgkUmv6NpJiQ==} engines: {node: '>= 14.0.0'} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -685,10 +722,6 @@ packages: resolution: {integrity: sha512-909rVuj3phpjW6y0MCXAZ5iNeORePa6ldJvp2baWGcTjwqbBDDz6xoS5JHJ7lS88NlwLYj07ImL/8IUMtDZzTA==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.3': - resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.6': resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} @@ -1196,6 +1229,44 @@ packages: '@emotion/unitless@0.8.1': resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.4': + resolution: {integrity: sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@exodus/schemasafe@1.3.0': resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} @@ -1208,6 +1279,22 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -1224,6 +1311,9 @@ packages: resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1238,6 +1328,9 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1301,6 +1394,9 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@paddle/paddle-js@1.6.1': + resolution: {integrity: sha512-Yh6i99Wz22EcJ0KyZfTxzzDHduet3fpKmqEKSmZlHxlgIXDyBjkzdGNWw3/yR7Esdvr6HuLu3WfDTod5lC0alw==} + '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} @@ -1437,6 +1533,120 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} + '@tailwindcss/node@4.1.18': + resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} + + '@tailwindcss/oxide-android-arm64@4.1.18': + resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.18': + resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.18': + resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.18': + resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.18': + resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.1.18': + resolution: {integrity: sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==} + + '@tanstack/eslint-plugin-query@5.91.2': + resolution: {integrity: sha512-UPeWKl/Acu1IuuHJlsN+eITUHqAaa9/04geHHPedY8siVarSaWprY0SVMKrkpKfk5ehRT7+/MZ5QwWuEtkWrFw==} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@tanstack/query-core@5.90.20': + resolution: {integrity: sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==} + + '@tanstack/query-devtools@5.93.0': + resolution: {integrity: sha512-+kpsx1NQnOFTZsw6HAFCW3HkKg0+2cepGtAWXjiiSOJJ1CtQpt72EE2nyZb+AjAbLRPoeRmPJ8MtQd8r8gsPdg==} + + '@tanstack/react-query-devtools@5.91.3': + resolution: {integrity: sha512-nlahjMtd/J1h7IzOOfqeyDh5LNfG0eULwlltPEonYy0QL+nqrBB+nyzJfULV+moL7sZyxc2sHdNJki+vLA9BSA==} + peerDependencies: + '@tanstack/react-query': ^5.90.20 + react: ^18 || ^19 + + '@tanstack/react-query@5.90.21': + resolution: {integrity: sha512-0Lu6y5t+tvlTJMTO7oh5NSpJfpg/5D41LlThfepTixPYkJ0sE2Jj0m0f6yYqujBwIXlId87e234+MxG3D3g7kg==} + peerDependencies: + react: ^18 || ^19 + '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -1468,6 +1678,9 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} @@ -1594,6 +1807,43 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@typescript-eslint/project-service@8.52.0': + resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@8.52.0': + resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.52.0': + resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@8.52.0': + resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.52.0': + resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.52.0': + resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.52.0': + resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -1666,6 +1916,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} @@ -1699,6 +1954,9 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -1832,6 +2090,9 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -2282,6 +2543,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decko@1.2.0: resolution: {integrity: sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==} @@ -2296,6 +2566,9 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -2344,6 +2617,10 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -2376,6 +2653,9 @@ packages: '@docusaurus/theme-common': ^3.6.0 webpack: ^5.0.0 + docusaurus2-dotenv@1.4.0: + resolution: {integrity: sha512-iWqem5fnBAyeBBtX75Fxp71uUAnwFaXzOmade8zAhN4vL3RG9m27sLSRwjJGVVgIkEo3esjGyCcTGTiCjfi+sg==} + dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} @@ -2412,6 +2692,18 @@ packages: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} engines: {node: '>=10'} + dotenv-defaults@1.1.1: + resolution: {integrity: sha512-6fPRo9o/3MxKvmRZBD3oNFdxODdhJtIy1zcJeUSCs6HCy4tarUpd+G67UTU9tF6OWXeSPqsm4fPAB+2eY9Rt9Q==} + + dotenv-webpack@1.7.0: + resolution: {integrity: sha512-wwNtOBW/6gLQSkb8p43y0Wts970A3xtNiG/mpwj9MLUhtPCQG6i+/DSXXoNN7fbPCU/vQ7JjwGmgOeGZSSZnsw==} + peerDependencies: + webpack: ^1 || ^2 || ^3 || ^4 + + dotenv@6.2.0: + resolution: {integrity: sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==} + engines: {node: '>=6'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -2459,6 +2751,10 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.18.4: + resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} + engines: {node: '>=10.13.0'} + entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -2524,11 +2820,41 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -2616,6 +2942,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} @@ -2636,6 +2965,15 @@ packages: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + feed@4.2.2: resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} engines: {node: '>=0.4.0'} @@ -2644,6 +2982,10 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + file-loader@6.2.0: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} @@ -2662,14 +3004,25 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + find-up@6.3.0: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true + flatted@3.3.4: + resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} + follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -2771,6 +3124,10 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -3171,6 +3528,10 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} @@ -3189,6 +3550,10 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -3214,6 +3579,9 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -3244,6 +3612,84 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.30.2: + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.30.2: + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.2: + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.2: + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.2: + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.2: + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.30.2: + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.30.2: + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.30.2: + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.30.2: + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.2: + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.2: + resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + engines: {node: '>= 12.0.0'} + lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -3259,6 +3705,10 @@ packages: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + locate-path@7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3273,6 +3723,9 @@ packages: lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -3299,6 +3752,9 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} @@ -3582,10 +4038,17 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -3645,6 +4108,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -3779,6 +4245,10 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} engines: {node: '>=12.20'} @@ -3787,10 +4257,18 @@ packages: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + p-locate@6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3848,6 +4326,10 @@ packages: path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + path-exists@5.0.0: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3892,6 +4374,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pkg-dir@7.0.0: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} @@ -4300,10 +4786,74 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.4: - resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-tailwindcss@0.7.2: + resolution: {integrity: sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==} + engines: {node: '>=20.19'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + engines: {node: '>=14'} + hasBin: true + pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} @@ -4651,6 +5201,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -4922,6 +5477,17 @@ packages: resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==} hasBin: true + tailwind-merge@3.4.0: + resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@4.1.18: + resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -4966,6 +5532,10 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinypool@1.1.0: resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -4997,12 +5567,22 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -5242,6 +5822,10 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -5322,6 +5906,10 @@ packages: resolution: {integrity: sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==} engines: {node: '>=12'} + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + yocto-queue@1.2.1: resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} engines: {node: '>=12.20'} @@ -5445,6 +6033,8 @@ snapshots: dependencies: '@algolia/client-common': 5.40.0 + '@alloc/quick-lru@5.2.0': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -6165,8 +6755,6 @@ snapshots: dependencies: core-js-pure: 3.42.0 - '@babel/runtime@7.28.3': {} - '@babel/runtime@7.28.6': {} '@babel/template@7.27.2': @@ -6235,224 +6823,224 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.4)': + '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.6)': dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - '@csstools/postcss-color-function@4.0.10(postcss@8.5.4)': + '@csstools/postcss-color-function@4.0.10(postcss@8.5.6)': dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-color-mix-function@3.0.10(postcss@8.5.4)': + '@csstools/postcss-color-mix-function@3.0.10(postcss@8.5.6)': dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-color-mix-variadic-function-arguments@1.0.0(postcss@8.5.4)': + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.0(postcss@8.5.6)': dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-content-alt-text@2.0.6(postcss@8.5.4)': + '@csstools/postcss-content-alt-text@2.0.6(postcss@8.5.6)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.4)': + '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.6)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.4)': + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.6)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.10(postcss@8.5.4)': + '@csstools/postcss-gamut-mapping@2.0.10(postcss@8.5.6)': dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-gradients-interpolation-method@5.0.10(postcss@8.5.4)': + '@csstools/postcss-gradients-interpolation-method@5.0.10(postcss@8.5.6)': dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-hwb-function@4.0.10(postcss@8.5.4)': + '@csstools/postcss-hwb-function@4.0.10(postcss@8.5.6)': dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-ic-unit@4.0.2(postcss@8.5.4)': + '@csstools/postcss-ic-unit@4.0.2(postcss@8.5.6)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.1(postcss@8.5.4)': + '@csstools/postcss-initial@2.0.1(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.4)': + '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.6)': dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - '@csstools/postcss-light-dark-function@2.0.9(postcss@8.5.4)': + '@csstools/postcss-light-dark-function@2.0.9(postcss@8.5.6)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.4)': + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.4)': + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.4)': + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.4)': + '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.4)': + '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.6)': dependencies: '@csstools/css-tokenizer': 3.0.4 - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.4)': + '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.6)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.4)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.6)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.4)': + '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.6)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.4)': + '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.10(postcss@8.5.4)': + '@csstools/postcss-oklab-function@4.0.10(postcss@8.5.6)': dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-progressive-custom-properties@4.1.0(postcss@8.5.4)': + '@csstools/postcss-progressive-custom-properties@4.1.0(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-random-function@2.0.1(postcss@8.5.4)': + '@csstools/postcss-random-function@2.0.1(postcss@8.5.6)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-relative-color-syntax@3.0.10(postcss@8.5.4)': + '@csstools/postcss-relative-color-syntax@3.0.10(postcss@8.5.6)': dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.4)': + '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.4)': + '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.6)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.4)': + '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.6)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.4)': + '@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.6)': dependencies: '@csstools/color-helpers': 5.0.2 - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.4)': + '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.6)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.4 + postcss: 8.5.6 - '@csstools/postcss-unset-value@4.0.0(postcss@8.5.4)': + '@csstools/postcss-unset-value@4.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.1.0)': dependencies: @@ -6462,9 +7050,9 @@ snapshots: dependencies: postcss-selector-parser: 7.1.0 - '@csstools/utilities@2.0.0(postcss@8.5.4)': + '@csstools/utilities@2.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.4 + postcss: 8.5.6 '@discoveryjs/json-ext@0.5.7': {} @@ -6484,7 +7072,7 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@docusaurus/babel@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/babel@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/core': 7.27.1 '@babel/generator': 7.27.1 @@ -6493,11 +7081,11 @@ snapshots: '@babel/preset-env': 7.27.2(@babel/core@7.27.1) '@babel/preset-react': 7.27.1(@babel/core@7.27.1) '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1) - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.6 '@babel/runtime-corejs3': 7.27.1 '@babel/traverse': 7.27.1 '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -6511,27 +7099,27 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/bundler@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: '@babel/core': 7.27.1 - '@docusaurus/babel': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/babel': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@docusaurus/cssnano-preset': 3.9.2 '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.99.8) clean-css: 5.3.3 copy-webpack-plugin: 11.0.0(webpack@5.99.8) css-loader: 6.11.0(webpack@5.99.8) css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.99.8) - cssnano: 6.1.2(postcss@8.5.4) + cssnano: 6.1.2(postcss@8.5.6) file-loader: 6.2.0(webpack@5.99.8) html-minifier-terser: 7.2.0 mini-css-extract-plugin: 2.9.2(webpack@5.99.8) null-loader: 4.0.1(webpack@5.99.8) - postcss: 8.5.4 - postcss-loader: 7.3.4(postcss@8.5.4)(typescript@5.8.2)(webpack@5.99.8) - postcss-preset-env: 10.2.1(postcss@8.5.4) + postcss: 8.5.6 + postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.8.2)(webpack@5.99.8) + postcss-preset-env: 10.2.1(postcss@8.5.6) terser-webpack-plugin: 5.3.14(webpack@5.99.8) tslib: 2.8.1 url-loader: 4.1.1(file-loader@6.2.0(webpack@5.99.8))(webpack@5.99.8) @@ -6553,15 +7141,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/babel': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/bundler': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/babel': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/bundler': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/mdx-loader': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.0.0) boxen: 6.2.1 chalk: 4.1.2 @@ -6620,9 +7208,9 @@ snapshots: '@docusaurus/cssnano-preset@3.9.2': dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.5.4) - postcss: 8.5.4 - postcss-sort-media-queries: 5.2.0(postcss@8.5.4) + cssnano-preset-advanced: 6.1.2(postcss@8.5.6) + postcss: 8.5.6 + postcss-sort-media-queries: 5.2.0(postcss@8.5.6) tslib: 2.8.1 '@docusaurus/logger@3.7.0': @@ -6635,12 +7223,12 @@ snapshots: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/mdx-loader@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mdx-js/mdx': 3.1.0(acorn@8.14.1) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mdx-js/mdx': 3.1.0(acorn@8.15.0) '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.4.0 @@ -6671,9 +7259,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/module-type-aliases@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/history': 4.7.11 '@types/react': 19.1.12 '@types/react-router-config': 5.0.11 @@ -6690,17 +7278,17 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/mdx-loader': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 11.3.0 @@ -6732,17 +7320,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/module-type-aliases': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/mdx-loader': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/module-type-aliases': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.3.0 @@ -6773,13 +7361,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-content-pages@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/mdx-loader': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/mdx-loader': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -6804,12 +7392,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-css-cascade-layers@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -6832,11 +7420,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-debug@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -6861,11 +7449,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-google-analytics@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) tslib: 2.8.1 @@ -6888,11 +7476,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-google-gtag@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/gtag.js': 0.0.12 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -6916,11 +7504,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-google-tag-manager@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) tslib: 2.8.1 @@ -6943,14 +7531,14 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-sitemap@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -6975,12 +7563,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-svgr@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@svgr/core': 8.1.0(typescript@5.8.2) '@svgr/webpack': 8.1.0(typescript@5.8.2) react: 19.0.0 @@ -7006,23 +7594,23 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.40.0)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(@types/react@19.2.14)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3)(typescript@5.8.2)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-css-cascade-layers': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-debug': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-google-analytics': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-google-gtag': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-google-tag-manager': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-sitemap': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-svgr': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-classic': 3.9.2(@types/react@19.2.14)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.40.0)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(@types/react@19.2.14)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3)(typescript@5.8.2) - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.40.0)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(@types/react@19.2.14)(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3)(typescript@5.8.2)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-css-cascade-layers': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-debug': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-google-analytics': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-google-gtag': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-google-tag-manager': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-sitemap': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-svgr': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/theme-classic': 3.9.2(@types/react@19.2.14)(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.40.0)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(@types/react@19.2.14)(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3)(typescript@5.8.2) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) transitivePeerDependencies: @@ -7052,27 +7640,27 @@ snapshots: '@types/react': 19.2.14 react: 19.0.0 - '@docusaurus/theme-classic@3.9.2(@types/react@19.2.14)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/theme-classic@3.9.2(@types/react@19.2.14)(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/module-type-aliases': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/mdx-loader': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/module-type-aliases': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@docusaurus/theme-translations': 3.9.2 - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.0.0) clsx: 2.1.1 infima: 0.2.0-alpha.45 lodash: 4.17.21 nprogress: 0.2.0 - postcss: 8.5.4 + postcss: 8.5.6 prism-react-renderer: 2.4.1(react@19.0.0) prismjs: 1.30.0 react: 19.0.0 @@ -7100,15 +7688,15 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/mdx-loader': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/module-type-aliases': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/mdx-loader': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/module-type-aliases': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/history': 4.7.11 - '@types/react': 19.1.12 + '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 clsx: 2.1.1 parse-numeric-range: 1.3.0 @@ -7125,16 +7713,16 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.40.0)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(@types/react@19.2.14)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3)(typescript@5.8.2)': + '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.40.0)(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(@types/react@19.2.14)(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3)(typescript@5.8.2)': dependencies: '@docsearch/react': 3.9.0(@algolia/client-search@5.40.0)(@types/react@19.2.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.17.3) - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@docusaurus/theme-translations': 3.9.2 - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) algoliasearch: 5.40.0 algoliasearch-helper: 3.26.0(algoliasearch@5.40.0) clsx: 2.1.1 @@ -7174,9 +7762,9 @@ snapshots: '@docusaurus/tsconfig@3.9.2': {} - '@docusaurus/types@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/types@3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mdx-js/mdx': 3.1.0(acorn@8.14.1) + '@mdx-js/mdx': 3.1.0(acorn@8.15.0) '@types/history': 4.7.11 '@types/react': 19.2.14 commander: 5.1.0 @@ -7195,9 +7783,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/types@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/types@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@mdx-js/mdx': 3.1.0(acorn@8.14.1) + '@mdx-js/mdx': 3.1.0(acorn@8.15.0) '@types/history': 4.7.11 '@types/mdast': 4.0.4 '@types/react': 19.1.12 @@ -7217,9 +7805,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils-common@3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tslib: 2.8.1 transitivePeerDependencies: - '@swc/core' @@ -7231,9 +7819,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils-common@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tslib: 2.8.1 transitivePeerDependencies: - '@swc/core' @@ -7245,11 +7833,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils-validation@3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@docusaurus/logger': 3.7.0 - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 joi: 17.13.3 js-yaml: 4.1.0 @@ -7265,14 +7853,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils-validation@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 joi: 17.13.3 - js-yaml: 4.1.0 + js-yaml: 4.1.1 lodash: 4.17.21 tslib: 2.8.1 transitivePeerDependencies: @@ -7285,11 +7873,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils@3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@docusaurus/logger': 3.7.0 - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) escape-string-regexp: 4.0.0 file-loader: 6.2.0(webpack@5.99.8) fs-extra: 11.3.0 @@ -7317,11 +7905,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) escape-string-regexp: 4.0.0 execa: 5.1.1 file-loader: 6.2.0(webpack@5.99.8) @@ -7330,7 +7918,7 @@ snapshots: globby: 11.1.0 gray-matter: 4.0.3 jiti: 1.21.7 - js-yaml: 4.1.0 + js-yaml: 4.1.1 lodash: 4.17.21 micromatch: 4.0.8 p-queue: 6.6.2 @@ -7358,11 +7946,57 @@ snapshots: '@emotion/unitless@0.8.1': {} + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': + dependencies: + eslint: 9.39.2(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.4': + dependencies: + ajv: 6.14.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.2': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + '@exodus/schemasafe@1.3.0': {} - '@gracefullight/docusaurus-plugin-microsoft-clarity@1.0.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@gracefullight/docusaurus-plugin-microsoft-clarity@1.0.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.7.0(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@swc/core' - acorn @@ -7379,6 +8013,17 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.3 @@ -7402,6 +8047,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -7413,6 +8063,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -7455,7 +8107,7 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@mdx-js/mdx@3.1.0(acorn@8.14.1)': + '@mdx-js/mdx@3.1.0(acorn@8.15.0)': dependencies: '@types/estree': 1.0.7 '@types/estree-jsx': 1.0.5 @@ -7469,7 +8121,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.0(acorn@8.14.1) + recma-jsx: 1.0.0(acorn@8.15.0) recma-stringify: 1.0.0 rehype-recma: 1.0.0 remark-mdx: 3.1.0 @@ -7503,6 +8155,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 + '@paddle/paddle-js@1.6.1': {} + '@pnpm/config.env-replace@1.1.0': {} '@pnpm/network.ca-file@1.0.2': @@ -7670,6 +8324,98 @@ snapshots: dependencies: defer-to-connect: 2.0.1 + '@tailwindcss/node@4.1.18': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.4 + jiti: 2.6.1 + lightningcss: 1.30.2 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.1.18 + + '@tailwindcss/oxide-android-arm64@4.1.18': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.18': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.18': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + optional: true + + '@tailwindcss/oxide@4.1.18': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-x64': 4.1.18 + '@tailwindcss/oxide-freebsd-x64': 4.1.18 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.18 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-x64-musl': 4.1.18 + '@tailwindcss/oxide-wasm32-wasi': 4.1.18 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 + + '@tailwindcss/postcss@4.1.18': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.1.18 + '@tailwindcss/oxide': 4.1.18 + postcss: 8.5.6 + tailwindcss: 4.1.18 + + '@tanstack/eslint-plugin-query@5.91.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.2)': + dependencies: + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.2) + eslint: 9.39.2(jiti@2.6.1) + transitivePeerDependencies: + - supports-color + - typescript + + '@tanstack/query-core@5.90.20': {} + + '@tanstack/query-devtools@5.93.0': {} + + '@tanstack/react-query-devtools@5.91.3(@tanstack/react-query@5.90.21(react@19.0.0))(react@19.0.0)': + dependencies: + '@tanstack/query-devtools': 5.93.0 + '@tanstack/react-query': 5.90.21(react@19.0.0) + react: 19.0.0 + + '@tanstack/react-query@5.90.21(react@19.0.0)': + dependencies: + '@tanstack/query-core': 5.90.20 + react: 19.0.0 + '@trysound/sax@0.2.0': {} '@types/body-parser@1.19.5': @@ -7710,6 +8456,8 @@ snapshots: '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} + '@types/express-serve-static-core@4.19.6': dependencies: '@types/node': 22.15.18 @@ -7856,6 +8604,57 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@typescript-eslint/project-service@8.52.0(typescript@5.8.2)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.8.2) + '@typescript-eslint/types': 8.52.0 + debug: 4.4.3 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.52.0': + dependencies: + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/visitor-keys': 8.52.0 + + '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.8.2)': + dependencies: + typescript: 5.8.2 + + '@typescript-eslint/types@8.52.0': {} + + '@typescript-eslint/typescript-estree@8.52.0(typescript@5.8.2)': + dependencies: + '@typescript-eslint/project-service': 8.52.0(typescript@5.8.2) + '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.8.2) + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/visitor-keys': 8.52.0 + debug: 4.4.3 + minimatch: 9.0.5 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.2)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.8.2) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.52.0': + dependencies: + '@typescript-eslint/types': 8.52.0 + eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.3.0': {} '@webassemblyjs/ast@1.14.1': @@ -7947,12 +8746,18 @@ snapshots: dependencies: acorn: 8.14.1 + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-walk@8.3.4: dependencies: acorn: 8.14.1 acorn@8.14.1: {} + acorn@8.15.0: {} + address@1.2.2: {} agent-base@7.1.3: {} @@ -7982,6 +8787,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@6.14.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -8050,14 +8862,14 @@ snapshots: astring@1.9.0: {} - autoprefixer@10.4.21(postcss@8.5.4): + autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.25.0 caniuse-lite: 1.0.30001761 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.99.8): @@ -8156,6 +8968,11 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 @@ -8451,32 +9268,32 @@ snapshots: dependencies: type-fest: 1.4.0 - css-blank-pseudo@7.0.1(postcss@8.5.4): + css-blank-pseudo@7.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 css-color-keywords@1.0.0: {} - css-declaration-sorter@7.2.0(postcss@8.5.4): + css-declaration-sorter@7.2.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - css-has-pseudo@7.0.2(postcss@8.5.4): + css-has-pseudo@7.0.2(postcss@8.5.6): dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 css-loader@6.11.0(webpack@5.99.8): dependencies: - icss-utils: 5.1.0(postcss@8.5.4) - postcss: 8.5.4 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.4) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.4) - postcss-modules-scope: 3.2.1(postcss@8.5.4) - postcss-modules-values: 4.0.0(postcss@8.5.4) + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) + postcss-modules-scope: 3.2.1(postcss@8.5.6) + postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: @@ -8485,18 +9302,18 @@ snapshots: css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.99.8): dependencies: '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.5.4) + cssnano: 6.1.2(postcss@8.5.6) jest-worker: 29.7.0 - postcss: 8.5.4 + postcss: 8.5.6 schema-utils: 4.3.2 serialize-javascript: 6.0.2 webpack: 5.99.8 optionalDependencies: clean-css: 5.3.3 - css-prefers-color-scheme@10.0.0(postcss@8.5.4): + css-prefers-color-scheme@10.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 css-select@4.3.0: dependencies: @@ -8536,60 +9353,60 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-advanced@6.1.2(postcss@8.5.4): + cssnano-preset-advanced@6.1.2(postcss@8.5.6): dependencies: - autoprefixer: 10.4.21(postcss@8.5.4) + autoprefixer: 10.4.21(postcss@8.5.6) browserslist: 4.25.0 - cssnano-preset-default: 6.1.2(postcss@8.5.4) - postcss: 8.5.4 - postcss-discard-unused: 6.0.5(postcss@8.5.4) - postcss-merge-idents: 6.0.3(postcss@8.5.4) - postcss-reduce-idents: 6.0.3(postcss@8.5.4) - postcss-zindex: 6.0.2(postcss@8.5.4) + cssnano-preset-default: 6.1.2(postcss@8.5.6) + postcss: 8.5.6 + postcss-discard-unused: 6.0.5(postcss@8.5.6) + postcss-merge-idents: 6.0.3(postcss@8.5.6) + postcss-reduce-idents: 6.0.3(postcss@8.5.6) + postcss-zindex: 6.0.2(postcss@8.5.6) - cssnano-preset-default@6.1.2(postcss@8.5.4): + cssnano-preset-default@6.1.2(postcss@8.5.6): dependencies: browserslist: 4.25.0 - css-declaration-sorter: 7.2.0(postcss@8.5.4) - cssnano-utils: 4.0.2(postcss@8.5.4) - postcss: 8.5.4 - postcss-calc: 9.0.1(postcss@8.5.4) - postcss-colormin: 6.1.0(postcss@8.5.4) - postcss-convert-values: 6.1.0(postcss@8.5.4) - postcss-discard-comments: 6.0.2(postcss@8.5.4) - postcss-discard-duplicates: 6.0.3(postcss@8.5.4) - postcss-discard-empty: 6.0.3(postcss@8.5.4) - postcss-discard-overridden: 6.0.2(postcss@8.5.4) - postcss-merge-longhand: 6.0.5(postcss@8.5.4) - postcss-merge-rules: 6.1.1(postcss@8.5.4) - postcss-minify-font-values: 6.1.0(postcss@8.5.4) - postcss-minify-gradients: 6.0.3(postcss@8.5.4) - postcss-minify-params: 6.1.0(postcss@8.5.4) - postcss-minify-selectors: 6.0.4(postcss@8.5.4) - postcss-normalize-charset: 6.0.2(postcss@8.5.4) - postcss-normalize-display-values: 6.0.2(postcss@8.5.4) - postcss-normalize-positions: 6.0.2(postcss@8.5.4) - postcss-normalize-repeat-style: 6.0.2(postcss@8.5.4) - postcss-normalize-string: 6.0.2(postcss@8.5.4) - postcss-normalize-timing-functions: 6.0.2(postcss@8.5.4) - postcss-normalize-unicode: 6.1.0(postcss@8.5.4) - postcss-normalize-url: 6.0.2(postcss@8.5.4) - postcss-normalize-whitespace: 6.0.2(postcss@8.5.4) - postcss-ordered-values: 6.0.2(postcss@8.5.4) - postcss-reduce-initial: 6.1.0(postcss@8.5.4) - postcss-reduce-transforms: 6.0.2(postcss@8.5.4) - postcss-svgo: 6.0.3(postcss@8.5.4) - postcss-unique-selectors: 6.0.4(postcss@8.5.4) - - cssnano-utils@4.0.2(postcss@8.5.4): - dependencies: - postcss: 8.5.4 - - cssnano@6.1.2(postcss@8.5.4): - dependencies: - cssnano-preset-default: 6.1.2(postcss@8.5.4) + css-declaration-sorter: 7.2.0(postcss@8.5.6) + cssnano-utils: 4.0.2(postcss@8.5.6) + postcss: 8.5.6 + postcss-calc: 9.0.1(postcss@8.5.6) + postcss-colormin: 6.1.0(postcss@8.5.6) + postcss-convert-values: 6.1.0(postcss@8.5.6) + postcss-discard-comments: 6.0.2(postcss@8.5.6) + postcss-discard-duplicates: 6.0.3(postcss@8.5.6) + postcss-discard-empty: 6.0.3(postcss@8.5.6) + postcss-discard-overridden: 6.0.2(postcss@8.5.6) + postcss-merge-longhand: 6.0.5(postcss@8.5.6) + postcss-merge-rules: 6.1.1(postcss@8.5.6) + postcss-minify-font-values: 6.1.0(postcss@8.5.6) + postcss-minify-gradients: 6.0.3(postcss@8.5.6) + postcss-minify-params: 6.1.0(postcss@8.5.6) + postcss-minify-selectors: 6.0.4(postcss@8.5.6) + postcss-normalize-charset: 6.0.2(postcss@8.5.6) + postcss-normalize-display-values: 6.0.2(postcss@8.5.6) + postcss-normalize-positions: 6.0.2(postcss@8.5.6) + postcss-normalize-repeat-style: 6.0.2(postcss@8.5.6) + postcss-normalize-string: 6.0.2(postcss@8.5.6) + postcss-normalize-timing-functions: 6.0.2(postcss@8.5.6) + postcss-normalize-unicode: 6.1.0(postcss@8.5.6) + postcss-normalize-url: 6.0.2(postcss@8.5.6) + postcss-normalize-whitespace: 6.0.2(postcss@8.5.6) + postcss-ordered-values: 6.0.2(postcss@8.5.6) + postcss-reduce-initial: 6.1.0(postcss@8.5.6) + postcss-reduce-transforms: 6.0.2(postcss@8.5.6) + postcss-svgo: 6.0.3(postcss@8.5.6) + postcss-unique-selectors: 6.0.4(postcss@8.5.6) + + cssnano-utils@4.0.2(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + cssnano@6.1.2(postcss@8.5.6): + dependencies: + cssnano-preset-default: 6.1.2(postcss@8.5.6) lilconfig: 3.1.3 - postcss: 8.5.4 + postcss: 8.5.6 csso@5.0.5: dependencies: @@ -8609,6 +9426,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decko@1.2.0: {} decode-named-character-reference@1.1.0: @@ -8621,6 +9442,8 @@ snapshots: deep-extend@0.6.0: {} + deep-is@0.1.4: {} + deepmerge@4.3.1: {} default-browser-id@5.0.0: {} @@ -8656,6 +9479,8 @@ snapshots: destroy@1.2.0: {} + detect-libc@2.1.2: {} + detect-node@2.1.0: {} detect-port@1.6.1: @@ -8677,9 +9502,9 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 - docusaurus-plugin-redoc@2.5.0(@docusaurus/utils@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): + docusaurus-plugin-redoc@2.5.0(@docusaurus/utils@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): dependencies: - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@redocly/openapi-core': 1.16.0 redoc: 2.4.0(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) transitivePeerDependencies: @@ -8692,15 +9517,15 @@ snapshots: - styled-components - supports-color - docusaurus-theme-redoc@2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.99.8): + docusaurus-theme-redoc@2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.99.8): dependencies: - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@redocly/openapi-core': 1.16.0 clsx: 1.2.1 lodash: 4.17.21 mobx: 6.13.7 - postcss: 8.5.4 - postcss-prefix-selector: 1.16.1(postcss@8.5.4) + postcss: 8.5.6 + postcss-prefix-selector: 1.16.1(postcss@8.5.6) redoc: 2.4.0(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) styled-components: 6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0) webpack: 5.99.8 @@ -8712,6 +9537,12 @@ snapshots: - react-native - supports-color + docusaurus2-dotenv@1.4.0(webpack@5.99.8): + dependencies: + dotenv-webpack: 1.7.0(webpack@5.99.8) + transitivePeerDependencies: + - webpack + dom-converter@0.2.0: dependencies: utila: 0.4.0 @@ -8763,6 +9594,17 @@ snapshots: dependencies: is-obj: 2.0.0 + dotenv-defaults@1.1.1: + dependencies: + dotenv: 6.2.0 + + dotenv-webpack@1.7.0(webpack@5.99.8): + dependencies: + dotenv-defaults: 1.1.1 + webpack: 5.99.8 + + dotenv@6.2.0: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -8798,6 +9640,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.18.4: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + entities@2.2.0: {} entities@4.5.0: {} @@ -8851,8 +9698,68 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@9.39.2(jiti@2.6.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.4 + '@eslint/js': 9.39.2 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.14.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + esprima@4.0.1: {} + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -8887,7 +9794,7 @@ snapshots: estree-util-value-to-estree@3.4.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 estree-util-visit@2.0.0: dependencies: @@ -8981,6 +9888,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-levenshtein@2.0.6: {} + fast-safe-stringify@2.1.1: {} fast-uri@3.0.6: {} @@ -9001,6 +9910,10 @@ snapshots: dependencies: websocket-driver: 0.7.4 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + feed@4.2.2: dependencies: xml-js: 1.6.11 @@ -9009,6 +9922,10 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + file-loader@6.2.0(webpack@5.99.8): dependencies: loader-utils: 2.0.4 @@ -9036,13 +9953,25 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + find-up@6.3.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 + flat-cache@4.0.1: + dependencies: + flatted: 3.3.4 + keyv: 4.5.4 + flat@5.0.2: {} + flatted@3.3.4: {} + follow-redirects@1.15.9: {} foreach@2.0.6: {} @@ -9127,6 +10056,8 @@ snapshots: globals@11.12.0: {} + globals@14.0.0: {} + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -9420,9 +10351,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.4): + icss-utils@5.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 ignore@5.3.2: {} @@ -9582,6 +10513,8 @@ snapshots: jiti@1.21.7: {} + jiti@2.6.1: {} + joi@17.13.3: dependencies: '@hapi/hoek': 9.3.0 @@ -9603,6 +10536,10 @@ snapshots: dependencies: argparse: 2.0.1 + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + jsesc@3.0.2: {} jsesc@3.1.0: {} @@ -9619,6 +10556,8 @@ snapshots: json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} + json5@2.2.3: {} jsonfile@6.1.0: @@ -9646,6 +10585,60 @@ snapshots: leven@3.1.0: {} + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-android-arm64@1.30.2: + optional: true + + lightningcss-darwin-arm64@1.30.2: + optional: true + + lightningcss-darwin-x64@1.30.2: + optional: true + + lightningcss-freebsd-x64@1.30.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.2: + optional: true + + lightningcss-linux-arm64-gnu@1.30.2: + optional: true + + lightningcss-linux-arm64-musl@1.30.2: + optional: true + + lightningcss-linux-x64-gnu@1.30.2: + optional: true + + lightningcss-linux-x64-musl@1.30.2: + optional: true + + lightningcss-win32-arm64-msvc@1.30.2: + optional: true + + lightningcss-win32-x64-msvc@1.30.2: + optional: true + + lightningcss@1.30.2: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.30.2 + lightningcss-darwin-arm64: 1.30.2 + lightningcss-darwin-x64: 1.30.2 + lightningcss-freebsd-x64: 1.30.2 + lightningcss-linux-arm-gnueabihf: 1.30.2 + lightningcss-linux-arm64-gnu: 1.30.2 + lightningcss-linux-arm64-musl: 1.30.2 + lightningcss-linux-x64-gnu: 1.30.2 + lightningcss-linux-x64-musl: 1.30.2 + lightningcss-win32-arm64-msvc: 1.30.2 + lightningcss-win32-x64-msvc: 1.30.2 + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -9658,6 +10651,10 @@ snapshots: emojis-list: 3.0.0 json5: 2.2.3 + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + locate-path@7.2.0: dependencies: p-locate: 6.0.0 @@ -9668,6 +10665,8 @@ snapshots: lodash.memoize@4.1.2: {} + lodash.merge@4.6.2: {} + lodash.uniq@4.5.0: {} lodash@4.17.21: {} @@ -9690,6 +10689,10 @@ snapshots: lunr@2.3.9: {} + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + mark.js@8.11.1: {} markdown-extensions@2.0.0: {} @@ -10253,10 +11256,18 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} minipass@7.1.3: {} @@ -10296,6 +11307,8 @@ snapshots: nanoid@3.3.11: {} + natural-compare@1.4.0: {} + negotiator@0.6.3: {} negotiator@0.6.4: {} @@ -10435,14 +11448,31 @@ snapshots: opener@1.5.2: {} + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + p-cancelable@3.0.0: {} p-finally@1.0.0: {} + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + p-limit@4.0.0: dependencies: yocto-queue: 1.2.1 + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + p-locate@6.0.0: dependencies: p-limit: 4.0.0 @@ -10519,6 +11549,8 @@ snapshots: path-browserify@1.0.1: {} + path-exists@4.0.0: {} + path-exists@5.0.0: {} path-is-absolute@1.0.1: {} @@ -10547,6 +11579,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.3: {} + pkg-dir@7.0.0: dependencies: find-up: 6.3.0 @@ -10557,404 +11591,404 @@ snapshots: dependencies: '@babel/runtime': 7.28.6 - postcss-attribute-case-insensitive@7.0.1(postcss@8.5.4): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-calc@9.0.1(postcss@8.5.4): + postcss-calc@9.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-clamp@4.1.0(postcss@8.5.4): + postcss-clamp@4.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.10(postcss@8.5.4): + postcss-color-functional-notation@7.0.10(postcss@8.5.6): dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - postcss-color-hex-alpha@10.0.0(postcss@8.5.4): + postcss-color-hex-alpha@10.0.0(postcss@8.5.6): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.5.4): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.6): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-colormin@6.1.0(postcss@8.5.4): + postcss-colormin@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.25.0 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-convert-values@6.1.0(postcss@8.5.4): + postcss-convert-values@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.25.0 - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.6(postcss@8.5.4): + postcss-custom-media@11.0.6(postcss@8.5.6): dependencies: '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.4 + postcss: 8.5.6 - postcss-custom-properties@14.0.6(postcss@8.5.4): + postcss-custom-properties@14.0.6(postcss@8.5.6): dependencies: '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.5(postcss@8.5.4): + postcss-custom-selectors@8.0.5(postcss@8.5.6): dependencies: '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-dir-pseudo-class@9.0.1(postcss@8.5.4): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-discard-comments@6.0.2(postcss@8.5.4): + postcss-discard-comments@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-discard-duplicates@6.0.3(postcss@8.5.4): + postcss-discard-duplicates@6.0.3(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-discard-empty@6.0.3(postcss@8.5.4): + postcss-discard-empty@6.0.3(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-discard-overridden@6.0.2(postcss@8.5.4): + postcss-discard-overridden@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-discard-unused@6.0.5(postcss@8.5.4): + postcss-discard-unused@6.0.5(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-double-position-gradients@6.0.2(postcss@8.5.4): + postcss-double-position-gradients@6.0.2(postcss@8.5.6): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.1(postcss@8.5.4): + postcss-focus-visible@10.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-focus-within@9.0.1(postcss@8.5.4): + postcss-focus-within@9.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-font-variant@5.0.0(postcss@8.5.4): + postcss-font-variant@5.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-gap-properties@6.0.0(postcss@8.5.4): + postcss-gap-properties@6.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-image-set-function@7.0.0(postcss@8.5.4): + postcss-image-set-function@7.0.0(postcss@8.5.6): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-lab-function@7.0.10(postcss@8.5.4): + postcss-lab-function@7.0.10(postcss@8.5.6): dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/utilities': 2.0.0(postcss@8.5.4) - postcss: 8.5.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - postcss-loader@7.3.4(postcss@8.5.4)(typescript@5.8.2)(webpack@5.99.8): + postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.8.2)(webpack@5.99.8): dependencies: cosmiconfig: 8.3.6(typescript@5.8.2) jiti: 1.21.7 - postcss: 8.5.4 + postcss: 8.5.6 semver: 7.7.2 webpack: 5.99.8 transitivePeerDependencies: - typescript - postcss-logical@8.1.0(postcss@8.5.4): + postcss-logical@8.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-merge-idents@6.0.3(postcss@8.5.4): + postcss-merge-idents@6.0.3(postcss@8.5.6): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 4.0.2(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-merge-longhand@6.0.5(postcss@8.5.4): + postcss-merge-longhand@6.0.5(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.5.4) + stylehacks: 6.1.1(postcss@8.5.6) - postcss-merge-rules@6.1.1(postcss@8.5.4): + postcss-merge-rules@6.1.1(postcss@8.5.6): dependencies: browserslist: 4.25.0 caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 4.0.2(postcss@8.5.6) + postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@6.1.0(postcss@8.5.4): + postcss-minify-font-values@6.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-gradients@6.0.3(postcss@8.5.4): + postcss-minify-gradients@6.0.3(postcss@8.5.6): dependencies: colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 4.0.2(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-params@6.1.0(postcss@8.5.4): + postcss-minify-params@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.25.0 - cssnano-utils: 4.0.2(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 4.0.2(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-selectors@6.0.4(postcss@8.5.4): + postcss-minify-selectors@6.0.4(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-modules-extract-imports@3.1.0(postcss@8.5.4): + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-modules-local-by-default@4.2.0(postcss@8.5.4): + postcss-modules-local-by-default@4.2.0(postcss@8.5.6): dependencies: - icss-utils: 5.1.0(postcss@8.5.4) - postcss: 8.5.4 + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.4): + postcss-modules-scope@3.2.1(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-modules-values@4.0.0(postcss@8.5.4): + postcss-modules-values@4.0.0(postcss@8.5.6): dependencies: - icss-utils: 5.1.0(postcss@8.5.4) - postcss: 8.5.4 + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 - postcss-nesting@13.0.1(postcss@8.5.4): + postcss-nesting@13.0.1(postcss@8.5.6): dependencies: '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.1.0) '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-normalize-charset@6.0.2(postcss@8.5.4): + postcss-normalize-charset@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-normalize-display-values@6.0.2(postcss@8.5.4): + postcss-normalize-display-values@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-positions@6.0.2(postcss@8.5.4): + postcss-normalize-positions@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@6.0.2(postcss@8.5.4): + postcss-normalize-repeat-style@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-string@6.0.2(postcss@8.5.4): + postcss-normalize-string@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@6.0.2(postcss@8.5.4): + postcss-normalize-timing-functions@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@6.1.0(postcss@8.5.4): + postcss-normalize-unicode@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.25.0 - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-url@6.0.2(postcss@8.5.4): + postcss-normalize-url@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@6.0.2(postcss@8.5.4): + postcss-normalize-whitespace@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-opacity-percentage@3.0.0(postcss@8.5.4): + postcss-opacity-percentage@3.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-ordered-values@6.0.2(postcss@8.5.4): + postcss-ordered-values@6.0.2(postcss@8.5.6): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.4) - postcss: 8.5.4 + cssnano-utils: 4.0.2(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-overflow-shorthand@6.0.0(postcss@8.5.4): + postcss-overflow-shorthand@6.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.5.4): + postcss-page-break@3.0.4(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-place@10.0.0(postcss@8.5.4): + postcss-place@10.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-prefix-selector@1.16.1(postcss@8.5.4): - dependencies: - postcss: 8.5.4 - - postcss-preset-env@10.2.1(postcss@8.5.4): - dependencies: - '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.4) - '@csstools/postcss-color-function': 4.0.10(postcss@8.5.4) - '@csstools/postcss-color-mix-function': 3.0.10(postcss@8.5.4) - '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.0(postcss@8.5.4) - '@csstools/postcss-content-alt-text': 2.0.6(postcss@8.5.4) - '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.4) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.4) - '@csstools/postcss-gamut-mapping': 2.0.10(postcss@8.5.4) - '@csstools/postcss-gradients-interpolation-method': 5.0.10(postcss@8.5.4) - '@csstools/postcss-hwb-function': 4.0.10(postcss@8.5.4) - '@csstools/postcss-ic-unit': 4.0.2(postcss@8.5.4) - '@csstools/postcss-initial': 2.0.1(postcss@8.5.4) - '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.4) - '@csstools/postcss-light-dark-function': 2.0.9(postcss@8.5.4) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.4) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.4) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.4) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.4) - '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.4) - '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.4) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.4) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.4) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.4) - '@csstools/postcss-oklab-function': 4.0.10(postcss@8.5.4) - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) - '@csstools/postcss-random-function': 2.0.1(postcss@8.5.4) - '@csstools/postcss-relative-color-syntax': 3.0.10(postcss@8.5.4) - '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.4) - '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.4) - '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.4) - '@csstools/postcss-text-decoration-shorthand': 4.0.2(postcss@8.5.4) - '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.4) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.4) - autoprefixer: 10.4.21(postcss@8.5.4) + postcss-prefix-selector@1.16.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-preset-env@10.2.1(postcss@8.5.6): + dependencies: + '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.6) + '@csstools/postcss-color-function': 4.0.10(postcss@8.5.6) + '@csstools/postcss-color-mix-function': 3.0.10(postcss@8.5.6) + '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.0(postcss@8.5.6) + '@csstools/postcss-content-alt-text': 2.0.6(postcss@8.5.6) + '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.6) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.6) + '@csstools/postcss-gamut-mapping': 2.0.10(postcss@8.5.6) + '@csstools/postcss-gradients-interpolation-method': 5.0.10(postcss@8.5.6) + '@csstools/postcss-hwb-function': 4.0.10(postcss@8.5.6) + '@csstools/postcss-ic-unit': 4.0.2(postcss@8.5.6) + '@csstools/postcss-initial': 2.0.1(postcss@8.5.6) + '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.6) + '@csstools/postcss-light-dark-function': 2.0.9(postcss@8.5.6) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.6) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.6) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.6) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.6) + '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.6) + '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.6) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.6) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.6) + '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.6) + '@csstools/postcss-oklab-function': 4.0.10(postcss@8.5.6) + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/postcss-random-function': 2.0.1(postcss@8.5.6) + '@csstools/postcss-relative-color-syntax': 3.0.10(postcss@8.5.6) + '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.6) + '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.6) + '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.6) + '@csstools/postcss-text-decoration-shorthand': 4.0.2(postcss@8.5.6) + '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6) + autoprefixer: 10.4.21(postcss@8.5.6) browserslist: 4.25.0 - css-blank-pseudo: 7.0.1(postcss@8.5.4) - css-has-pseudo: 7.0.2(postcss@8.5.4) - css-prefers-color-scheme: 10.0.0(postcss@8.5.4) + css-blank-pseudo: 7.0.1(postcss@8.5.6) + css-has-pseudo: 7.0.2(postcss@8.5.6) + css-prefers-color-scheme: 10.0.0(postcss@8.5.6) cssdb: 8.3.0 - postcss: 8.5.4 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.4) - postcss-clamp: 4.1.0(postcss@8.5.4) - postcss-color-functional-notation: 7.0.10(postcss@8.5.4) - postcss-color-hex-alpha: 10.0.0(postcss@8.5.4) - postcss-color-rebeccapurple: 10.0.0(postcss@8.5.4) - postcss-custom-media: 11.0.6(postcss@8.5.4) - postcss-custom-properties: 14.0.6(postcss@8.5.4) - postcss-custom-selectors: 8.0.5(postcss@8.5.4) - postcss-dir-pseudo-class: 9.0.1(postcss@8.5.4) - postcss-double-position-gradients: 6.0.2(postcss@8.5.4) - postcss-focus-visible: 10.0.1(postcss@8.5.4) - postcss-focus-within: 9.0.1(postcss@8.5.4) - postcss-font-variant: 5.0.0(postcss@8.5.4) - postcss-gap-properties: 6.0.0(postcss@8.5.4) - postcss-image-set-function: 7.0.0(postcss@8.5.4) - postcss-lab-function: 7.0.10(postcss@8.5.4) - postcss-logical: 8.1.0(postcss@8.5.4) - postcss-nesting: 13.0.1(postcss@8.5.4) - postcss-opacity-percentage: 3.0.0(postcss@8.5.4) - postcss-overflow-shorthand: 6.0.0(postcss@8.5.4) - postcss-page-break: 3.0.4(postcss@8.5.4) - postcss-place: 10.0.0(postcss@8.5.4) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.4) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.4) - postcss-selector-not: 8.0.1(postcss@8.5.4) - - postcss-pseudo-class-any-link@10.0.1(postcss@8.5.4): - dependencies: - postcss: 8.5.4 + postcss: 8.5.6 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.6) + postcss-clamp: 4.1.0(postcss@8.5.6) + postcss-color-functional-notation: 7.0.10(postcss@8.5.6) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.6) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.6) + postcss-custom-media: 11.0.6(postcss@8.5.6) + postcss-custom-properties: 14.0.6(postcss@8.5.6) + postcss-custom-selectors: 8.0.5(postcss@8.5.6) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.6) + postcss-double-position-gradients: 6.0.2(postcss@8.5.6) + postcss-focus-visible: 10.0.1(postcss@8.5.6) + postcss-focus-within: 9.0.1(postcss@8.5.6) + postcss-font-variant: 5.0.0(postcss@8.5.6) + postcss-gap-properties: 6.0.0(postcss@8.5.6) + postcss-image-set-function: 7.0.0(postcss@8.5.6) + postcss-lab-function: 7.0.10(postcss@8.5.6) + postcss-logical: 8.1.0(postcss@8.5.6) + postcss-nesting: 13.0.1(postcss@8.5.6) + postcss-opacity-percentage: 3.0.0(postcss@8.5.6) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.6) + postcss-page-break: 3.0.4(postcss@8.5.6) + postcss-place: 10.0.0(postcss@8.5.6) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.6) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.6) + postcss-selector-not: 8.0.1(postcss@8.5.6) + + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-reduce-idents@6.0.3(postcss@8.5.4): + postcss-reduce-idents@6.0.3(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-reduce-initial@6.1.0(postcss@8.5.4): + postcss-reduce-initial@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.25.0 caniuse-api: 3.0.0 - postcss: 8.5.4 + postcss: 8.5.6 - postcss-reduce-transforms@6.0.2(postcss@8.5.4): + postcss-reduce-transforms@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-replace-overflow-wrap@4.0.0(postcss@8.5.4): + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 - postcss-selector-not@8.0.1(postcss@8.5.4): + postcss-selector-not@8.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 7.1.0 postcss-selector-parser@6.1.2: @@ -10967,27 +12001,27 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@5.2.0(postcss@8.5.4): + postcss-sort-media-queries@5.2.0(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 sort-css-media-queries: 2.2.0 - postcss-svgo@6.0.3(postcss@8.5.4): + postcss-svgo@6.0.3(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@6.0.4(postcss@8.5.4): + postcss-unique-selectors@6.0.4(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} - postcss-zindex@6.0.2(postcss@8.5.4): + postcss-zindex@6.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.4 + postcss: 8.5.6 postcss@8.4.49: dependencies: @@ -10995,12 +12029,20 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.4: + postcss@8.5.6: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 + prelude-ls@1.2.1: {} + + prettier-plugin-tailwindcss@0.7.2(prettier@3.7.4): + dependencies: + prettier: 3.7.4 + + prettier@3.7.4: {} + pretty-error@4.0.0: dependencies: lodash: 4.17.21 @@ -11091,19 +12133,19 @@ snapshots: react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.0.0))(webpack@5.99.8): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.6 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.0.0)' webpack: 5.99.8 react-router-config@5.1.1(react-router@5.3.4(react@19.0.0))(react@19.0.0): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.6 react: 19.0.0 react-router: 5.3.4(react@19.0.0) react-router-dom@5.3.4(react@19.0.0): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.6 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -11114,7 +12156,7 @@ snapshots: react-router@5.3.4(react@19.0.0): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.6 history: 4.10.1 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -11163,9 +12205,9 @@ snapshots: estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.0(acorn@8.14.1): + recma-jsx@1.0.0(acorn@8.15.0): dependencies: - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn-jsx: 5.3.2(acorn@8.15.0) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 @@ -11220,12 +12262,12 @@ snapshots: - react-native - supports-color - redocusaurus@2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@docusaurus/utils@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(webpack@5.99.8): + redocusaurus@2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(@docusaurus/utils@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(webpack@5.99.8): dependencies: - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - docusaurus-plugin-redoc: 2.5.0(@docusaurus/utils@3.9.2(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) - docusaurus-theme-redoc: 2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.99.8) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + docusaurus-plugin-redoc: 2.5.0(@docusaurus/utils@3.9.2(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(mobx@6.13.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(styled-components@6.1.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + docusaurus-theme-redoc: 2.5.0(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.0.0))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.15.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(core-js@3.42.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(webpack@5.99.8) transitivePeerDependencies: - core-js - encoding @@ -11393,7 +12435,7 @@ snapshots: dependencies: escalade: 3.2.0 picocolors: 1.1.1 - postcss: 8.5.4 + postcss: 8.5.6 strip-json-comments: 3.1.1 run-applescript@7.1.0: {} @@ -11449,6 +12491,8 @@ snapshots: semver@7.7.2: {} + semver@7.7.3: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -11751,10 +12795,10 @@ snapshots: stylis: 4.3.2 tslib: 2.6.2 - stylehacks@6.1.1(postcss@8.5.4): + stylehacks@6.1.1(postcss@8.5.6): dependencies: browserslist: 4.25.0 - postcss: 8.5.4 + postcss: 8.5.6 postcss-selector-parser: 6.1.2 stylis@4.3.2: {} @@ -11797,6 +12841,14 @@ snapshots: transitivePeerDependencies: - encoding + tailwind-merge@3.4.0: {} + + tailwindcss-animate@1.0.7(tailwindcss@4.1.18): + dependencies: + tailwindcss: 4.1.18 + + tailwindcss@4.1.18: {} + tapable@2.2.1: {} tar@7.5.9: @@ -11833,6 +12885,11 @@ snapshots: tiny-warning@1.0.3: {} + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tinypool@1.1.0: {} to-regex-range@5.0.1: @@ -11853,10 +12910,18 @@ snapshots: trough@2.2.0: {} + ts-api-utils@2.4.0(typescript@5.8.2): + dependencies: + typescript: 5.8.2 + tslib@2.6.2: {} tslib@2.8.1: {} + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + type-fest@0.21.3: {} type-fest@1.4.0: {} @@ -11872,8 +12937,7 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript@5.8.2: - optional: true + typescript@5.8.2: {} undici-types@6.21.0: {} @@ -12174,6 +13238,8 @@ snapshots: wildcard@2.0.1: {} + word-wrap@1.2.5: {} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -12236,6 +13302,8 @@ snapshots: buffer-crc32: 0.2.13 pend: 1.2.0 + yocto-queue@0.1.0: {} + yocto-queue@1.2.1: {} zwitch@2.0.4: {} diff --git a/sidebars.js b/sidebars.js deleted file mode 100644 index f7e8e0ffd..000000000 --- a/sidebars.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ - -// @ts-check - -const selfHosted = require("./docs/self-hosted/sidebars"); -const userGuide = require("./docs/user-guide/sidebars"); -const developerGuide = require("./docs/developer-guide/sidebars"); - -module.exports = { - selfHosted, - userGuide, - developerGuide -}; diff --git a/sidebars.ts b/sidebars.ts new file mode 100644 index 000000000..6af6d94bc --- /dev/null +++ b/sidebars.ts @@ -0,0 +1,13 @@ +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; + +import selfHosted from "./docs/self-hosted/sidebars"; +import userGuide from "./docs/user-guide/sidebars"; +import developerGuide from "./docs/developer-guide/sidebars"; + +const sidebars: SidebarsConfig = { + selfHosted, + userGuide, + developerGuide, +}; + +export default sidebars; diff --git a/src/components/FeatureSection/index.js b/src/components/FeatureSection/index.js deleted file mode 100644 index c98b4e45f..000000000 --- a/src/components/FeatureSection/index.js +++ /dev/null @@ -1,91 +0,0 @@ -import React from 'react'; -import Translate from '@docusaurus/Translate'; -import styles from './styles.module.css'; - -const FEATURES_CONFIG = [ - { - icon: '🚀', - titleId: 'homepage.feature.deployment.title', - titleDefault: 'Easy Deployment', - descriptionId: 'homepage.feature.deployment.description', - descriptionDefault: 'Deploy with Docker in minutes. Self-hosted solution with complete control over your data.', - }, - { - icon: '📱', - titleId: 'homepage.feature.multiPlatform.title', - titleDefault: 'Multi-Platform', - descriptionId: 'homepage.feature.multiPlatform.description', - descriptionDefault: 'Support for Android, iOS, macOS, Windows, and Linux apps. One solution for all platforms.', - }, - { - icon: '🔄', - titleId: 'homepage.feature.cicd.title', - titleDefault: 'CI/CD Integration', - descriptionId: 'homepage.feature.cicd.description', - descriptionDefault: 'Seamlessly integrate with your existing CI/CD pipeline for automated app distribution.', - }, - { - icon: '👥', - titleId: 'homepage.feature.teamManagement.title', - titleDefault: 'Team Management', - descriptionId: 'homepage.feature.teamManagement.description', - descriptionDefault: 'Manage team members and control access permissions. Organize apps by channels and manage user roles effectively.', - }, - { - icon: '⚡', - titleId: 'homepage.feature.developerFriendly.title', - titleDefault: 'Developer Friendly', - descriptionId: 'homepage.feature.developerFriendly.description', - descriptionDefault: 'Rich SDKs and RESTful APIs for seamless integration. Support for multiple programming languages and platforms.', - }, - { - icon: '🔒', - titleId: 'homepage.feature.security.title', - titleDefault: 'Secure & Private', - descriptionId: 'homepage.feature.security.description', - descriptionDefault: 'Keep your apps and data secure with enterprise-grade security and privacy controls.', - }, -]; - -function Feature({ icon, titleId, titleDefault, descriptionId, descriptionDefault }) { - return ( -
-
{icon}
-

- - {titleDefault} - -

-

- - {descriptionDefault} - -

-
- ); -} - -export default function FeatureSection() { - return ( -
-
-
- {FEATURES_CONFIG.map((feature, index) => ( - - ))} -
-
-
- ); -} diff --git a/src/components/FeatureSection/index.tsx b/src/components/FeatureSection/index.tsx new file mode 100644 index 000000000..51a38f3c0 --- /dev/null +++ b/src/components/FeatureSection/index.tsx @@ -0,0 +1,139 @@ +import React, { ReactNode } from "react"; +import Translate from "@docusaurus/Translate"; +import styles from "./styles.module.css"; + +export default function FeatureSection() { + return ( +
+
+
+
+
🚀
+

+ + Easy Deployment + +

+

+ + Deploy with Docker in minutes. Self-hosted solution with + complete control over your data. + +

+
+ +
+
📱
+

+ + Multi-Platform + +

+

+ + Support for Android, iOS, macOS, Windows, and Linux apps. One + solution for all platforms. + +

+
+ +
+
🔄
+

+ + CI/CD Integration + +

+

+ + Seamlessly integrate with your existing CI/CD pipeline for + automated app distribution. + +

+
+ +
+
👥
+

+ + Team Management + +

+

+ + Manage team members and control access permissions. Organize + apps by channels and manage user roles effectively. + +

+
+ +
+
+

+ + Developer Friendly + +

+

+ + Rich SDKs and RESTful APIs for seamless integration. Support for + multiple programming languages and platforms. + +

+
+ +
+
🔒
+

+ + Secure & Private + +

+

+ + Keep your apps and data secure with enterprise-grade security + and privacy controls. + +

+
+
+
+
+ ); +} diff --git a/src/components/HomepageHeader/index.js b/src/components/HomepageHeader/index.tsx similarity index 71% rename from src/components/HomepageHeader/index.js rename to src/components/HomepageHeader/index.tsx index b041e7bde..de26ded8a 100644 --- a/src/components/HomepageHeader/index.js +++ b/src/components/HomepageHeader/index.tsx @@ -1,56 +1,75 @@ -import React from 'react'; -import clsx from 'clsx'; -import Link from '@docusaurus/Link'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import Translate, {translate} from '@docusaurus/Translate'; -import ThemedImage from '@theme/ThemedImage'; +import React, { ReactNode } from "react"; +import clsx from "clsx"; +import Link from "@docusaurus/Link"; +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import Translate, { translate } from "@docusaurus/Translate"; +import ThemedImage from "@theme/ThemedImage"; -import styles from './styles.module.css'; +import styles from "./styles.module.css"; export default function HomepageHeader() { const { i18n } = useDocusaurusContext(); const currentLocale = i18n.currentLocale; - const imgPath = currentLocale === 'en' ? '/img' : `/img/${currentLocale}`; + const imgPath = currentLocale === "en" ? "/img" : `/img/${currentLocale}`; return ( -
+

+ description="The main title for homepage" + > Self-hosted Beta App Distribution

- Deploy and distribute your Android, iOS, macOS, Windows and Linux apps with ease. - Open source, self-hosted solution for managing beta releases and app lifecycle. + description="The subtitle description for homepage" + > + Deploy and distribute your Android, iOS, macOS, Windows and + Linux apps with ease. Open source, self-hosted solution for + managing beta releases and app lifecycle.

+ className={clsx( + "button button--primary button--lg", + styles.primaryButton, + )} + to="/docs/user-guide/" + > + description="Get started button text" + > Get Started - - + className={clsx( + "button button--outline button--lg", + styles.secondaryButton, + )} + href="https://github.com/tryzealot/zealot" + > + + + description="View on GitHub button text" + > View on GitHub @@ -61,9 +80,9 @@ export default function HomepageHeader() {
+ description="Supported platforms count" + > Platforms @@ -88,7 +108,8 @@ export default function HomepageHeader() { + description="Unlimited apps" + > Apps @@ -98,7 +119,8 @@ export default function HomepageHeader() { + description="Open source" + > Open Source diff --git a/src/components/HomepageHeader/styles.module.css b/src/components/HomepageHeader/styles.module.css index 5fbd95ae7..1575c75ea 100644 --- a/src/components/HomepageHeader/styles.module.css +++ b/src/components/HomepageHeader/styles.module.css @@ -104,7 +104,7 @@ position: relative; width: 100%; max-width: 400px; - border-radius: 16px; + border-radius: 15px; overflow: hidden; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); background: rgba(255, 255, 255, 0.1); @@ -112,6 +112,10 @@ border: 1px solid rgba(255, 255, 255, 0.2); } +.showcaseImage img { + display: block !important; +} + [data-theme='dark'] .showcaseImage { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); background: rgba(0, 0, 0, 0.2); diff --git a/src/components/Pricing/EnterpriseCard.tsx b/src/components/Pricing/EnterpriseCard.tsx new file mode 100644 index 000000000..d4eeb6330 --- /dev/null +++ b/src/components/Pricing/EnterpriseCard.tsx @@ -0,0 +1,25 @@ +import type { EnterpriseTierItem } from "@site/src/types"; + +interface EnterpriseCardProps { + enterprise: EnterpriseTierItem; +} + +export function EnterpriseCard({ enterprise }: EnterpriseCardProps): JSX.Element { + return ( +
+
🏢
+
{enterprise.title}
+
+ {enterprise.description} +
+ +
+ ); +} diff --git a/src/components/Pricing/FeaturesList.tsx b/src/components/Pricing/FeaturesList.tsx new file mode 100644 index 000000000..820ca344c --- /dev/null +++ b/src/components/Pricing/FeaturesList.tsx @@ -0,0 +1,15 @@ +interface FeaturesListProps { + features: string[]; +} + +export function FeaturesList({ features }: FeaturesListProps): JSX.Element { + return ( +
+
    + {features.map((f) => ( +
  • {f}
  • + ))} +
+
+ ); +} diff --git a/src/components/Pricing/PriceAmount.tsx b/src/components/Pricing/PriceAmount.tsx new file mode 100644 index 000000000..d5f95fadf --- /dev/null +++ b/src/components/Pricing/PriceAmount.tsx @@ -0,0 +1,33 @@ +import { Skeleton } from "@site/src/components/ui/Skeleton"; +import type { PricingTierItem } from "@site/src/types"; + +interface PriceAmountProps { + loading: boolean; + paddlePrice: string | null; + tier: PricingTierItem; +} + +export function PriceAmount({ loading, paddlePrice, tier }: PriceAmountProps): JSX.Element { + return ( + <> +
+ {loading ? ( + + ) : ( + + {paddlePrice || tier.price}{" "} + {paddlePrice && tier.frequency && ` / ${tier.frequency}`} + + )} +
+ {tier.save && ( +
+ {tier.save} +
+ )} +
+ {tier.trial} +
+ + ); +} diff --git a/src/components/Pricing/PriceButton.tsx b/src/components/Pricing/PriceButton.tsx new file mode 100644 index 000000000..5b36bf246 --- /dev/null +++ b/src/components/Pricing/PriceButton.tsx @@ -0,0 +1,22 @@ +import Link from "@docusaurus/Link"; +import type { PricingTierItem } from "@site/src/types"; + +interface PricingButtonProps { + tier: PricingTierItem; +} + +export function PricingButton({ tier }: PricingButtonProps): JSX.Element { + return ( + + {tier.button.text} + + ); +} diff --git a/src/components/Pricing/PriceCards.tsx b/src/components/Pricing/PriceCards.tsx new file mode 100644 index 000000000..379a455a2 --- /dev/null +++ b/src/components/Pricing/PriceCards.tsx @@ -0,0 +1,68 @@ +import { useMemo } from "react"; +import { + usePaddleClient, + usePaddlePrices, +} from "@site/src/hooks/usePaddlePrices"; +import { PricingTier } from "@site/src/constants/pricing-tier"; +import { PriceTitle } from "@site/src/components/Pricing/PriceTitle"; +import { PriceAmount } from "@site/src/components/Pricing/PriceAmount"; +import { FeaturesList } from "@site/src/components/Pricing/FeaturesList"; +import { PricingButton } from "@site/src/components/Pricing/PriceButton"; +import type { PricingTierItem, PaddleInstance } from "@site/src/types"; + +interface PriceCardProps { + tier: PricingTierItem; + paddlePrice: string | null; + loading: boolean; + paddle?: PaddleInstance; +} + +function PriceCard({ tier, paddlePrice, loading }: PriceCardProps): JSX.Element { + return ( +
+ + + + +
+ ); +} + +export function PriceCards(): JSX.Element { + const items = useMemo( + () => + PricingTier.filter((tier) => tier.priceId).map((tier) => ({ + priceId: tier.priceId!, + quantity: 1, + })), + [] + ); + + const { paddle } = usePaddleClient({} as Parameters[0]); + const { prices, loading } = usePaddlePrices(paddle, items); + + return ( +
+ {PricingTier.map((tier) => { + const paddlePrice = tier.priceId && prices[tier.priceId] + ? prices[tier.priceId].replace(/\.00$/, "") + : null; + return ( + + ); + })} +
+ ); +} diff --git a/src/components/Pricing/PriceTitle.tsx b/src/components/Pricing/PriceTitle.tsx new file mode 100644 index 000000000..14b547648 --- /dev/null +++ b/src/components/Pricing/PriceTitle.tsx @@ -0,0 +1,13 @@ +import type { PricingTierItem } from "@site/src/types"; + +interface PriceTitleProps { + tier: PricingTierItem; +} + +export function PriceTitle({ tier }: PriceTitleProps): JSX.Element { + return ( +
+ {tier.icon} {tier.name} +
+ ); +} diff --git a/src/components/Pricing/index.tsx b/src/components/Pricing/index.tsx new file mode 100644 index 000000000..79ab8d875 --- /dev/null +++ b/src/components/Pricing/index.tsx @@ -0,0 +1,96 @@ +import { useEffect, useState } from "react"; +import { initializePaddle } from "@paddle/paddle-js"; +import { usePaddlePrices } from "@site/src/hooks/usePaddlePrices"; +import { PriceCards } from "@site/src/components/Pricing/PriceCards"; +import { EnterpriseCard } from "@site/src/components/Pricing/EnterpriseCard"; +import { PricingTier, EnterpriseTier } from "@site/src/constants/pricing-tier"; +import { PriceTitle } from "@site/src/components/Pricing/PriceTitle"; +import { PriceAmount } from "@site/src/components/Pricing/PriceAmount"; +import { FeaturesList } from "@site/src/components/Pricing/FeaturesList"; +import { PricingButton } from "@site/src/components/Pricing/PriceButton"; +import type { + PaddleInstance, + PricingTierItem, + PaddleCheckoutItem, +} from "@site/src/types"; + +interface PricingCardProps { + tier: PricingTierItem; + paddlePrice: string | null; + loading: boolean; + paddle?: PaddleInstance; +} + +function PricingCard({ + tier, + paddlePrice, + loading, +}: PricingCardProps): JSX.Element { + return ( +
+ + + + +
+ ); +} + +interface PricingProps { + country?: PaddleCheckoutItem[]; +} + +export function Pricing({ country }: PricingProps): JSX.Element { + const [paddle, setPaddle] = useState(undefined); + const { prices, loading } = usePaddlePrices(paddle, country || []); + + useEffect(() => { + if (process.env.PADDLE_CLIENT_TOKEN && process.env.PADDLE_ENV) { + initializePaddle({ + token: process.env.PADDLE_CLIENT_TOKEN, + environment: process.env.PADDLE_ENV, + }).then((paddle) => { + if (paddle) { + setPaddle(paddle as unknown as PaddleInstance); + } + }); + } + }, []); + + return ( +
+
+
+ {PricingTier.map((tier) => { + const paddlePrice = + tier.priceId && prices[tier.priceId] + ? prices[tier.priceId].replace(/\.00$/, "") + : null; + return ( +
+ +
+ ); + })} +
+
+
+ +
+
+ ); +} diff --git a/src/components/ui/Button.tsx b/src/components/ui/Button.tsx new file mode 100644 index 000000000..72de307b1 --- /dev/null +++ b/src/components/ui/Button.tsx @@ -0,0 +1,79 @@ +import React from "react"; + +interface ButtonProps extends React.ButtonHTMLAttributes { + variant?: "primary" | "secondary" | "accent" | "neutral" | "ghost"; + size?: "sm" | "md" | "lg"; + isLoading?: boolean; + fullWidth?: boolean; +} + +export function Button({ + children, + variant = "primary", + size = "md", + isLoading = false, + fullWidth = true, + className = "", + disabled, + ...props +}: ButtonProps): JSX.Element { + const baseStyles = "hover:cursor-pointer rounded-lg transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-[var(--color-base-100)] font-semibold"; + + const sizeStyles = { + sm: "px-4 py-2 text-sm", + md: "px-6 py-3 text-base", + lg: "px-8 py-4 text-lg", + }; + + const variantStyles = { + primary: "bg-[var(--color-primary)] text-[var(--color-primary-content)] border-2 border-transparent hover:opacity-90 focus:ring-[var(--color-primary)] shadow-lg hover:shadow-xl active:scale-[0.98]", + secondary: "bg-[var(--color-secondary)] text-[var(--color-secondary-content)] border-2 border-transparent hover:opacity-90 focus:ring-[var(--color-secondary)] shadow-md hover:shadow-lg", + accent: "bg-[var(--color-accent)] text-[var(--color-accent-content)] border-2 border-transparent hover:opacity-90 focus:ring-[var(--color-accent)] shadow-lg hover:shadow-xl hover:scale-[1.02] active:scale-[0.98]", + neutral: "bg-[var(--color-neutral)] text-[var(--color-neutral-content)] border-2 border-transparent hover:opacity-90 focus:ring-[var(--color-neutral)]", + outline: "bg-transparent text-[var(--color-primary)] border-2 border-[var(--color-primary)] hover:bg-[var(--color-primary)] hover:text-[var(--color-primary-content)] focus:ring-[var(--color-primary)]", + }; + + const widthStyles = fullWidth ? "w-full" : ""; + const disabledStyles = disabled || isLoading ? "opacity-50 cursor-not-allowed" : ""; + + return ( + + ); +} + +interface PrimaryButtonProps extends Omit {} + +export function PrimaryButton({ className = "", ...props }: PrimaryButtonProps): JSX.Element { + return +
+ +
+
+ + + Order ID: + + + + {license.order?.id} + +
+
+ + + Email: + + + + {license.customer?.email} + +
+
+ + + Amount: + + + + {license.order + ? `$${(license.order.totalAmount / 100).toFixed(2)} ${license.order.currency}` + : "-"} + +
+
+ + + Status: + + + + {license.license?.active ? "Active" : "Inactive"} + +
+
+ + + Expires: + + + + {license.license?.expiredAt + ? new Date(license.license.expiredAt).toLocaleDateString() + : "-"} + +
+
+ +

+ + Please save your license key in a safe place. + +

+
+ )} + + (window.location.href = "/")}> + Return Home + + + )} + + ); +} + +export default function CheckoutSuccessPage(): ReactNode { + return ( + + + {translate({ + id: "checkout.success.loading", + message: "Loading...", + })} +
+ } + > + {() => } + + + ); +} diff --git a/src/pages/donate.js b/src/pages/donate.js deleted file mode 100644 index c8cc22c16..000000000 --- a/src/pages/donate.js +++ /dev/null @@ -1,104 +0,0 @@ - - -import Layout from '@theme/Layout'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import Translate, {translate} from '@docusaurus/Translate'; - -export default function Donate() { - return ( - -
-

Support Zealot

-

- - Zealot is an open-source project dedicated to providing a simple and easy-to-use internal distribution platform for mobile app developers. If Zealot has helped your work, you are welcome to support the ongoing maintenance and development of the project through the following ways. - -

- -

Donation Channels

- -
-

WeChat / Alipay

-
-
- WeChat Donate QR -
WeChat
-
-
- Alipay Donate QR -
Alipay
-
-
-
- -

- Thank you for choosing Zealot as your app distribution solution. -

-
-
- ); -} diff --git a/src/pages/donate.tsx b/src/pages/donate.tsx new file mode 100644 index 000000000..1be53e07e --- /dev/null +++ b/src/pages/donate.tsx @@ -0,0 +1,152 @@ +import type { ReactNode } from "react"; +import { CSSProperties } from "react"; +import Layout from "@theme/Layout"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import Translate, { translate } from "@docusaurus/Translate"; + +const linkStyle: CSSProperties = { + display: "block", + fontWeight: 600, + fontSize: 18, + borderRadius: 8, + padding: "16px 0", + textAlign: "center", + textDecoration: "none", + boxShadow: "0 2px 8px rgba(123,111,240,0.08)", +}; + +export default function DonatePage(): ReactNode { + return ( + +
+

+ Support Zealot +

+

+ + Zealot is an open-source project dedicated to providing a simple and + easy-to-use internal distribution platform for mobile app + developers. If Zealot has helped your work, you are welcome to + support the ongoing maintenance and development of the project + through the following ways. + +

+ +

+ Donation Channels +

+ +
+

+ WeChat / Alipay +

+
+
+ WeChat Donate QR +
+ WeChat +
+
+
+ Alipay Donate QR +
+ Alipay +
+
+
+
+ +

+ + Thank you for choosing Zealot as your app distribution solution. + +

+
+
+ ); +} diff --git a/src/pages/index.js b/src/pages/index.js deleted file mode 100644 index 6607ba1c9..000000000 --- a/src/pages/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import Layout from '@theme/Layout'; -import {translate} from '@docusaurus/Translate'; -import HomepageHeader from '@site/src/components/HomepageHeader'; -import FeatureSection from '@site/src/components/FeatureSection'; - -export default function Home() { - return ( - - -
- -
-
- ); -} diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 000000000..c3987ba2d --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,27 @@ +import Layout from "@theme/Layout"; +import { translate } from "@docusaurus/Translate"; +import HomepageHeader from "@site/src/components/HomepageHeader"; +import FeatureSection from "@site/src/components/FeatureSection"; +import type { ReactNode } from "react"; + +export default function Home(): ReactNode { + return ( + + +
+ +
+
+ ); +} diff --git a/src/pages/orders.tsx b/src/pages/orders.tsx new file mode 100644 index 000000000..f1e5b15a9 --- /dev/null +++ b/src/pages/orders.tsx @@ -0,0 +1,530 @@ +import type { ReactNode } from "react"; +import { useState, useEffect } from "react"; +import Layout from "@theme/Layout"; +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import { useHistory } from "@docusaurus/router"; +import { useGateway } from "@site/src/hooks/useGateway"; +import { useCustomerOrders } from "@site/src/lib/query"; +import { decrypt, encrypt } from "@site/src/lib/crypto"; +import { + OutlineButton, + PrimaryButton, + SecondaryButton, +} from "@site/src/components/ui/Button"; +import Translate, { translate } from "@docusaurus/Translate"; +import type { Order } from "@site/src/types"; + +function OrdersClient(): ReactNode { + const { i18n } = useDocusaurusContext(); + const history = useHistory(); + + const urlParams = + typeof window !== "undefined" + ? new URLSearchParams(window.location.search) + : null; + + const [userEmail, setUserEmail] = useState(""); + const [submittedEmail, setSubmittedEmail] = useState(""); + const [hasSubmitted, setHasSubmitted] = useState(false); + const [fromCheckout, setFromCheckout] = useState(false); + const [queryError, setQueryError] = useState(null); + + // 从 URL query 参数读取预填充的 email(从 checkout 页面跳转过来) + useEffect(() => { + const emailParam = urlParams?.get("email"); + if (emailParam) { + const secretKey = process.env.ZEALOT_ENCRYPTION_KEY; + if (secretKey) { + decrypt(emailParam, secretKey) + .then((decryptedEmail) => { + setUserEmail(decryptedEmail); + setSubmittedEmail(decryptedEmail); + setHasSubmitted(true); + setFromCheckout(true); + }) + .catch(() => { + // 解密失败,显示错误提示 + setQueryError( + translate({ + id: "orders.queryError.invalid", + message: + "Invalid email parameter. Please enter your email to view orders.", + }), + ); + }); + } else { + // 没有加密密钥,无法解密 + setQueryError( + translate({ + id: "orders.queryError.config", + message: + "Configuration error. Please enter your email to view orders.", + }), + ); + } + } + }, []); + + const basePath = i18n.currentLocale !== "en" ? `/${i18n.currentLocale}` : ""; + + const { gateway } = useGateway(); + const query = useCustomerOrders(gateway, submittedEmail, hasSubmitted); + + // 当成功获取到订单数据后,更新 URL 添加 email 参数 + useEffect(() => { + if ( + query.data && + query.data.orders.length > 0 && + submittedEmail && + !fromCheckout + ) { + const secretKey = process.env.ZEALOT_ENCRYPTION_KEY; + if (secretKey) { + encrypt(submittedEmail, secretKey).then((encryptedEmail) => { + const newUrl = `${window.location.pathname}?email=${encodeURIComponent(encryptedEmail)}`; + window.history.replaceState({}, "", newUrl); + }); + } + } + }, [query.data, submittedEmail, fromCheckout]); + + const handleEmailSubmit = (e: React.FormEvent) => { + e.preventDefault(); + if (userEmail.trim()) { + setSubmittedEmail(userEmail.trim()); + setHasSubmitted(true); + } + }; + + const handleBack = () => { + history.push(`${basePath}/pricing`); + }; + + return ( +
+ {!hasSubmitted ? ( +
+

+ + Enter your email to view orders + +

+ {queryError && ( +
+

+ {queryError} +

+
+ )} + setUserEmail(e.target.value)} + placeholder={translate({ + id: "orders.email.placeholder", + message: "your@email.com", + })} + className="w-full px-5 py-3 text-lg border-2 border-[var(--ifm-color-gray-300)] rounded-lg focus:outline-none focus:border-[var(--ifm-color-primary)] bg-[var(--ifm-background-color)] text-[var(--ifm-font-color-base)] placeholder:text-[var(--ifm-color-gray-600)] transition-colors" + required + /> + + View Orders + + + Back to Pricing + +
+ ) : ( + <> + {query.isError ? ( + (query.error as any)?.status === 404 || + (query.error as Error)?.message?.includes("404") ? ( +
+
+

+ + No orders found for this email. + +

+
+
+ + + Back to Pricing + + + { + setUserEmail(""); + setHasSubmitted(false); + window.history.replaceState( + {}, + "", + window.location.pathname, + ); + }} + className="flex-1" + > + + Search Another Email + + +
+
+ ) : ( +
+
+

+ + Error loading your orders. + +

+
+ setHasSubmitted(false)}> + Try Again + +
+ ) + ) : ( + (query.isLoading || !query.data) && ( +
+
+

+ + Loading your orders... + +

+
+ ) + )} + + {query.data && ( +
+
+

+ + Your Orders + +

+ + {submittedEmail} + +
+ {fromCheckout && + query.data.orders && + query.data.orders?.length > 0 && ( +
+

+ + You already have an order associated with this email. + +

+
+ )} + + {query.data.orders?.length === 0 ? ( +
+
+

+ + No orders found for this email. + +

+
+
+ + + Back to Pricing + + + { + setUserEmail(""); + setHasSubmitted(false); + window.history.replaceState( + {}, + "", + window.location.pathname, + ); + }} + className="flex-1" + > + + Search Another Email + + +
+
+ ) : ( + <> +
+ {/* Customer Info */} + {query.data.customer && ( +
+

+ + Customer + +

+
+ + + Email + + + + {query.data.customer.email} + +
+
+ + + Customer ID + + + + {query.data.customer.id} + +
+
+ )} + + {/* License Info */} + {query.data.license && ( +
+

+ + License + +

+
+ + + License Key + + + + {query.data.license.key} + +
+
+ + + Status + + + + {query.data.license.active + ? translate({ + id: "orders.license.status.active", + message: "Active", + }) + : translate({ + id: "orders.license.status.inactive", + message: "Inactive", + })} + +
+
+ )} + + {/* Orders */} + {query.data.orders.map((order: Order) => ( +
+

+ Order +

+
+ + Order ID + + + {order.id} + +
+
+ + + Amount + + + + {order.totalAmount.toFixed(2) / 100}{" "} + {order.currency} + +
+
+ + + Created + + + + {new Date(order.createdAt).toLocaleDateString()} + +
+
+ + + Paid At + + + + {order.paidAt + ? new Date(order.paidAt).toLocaleDateString() + : "-"} + +
+
+ + + Status + + + + {order.status === "completed" + ? translate({ + id: "orders.order.status.completed", + message: "Completed", + }) + : translate({ + id: "orders.order.status.pending", + message: "Pending", + })} + +
+
+ ))} + + {/* Subscription Info */} + {query.data.subscription && ( +
+

+ + Subscription + +

+
+ + + Status + + + + {query.data.subscription.status + .charAt(0) + .toUpperCase() + + query.data.subscription.status.slice(1)} + +
+
+ + + Active At + + + + {new Date( + query.data.subscription.currentPeriodStart, + ).toLocaleDateString()} + +
+
+ + + Expires At + + + + {new Date( + query.data.subscription.currentPeriodEnd, + ).toLocaleDateString()} + +
+ {query.data.subscription.cancelAtPeriodEnd && ( +
+

+ + Will cancel at period end + +

+
+ )} +
+ )} +
+ +
+ query.refetch()} + disabled={query.isFetching} + className="flex-1" + > + {query.isFetching + ? translate({ + id: "orders.refreshing", + message: "Refreshing...", + }) + : translate({ + id: "orders.refresh", + message: "Refresh", + })} + + { + setUserEmail(""); + setHasSubmitted(false); + window.history.replaceState( + {}, + "", + window.location.pathname, + ); + }} + className="flex-1" + > + + Search Another Email + + +
+ + )} +
+ )} + + )} +
+ ); +} + +export default function OrdersPage(): ReactNode { + return ( + + + + ); +} diff --git a/src/pages/pricing.js b/src/pages/pricing.js deleted file mode 100644 index 60dea7db5..000000000 --- a/src/pages/pricing.js +++ /dev/null @@ -1,144 +0,0 @@ -import Layout from '@theme/Layout'; -import {translate} from '@docusaurus/Translate'; -import styles from './pricing.module.css'; -import clsx from 'clsx'; - -const plans = [ - { - name: translate({ id: 'pricing.plan.free', message: 'Free' }), - icon: '🚀', - subtitle: translate({ id: 'pricing.plan.free.subtitle', message: 'Community Edition (Open Source)' }), - price: translate({ id: 'pricing.plan.free.price', message: '$0' }), - features: [ - translate({ id: 'pricing.plan.free.unlimited_users', message: 'Unlimited users' }), - translate({ id: 'pricing.plan.free.unlimited_apps_and_team_members', message: 'Unlimited apps and team members' }), - translate({ id: 'pricing.plan.free.unlimited_app_version_uploads', message: 'Unlimited app version uploads' }), - translate({ id: 'pricing.plan.free.unlimited_app_installations', message: 'Unlimited app installations' }), - translate({ id: 'pricing.plan.free.self_hosted_no_storage_limits', message: 'Self-hosted, no storage limits' }), - translate({ id: 'pricing.plan.free.community_support', message: 'Community support' }), - translate({ id: 'pricing.plan.free.open_source_license', message: 'Open source license' }), - ], - button: { - text: translate({ id: 'pricing.plan.free.button', message: 'Get Started' }), - id: 'github-btn', - href: 'https://github.com/tryzealot/zealot', - type: 'link', - }, - highlight: false, - }, - { - name: translate({ id: 'pricing.plan.pro', message: 'Pro' }), - icon: '⭐', - subtitle: translate({ id: 'pricing.plan.pro.subtitle', message: 'Professional Edition' }), - price: translate({ id: 'pricing.plan.pro.price', message: '$499 / year' }), - priceSuffix: '', - trial: translate({ id: 'pricing.plan.pro.trial', message: 'with a 14 days trial' }), - save: translate({ id: 'pricing.plan.pro.save', message: 'Save 40%' }), - features: [ - translate({ id: 'pricing.plan.pro.all_community_edition_features', message: 'All Community Edition features' }), - translate({ id: 'pricing.plan.pro.unlimited_organizations', message: 'Unlimited organizations' }), - translate({ id: 'pricing.plan.pro.detailed_session_logs_and_overviews', message: 'Detailed session logs and overviews' }), - translate({ id: 'pricing.plan.pro.missing_email_notifications', message: 'Missing email notifications' }), - translate({ id: 'pricing.plan.pro.more_storage_options', message: 'More storage options' }), - translate({ id: 'pricing.plan.pro.custom_branding', message: 'Custom branding' }), - translate({ id: 'pricing.plan.pro.priority_support', message: 'Priority support' }), - ], - button: { - text: translate({ id: 'pricing.plan.pro.button', message: 'Buy Now' }), - id: 'paddle-buy-btn', - type: 'paddle', - }, - highlight: true, - }, -]; - -const enterprise = { - title: translate({ id: 'pricing.enterprise.title', message: 'Enterprise' }), - description: translate({ id: 'pricing.enterprise.desc', message: 'Need a custom solution or service level agreement? Get in touch for a tailored offer for your company or team.' }), - button: { - text: translate({ id: 'pricing.enterprise.button', message: 'Get in touch' }), - href: 'mailto:zealot@ews.im', - }, -}; - - -function PricingCard({ plan }) { - return ( -
- {plan.mostPopular && ( -
Most Popular
- )} -
{plan.icon}
-
{plan.name}
-
- {plan.price} - {plan.priceSuffix && {plan.priceSuffix}} -
- {plan.save &&
{plan.save}
} -
{plan.trial}
-
-
    - {plan.features.map((f) => ( -
  • {f}
  • - ))} -
-
- -
- ); -} - -function EnterpriseCard({ enterprise }) { - return ( -
-
🏢
-
{enterprise.title}
-
{enterprise.description}
- -
- ); -} - -export default function Pricing() { - return ( - -
-
- {plans.map((plan) => ( - - ))} -
-
- -
-
-
- ); -} diff --git a/src/pages/pricing.module.css b/src/pages/pricing.module.css deleted file mode 100644 index df449d5c6..000000000 --- a/src/pages/pricing.module.css +++ /dev/null @@ -1,199 +0,0 @@ -/* Pricing page styles for Docusaurus theme support */ -.main { - padding: 2rem 0; - display: flex; - flex-direction: column; - align-items: center; -} -.grid { - display: flex; - gap: 2rem; - flex-wrap: wrap; - justify-content: center; -} -.card { - background: var(--ifm-background-surface-color, #fff); - border: 2px solid var(--ifm-toc-border-color, #e5e7eb); - border-radius: 1.25rem; - padding: 2.5rem 2rem 2rem 2rem; - min-width: 580px; - max-width: 700px; - flex: 1 1 450px; - display: flex; - flex-direction: column; - align-items: center; - position: relative; - transition: box-shadow .2s, border-color .2s; - outline: none; -} - -.cardHighlight { - border-color: var(--ifm-color-primary, #ffb300); - box-shadow: 0 4px 24px 0 rgba(255,179,0,0.10); -} - -[data-theme='dark'] .cardHighlight { - border-color: var(--ifm-color-primary, #ffb300); - box-shadow: 0 4px 24px 0 rgba(13, 15, 54, 0.18); -} - -.mostPopular { - position: absolute; - top: 1.2rem; - left: 50%; - transform: translateX(-50%); - background: linear-gradient(90deg, #ff9800 0%, #ff4081 100%); - color: #fff; - font-size: 0.95rem; - font-weight: 600; - border-radius: 1rem; - padding: 0.2rem 1.1rem; - z-index: 2; - letter-spacing: 0.01em; -} - -[data-theme='dark'] .mostPopular { - background: linear-gradient(90deg, #ffb300 0%, #ff4081 100%); - color: #232334; -} - -.icon { - font-size: 2.5rem; - margin-bottom: 1.2rem; - margin-top: 0.5rem; -} - -.name { - font-size: 1.5rem; - font-weight: 500; - margin-bottom: 0.5rem; - color: var(--ifm-heading-color, #222); -} - -[data-theme='dark'] .name { - color: var(--ifm-color-primary-light); -} - -.priceRow { - display: flex; - align-items: flex-end; - margin-bottom: 0.5rem; -} -.price { - font-size: 2.5rem; - font-weight: bold; - color: var(--ifm-heading-color, #222); -} - -[data-theme='dark'] .price { - color: var(--ifm-color-primary-darker); -} - -.priceSuffix { - font-size: 1.2rem; - color: var(--ifm-color-emphasis-600, #888); - margin-left: 0.2rem; - font-weight: 400; -} -.save { - background: #e6f9ed; - color: #1dbf73; - font-size: 1rem; - font-weight: 500; - border-radius: 0.7rem; - padding: 0.1rem 0.8rem; - margin-bottom: 0.5rem; -} -[data-theme='dark'] .save { - background: #1a3a2a; - color: #6cffb3; -} -.trial { - color: var(--ifm-color-emphasis-600, #888); - font-size: 1.1rem; - margin-bottom: 1.7rem; -} -.button { - width: 100%; - background: var(--ifm-background-color, #fff); - color: var(--ifm-heading-color, #222); - border: 2px solid var(--ifm-toc-border-color, #e5e7eb); - border-radius: 0.7rem; - font-size: 1.1rem; - font-weight: 500; - padding: 0.8rem 0; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - gap: 0.5rem; - transition: background .2s, border-color .2s, color .2s; -} - -[data-theme='dark'] .button { - background: var(--ifm-background-surface-color, #232334); - color: var(--ifm-color-primary-light); - border: 2px solid var(--ifm-toc-border-color, #444654); -} - -.button:hover { - background: var(--ifm-color-primary, #ffb300); - color: #fff; - border-color: var(--ifm-color-primary, #ffb300); -} -[data-theme='dark'] .button:hover { - background: #ffb300; - color: #232334; - border-color: #ffb300; -} -.buttonIcon { - font-size: 1.2rem; - margin-right: 0.2rem; -} -.features { - flex: 1 1 auto; - display: flex; - flex-direction: column; - justify-content: flex-end; - width: 100%; -} -.card:hover, -.enterpriseCard:hover { - border-color: var(--ifm-color-primary); - box-shadow: 0 0 0 3px rgba(1, 1, 100, 0.18), 0 4px 24px 0 rgba(27, 28, 95, 0.1); - z-index: 2; -} - -[data-theme='dark'] .card:hover, -[data-theme='dark'] .enterpriseCard:hover { - border-color: var(--ifm-color-primary-darkest); - box-shadow: 0 0 0 3px rgba(4, 5, 107, 0.28), 0 4px 24px 0 rgba(2, 6, 20, 0.18); -} - -/* Enterprise section layout */ -.enterpriseRow { - width: 100%; - max-width: 1200px; - margin: 2.5rem auto 0 auto; - display: flex; - justify-content: center; -} -.enterpriseCard { - width: 100%; - background: var(--ifm-background-surface-color, #181828); - border: 2px solid var(--ifm-toc-border-color, #232334); - border-radius: 1.25rem; - padding: 2.5rem 2rem 2rem 2rem; - display: flex; - flex-direction: column; - align-items: center; -} - -@media (max-width: 1200px) { - .enterpriseRow { - max-width: 100%; - } - .enterpriseCard { - max-width: 100%; - } -} diff --git a/src/pages/pricing.tsx b/src/pages/pricing.tsx new file mode 100644 index 000000000..44f1d3095 --- /dev/null +++ b/src/pages/pricing.tsx @@ -0,0 +1,27 @@ +import type { ReactNode } from 'react'; +import Layout from '@theme/Layout'; +import { translate } from '@docusaurus/Translate'; +import { EnterpriseTier } from '@site/src/constants/pricing-tier'; +import { EnterpriseCard } from '@site/src/components/Pricing/EnterpriseCard'; +import { PriceCards } from '@site/src/components/Pricing/PriceCards'; + +export default function PricingPage(): ReactNode { + return ( + +
+ + +
+
+ ); +} diff --git a/src/plugins/tailwind-config.ts b/src/plugins/tailwind-config.ts new file mode 100644 index 000000000..66d51bd6d --- /dev/null +++ b/src/plugins/tailwind-config.ts @@ -0,0 +1,15 @@ +import type { LoadContext, Plugin } from '@docusaurus/types'; +import type { PostCssOptions } from '@docusaurus/types'; + +export default function tailwindPlugin( + context: LoadContext, + options: Record +): Plugin { + return { + name: 'tailwind-plugin', + configurePostCss(postcssOptions: PostCssOptions): PostCssOptions { + postcssOptions.plugins = [require('@tailwindcss/postcss')]; + return postcssOptions; + }, + }; +} diff --git a/src/theme/Root/index.tsx b/src/theme/Root/index.tsx new file mode 100644 index 000000000..640f500b1 --- /dev/null +++ b/src/theme/Root/index.tsx @@ -0,0 +1,19 @@ +import React, { ReactNode } from 'react'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; + +const queryClient = new QueryClient(); + +interface RootProps { + children: ReactNode; +} + +export default function Root({ children }: RootProps): JSX.Element { + const env = process.env.ENVIRONMENT || 'production'; + return ( + + <>{children} + {env === 'development' && } + + ); +} diff --git a/src/types/docusaurus.d.ts b/src/types/docusaurus.d.ts new file mode 100644 index 000000000..1b0ce9ab5 --- /dev/null +++ b/src/types/docusaurus.d.ts @@ -0,0 +1,16 @@ +/// + +// 修复 React 19 中 Layout 组件的类型问题 +declare module '@theme/Layout' { + import type { ReactElement, ReactNode } from 'react'; + + export interface Props { + readonly children?: ReactNode; + readonly noFooter?: boolean; + readonly wrapperClassName?: string; + readonly title?: string; + readonly description?: string; + } + + export default function Layout(props: Props): ReactElement; +} diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 000000000..1c8423382 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,227 @@ +// ===== Gateway 相关类型 ===== +export interface GatewayClient { + orders: (encryptedEmail: string) => Promise; + generateLicense: (data: LicenseRequest) => Promise; +} + +// ===== 订单相关类型 ===== +export interface Customer { + id: string; + email: string; +} + +export interface License { + id: string; + key: string; + active: boolean; +} + +export interface Order { + id: string; + totalAmount: number; + currency: string; + status: 'completed' | 'pending' | 'failed'; + createdAt: string; + paidAt?: string; +} + +export interface Subscription { + id: string; + status: 'active' | 'cancelled' | 'paused' | 'trialing'; + currentPeriodStart: string; + currentPeriodEnd: string; + cancelAtPeriodEnd: boolean; +} + +export interface OrdersResponse { + customer?: Customer; + license?: License; + orders: Order[]; + subscription?: Subscription; +} + +// ===== License 相关类型 ===== +export interface LicenseRequest { + transactionId: string; + checkoutId: string; + customerEmail: string; + priceId: string; +} + +export interface LicenseData { + id: number; + key: string; + expiredAt: string; + active: boolean; +} + +export interface OrderData { + id: string; + totalAmount: number; + currency: string; + status: string; +} + +export interface SubscriptionData { + id: string; + status: string; + currentPeriodEnd: string; +} + +export interface LicenseCustomer { + id: string; + email: string; + paddleCustomerId: string; +} + +export interface LicenseResponse { + success: boolean; + message?: string; + license?: LicenseData; + order?: OrderData; + subscription?: SubscriptionData; + customer?: LicenseCustomer; +} + +// ===== Paddle 相关类型 ===== +export interface PaddleCheckoutSettings { + variant: 'multi-page' | 'inline'; + locale: string; + theme: 'dark' | 'light'; + allowLogout: boolean; + showAddTaxId: boolean; + successUrl: string; + displayMode?: 'inline' | 'overlay'; + frameTarget?: string; + frameStyle?: string; + frameInitialHeight?: string; +} + +export interface PaddleCheckoutOptions { + checkout: { + settings: PaddleCheckoutSettings; + }; + eventCallback: (data: PaddleEvent) => void; +} + +export interface PaddleEventData { + id: string; + transaction_id?: string; + customer?: { + email: string; + name?: string; + }; + items?: Array<{ + price_id: string; + }>; + totals?: { + total: number; + }; + error?: { + code: string; + message: string; + }; +} + +export interface PaddleEvent { + name: 'checkout.completed' | 'checkout.payment.failed' | 'checkout.closed' | 'checkout.customer.updated' | string; + data: PaddleEventData; +} + +export interface PaddleCheckoutItem { + priceId: string; + quantity?: number; +} + +export interface PaddleCheckoutOpenOptions { + customer: { + email: string; + name: string; + address: { + countryCode: string; + }; + }; + discountCode?: string | null; + items: PaddleCheckoutItem[]; + customData: { + customerEmail: string; + priceId: string; + }; +} + +export interface PaddleInstance { + Initialized: boolean; + Checkout: { + open: (options: PaddleCheckoutOpenOptions) => void; + }; + Spinner: { + show: () => void; + hide?: () => void; + }; + PricePreview: (request: { items: PaddleCheckoutItem[]; country: string }) => Promise; +} + +export interface PaddlePricePreviewItem { + price: { id: string }; + formattedTotals: { total: string }; +} + +export interface PaddlePricePreviewResponse { + data: { + details: { + lineItems: PaddlePricePreviewItem[]; + }; + }; +} + +// ===== 交易数据类型 ===== +export interface TransactionData { + transactionId: string; + checkoutId: string; + customerEmail: string; + priceId: string; + amount?: number; +} + +export interface ErrorData { + errorCode: string; + errorMessage: string; +} + +// ===== Pricing 相关类型 ===== +export interface PricingButtonConfig { + text: string; + id?: string; + href?: string; + type: 'link' | 'paddle'; +} + +export interface PricingTierItem { + key: string; + name: string; + icon: string; + price?: string; + priceId?: string; + frequency?: string; + trial?: string; + save?: string; + features: string[]; + button: PricingButtonConfig; + highlight: boolean; +} + +export interface EnterpriseTierItem { + title: string; + description: string; + button: { + text: string; + href: string; + }; +} + +// ===== Region 相关类型 ===== +export interface Region { + locale: string; + value: string; + label: string; +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..6f3b11cdb --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@docusaurus/tsconfig", + "compilerOptions": { + "baseUrl": "." + }, + "exclude": [".docusaurus", "build"] +}